스프링 전환 계획 수립 (iss-cb35afc33813)

This commit is contained in:
forge-bot 2026-07-14 04:45:03 +00:00
parent ffc47c5593
commit 0734480455

View file

@ -0,0 +1,101 @@
# 스프링 전환 아키텍처 설계서
## 1. 개요
### 1.1 목적
본 문서는 기존 시스템을 스프링 프레임워크 기반으로 전환하기 위한 아키텍처 설계를 정의한다.
### 1.2 기존 vs 스프링 시스템 비교
| 구분 | 기존 시스템 | 스프링 기반 시스템 |
|------|------------|------------------|
| 프레임워크 | 레거시 | Spring Boot 3.2.0 |
| DI 방식 | 수동 | Spring IoC/DI |
| 설정 | XML | Java Config + YAML |
| 트랜잭션 | 수동 | @Transactional |
| 웹 | 서블릿 | Spring MVC |
## 2. 대상 아키텍처
### 2.1 계층 구조
```
┌─────────────────────────────────────┐
│ Presentation (REST Controllers) │
├─────────────────────────────────────┤
│ Service (Business Logic) │
├─────────────────────────────────────┤
│ Repository (Data Access) │
├─────────────────────────────────────┤
│ Domain (Entity/Model) │
└─────────────────────────────────────┘
```
### 2.2 모듈 구조
```
spring-transition-project/
├── pom.xml (Parent BOM)
├── common/ # 공통 유틸리티
├── domain/ # 도메인 엔티티
├── repository/ # 데이터 접근
├── service/ # 비즈니스 로직
├── web/ # 웹 프레젠테이션
└── application/ # 메인 애플리케이션
```
### 2.3 핵심 의존성
| 의존성 | 버전 | 용도 |
|--------|------|------|
| spring-boot | 3.2.0 | 코어 |
| spring-boot-starter-web | 3.2.0 | REST API |
| spring-boot-starter-data-jpa | 3.2.0 | ORM |
| spring-boot-starter-validation | 3.2.0 | 검증 |
| lombok | 1.18.30 | 코드 생성 |
| h2 | 2.2.224 | 인메모리 DB |
## 3. 전환 전략
### 3.1 Strangler Fig Pattern
1. **프록시 계층**: API Gateway 배치
2. **점진적 전환**: 모듈별 순차 전환
3. **트래픽 분기**: 신규→스프링, 기존→레거시
### 3.2 전환 우선순위
| 단계 | 대상 | 기간 | 위험도 |
|------|------|------|--------|
| 1 | 공통 유틸리티 | 2주 | 낮음 |
| 2 | 도메인/엔티티 | 3주 | 중간 |
| 3 | Repository | 4주 | 중간 |
| 4 | Service | 4주 | 높음 |
| 5 | Web | 3주 | 높음 |
| 6 | 통합 테스트 | 2주 | 중간 |
## 4. 기존 시스템과의 관계
### 4.1 공존 모델
```
┌──────────────┐ ┌──────────────┐
│ Legacy (RO) │────▶│ Spring (WO) │
└──────────────┘ └──────────────┘
└──────────┬───────────┘
┌──────────────┐
│ Shared DB │
└──────────────┘
```
### 4.2 인터페이스
| 인터페이스 | 방향 | 프로토콜 |
|-----------|------|---------|
| REST API | 양방향 | HTTP/JSON |
| 내부 이벤트 | 단방향 | Spring Events |
| 메시지 큐 | 단방향 | Kafka/RabbitMQ |
## 5. 검증 기준
- 단위 테스트 커버리지 80% 이상
- 통합 테스트 통과
- 성능 테스트 기준 충족
- 보안 취약점 스캔 통과