프로젝트 기간: 2024년 9월 2일(화) ~ 9월 19일(금)

최종 발표: 9월 19일(금) 수료식

0) 프로젝트 개요

📌 핵심 목표

2차 프로젝트에서 여러분은 모놀리식 아키텍처를 마이크로서비스로 분리하고, 기본적인 API 통신을 구현했습니다. 이제 3차 프로젝트에서는 이를 실제 운영 가능한 수준으로 발전시킵니다. 단순히 동작하는 것을 넘어서, 실제 기업에서 사용하는 방식으로 시스템을 구축하게 됩니다.

핵심은 세 가지입니다.

  1. 이벤트 기반 아키텍처를 통해 서비스 간 느슨한 결합을 실현한다.

  2. Kubernetes를 활용해 컨테이너 오케스트레이션을 경험합니다.

  3. 관측성(Observability)을 구현해 분산 시스템에서 문제를 추적하고 해결하는 능력을 기릅니다.

  4. 기존에 적용한 AI 기능을 클라우드 서비스를 활용해 개선합니다.

🎯 왜 이 기술들인가?

현재 우리가 일상적으로 사용하는 배달의민족, 쿠팡, 토스 같은 서비스들을 생각해보세요.

점심시간에 주문이 폭주할 때도 서비스가 멈추지 않고, 새벽에 업데이트를 해도 우리는 계속 서비스를 이용할 수 있습니다.

이것이 가능한 이유가 바로 여러분이 다루게 될 기술들 덕분입니다.

Kafka는 대규모 이벤트를 안정적으로 처리합니다. 주문이 들어오면 결제, 재고 확인, 배송 준비, 알림 발송 등 수많은 작업이 필요한데, 이를 동기적으로 처리하면 하나라도 지연되면 전체가 멈춥니다. Kafka를 사용하면 각 서비스가 독립적으로 자신의 속도에 맞춰 처리할 수 있습니다.

Kubernetes는 현대적인 인프라 관리의 핵심입니다. 트래픽에 따라 자동으로 서버를 늘리고 줄이며, 장애가 발생하면 자동으로 복구합니다. 새 버전 배포도 무중단으로 가능합니다.

로그 중앙화는 분산 시스템의 필수 요소입니다.

10개의 마이크로서비스에서 문제가 발생했을 때, 회사라면 각 팀에서도 관리를 하겠지만 통합서비스 관점으로도 로그 관리는 필요합니다.(SRE 및 DevOps에서 보는 로그가 따로 있다는 얘기입니다.) 모든 데이터로그를 중앙집중식으로 처리하지않고 SRE및 DevOps에서 알아야하는 서비스 장애시 알아야하는 로그들만 중앙집중식으로 관리하도록합니다.