ed41ef24cb39adce162551971c2c71c6734774cd
alist API
Gradle 기반 Spring Boot 멀티모듈 API 프로젝트입니다. 하나의 저장소에서 core 공통 기능과 admin/front 실행 서버를 함께 관리합니다.
모듈
01-api-core 공통 인프라, 공통 기능, 업무 모듈 라이브러리
02-api-admin 관리자 API 실행 서버
03-api-front 사용자 API 실행 서버
01-api-core는 단독 실행하지 않습니다.02-api-admin은api-admin.jar를 생성합니다.03-api-front는api-front.jar를 생성합니다.- admin/front는 각각 core에 의존하며, 서로의 Controller를 포함하지 않습니다.
처음 보는 사람을 위한 구조
HTTP 요청
-> admin/front Controller
-> admin/front 업무 Service
-> core standard 또는 bespoke Service
-> Mapper -> Mapper XML -> DB
admin과front는 각각 실행·배포되는 API 서버입니다.core는 실행하지 않는 공유 라이브러리이며, 공통 기능과 DB 접근 코드를 둡니다.- 단일 테이블 SQL은
standard, 여러 테이블 JOIN이나 복합 SQL은bespoke에 둡니다. - Controller는 HTTP만, admin/front Service는 업무 흐름만, core는 데이터 접근만 담당합니다.
처음 참여했다면 구조 한눈에 보기 -> Core 모듈 설계 -> 코드 컨벤션 순서로 읽습니다.
빌드와 실행
./gradlew :02-api-admin:bootJar
./gradlew :03-api-front:bootJar
빌드 결과:
02-api-admin/build/libs/api-admin.jar
03-api-front/build/libs/api-front.jar
로컬 실행:
./gradlew :02-api-admin:bootRun --args='--spring.profiles.active=local'
./gradlew :03-api-front:bootRun --args='--spring.profiles.active=local'
Windows에서는 ./gradlew 대신 ./gradlew.bat를 사용합니다.
패키지 기준
com.alist.api.core
com.alist.api.admin
com.alist.api.front
core.common: JWT, 예외, 공통 응답, 유틸처럼 시스템 전반에서 사용하는 기능core.config: DataSource, MyBatis, 공통 인프라 설정core.modules.standard: 단일 테이블의 표준 조회·등록·수정·삭제core.modules.bespoke: 여러 테이블 JOIN, 집계, 복합 SQL 데이터 접근admin/front: Controller, Form, VO, 각 서버의 Security/OpenAPI 설정
상세 기준은 Core 모듈 설계를 참고합니다.
기술 스택
- Java 21, Spring Boot 3.5.10, Gradle
- MyBatis, MariaDB, SQL Server 마이그레이션 데이터소스
- Spring Security, JWT, Redis
- Swagger / OpenAPI, Actuator, Lombok, Validation, log4jdbc
문서
Description