소스 인벤토리 구조 분석 (iss-bfacccaabbd5)

This commit is contained in:
forge-bot 2026-07-14 04:34:10 +00:00
parent 3bea3447eb
commit f176514078

View file

@ -0,0 +1,197 @@
# 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<UserDto> |
| 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*