ALU 강의에서 질문
미해결
만들면서 쉽게 배우는 컴퓨터 구조
ALU 강의에서 질문이 있습니다. 캐리플래그 그러니까 오버플로우 플래그의 경우 5-5계산할 때도 1이 되던데 빼기 연산할 때는 오버플로우의 의미를 가지지 않기 때문에 이 경우에는 빼주는게 맞지 않나요?? SU 신호가 올라오면 CP도 신호가 올라오지 않게 해야하는 것 아닌가 궁금하네요
- 컴퓨터-구조
- computer-science
172만명의 커뮤니티!! 함께 토론해봐요.
미해결
만들면서 쉽게 배우는 컴퓨터 구조
ALU 강의에서 질문이 있습니다. 캐리플래그 그러니까 오버플로우 플래그의 경우 5-5계산할 때도 1이 되던데 빼기 연산할 때는 오버플로우의 의미를 가지지 않기 때문에 이 경우에는 빼주는게 맞지 않나요?? SU 신호가 올라오면 CP도 신호가 올라오지 않게 해야하는 것 아닌가 궁금하네요
미해결
컴퓨터는 어떻게 동작하는가 — 하드웨어와 운영체제, 서버의 밑바닥부터
1강에는 다운로드만 있는것 같은데 2강에서는 1강에도 영상강의가 있는것 처럼 말씀하셔서 문의드립니다.
해결됨
독하게 시작하는 C 프로그래밍
안녕하세요 수식에 대해서 질문이 있습니다. 저는 아래처럼 구성했는데요 3항연산자에 scanf_s를 집어 넣는 형식으로 만들었습니다. 이런 구성으로 연습을 하면 좋지 않은 습관일까요? int input = 0; int Max = 0; scanf_s("%d", &input); printf("최댓값은 %d입니다.\n", input); (input > Max) ? scanf_s("%d", &Max) : scanf_s("%d", &Max); printf("최댓값은 %d입니다.\n", Max); (input > Max) ? scanf_s("%d", &Max) : scanf_s("%d", &Max); printf("최댓값은 %d입니다.\n", Max);
미해결
디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기
wire mem_rd = miss & ~i_cpu_write; 이 코드를 보면 miss (N+1 clk)이고 ~i_cpu_write은 (N clk)인데 ~i_cpu_write 신호는 1 클락을 기다리게 됩니다. 이거에 대해서 AI한테 물어보니 cpu가 pipeline 이면 엄청난 문제가 되고 Handshake / Stall 구조이면 문제가 되지 않는다고 답을 주었습니다. cpu는 pipeline으로 설계한다고 강의 커리큘럼에 나와 있는데 저희가 설계하는 cpu를 cache와 연결 하는 거면 이건 오류가 아닌가요?
미해결
개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
메모리 읽기와 쓰기 관련하여. 메모리 읽기라는 명령어가 제어 장치에 입력되었기 때문에 제어장치가 메모리1번지에 접근해서 해당 명령어와 연산을 수행했다고 이해하면 될까요? 아니면 값이 새로 갱신되었다는 플래그를 통해서 제어장치가 Fetch과정을 실행하는 걸까요? 3번지, 4번지에 있는 데이터들을 레지스터에 입력한 뒤에 제어 장치가 ALU에게 연산하라고 하는 제어 신호를 전달한다고 보면 될까요? ALU는 어떤 메커니즘으로 1번째 레지스터에 저장된 데이터가 아니라 2,3번째에 저장된 데이터를 연산할까요?
해결됨
"AI 딸깍의 시대" 원리로 돌파하는 Node.js와 CS Part 2 - 스트림 아키텍처와 하드웨어 통제기
안녕하세요. AI 딸깍의 시대를 1~4 구매하여 수강 중에 있습니다. 강의를 듣다보니, 의문이 들어서 문의드립니다. AI로 딸깍하니, 얕은 수준으로 다루게 되니 원리를 이해하자를 이야기하고자 해당 강의가 있는 것 같습니다. 실무에서는 라이브러리나 프레임워크로 개발을 진행하게 되는 것 같습니다. 원리를 이해하면 개발을 조금 더 잘하게 된다? AI에 명령을 내릴 때 조금 더 잘 내릴 수 있다? 아니면 장애가 터졌을 때 이유를 알 수 있다? 그것도 아니라면 개발 시 장애를 미리 예측하여 대응할 수 있다로 봐야할까요? 보면서 궁금하여 문의드립니다.
해결됨
"AI 딸깍의 시대" 원리로 돌파하는 Node.js와 CS Part1 - V8과 코어 해체기
안녕하세요. 현재 Node.js를 학습한 뒤 NestJS를 공부하고 있습니다. 부족한 CS 지식과 Node.js의 내부 동작 원리를 보완할 수 있을 것 같아 강의를 수강하고 있는데, NestJS 학습과 개인 프로젝트를 병행하다 보니 강의를 모두 시청하는 데 많은 시간을 투자하기가 어려운 상황입니다. 그래서 가능하다면 강의 노트를 중심으로 학습하여 시간을 조금 더 효율적으로 활용하고 싶습니다. 혹시 강의 노트만으로도 핵심 내용을 충분히 습득할 수 있을까요? 아니면 영상 강의를 통해서만 얻을 수 있는 중요한 설명이나 실무적인 인사이트가 많은 편인지 궁금합니다. 만약 강의에서만 얻을 수 있는 내용이 많다면 시간을 조금 더 내서라도 영상을 함께 수강하려고 합니다. 의견 부탁드립니다.
해결됨
"AI 딸깍의 시대" 원리로 돌파하는 Node.js와 CS Part1 - V8과 코어 해체기
강의 2강에 대한 노트에 대한 질문입니다. 💡 [CS 및 실무 적용 Point: MSA와 BFF 아키텍처] 현대의 마이크로서비스 아키텍처(MSA)에서 Node.js는 특히 BFF(Backend For Frontend) 패턴의 핵심 기술로 사용됩니다. 브라우저의 DOM을 다루던 언어적 특성을 살려 클라이언트(React, Vue 등)의 요청을 쉽게 파싱하고, 이식된 운영체제 제어 능력(http, fs)을 통해 백엔드의 여러 마이크로서비스(Java, Python 등)로 비동기 네트워크 요청을 뿌린 뒤, 그 결과를 모아 빠르게 클라이언트에게 반환하는 완벽한 미들웨어 역할을 수행합니다. 해당 설명에서 BFF로 NodeJs를 유용한 이유는 I/O 입출력 특출나기 때문에, BFF로 사용하면, API 요청을 받아서 마이크로 서비스에 통신 요청을 보내는 용도로 사용한다는 건가요? 한번 더 거쳐가면 더 성능이 안 좋은 거 아닌가요? 아니면 원래 SpringBoot로 개발되었던 웹 사이트를 NodeJs로 구현한다면 더 좋다는 의미일까요?
미해결
만들면서 쉽게 배우는 컴퓨터 구조
진리표를 회로로 변환할 때 F가 0인 경우 don't care로 치부할 수 있는 이유가 뭔가요?
해결됨
"AI 딸깍의 시대" 원리로 돌파하는 Node.js와 CS Part 2 - 스트림 아키텍처와 하드웨어 통제기
// 3. 작업 종료 알림: end 이벤트를 통해 댐 바닥 확인 streamRead.on("end", async () => { console.log("\\n✅ [종료] 댐 바닥 도착. 모든 데이터 복사 완료!"); // 메서드: 더 보낼 물이 없다고 선언하고 파이프 닫기 절차 진입 // finish 이벤트: 쓰기 파이프가 논리적으로 완벽히 닫혔음을 보장 streamWrite.on("finish", async () => { // 쓰기 파일 디스크립터(번호표) 운영체제에 반환 (메모리 누수 방지) await fileHandleWrite.close(); console.timeEnd("복사_소요_시간"); console.log( `📊 요약: 총 ${chunkCount}회 펌프질, ${pauseCount}회 비상 정지(메모리 방어 성공)`, ); // 메서드: 실험용 임시 파일 삭제 클린업 (unlink) await fs.unlink(SOURCE_FILE); await fs.unlink(DEST_FILE); }); streamWrite.end(); // 메서드: 사용이 끝난 읽기 파일 디스크립터(번호표) 운영체제에 반환 await fileHandleRead.close(); 읽기 스트림과 쓰기 스트림을 종료하는 3번 단계에서 쓰기 스트림을 end 하기 전에 .on finish를 등록을 해야 콘솔에서 요약을 볼 수 있었습니다. 클로드는 레이스 컨디션이 발생해서 그렇다고 하는데 어떤 부분에서 경합이 일어났는지 잘 모르겠습니다.
해결됨
독하게 시작하는 C 프로그래밍
#include <stdio.h> #include <stdlib.h> int main(void) { char szBuffer[4] = { 0 }; scanf_s("%4c", szBuffer, _countof(szBuffer)); printf("%c%c%c%c\n", szBuffer[0], szBuffer[1], szBuffer[2], szBuffer[3]); return 0; } 위 코드를 똑같이 따라했는데 scanf_s 에 countof 크기 불일치 unsigned 가 나옵니다. 환경 설정도 똑같이 했는데 강사님은 왜 오류가 안나고 저는 나는 걸까요? countof 가 매크로라고 하셨는데 그거랑 무슨 상관이 있는걸까요? 저와 강사님이 쓰는 _countof 함수는 같은거 아닌가요?
해결됨
독하게 시작하는 C 프로그래밍
강의 내용 중에 궁금한 점이 있어 질문드립니다. #include <stdio.h> int main(void) { char szName[32] = { 0 }; int nAge = 0; printf("나이를 입력하세요. : "); scanf_s("%d", &nAge); printf("이름을 입력하세요 : "); gets_s(szName, sizeof(szName)); return 0; } 처음에는 szName 과 nAge 는 서로 다른 변수이므로 각각 다른 메모리 주소를 갖는다고 생각했습니다. 그래서 scanf_s("%d", &nAge) 를 호출하면 사용자가 입력한 값이 nAge 의 메모리 주소에 저장되고, gets_s(szName, sizeof(szName)) 를 호출하면 입력한 값이 szName 의 메모리 주소에 저장되므로, 두 변수는 서로 다른 메모리 공간을 사용하기 때문에 scanf_s() 에서 입력받은 \n 이 gets_s() 에 영향을 주지 않을 것이라고 생각했습니다. 하지만 실제로는 scanf_s() 로 나이를 입력한 뒤 gets_s() 가 별도의 입력을 받지 않고 바로 종료되었습니다. 강의에서 설명해 주신 내용처럼 scanf_s() 가 남겨 놓은 \n 을 gets_s() 가 읽었기 때문이라고 이해했습니다. 이 부분이 궁금해서 강의를 다시보며 아래와 같이 이해했는데, 제가 이해한 내용이 맞는지 확인 부탁드립니다. - szName 과 nAge 는 서로 다른 메모리 주소를 갖는다. -하지만 scanf_s() , gets_s() 와 같은 입력 함수들은 각 변수의 메모리에서 직접 입력을 받는 것이 아니라, 공통으로 사용하는 stdin 입력 버퍼 에서 데이터를 읽는다. * 이 입력 버퍼는 szName, nAge와 같은 메모리 공간이 아닌 강의 중 강사님이 설명하신 추상화 File의 단 1개의 Buffered I/O로 이해했습니다. -즉, 키보드 입력은 먼저 stdin 의 입력 버퍼에 저장되고, scanf_s() 와 gets_s() 는 이 동일한 입력 버퍼에서 필요한 만큼 데이터를 읽어 각각 nAge 와 szName 에 저장한다. -따라서 scanf_s("%d", &nAge) 는 숫자만 읽고 \n 은 입력 버퍼에 남겨 두며, 이후 gets_s() 가 같은 입력 버퍼에서 남아 있던 \n 을 읽어 바로 종료된다. 제가 위와 같이 이해한 것이 맞는지 확인 부탁드립니다.
해결됨
"AI 딸깍의 시대" 원리로 돌파하는 Node.js와 CS Part1 - V8과 코어 해체기
let previousContent = ""; const addToFile = async (path, content) => { if (previousContent === content) return; // 중복 실행 방지를 위한 거름망 if(!(await fileExist(path))) return; // file이 존재하는지 않하는 지 체크 try { await appendFile(path, content); previousContent = content; console.log(`✅ ${content} is successfully appended to ${path}`); } catch (error) { if (error.code === "ENOENT") { console.log(`⚠️ ${path} does not exist`); } console.error(`❌ 에러 발생: ${error.message}`); } }; catch error 부분에서 에러 코드로 ENOENT를 사용해서 path가 존재하지 않는 경우를 잡아내는 코드를 작성했지만, 실제로 실행했을 때 appendFile 자체가 이미 새로운 파일을 생성해내는데 성공하였기 때문에 error로 연결되지 않았습니다. 중복 콘텐츠 방지를 위한 if 밑에 또 다른 if로 fileExist를 사용해서 early return을 하는 이런 방식으로 처리를 하는 게 맞을까요? 아니면 제가 놓친 다른 catch error 가 있는 걸까요?
미해결
개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
안녕하세요. 최근 디지털 포렌식 분야에 관심을 가지게 되어 관련 공부를 시작하려고 합니다. 디지털 포렌식을 제대로 배우기 위해서는 운영체제와 컴퓨터구조에 대한 기본 이해가 필요하다고 들어, 인프런에서 본 강의를 찾게 되었습니다. 혹시 이 강의가 디지털 포렌식을 공부하기 전에 컴퓨터구조와 운영체제의 기초를 다지기에 적합한 강의인지 궁금합니다. 특히 디지털 포렌식 입문자가 알아야 할 CPU, 메모리, 저장장치, 파일시스템, 프로세스 등의 개념을 이해하는 데 도움이 될지 질문드립니다.
해결됨
독하게 시작하는 C 프로그래밍
디버깅모드에서 F10버튼을 누르면, 변화하는 부분이 강의에서는 빨간색으로 보여져서 한눈에 보기가 편한데요. 저는 그냥 하얀색에서 변하지를 않습니다. 예) pList[0] = 10; 를 실행하면 메모리창에서 0a 00 00 00 부분이 빨간색으로 변하면 좋겠는데 글자색은 안변하더라구요. 챗지피티에 물어봐도 해답을 찾을 수 없어서 ^^;; 문의드립니다. 감사합니다.
해결됨
"AI 딸깍의 시대" 원리로 돌파하는 Node.js와 CS Part1 - V8과 코어 해체기
사례 2번 예시에서 Plugin 클래스도 EventEmitter를 상속받는 이유가 궁금합니다. Application의 인스턴스를 주입받아 해당 인스턴스를 내부에서 활용하고 있는데 Plugin 클래스 자체도 EventEmitter를 상속받는 이유가 궁금합니다.
해결됨
"AI 딸깍의 시대" 원리로 돌파하는 Node.js와 CS Part1 - V8과 코어 해체기
안녕하세요. 섹션2를 마치고 섹션3로 넘어왔는데 "node.js 설치와 첫코드 실행"관련 강의가 누락된것 같습니다. 확인부탁드립니다.
미해결
디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기
쿼터스에서 보다 싶이 82%에서 진전이 보이지 않는데 이거 해결 방법이 있나요?
미해결
"AI 딸깍의 시대" 원리로 돌파하는 Node.js와 CS Part1 - V8과 코어 해체기
안녕하세요. 강의 잘 듣고 있습니다. libuv 발음이 '립유브이' '엘아이비유브이' '리버브' 등 발음법이 계속 바뀌네요. 다른 질문에서 답변으로 AI로 만든 강의 아니다라고 하셨고 직접 녹음한거라고 하셨는데 직접 하신거라면 조금 아쉬운 것 같습니다. 강의 내용도 흥미롭고 좋은 주제를 다루는 것 같아서 배울게 많아 정말 좋은데 이런 부분들이 조금 강의의 퀄리티를 떨어뜨리는 것 같아서 보완해주시면 좋을 것 같습니다. 강의는 정말 잘 듣고 있는 만큼 보완되었으면 하는 마음에 조심스레 글 남깁니다.
해결됨
독하게 시작하는 C 프로그래밍
안녕하세요. 강의를 듣는 도중에 윈도우기 실습환경인 점은 인지했는데, 혹시 개인적으로 리눅스로 진행해도 개념을 이해하는데에 어려움이 있을까요?