대규모 시스템 설계 스터디 후기
- 참여 기간 : 4월 20일~6월21일 (2개월)
- 스터디 주제 : '가상 면접 사례로 배우는 대규모 시스템 설계 기초' 책을 매주 스터디
- 스터디를 신청한 이유 : 대규모 시스템에서는 어떻게 인프라를 구축할지, 고려해야할 사항은 뭔지 궁금하였는데 이 책이 좋다는 소문을 들어서 스터디에 참여하게 되었습니다.
- 스터디를 참여 시작할 때 세웠던 목표
- 1. 책 완독
- 2. 손으로 짜보기
- 진행 과정
- 한 주에 1~2장을 읽고 내용을 정리한다.
- 정해진 발표자가 해당 날에 스터디를 진행한다.
들어가며
지난 2개월 동안 '가상 면접 사례로 배우는 대규모 시스템 설계 기초' 책으로 스터디를 진행했습니다. 이 글에서는 제 스터디 경험을 공유하고자 합니다.
대규모 시스템의 인프라 구축 방법과 고려사항에 대한 궁금증이 있었고, 이 책이 좋다는 평판을 듣고 스터디에 참여하게 되었습니다.
주요 학습 내용
이 책은 대규모 시스템 설계의 핵심 원칙과 주요 기술 컴포넌트를 상세히 다루고 있습니다. 로드 밸런싱, 캐싱, 데이터 파티셔닝 등의 개념을 학습하였고, 실제 사례 연구를 통해 이론을 실전에 적용하는 방법을 배웠습니다.
특히 인상 깊었던 사례는 URL 단축기와 검색 엔진 설계였습니다. 이 사례들을 통해 실제 대규모 시스템이 어떻게 구축되고 운영되는지 이해할 수 있었습니다.
스터디 진행 방식과 팀 경험
매주 1~2장씩 책을 읽고 내용을 정리하는 방식으로 진행되었습니다. 매주 정해진 발표자가 해당 주차의 내용을 발표하고, 이를 바탕으로 토론을 진행했습니다.
팀원들과의 협력이 매우 중요했는데 특히 복잡한 개념을 이해하는 데 어려움을 겪을 때, 팀원들과의 토론을 통해 문제를 해결할 수 있었습니다. 이 과정에서 다양한 관점을 접하고, 아는 개념도 다시 한번 생각하여 말로 표현함으로써 내재화 시킬 수 있었습니다.
스터디를 통한 성장과 인사이트
이 스터디를 통해 대규모 시스템 설계에 대한 시각이 넓어졌고, 실제 업무에 적용할 수 있는 많은 팁들을 얻었습니다.
가장 큰 인사이트는 확장성(Scalability)의 중요성이었습니다. 시스템을 설계할 때 미래의 성장을 고려해야 하며, 이를 위해 모듈화와 분산 처리 등의 기법을 적절히 활용해야 한다는 점을 이해하게 되었습니다.
특히 이 스터디에서 가장 유익했던 점은 직접 시스템 설계를 실습해 보는 것이었습니다. 책에서 배운 내용을 바탕으로 다양한 시스템 설계 예시를 직접 생각해보고 그림으로 그려가며 구축해 보았습니다. 이 과정에서 실제 시스템 설계 시 고려해야 할 다양한 요소들을 생각해볼 수 있었습니다.
또한, 잘 모르는 부분이 있을 때마다 GPT에 질문을 하며 학습을 보완했습니다. 이 과정에서 더 효율적으로 GPT를 활용하기 위해 ChatGPT Plus를 직접 구현해 보았습니다!(https://chatgpt.com/g/g-5k2Ou5dTn-system-designer)
이를 통해 책의 예제 뿐만 아니라 내가 만들고 싶은 기능의 실제 대규모 시스템 설계를 체험할 수 있었습니다.
마치며
스터디를 시작할 때 세웠던 두 가지 목표인 책 완독과 직접 손으로 설계해보기를 모두 달성할 수 있었습니다. 이 과정을 통해 대규모 시스템 설계에 대한 인사이트를 얻었고, 앞으로 실제 프로젝트에 이 지식을 적용해볼 계획입니다.
단순히 읽는 것에 그치지 않고 실제로 설계를 해보면서 많이 배울 수 있었습니다. 또한, 팀원들과의 활발한 토론을 통해 다양한 관점을 접하는 것도 도움이 되었습니다.
대규모 시스템 설계에 관심 있다면 이 책을 강력히 추천합니다. 기회가 된다면 2권도 학습해 볼 생각입니다!