NW-study / system-design-interview

8 stars 0 forks source link

[Chapter 03] Q&A #2

Open travelbeeee opened 2 years ago

travelbeeee commented 2 years ago

[Chapter 03] 시스템 설계 면접 공략법

easyfordev commented 2 years ago

Comment

  1. 1단계 - 문제 이해 및 설계 범위 확정 관련

    • 좋은 질문을 해야 한다는게 느껴지는 대화 예제이다. 개인적으로 질문을 하면 이해를 못한 것 처럼 보일까봐 뭔가 잘 안하게 되는 경향이 있는데, (특히 면접때) 이렇게 정확하고 좋은 질문으로 점점 문제를 명확하게 만들어나가는 것이 좋은 것 같다.(면접 말고 평소에 미팅할떄도!)
  2. 2단계 - 개략적인 설계와 제시 및 동의 구하기의 뉴스피드 예제 관련

    • 우선 피드 발행과 피드 생성 두가지로 flow를 나눈것이 인상깊었다. 이렇게 나누니 오히려 심플해진 것 같다. 나는 처음에 ‘피드'라는 큰 시스템으로 가져가서 생각하려고 했었다. 그리고 아래 아키텍처에서, 포스팅 저장 서비스와 포스팅 전송 서비스, 알림 서비스를 나눠서 MSA처럼 구성한 것이 인상깊다. 처음에는 ‘뉴스 피드 서비스' 이렇게 크게 그리려고 생각했었다...
    • 예) 라인웹툰 보니까 공통 댓글 시스템, 배너 시스템 다 따로따로 있었음. 네이버웹툰도 회원 시스템 따로 있었음. (타 조직의 구조도 슬쩍슬쩍 잘 참고해야겠다)

Question

  1. 채팅 시스템에서 어떻게하면 latency를 줄이고 사용자의 온/오프라인 상태를 표시할 수 있을지 를 아시는분이 있을까요? 다같이 얘기해보면 좋을 것 같아요!
    • 웹소켓
    • 책의 12장에 답이 나온다! (접속 상태만 보는 서버 or 시스템을 따로 두는 구조)
  2. 백만 사용자를 현재 수용할 수 있을 때, 천만 사용자를 감당하려면 어떻게 해야 하는가?
    • 스케일업, 스케일 아웃, 분산 프레임워크, Read Replica를 추가하여 확장... 이런 것들이 생각나는데 다른 분들의 의견도 궁금합니다!
    • ㅋㅋㅋ 천만 사용자를 감당 안하는 방법. 트래픽 제한(한번에 접속할 수 있는 유저를 제한)
      • 예) 수강신청할때 서버 열리고 접속하면 대기열
    • 우형에서는 MSA, 이벤트 기반 아키텍처로 전환 : 각 요청들을 분리해서 효과가 있는듯?