-
함수형 프로그래밍이란?WEB 2020. 8. 9. 14:14728x90
명령형 프로그래밍과 선언형 프로그래밍의 차이
명령형 프로그래밍
- 프로그래밍의 상태와 상태를 변경시키는 구문의 관점에서 연산을 설명 - 절차지향 프로그래밍 - 수행되어야 할 연속적인 계산 과정을 포함하는 방식(C, C++ ...) - 객체 지향 프로그래밍 - 객체들의 집합으로 프로그램의 상호작용을 표현(Java, C++, C# ...)
선언형 프로그래밍
- 어떻게(How)보다는 무엇(What)과 같은지를 설명하는 방식 - 함수형 프로그래밍 - 순수 함수를 조합하고 소프트웨어를 만드는 방식(LISP, Haskell, Closure ...)
차이점
- 명령형 프로그래밍 : 알고리즘을 명시하고 목표는 명시 안함
- 선언형 프로그래밍 : 알고리즘을 명시하지 않고 목표는 명시
OOP와 FP의 차이점
OOP(Object Oriented Programming)
- Object들로 프로젝트가 구성되고 Object들의 연관 관계로 만들어짐
- 기능의 최소 단위는 Module이고 연관된 Object로 구성되어있고 Object는 멤버 변수와 메소드로 이루어짐
- 메소드가 실행될 때 멤버 변수를 사용
- 메소드의 실행 결과는 멤버 변수의 상태에 따라 달라짐
FP(Functional Programming)
- 함수의 Input, Output이 있고 각각의 Input, Output 연결되어 하나의 Output이 만들어짐
- 순수 함수는 동일한 Input에 대해 동일한 Output을 리턴
- 상태를 가지지 않음
- 기능의 최소 단위는 Function
차이점
- State의 유무
- FP는 함수를 수행하도 함수 외부의 값이 변경되지 않음
728x90'WEB' 카테고리의 다른 글
[WEB] JWT란? (0) 2020.08.25 [Web] IaaS PaaS SaaS란? (0) 2020.08.20 [Web] Forwad와 Redirect의 차이 (0) 2020.08.02 서버 사이드 렌더링(SSR)과 클라이언트 사이드 렌더링(CSR) (0) 2020.06.23 Serverless란? (0) 2020.06.22