0.3 객체 지향 프로그래밍 지식을 일부러 잊어버리기
새로운 것을 배울 때 가장 어려운 부분 중 하나는 우리의 오래된 습관을 버리는 것이다. 객체 지향 프로그래밍 자체에는 문제가 없지만, 함수형 프로그래밍은 다른 관점을 요구하는 다른 패러다임이다.
목표는 객체 지향 프로그래밍을 잊는 것이 아니다. 하지만 새로운 패러다임을 배울 때는 기존의 패러다임을 잠시 제쳐둬야 한다. 그렇지 않으면 같은 방식으로 코드를 작성하는 함정에 빠지기 쉽다. 또 어떤 것들이 이상하거나 잘못된 것처럼 느껴질 수도 있다.
다음은 이러한 차이점의 몇 가지 예이다.
대상과 동작에 집중하기보다 데이터 변환에 집중하기
객체 지향 프로그램을 디자인할 때는 시스템을 설명하는 명사와 동사를 보는 것이 자연스럽다. 예를 들어 ‘X인 경우 A가 Y를 수행한다’는 식의 연속된 동작을 생각할 수 있다. 우리는 A가 무엇을 할 수 있는지와 어떻게 A를 호출할 수 있는지에 집중한다. 이런 경우, 클래스 A의 메서드 Y부터 시작해서 호출 경로를 따라 코드를 작성해나간다.