테스트도 초록불, 빌드도 초록불인데 가입 확인 메일이 엉뚱한 주소로 날아간 적 있으신가요? 범인은 val (email, username) = user 딱 한 줄이었습니다. 코틀린 2.4(Kotlin 2.4) 이름 기반 구조분해로 이 사고를 원천 차단한 일지를 풀어볼게요. 작년에 사이드 프로젝트로 돌리던 회원 서비스에서 실제로 겪은 일입니다. 코드 리뷰도 통과했고 단위 테스트도 다 통과했는데, 어느 순간부터 가입 메일이 사용자 이름 문자열을 주소로 잘못 물고 나가더라고요. 처음엔 메일 라이브러리를 의심했는데, 진짜 범인은 구조분해 한 줄이었습니다. 위치 기반 구조분해가 값을 조용히 바꿔치기한 순간코틀린의 data class는 주 생성자에 선언한 프로퍼티 순서대로 component1(), component2..