🤔 어떤 스터디인가요?
함수랑 산악회의 두번째 등정, 컴퓨터 시스템의 원리를 파헤치는 책인 컴퓨터 밑바닥의 비밀
을 기반으로한 북 스터디
<aside>
📌 스터디 모집: 10월 14일 ~ 10월 20일
결과 전달: 10월 21일 (월) 23:30 에 순차발송될 예정이에요
</aside>
스터디 기획 멤버
이런 책을 읽어요
스터디 시작 전까지 개별 구매가 필요해요!
컴퓨터 밑바닥의 비밀 - 예스24
🗓️ 진행 일정은 어떻게 되나요?
- 스터디 기간: 10월 24일 ~ 12월 26일
- 스터디 시간: 매주 목요일 오후 9시
- 스터디 장소: Discord를 통해 온라인으로 진행돼요.
진행 방식
- 체크인/체크아웃 시간
- 체크인, 체크아웃을 통해 가벼운 스몰토크를 해요.
- 스터디 준비 시간
- 책 읽기
각 회차별로 정해진 범위의 책을 읽고 만나요!
책의 내용을 토대로 스터디가 진행되는 만큼 정해진 범위의 내용을 읽어오는 것을 권장해요.
- 소감 및 논의하고 싶은 부분 작성하기
각 회차별로 책을 읽으면서 느꼈던 소감 및 논의하고 싶은 부분을 작성해요!
스터디 전에 각자 작성한 내용을 미리 확인하고 비동기적으로 의견을 정리해보는 시간을 가질 수 있어요.
- 스터디 시간
타임라인
날짜 |
회차 |
범위 |
구분 |
내용 |
10월 24일 |
0회차 |
- |
웰컴 드링크 |
- 온라인으로 자기소개를 하면서 스터디 OT하는 시간을 가져요! |
10월 31일 |
1회차 |
1.1 ~ 1.5 |
|
|
(p.25 ~ p.74) |
1장. 프로그래밍 언어부터 프로그래밍 실행까지, 이렇게 진행된다 |
- 여러분이 프로그래밍 언어를 발명한다면? |
|
|
- 컴파일러는 어떻게 작동하는 것일까?
- 링커의 말할 수 없는 비밀
- 컴퓨터 과학에서 추상화가 중요한 이유
|
| 11월 7일 | 2회차 | 2.1 ~ 2.4
(p.76 ~ 129) | 2장. 프로그램이 실행되었지만, 뭐가 뭔지 하나도 모르겠다 | - 운영 체제, 프로세스, 스레드의 근본 이해하기
- 스레드 간 공유되는 프로세스 리소스
- 스레드 안전 코드는 도대체 어떻게 작성해야 할까?
- 프로그래머는 코루틴을 어떻게 이해해야 할까? |
| 11월 14일 | 3회차 | 2.5 ~ 2.10
(p.131 ~ p.193) | 2장. 프로그램이 실행되었지만, 뭐가 뭔지 하나도 모르겠다 | - 콜백 함수를 철저하게 이해한다
- 동기와 비동기를 철저하게 이해한다
- 아 맞다! 블로킹과 논블로킹도 있다
- 높은 동시성과 고성능을 갖춘 서버 구현
- 컴퓨터 시스템 여행: 데이터, 코드, 콜백, 클로저에서 컨테이너, 가상 머신까지 |
| 11월 21일 | 4회차 (특별세션) | - | 해피 아워 | - 스터디에 대한 간단한 회고를 하면서 이후에 진행될 스터디의 방향성을 이야기하면서 친해져요
- Happy Hour |
| 11월 28일 | 5회차 | 3.1 ~ 3.9
(p.196 ~ p.279) | 3장. 저수준 계층? 메모리라는 사물함에서부터 시작해 보자 | - 메모리의 본질, 포인터와 참조
- 프로세스는 메모리 안에서 어떤 모습을 하고 있을까?
- 스택 영역: 함수 호출은 어떻게 구현될까?
- 힙 영역: 메모리의 동적 할당은 어떻게 구현될까?
- 메모리를 할당할 때 저수준 계층에서 일어나는 일
- 고성능 서버의 메모리 풀은 어떻게 구현될까?
- 대표적인 메모리 관련 버그
- 왜 SSD는 메모리로 사용할 수 없을까? |
| 12월 8일 | 6회차 | 4.1 ~ 4.10
(p.282 ~ p.359) | 4장. 트랜지스터에서 CPU로, 이보다 더 중요한 것은 없다 | - 이 작은 장난감을 CPU라고 부른다
- CPU는 유휴 상태일 때 무엇을 할까?
- CPU는 숫자를 어떻게 인식할까?
- CPU가 if 문을 만났을 때
- CPU 코어 수와 스레드 수 사이의 관계는 무엇일까?
- CPU 진화론(상): 복잡 명령어 집합의 탄생
- CPU 진화론(중): 축소 명령어 집합의 탄생
- CPU 진화론(하): 절체절명의 위기에서 반격
- CPU, 스택과 함수 호출, 시스템 호출, 스레드 전환, 인터럽트 처리 통달하기 |
| 12월 15일 | 7회차 | 5.1 ~ 5.5
(p.363 ~ p.420) | 5장. 작은 것으로 큰 성과 이루기, 캐시 | - 캐시, 어디에나 존재하는 것
- 어떻게 캐시 친화적인 프로그램을 작성할까?
- 다중 스레드 성능 방해자
- 봉화희제후와 메모리 장벽 |
| 12월 22일 | 8회차 | 6.1 ~ 6.7
(p.424 ~ p.476) | 6장 입출력이 없는 컴퓨터가 있을까? | - CPU는 어떻게 입출력 작업을 처리할까?
- 디스크가 입출력을 처리할 때 CPU가 하는 일은 무엇일까?
- 파일을 읽을 때 프로그램에는 어떤 일이 발생할까?
- 높은 동시성의 비결: 입출력 다중화
- mmap: 메모리 읽기와 쓰기 방식으로 파일 처리하기
- 컴퓨터 시스템의 각 부분에서 얼마큼 지연이 일어날까? |
| 12월 26일 | 9회차 | - | 회고 | - 오프라인 혹은 온라인으로 모여서 스터디 회고를 나눠요! |