대규모 시스템이라는 용어는 신입 개발자에게 낯설게만 느껴진다.. 아키텍처 설계는 어렵고
대단한 기술이 필요하다고 생각했다.
하지만 이 책에서 신입 개발자인 내가 얻어갈 수 있는 기술적인 정보들이 상당히 많았다.
개발을 처음 하다 보면 큰 그림을 그리기가 정말 어렵다. 웹 페이지 제작만 하더라도
자바의 역할, 스프링의 역할은 무엇인지 css는 뭔지 각 블록이 어떤 식으로 조합되어 하나의 서비스가 완성되는지
그림을 그릴 수가 없다. 그렇다 보니 러닝 커브 처럼
시작을 하는 점이 정말 느리고 더디다.
이 책은 내 생각에 '가파른 가속'구간에 정말 도움이 많이 된다고 생각된다.
로드 밸런서의 역할, Scale Out(서버 수 증가)이 무엇이고 Scale Up(서버 성능 증가)보다 뭐가 좋은지
타임스탬프와 데이터센터 서버 등을 조합해서 Id를 생성하는 방법 등
경력 많은 선배 개발자에게 개발에 대한 조언을 듣는 것만 같다.
이 책은 모든 정보를 세세하게 알려주지는 않는다. 하지만 그림을 그려준다.
각 장의 면접 내용을 통해 우리는 대규모 시스템에 대해 어떻게 가정하고 접근할 수 있을지 대략적인 방법을 알게 된다.
조금 더 궁금해지고 고민이 생긴다면 그때 파고들어 보면 된다.
예컨데 나에 경우에는 'synchronized' 이 동기화란 내용을 면접에서 이야기 하지 못한 경험이 있는데
이 책에서 Scale Up으로 증가한 서버를 동기화시켜 각각의 서버가 공통된 데이터를 가질 수 있도록 해준다는 점(마치 임계영역처럼)을 알게 되었다. 학부 시절에는 단순히 쓰레드를 에서만 활용될 줄 알았지만 서버에 경우에 전문적인 용어로 설명해주는 부분을 듣고
왜 전공 지식이 중요한 지 다시금 느꼈다.
차후에는 챕터의 끝에 있던 뉴스피드나 채팅 그리고 자동완성 기능을 직접 내 서비스에 적용시켜보고 싶다.