[개발 상식] 선언적 프로그래밍과 명령적 프로그래밍, React.js와 선언적 프로그래밍

자바스크립트를 공부하다 명령적 프로그래밍의 단점에 대해 설명을 듣고, 선언적 프로그래밍의 필요성과 react, vue 등의 라이브러리 등장에 대해서 설명을 들었습니다.

그런데 선언적 프로그래밍이 무엇인지, 명령적 프로그래밍이 무엇인지 정확하게 알지 못해서 이번 시간에는 이 둘이 무엇인지와 차이점을 알아 보려고 합니다!

🤔선언적 프로그래밍? (Declarative Programming)

선언적 프로그래밍 (Declarative Programming)은 프로그램이 어떻게 동작해야 하는지를 명시하기 보다, 원하는 결과, 달성하기를 원하는 것을 설명하는 프로그래밍 형식입니다.

이를테면, 선언적 프로그래밍에서는 데이터와 데이터 사이의 관계, 규칙, 제약 조건등을 선언하여 문제를 해결하려 합니다.

함수형 프로그래밍이 선언적 프로그래밍의 한 형태라 할 수 있습니다.

🤔명령적 프로그래밍? (Imperative Programming)

명령적 프로그래밍 (Imperative Programming)은 프로그래밍이 어떻게 동작해야 하는지를 명시하는 프로그래밍 형식입니다.

프로그램이 단계적으로 수행해야 할 작업들을 명령어 순서대로 기술합니다.

절차적 프로그래밍과 객체지향 프로그래밍의 두 가지 변형으로 볼 수 있습니다.

🤨선언적 프로그래밍과 명령적 프로그래밍의 차이점

  • 선언적 프로그래밍은 문제 해결을 위해 프로그램이 원하는 결과 자체를 선언하고, 명령형 프로그래밍은 프로그램이 목표하는 결과를 얻는 방법에 대한 단계별 지침을 설명합니다.
  • 선언적 프로그래밍은 덜 복잡하고 가독성이 뛰어난 반면, 명령적 프로그래밍은 흐름을 따라 프로세스를 이해하기는 쉬우나 더 길고 복잡할 수 있습니다.
  • 선언적 프로그래밍은 코드를 쉽게 최적화 할 수 있는 반면, 명령적 프로그래밍은 최적화 하는데 더 많은 코드가 필요합니다.
  • 선언적 프로그래밍은 높은 의존성을 가지고 있어 수정이 어렵습니다. 하지만 명령적 프로그래밍은 필요에 따라 프로그램의 구조를 쉽게 조정하여 완벽하게 제어할 수 있습니다.

🤨React.js와 선언적 프로그래밍

자바스크립트는 다중 패러다임 프로그래밍 언어(객체지향 프로그래밍, 함수형 프로그래밍)로 선언적 프로그래밍과 명령적 프로그래밍을 둘 다 사용할 수 있습니다.

요즘 트렌드인 React역시 선언적 패러다임으로 구현된 라이브러리입니다.

이에 따라서 다음과 같은 특징을 가집니다.

  • 가상 DOM을 사용하여 효율적인 UI 렌더링을 가능하게 합니다.
  • 컴포넌트 기반 아키텍처로 독립적인 컴포넌트를 구성하여 UI를 조립하고 건설하는데 유용합니다.
  • 선언적 프로그래밍으로상태와 프로퍼티를 조작하여 UI를 업데이트 할 수 있습니다.
  • 선언적으로 처리되는 이벤트 핸들링은 React에서 내부적으로 이벤트 처리를 할 수 있게 해줍니다.

이런 특성으로 React는 효율적이고 유지보수가 쉬운 웹 개발을 도와주는 라이브러리 입니다!


출처

 

Declarative vs imperative programming: 5 key differences

Here's what a beginning programmer should know about two of the most popular programming paradigms.

www.educative.io