
책을 선택한 계기
작년 SSAFY 과정을 진행하며 CS 공부를 많이 하게 되었다. 그런데 실제 채용 면접을 경험하면서 단순히 이론적인 지식만으로는 부족하다는 사실을 알게 됐다. 면접관들은 내가 이론을 얼마나 아는지보다, 실무에서 예상치 못한 문제 상황이 닥쳤을 때 CS 지식을 바탕으로 얼마나 효과적으로 해결할 수 있는지를 궁금해한다는 느낌을 많이 받았다.
즉, CS가 중요하다는 말은 단순히 퀴즈를 잘 맞히는 사람을 원한다는 뜻이 아니라, 이론을 바탕으로 실제 문제를 해결할 수 있는 능력을 갖추는 것이 중요하다는 의미였다.
이런 고민을 하던 중, 주변에서 추천받아 읽게 된 책이 바로 이 책이었다.
처음 이 책을 읽었을 때 정말 재미있었다. 내가 한 번도 경험해보지 못한, 엄청난 대용량 트래픽이 오가는 서비스를 설계할 때는 단순히 알고리즘만으로 최적화를 하는 게 아니라, 다양한 요소에서 성능을 높이고 수많은 예외 상황에 대비해야 한다는 점이 인상 깊었다. 오랜만에 시간가는줄 모른채로 책을 읽고 주변에 책 추천도 하고 다녔다.
개발자로 일한 지 아직 8개월 차밖에 되지 않았지만, 다시 이 책을 읽어보니 단순히 책에서 소개하는 기술이나 스킬보다도, 문제를 해결해 나가는 과정이 이 책의 진짜 가치라는 걸 느꼈다. 작년의 나는 또다시 퀴즈를 준비하듯 책을 읽었던 것이다.
책에는 정말 다양한 문제들과 해결 방법이 나오는데 스케일-아웃, 로드 밸런서, 로그 모니터링 시스템 등등.. 이는 내가 미니 PC로 개발한 프로젝트에도 모두 적용해 보기도 했다. 이 다양한 문제들과 기술들에서 해결 방법은 모두 하나의 흐름으로 통한다.
문제 이해 및 설계 범위 확정
어떠한 요구 사항이 주어질때 가장 중요한 점은 답을 빠르게 내놓는 것이 아니다. 바로 문제 해결을 위한 정보들을 하나씩 모으는 것이다.
예를 들어 뉴스 피드 시스템을 설계하라는 요구를 받았을때 다음과 같은 질문들을 하며 정보를 모아야한다.
- 구체적으로 어떤 기능들을 만들어야 하나
- 제품 사용자 수는 얼마나 되나
- 회사의 규모는 얼마나 빨리 커지리라 예상 하는가
- 회사가 주로 사용하는 기술 스택은 무엇인가
뉴스 피드 시스템을 설계하라는 요구는 언뜻 보면 별로 질문할 거리가 없을것 같지만 매우 모호한 주제이므로 이런 질문들을 통해 요구사항을 이해하고 모호함을 없애는 것이 중요하다.
개략적인 설계안 제시 및 동의 구하기
요구사항을 완벽하게 이해했다면 다음 단계는 개략적인 설계안을 제시하고, 동의를 구하는 것이다.
개략적인 설계안 없이는 다른 사람은 물론, 자기 자신도 설계를 이해하거나 기억하기 어렵다.
먼저 개략적인 설계를 진행 한뒤 동료들의 동의를 구하는 과정이 필요하다.
이 과정에서 설계를 발전 시키고 미처 고려하지 못한 에지 케이스를 발견할 수 있을 것이다.
상세 설계 및 마무리
개략적인 설계 만으로는 실제로 서비스가 동작할 수 없다. 따라서 세부적인 설계로 들어가면서, 구체적인 기술 선택, 데이터 흐름, 장애 대응 방안 등 여러 요소를 하나하나 따져봐야 한다. 이 과정에서 예상치 못했던 문제나 개선할 점이 계속해서 발견되고, 이런 부분을 동료들과 논의하며 보완해가는 과정이 중요하다.
책을 읽으면서 가장 크게 느낀 점은, 정답을 빠르게 내놓는 것보다는 문제를 정확하게 정의하고, 체계적으로 접근하는 태도가 훨씬 중요하다는 것이다. 특히 여러 번의 피드백을 통해 설계를 수정하고, 다양한 시각에서 문제를 바라보는 경험이 쌓여야만 더 나은 결과를 만들 수 있다는 것을 다시 한번 깨달았다.
아직 개발자로서 경험이 부족하지만, 이 책을 통해 ‘문제를 푸는 과정’ 자체의 소중함과 즐거움을 배웠다. 앞으로도 새로운 문제를 만날 때마다 이 책에서 배운 접근 방식을 바탕으로 차근차근 문제를 정의하고, 설계해나가는 습관을 길러가고 싶다.
https://product.kyobobook.co.kr/detail/S000001033116
가상 면접 사례로 배우는 대규모 시스템 설계 기초 | 알렉스 쉬 - 교보문고
가상 면접 사례로 배우는 대규모 시스템 설계 기초 | 페이스북의 뉴스 피드나 메신저,유튜브, 구글 드라이브 같은 대규모 시스템은 어떻게 설계할까? IT 경력자라도 느닷없이 대규모 시스템을 설
product.kyobobook.co.kr
'독서록' 카테고리의 다른 글
| [독서록] 나태한 완벽주의자 (0) | 2025.10.18 |
|---|---|
| [독서록] 클라우드 컴퓨팅 (1) | 2025.09.28 |
| [독서록] 개발자의 글쓰기 (1) | 2025.08.24 |