이번 글은 컴퓨터 밑바닥의 비밀 스터디를 추진하고 수행한 회고를 작성해봅니다. 스터디를 기획하려는 분이나 CS 공부 계획이 있으신 분들이 참고할 만한 글을 작성하는 것이 글의 목적입니다.


컴퓨터 밑바닥의 비밀

 

컴퓨터 밑바닥의 비밀 : 알라딘

코드를 실행하면 컴퓨터 내부에서는 어떤 일이 벌어질까? 운영 체제부터 CPU, 동기화, 입출력을 구현하는 원리까지, 내 코드를 바꿔줄 컴퓨터 밑바닥의 비밀을 들여다보자.

www.aladin.co.kr

 

1. 진행 방식

  • 일정: 5월 11일(일) ~ 7월 20일(일)
  • 일시: 매주 일요일 오후 10시, 온라인미팅(허들 & 줌)
  • 총 진도: 6단원, 12주(3달)
  • 규칙
    • 매주 한 단원의 절반씩 진행
    • 자료작성, 블로글 ok, 책 밑줄 그으면서 설명해도되고, 자료(스샷)가져와서 판서하면서해도됨
    • 발표자: 매주 3명 발표 필수(설명을 하는 5분-10분)
    • 참여자: 3줄 요약으로 경험 공유

  • 디포짓 5만원 선입금
    • 발표 안하면 만원 차감
    • 참여 안하면 오천원 차감, 1회 패스권 사용 가능
  • 시스템
    • 발표 순서 정리

  • 예치금 현황판

총 6단원으로 이루어진 책이기 때문에 12명을 구인했습니다. 각 단원을 절반씩 쪼개 1주차당 3명의 발표를 의무적으로 잡았습니다. 단순히 읽고 논의하기 라는 느슨한 규칙을 세우면 책을 안 읽을 수 도 있기 때문입니다. 하지만 발표의 결과물 형태를 까다롭게 하지 않았습니다. 각자의 개인노션이나 블로그에 작성한 화면 그대로를 발표로 해도 되고 관심있게 본 단어나 구절만 발표하는 식으로도 가능하게 했습니다. 실제로 이렇게 진행하니 총 36회의 발표에서는 미발표는 2번, 미참석은 2번이였습니다.(참석 패스는 9명 사용)

3. 스터디 회고

다음은 12주간 스터디 진행 후 KPT 템플릿을 이용한 후기를 Gemini Pro 2.5를 통해 요약한 결과 입니다.


Keep (성과 및 유지할 점)

  • 성공적 스터디 시스템
    • 주 3인 발표 제도로 책임감 부여 및 꾸준한 학습 동기 마련
    • 발표자 외 '3줄 요약' 규칙으로 참여도 유지
    • 예치금 제도로 완주 의지 강화
    • 자율적 발표 형식으로 다양한 시각(블로그, 시각화 등) 공유 및 학습 효과 증대
  • 긍정적 학습 경험
    • 500p 분량의 기술 서적 완주 경험 획득
    • 동료 학습을 통해 혼자서는 어려웠을 개념(캐시라인, 콜백 등) 명확히 이해
    • 다양한 발표 스타일 덕분에 다각적이고 입체적인 학습 가능
    • AI(Claude, LLM)를 활용한 시각화, 내용 검증 등 새로운 학습법 시도

Problem (문제점 및 아쉬움)

  • 스터디 운영의 비효율
    • 3인 발표 시 내용이 중복되어 집중력 저하 및 비효율 발생
    • 발표자가 아닐 경우, 학습 우선순위가 밀려 수동적 참여에 그치는 경향 발생
    • 발표 중심의 단방향 소통으로 상호작용(질문, 토론) 부족
  • 학습 깊이의 한계
    • C/C++ 코드 예제를 눈으로만 훑고 넘어가 실질적인 체득 부족
    • 어려운 주제 발생 시 깊게 파고들지 못하고 수박 겉핥기식으로 학습
    • 개인 실습 및 학습 내용을 블로그 등으로 정리하는 Output 활동 부족

Try (향후 시도할 점)

  • 스터디 운영 방식 개선
    • (역할 분담) 발표 전, 이론/코드분석/심화탐구 등 파트를 나눠 중복 방지
    • (상호작용 강화) 챕터별 질의응답 시간을 의무화하거나, 나무위키처럼 공동 학습 노트 작성
    • (참여 유도) 비발표자도 참여할 수 있는 퀴즈나 토론 주제 제시
  • 개인 학습 전략 강화
    • (코드 실습) 예제 코드를 직접 실행하거나, 익숙한 언어(Python 등)로 변환하여 실습
    • (지식 내재화) 스터디 후 학습 내용을 블로그에 정리하거나 자신만의 방식으로 시각화
    • (심화 학습) 책 외의 레퍼런스를 추가로 찾아보고, 궁금증을 해결하며 학습 깊이 더하기
    • (시간 관리) 스터디 학습 시간을 미리 계획하여 꾸준함 유지

3. 발표자료들

오픈 링크로 공개된 것들을 참고 자료로 남깁니다.

1단원

 

[Study][컴퓨터 밑바닥의 비밀] 1. 프로그래밍 언어부터 프로그램 실행까지, 이렇게 진행된다.

이 책의 첫 단원인 프로그래밍 언어부터 프로그램 실행까지, 이렇게 진행된다. 에서는 제목에서 부터 알 수 있듯이 인간이 작성하는 고수준 언어(C, C++, Java 등)이 어떻게 저수준 언어로 번역이

velog.io

 

 

컴퓨터밑바닥: Chapter 1 프로그램 언어부터 실행까지, 이렇게 진행된다.

데이터 중심 어플리케이션 설계에 이어 컴퓨터 밑바닥의 비밀이라는 책을 스터디 합니다. 1장은 프로그래밍 언어가 작동하는 기본을 설명하는 단원으로 컴파일러와 링커 그리고 추상화에에 대

snowgot.tistory.com

2단원

 

[컴퓨터 밑바닥의 비밀] 프로그래밍 개념 파헤치기

프로그래밍의 기본 동기와 비동기프로그래밍을 시작하면서 가장 많이 듣는 개념 중 하나인 동기와 비동기에 대해 알아봅시다. 동기 개념은 일상 속에서도 쉽게 접할 수 있습니다. 여러분이 건

codediary21.tistory.com

3단원

 

컴퓨터 밑바닥 Chapter 3: 메모리라는 사물함에서부터 시작해보자

이전 단원에서는 CPU가 하는 일과 그와 함께 등장하는 스레드, 코루틴, 콜백함수와 동기/비동기 등에 대해서 알아봤습니다. 이번 장에서는 CPU가 데이터를 끌어오는 장소 메모리에 대해서 어떻게

snowgot.tistory.com

 

메모리 할당

 

worms-argue-981.craft.me

4단원

 

[컴퓨터 밑바닥의 비밀] CPU 진화론

CPU의 진화CPU 관점의 프로그램포토샵, 크롬, helloWorld 출력 등 cpu 입장에서는 기계 명령어일 뿐이다. 명령어의 양이 다를 뿐기계어는 실행 파일에 저장된다. 프로그램이 실행되면 실행 파일에 있

codediary21.tistory.com

5단원

 

[컴퓨터 밑바닥의 비밀] 메모리 장벽과 잠금 프로그래밍

컴파일러와 POoECPU는 프로그래머가 코드를 작성한 순서대로 명령어를 실행하지 않음 (성능을 높이기 위함)비순차적 실행 단계기계 명령어를 생성하는 단계: 컴파일 중 명령어 정렬CPU가 명령어를

codediary21.tistory.com

 

컴퓨터 밑바닥 Chapter 5: 작은 것으로 큰 성과 이루기, 캐시

이번 장에서는 캐시에 대해서 기술하며 책의 5번째 여정입니다. 다시 복기하자면 컴파일러 -> 프로세스/스레드 -> 메모리 -> CPU에 이은 장이며, 컴퓨터가 캐싱을 하기 위한 방법과 문제에 대해서

snowgot.tistory.com

6단원

 

입출력

 

worms-argue-981.craft.me

4. 개인적인 경험

데이터 중심 어플리에케이션 설계(a.k.a 대중애설, DDIA) 스터디 이후 다양한 스터디원들의 공통 관심사인 CS로 책을 선정하게 되었습니다. 처음에는 중국인 저자여서 선입견을 가지고 시작했는데, 각 개념에 필요한 적절한 그림과 명확한 설명에 한 번 놀라고, 컴파일러부터 시작하여 메모리,프로세스, 스레드, 캐시, cpu, 입출력까지 차근히 지식의 상아탑을 쌓아가는 것을 보고 한 번 더 놀랐습니다. 앞으로 이 저자의 책은 고민안하고 읽어볼 것 같습니다.

 

필자는 데이터 분석가로 일을 시작했고 컴퓨터과학개론만 1학년 때 수강했으므로 CS의 지식은 거의 없지만, 하드웨어를 만지는걸 좋아해서 용어나 개념에 대한 이해가 막 어색하거나 낯설진 않았습니다. 오히려 희미한 지식에서 가끔 들리는 프로세스/스레드  코루틴, 동기/비동기와 같은 개념을 한 번 잡아볼 수 있는 기회여서 스터디에 대한 만족도는 높았습니다. 본인이 CS에 대한 이해도가 부족하거나 한 번 정리하길 원한다면 일독을 추천드립니다. 

 

개인적으로 인상깊게 보았던 개념이 "데이터 일관성"에 대한 개념입니다. 사실 설계 개발자의 관점에서 중요한 부분이긴 하나,  프로세스/스레드에서 데이터 일관성의 이슈가 분산 시스템에서도 이식되어 똑같은 문제상황이 일어나고 유사한 방법으로 해결하려고 한다는 점이 흥미로웠습니다. 시대가 발전해도 고전적인 프로그래밍의 설계와 철학은 그 이유가 있므르로 역시 과거는 미래의 등대라는 생각이 듭니다. 여기에 더하여 AI agent에서는 서로 다른 기능을 하는 Agent가 공통된 Context를 유지하기 위한 시스템 프롬프트를 공유하는 부분이 중요하다고 들었는데 나아가 이런 데이터 일관성에 대한 부분이 새로운 기술에도 적용되는 뼈대구나 라고 생각이 들면서도 기본을 알면 여기저기에 써먹을 것이 많구나 라는 생각도 동시에 들었습니다. 

 

종합적으로 볼 때, 장기적인 저의 커리어 목표(Chief Data Owner)에 엔지니어링 축이 될 수 있는 바탕이 되었고, 앞으로 진행할 상아탑에도 튼튼한 버팀목이 되었으면 좋겠습니다. 🙂

 

 

 

 

+ Recent posts