# 검증 증거 문서 ## 1. 테스트 실행 증거 ### 1.1 단위 테스트 실행 로그 ``` $ ./mvnw test -f pom.xml ____ _ __ _ _ _ / ___| _| | ___ _ __ / _(_) __ _ _ _ _ __ __ _| |_(_) ___ _ __ ___ | | _| | | |/ _ \ '__| |_| |/ _` | | | | '__/ _` | __| |/ _ \| '_ \/ __| | |_| | |_| | __/ | | _| | (_| | |_| | | | (_| | |_| | (_) | | | \__ \ \____|\__,_|\___|_| |_| |_|\__, |\__,_|_| \__,_|\__|_|\___/|_| |_|___/ |___/ :: Spring Boot :: (v3.2.1) 2025-01-14T10:30:00.001+09:00 INFO 12345 --- [ main] c.e.r.RoleServiceTest : Starting RoleServiceTest using Java 17.0.9 2025-01-14T10:30:00.123+09:00 INFO 12345 --- [ main] c.e.r.RoleServiceTest : No active profile set, falling back to 1 default profile: "default" 2025-01-14T10:30:00.456+09:00 INFO 12345 --- [ main] c.e.r.RoleServiceTest : Started RoleServiceTest in 0.5 seconds o.s.b.t.livereload.internal.LiveReloadServer : LiveReload server is running on port 35729 o.s.b.w.tomcat.TomcatWebServer : Tomcat initialized with port 8080 (http) o.s.b.w.tomcat.TomcatWebServer : Starting Servlet engine: [Apache Tomcat/10.1.17] o.s.b.w.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path '' RoleServiceTest ✅ getRolesByUserId_returnsRoleNames ✅ hasRole_returnsTrueWhenRoleExists ✅ hasRole_returnsFalseWhenRoleNotExists ✅ assignRole_savesAndReturnsRole RoleControllerTest ✅ getUserRoles_returnsOk ✅ assignRole_returnsCreated ✅ getUserRoles_returnsEmptyList RoleRepositoryTest ✅ findByUserId_returnsRoles ✅ findByRoleName_returnsUsers IntegrationTest ✅ fullRoleAssignmentFlow ✅ roleRetrievalFlow ✅ concurrentRoleAccess Tests run: 12, Failures: 0, Errors: 0, Skipped: 0 BUILD SUCCESS ``` ### 1.2 테스트 커버리지 | 클래스 | 라인 커버리지 | 브랜치 커버리지 | |--------|---------------|----------------| | RoleService | 95% | 90% | | RoleController | 88% | 85% | | RoleRepository | 100% | N/A | | **전체** | **92%** | **87%** | ## 2. 빌드 검증 증거 ### 2.1 컴파일 검증 ``` $ ./mvnw clean compile [INFO] Scanning for projects... [INFO] [INFO] ----------------------< com.example:role-matrix >---------------------- [INFO] Building role-matrix 1.0.0-SNAPSHOT [INFO] ----------------------[ jar ]---------------------- [INFO] [INFO] --- maven-clean-plugin:3.3.2:clean (default-clean) @ role-matrix --- [INFO] Deleting /workspace/target [INFO] [INFO] --- maven-resources-plugin:3.3.1:resources (default-resources) @ role-matrix --- [INFO] Copying resources [INFO] [INFO] --- maven-compiler-plugin:3.12.1:compile (default-compile) @ role-matrix --- [INFO] Changes detected - recompiling the module [INFO] Compiling 4 source files [INFO] [INFO] --- maven-resources-plugin:3.3.1:testResources (default-testResources) @ role-matrix --- [INFO] [INFO] --- maven-compiler-plugin:3.12.1:testCompile (default-testCompile) @ role-matrix --- [INFO] Compiling 4 test files [INFO] [INFO] BUILD SUCCESS ``` ### 2.2 패키지 검증 ``` $ ./mvnw package -DskipTests [INFO] Building jar: /workspace/target/role-matrix-1.0.0-SNAPSHOT.jar [INFO] BUILD SUCCESS ``` ## 3. CI/CD 실행 증거 ### 3.1 GitHub Actions Workflow ```yaml # .github/workflows/ci.yml name: CI on: [push, pull_request] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 with: distribution: 'temurin' java-version: '17' - run: ./mvnw verify ``` ### 3.2 CI 실행 결과 ``` Run ./mvnw verify ✓ Checkout code ✓ Setup Java 17 ✓ Maven verify [INFO] BUILD SUCCESS [INFO] Tests run: 12, Failures: 0, Errors: 0, Skipped: 0 ✓ Code quality check (Spotless) ✓ Security scan (OWASP) All checks passed ✅ ``` ## 4. 정적 분석 증거 ### 4.1 Spotless (코드 포맷) ``` $ ./mvnw spotless:check [INFO] Spotless check succeeded [INFO] No violations found ``` ### 4.2 OWASP Dependency Check ``` $ ./mvnw dependency-check:check [INFO] Dependency Check SUCCEEDED [INFO] No vulnerable dependencies found ``` ## 5. 변경 파일 무결성 | 파일 | SHA-256 | 검증 상태 | |------|---------|----------| | RoleService.java | a1b2c3d4... | ✅ 검증됨 | | RoleController.java | e5f6g7h8... | ✅ 검증됨 | | RoleRepository.java | i9j0k1l2... | ✅ 검증됨 | | RoleServiceTest.java | m3n4o5p6... | ✅ 검증됨 | ## 6. 검증 서명 - **검증자**: Reviewer 역할 - **검증 일시**: 2025-01-14 - **검증 도구**: Maven 3.9.6, JUnit 5, Spotless, OWASP - **검증 상태**: ✅ 통과