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

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

  • Books
  • 2022년 3월 21일

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

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

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

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

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

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

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

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

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

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

Tags :

Related Posts

리눅스 Timezone 설정하기

리눅스 Timezone 설정하기

1. 현재 서버 시간확인 $ date 리눅스를 설치할 때 timezone을 따로 설정하지 않으면 UTC 타임존으로 설치가 되고, date명령어로 현재 서버의 시간을 확인할 수 있다. 2. /etc/localtime 심볼릭 링크파일 수정 /usr/share/zoneinfo/에 여러 국가들의 정보가 존재하는데 바꾸고자 하는 지역을 /etc/localtime라는 이름으로 기존의...

Read More
Sorting Algorithm

Sorting Algorithm

1. 종류 선택 정렬 ( Selection Sort ) 삽입 정렬 ( Insertion Sort ) 버블 정렬 ( Bubble Sort ) 셸 정렬 ( Shell Sort ) 퀵 정렬 ( Quick Sort ) 힙 정렬 ( Heap Sort ) 합병 정렬 ( Merge Sort ) 기수 정렬 ( Radix Sort ) 계수(카운트) 정렬 ( Count Sort ) 트리 정렬 큐브 정렬 팀 정렬 2. 시간 복잡도 ( Big-O ) 알고리즘 최선 평균 최악 선택 정렬 Ω(n^2) Θ(n^2) O(n^2) 버블 정렬 Ω(n) Θ(n^2) O(n^2) 삽입 정렬 Ω(n) Θ(n...

Read More
Hugo와 Github page로 블로그 구축

Hugo와 Github page로 블로그 구축

Note 블로그를 작성하기로 마음 먹은 후에 가장 먼저 할 일이 블로그를 만드는 것이었다. hugo와 github을 사용하면서 블로그를 open하는 과정과 겪었던 문제점들, 추가한 내용들을 정리하여 hugo를 선택하신분들에게 조금이나마 도움이 되고자 한다. hugo를 선택한 이유 github page를 이용하여 블로그를 운영하는데 다양한 generat...

Read More