코드 품질 개선 - 세션 47: 불이행(Breach of non-performance)
·2025.09.19 11:00
기본 매개변수에 특수한 의미를 가진 값을 설정하면 의도치 않은 객체 생성으로 버그가 발생할 수 있다.
Kotlin의 **기본 매개변수(default parameter)**를 이용해 Null Object를 구현할 때 발생할 수 있는 위험성을 다룬다.
id = 0과 같이 특수한 의미를 가진 값을 기본 매개변수로 설정하면, 개발자가 특정 인자를 실수로 누락했을 때 의도치 않게 '유효하지 않은 객체'가 생성될 위험이 있다. 이는 기본값이 일반적인 값이 아닌 특수한 상태를 나타내기 때문에 발생하는 문제다.
안전한 설계를 위한 대안은 다음과 같다:
- companion object를 통해
INVALID와 같은 명시적인 인스턴스를 정의한다. - sealed interface를 활용한 sum type으로
Valid와Invalid를 명확히 구분한다. - nullable type을 사용하여
null로 유효하지 않은 상태를 표현한다.
결론적으로, 기본 매개변수에는 특수한 목적의 값이 아닌, 누구나 예측 가능한 일반적인 값을 사용해야 한다.
이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.
요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.