728x90
개요
-[내 의견] 이 책은 면접을 위한 접근 법이라 하지만 실제 팀원들과 의사소통 하며 설계해야 할 상황을 정의해 놓고 이해하며 내용을 정리하였다.
1단계. 문제 이해 및 설계 범위 확정
- 시스템 구축에 필요한 정보를 모아야 한다.
- 요구사항 및 조건을 정확하게 이해하기 위해서는 조사 및 요구사항에 대해 질문을 해야한다.
더보기
[예시]
- 구체적으로 어떤 기능들을 만들어야 하나?
- 제품 사용자 수는 얼마나 되나?
- 회사의 규모는 얼마나 빨리 커지리라 예상하나? 3,6,9개월 후 그리고 1년 뒤에 규모는 얼만큼 예상하나?
- 사용할 기술 스택은 무엇이고 설계를 단순화하기 위해 활용할 수 있는 기존 서비스로는 어떤 것들이 있는가?
2단계. 계략적인 설계안 제시 및 동의 구하기
- 계략적인 설계안을 제시하고 팀원들과의 동의를 구하기
- 설계안에 대한 최초 청사진을 제시하고 의견 구하기
- 화이트보드나 종이에 핵심 컴포넌트를 포함하는 다이어그램 그리기
- 최초 설계안이 시스템 규모에 관계된 제약사항들을 만족하는지 개략적으로 계산해보기
- 가능하면 시스템의 구체적 사용 사례 몇가지도 살펴보기 (고려하지 못한 에지 케이스를 발견할 수 있음)
- API 엔드포인트나 DB스키마 고려
3단계. 상세 설계
- 시스템에서 전반적으로 달성해야 할 목표와 기능 범위 확인
- 전체 설계의 개략적 청사진 마련
- 해당 청사진에 대한 팀원 의견 청취
- 상세 설계에서 집중해야 할 영역들 확인
- 설계 대상 컴포넌트 사이의 우선순위 정하고 성능 특성 확인 (병목 구간이나 자원 요구량 추정치 등)
4단계. 마무리
- 병목 구간 등 더 개선해야 할 부분 있는지 확인하기
- 설계 요약하기
- 오류 발생 시 무슨일이 생기는지 예상해보기
- 운영 이슈 논의 (메트릭은 어떻게 수집하고 모니터링할 것 인지, 로그 수집과 배포 방법 등)
- 추후 규모 확장 시 대처 방법 (확장 가능 여부)
'IT서적 > 가상 면접 사례로 배우는 대규모 시스템 설계 기초' 카테고리의 다른 글
06장. 키-값 저장소 설계 (1) | 2024.04.13 |
---|---|
05장. 안정해시 (0) | 2024.03.11 |
04장. 처리율 제한 장치의 설계 (1) | 2024.03.10 |
02장. 개략적인 규모 추정 (0) | 2024.03.09 |
01장. 사용자 수에 따른 규모 확장성 (0) | 2024.03.09 |