학습 목표
- 서비스 규모에 맞춰 아키텍처 확장하기의 역할과 적용 조건을 설명할 수 있다.
- 현재 요청량·데이터 크기·실시간·지연·비용 병목을 측정하세요.
- 중복 전달·의존 장애·복구·관찰 비용까지 확인하세요.
사전 지식
앞선 반복 개발 작업 자동화하기를 먼저 읽으면 용어를 이해하기 쉽습니다. 이미 아는 내용이면 이 장부터 시작해도 됩니다.
개념 이해
사용자가 늘었다는 이유만으로 서버를 잘게 나눌 필요는 없습니다. 어떤 요청·데이터·운영 문제가 병목인지 확인하고 단계적으로 책임과 자원을 분리하세요.
모놀리스·모듈형 모놀리스·마이크로서비스
하나의 배포 단위로 시작해 내부 책임을 나누는 모듈형 구조로 발전할 수 있습니다. 마이크로서비스는 독립 배포 이점과 네트워크·관찰·정합성 비용을 함께 가집니다.
서버리스·이벤트·메시지 큐
서버리스는 실행 관리 방식, 이벤트 기반은 발생한 일을 연결하는 구조입니다. 큐는 작업을 쌓아 속도와 실패를 조절하지만 중복 전달·순서·재시도 정책이 필요합니다.
비동기·백그라운드 작업
긴 이미지 처리나 메일 전송을 요청 응답과 분리할 수 있습니다. 작업 ID·상태·중복 방지·재시도·실패 보관을 설계합니다.
DB 확장·읽기 복제본
쿼리와 인덱스를 먼저 개선하고 그 다음 분할·복제·캐시를 검토합니다. 읽기 복제본의 지연과 쓰기 일관성 요구를 고려합니다.
CDN·캐시 계층·로드 밸런싱
공개 정적 자원은 가까이 보관하고 요청은 여러 실행자로 나눌 수 있습니다. 각 인스턴스 메모리만으로 전역 상태와 잠금을 관리하지 않습니다.
장애 복구와 확장성
의존 서비스 장애를 격리하고 대기·재시도·부하 제한을 정합니다. 복잡성을 추가한 만큼 관측성과 운영 책임도 필요합니다.
실제 사용 사례
사용자 요청에서 오래 걸리는 썸네일 처리를 큐로 분리할 수 있습니다. 같은 파일 작업이 재전달되어도 중복 비용과 데이터 충돌이 없도록 작업 키를 고정하세요.
단계별 실습
실습은 운영 서비스가 아닌 별도 연습 프로젝트에서 진행하세요. 기존 파일이 있다면 변경 전 기록을 남깁니다.
- 현재 요청량·데이터 크기·실시간·지연·비용 병목을 측정하세요.
- 모놀리스 안에서 책임 경계와 계약을 먼저 정리하세요.
- 필요한 비동기 작업이나 캐시 하나부터 분리하세요.
- 중복 전달·의존 장애·복구·관찰 비용까지 확인하세요.
코드와 프롬프트
아래 요청에서 대괄호 부분을 내 프로젝트에 맞게 바꾼 뒤 AI 도구에 전달하세요.
[서비스]의 실제 병목 [측정값]을 기준으로 최소 확장 계획을 만들어줘. 모듈형 모놀리스부터 검토하고 큐·비동기·서버리스·DB·복제·CDN·캐시·로드 밸런싱이 필요한 조건과 장애 복구·정합성·관찰 비용을 설명해줘.자주 발생하는 문제와 해결
| 문제와 원인 | 해결 방법과 확인 기준 |
|---|---|
| 처음부터 마이크로서비스를 여러 개 만듦 | 팀의 운영 역량과 실제 독립 배포 필요부터 확인합니다. |
| 큐에 넣으면 한 번만 실행될 것이라 가정함 | 멱등성 키와 재시도 상태로 중복을 안전하게 처리합니다. |
핵심 요약
- 필요가 확인된 경계만 분리합니다.
- 확장은 운영과 장애 복구까지 포함한 설계입니다.
완료 확인
참고자료
확인 기준일: 2026-10-20. 요금·사용 한도·제품 기능·설정 경로는 변경될 수 있으므로 작업 직전 공식 문서와 설치 버전을 확인하세요.