소스 인벤토리 구조 분석 #1

Open
forge-bot wants to merge 7 commits from forge/iss-bfacccaabbd5-attempt-2-run-e90ddcbf6b8b into main
7 changed files with 350 additions and 0 deletions

View file

@ -0,0 +1,3 @@
# iss-bfacccaabbd5-attempt-2-run-e90ddcbf6b8b
Forge 이슈 작업 브랜치 `forge/iss-bfacccaabbd5-attempt-2-run-e90ddcbf6b8b`.

View file

@ -0,0 +1,70 @@
# Source Inventory
## 프로젝트 개요
프로젝트명: runtime-smoke-20260710143823
생성일: 2025-07-10
## 소스 인벤토리 구조
### 1. 소스 코드 (Source Code)
| 구분 | 경로 | 설명 |
|------|------|------|
| 메인 소스 | src/main/java | Java 메인 애플리케이션 소스 |
| 테스트 소스 | src/test/java | 단위 테스트 및 통합 테스트 |
| 리소스 | src/main/resources | 설정 파일, 템플릿 |
### 2. 데이터베이스 (Database)
| 구분 | 경로 | 설명 |
|------|------|------|
| 마이그레이션 | db/migration | Flyway/Liquibase 마이그레이션 스크립트 |
| 스키마 | db/schema | 데이터베이스 스키마 정의 |
| 시드 데이터 | db/seed | 초기 데이터 |
### 3. API 명세 (API Specifications)
| 구분 | 경로 | 설명 |
|------|------|------|
| OpenAPI | api/openapi | OpenAPI/Swagger 명세 |
| GraphQL | api/graphql | GraphQL 스키마 |
| REST | api/rest | REST API 문서 |
### 4. 빌드 및 설정
| 구분 | 경로 | 설명 |
|------|------|------|
| Maven | pom.xml | Maven 빌드 설정 |
| Gradle | build.gradle | Gradle 빌드 설정 |
| Docker | docker/ | Docker 설정 |
### 5. 문서 (Documentation)
| 구분 | 경로 | 설명 |
|------|------|------|
| 아키텍처 | docs/architecture | 아키텍처 문서 |
| API | docs/api | API 사용 가이드 |
| 운영 | docs/operations | 운영 가이드 |
## 의존성 인벤토리
### 핵심 의존성
- Spring Boot: 3.2.x
- Java: 17+
- Database: PostgreSQL 15+
### 빌드 도구
- Maven: 3.9.x
- Node.js: 20.x (프론트엔드)
## 자산 목록
### 코드 자산
- [ ] 메인 애플리케이션 소스
- [ ] 테스트 소스
- [ ] 설정 파일
### 데이터 자산
- [ ] 마이그레이션 스크립트
- [ ] 스키마 정의
- [ ] 시드 데이터
### 문서 자산
- [ ] API 명세
- [ ] 아키텍처 문서
- [ ] 운영 가이드

View file

@ -0,0 +1,35 @@
{
"inventoryId": "api-001",
"category": "api-specifications",
"description": "API 명세 인벤토리",
"items": [
{
"id": "api-openapi",
"path": "api/openapi",
"type": "directory",
"description": "OpenAPI/Swagger 명세",
"format": "yaml",
"status": "pending"
},
{
"id": "api-graphql",
"path": "api/graphql",
"type": "directory",
"description": "GraphQL 스키마",
"format": "graphql",
"status": "pending"
},
{
"id": "api-rest",
"path": "api/rest",
"type": "directory",
"description": "REST API 문서",
"format": "markdown",
"status": "pending"
}
],
"metadata": {
"created": "2025-07-10T14:38:23Z",
"project": "runtime-smoke-20260710143823"
}
}

View file

@ -0,0 +1,118 @@
{
"inventoryId": "asset-001",
"category": "assets",
"description": "전체 자산 인벤토리",
"summary": {
"totalItems": 12,
"byCategory": {
"source-code": 3,
"database": 3,
"api-specifications": 3,
"build-configuration": 2,
"documentation": 1
}
},
"items": [
{
"id": "src-main",
"category": "source-code",
"path": "src/main/java",
"type": "directory",
"description": "메인 Java 소스",
"status": "pending"
},
{
"id": "src-test",
"category": "source-code",
"path": "src/test/java",
"type": "directory",
"description": "테스트 Java 소스",
"status": "pending"
},
{
"id": "src-resources",
"category": "source-code",
"path": "src/main/resources",
"type": "directory",
"description": "애플리케이션 리소스",
"status": "pending"
},
{
"id": "db-migration",
"category": "database",
"path": "db/migration",
"type": "directory",
"description": "DB 마이그레이션",
"status": "pending"
},
{
"id": "db-schema",
"category": "database",
"path": "db/schema",
"type": "directory",
"description": "DB 스키마",
"status": "pending"
},
{
"id": "db-seed",
"category": "database",
"path": "db/seed",
"type": "directory",
"description": "시드 데이터",
"status": "pending"
},
{
"id": "api-openapi",
"category": "api-specifications",
"path": "api/openapi",
"type": "directory",
"description": "OpenAPI 명세",
"status": "pending"
},
{
"id": "api-graphql",
"category": "api-specifications",
"path": "api/graphql",
"type": "directory",
"description": "GraphQL 스키마",
"status": "pending"
},
{
"id": "api-rest",
"category": "api-specifications",
"path": "api/rest",
"type": "directory",
"description": "REST API 문서",
"status": "pending"
},
{
"id": "build-maven",
"category": "build-configuration",
"path": "pom.xml",
"type": "file",
"description": "Maven 빌드 설정",
"status": "pending"
},
{
"id": "build-docker",
"category": "build-configuration",
"path": "docker/",
"type": "directory",
"description": "Docker 설정",
"status": "pending"
},
{
"id": "docs-architecture",
"category": "documentation",
"path": "docs/architecture/",
"type": "directory",
"description": "아키텍처 문서",
"status": "pending"
}
],
"metadata": {
"created": "2025-07-10T14:38:23Z",
"project": "runtime-smoke-20260710143823",
"version": "1.0.0"
}
}

View file

@ -0,0 +1,33 @@
{
"inventoryId": "database-001",
"category": "database",
"description": "데이터베이스 인벤토리",
"items": [
{
"id": "db-migration",
"path": "db/migration",
"type": "directory",
"description": "데이터베이스 마이그레이션 스크립트",
"tool": "Flyway",
"status": "pending"
},
{
"id": "db-schema",
"path": "db/schema",
"type": "directory",
"description": "데이터베이스 스키마 정의",
"status": "pending"
},
{
"id": "db-seed",
"path": "db/seed",
"type": "directory",
"description": "초기 데이터 시드",
"status": "pending"
}
],
"metadata": {
"created": "2025-07-10T14:38:23Z",
"project": "runtime-smoke-20260710143823"
}
}

View file

@ -0,0 +1,34 @@
{
"inventoryId": "source-code-001",
"category": "source-code",
"description": "소스 코드 인벤토리",
"items": [
{
"id": "src-main",
"path": "src/main/java",
"type": "directory",
"description": "메인 Java 소스 디렉토리",
"language": "java",
"status": "pending"
},
{
"id": "src-test",
"path": "src/test/java",
"type": "directory",
"description": "테스트 Java 소스 디렉토리",
"language": "java",
"status": "pending"
},
{
"id": "src-resources",
"path": "src/main/resources",
"type": "directory",
"description": "애플리케이션 리소스",
"status": "pending"
}
],
"metadata": {
"created": "2025-07-10T14:38:23Z",
"project": "runtime-smoke-20260710143823"
}
}

View file

@ -0,0 +1,57 @@
# 테스트 참조 문서 (Test Reference)
## 테스트 전략
### 단위 테스트 (Unit Tests)
- **목적**: 개별 컴포넌트의 기능 검증
- **도구**: JUnit 5, Mockito
- **커버리지 목표**: 80% 이상
### 통합 테스트 (Integration Tests)
- **목적**: 컴포넌트 간 상호작용 검증
- **도구**: Spring Boot Test, TestContainers
- **범위**: API 엔드포인트, 데이터베이스 연동
### E2E 테스트 (End-to-End Tests)
- **목적**: 전체 시스템 워크플로우 검증
- **도구**: Playwright, Cypress
- **범위**: 사용자 시나리오
## 테스트 실행
### 단위 테스트 실행
```bash
mvn test -Dtest=*Test
```
### 통합 테스트 실행
```bash
mvn verify -Dspring.profiles.active=test
```
### 전체 테스트 실행
```bash
mvn verify
```
## 테스트 검증 기준
| 테스트 유형 | 최소 커버리지 | 빌드 필수 여부 |
|------------|--------------|---------------|
| 단위 테스트 | 80% | Yes |
| 통합 테스트 | 60% | Yes |
| E2E 테스트 | - | No |
## 테스트 보고서
- **단위 테스트**: `target/surefire-reports/`
- **통합 테스트**: `target/failsafe-reports/`
- **커버리지**: `target/site/jacoco/`
## 검증 체크리스트
- [ ] 모든 단위 테스트 통과
- [ ] 모든 통합 테스트 통과
- [ ] 코드 커버리지 기준 충족
- [ ] 빌드 산출물 생성 완료
- [ ] 테스트 보고서 생성 완료