개발 일반

왜 함수형을 써야하는가?

민초부 2020. 12. 12. 22:35
반응형

- 필요성

  • 동시성과 객체 지향을 동시에 해결하고자 하는 움직임에서 요구된 방식
  • 대용량 데이터를 다룰 일이 점점 많아 지고 있는데 이러한 과정에서 매번 데이터를 객체를 변환하여 관리하는데 있어 부담이 커질 수 밖에 없음 
  • 모듈화 하기에 더 적합하다 할 수 있음 (이건 논란의 여지가 있다)
  • 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를 지향해야 한다.
반응형