반응형
- 필요성
- 동시성과 객체 지향을 동시에 해결하고자 하는 움직임에서 요구된 방식
- 대용량 데이터를 다룰 일이 점점 많아 지고 있는데 이러한 과정에서 매번 데이터를 객체를 변환하여 관리하는데 있어 부담이 커질 수 밖에 없음
- 모듈화 하기에 더 적합하다 할 수 있음 (이건 논란의 여지가 있다)
- Class단위로 분리하여 구조를 짜는게 더 어렵기 때문에 함수형이 더 작업하는데 있어 빨라질 수 있다.
- 함수형은 Input과 Output이 항상 있기 때문에 TDD를 하는데 있어 더 용이하다.
- 선언형 프로그래밍 / 명령형 프로그래밍
- 함수형 프로그래밍의 가장 큰 특징이자 핵심은 Side effect가 없는 함수를 만드는 것임
<잘못된 예시>
a = 0
def example():
global a
a += 1
- a가 항상 바뀔 수 있고 예측이 되지 않음 (실행 환경이 바뀌면 a가 바뀔 수 있다)
<수정>
def example(a):
return a + 1
- a가 예측이 가능하고 어느 곳에서 실행하든 a가 들어오는 것에 대해 +1이 되어 return 된다는 예측이 된다.
- 추세가 함수형과 객체지향을 같이 사용하고 있다.
- 프로그래밍의 기본 틀은 OOP 기반으로 하되 메소드 내부 구현은 FP를 지향하고 객체 상태의 관리는 immutable object를 지향해야 한다.
반응형
'개발 일반' 카테고리의 다른 글
잊을 때쯤 한번 다시 읽어봐야할 Clean code에 관하여 (의미 있는 이름) (0) | 2021.03.15 |
---|---|
잊을 때쯤 한번 다시 읽어봐야할 Clean code에 관하여 (들어가며) (0) | 2021.03.15 |
muuri로 Drag&Drop 만들기 (0) | 2021.01.27 |
TDD, Clean Code 시작하며 (0) | 2020.10.28 |
REST API 생성 규칙 (0) | 2020.10.17 |