왜 다시 읽었나
부트캠프의 코치가 되면서 비전공자들에게 책을 추천해줘야할 때가 있었다. 대학교에서 배우던 전공책은 너무 두꺼워 시간적으로 다 공부하기에 제한적이있거 때문에 책 한권으로 끝날 수 있는 책이 필요했다. 계속 읽다보니 실무 경험이 쌓인 상태에서 읽으니 다르게 보였다. 학부 때는 이론으로만 이해했던 내용이 실무 경험과 연결되다보니 자연스러 끝까지 읽어보게 되었다.
인상 깊었던 파트
1. 네트워크
- TCP 3-way handshake: Load Balancer 설정할 때 이해 필수
- HTTP/2 멀티플렉싱: API 성능 최적화와 연결
- DNS 동작: Route53 설정 시 직접 경험
2. 운영체제
- 프로세스 vs 스레드: 멀티스레딩 서버 디버깅 시 활용
- 데드락: 실제 프로덕션에서 겪은 DB lock 상황과 동일
- 가상 메모리: 컨테이너 메모리 제한 설정 이해
3. 데이터베이스
- 인덱스 자료구조: B-Tree 이해가 쿼리 최적화로 연결
- 트랜잭션 격리 수준: 동시성 이슈 해결에 필수
- 정규화: 테이블 설계 시 실제 적용
실무 연결 예시
책에서 배운 것
- "TCP는 연결 지향적이며 신뢰성을 보장한다"
실무에서 경험한 것
- 문제: API 타임아웃 빈발
- 원인: TCP Keep-Alive 미설정으로 connection pool 고갈
- 해결: Keep-Alive 설정 + connection pool 사이즈 조정
면접에서 실제로 나온 질문
- "Redis는 왜 싱글 스레드인가?" → 이벤트 루프 개념 필요
- "인덱스가 항상 좋은가?" → 쓰기 성능 트레이드오프 이해
- "동시성 제어를 어떻게 했나?" → 낙관적/비관적 락 구분
추천 대상
- 면접 준비 중인 개발자
- 실무 경험 1~3년차 (이론과 실무 연결 시점)
- CS 기초가 부족하다고 느끼는 개발자
이론은 실무의 "왜"를 설명해주기 때문에 둘 다 중요하다.
'도서' 카테고리의 다른 글
| [IT/CS] - Clean Code (클린 코드) (0) | 2024.05.07 |
|---|---|
| [IT/방법론] - 테스트 주도 개발 시작하기 Java (0) | 2024.02.16 |