
523
스칼라는 정적으로 타입이 정해지는 언어다. 스칼라 타입 시스템은 논란의 여지는 있지만 모든
프로그래밍 언어 중 가장 복잡하다. 특히 스칼라가 함수형 프로그래밍과 객체지향 프로그래밍의
복잡한 개념을 한데 엮어주기 때문에 더 그렇다. 타입 시스템은 논리적으로 종합적이며, 완전하
고, 일관성 있도록 해야 한다. 스칼라 타입 시스템은 자바 타입 시스템의 여러 한계를 개선했다.
이상적인 경우 타입 시스템은 여러분이 프로그램의 잘못된 상태를 ‘방지’할 수 있을 정도로 표
현력이 좋을 수도 있다. 그런 제약을 컴파일 시점에 강제할 수 있기 때문에 실행 시점에 실패가
일어나지 않는다. 그런데 현실적으로는 그런 목표와 거리가 아주 멀다. 하지만 스칼라의 타입
시스템은 오랜 숙원인 그런 목표를 향해 경계를 좀 더 전진시켰다.
하지만 타입 시스템을 처음 본 사람은 겁을 먹을 수 있다. 타입은 언어에서 가장 논쟁이 많은 특
징 중 하나다. 스칼라가 ‘복잡하다’고 말하는 사람들은 보통 타입 시스템을 염두에 두고 말하곤
한다.
다행히 타입 추론이 자세한 부분을 많이 감춰준다. 스칼라를 효율적으로 사용하기 위해 타입 시
스템을 통달할 필요는 없다. 물론 언젠가는 타입과 관련 있는 대부분의 구성 요소와 친숙해질 필
요가 있긴 하다.
이미 타입 시스템에 대해 많은 것을 배웠다. 이번 ...