[프로그래밍 패러다임] 명령형 프로그래밍 vs 선언형 프로그래밍

유재경·2021년 6월 13일
0
post-thumbnail

정의

명령형 프로그래밍은 컴퓨터에게 일을 어떤 방식을 거쳐 처리하면 되는지를 명령한다. 선언형 프로그래밍은 컴퓨터에게 무슨 일을 처리해야하는지를 선언한다.

예를 들어, 누군가에게 근처 '하남돼지집'이 어디있는지 물어봤다. 이 때, 두 가지 방식으로 설명해줄 수 있다. 만약 현재 나의 위치에서 '두 블럭 직진한 다음에 오른쪽으로 꺾어서 200m 직진하세요'라고 한다면 명령형 프로그래밍인 것이다. 다른 방식으로는 '하남돼지집'의 주소를 말해줄 수 있는데 그것이 선언형 프로그래밍인 것이다.

특징

명령형 프로그래밍을 보면 확실히 목표를 달성하기 위한 flow에 대해 자세하게 설명해준다. line by line으로 코드를 구체화해서 적는다. 대표적으로 C, C++ 등이 여기에 속한다. 프로그래머는 flow와 상태변경 추적에 초점을 맞추게 되기 때문에 상태 변화와 실행 순서가 중요해진다. 클래스나 구조체의 인스턴스를 이용하고 반복문이나 조건문과 같은 제어구문과 함수(메소드)호출을 통해 흐름을 제어한다.

반면, 선언형 프로그래밍은 친절한 line by line은 없이 방법이 추상화되고 data flow 정도만 있다. 대표적으로 HTML, SQL이 여기에 속한다. 프로그래머는 원하는 데이터를 얻고 필요한 변환만 수행하기 때문에 상태 변화는 없으며 실행 순서는 명령형 프로그래밍에 비해 중요도가 낮다. 주로 함수를 이용하여 재귀 호출하는 방식으로 이루어진다.


(출처 https://bite-sized-learning.tistory.com/562)

profile
iOS 개발

0개의 댓글