Skip to content

depromeet/17th-system-design-study

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

17th-system-design-study

17기 시스템 디자인 스터디 레포입니다.

🐾 스터디 진행 방식이에요

스터디 진행 방식은 다음과 같습니다.

다음주 토픽에 대해 먼저 사전 공지가 나가게 됩니다.

해당 토픽에 대해서 기능적 요구사항과 비기능적 요구 사항들을 정리를 해서 전달해드릴거에요

아래는 예시입니다!!

기능적 요구사항 (Functional Requirements)

기본 요구사항

  1. 사용자는 다른 사용자를 팔로우할 수 있어야 한다. 한 유저당 최대 1,000명 팔로우, 1인당 최대 100만 팔로워
  2. 사용자는 트윗(tweet)을 작성할 수 있어야 한다. 하루 평균 5억 트윗 발생, 1초당 평균 6,000~10,000 TPS (write)
  3. 사용자는 자신의 타임라인에서 팔로우한 사용자의 트윗을 볼 수 있어야 한다. 피드 조회 요청: 1초당 수십만~백만 RPS, 피드에는 최대 500개 트윗 표시
  4. 타임라인은 시간순으로 정렬되어야 한다 (최신순). 시간순 정렬 기준: 서버 기준 UTC timestamp
  5. 타임라인은 페이지네이션(pagination)을 지원해야 한다. 페이지당 20~50개 트윗, cursor-based pagination 권장
  6. 데이터 일관성 지연: 1~5초 허용 범위 내 eventual consistency

비기능적 요구사항 (Non-Functional Requirements)

  • 타임라인 요청에 대한 응답 시간은 200ms 이하로 유지한다.
  • 매일 수억 개의 트윗이 생성될 수 있으므로, 쓰기(Write)가 많은 시스템이어야 한다.
  • 뉴스피드 조회는 대량의 읽기(Read) 요청을 수반하므로 고성능 캐시가 필요하다.
  • 팔로우 수가 많은 사용자(예: 셀럽)의 트윗도 효율적으로 전파되어야 한다.
  • 장애가 발생해도 트윗 조회 및 작성이 중단되지 않아야 한다 (고가용성).

벌써 보기만 해도 어렵죠? 이러한 내용들을 정리를 해서 전달드리면 다음과 같은 항목을 위주로 스터디를 준비하시게 될거에요

  • 데이터 ERD 스키마 설계
  • 개략적인 API 설계
  • TPS 계산 및 개략적인 데이터 용량치 추산
  • 그 외 모르는 키워드 공부
  • 요구사항 정리 → 설계 흐름 → 다이어그램 그리기 연습을 엄청 많이 하시게 될거에요

과연 내가 이걸 이렇게 구성 하는게 맞을까? 하는 의구심과 이런걸 내가 만들 수 있을까? 하는 생각들도 있을거에요

하지만 괜찮아요 !

빅테크 개발자들도 하루아침에 고민해서 만든게 아니라 몇날 며칠을 고민해서 만든 시스템이다 보니

우리가 짧은 시간안에 아이디어 구상이나 아키텍처를 완성하지 못하도 괜찮아요.

우리는 한정된 시간 속에서 우리가 생각한 최고의 정답을 도출 해는게 목표입니다.

그리고 그게 실제로 구현하려고 했을 때 틀렸을 수도 있어요.

그러면 결국 어떤것들이 목표냐?

정해진 시간안에 어떠한 문제가 있을 때 그거에 대해 깊이 고민하고 정답을 찾는 과정을 연습 하려고해요

그렇기 때문에 토론 방식으로 진행 할 예정이에요.

모이는 날에는 다음과 같은 방식으로 진행 할 예정입니다.

00 : 00 ~ 00: 10 아이스 브레이킹 및 근황 토크
00 : 10 ~ 00 : 25 주제 개념 공유 및 기능적 요구 사항과 비기능적 요구 사항에 대한 점검, 크로스 체크
00 : 25 ~ 01 : 30 각자 아키텍처 구상 한 아키텍처에 대해 발표 하는 시간 및 리뷰 피드백
01 : 45 ~ 02: 30 우리가 생각 할 수 있는 최고의 아키텍처를 구현
02:30 ~ 03:00 회고

아마 위와 같은 타임 테이블대로 진행이 될 거같아요.

About

17기 시스템 디자인 스터디 레포입니다.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •