안녕하세요. 강의 잘 듣고 있습니다. libuv 발음이 '립유브이' '엘아이비유브이' '리버브' 등 발음법이 계속 바뀌네요. 다른 질문에서 답변으로 AI로 만든 강의 아니다라고 하셨고 직접 녹음한거라고 하셨는데 직접 하신거라면 조금 아쉬운 것 같습니다. 강의 내용도 흥미롭고 좋은 주제를 다루는 것 같아서 배울게 많아 정말 좋은데 이런 부분들이 조금 강의의 퀄리티를 떨어뜨리는 것 같아서 보완해주시면 좋을 것 같습니다. 강의는 정말 잘 듣고 있는 만큼 보완되었으면 하는 마음에 조심스레 글 남깁니다.
5. [실전 훈련] 사고 실험: 상태 누적 시각화 추적하기 예시에서 [Step 2] setTimeout과 Promise 등록 등을 보면 Call Stack이 비어있음 이라고 표현하셨는데, main 호출후 -> 동기코드 완료될때까지. Call Stack은 엄밀히 비어있는 상태가 아니지 않나요? 즉 console.log("D") 가 출력되기 전까지는 콜 스택이 비워지는 상태가 발생할수 없지 않나요? 혹시 제가 잘못 알고 있을수도 있으니 조심히 여쭙습니다.
디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기
제가 아무것도 없이 cache코드를 작성하기에는 실력이 부족해서 넘겨주신 자료를 보면서 한줄 한줄 해석하면서 공부를 하고 있는데 다른 수업을 하시는 강사님이 cache 코드를 보고 일단은 block으로 그려서 신호가 왜 그렇게 들어고 나가는지 왜 신호를 assign했는지 알고 언제 신호가 들어고 등을 그려보는게 공부하는데 도움이 될거라고 하는데 block으로 그리면 input output신호는 전부 코드를 보고 그리는 건데 그렇게 그리는게 정말 도움이 될까요? 아니면 회로도 그리는게 다른 방식이 있나요?
안녕하세요. 이번에 Node.js and CS Part 1을 수강했고 이어서 Part 2도 열심히 수강할 예정입니다. 이전에도 느꼈던 부분이지만 AI 시대에는 프론트엔드와 백엔드를 엄격하게 나누는 의미가 점점 줄어들고 있다는 생각이 들었습니다. 그런 흐름 속에서 강의가 저에게 정말 많은 도움이 되었습니다. 좋은 강의 만들어주셔서 감사합니다. 혹시 Node.js 시리즈가 Part 3까지 이어지는 것으로 보이는데 그 다음 강의에 대해서도 계획하고 계신 내용이 있을까요? 개인적으로는 운영/배포 과정에서의 실무 노하우나, 확장 가능한 프로젝트 구조 설계, npm 패키지 제작, 디자인 패턴 같은 주제에도 관심이 많아서 이후 강의에서 이런 내용들도 다뤄주신다면 정말 재미있게 들을 것 같습니다. 다음 강의도 기대하고 열심히 공부해보겠습니다.
안녕하세요. 웹/백엔드 JAVA 개발자입니다. 현재 SP를 실제로 사용할까요? (DB Procedure로 이해) (레거시 시스템 운영 외 현대의 서비스에서) 일반적으로 SP 방식의 경우 강의 내용에서 나온 버전 관리의 문제, 벤더 락인, 부분적 로직 재사용 등의 한계가 있어보여, 저는 줄곧 ORM에 적합한 환경이 아니더라도 SP 보다는 Application 레벨에서 Query를 작성&관리&실행하는 형태로 줄곧 서비스를 운영해왔고, 강의에서 언급된 ORM의 단점도 Application 에서 쿼리를 관리하면 사라지는 단점으로 보여져서, 사실상 SP는 지양해야 할 레거시 방식으로 생각하고 있었습니다. 아직 다른 도메인 영역에서는 SP를 고수하는 분야가 있는걸까요?
💡 [CS 실무 Point: OS 계층의 역량 활용 (epoll / kqueue)] 단일 스레드라고 해서 컴퓨터가 정말로 혼자 일하는 것은 아닙니다. 파일 읽기나 네트워크 통신 같은 무거운 작업은 Node.js가 직접 처리하지 않고, 운영체제 커널이 제공하는 고성능 이벤트 통지 API(Linux의 epoll, macOS의 kqueue 등 시스템 콜) 를 통해 운영체제에게 철저하게 위임(Offloading)합니다. 즉, Node.js의 메인 스레드는 교통정리만 아주 빠르게 수행할 뿐, 실제 무거운 짐은 OS 커널이 백그라운드에서 나르고 있는 것입니다. 안녕하세요, 위 설명에서 질문이 있습니다. 운영체제에 위임하는 작업과 libuv 스레드 풀의 워커 스레드가 어떤 연관이 있고 어떻게 유기적으로 동작하는지 궁금합니다.
2.4 Node.js의 3단계 분업 아키텍처 자바스크립트 코드가 운영체제를 움직이는 과정은 세 단계의 협업으로 이루어집니다. 자바스크립트 코드 작성: 개발자가 비즈니스 로직을 작성합니다. V8 엔진의 통역: 자바스크립트를 C++가 이해할 수 있는 형태로 통역합니다. C++ 코어 및 바인딩(Bindings): 통역된 지시를 받아 운영체제(OS)에 직접 명령을 내립니다. 이때 C++는 현장의 작업 반장 역할을 수행하며 실제 파일이나 네트워크를 제어합니다. 위 내용에서 v8의 통역 이후 부분이 이해가 잘 가지 않습니다. v8 엔진의 결과물은 C++과 관계없이 바이트코드나 기계어가 되지 않나요? 그리고 js만으로 불가능한 os 작업이 나오면 v8 실행 중에 미리 C++로 만들어 놓은 모듈을 호출하는 식으로 동작하는게 아닌지 문의드립니다. 감사합니다.
강의를 여러번 봐도 이 부분에 대한 설명이 이해가 안되어서 되도록이면 자제했던 AI의 도움을 받았습니다. 그 결과 알아낸 내용은 다음과 같습니다. scanf()에서 "%d\n" 의 의미는 “모든 공백(스페이스, 탭, 개행)을 계속 건너뛰고, 그 다음 ‘공백이 아닌 입력’이 나올 때까지 기다려라” 입니다. 그러니까 엔터를 치면 또 공백이 입력되니까 계속 대기상태가 되는 겁니다. 이 부분은 강사님 설명이 많이 부족했다고 생각합니다. 여러 강의들을 보면서 느끼는 건데, 자부심이 상당하신듯 한데 그게 지나쳐 거만함이 자주 드러나는 것 같습니다. 또 이런 성향이 귀찮은듯 툭툭 내뱉는 말투로도 자주 표현이 되는 것 같고요. 수강자 입장에서 거슬리지만, 그런 성향이 불성실한 강의로 이어지지만 않으면 괜찮습니다.
안녕하세요. 강의를 듣다가 궁금증이 생겨 문의합니다. 제가 공부했을경우에는 Memory, Virtual Memory, Memory Mapping Tables가 있어서 CPU가 특정 메모리 영역을 읽고 싶을때 VM과 Mapping Table을 활용해서 Memory에 올라온 값을 읽는 것으로 알고 있는데, 강의에서 설명하실때는 Mapping table에 관한 내용이 없어서요. 제가 공부할 때에는 Linux를 기반으로 공부를 하긴 했습니다만, 윈도우는 Mapping table을 사용하지 않는 걸까요...?
디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기
안녕하세요 강의듣는 수강생입니다. 수업 내용을 pdf로 필기하면서 진행중이었는데 초반강의에서 제공해주신 디지털회로설계 교안에서 chapter 5부터는 강의내용에 해당하는 pdf파일이 없고 띄엄띄엄 있어서 문의드립니다. 개인적으로 pdf파일로 필기를 하면서 수업을 듣는게 좀더 효율적으로 생각이들어서 혹시 제공해주실수 있으신지 해서 문의드립니다.
안녕하세요 강사님. 버블정렬을 구현하면서 의문점이 생겨 질문을 남김니다. 저는 값의 교환에 사용되는 tmp변수의 선언을 반복문 외부, 즉 반복문보다 먼저 선언을 했고 그 이유는 매번 값을 교환할 때마다 변수를 선언하는것이 비효율적이라고 생각했습니다. 질문1. 반복문 내부에서 변수를 매번 선언하는것이 정말 비효율적인가? 질문2. tmp변수를 반복문보다 먼저 선언하고 활용하는 것이 정말 효율적인가? 잠재적인 리스크는 없는가? 첨부자료로 제 소스코드 캡처본과 강의 타임라인을 남기겠습니다! 13:41 ->오류 발견 및 반복문 내부 최종완성