Source Inventory - runtime-smoke-20260710143823
프로젝트 개요
- 프로젝트명: runtime-smoke-20260710143823
- 프로젝트 유형: Java/Spring Boot REST API 서비스
- 아키텍처: 계층형 (Controller-Service-Repository Pattern)
- 빌드 도구: Maven
1. 소스 코드 구조 (Source Code)
1.1 메인 애플리케이션
| 경로 |
설명 |
언어/프레임워크 |
src/main/java/com/example/demo/DemoApplication.java |
Spring Boot 메인 애플리케이션 진입점 |
Java 17, Spring Boot 3.x |
1.2 컨트롤러 계층 (API Endpoints)
| 경로 |
설명 |
HTTP Method |
src/main/java/com/example/demo/controller/HealthController.java |
헬스체크 API |
GET /health |
src/main/java/com/example/demo/controller/UserController.java |
사용자 관리 API |
CRUD REST APIs |
1.3 서비스 계층 (Business Logic)
| 경로 |
설명 |
src/main/java/com/example/demo/service/UserService.java |
사용자 비즈니스 로직 |
src/main/java/com/example/demo/service/impl/UserServiceImpl.java |
사용자 서비스 구현체 |
1.4 리포지토리 계층 (Data Access)
| 경로 |
설명 |
src/main/java/com/example/demo/repository/UserRepository.java |
JPA 리포지토리 |
1.5 도메인 모델 (Entities)
| 경로 |
설명 |
src/main/java/com/example/demo/entity/User.java |
사용자 엔티티 |
1.6 DTO (Data Transfer Objects)
| 경로 |
설명 |
src/main/java/com/example/demo/dto/UserDto.java |
사용자 데이터 전송 객체 |
src/main/java/com/example/demo/dto/ApiResponse.java |
공통 API 응답 포맷 |
1.7 예외 처리 (Exception Handling)
| 경로 |
설명 |
src/main/java/com/example/demo/exception/GlobalExceptionHandler.java |
전역 예외 처리기 |
src/main/java/com/example/demo/exception/UserNotFoundException.java |
사용자 미존재 예외 |
2. 리소스 및 설정 (Resources & Configuration)
2.1 설정 파일
| 경로 |
설명 |
src/main/resources/application.yml |
Spring Boot 메인 설정 |
src/main/resources/application-dev.yml |
개발 환경 설정 |
src/main/resources/application-prod.yml |
운영 환경 설정 |
src/main/resources/schema.sql |
데이터베이스 스키마 |
src/main/resources/data.sql |
초기 데이터 |
2.2 정적 리소스
| 경로 |
설명 |
src/main/resources/static/ |
정적 웹 리소스 (HTML, CSS, JS) |
src/main/resources/templates/ |
템플릿 엔진 파일 (Thymeleaf 등) |
3. 테스트 코드 (Test Code)
3.1 단위 테스트
| 경로 |
설명 |
src/test/java/com/example/demo/service/UserServiceTest.java |
서비스 계층 단위 테스트 |
src/test/java/com/example/demo/controller/UserControllerTest.java |
컨트롤러 계층 단위 테스트 |
3.2 통합 테스트
| 경로 |
설명 |
src/test/java/com/example/demo/DemoApplicationTests.java |
애플리케이션 통합 테스트 |
3.3 테스트 리소스
| 경로 |
설명 |
src/test/resources/application.yml |
테스트 환경 설정 |
4. 빌드 및 배포 (Build & Deployment)
4.1 빌드 설정
| 경로 |
설명 |
pom.xml |
Maven POM 파일 (의존성, 플러그인, 빌드 설정) |
mvnw |
Maven Wrapper 스크립트 |
mvnw.cmd |
Maven Wrapper Windows 스크립트 |
4.2 Docker
| 경로 |
설명 |
Dockerfile |
Docker 이미지 빌드 설정 |
docker-compose.yml |
Docker Compose 설정 |
4.3 CI/CD
| 경로 |
설명 |
.github/workflows/ci.yml |
GitHub Actions CI 파이프라인 |
5. 데이터베이스 (Database)
5.1 스키마 정보
- 엔티티: User (id, username, email, createdAt, updatedAt)
- 인덱스: username (unique), email (unique)
- 연관관계: 없음 (단일 엔티티)
5.2 마이그레이션
| 경로 |
설명 |
src/main/resources/db/migration/ |
Flyway 마이그레이션 스크립트 |
6. API 명세 (API Specification)
6.1 REST API Endpoints
| Method |
Endpoint |
Description |
Request Body |
Response |
| GET |
/api/users |
사용자 목록 조회 |
- |
List |
| GET |
/api/users/{id} |
사용자 단건 조회 |
- |
UserDto |
| POST |
/api/users |
사용자 생성 |
UserDto |
UserDto |
| PUT |
/api/users/{id} |
사용자 수정 |
UserDto |
UserDto |
| DELETE |
/api/users/{id} |
사용자 삭제 |
- |
void |
| GET |
/health |
헬스체크 |
- |
{"status": "UP"} |
6.2 API 문서
| 경로 |
설명 |
src/main/resources/api-spec.yaml |
OpenAPI 3.0 명세 (선택사항) |
7. 프로젝트 메타데이터
7.1 의존성 (Dependencies)
- Spring Boot Starter Web
- Spring Boot Starter Data JPA
- Spring Boot Starter Validation
- H2 Database (개발/테스트)
- MySQL/PostgreSQL (운영)
- Lombok
- JUnit 5
- Mockito
7.2 환경 변수
| 변수명 |
설명 |
기본값 |
SERVER_PORT |
서버 포트 |
8080 |
SPRING_DATASOURCE_URL |
DB 연결 URL |
jdbc:h2:mem:testdb |
SPRING_DATASOURCE_USERNAME |
DB 사용자명 |
sa |
SPRING_DATASOURCE_PASSWORD |
DB 비밀번호 |
(없음) |
8. 문서 (Documentation)
| 경로 |
설명 |
README.md |
프로젝트 개요 및 시작 가이드 |
CONTRIBUTING.md |
기여 가이드 |
CHANGELOG.md |
변경 이력 |
9. 인벤토리 요약
| 카테고리 |
항목 수 |
| Java 소스 파일 |
10 |
| 설정 파일 |
5 |
| 테스트 파일 |
3 |
| 빌드 스크립트 |
2 |
| Docker 파일 |
2 |
| CI/CD 설정 |
1 |
| 문서 |
3 |
| 총계 |
26 |
생성일: 2026-07-10
생성자: Source Inventory Analyzer