해결하려는 문제 (Problem)
현재 표준프레임워크 실행환경 소개 문서는 화면처리, 업무처리, 데이터처리, 연계통합, 배치처리, 공통기반 중심의 전통적인 레이어드 아키텍처를 잘 설명하고 있습니다.
다만 최근 공공 정보시스템은 클라우드 전환, 컨테이너 배포, Kubernetes 운영, MSA, 이벤트 기반 연계, 관찰가능성 적용 등으로 운영 환경과 아키텍처 선택지가 넓어지고 있습니다. 이 관점에서 보면 현재 문서에는 다음과 같은 공백이 있습니다.
- 기존 레이어드 아키텍처, Spring Boot API 구조, MSA 구조, 이벤트 기반 구조 중 어떤 방식을 선택해야 하는지 한눈에 안내하는 상위 문서가 부족합니다.
egovframe-msa-common-components, egovframe-operating-environment-msa, egovframe-ex-cloud-data-stream 등 관련 저장소와 예제가 존재하지만, 표준프레임워크 공식 아키텍처 선택지로 연결되는 설명이 약합니다.
- 기존 시스템을 클라우드 환경으로 전환할 때 “현행 구조 유지”, “API 분리”, “모듈러 모놀리스”, “서비스 분리”, “이벤트 기반 연계”, “Kubernetes/Service Mesh 운영” 중 어떤 순서와 기준으로 접근할지에 대한 전환 경로 문서가 부족합니다.
따라서 문제는 클라우드/MSA 관련 기능이 전혀 없다는 점이 아니라, 이미 존재하는 실행환경·템플릿·샘플·운영환경 문서를 연결해 주는 “아키텍처 선택 기준과 전환 경로” 문서가 부족하다는 점입니다.
제안 내용 (Proposed Solution)
egovframe-runtime 또는 개발환경 문서 하위에 “클라우드 최적화 참조 아키텍처” 문서를 추가하는 것을 제안합니다. 이 문서는 기존 레이어드 아키텍처를 대체하는 것이 아니라, 표준프레임워크 기반 시스템이 클라우드 전환 환경에서 선택할 수 있는 아키텍처 옵션을 병행 제시하는 역할을 합니다.
문서에는 다음 네 가지 선택지를 함께 정리하면 좋겠습니다.
-
기존 레이어드 아키텍처
- 단일 업무 시스템, 내부망, 전통적 WAS/DB 중심 시스템에 적합
- 표준프레임워크 실행환경의 화면처리, 업무처리, 데이터처리, 연계통합, 배치, 공통기반 구조를 그대로 활용
-
Spring Boot API 아키텍처
- 프론트엔드 분리, REST API, 모바일/SPA/Flutter 연계, 컨테이너 배포에 적합
- 기존 MVC/JSP 중심 구조에서 API 중심 구조로 단계적으로 전환하는 선택지
-
MSA 아키텍처
- Gateway, Config Server, Service Discovery, 서비스별 독립 배포, 서비스별 권한/DB/스케일링이 필요한 경우에 적합
egovframe-msa-common-components와 MSA Template Wizard를 참조할 수 있음
-
이벤트 기반/스트림 아키텍처
- Kafka/RabbitMQ, Spring Cloud Stream, OpenSearch, MongoDB 등을 활용한 비동기 연계와 실시간 처리에 적합
egovframe-ex-cloud-data-stream 예제와 연결 가능
또한 기존 시스템의 전환 경로를 다음과 같은 단계 모델로 설명하면 실무자가 판단하기 쉬울 것 같습니다.
레이어드 구조 유지
→ Spring Boot/API 분리
→ 모듈러 모놀리스 정리
→ 서비스 단위 분리
→ 이벤트 기반 연계 도입
→ Kubernetes/Service Mesh 운영
문서에는 클라우드 네이티브 기본 원칙도 표준프레임워크 관점에서 함께 정리하면 좋겠습니다.
- 외부화 설정: Spring Profile, Config Server, 환경변수 기반 설정
- Stateless 서비스: 세션/파일/캐시를 외부 저장소로 분리
- Health/Readiness/Liveness: Actuator 기반 상태 확인
- Graceful Shutdown: 배포/스케일링 시 안전한 종료
- Structured Logging: JSON 로그, traceId/spanId, 서비스명 포함
- Secrets/Config 분리: DB 비밀번호, 토큰 키, 인증서 등 비밀정보 관리
- Observability: OpenTelemetry, Prometheus, Loki, Jaeger, Grafana, Kiali 연계
- Autoscaling 고려: 서비스별 부하 특성과 수평 확장 기준 정리
대안 (Alternatives)
-
기존 MSA 관련 저장소의 README만 보강하는 방법
- 장점: 변경 범위가 작습니다.
- 한계: 실행환경/개발환경 문서를 보는 사용자가 클라우드 아키텍처 선택지를 발견하기 어렵습니다.
-
운영환경 MSA 문서에만 내용을 추가하는 방법
- 장점: Kubernetes, Istio, OpenTelemetry 내용과 가깝습니다.
- 한계: 개발자가 애플리케이션 구조를 어떻게 설계해야 하는지에 대한 상위 가이드로는 부족할 수 있습니다.
-
바로 샘플 코드를 추가하는 방법
- 장점: 실행 가능한 예제를 빠르게 보여줄 수 있습니다.
- 한계: 어떤 아키텍처를 언제 선택해야 하는지에 대한 합의 없이 코드부터 추가하면 유지보수 범위가 커질 수 있습니다.
따라서 우선은 문서 이슈로 방향을 논의하고, 합의 후 문서 PR 또는 샘플 개선 PR로 나누어 진행하는 방식을 제안합니다.
관련 영역 (Affected Area)
참고 자료 (References)
관련 논의:
기대효과
- 표준프레임워크 사용자가 기존 레이어드 구조와 클라우드 최적화 구조를 상황에 맞게 선택할 수 있습니다.
- 기존 시스템을 MSA로 무리하게 전환하지 않고, 단계적 전환 전략을 세울 수 있습니다.
- 이미 존재하는 MSA 공통컴포넌트, Cloud Data Stream, 운영환경 MSA 문서가 공식 아키텍처 흐름 안에서 연결됩니다.
- 공공기관 클라우드 전환 사업에서 표준프레임워크의 적용 범위와 현대적 활용 가능성을 더 명확히 설명할 수 있습니다.
- 향후 REST API 표준화, Observability 표준화, Boot Starter 논의와도 자연스럽게 연결될 수 있습니다.
해결하려는 문제 (Problem)
현재 표준프레임워크 실행환경 소개 문서는 화면처리, 업무처리, 데이터처리, 연계통합, 배치처리, 공통기반 중심의 전통적인 레이어드 아키텍처를 잘 설명하고 있습니다.
다만 최근 공공 정보시스템은 클라우드 전환, 컨테이너 배포, Kubernetes 운영, MSA, 이벤트 기반 연계, 관찰가능성 적용 등으로 운영 환경과 아키텍처 선택지가 넓어지고 있습니다. 이 관점에서 보면 현재 문서에는 다음과 같은 공백이 있습니다.
egovframe-msa-common-components,egovframe-operating-environment-msa,egovframe-ex-cloud-data-stream등 관련 저장소와 예제가 존재하지만, 표준프레임워크 공식 아키텍처 선택지로 연결되는 설명이 약합니다.따라서 문제는 클라우드/MSA 관련 기능이 전혀 없다는 점이 아니라, 이미 존재하는 실행환경·템플릿·샘플·운영환경 문서를 연결해 주는 “아키텍처 선택 기준과 전환 경로” 문서가 부족하다는 점입니다.
제안 내용 (Proposed Solution)
egovframe-runtime또는 개발환경 문서 하위에 “클라우드 최적화 참조 아키텍처” 문서를 추가하는 것을 제안합니다. 이 문서는 기존 레이어드 아키텍처를 대체하는 것이 아니라, 표준프레임워크 기반 시스템이 클라우드 전환 환경에서 선택할 수 있는 아키텍처 옵션을 병행 제시하는 역할을 합니다.문서에는 다음 네 가지 선택지를 함께 정리하면 좋겠습니다.
기존 레이어드 아키텍처
Spring Boot API 아키텍처
MSA 아키텍처
egovframe-msa-common-components와 MSA Template Wizard를 참조할 수 있음이벤트 기반/스트림 아키텍처
egovframe-ex-cloud-data-stream예제와 연결 가능또한 기존 시스템의 전환 경로를 다음과 같은 단계 모델로 설명하면 실무자가 판단하기 쉬울 것 같습니다.
문서에는 클라우드 네이티브 기본 원칙도 표준프레임워크 관점에서 함께 정리하면 좋겠습니다.
대안 (Alternatives)
기존 MSA 관련 저장소의 README만 보강하는 방법
운영환경 MSA 문서에만 내용을 추가하는 방법
바로 샘플 코드를 추가하는 방법
따라서 우선은 문서 이슈로 방향을 논의하고, 합의 후 문서 PR 또는 샘플 개선 PR로 나누어 진행하는 방식을 제안합니다.
관련 영역 (Affected Area)
egovframe-development/)egovframe-runtime/)common-component/)README, 설정 파일 등)참고 자료 (References)
관련 논의:
기대효과