스터디 포스트 >  시스템 설계 한번에 인터뷰 합격하기

탑셀러

김재엽 멘토
매일 조금씩 발전하려고 노력중인 개발자 입니다 :)

시스템 설계 한 번에 인터뷰 합격하기 - 3주차

 
💡
탑 셀러 조회기능
 

1단계: 요구사항분석

  • 항목별로 하위 품목이 있고, 이 또한 탑셀러가 적용되야 합니다.
      1. 가장 많이 팔린 책
        1. 가장 많이 팔린 공상과학 소설
      1. 가장 많이 팔린 가전제품
        1. 가장 많이 팔린 노트북
  1. 탑 셀러 목록에 대한 기준을 설정합니다.
    1. 얼마나 최신 데이터를 사용자들에게 보여줘야 할까
      1. 보통 하루의 한번으로, 굳이 실시간 일 필요는 없다.
      2. 매출증가를 유발하는 큰 유행이나, 주요 제품의 출시가 있을 경우 더 자주 반영
    2. 어느 기간동안의 판매량을 탑셀러로 정의할까
      1. 2주나 1달이나 적당한 기간을 주면 좋을거 같다.
      2. 카테고리를 추가로 넣어 ex)코로나 시대, 바로크시대, 대항해시대 등 기간별 탑셀러를 추가로 넣으면 더 흥미롭게 다가갈 수 있을 것 같다.
      • 여러 식당이 있습니다.
 

2단계: 설계

설계 포인트

  • 요구사항을 명확하게 만들기
  • 데이터
  • 확장 가능한 시스템을 설계
  • 캐싱
 

시스템 설계 사례

  1. 데이터 웨어하우스데이터 레이크같은 구매정보 DB가 있을것이다. 하지만 여기에 쿼리를 진행하면 마비가 될 수 있다. 그래서 이 DB의 사본을 가져옵니다.
  1. 대규모 SQL쿼리를 위해 Amazon Athena 또는 고유의 레드시프트 클러스터가 있는게 좋게습니다.
  1. 매일 수차례 탑셀러를 재 계산하는 오프라인 배치프로세스를 생각합니다.
  1. 이를 위해 아파치 스파크같이 다중설계가 구축되어 있고, 데이터분석이 가능한것을 이용합니다. 좀 더 단순화를 위해 일레스틱 맵리듀스도 생각해 볼 수 있습니다.
  1. 웹서버에서 데이터베이스에 접근할 때 초당 수천건의 요청이 이루어 질 수있습니다. 이를 위해서 데이터 베이스 호스트1개를 전담시키고 이 데이터베이스와 웹 서버간 캐시가 필요합니다. 이건 멤캐시드레디스같은걸 생각할 수 있습니다.
  1. 상위 품목 ID의 목록인 키값 데이터뿐이므로 NOSQL유형의 데이터 저장을 사용할수 있을 것입니다.
notion image
 
 

3단계: 스터디 후 필요한 내용

인터뷰에서 추가로 고려한 내용들

  • 캐시 초기 시작 문제
  • 아파치 스파크
  • 빅데이터 관련 지식
 
 
 

 
 
본 스터디는 Udemy의 <【글로벌 Best】 시스템 설계 (System Design) : 한번에 인터뷰 합격하기 (한글자막)> 강의를 활용해 진행됐습니다. 강의에 대한 자세한 정보는 아래에서 확인하실 수 있습니다.
 
 
프밍 스터디는 Udemy Korea와 함께 합니다.
 
 

 
원하는 스터디가 없다면? 다른 스터디 개설 신청하기
누군가 아직 원하는 스터디를 개설하지 않았나요? 여러분이 직접 개설 신청 해 주세요!
이 포스트는
"시스템 설계 한번에 인터뷰 합격하기" 스터디의 진행 결과입니다
진행중인 스터디
시스템 설계 한번에 인터뷰 합격하기
외국계 뿐만이 아니라 국내 기업 채용에서도 시스템 설계 인터뷰를 진행하고 있습니다. 그리고 junior와 senior를 구분짓는 능력 중 하나를 시스템 설계를 꼽고 있습니다. 개발자로서 그만큼 중요한 능력을 방향성을 잡고 제대로 키우기 위해서 이번 기회에 준비해보고자합니다.
김재엽 멘토
매일 조금씩 발전하려고 노력중인 개발자 입니다 :)