본문 바로가기
개념/함수형사고

[함수형 사고] 7장 실용적 사고

by hs_seo 2019. 3. 13.

함수형 프로그래밍에 필요한 사고방식을 위해 이제까지 많은 추상적인 예제들을 사용했습니다. 이제 이를 실제로 적용하기 위한 방법을 알아보겠습니다.


자바8

자바8부터 등장한 스트림은 함수형 프로그래밍을 위한 기능을 제공합니다. 스트림을 이용하여 작업을 처리하면 collect()나 forEach() 같은 출력을 발생시키는 함수를 사용하기 전까지 map, reduce, filter 같은 함수들을 조합할 수 있습니다. 그리고 함수형 인터페이스와 옵셔널 클래스를 이용하여 함수형 프로그래밍을 구성할 수 있습니다.


함수형 인프라스트럭쳐

함수형 아키텍처는 불변성이 그 중심에 있습니다. 불변 클래스는 데이터의 변화로 인한 개발자의 걱정을 없애줍니다. 불변 클래스는 생성 시에만 변화가 있기 때문에 테스트가 간다하고, 스레드에 안전하기 때문에 멀티 스레딩 환경에서 동기화에 문제가 없습니다.


자바 클래스를 불변형으로 만드는 방법은 다음과 같습니다.

  • 모든 필드를 final로 선언한다.
  • 클래스를 final 로 선언해서 오버라이드를 방지한다.
  • 인수가 없는 생성자를 제공하지 않는다.
  • 적어도 하나의 생성자를 제공한다.
  • 생성자 외에는 변이 메서드(setter)를 제공하지 않는다.


반응형