더북(TheBook)

할 일 목록을 관리하기 위한 소프트웨어를 개발하는 중이므로 ToDoList부터 시작하자.

data class ToDoList(val listName: ListName, val items: List<ToDoItem>)
data class ListName(val name: String)

코틀린의 데이터 클래스 구문을 사용하면 불변 타입을 간결하게 정의할 수 있고, 불변 타입은 함수형 프로그래밍에 특히 유용하다. 자세한 내용은 부록 B 데이터 클래스를 참고하라.

ToDoList는 이름으로, ToDoItem은 항목의 목록으로 구성된다. 목록 이름에 일반적인 타입이나 일반적인 문자열을 사용하는 대신 특별한 타입을 만드는 것이 의외일 수 있지만, 함수형 프로그래밍을 할 때 이런 특별한 타입을 사용하면 작업이 더 쉬워진다(부록 A 타입을 정확하게 정의하기 참고).

이 경우에는 목록 이름이 너무 길거나 특수 문자를 사용하는 것을 원하지 않기 때문에 이런 문자열을 제한한다. 구체적인 특별한 타입을 사용하면 이런 검사가 더 쉬워진다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.