runtime-smoke-20260710143823/source-inventory/INVENTORY.md

5.9 KiB

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