함수형 프로그래밍

함수형 프로그래밍 (Functional Programming)

Scala는 객체 지향 프로그래밍(OOP) 스타일로도, 함수형 프로그래밍(FP) 스타일로도, 그리고 둘을 결합한 하이브리드 스타일로도 코드를 작성할 수 있어요. Scala 창시자 마틴 오더스키(Martin Odersky)가 말했듯, Scala의 본질은 타입이 있는 환경에서 함수형 프로그래밍과 객체 지향 프로그래밍의 융합이에요.

  • 로직은 함수로 (Functions for the logic)
  • 모듈성은 객체로 (Objects for the modularity)

이 장은 OOP에는 익숙하지만 FP에는 덜 익숙한 독자를 전제로, 몇 가지 주요 함수형 프로그래밍 개념을 부드럽게 소개할게요.

  • 함수형 프로그래밍이란 무엇인가?
  • 불변 값 (Immutable values)
  • 순수 함수 (Pure functions)
  • 함수는 값이다 (Functions are values)
  • 함수형 오류 처리 (Functional error handling)

출처: Scala 3 Book

본문

함수형 프로그래밍이 정확히 무엇인지는 사람마다 조금씩 다르게 정의하지만, 이 책에서는 몇 가지 핵심 개념을 축으로 접근해요. 그 시작점은 "함수가 값이다"라는 생각과, 부수 효과 없이 같은 입력에 같은 출력을 내는 순수 함수, 그리고 값의 불변성을 지키는 방식이에요.

이 장은 뒤에서 다룰 함수형 프로그래밍 세부 내용들의 출발점이라서, 각 개념을 먼저 "이런 문제를 해결한다"는 관점에서 잡아두는 게 좋아요.

더 알아보기

  • 불변 값 (Immutable Values)
  • 순수 함수 (Pure Functions)
  • 함수는 값이다 (Functions Are Values)
  • 함수형 오류 처리 (Functional Error Handling)
  • Functional Programming (Reference)