Spring Boot 4 기반의 간단한 사용자 조회 REST API 실습 프로젝트입니다.
ui, app, domain, infra 계층으로 구성된 클린 아키텍처를 적용합니다.
설정은 12-Factor 원칙에 따라 환경변수를 사용하며 local, prod, test 프로필로 분리합니다.
GET /은 애플리케이션 상태를, GET /users는 JPA 기반 사용자 목록을 반환합니다.
MockMvc 슬라이스 테스트와 Gradle Wrapper 기반 실행 가능한 fat JAR 빌드를 지원합니다.
로컬 실행 전 .env.example을 .env로 복사하고 Aiven MySQL 연결 정보를 입력합니다.
cp .env.example .env
# .env에 연결 정보를 입력한 뒤 실행
./gradlew bootRun기본 local 프로필은 프로젝트 루트의 .env를 자동으로 읽습니다. 파일은 Java properties 형식이므로 값에 따옴표나 export를 붙이지 않습니다.
AIVEN_MYSQL_HOST, AIVEN_MYSQL_PORT, AIVEN_MYSQL_DB, AIVEN_MYSQL_USER, AIVEN_MYSQL_PASSWORD를 모두 입력해야 하며, MySQL 연결에는 TLS를 사용합니다.
.env는 Git에 포함하지 않습니다.
운영 환경에서는 SPRING_PROFILES_ACTIVE=prod와 동일한 다섯 환경변수를 배포 환경에 설정합니다.
운영 프로필의 스키마 검증 기본값은 validate이므로 DB 스키마를 미리 준비해야 합니다.