목록 보기
9가지 프로그래밍 언어로 배우는 개념: 1편 - 타입 이론
백엔드

9가지 프로그래밍 언어로 배우는 개념: 1편 - 타입 이론

데브시스터즈
데브시스터즈
2022년 7월 12일

두줄요약

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의 전파 부담과 예외 발생 위치 추적의 어려움

적용해볼 점

  • 함수 반환 타입에 성공 값과 오류 타입을 함께 모델링
  • 닫힌 타입 계층과 완전 패턴 매칭으로 새 경우 추가 시 컴파일 단계 검증

다음 읽기

같은 회사의 연관 글

9가지 프로그래밍 언어로 배우는 개념: 2편 - 다형성

여러 프로그래밍 언어의 다형성 기능을 비교하며 오버로딩, 인터페이스, 제네릭, 변성을 정리했습니다. 상속 기반 인터페이스의 한계와 타입클래스, Rust trait 같은 대안을 함께 살펴봤습니다.

데브시스터즈
데브시스터즈
아키텍처

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...