레퍼런스

[Medium] 시스템 디자인 인터뷰의 골든룰

둘기덕 2024. 3. 13. 21:38
반응형

 

시스템 디자인은 복잡하고 하나의 디자인이 모든 경우에 적합한 것도 아닙니다. 아래에서 면접에서 사용할 수 있는 유용한 규칙을 공유하겠습니다.

 

📌 읽기가 많은 시스템의 경우- 캐시 사용을 고려

📌 쓰기가 많은 시스템의 경우 - 비동기 처리를 위해 Message Queue 사용  

📌 낮은 지연시간을 요구하는 경우 - 캐시 및 CDN 사용을 고려

📌 ACID 원칙이 필요한 경우 - RDBMS/SQL DB로 이동 

📌 비정형 데이터의 경우 - NoSQL DB로 이동

📌 복잡한 데이터(비디오, 이미지, 파일)의 경우 - Blob/Object 저장소로 이동

📌 복잡한 사전 계산이 필요한 경우 - Message Queue & 캐시를 이용

📌 대용량 데이터 검색 - 검색 인덱스, 트리 또는 검색 엔진을 고려

📌 SQL 데이터베이스 확장 - 데이터베이스 샤딩을 구현

📌 고가용성, 성능 및 처리량 - 로드 밸런서를 사용

📌 글로벌 데이터 전송 - CDN 사용을 고려

📌 그래프 데이터(노드, 엣지 및 관계가 있는 데이터) - 그래프 DB를 사용

📌 다양한 컴포넌트 확장 - 수평 확장을 구현

📌 고성능 데이터베이스 쿼리 - DB 인덱스 사용 

📌 일괄 작업 처리 - 배치 및 Message Queue 사용

📌 서버 부하 관리 및 DOS 공격 방지 - Rate Limiter 사용

📌 마이크로서비스 아키텍처 - API Gateway 사용

📌 Single Point of Failure - 이중화 구현

📌 내결함성 및 내구성 - 데이터 복제 구현

📌 사용자 간의 빠른 통신 - Websocket 사용

📌 분산 시스템의 장애 감지 - Heartbeat 구현

📌 데이터 무결성 - Checksum Algorithm 사용

📌 효율적인 서버 확장 - Hashing 구현

📌 분산형 데이터 전송 - Gossip 프로토콜 고려

📌 위치 기반 기능 - Quadtree, Geohash 등을 사용

📌 특정 기술 이름 피하기 - 일반적인 용어 사용

📌 고가용성과 일관성 트레이드 오프 - 궁극적인 일관성

📌 IP 확인 및 도메인 이름 쿼리 - DNS 언급

📌 네트워크 요청에서 대용량 데이터 처리 - 페이지네이션 구현

📌 캐시 제거 정책 - LRU 캐시 

📌 트래픽 급증 처리 - 오토스케일링 구현하여 리소스를 동적으로 관리

📌 분석이 필요할 때 - data lake 또는 전용 DB 사용 고려

📌 대규모 동시 연결 처리 - connection pooling을 사용하고 Protobuf를 사용하여 데이터 페이로드 최소화

 

 

출처: https://medium.com/@aqilzeka99/golden-rules-for-system-design-interview-c233295701e2

반응형