함수형 프로그래밍을 사용하려면 데이터, 즉 전체 시스템의 입력과 출력을 살펴보고 처리 과정 중 데이터가 어떻게 변하는지에 더 주목하는 것이 중요하다. 각각의 변환을 식별하면 필요한 함수와 데이터 구조에 대한 단초를 얻을 수 있다.

     

    메서드 없는 객체 생성하기

    코틀린과 같은 하이브리드 언어를 사용하여 함수형 프로그래밍 스타일로 코드를 작성할 때도 클래스 인스턴스의 의미로 객체를 작성하고 사용할 것이다. 코드 가독성을 높이기 위해 메서드를 작성하는 것도 자연스럽지만, 메서드가 없어도 문제는 없다.

    반면 객체 지향 프로그래밍에서는 상태만 있고 행동이 없는 많은 클래스, 즉 모든 필드가 공개돼 있고 메서드가 없는 클래스를 흔히 나쁜 냄새로 간주하며, 이를 빈약한 객체(Anemic Object) 안티 패턴이라고 부른다. 함수형 프로그래밍에서 이는 매우 일반적이다. 객체가 불변이며 그 필드가 공개되어 있기 때문에, 행동이 필요하지 않다. 모든 함수는 필요한 것을 직접 읽을 수 있다.

    우리가 피해야 할 것은 가변 상태를 가진 클래스, 즉 var 속성을 사용하거나 상속에 의해 변경될 수 있는 클래스를 사용하는 것이다. 이 책에서는 어떤 open 클래스(부록 B 클래스 참고)도 사용하지 않을 것이다.

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