백엔드·
stackoverflow-blog·
Compile-Time Map and Compile-Time Mutable Variable with C++26 Reflection
#cpp#reflection#metaprogramming+1
문제다양한 개발자가 함께 일하는 백엔드 팀에서 4년간 Go를 쓰며 쌓인 시행착오를 일관된 규칙으로 정리할 필요가 있다.
접근컨벤션을 코딩 스타일, 프랙티스, 원칙 세 층위로 정의한다. panic 안전성, error stacking, goroutine 안전성, HTTP 커넥션 재사용, table-driven test, context 사용법 같은 실전 프랙티스를 코드 예시와 함께 기술한다.
결과golangci-lint와 결합된 문서화된 컨벤션으로 코드 리뷰의 기준점을 만든다. 팀 단위 개념적 일관성을 유지하면서 신규 입사자 온보딩 비용을 낮춘다.
문제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 접근 정책 충돌을 사전 식별해 안정적 배포 달성.