pile·
백엔드·스포카spoqa·

스포카의 백엔드팀에서 코딩 컨벤션을 관리하는 방법

문제README 문서와 실제 코드가 어긋나면서 팀원 간 혼란이 생기고, 자동화 도구만으로는 계층 의존성과 클래스 네이밍 같은 구조적 규칙을 잡을 수 없었다.

접근ktlint로 스타일을, SonarQube로 중복·복잡도·보안을 사후 검증한 뒤 Konsist로 계층 의존성과 Entity 속성 규칙을 코드 테스트로 강제한다. 코드 리뷰는 도구가 못 잡는 영역에 집중한다.

결과Konsist 도입 직후 다수의 의존성 위반이 발견됐고, 사소한 스타일 이슈는 자동 처리돼 코드 리뷰가 본질에 집중하게 됐다. 단일 도구가 아닌 조합 전략이 효과적이라는 점을 보여준다.

스포카
스포카 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. 백엔드·stackoverflow-blogstackoverflow-blog·

    Compile-Time Map and Compile-Time Mutable Variable with C++26 Reflection

    문제C++ 컴파일 타임에는 상태를 수정할 수 없어 mutable 변수나 키-값 맵을 표현하기 어렵다.

    접근C++26 리플렉션의 substitute, is_complete_type, define_aggregate 세 함수로 incomplete template specialization 을 저장소로 사용한다. 조건부로 type 을 complete 시켜 타입 시스템에 상태를 인코딩한다. compile-time ticket counter, immutable map, mutable variable 세 구현을 보인다.

    결과meta::info 를 키와 값으로 모두 쓰는 다형적 저장 구조를 얻고, 전처리기로는 불가능했던 stateful metaprogramming 이 가능해진다. 단일 pair 는 불변이며 mutable 은 여러 기법 조합으로 달성한다.

    #cpp#reflection#metaprogramming+1
  2. 백엔드·네이버페이네이버페이·

    Composite PK에서 시작된 Spring Boot 4 / Spring Batch 6 업그레이드 기록

    문제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 접근 정책 충돌을 사전 식별해 안정적 배포 달성.

    #kotlin#spring#spring-boot+3