pile·
백엔드·LINE Engineeringline·

코드 품질 개선 기법 25편: 요컨대... 무슨 말이죠?

문제Kotlin data class 의 일부 필드가 자주 변하는 상태라는 이유로 `var` 로 선언되면, 동일 객체를 공유한 여러 곳에서 의도하지 않은 변경이 발생해 버그가 새어 나간다.

접근모든 필드를 `val` 로 두고 상태 변경 시 `copy()` 로 새 인스턴스를 만들도록 강제. 리뷰 코멘트도 "그래서 결론은 val 로 하라" 는 한 문장으로 핵심을 먼저 전달한다.

결과불변 데이터 모델이 동시성·디버깅 측면의 안전성을 높인다. 리뷰 코멘트 작성 시 결론을 첫 문장에 두는 스타일 가이드도 함께 정착.

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

이 글과 비슷한

  1. 백엔드·네이버페이네이버페이·

    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