백엔드 개발자를 위한 System Design
System design은 소프트웨어 컴포넌트가 규모에 맞게 어떻게 함께 작동하는지 결정하는 분야입니다. 애플리케이션 코드 한 줄을 작성하기 전에 올바른 데이터베이스, 통신 프로토콜, 캐싱 계층, 배포 토폴로지를 선택하는 것입니다. 이 트랙은 모든 백엔드 엔지니어가 알아야 할 첫 원칙부터 수백만 건의 요청을 처리하는 프로덕션 시스템에서 사용되는 cloud-native 및 microservices 패턴까지 전체 범위를 다룹니다.
배울 내용
확장 가능한 시스템의 핵심 용어를 다룹니다: 데이터 저장 전략, API 설계, 서비스 간 통신. 고급 캐싱 및 CDN 아키텍처, 설계 단계에 내장된 보안 고려사항, 고가용성과 신뢰성 보장 뒤에 숨겨진 trade-off들을 학습합니다. 이후 과정들은 microservices 분해, cloud-native 설계 패턴, 그리고 트래픽 급증을 견뎌내는 시스템과 그렇지 못한 시스템을 구분하는 성능 최적화 기법을 다룹니다. 이 트랙은 모든 개념을 구체적이고 현실적인 시스템과 연결하는 실제 사례 연구로 마무리됩니다.
학습 경로
12개의 과정이 A1부터 C2까지의 수준을 포괄합니다. 첫 번째 과정은 초급 수준에서 system design 원칙을 소개하고, 두 번째와 세 번째는 핵심 백엔드 컴포넌트와 확장성 기초를 구축합니다. B2부터는 초점이 명확해집니다: Advanced Data Storage Strategies, API Design and Inter-Service Communication, Advanced Caching and CDNs, Security in System Design. 마지막 네 개의 C1 과정은 고가용성, microservices 아키텍처, 성능 최적화, cloud-native 패턴을 다룹니다. 이 트랙은 C2 Real-World System Design Case Studies에서 끝나며, 여기서 실제 분산 시스템에서 나온 문제들에 전체 커리큘럼을 적용합니다.
작동 방식
각 과정은 대화형 연습과 시나리오 기반 질문을 중심으로 구성된 짧고 집중된 수업으로 나뉩니다. 내장된 AI tutor가 문맥에 맞는 질문에 답변하므로 탭을 전환하지 않고도 계속 진행할 수 있습니다. System design은 본질적으로 개념적이기 때문에 수업은 의사 결정 추론에 중점을 둡니다 — 특정 제약 조건에서 한 접근 방식이 다른 접근 방식보다 나은 이유 — 기계적 암기가 아닌.