Imperative vs Declarative Programming in JavaScript
선언형과 명령형의 정의, 차이점
Imperative languages
Java, C++, C#
Declaraitve languages
SQL, HTML, CSS
선언형과 명령형 코드의 차이점을 가장 쉽게 설명하면?
imperative code focuses on writing an explicit sequence of commands to describe how you want the computer to do things, and declarative code focuses on specifying the result of what you want.
- 명령형은 명시적인 절차를 기술하는데 초점을 맞춘다.
- 선언형은 내가 원하는 것, 프로그램의 결과가 무엇인지를 구체화 하는 것에 초점을 맞춘다.
- 프로그래밍의 상태와 상태를 변경시키는 구문의 관점에서 연산을 설명하는 프로그래밍 패러다임은 "명령형" (위키백과)
- 프로그램이 어떤 방법으로 해야 하는지를 나타내기보다 무엇과 같은지를 설명하는 경우에 "선언형"이라고 한다. (위키백과)
명령형 코드는 값의 저장과 반복문을 통한 데이터의 흐름을 직접 코드에 명시해주었다.
선언형 코드는 맵핑을 통해 (내부는 감추고??) 어떤 결과가 나오는지에 집중해서 코드를 구현했다.
자바스크립트는 built-in method로 간편하게 선언형 프로그래밍을 구현할 수 있게 해준다.
장단점
명령형
장점
- 대부분의 프로그래밍 언어에서 손쉽게 구현 가능하다.
- 반복문에서 데이터의 흐름을 정교하게 컨트롤 가능하다.
- 때때로 선언형 코드보다 명령형 코드가 성능상 우수한 경우가 있다.성능비교
단점
- 코드가 길다.
- 코드를 이해하는데 시간이 더 걸린다.
선언형
장점
- 짧은 코드
- 단번에 이해하기 쉽다.
- 자바스크립트의 프레임워크들과 잘 어울린다.
단점
- 때때로 명령형 코드보다 성능이 나쁠 수 있다.