
백엔드
9가지 프로그래밍 언어로 배우는 개념: 1편 - 타입 이론
두줄요약
9개 언어의 nullable, 합·곱 타입, 패턴 매칭을 타입 이론 관점에서 비교했습니다.\n상속과 예외 처리의 한계를 살피고 컴포지션·Result 기반 설계를 제안합니다.
구조와 흐름
- 9개 언어의 타입 시스템 차이를 통해 null·nullable·Option 표현 방식 비교
- 곱 타입으로 복수 정보 결합, 합 타입으로 여러 경우의 수 확장
- Rust·Scala의 enum·sealed 타입과 패턴 매칭을 Tagged Union 관점에서 설명
선택 이유
- nullable 타입과 완전 패턴 매칭을 통한 null 참조·누락 분기 방지
- 상속·타입 캐스팅 대신 합 타입과 컴포지션 중심 데이터 모델링
- Rust Result, Scala Either, Go 다중 반환을 활용한 오류 가능성의 타입 명시
주의할 점
- Java Optional과 C#·Kotlin nullable 문법, Rust·Scala Option의 구현 방식 차이
- 상속 기반 분기는 하위 타입 추가 시 예외 누락과 가독성 저하 가능성
- Checked Exception의 전파 부담과 예외 발생 위치 추적의 어려움
적용해볼 점
- 함수 반환 타입에 성공 값과 오류 타입을 함께 모델링
- 닫힌 타입 계층과 완전 패턴 매칭으로 새 경우 추가 시 컴파일 단계 검증
