2.4 KiB
2.4 KiB
프로젝트 개요
프로젝트 기본 정보
- 프로젝트 유형: Gradle 기반 Spring Boot 멀티모듈 모놀리식
- Java 버전: 21
- Spring Boot 버전: 3.5.10
- 저장소: 단일 Git 저장소
- 실행 서버: admin, front
모듈 구성
| 모듈 | 역할 | 실행 여부 |
|---|---|---|
01-api-core |
공통 인프라, 공통 기능, 업무 모듈 | 실행하지 않음 |
02-api-admin |
관리자 API, 관리자 보안과 Swagger 설정 | api-admin.jar |
03-api-front |
사용자 API, 사용자 보안과 Swagger 설정 | api-front.jar |
admin/front는 01-api-core에 의존하지만 서로 의존하지 않습니다. 각 bootJar에는 core 라이브러리가 포함되며, 다른 서버의 Controller는 물리적으로 포함되지 않습니다.
패키지 구조
com.alist.api.core
com.alist.api.admin
com.alist.api.front
core는 다음 책임으로 나눕니다.
common: JWT, 예외, 응답, 페이징, 유틸과 같은 시스템 공통 기능config: DataSource, MyBatis, 공통 인프라 설정modules.standard: 재사용 가능한 표준 데이터 처리modules.bespoke: 기준 테이블의 업무 전용 JOIN·집계·특수 SQL 데이터 접근
admin과 front에는 Controller, 업무 Service, Form, 외부 응답 VO, 서버별 SecurityConfig, OpenApiConfig, 환경별 리소스를 둡니다. 업무 정책과 여러 core 호출의 조합, 트랜잭션 경계는 각 실행 모듈 Service가 소유합니다.
admin과 front는 물리적으로 분리된 서버이므로 API path에 서버 구분 접두어를 중복하지 않습니다. 예를 들어 admin 인증 API는 /admin/auth/login이 아니라 /auth/login으로 둡니다.
현재 이관 상태
- 멀티모듈 Gradle 구조와 admin/front 개별 bootJar 구성이 완료되었습니다.
- 공통 응답, 예외, JWT, DataSource, Mapper XML 리소스는 core로 이동했습니다.
- 기존 admin/front 업무 API는 core standard/bespoke와 각 실행 모듈 Service 구조로 이관했습니다.
- 단일 모듈 레거시 소스는 제거했으며, 이전 구현 이력은 Git history로 확인합니다.
기술 스택
- Java 21, Spring Boot 3.5.10, Gradle
- MyBatis, MariaDB, SQL Server 마이그레이션 데이터소스
- Spring Security, JWT, Redis
- Swagger / OpenAPI, Actuator, Lombok, Validation, log4jdbc
빌드 결과
02-api-admin/build/libs/api-admin.jar
03-api-front/build/libs/api-front.jar