본문 바로가기

전체 글

(97)
[컴퓨터 시스템 딥다이브] ch03 C 디버깅 도구 💡이 글은 컴퓨터 시스템 딥다이브(수잰 J. 매슈스, 한빛미디어 2024)를 읽고 적은 글입니다.GDB, Valgrind, DDD 등 디버깅 도구들에 대해 소개 및 활용방법에 대해 알려준다.아무래도 컴퓨터 시스템이 주제이다 보니 이후에 나오는 내용들에 대해 실습을 할 수 있고 그럴 때 디버깅을 해야 할 일이 생기기 쉬울 테니 알려주는 것 같다.C++ 홍정모님의 자료구조 강의를 듣고 실습 중이었는데 책에 소개된 디버깅 방법들을 활용해 보았다.Source CodeLinkedNode.cpp#include using namespace std;struct Node{ int item = 0; // item next); }}void IterPrint(Node* node){ // ..
[오브젝트] ch07 객체분해 💡이 글은 조영호, 『오브젝트: 코드로 이해하는 객체지향 설계』, 위키북스(2019) 책을 읽고 작성한 글입니다. 저자의 글 전개 방식에 다시 한번 감탄하며 읽을 수 있었다. 단기 기억과 장기 기억을 이야기하며 사람의 단기 기억은 한번에 5~9개 정도만 기억 가능하고 단기 기억에 넣을 수 있는 정보량을 넘어서면 인지 과부하가 되어 문제 해결 능력이 급격히 떨어짐을 알려주며 시작한다. 인지 과부하를 방지하는 좋은 방법으로 단기 기억에 보관할 정보의 양을 조정하는 것이라 하며 불필요한 정보를 제거하고 문제 해결에 필요한 핵심만 남기는 작업을 추상화라 한다. 일반적인 추상화 방법으로 한 번에 다루어야 하는 문제 크기를 작게 줄이는 것, 이렇게 큰 문제를 해결 가능한 문제로 나누는 작업을 분해(decompost..
[컴퓨터 시스템 딥다이브] ch02 C프로그래밍 심화 part02(2.7~2.9) 💡이 글은 컴퓨터 시스템 딥다이브(수잰 J. 매슈스, 한빛미디어 2024)를 읽고 적은 글입니다. 구조체 구조체는 서로 다른 데이터 타입을 하나로 묶을 수 있다. typedef struct student { size_t age; char name20 } t_student; 구조체 내부 필드에 동적할당하여 쓰는 경우 코드에서 head를 반복문 안에서 아래와 같이 쓰는 것을 보고 저렇게 하면 처음 head에 넣은 값(여기서는 10)이 head가 앞에 있지 않을 텐데 어떻게 되는 거지 하고 궁금하여 코드를 적어보았다. temp->data = i; temp->next = head; head = temp; #include #include typedef struct node { int data; struct nod..