이 페이지의 구성
클라우드 최적화 참조 아키텍처
클라우드 최적화 참조 아키텍처
개요
표준프레임워크 실행환경은 화면처리, 업무처리, 데이터처리, 연계통합, 배치처리, 공통기반으로 구성된 레이어드 아키텍처를 제공한다. 이 구조는 단일 업무시스템, 내부망 중심 시스템, 전통적인 WAS/DB 기반 시스템에서 여전히 유효한 선택지이다.
최근에는 공공 정보시스템도 클라우드 전환, 컨테이너 배포, 프론트엔드 분리, 마이크로서비스 아키텍처(MSA), 이벤트 기반 연계, 관찰가능성 적용을 함께 고려하는 경우가 늘고 있다. 따라서 기존 구조를 유지할 수 있는 경우와 클라우드 환경에 맞는 구조를 검토해야 하는 경우를 구분해 이해할 필요가 있다.
이 문서는 특정 기술이나 배포 방식을 강제하지 않는다. 표준프레임워크 기반 시스템을 설계할 때 참고할 수 있는 아키텍처 선택지와 단계적 전환 방향을 안내한다.
아키텍처 선택 기준
| 선택지 | 적합한 경우 | 주요 고려사항 |
|---|---|---|
| 기존 레이어드 아키텍처 | 단일 업무시스템, 내부망 중심 시스템, 화면과 서버가 함께 배포되는 시스템 | 기존 실행환경 구조와 개발 방식을 유지할 수 있다. 업무 규모가 크지 않거나 독립 배포 요구가 낮은 경우에 적합하다. |
| Spring Boot API 아키텍처 | React, Vue, Flutter, 모바일 앱 등 화면과 서버를 분리하는 시스템 | REST API, 인증, 공통 응답, OpenAPI 문서화, 컨테이너 배포를 함께 고려한다. |
| MSA 아키텍처 | 서비스별 독립 배포, 독립 확장, 장애 격리, 팀 단위 개발이 필요한 시스템 | Gateway, 설정 관리, 서비스 발견, 인증, 서비스 간 통신, 운영 복잡도를 함께 설계한다. |
| 이벤트 기반/스트림 아키텍처 | 여러 시스템 간 데이터를 비동기로 주고받거나 로그, 검색, 알림, 실시간 처리 요구가 있는 시스템 | 메시지 브로커, 이벤트 흐름, 재처리, 장애 시 보상 처리, 데이터 정합성을 고려한다. |
| Kubernetes/Service Mesh 운영 아키텍처 | 여러 서비스를 컨테이너로 배포하고 운영 표준, 관찰가능성, 트래픽 제어가 필요한 환경 | 배포 자동화, 로그·메트릭·추적, 보안 정책, Secret 관리, 수평 확장을 함께 검토한다. |
단계적 전환 로드맵
기존 시스템을 한 번에 MSA나 Kubernetes 기반 구조로 전환할 필요는 없다. 업무 특성과 운영 여건에 따라 다음과 같이 단계적으로 접근할 수 있다.
기존 구조 유지
→ API 분리
→ 내부 모듈 정리
→ 필요한 서비스부터 분리
→ 메시지 기반 연계 도입
→ 클라우드 운영환경 적용
1. 기존 구조 유지
업무 범위가 비교적 명확하고 단일 배포로도 운영에 문제가 없다면 기존 레이어드 아키텍처를 유지할 수 있다. 이 경우에도 환경별 설정 분리, 로그 표준화, 보안 정보 분리와 같은 운영 기준은 함께 점검하는 것이 좋다.
2. API 분리
화면과 서버를 분리해야 하거나 모바일 앱, SPA, 외부 시스템과 연계해야 한다면 API 중심 구조를 검토한다. 이 단계에서는 REST API, 인증, 공통 오류 응답, OpenAPI 문서화 기준을 정리하는 것이 중요하다.
3. 내부 모듈 정리
서비스를 바로 나누기 전에 업무 경계, 공통 모듈, 데이터 접근 경계를 정리한다. 이 단계는 모듈러 모놀리스 방식으로 볼 수 있으며, 이후 필요한 기능만 서비스로 분리하기 쉽게 만든다.
4. 필요한 서비스부터 분리
장애 영향이 크거나 트래픽이 많은 기능, 별도 배포가 자주 필요한 기능부터 독립 서비스로 분리한다. 모든 기능을 동시에 분리하기보다 Gateway, 인증, 공통코드, 검색 등 분리 효과가 큰 영역부터 검토한다.
5. 메시지 기반 연계 도입
서비스 간 직접 호출이 많아지거나 실시간 처리, 로그 수집, 검색 색인, 알림이 필요하면 메시지 기반 연계를 검토한다. 이벤트 기반 구조는 서비스 간 결합도를 낮출 수 있지만, 재처리와 장애 대응 기준을 함께 설계해야 한다.
6. 클라우드 운영환경 적용
서비스 수가 늘어나면 컨테이너 배포, 중앙 로그, 메트릭, 분산 추적, 배포 자동화, Secret 관리가 중요해진다. Kubernetes와 Service Mesh는 이러한 운영 요구가 충분히 커졌을 때 단계적으로 적용하는 것이 적합하다.
클라우드 네이티브 기본 원칙
클라우드 환경에서는 애플리케이션 코드뿐 아니라 운영 방식도 함께 표준화해야 한다. 다음 항목은 표준프레임워크 기반 시스템을 클라우드 환경에 맞게 준비할 때 점검할 수 있는 기본 기준이다.
| 항목 | 설명 |
|---|---|
| 외부화 설정 | DB 주소, API 주소, 파일 경로, 실행 프로파일을 코드와 분리하여 환경별로 관리한다. |
| Stateless 서비스 | 세션, 파일, 캐시 등 상태 정보를 애플리케이션 내부에 고정하지 않고 외부 저장소로 분리한다. |
| 상태 확인 | Health, readiness, liveness 확인을 통해 서비스가 정상 기동·처리 가능한지 운영환경에서 판단할 수 있게 한다. |
| 안전한 종료 | 배포나 확장 중에도 요청 처리 중단을 최소화하도록 graceful shutdown을 고려한다. |
| 구조화된 로그 | 로그에 시간, 서비스명, 요청 식별자, traceId 등을 포함하여 장애 분석이 가능하게 한다. |
| 보안 정보 분리 | 비밀번호, 토큰 키, 인증서 같은 비밀정보를 소스와 설정 파일에 직접 포함하지 않는다. |
| 관찰가능성 | 로그, 메트릭, 추적 정보를 모아 장애 원인과 서비스 간 호출 흐름을 확인할 수 있게 한다. |
| 수평 확장 | 서비스별 부하 특성을 기준으로 독립적인 확장 가능성을 검토한다. |
표준프레임워크 관련 자산
표준프레임워크에는 클라우드 전환을 검토할 때 함께 참고할 수 있는 문서와 예제가 이미 존재한다.
| 구분 | 참고 대상 |
|---|---|
| 실행환경 기본 구조 | 표준프레임워크 실행환경 소개 |
| 리액티브 웹 처리 | Web Reactive |
| 리액티브 데이터 처리 | Spring Data - Reactive |
| 이벤트 기반 연계 | Cloud Data Stream |
| MSA 개발 템플릿 | MSA Boot Template Project Wizard |
| MSA 공통컴포넌트 | egovframe-msa-common-components |
| MSA 운영환경 | egovframe-operating-environment-msa |
| 클라우드 데이터 스트림 예제 | egovframe-ex-cloud-data-stream |
참고 사례
해외 공공부문에서도 클라우드 전환은 단순한 서버 이전이 아니라 공통 플랫폼, 보안 기준, 배포 자동화, 관찰가능성을 함께 다루는 방향으로 발전하고 있다.
| 사례 | 참고할 점 |
|---|---|
| 미국 cloud.gov | 정부용 PaaS를 통해 애플리케이션 배포, 로그, 서비스 운영 기준을 공통화한다. |
| 싱가포르 GovTech | 정부 개발 플랫폼, GitOps, 클라우드 보안·컴플라이언스 자동화를 함께 다룬다. |
| 영국 DWP Digital | 여러 서비스 팀이 재사용할 수 있는 공통 클라우드 네이티브 플랫폼 관점을 제시한다. |
| 미국 DoD Platform One | DevSecOps, 컨테이너 보안, 서비스 메시, 지속적 보안 검토를 공공 영역의 운영 모델로 다룬다. |
이러한 사례는 특정 제품을 도입하자는 의미가 아니라, 표준프레임워크 문서에서도 클라우드 환경의 설계·운영 선택지를 쉽게 찾을 수 있도록 안내할 필요가 있음을 보여준다.