|
이서현 스터디 리더 |
최애림 스터디 리더 |
오일우 스터디 리더 |
이해준 스터디원 |
정민혁 스터디원 |
주정윤 스터디원 |
윤민섭 스터디원 |
장민호 스터디원 |
이윤서 스터디원 |
정금종 스터디원 |
정유정 스터디원 |
최우성 스터디원 |
《가상 면접 사례로 배우는 대규모 시스템 설계 기초》 1, 2권 및 추가 자료조사를 바탕으로 스터디와 프로젝트를 진행합니다.
최근 AI 코딩 도구의 발전으로 코드를 AI에게 맡기는 추세로 변화하면서, 개발자에게는 설계 역량이 더욱 강조되고 있습니다. 이에 저는 시스템 설계 및 패턴에 대한 원론적인 공부를 할 필요성을 느꼈습니다. 또한, 평소 다양한 IT 시스템들이 어떤 아키텍처 아래에서 동작하는지, 해당 아키텍처가 어떤 요구사항 및 목적 하에서 구성되었는지 궁금증을 느껴왔어서 스터디를 만들게 되었습니다.
- 다양한 도메인의 환경과 요구사항을 살펴보고, 각 도메인의 시스템이 어떤 아키텍처로 설계되었는지 학습
- 매주 구체적인 도메인 또는 시스템 유형을 정하고, 그 특징에 맞게 시스템 아키텍처를 설계해봅니다. 핵심 요구사항을 바탕으로 기술들을 선택하고, 관련 지식을 학습하는 방식으로 구상했습니다.
- 유사한 요구사항을 가진 시스템들이 공통적으로 갖는 아키텍처 패턴을 이해하고, 차이가 발생하는 이유도 비교합니다.
- ex. 이벤트 및 메시징, API 통신, 실시간 전달, DB와 캐시, 모니터링 등의 기술이 각 도메인에서 어떤 맥락으로 선택되는 걸까?
- 조사, 발표, 실습하는 과정에서 각 기술의 장단점과 trade-off를 체화
- 스터디 완주까지 요구사항 분석, 아키텍처 추론, 기술 선택 이유, 구현 결과가 정리된 산출물을 남기는 것을 목표
- 가상 면접 사례로 배우는 대규모 시스템 설계 기초
- 가상 면접 사례로 배우는 대규모 시스템 설계 기초 2
- 구글 속 수많은 자료들~
💡 책은 참고자료로 활용 계획입니다.
- 주차별 온라인 + 오프라인 융합 (매 회차 1시간 30분 정도 진행)
- 지난 주차 과제 발표 70분 + 다음 주차 개괄 세션 발표 20분
- 스터디 시간: 수요일 오후 10시 ~ 11시 30분
- 매주 각 주차 과제에 대한 PR을 올립니다.
- 브랜치명은
주차-이름형식으로 생성합니다.- ex)
week2-aerim
- ex)
- 주차별 폴더(
weekN)에 각자의md파일을 작성하여 제출합니다.- ex)
week2/aerim.md
- ex)
- PR은 스터디가 끝난 후 리더들이 일괄적으로 머지합니다.
- 사전 전달 없이 늦지 않기, 늦참/불참 시 언제든 연락 💌
- 매주 과제 수행
- 여러 컴포넌트들로 구성된 아키텍처 구조도를 이해해 본 개발자
- 평소 다양한 시스템 아키텍처 구조가 궁금했던 학생 / 현직자
- 클라우드 아키텍처 설계에 관심이 있는 엔지니어
- 서비스 기능을 볼 때 내부 설계, 데이터 흐름, 통신 구조까지 추론하는 힘을 기르고 싶은 개발자
💡 '궁금하고 알고 싶다!'는 호기심을 원동력으로, 같이 배우는 관점에서 진행합니다.
- 팀원들은 개괄 세션 발표 선택
- 발표는 PPT 아니고 노션이어도 됩니다
- 도메인 지식 및 서비스 예 기본 리서치 + 어떤 종류의 시스템을 만들어야 하는지, 어느 요구사항을 만족해야 하는지 가이드 및 문제를 내는 역할
- 발표는 PPT 아니고 노션이어도 됩니다
⚠️ 주제 및 세부 내용은 1주차 진행 후 팀원들의 관심사에 따라 달라질 수 있습니다.
| 주차 | 주제 | 세부 내용 | 발표자 |
|---|---|---|---|
| Week 1 | 개괄 및 기본 지식 학습 | 대규모·실시간 시스템에서 자주 등장하는 지연 시간, 처리량, 병목 지점, 이벤트 유실, 중복 처리, 순서 보장, 최종 일관성, fan-out, polling/push 방식 등 기본 개념을 학습합니다. 동기/비동기 처리, API 통신 방식, 실시간 전달 방식, 메시지 큐와 이벤트 기반 구조의 차이도 함께 정리합니다. 이후 각 도메인을 분석할 때 사용할 요구사항 분석 기준, 데이터 흐름, 장애 시나리오, 아키텍처 비교 관점을 정리합니다. |
이서현 |
| Week 2 | 이동·위치 기반 실시간 시스템 | 배달 위치 추적, 경로 안내, 주변 대상 탐색, 러닝앱 같은 서비스를 분석합니다. 위치 업데이트 주기, 근접성 검색, geohash, Redis GEO를 중심으로 위치 데이터를 저장·조회하는 방식을 비교합니다. 위치 이벤트와 이동 상태가 서버로 수집되고 사용자에게 전달되는 흐름을 살펴보며, 실시간성과 정확도, 비용 사이의 관계를 파악합니다. (선택 실습) 위치 업데이트 또는 근접성 검색 일부를 구현합니다. |
3주차 주제 발표 주정윤, 문영호 |
| Week 3 | AI 서비스 및 Agent 도구 시스템 | ChatGPT, Claude 같은 AI 웹 서비스와 Agent 기반 개발 도구를 분석합니다. 사용자 질문 직후 바로 모델 응답으로 가는 것이 아니라, 파일 탐색, 코드 수정, 명령 실행, 결과 검증 등 여러 도구 호출로 이어지는 구조를 살펴봅니다. 긴 작업 처리, 스트리밍 응답, 작업 상태 관리, 컨텍스트 관리, 권한 제어, 실패 복구 같은 요구사항이 아키텍처에 미치는 영향을 정리합니다. Tool Calling, 비동기 작업 처리, 이벤트 스트림 기반 상태 전달 구조를 조사합니다. |
4주차 주제 발표 정금종, 최애림 |
| Week 4 | 커머스·콘텐츠 이벤트/피드·랭킹 시스템 | 상품 조회, 클릭, 좋아요, 구독, 콘텐츠 조회 같은 사용자 행동 이벤트가 피드 생성, 알림, 추천, 실시간 랭킹에 어떻게 반영되는지 분석합니다. Fan-out on write/read, 메시지 큐, 캐시, Redis Sorted Set, rate limit, idempotency, retry 전략을 비교합니다. 대량 트래픽 상황에서 피드 갱신과 알림 발송, 인기 순위 산정을 안정적으로 처리하는 구조를 확인합니다. |
5주차 주제 발표 윤민섭, 이해준, 최우성 |
| Week 5 | 제조·센서 데이터 수집 및 이상 탐지 시스템 | 반도체 등 제조 설비, 센서 데이터, 품질 지표, 운영 로그처럼 지속적으로 발생하는 이벤트를 수집·처리하는 시스템을 분석합니다. Kafka 기반 이벤트 수집, 스트림 처리, 데이터 파이프라인, 시계열 데이터 저장, 임계치 기반 알림, 이상 탐지, 모니터링 구조를 비교합니다. (선택 실습) 데이터 유실, 처리 지연, 알림 정확도, 저장 비용 사이의 trade-off를 정리하고, 이벤트 수집 또는 이상 탐지 흐름 일부를 구현합니다. |
6주차 주제 발표 이윤서, 정유정, 한승현 |
| Week 6 | 금융·주문·예약 정합성 시스템 | 결제, 주문, 예약, 재고 차감처럼 데이터 정합성이 중요한 시스템을 분석합니다. 트랜잭션, 락, 멱등성, Outbox Pattern, 이벤트 기반 후처리, 장애 복구 전략을 비교합니다. 실시간성보다 정확성이 중요한 도메인에서 아키텍처 선택이 어떻게 달라지는지 정리합니다. (선택 실습) 트랜잭션 보장 흐름 일부를 구현합니다. |
7주차 주제 발표 오일우, 정민혁 |
| Week 7 | 자유 주제 | 자유롭게 진행 | - |
| Week 8 | 최종 프로젝트 발표 (6/21) | 단기간 해커톤 형식으로 팀별 하나의 서비스를 기획하고 아키텍처를 구축한 뒤 데모를 구현합니다. [1일 이내 / 오프라인 팀 진행 / 불참자는 온라인 개별 진행] 요구사항 분석, 아키텍처 다이어그램, 기술 선택 이유, trade-off, 핵심 컴포넌트 구현 결과를 발표합니다. |
- |