검증 증거 문서
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
# .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
- 검증 상태: ✅ 통과