코드 품질 개선 - 세션 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로 유효하지 않은 상태를 표현한다.
결론적으로, 기본 매개변수에는 특수한 목적의 값이 아닌, 누구나 예측 가능한 일반적인 값을 사용해야 한다.
이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.