시스템 디자인 6

[Review] 시스템 디자인 스터디 7주차 후기

안녕하세요!K-DEVCON (이하 “데브콘”) 그로스 매니저 박종훈입니다. 이 글에서는 10/30 (목)에 진행된 스터디에서 나눈 이야기를 정리합니다. 이번 시간에는 “유튜브 시스템 설계”에 대한 이야기를 나눴습니다. 유튜브는 많은 사람들이 사용하는 서비스입니다. 유튜브와 같은 서비스에서는 영상을 어떻게 효율적으로, 그리고 안정적으로 제공 해줄 수 있을지에 대한 많은 고민이 필요합니다.[0] 기본 개념 설명코덱(codec)은 어떠한 데이터 스트림이나 신호에 대해, 인코딩이나 디코딩, 혹은 둘 다를 할 수 있는 하드웨어나 소프트웨어를 일컫습니다. (위키) 우리가 컴퓨터(PC, 스마트폰 등)에서 다루는 영상은 다양한 형태(포맷)로 저장이되어 관리됩니다.따라서 한 기기에서 사용한 포맷이 다른 기기에서는 지원..

[Review] 시스템 디자인 스터디 6주차 후기

안녕하세요!K-DEVCON (이하 “데브콘”) 그로스 매니저 박종훈입니다. 이 글에서는 10/23 (목)에 진행된 스터디에서 나눈 이야기를 정리합니다. 이번 시간에는 “검색어 자동완성 시스템 설계”에 대한 이야기를 나눴습니다. 검색은 일상생활에서 많이 사용하는 서비스입니다. 하지만 그 기술을 깊게 다룰 기회는 많지 않습니다. 오늘 스터디에서는 단순 설계에서 더 나아가 실제로 사용되고 있는 기술들을 좀 더 깊게 다뤄보고 싶었지만, 알아야 하는 배경지식이 많아 쉽지만은 않았습니다. 그래서 최대한 이 글을 작성해보며 내용을 정리하고 넘어가고자 합니다. [1] 기본적인 시스템 설계일반적으로 시스템 디자인 설계 면접관련 자료들에서는 검색어 자동완성을 설계 할 때 트라이(Trie) 자료구조 사용하여 설계를 진행합..

[Review] 시스템 디자인 스터디 5주차 후기

안녕하세요!K-DEVCON (이하 “데브콘”) 그로스 매니저 박종훈입니다.🙋🏻‍♂️ 이 글에서는 10/16 (목)에 진행된 스터디에서 나눈 이야기를 정리합니다. 이번 시간에는 “채팅 시스템 설계” 이야기를 나눴습니다.[1] 채팅 시스템 설계채팅 시스템은 우리가 매일 쓰는 시스템 중 하나입니다. 메시지를 보내고, 파일을 공유하는 이 모든 과정이 너무나 자연스럽고 당연하게 느껴집니다. 하지만 이 편리함 뒤에는 우리가 상상하기 어려운 거대한 기술적 복잡성이 숨어있습니다. 전 세계 수많은 사용자가 동시에 주고받는 수십억 개의 메시지를 안정적으로 처리하기 위해, 엔지니어들은 어떤 문제와 마주하고 또 어떻게 해결했을까요? 기본적인 시스템 설계 채팅 시스템의 기본적인 설계는 다음과 같습니다. 상태 서비스(sta..

[Review] 시스템 디자인 스터디 4주차 후기

안녕하세요!K-DEVCON (이하 “데브콘”) 그로스 매니저 박종훈입니다.🙋🏻‍♂️ 이 글에서는 10/2 (목)에 진행된 스터디에서 나눈 이야기를 정리합니다. 이번 시간에는 “뉴스피드 설계” 이야기를 나눴습니다.뉴스피드 설계뉴스피드는 홈 페이지에 지속적으로 업데이트 되는 스토리들입니다. 사용자 정보 업데이트, 사진, 비디오, 링크, 앱 활동, 팔로우, 페이지, 좋아요 등 다양한 정보가 포함됩니다. 뉴스피드 시스템 설계는 유명한 면접 문제 중 하나입니다. 뉴스피드 시스템 설계에서는 빠른 응답을 위해 Cache를 적극적으로 사용하는 것이 특징입니다. 실제로 트위터의 경우 Redis를 적극적으로 사용한 것을 발표자료를 통해 엿볼 수 있습니다. (Timelines at Scale) 우리는 먼저 책에서 나오는..

[Review] 시스템 디자인 스터디 3주차 후기

안녕하세요!K-DEVCON (이하 “데브콘”) 그로스 매니저 박종훈입니다🙋🏻‍♂️ 이 글에서는 9/25 (목)에 진행된 스터디에서 나눈 이야기를 정리합니다.이번 시간에는 “웹 크롤러 설계” 과 “알림 시스템 설계” 이야기를 나눴습니다. — [1] 웹 크롤러크롤러 만들어본 경험 있는지, 현재 회사에서 관련되어 사용하는 부분이 있는지에 대해서 이야기를 나누며 시작 하였습니다. 커머스 도메인에 계신 한 분이 공유해주신 사례가 최저가 보상 서비스에 크롤링을 사용한다고 하셨습니다.최저가 보상이 단순 마케팅 용어인 줄 알았는데, 실제로 크롤링 기능으로 구현되는 사례라 흥미로웠습니다. 한 사이트만 크롤링하는 것은 비교적 간단합니다. 패턴을 잘 찾아서 크롤링을 하도록 하면 되는데요.반면에 정해지지 않은 사이트들..

[Review] 시스템 디자인 스터디 2주차 후기

안녕하세요!K-DEVCON (이하 “데브콘”) 그로스 매니저 박종훈입니다🙋🏻‍♂️ 이 글에서는 9월 18일(목)에 진행된 스터디에서 나눈 이야기를 정리합니다.이번 시간에는 “분산 시스템을 위한 유일 ID 생성기 설계” 과 “URL 단축기 설계” 이야기를 나눴습니다. [1] 유일 ID 생성기먼저는 각자 일반적으로 어떻게 ID를 생성하고 있는가에 대한 이야기를 나눴습니다.Auto Increment를 사용하고 있는 경우도 있었고, UUID를 사용하는 경우도 있었고, 업무적인 컬럼을 PK로 사용하는 경우도 있었습니다. 어떻게 ID를 생성하는 것이 좋을지는 상황에 따라서 달라집니다.일반적인 상황에서는 Auto Increment 가 대부분의 경우 가장 빠른 해결책이 될 수 있습니다.하지만 분산 환경일 경우에..