Logic in Code,
Freedom in Travel.

인생 뭐 있나 사람 사는거 다 똑같지

도서

[IT/CS] - 면접을 위한 CS 전공지식 노트 후기

귀찮은 개발자 2024. 2. 16. 02:29 계산 중...
목차 (Table of Contents)

왜 다시 읽었나

부트캠프의 코치가 되면서 비전공자들에게 책을 추천해줘야할 때가 있었다. 대학교에서 배우던 전공책은 너무 두꺼워 시간적으로 다 공부하기에 제한적이있거 때문에 책 한권으로 끝날 수 있는 책이 필요했다. 계속 읽다보니 실무 경험이 쌓인 상태에서 읽으니 다르게 보였다. 학부 때는 이론으로만 이해했던 내용이 실무 경험과 연결되다보니 자연스러 끝까지 읽어보게 되었다.

인상 깊었던 파트

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