Files
api2/README.md
T
2026-07-20 17:49:24 +09:00

3.1 KiB

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-adminapi-admin.jar를 생성합니다.
  • 03-api-frontapi-front.jar를 생성합니다.
  • admin/front는 각각 core에 의존하며, 서로의 Controller를 포함하지 않습니다.

처음 보는 사람을 위한 구조

HTTP 요청
  -> admin/front Controller
  -> admin/front 업무 Service
  -> core standard 또는 bespoke Service
  -> Mapper -> Mapper XML -> DB
  • adminfront는 각각 실행·배포되는 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

문서