System Design
Source: https://github.com/madd86/awesome-system-design at
52834671253b
License: CC0-1.0
Read the English original
This edition is an AI-assisted translation.
내용이 마음에 드셨다면 📖 프로젝트의 인지도를 위해 👍| ⭐| 👏를 눌러 주세요.
분산 컴퓨팅과 빅데이터 시스템 설계 관련 문서, 서적, 동영상 및 도구를 엄선한 목록입니다.
면접을 준비하거나 분산형/마이크로서비스 기반 애플리케이션을 설계하려는 경우 이 목록이 도움이 됩니다.
주의: GitHub 별 수가 여기에 나열된 모든 항목의 사용량이나 인기도를 반영하지는 않습니다.
Awesome-BigData에서 영감을 받았습니다
Gabriel Leon de Mattos가 시작했습니다
소개 / 인터뷰
섹션 제목: “소개 / 인터뷰”-
System Design Primer - [109k ⭐] - Anki 플래시카드 데크를 포함한 멋진 리소스 모음입니다.
-
System Design Interview Questions - Concepts you should know - 시스템 설계를 소개하는 선별된 주제 목록입니다.
-
Grokking the System Design Interview - [Paid 💵] - 그로킹 시스템 설계 준비 과정은 가장 많이 회자되는 과정 중 하나입니다. 가장 좋은 점은 각 도구가 수행해야 하는 작업에 대한 설명보다는 제안하는 응용 프로그램의 디자인입니다.
-
System Design in Software Development - 시스템 설계 및 아키텍처 주제에 대한 기본 기사입니다.
-
System Design - 입문 면접 준비 자료.
-
Design Pattern for Distributed Systems - 고려해야 할 몇 가지 패턴과 몇 가지 기술에 대해 설명하는 기사입니다.
-
Practice system design problems using AI on Codemia.io - AI와의 인터뷰처럼 시스템 설계 문제를 대화식으로 연습할 수 있는 도구입니다. 성과를 평가하는 반복적인 피드백과 최종 평가가 있습니다.
-
Distributed Computing - 분산 시스템 설계의 관점을 넓힌 Wikipedia 기사.
-
Fallacies of Distributed Computing - 분산 컴퓨팅의 오류와 그 효과에 대한 주제를 소개하는 Wikipedia 기사입니다.
-
Fallacies of Distributed Computing Explained - 위에서 언급한 오류에 대해 자세히 설명합니다.
-
CAP Theorem - CAP 정리, 마이크로서비스 및 NoSQL DB에 관한 IBM 기사입니다.
-
Pattern: Microservice Architecture - 마이크로서비스 아키텍처와 그 단점에 대해 설명하는 좋은 기사입니다.
-
Taxonomy of Distributed Systems - 분산 시스템을 분류하고 특히 이것이 필요한 이유를 설명하는 11페이지 강의입니다.
-
Top 10 Secure Coding Practices - 코드 보안에 대한 모범 사례에 대해 설명하는 간략한 기사입니다.
-
Scalable Web Architecture and Distributed Systems - 분산 시스템과 일부 잠재적인 도구에 대한 좋은 기사입니다.
-
Designing Distributed Systems: Patterns and Paradigms for Scalable, Reliable Services - [Paid 💵] - 분산 시스템에 대해 이야기하고 그 모습에 대한 일부 코드를 가볍게 시연하는 책입니다.
-
Designing Data Intensive Applications - [Paid 💵] - 분산 시스템으로 작업할 때 사용하는 다양한 리소스와 그것이 어떻게 탄생했는지, 어떤 문제를 해결하려는지 심층적으로 설명합니다.
-
The System Design Manual - [Paid 💵] - 네트워크 기본 사항, 분산 시스템을 뒷받침하는 이론, 확장 가능한 시스템의 아키텍처 패턴, 장애로부터 시스템을 강화하는 안정성 패턴, 소규모 팀으로 대규모 시스템을 유지 관리하는 방법에 대한 운영 모범 사례 등 분산 시스템의 핵심 측면을 다룹니다.
-
Building Microservices - [Free 👍] - 마이크로서비스를 사용한 시스템 아키텍처 설계에 대해 심도 있게 설명하는 멋진 책에는 이와 관련하여 가장 관련성이 높은 주제가 포함되어 있습니다.
-
Monolith to Microservices - [Free 👍] - 위와 같은 저자가 쓴 이 책은 Monolith에서 Microservices로의 마이그레이션을 다루므로 이전 책부터 시작하는 것이 좋습니다.
-
Distributed Systems (3rd Edition) - [Free 👍] - 분산 시스템에 대한 훌륭한 개요와 심층적인 소개입니다. 중급 독자에게 권장됩니다.
-
Safe by Design - [Free 👍] - 설계에 따른 코드 정확성 강화에 관한 훌륭한 책입니다.
동영상
섹션 제목: “동영상”분산 시스템 관련 동영상 모음입니다.
소개 / 인터뷰
섹션 제목: “소개 / 인터뷰”-
Gaurav Sen - System Design Series - 시스템 설계에 대해 더 많이 배우고 싶은 사람들을 위한 좋은 자료로, 매우 이해하기 쉬운 방식으로 주제를 소개합니다.
-
Tech Dummies - System Design Series - 시스템 설계에 대한 또 다른 소개입니다.
-
Mock System Design Interview at Google - 결함이 있지만 요구 사항을 완벽하게 충족한다는 관점에서 시스템 설계에 대한 인터뷰가 어떻게 보이는지에 대한 개요입니다. 여기서 중요한 것은 면접관과의 상호 작용이 어떻게 진행되는지입니다.
-
Google Preparation Guide - 인터뷰 방법을 설명하는 간단한 비디오입니다.
-
System Design Interview - 다양한 문제에 대한 자세한 설명과 함께 시스템 설계 인터뷰 관련 콘텐츠에 초점을 맞춘 YouTube 채널입니다.
-
Intro to Architecture and System Design Interviews - 시스템 디자인 인터뷰에 대한 좋은 정보가 담긴 Jackson Gabbard의 YouTube 동영상입니다.
-
System Design Introduction for Interview - Tushar의 시스템 설계 소개.
-
Distributed Systems - Chris Colohan이 만든 분산 시스템 입문 강좌입니다. 그는 Carnegie Mellon에서 박사 학위를 취득한 후 Google에서 분산 시스템 구축에 10년을 보냈습니다.
-
The Easy Way - 분산 시스템에 대한 이해하기 쉬운 비디오를 제공하는 최신 채널입니다.
-
System Design by SDE Skills - 시스템 디자인 인터뷰를 준비하는 사람들을 위한 좋은 리소스로, 다양한 시스템 디자인 모의 인터뷰와 심층 분석이 있습니다.
-
System Design by CodeKarle - 또 다른 훌륭한 무료 리소스인 자주 묻는 인터뷰 질문 목록입니다.
- The evolution of Reddit Architecture - Reddit 시스템 디자인이 어떻게 확장되었는지에 대한 개요입니다.
- 6.824 Distributed Systems by MIT - MIT 분산 시스템에 관한 대학원 수준 과정(2020).
- CSE138 Distributed Systems by UCSC - UCSC 분산 시스템 학부 과정(2020).
- 분산 시스템에서 가장 많이 사용되는 도구 모음
관계형 데이터베이스 관리 시스템
섹션 제목: “관계형 데이터베이스 관리 시스템”-
MariaDB - MariaDB는 MySQL 서버의 포크입니다.
-
MySQL - 널리 사용되는 관계형 데이터베이스.
-
PostgresSQL - 인기를 얻고 있는 관계형 데이터베이스.
-
SQLite - 모든 휴대폰과 대부분의 컴퓨터에 내장되어 널리 사용되는 또 다른 데이터베이스입니다.
-
Sql Server - 널리 사용되는 관계형 데이터베이스.
NoSQL
섹션 제목: “NoSQL”캐시(키-값)
섹션 제목: “캐시(키-값)”-
Apache Ignite - [3.3k ⭐] - ACID 속성을 사용한 메모리 캐싱.
-
Couchbase - memcached에서 영감을 받아 복제 및 지속성과 같은 기능을 추가했습니다.
-
Oracle Coherence - [126 ⭐] - 높은 확장성, 낮은 대기 시간의 메모리 내 캐싱.
-
Memcached - [10.2k ⭐] - 최초의 인메모리 캐싱 데이터베이스 중 하나이며 고성능 및 다중 스레드를 지원합니다.
-
Redis - [44k ⭐] - 영구 저장소 및 지원 문자열, 목록, 세트, 해시, 스트림, 비트맵 등과 같은 많은 추가 기능을 갖춘 널리 사용되는 인 메모리 캐싱 데이터베이스입니다.
저장소(키-값)
섹션 제목: “저장소(키-값)”-
Apple FoundationDB - [10k ⭐] - 다중 모델(단일 데이터베이스의 많은 데이터 유형), ACID 키-값 저장소. 쉽게 확장 가능하고 내결함성이 있습니다.
-
Cosmos DB - Microsoft의 전 세계적으로 분산된 다중 모델 데이터베이스 서비스입니다. 처리량과 스토리지를 동적이고 독립적으로 확장합니다. SQL, MongoDB, Cassandra, 테이블, Gremlin 및 Spark API.
문서 저장소
섹션 제목: “문서 저장소”-
CouchDB - [4.6k ⭐] - ACID를 준수하는 NoSQL 문서 저장소 DB는 데이터베이스 문서를 읽고 업데이트하기 위한 RESTful HTTP API를 제공합니다.
-
MongoDB - 범용으로 가장 널리 사용되는 ‘NoSQL’ 데이터베이스 중 하나입니다.
-
RethinkDB - [23.8k ⭐] - 문서저장DB.
-
ElasticSearch - [49.9k ⭐] - 빠르고 확장 가능한 검색 엔진을 위해 널리 사용되는 ‘NoSQL’ 데이터베이스입니다.
-
Cosmos DB - Microsoft의 전 세계적으로 분산된 다중 모델 데이터베이스 서비스입니다. 처리량과 스토리지를 동적이고 독립적으로 확장합니다. SQL, MongoDB, Cassandra, 테이블, Gremlin 및 Spark API.
와이드 컬럼 저장소
섹션 제목: “와이드 컬럼 저장소”-
Amazon DynamoDB - 키-값 및 문서 데이터베이스는 성능이 뛰어나고 확장 가능하며 안전합니다.
-
Google Bigtable - 대규모 분석 및 운영 워크로드를 위한 확장 가능하고 성능이 뛰어난 ‘NoSQL’ 데이터베이스입니다.
-
Cassandra - Facebook에서 탄생한 프로젝트는 매우 빠르고 쉽게 확장 가능하며 각 작업에 일관성을 포함하는 옵션이 있습니다.
-
Scylla - [4.9k ⭐] - Cassandra와 호환되는 seastar 프레임워크를 사용하는 ‘NoSQL’ 데이터 저장소입니다.
-
HBase - [3.6k ⭐] - Google의 Bigtable을 모델로 하고 Java로 작성되었습니다. Apache Hadoop 프로젝트의 일부로 개발되었으며 HDFS 또는 Alluxio 위에서 실행됩니다. (Hadoop Related 참조)
-
Cosmos DB - Microsoft의 전 세계적으로 분산된 다중 모델 데이터베이스 서비스입니다. 처리량과 스토리지를 동적이고 독립적으로 확장합니다. SQL, MongoDB, Cassandra, 테이블, Gremlin 및 Spark API.
그래프
섹션 제목: “그래프”-
Amazon Neptune - 빠르고 안정적이며 완벽하게 관리되는 그래프 데이터베이스 서비스입니다.
-
ArangoDB - [10k ⭐] - 문서, 키-값, 그래프를 위한 유연한 데이터베이스입니다. 자체 쿼리 언어인 AQL을 사용합니다.
-
Neo4j - [7.9k ⭐] - 그래프 DB에 대한 우수한 지원, ACID 준수 및 유연성.
-
Cosmos DB - Microsoft의 전 세계적으로 분산된 다중 모델 데이터베이스 서비스입니다. 처리량과 스토리지를 동적이고 독립적으로 확장합니다. SQL, MongoDB, Cassandra, 테이블, Gremlin 및 Spark API.
분산 파일 시스템
섹션 제목: “분산 파일 시스템”-
HDFS - Hadoop 파일 시스템은 높은 처리량 액세스를 제공하여 빅 데이터 경쟁업체 사이에서 널리 선택됩니다.
-
Lustre - 컴퓨터 클러스터용 파일 시스템.
-
CephFS - 통합된 분산 스토리지 시스템.
-
GlusterFS - 확장형 NAS 파일 시스템.
-
MooseFS - POSIX 호환 분산 파일 시스템.
-
XtreemFS - 내결함성 파일 시스템.
리소스 관리
섹션 제목: “리소스 관리”- Kubernetes - 베어메탈 또는 가상 서버에서 컨테이너 클러스터를 배포, 관리 및 자동 확장하는 매우 널리 사용되는 방법입니다.
스트림 처리
섹션 제목: “스트림 처리”-
Apache Samza - Kafka를 포함한 여러 소스의 데이터를 실시간으로 처리하는 상태 저장 애플리케이션을 구축하세요. 쉽고 저렴한 다중 가입자 모델은 배압을 제거할 수 있으며 대기 시간이 짧고 안정적인 지속성을 제공합니다.
-
Apache Flink - 스트림과 변환의 개념을 기반으로 합니다. Maven을 사용하고 배치 작업을 유한한 경계가 있는 데이터 스트림으로 처리합니다. 낮은 대기 시간, 높은 처리량.
-
Amazon Kinesis Streams - 내구성이 뛰어나고 확장 가능한 실시간 서비스입니다. 데이터베이스 이벤트 스트림, 웹 사이트 클릭 스트림, 금융 거래 등을 포함하여 수십만 개의 소스에서 초당 기가바이트의 데이터를 수집합니다.
-
Azure Stream Analytics - 미션 크리티컬 워크로드를 위해 설계된 실시간 분석 서비스입니다.
메시지 브로커
섹션 제목: “메시지 브로커”-
Amazon MQ - Amazon의 오픈 소스 메시지 브로커.
-
Apache ActiveMQ - 다중 프로토콜, Java 기반 메시징 서버입니다.
-
Apache Kafka - 데이터 스트리밍에 대한 대기 시간이 짧은 널리 사용되는 메시지 브로커입니다.
-
RabbitMQ - 경량으로 널리 인기를 얻고 있는 여러 메시징 프로토콜도 지원하는 erlang으로 작성된 메시지 브로커입니다.
-
IronMQ - 매우 빠르고 확장성이 뛰어난 메시징 브로커입니다. (오픈소스 아님)
-
Apache Pulsar - Yahoo에서 제작했으며 확장성이 뛰어나고 대기 시간이 짧으며 지역 복제 및 다중 테넌시가 가능합니다.
-
Kestrel - Scala로 작성되었으며 memcached 프로토콜을 사용합니다. Kafka와 매우 유사하게 작동합니다.
-
Azure Service Bus - 완전 관리형 엔터프라이즈 통합 메시지 브로커입니다.
로드 밸런서
섹션 제목: “로드 밸런서”오픈 소스 소프트웨어
섹션 제목: “오픈 소스 소프트웨어”-
SeeSaw - [5.1k ⭐] - Google에서 사용하며 Go에서 개발한 Linux 기반 가상 로드 밸런서 서버입니다.
-
HAProxy - 널리 사용되는 옵션으로 고가용성, 프록시, TCP/HTTP 로드 밸런싱을 제공합니다. Reddit, Imgur, MaxCDN, GitHub, AirBNB에서 사용됩니다.
-
Zevenet - L3, L4, L7을 지원합니다. docker repo를 이용하면 쉽게 설치할 수 있습니다. 고급 상태 점검 모니터링을 지원합니다.
-
Neutrino - Scala 및 Netty로 구축된 eBay에서 사용됩니다. 라운드 로빈 및 최소 연결 알고리즘을 지원합니다.
-
Nginx - 잠깐, Nginx는 웹 서버가 아닌가요? 예, 오픈 소스는 기본 수준의 콘텐츠 전환 및 요청 라우팅을 지원합니다. Plus 에디션은 로드 밸런싱, WAF, 모니터링 등을 지원합니다.
-
Openresty - Nginx + Lua, 완벽한 조합입니다.
하드웨어
섹션 제목: “하드웨어”-
F5 - 여러 프로토콜(IP, TCP, FTP, UDP, HTTP)을 지원하는 강력한 하드웨어 로드 밸런서 옵션입니다.
-
TP-Link - 로드 밸런서로 작동하는 더 저렴한 대안입니다.
-
Barracuda - 사내 서버의 경우 로드 밸런싱을 위한 최고의 선택 중 하나입니다. 데이터 손실 방지를 위한 내장된 최고의 보안 조치, 포괄적인 보고서 및 아웃바운드 트래픽 모니터링.
클라우드
섹션 제목: “클라우드”-
Amazon Elastic Load Balancing - Amazon 고객에게 인기 있는 선택으로, 확장성이 뛰어난 람다 기능을 지원합니다.
-
Google Load Balancing - Google 고객에게 인기 있는 선택으로 자동 확장 기능이 제공되고 매우 빠르며 CDN이 통합되어 있습니다.
-
Cloudflare Load Balancing - Cloudflare의 확장 가능한 로드 밸런싱은 빠른 장애 조치와 대시보드를 갖추고 있습니다.
-
DigitalOcean Load Balancing - Digitalocean 고객이라면 이는 매우 저렴하고 지역적 가용성이 뛰어나고 확장 가능하며 다른 드롭릿에 쉽게 배포할 수 있는 좋은 옵션입니다.
-
Azure Load Balancing - Microsoft의 Azure 고객에게 인기 있는 선택입니다. 내부 및 외부 트래픽, ipv6, 모니터링 및 표준 로드 밸런싱 기능 세트를 지원합니다.
Hadoop 생태계
섹션 제목: “Hadoop 생태계”
대시보드
섹션 제목: “대시보드”- Ambari - Hadoop 관련 기술 대부분을 통합하여 관리 및 실행이 용이한 대시보드입니다.
데이터 수집
섹션 제목: “데이터 수집”-
Sqoop - Hadoop과 관계형 데이터베이스 등 구조화된 데이터 저장소 간에 데이터를 효율적으로 전송합니다.
-
Flume - 대량의 로그 데이터를 수집, 집계 및 이동하는 데 분산되고 가용성이 높으며 효율적입니다.
-
Apache Kafka - 데이터 스트리밍에 대한 대기 시간이 짧은 널리 사용되는 메시지 브로커입니다.
워크플로 스케줄러
섹션 제목: “워크플로 스케줄러”- Oozie - 다른 hadoop 생태계 애플리케이션의 작업을 단계별로 실행하기 위해 XML로 워크플로를 생성하고 병렬 실행도 허용합니다.
- Tez - Spark 및 MapReduce와 유사한 문제를 해결합니다. 가장 효율적인 방법을 계산하기 때문에 MapReduce보다 더 효율적입니다.
- Map Reduce - MapReduce는 이름에서 알 수 있듯이 데이터를 매핑하고 결과를 줄입니다.
- Spark - Tez(및 MapReduce)와 같은 데이터를 처리할 뿐만 아니라 실시간으로 데이터 스트림을 처리하고 ML에 회귀 분석 알고리즘을 적용할 수 있는 강력한 데이터 처리 기능입니다.
- Apex - *종료된 프로젝트이며 스트림 및 일괄 처리를 통합하는 YARN 기반 플랫폼입니다.
데이터베이스
섹션 제목: “데이터베이스”- HBase - [3.6k ⭐] - Google의 Bigtable을 모델로 하고 Java로 작성되었습니다. Apache Hadoop 프로젝트의 일부로 개발되었습니다.
리소스 관리
섹션 제목: “리소스 관리”- YARN - ‘Yet Another Resource Negotiator’는 커널처럼 작동하여 클러스터 전체의 컴퓨터 리소스를 관리합니다.
- MESOS - 클러스터 전체에서 CPU, 메모리, 스토리지 및 기타 리소스를 관리하여 Linux 커널처럼 작동합니다.
REST 프레임워크
섹션 제목: “REST 프레임워크”-
Gin - [40.6k ⭐] - Golang을 사용하는 엄청나게 빠른 마이크로서비스 프레임워크, 높은 처리량.
-
Phoenix - [15.5k ⭐] - 분산 처리, 쉽게 확장 가능, 채널 및 라이브 채팅 지원. Elixir로 작성된 이 프레임워크는 BEAM 및 Erlang을 사용하여 대규모 시스템에 매우 효율적이며 높은 처리량을 지원합니다.
-
Express.js - [49.6k ⭐] - 다양한 시나리오에서 잘 작동할 수 있는 빠른 node.js 나머지 API입니다.
-
Rails - [46.2k ⭐] - Ruby로 작성된 Rails는 프로토타입부터 프로덕션까지 효율적인 방식으로 빠른 API를 제공합니다.
-
Play Framework - [11.6k ⭐] - 기본적으로 RESTful인 Scala/Java로 작성된 매우 빠르고 높은 처리량의 프레임워크입니다.
-
Flask - [51.6k ⭐] - 빠른 프로토타이핑 및 제작을 위한 경량 Python 마이크로프레임워크입니다.
-
FastAPI - [22.7k ⭐] - Flask에서 영감을 얻었지만 Python 비동기를 사용하여 더욱 현대적인 경량 Python 마이크로프레임워크입니다.
-
Django REST - [18.4k ⭐] - Python으로 작성된 Django Rest는 강력하고 유연한 REST API입니다. 효율성과 출시 기간은 Rails와 유사합니다.
-
ASP.NET Core MVC - C# 또는 F#의 모델-뷰-컨트롤러 디자인 패턴을 사용하여 웹앱 및 API를 구축하기 위한 풍부한 프레임워크입니다. 웹 프레임워크용 TechEmpower Composite Benchmarks의 6번입니다.
-
Fastify - [15.4k ⭐] - 최소한의 오버헤드와 강력한 플러그인 아키텍처로 최고의 개발자 경험을 제공하는 데 중점을 둔 Node.js 웹 프레임워크입니다.
HagiCode
HagiCode는 에이전트 코딩 작업 공간입니다. 풍부하고 편리한 UI 상호작용으로 계획 수립, 에이전트 실행, 프로젝트 작업을 쉽게 시작하고 따라가며 개발을 더 흥미로운 경험으로 만듭니다.
풍부하고 편리한 UI 상호작용으로 계획부터 프로젝트 작업까지 쉽게 따라갈 수 있습니다.
- 스마트OpenSpec 워크플로는 의도를 제안, 설계, 작업을 거쳐 배포까지 이어지는 실행 가능한 경로로 바꿉니다.
- 효율적다중 에이전트 실행으로 조사, 구현, 검토를 병렬로 진행하며 여러 저장소와 익숙한 Agent CLI를 지원합니다.
- 흥미로운풍부하고 편리한 UI 상호작용으로 계획 수립, 에이전트 실행, 프로젝트 작업을 쉽게 시작하고 따라갈 수 있습니다.
Windows용 다운로드
HagiCode 공유
아이디어를 실제로 배포되는 소프트웨어로.
HagiCode는 에이전트 코딩 작업 공간입니다. OpenSpec 워크플로로 변경을 계획하고, 다중 에이전트 실행으로 진행하며, Hero Scenario로 긴 작업의 진행 상황을 한눈에 보여 아이디어를 실제로 배포되는 소프트웨어로 만듭니다.
- 스마트
- OpenSpec 워크플로는 의도를 제안부터 배포까지 이어지는 실행 가능한 경로로 바꿉니다.
- 효율적
- 다중 에이전트 실행으로 조사, 구현, 검토를 병렬로 진행합니다.
- 즐거운
- 편리한 UI 상호작용으로 계획, 에이전트 실행, 프로젝트 작업을 쉽게 따라갈 수 있습니다.
© 2026 HagiCode | Powered By hagilight-starlight@0.21.0 | Branch: main | Commit: 745b50b | Built:

