Skip to content

함수형 프로그래밍 여행에 앞서

이번 글에서는 배운 내용을 간단히 정리합니다.

배운 것 정리하기

파트1: 액션과 계산, 데이터

  • 코드에서 액션과 계산, 데이터를 구분해 가장 문제가 되는 부분을 찾습니다.
  • 액션에서 계산을 빼내 재사용하기 좋고 테스트하기 쉬운 코드를 만듭니다.
  • 암묵적인 입력과 출력을 명시적인 것으로 바꿔 액션의 설계를 개선합니다.
  • 불변성을 구현해 데이터 읽기를 계산으로 만듭니다.
  • 계층형 설계로 코드를 구성하고 개선합니다.

파트2: 일급 추상

  • 언어의 문법을 일급으로 만들어 코드를 추상화할 수 있습니다.
  • 함수형 반복과 함수형 도구를 사용해 고차원으로 추론합니다.
  • 함수형 도구를 연결해 데이터 변환 파이프라인을 만듭니다.
  • 타임라인 다이어그램을 통해 동시성 분산 시스템을 이해합니다.
  • 버그를 없애기 위해 타임라인을 활용합니다.
  • 고차 함수로 안전하게 상태를 변경합니다.
  • 반응형 아키텍처를 사용해 원인과 효과의 결합을 줄입니다.
  • 세상과 상호작용하기 위해 어니언 아키텍처 설계를 서비스에 적용합니다.

꼭 기억해야 할 것

어떤 경우에는 액션에 계산이 숨어 있습니다

  • 액션과 계산, 데이터를 구분하는 것은 함수형 프로그래밍 기술의 기본입니다.
  • 변경되는 빈도에 따라 각각 다른 계층으로 구성할 수 있고 넓은 관점에서 보면 결국 어니언 아키텍처로 구성하게 됩니다.

고차 함수를 사용하면 추상화에 대한 개념이 넓어집니다

  • 고차 함수를 사용하면 똑같은 저수준의 코드를 반복적으로 만들지 않아도 됩니다.

코드에서 시간의 의미는 마음대로 바꿀 수 있습니다

  • 어떤 코드가 여러 타임라인에서 실행된다면 기대하지 않은 실행 순서 때문에 버그가 생길 수 있습니다.
  • 코드가 실행되는 순서를 이해하는 것이 중요한데 타임라인 다이어그램으로 시각화할 수 있습니다.

투 트랙으로 마스터 되기

트랙1: 샌드박스

  • 연습 문제로 연습
  • 사이드 프로젝트에 적용
  • 제품 코드에서 버려진 브랜치에 연습

트랙2: 제품

  • 변경 가능한 전역변수를 하나씩 줄입니다.
  • 타임라인을 하나씩 줄입니다.
  • 액션에서 계산을 빼내세요.
  • 암묵적 입력과 출력을 명시적으로 바꿔보세요.
  • 반복문을 바꿔보세요.