9가지 언어로 배우는 타입 이론: 널(null) 처리, 합/곱 타입, 에러 처리까지!
by DD
3년 전
조회수 21
타입 이론을 바탕으로 null, nullable, option 등 다양한 타입 처리 방식을 소개함
곱 타입(Product Type)과 합 타입(Sum Type)을 활용한 데이터 표현 및 상속의 한계를 분석함
Rust, Scala의 패턴 매칭과 익명 합 타입(Result)을 통한 에러 처리 방식을 제시함
Null 처리 방식 비교
다양한 언어에서 null을 처리하는 방식은 각기 다르다. 구체적으로 Java는 `Optional`을 통해, C#과 Kotlin은 `nullable` 타입을 지원한다. 따라서 Rust와 Scala는 `Option` 타입을 사용하여 안전한 null 처리를 제공한다.
합 타입과 상속의 트레이드오프
합 타입은 상속의 한계를 극복하는 강력한 도구이다. 반면 상속은 유지보수성을 저해하고, 타입 캐스팅은 코드 가독성을 떨어뜨린다. 결과적으로 Rust와 Scala의 패턴 매칭은 안정적인 코드 설계를 가능하게 한다.
에러 처리의 진화: 예외 vs Result
전통적인 예외 처리는 함수 시그니처만으로는 에러 발생 여부를 알 수 없다는 단점이 있다. 따라서 Rust와 Scala는 Result 타입을 사용하여 에러 처리를 명시적으로 강제한다. 결과적으로 코드 안정성을 높이고, 유지보수성을 향상시킨다.