가상면접 사례로 배우는 대규모 설계 기초를 읽고

Section

나는 얇은 책이거나 꼭 소장할 책이 아니라면 주로 알라딘 에서 ebook으로 책을 구매해서 읽는다.(전공 서적은 주로 너무 두꺼워 집에 둘 곳이 없다…)

책을 구매한 날도 알라딘에 어떤 ebook이 등록되었나 보고 있었고, 이 책의 제목이 굉장히 흥미를 끌었고 바로 구매를 해버렸다. 처음 구매후, 11장 까지는 굉장히 재미있게 읽어가다가 점점 루즈해져갔고, 읽는것을 한동안 중단했었다. 업무가 바쁘기도 했고 다른 DDD책이 더 재미가 있었다..
그러다가 최근 부터 이직준비를 조금씩 하고 있었는데, 이 때문인지 책을 다시 읽기 시작했고 11장 부터 끝까지 한번에 다 본 것 같다.


책의 Flow는 장마다 같은 느낌으로 흘러간다.

단독 시스템부터 대규모 시스템까지 한가지 주제를 가지고 면접을 본다는 가정하에 어떤 방법으로 설계를 해나가는지를 보여준다.
면접의 주제는 책의 목차에서도 알 수 있는데 다음과 같은 주제들이 있다.

  • 처리율 제한 장치
  • 안정 해시
  • 키-값 저장소
  • 유일 ID 생성기
  • Short URL
  • 웹 크롤러
  • 알림
  • 뉴스 피드
  • 채팅
  • 검색어 자동완성
  • 유튜브
  • 구글 드라이브

굉장히 다양한 주제를 다루고 있기도 하고, 설계의 방법은 정답이 없기때문에 주제마다 자세하게 들어가 설명을 진행하지는 않고 있다.

이 때문에, 사람에 따라서는 많은 것을 배워 갈 수 없는 책일 수도 있다. (마지막 장인 16장에는 참고한 빅테크들의 블로그, 포스트, 논문 등의 링크가 첨부되어있어 자세한 부분은 해당 링크 참고하라고 한다..)


하지만 나한테는 많은 도움이 된 책이었다. 아직 1년이 안된 주니어 개발자인 나의 입장에서 봤을때 면접질문은 주로 cs나 알고리즘, 나아가면 토이 프로젝트 중의 문제점 등이 되었다.

실제 대규모 시스템은 물론, 기획자와 같이 협업을 했었던 적도 없기에 요구사항에 맞는 설계는 해본적이 없었기에 설계 면접은 어떤 방식으로 진행되는 것인지 상상이 안되었으며 답변도 어떻게 해야하는 지 미지의 영역이었다.

그런데 이 책을 읽고 설계 면접의 목적이 이해가 되었고, 그에 맞게 커뮤니케이션을 통해 요구사항을 조절하는 방법 등 나에게는 많은 인사이트를 주는 책이었다.

책 리뷰중에 신입개발자와 시니어보다는 3~5년차 개발자에게 가장 추천하는 책이라는 리뷰도 있는데, 어느정도는 공감하지만 나는 신입개발자도 한번쯤 읽어보면 꽤 많은 인사이트를 얻어갈 수 있을 것이라고 생각이 든다.
책 내용도 전체적으로 가볍기 때문에 슬슬 읽다보면 금방 읽는다.