개발 이야기/[스터디] 함수형 프로그래밍

[쏙쏙들어오는함수형코딩] Chapter 1. 쏙쏙 들어오는 함수형 코딩에 오신 것을 환영합니다.

경이로운아일라 2025. 1. 10. 20:22
이 글은 <쏙쏙 들어오는 함수형 코딩, 에릭 노먼드 지음>을 참고하여 작성하였습니다.

 

쏙쏙 들어오는 함수형 코딩: 에릭 노먼드 지음

Chapter 1. 쏙쏙 들어오는 함수형 코딩에 오신 것을 환영합니다.

함수형 프로그래밍의 정의

함수형 프로그래밍이란 순수 함수(Pure Function)를 기반으로 상태와 부수 효과를 최소화하며, 입력값이 동일하면 항상 동일한 결과를 반환하는 함수를 작성하는 데 초점을 둔 프로그래밍 스타일

 

* 순수 함수: 입력값이 동일하면 항상 동일한 결과를 반환하는, 부수 효과가 없는 함수.

* 부수 효과: 함수가 리턴 값 이외에 하는 모든 일을 의미합니다. 예. 메시지 보내기, 웹 요청 보내기 등.

 

부수 효과를 안 만들고 어떻게 서비스를 만들어. 함수형 프로그래밍은 실전에 사용하기 어렵네. 학문용이구만! 싶을 수도 있겠지만, 사실은 그렇지 않다. 이제부터 실용적인 함수형 코딩에 대해서 알아보자.

 

함수형 프로그래머는 어떻게 일하는가.

함수형 프로그래머는 코드를 세 분류, 액션, 계산, 데이터로 나누어 다룹니다.

 

  • 액션: 실행 시점이나 횟수에 의존하는 부분
    (나에게는 이 정의도 약간 헷갈리는데, 계산이 아닌 다른 모든 행위는 액션으로 이해했다)
    예. 클라이언트가 서버로 메시지를 보냄
  • 계산: 입력값으로 출력값을 만드는 부분.
    예. 서버가 누구에게 알림을 보낼지 결정
  • 데이터: 이벤트에 대해 기록한 사실.

 

액션, 계산, 데이터로 구분하는 방법이 왜 좋나요?

액션은 시간이나 환경에 따라 결과가 달라질 수 있어 다루기 어렵지만, 계산은 동일한 입력에 항상 같은 출력을 제공하므로 예측 가능하고 다루기 쉽습니다. 코드를 이렇게 다루기 어려운 부분(액션)과 쉬운 부분(계산)으로 구분하면 유지보수가 쉬워지고, 분산 시스템에서는 이러한 분리가 특히 유용합니다.