선언형과 함수형 프로그래밍
2024. 7. 15. 15:09ㆍ면접을 위한 cs 전공지식 노트/프로그래밍 패러다임
선언형 프로그래밍
선언형 프로그래밍은 '무엇'을 할 것인지에 집중하는 프로그래밍 패러다임이다.
이에 반해 명령형 프로그래밍은 '어떻게' 할 것인지를 설명한다.
예를 들어, 데이터베이스에서 정보를 검색하는 경우, 선언형 프로그래밍은 검색하려는 정보의 조건만 명시하면
컴퓨터가 어떻게 그 정보를 찾을지 알아서 처리하게 된다.
ex) SQL, HTML ...
선언형 프로그래밍의 장단점
장점
- 코드가 직관적이며 가독성이 높다.
- 개발자가 '어떻게'를 걱정할 필요가 없으므로 개발이 단순화된다.
단점
- 선언형 프로그래밍은 컴퓨터에게 과정을 자동으로 처리하도록 맡기므로 성능 문제가 발생할 수 있다.
- 하드웨어에 대한 최적화가 어려울 수 있다.
함수형 프로그래밍
함수형 프로그래밍은 선언형 패러다임의 일종으로, 작은 순수 함수들을 블록처럼 쌓아 로직을 구현하고
고차 함수를 통해 재사용성을 높인 프로그래밍 패러다임이다.
순수 함수와 불변성을 중심으로 프로그램을 구성한다.
- 순수 함수
- 출력이 입력에만 의존하는 것을 의미한다. - 동일한 입력에 항상 동일한 출력
- 함수의 실행은 프로그램의 실행에 영향을 미치지 않아야 한다.
(사이드 이펙트가 없다 - 오로지 출력만 수행한다.)
- 불변성
- 데이터가 한번 생성되면 그 상태가 변하지 않는 것을 의미한다.
ex) 자바스크립트의 배열 메서드, 리액트에서의 useState등 상태 관리..
함수형 프로그래밍의 장단점
장점
- 코드의 예측 가능성과 테스트 용이성이 높다.
- 불변성 때문에 병렬 처리에 적합하다.
단점
- 학습곡선이 높다. 일반적인 명령형 프로그래밍에 익숙한 개발자들에게는 이해하기 어려울 수 있다.
선언형 프로그래밍 vs 함수형 프로그래밍
선언형 프로그래밍은 결과에 집중하는 반면, 함수형 프로그래밍은 프로세스에 집중한다.
'면접을 위한 cs 전공지식 노트 > 프로그래밍 패러다임' 카테고리의 다른 글
객체지향 프로그래밍 (1) | 2024.07.17 |
---|