Repository navigation
Conversation
Backend CI 리포트 —
|
| 심각도 | ID | 패키지 | 버전 |
|---|---|---|---|
| HIGH | CVE-2026-89407 | com.fasterxml.jackson.core:jackson-core |
2.21.4 → 2.18.11, 2.21.7, 2.22.3 |
| HIGH | CVE-2026-89425 | com.fasterxml.jackson.core:jackson-core |
2.21.4 → 2.21.7, 2.22.3, 2.18.11 |
| HIGH | CVE-2026-68497 | com.fasterxml.jackson.core:jackson-databind |
2.21.4 → 2.18.10, 2.21.6, 2.22.2 |
| HIGH | CVE-2026-91776 | com.fasterxml.jackson.core:jackson-databind |
2.21.4 → 2.18.11, 2.21.7, 2.22.3 |
| HIGH | CVE-2026-91777 | com.fasterxml.jackson.core:jackson-databind |
2.21.4 → 2.21.7, 2.18.11, 2.22.3 |
| HIGH | CVE-2026-89407 | tools.jackson.core:jackson-core |
3.1.4 → 3.1.7, 3.2.2 |
| HIGH | CVE-2026-89425 | tools.jackson.core:jackson-core |
3.1.4 → 3.1.7, 3.2.3 |
| HIGH | CVE-2026-68497 | tools.jackson.core:jackson-databind |
3.1.4 → 3.2.2, 3.1.6 |
| HIGH | CVE-2026-91776 | tools.jackson.core:jackson-databind |
3.1.4 → 3.1.7, 3.2.3 |
| HIGH | CVE-2026-91777 | tools.jackson.core:jackson-databind |
3.1.4 → 3.1.7, 3.2.3 |
코드 보안 (Trivy fs + Semgrep) ✅
발견 1건
| 종류 | 심각도 | 내용 | 위치 |
|---|---|---|---|
| 🐞 SAST | ERROR | The Python documentation recommends using defusedxml instead of `xml |
.github/scripts/diff_coverage.py:20 |
아키텍처 경계 (ArchUnit) ✅
헥사고날·도메인 분리 경계 규칙 통과 (도메인/레이어/common 격리)
4 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Jira
SCRUM-498
변경 요약
단일 Gradle 모듈을 바운디드 컨텍스트 기준 멀티모듈로 전환했다. 모듈 하나 = 컨텍스트 하나(
user-api·user·place·course·report·area·direction·media) + 보조 모듈(common·mobile·app). 패키지 구조·코드 로직은 바뀌지 않았고, ArchUnit이 테스트 시점에 잡던 경계가 컴파일 시점(Gradle 의존 선언)으로 당겨진다.단계별 커밋 5개로 나눴다(각 단계마다 build·archTest·전체 테스트·Docker 빌드 통과 확인).
refactor(build)—src/→app/,buildSrc컨벤션 플러그인(backend.kotlin-conventions), 루트 JaCoCo 집계, Dockerfile·CI 경로refactor(common)—common모듈 + bootstrap 에 있던 계약(@RequiresAppFeature·@CurrentUserId·@AccessTokenRequired·OpenSearchProperties)을common으로,*Properties·JwtTokenProvider를 소유 컨텍스트로 이동 → 도메인→bootstrap 의존 0refactor(domain)—area·direction·media모듈 +backend.domain-conventions플러그인refactor(domain)—place·course·user모듈. user⇄course 순환은user-api(user 의 도메인 모델 + 인바운드 포트·DTO = Published Language)를 분리해 해소refactor(mobile)— BFF 모듈 분리. app 에는 부트스트랩 22 파일·리소스·통합 테스트만 남음이후 추가 커밋:
chore(build)— 버전 카탈로그 도입. Spring Boot BOM 밖이라 각build.gradle.kts에 문자열로 흩어져 있던 버전(플러그인 4 + 라이브러리 15)을gradle/libs.versions.toml로 모았다. 모듈은libs.*접근자, buildSrc 도 같은 toml 을 읽어 플러그인 버전까지 한곳에서 관리한다(컨벤션 플러그인은 접근자가 없어lib("alias")이름 조회). BOM 관리 라이브러리·보안 패치extra[]는 그대로. 전 모듈 의존성 해석 결과 전후 동일 확인.chore(merge)— develop 머지(신고·따라가기·애플 로그인 등). develop 의 단일 모듈 위치 코드를 멀티모듈로 옮기며 정리:report) 컨텍스트 →report모듈 신설(backend.domain-conventions, user-api·course 의존). settings·루트 JaCoCo 집계·app 의존·Dockerfile COPY 등록.ReportControllerTest(통합)는 app,ReportServiceTest(단위)는 모듈에.OpenSearchConfig.INDEX_CLIENT)는 place·course 가 app 을 참조할 수 없어common.search.OpenSearchIndexClient.NAME으로 이동.AppleOauthProperties는 카카오·구글과 같이user/adapter/outbound/social로, 따라가기 등 새 코드의bootstrap.*import 는common.*·user 모듈 경로로 교정.TracingCourseTable·AddedPlaceTable·CourseInteractionRepository(따라가기 course 이관, SCRUM-583)는 삭제 수용.chore(architecture)— ArchUnitdomains목록에report추가(도메인 간 inbound 포트만 참조 규칙 적용).coreDomains에는 넣지 않음.리뷰 시 알아야 할 결정
internal해제(33 파일):internal이 Gradle 모듈 단위가 되면서 app 에 남은 통합 테스트가 Exposed Table 로 픽스처를 넣을 수 없어 해제했다. 접근 제한은 모듈 의존 선언 + ArchUnit 규칙 2·4·5·7·8 이 계속 담당한다(archTest 통과).@SpringBootTest통합 테스트는app유지. 테스트 수 1058 → 1058(동일, 전부 통과). develop 머지 후 1109 개 전부 통과 + archTest 11 개 통과.testCodeCoverageReport(jacoco-report-aggregation) xml 로 바뀌었고,diff_coverage.py는<module>/src/main/...경로를 접미사 매칭한다. ktlint 글롭·opensearch-it 경로 필터·Dockerfile COPY 경로 갱신..ai위키(architecture.md)의 패키지/internal/테스트 규칙 서술은 별도 갱신 예정..github/wiki-sync/mapping.tsv는 아직 단일 모듈 경로(src/main/...)라 머지 후 위키 갱신 감지가 매칭되지 않는다 — 위키 sync.md 표와 함께 후속 갱신 필요.변경 유형
체크리스트
./gradlew build통과 (build archTest testCodeCoverageReport+ Docker 빌드)