백엔드·
stackoverflow-blog·
Compile-Time Map and Compile-Time Mutable Variable with C++26 Reflection
#cpp#reflection#metaprogramming+1
문제README 문서와 실제 코드가 어긋나면서 팀원 간 혼란이 생기고, 자동화 도구만으로는 계층 의존성과 클래스 네이밍 같은 구조적 규칙을 잡을 수 없었다.
접근ktlint로 스타일을, SonarQube로 중복·복잡도·보안을 사후 검증한 뒤 Konsist로 계층 의존성과 Entity 속성 규칙을 코드 테스트로 강제한다. 코드 리뷰는 도구가 못 잡는 영역에 집중한다.
결과Konsist 도입 직후 다수의 의존성 위반이 발견됐고, 사소한 스타일 이슈는 자동 처리돼 코드 리뷰가 본질에 집중하게 됐다. 단일 도구가 아닌 조합 전략이 효과적이라는 점을 보여준다.
문제Spring Data JDBC 의 Composite ID 적용을 위해 Spring Boot 3.5 → 4.0.1 업그레이드 시 Spring Batch, Kotlin, Jackson 등 전체 스택 메이저 전환 필요.
접근Spring Boot 4 / Spring Batch 6 / Spring Framework 7 / Kotlin 2.3 / Jackson 3 / Kotest 6 / Gradle 9 / ojdbc11 순차 업그레이드. Composite ID 는 Persistable 인터페이스로 구현, JdbcDefaultBatchConfiguration 상속으로 메타데이터 저장.
결과기술 부채 해결 + 장기 유지보수성 개선. 운영 DB 접근 정책 충돌을 사전 식별해 안정적 배포 달성.