Files
api2/docs/project-overview.md
2026-07-20 17:49:24 +09:00

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 데이터 접근

adminfront에는 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