Java 봉인 클래스와 완전성 검사 패턴 매칭
Java의 sealed 클래스와 exhaustive pattern matching은 switch가 모든 하위 타입을 처리하는지 컴파일 시점에 검사합니다. 하지만 공개 API에 새 하위 타입을 추가하면 재컴파일한 소비자 코드가 깨질 수 있고, 재컴파일하지 않은 코드는 새 값 처리 시 MatchException을 던질 수 있습니다.
언어와 프레임워크, SDK와 개발 방식·도구의 변화를 다룹니다.
Java의 sealed 클래스와 exhaustive pattern matching은 switch가 모든 하위 타입을 처리하는지 컴파일 시점에 검사합니다. 하지만 공개 API에 새 하위 타입을 추가하면 재컴파일한 소비자 코드가 깨질 수 있고, 재컴파일하지 않은 코드는 새 값 처리 시 MatchException을 던질 수 있습니다.
Rust에 named argument와 optional argument를 추가하자는 pre-RFC 성격의 글입니다. Dart, C#, TypeScript의 문법과 Rust의 구조체·builder 패턴을 비교하고, 가독성·보일러플레이트·API 확장성 문제를 해결할 설계 후보와 반론을 함께 정리합니다.