전체 글
-
Grpc Service의 호출오류가 Grpc Client 헬스체크 실패를 야기하는 문제 해결Spring 2024. 11. 19. 21:15
하나의 서비스에 GrpcService를 구현하고 이제 이를 사용하는 별도 서비스의 GrpcClient에 구현된 기능을 호출하도록 구현하였는데, GrpcService의 오류만으로도 GrpcClient 서버의 헬스체크가 실패하는 현상이 발생했다. 해당 문제의 원인을 파악하고 문제를 해결한 글을 남긴다! 문제 상황 서두에 말한것과 같이 별도의 서버에 구성된 GrpcClient, GrpcService가 존재한다. 두 서버는 별도의 서버로 서로에게 영향을 주어서는 안될 것으로 생각했는데, GrpcService가 장애 상황이거나 응답할 수 없는 상황에 장애가 전파되어 GrpcClient까지 헬스체크가 실패해서 livenessProbe, readinessProbe에 모두 503 응답으로 ServiceUna..
-
가상 면접 사례로 배우는 대규모 시스템 설계 기초 - 15장 ) 구글 드라이브 설계DESIGN PATTERN & ARCHITECTURE 2024. 11. 14. 22:51
1단계 문제 이해 및 설계 범위 확정 주요하게 지원해야 할 기능 지원 환경 파일 암호화 여부 파일 크기 제한 사용자 예시 설계 범위 파일 추가 기능 drag and drop 파일 다운로드 여러 단말에 파일 동기화 파일 갱신 이력 조회 (revision history)파일 공유 파일 편집, 삭제, 공유 알림 표시 비 기능적 요구사항안정성 데이터 손실 방지 빠른 동기화 속도 네트워크 대역폭 모바일 데이터 플랜을 사용하는 경우 네트워크 사용량이 많으면 사용자의 선호도가 감소됨 규모 확장성 많은 양의 트래픽 처리가 가능해야 함 높은 가용성 개략적 추정치 가입 사용자 = 5000만 DAU = 1000만 인당 무료 저장 공간 할당 = 10GB사용자가 업로드하는 하루 평균 파일 수 = 2개업로드 파일의 크기 = 50..
-
가상 면접 사례로 배우는 대규모 시스템 설계 기초 - 14장 ) 유튜브 설계DESIGN PATTERN & ARCHITECTURE 2024. 11. 14. 21:59
유튜브 설계규모 월간 능동 사용자 수 : 20억 매일 재생되는 비디오 수 : 50억 미국 성인 가운데 73%가 이용 5천만 명의 창작자 광고 수입 2019 기준으로 150억 달러 (전년도보다 36%가 증가한 수치) 모바일 인터넷 트래픽 가운데 37%를 유튜브가 점유 80개 언어로 이용 가능 1단계 문제 이해 및 설계 범위 확정 가장 중요한 기능 지원 클라이언트 일간 능동 사용자 수 사용자가 평균적으로 소비하는 시간 다국어 지원 필요 여부 지원하는 비디오 해상도 암호화 여부 비디오 파일 크기 제한 클라우드 서비스 활용 가능 여부 예시 요구 사항 빠른 비디오 업로드 원활한 비디오 재생 재생 품질 선택 기능 낮은 인프라 비용 높은 가용성과 규모 확장성, 안정성모바일 앱, 웹, 웹브라우저, 스마트 TV 지원..
-
가상 면접 사례로 배우는 대규모 시스템 설계 기초 - 13장 ) 검색어 자동완성 시스템DESIGN PATTERN & ARCHITECTURE 2024. 11. 14. 21:02
검색어 자동완성 시스템 자동완성 (autocomplete, typeahead, search-as-you-type, incremental search) 입력중인 글자에 맞는 검색어가 자동으로 완성되어 표시 1단계 문제 이해 및 설계 범위 확정 자동완성 될 검색어의 범위 ex) 첫글자, 중간부분 등 표시되는 자동완성 검색어의 갯수 자동완성 검색어를 고르는 기준 맞춤법 검사 기능 제공 여부 질의어의 종류 ex) 영어, 한국어 대문자나 특수문자의 처리 여부 사용자 수 예시 요구사항 100밀리초 이내의 빠른 응답 속도 자동완성되어 출력되는 검색어와 사용자가 입력한 단어의 연관성 인기도 등 순위모델에 의한 정렬트래픽을 감당할 수 있도록 확장 가능해야 함 시스템 장애가 발생하더라도 지속 사용가능한 고가용성 개략적 ..
-
가상 면접 사례로 배우는 대규모 시스템 설계 기초 - 12장 ) 채팅 시스템 설계DESIGN PATTERN & ARCHITECTURE 2024. 11. 13. 23:41
1단계 문제 이해 및 설계 범위 확정 채팅의 종류 1:1 채팅, 그룹 채팅, 게임 채팅 등 ex) WhatsApp : 1대1 채팅 ex) Slack : 그룹 채팅 ex) Discord : 게임 채팅 대규모 그룹의 소통과 응답 지연이 낮은 음성 채팅에 집중 서비스 환경 ex) 모바일, 웹 등 트래픽 규모 그룹 채팅의 인원 제한 여부 중요 기능 ex) 첨부파일, 접속 상태 표시 등 메세지 길이 제한 여부 종단 간 암호화 여부 (end to end encryption)채팅 이력 보관 기간 예시로 설계된 요구 사항 응답 지연이 낮은 일대일 채팅 기능 최대 100명 까지 참여할 수 있는 그룹 채팅 기능 사용자의 접속 상태 표시 기능 다양한 단말 지원하나의 계정으로 여러 단말 동시 접속 지원 푸시 알림 5000만 ..
-
가상 면접 사례로 배우는 대규모 시스템 설계 기초 - 11장 ) 뉴스 피드 시스템 설계DESIGN PATTERN & ARCHITECTURE 2024. 11. 13. 22:16
뉴스 피드 시스템 설계 뉴스 피드 홈페이지 중앙에 지속적으로 업데이트 되는 스토리 1단계 문제 이해 및 설계 범위 확정 지원 환경 ex) 모바일 앱, 웹 등 구현해야 하는 기능 스토리 표시 순서 한명의 사용자가 가질 수 있는 최대 친구의 수 트래픽 규모 이미지나 비디오 스토리 게시 가능 여부 2단계 개략적 설계안 제시 및 동의 구하기 뉴스 피드 API제공 기능클라이언트가 서버와 통신하기 위해 사용되는 수단 HTTP 프로토콜 기반 상태 정보를 업데이트하거나 뉴스 피드를 가져오거나 친구를 추가하는 등의 다양한 작업 수행시 사용됨 1) 피드발행 (feed publishing)사용자가 스토리를 포스팅하여 해당 데이터를 캐시와 데이터 베이스에 기록 새포스팅은 친구의 뉴스 피드에도 전송 HTTP POST의..
-
가상 면접 사례로 배우는 대규모 시스템 설계 기초 - 10장 ) 알림 시스템 설계DESIGN PATTERN & ARCHITECTURE 2024. 11. 13. 21:45
알림 시스템 설계 알림 고객에게 중요한 정보를 비동기 적으로 제공 1단계 문제 이해 및 설계 범위 확정 알림의 종류 실시간 시스템 여부 ex) 연성 실시간 시스템 (soft real-time) : 가능한 빨리 전달, 약간의 지연 가능 지원 단말의 종류 사용자에게 보낼 알림을 만들 사람 사용자에게 알림 on/off 설정 기능 제공 여부 (opt-out)하루에 보낼 수 있는 알림의 갯수 제한 2단계 개략적 설계안 제시 및 동의 구하기 알림 유형별 지원 방안IOS 푸시 알림알림 제공자 (provider) 알림 요청을 만들어 애플 푸시 알림 서비스 (APNS: Apple Push Notification Service)로 보내는 주체 필요 정보 단말 토큰 (device token) 알림 요청을 보내는데 ..
-
DAN 24 CONFERENCE DAY1 후기학습로그 2024. 11. 13. 20:17
이번년도에 개발자 컨퍼런스에 모두 떨어져서 매우 슬펐는데, 기다리던 개발자 컨퍼런스 신청에 성공하여 드디어...! 다녀왔다! 네이버 DAN 24↓https://dan.naver.com/24 DAN 24팀네이버 컨퍼런스 DAN 24는 네이버의 비즈니스 전략과 기술, 크리에이티브, 그리고 다양한 경험의 전문성을 유기적으로 연결하여 네이버가 앞으로 만들어나갈 비즈니스, 서비스의 변화 방향을dan.naver.com 네이버 컨퍼런스는 랜덤 추첨이었던 다른 컨퍼런스와 다르게 진행 날짜별로 선착순 신청을 받아서, 알림 설정까지 해두고 빠르게 티켓팅해서 갈수 있었다. 작년보다 이번년도 컨퍼런스 신청이 왜이렇게 어려웠는지 🥲 신청전에 Day1과 Day2의 세션 내용을 보고 백엔드 직무에 관한 세션이 상대적으로 ..