본문 바로가기

systemdesign

(5)
[Architecture]뉴스 피드 시스템설계 개요이 시스템의 핵심은 효율적인 데이터 분배 메커니즘인 'Fanout'에 있습니다. Fanout-on-Write와 Fanout-on-Read 전략을 적절히 조합하여, 수백만 명의 사용자에게 실시간으로 관련성 높은 콘텐츠를 제공할 수 있습니다.이 시스템은 크게 피드 발행과 뉴스 피드 생성 두 가지 주요 프로세스로 구성됩니다. 피드 발행 과정에서는 새로운 콘텐츠를 효율적으로 저장하고 배포하며, 뉴스 피드 생성 과정에서는 개별 사용자에 맞춘 최신 콘텐츠를 신속하게 조합합니다.성능 최적화를 위해 캐싱, CDN, 비동기 처리 등의 기술을 활용하며, 이를 통해 대규모 트래픽과 데이터를 효과적으로 관리합니다.시스템 요구사항뉴스 피드 시스템은 다음과 같은 요구사항을 충족해야 합니다.모바일 및 웹 플랫폼 지원사용자가 새..
[Architecture]아키텍처 설계와 검토의 핵심 원칙 개요현대 소프트웨어 시스템의 복잡성이 증가함에 따라 효과적인 아키텍처 설계와 지속적인 검토의 중요성이 더욱 커지고 있습니다. 이 글에서는 아키텍처링의 필요성, 주요 아키텍처 유형, 그리고 클라우드 환경에서의 아키텍처 검토 원칙에 대해 살펴봅니다. 특히 AWS Well-Architected 프레임워크를 참고하여, 클라우드 기반 시스템 설계 시 고려해야 할 핵심 원칙들을 소개합니다.아키텍처링의 필요성아키텍처링은 시스템의 전체적인 구조와 동작 방식을 설계하는 중요한 과정입니다. 이는 시스템의 성능, 확장성, 유지보수성, 그리고 비용 효율성에 직접적인 영향을 미칩니다.주요 아키텍처 유형모놀리식 아키텍처하나의 독립한 애플리케이션에서 비즈니스 로직을 진행하는 시스템 구성장점:배포나 디버깅이 용이개발 초기 단계에서 ..
[Architecture]알림시스템 설계 개요이 글은 푸시 알림, SMS, 이메일을 통합한 확장 가능한 알림 시스템의 설계와 구현 방법을 다룹니다. 연성 실시간 시스템으로 설계되어 높은 부하에도 대응할 수 있으며, 다양한 단말을 지원합니다.요구사항 분석알림 시스템은 다음 요구사항을 충족해야 합니다:지원 알림 유형: 푸시, SMS, 이메일성능 특성: 연성 실시간(soft real-time) 시스템, 높은 부하 시 약간의 지연 허용지원 단말: iOS, Android, 노트북, 데스크톱사용자 설정: opt-out 기능(사용자가 알림을 받지 않도록하는 기능) 지원확장성: 천만 건의 모바일 푸시, 백만 건의 SMS, 5백만 건의 이메일 처리 가능알림 유형별 지원 방안iOS 푸시 알림iOS 푸시 알림 흐름:알림 제공자 → APNS → iOS 단말알림 제공..
[Architecture]분산 키-값 저장소 설계 개요키-값 저장소는 키-값 데이터베이스라고도 불리는 비 관계형 데이터베이스입니다. 이 저장소에 저장되는 값은 고유 식별자를 키로 가져야 하며, 키와 값 사이의 이런 연결 관계를 "키-값" 쌍이라고 합니다. 키는 유일해야 하며 성능상의 이유로 짧을수록 좋습니다.이 글에서는 다음 연산을 지원하는 키-값 저장소를 설계하고 분석합니다.put(key, value): 키-값 쌍을 저장소에 저장한다.get(key): 인자로 주어진 키에 연결된 값을 꺼낸다.문제 이해 및 설계 범위 확정분산 키-값 저장소 설계 시 고려해야 할 주요 요구사항은 다음과 같습니다:키-값 쌍의 크기는 10KB 이하이다.큰 데이터를 저장할 수 있어야 한다.높은 가용성을 제공해야 한다: 시스템 장애가 있더라도 빨리 응답해야 한다.높은 규모 확장성..
[Architecture]개략적인 규모를 추정하는 방법 목차개략적인 규모 추정의 중요성응답 지연 값의 이해가용성에 관한 핵심 지표실제 예제: 트위터 시스템 규모 추정효과적인 규모 추정을 위한 팁개략적인 규모 추정의 중요성개략적인 규모 추정은 시스템 설계의 핵심 단계 중 하나입니다. 이는 제안된 설계가 요구사항을 충족시킬 수 있는지를 판단하는 데 필수적입니다. 효과적인 추정을 위해서는 다음 요소들에 대한 이해가 필요합니다:2의 제곱수응답 지연(latency) 값가용성 관련 수치이러한 요소들을 이해하고 활용함으로써 더 정확하고 신뢰할 수 있는 시스템 설계를 할 수 있습니다.응답 지연 값의 이해2010년 구글의 제프 딘이 발표한 응답 지연 값은 현대 컴퓨터 시스템의 성능을 이해하는 데 중요한 지표가 되었습니다. 이 값들을 바탕으로 몇 가지 핵심 인사이트를 도출할 ..