힘들었다. 책 난이도 때문은 아니다. 오히려 지난번에 읽었던 데이터 중심 애플리케이션 설계에 비하면 훨씬 쉬운 책이었다. 그럼에도 힘들었던 이유는 평일 내내 오피스 출근 + 퇴근 후 운동 + 다른 프로젝트 및 스터디를 병행하면서 읽었기 때문이다. 하지만 이번 경험으로 시간을 쪼개서 아껴 쓰는 법을 배울 수 있지 않았나 싶다.
솔직히 다른 분들과 함께 한 스터디가 아니었다면 완주하지 못했을 것 같다.😇🥲 다음번에는 좀 더 시간을 아껴서 잘 써야겠다.
시리즈 글을 보면 알 수 있듯이, 각 챕터별로 서비스 하나를 정해서 처음부터 설계하는 식으로 구성된 책이다. 스터디원들도 공감한 내용인데 초반 내용보다 후반 내용이 재밌다. 초반에는 시스템 설계를 위한 이론적인 내용이 주를 이루지만 그런 내용은 모두 추진력을 얻기 위함이었고 후반부에서 '알림 시스템 설계', '채팅 시스템 설계'와 같이 딱 봐도 재밌어보이는 내용이 나오기 때문이다. 설계에 대한 내용은 컴퓨터공학과 수업에서 다루지 않기 때문에 + 실제 서비스가 비슷하게 생겼을거란 생각에 정말 재밌게 읽었다.
2개 이상 서비스에서 공통적으로 사용되는 컴포넌트나 기법, 혹은 주제가 있었다. 이를 정리해보면... 무려 6개나 된다.
2장에서 처음 소개 되고, 나머지 대부분의 장에서 등장한다.
어떤 설계가 요구사항에 적합한지 보기 위해, 일반적인 성능 수치를 가정하고 사고 실험을 하여 추정치를 계산하는 것
을 의미한다. 즉, 내가 만들 서비스가 대략 어느정도의 리소스를 잡아먹고 어느정도의 성능을 낼 것인지를 추정해보는 작업이다.
대략 4.2점/5점 정도? 이유는 다음과 같다.
위에서 언급했듯, 책 내용 자체가 대학교 강의에서 쉽게 들을 수 있는 내용이 아니다. 물론 개별 서비스에 대한 설계는 유투브에 치면 잘 나오지만, 이걸 체계적으로 묶고 초반 빌드업을 통해 독자들을 이해시키기 위한 책이 있다는 사실에 꽤 높은 점수를 주고 싶다.
책 중간중간에 그림이 많이 나온다. 설계 관련 내용은 그림이 없으면 이해하기 쉽지 않은 경우가 있는데, 직관적이고 깔끔한 그림 덕분에 이해가 한층 수월했다. 각 그림에 대한 설명도 구체적이어서 좋았다.
후반부 각 서비스별 설계 파트는 대부분 개략적 규모 추정 - 전체적인 설계 - 세부 컴포넌트 설계
순서로 진행되었다. 전체를 먼저 보고 부분을 보는 구성 덕분에 이해하기 쉬웠던 것 같다. 좋은 개발자의 덕목 중 하나인 '일관성 있게 처리하기' 도 잘 지켜줘서 마음에 들었다.
각 장이 끝날 때마다 참고 문헌과 링크를 걸어놓았다. 책 마지막 장은 사실 15장이 아닌 16장인데, 여기서는 더 읽어볼만한 글이나 블로그 링크를 잔뜩 소개하고 있다. 아직 다 읽어보진 못했지만 시간이 된다면 더 읽어보고 싶다.
'구글 드라이브 설계' 라고 제목을 지어놓았길래 '오 드디어 구글 드라이브의 공유 문서 동시 편집 기능을 뜯어볼 수 있는건가!!'하고 설렜는데 막상 이 내용만 쏙 빼놓았다던가(그래서 15장은 대충 읽었고 포스팅도 스킵해버렸..다는 핑계를 대어본다.;), '유투브 설계' 라는 제목을 하고선 사실상 '비디오 업로드 시스템 설계'에 대한 내용만 적어놓는 등 제목 낚시를 한 장이 좀 있다. 11장 뉴스 피드 시스템 설계에선 이런 말을 했을 정도..ㅋㅋ
특정 프레임워크나 언어에 대한 스터디가 아니라서 아무도 관심을 주지 않으면 혼자 할 각오로 모집한 스터디였는데, 의외로 2분이나 신청해주셨다. 게다가 다들 의욕적으로 참여해주셔서 많은 자극을 받을 수 있었다.
처음에는 이렇게 진행했다.
각자 1주일 분량 공부해서 정리 글 적고, 스터디 발표 당일 사다리타기를 통해 발표자 정하기
그런데 이런 단점이 있었다.
그래서 이렇게 바꿔보았다.
각자 1주일 분량 공부해서 새롭게 알게 된 점, 어려웠거나 이해 못 한 부분, 추가 내용 정리하기. 새롭게 알게 된 점은 최대한 간단히 적고 스터디 당일에
어려웠거나 이해 못 한 부분, 추가 내용
위주로 서로 의견 나누기.
결과는 꽤 좋았는데
딱 3~4명 같은 소수 인원에서 진행하기 괜찮은 방법인 것 같다.
저도 스터디를..