Files
2026-07-20 17:49:24 +09:00

91 lines
3.1 KiB
Markdown

# alist API
Gradle 기반 Spring Boot 멀티모듈 API 프로젝트입니다. 하나의 저장소에서 core 공통 기능과 admin/front 실행 서버를 함께 관리합니다.
## 모듈
```text
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를 포함하지 않습니다.
## 처음 보는 사람을 위한 구조
```text
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는 데이터 접근만 담당합니다.
처음 참여했다면 [구조 한눈에 보기](docs/architecture-at-a-glance.md) -> [Core 모듈 설계](docs/core-module-design.md) -> [코드 컨벤션](docs/code-conventions.md) 순서로 읽습니다.
## 빌드와 실행
```bash
./gradlew :02-api-admin:bootJar
./gradlew :03-api-front:bootJar
```
빌드 결과:
```text
02-api-admin/build/libs/api-admin.jar
03-api-front/build/libs/api-front.jar
```
로컬 실행:
```bash
./gradlew :02-api-admin:bootRun --args='--spring.profiles.active=local'
./gradlew :03-api-front:bootRun --args='--spring.profiles.active=local'
```
Windows에서는 `./gradlew` 대신 `./gradlew.bat`를 사용합니다.
## 패키지 기준
```text
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 모듈 설계](docs/core-module-design.md)를 참고합니다.
## 기술 스택
- Java 21, Spring Boot 3.5.10, Gradle
- MyBatis, MariaDB, SQL Server 마이그레이션 데이터소스
- Spring Security, JWT, Redis
- Swagger / OpenAPI, Actuator, Lombok, Validation, log4jdbc
## 문서
- [프로젝트 개요](docs/project-overview.md)
- [구조 한눈에 보기](docs/architecture-at-a-glance.md)
- [Core 모듈 설계](docs/core-module-design.md)
- [코드 컨벤션](docs/code-conventions.md)
- [보안 및 응답 규칙](docs/security-and-response.md)
- [설정 및 실행 가이드](docs/runtime-config.md)
- [검증 및 체크리스트](docs/verification-checklist.md)
- [현재 코드베이스 메모](docs/codebase-notes.md)