FE 기술/JavaScript
JavaScript) 명령형, 선언형의 차이
Rulu_
2023. 4. 24. 14:07
명령형, 선언형의 차이
명령형 프로그래밍
- 프로그래밍의 상태와 상태를 변경시키는 구문의 관점에서 연산을 설명
- 컴퓨터가 수행할 명령들을 순서대로 써 놓은 것
- ‘어떻게’ 계산 할지 보다는 ‘무엇’이 계산될 것인지
- 알고리즘을 명시하고 목표는 명시하지 않음
- 명령형 프로그래밍은 개념적으로 친밀하고 직접적으로 구체화되어 있어, 대부분의 프로그래밍 언어들은 명령형임.
- ex) c, java, kotlin ..
function addOne (arr) {
let results = [];
for(let i=0; i<arr.length; i+=1){
results.push(arr[i]+1);
}
return results;
}
선언형 프로그래밍
- 정의
- 프로그램이 어떤 방법으로 해야하는지 보다는 무엇과 같은지 설명하는 경우
- ex) 웹페이지 (무엇이 나타나는지 묘사하는 것, 어떤 방법으로 페이지를 나타내야 하는지가 아님)
- 목표를 명시하고 알고리즘을 명시하지 않음
- 프로그램이 함수형 프로그래밍 언어, 논리형 프로그래밍 언어, 혹은 제한형 프로그래밍 언어로 쓰인 경우
- 프로그램이 어떤 방법으로 해야하는지 보다는 무엇과 같은지 설명하는 경우
- 두 정의는 서로 겹치는 부분도, 다른 부분도 있다
- 명령형 프로그래밍 언어로 선언형 프로그램을 작성할 수도 있음
- 프레임워크 내부의 비선언형 부분을 캡슐화 하여.
- 명령형 프로그래밍 언어로 선언형 프로그램을 작성할 수도 있음
- 선언형 프로그램에서는 그 언어의 표준 알고리즘으로 처리되는 자료 구조를 작성하거나 선언함
- 어떤 것이 선언형 프로그램일까? 정답은 추상화
- JS에서는 내장형 함수를 사용하여 ‘어떻게’가 아닌 ‘무엇을’에 도달
- 상태 변경에 대한 직접적인 간섭이 없음
- JS에서는 내장형 함수를 사용하여 ‘어떻게’가 아닌 ‘무엇을’에 도달