함수형 프로그래밍
함수형 프로그래밍 (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)