명령형(Imperative) 프로그래밍과 선언형(Declarative)프로그래밍

Posted by yunki kim on January 22, 2021

명령형: 알고리즘을 명시하고 목표는 명시하지 않는다

선언형: 목표를 명식하고 알고리즘을 명시하지 않는다

즉, 명령형은 무엇을 어떻게 할것인지에 초점이 맞추어져있고 선언형을 무엇을 할것인지에 초점이 맞추어져있다.

  실생활에서의 예를 들자면 집 앞에 있는 편의점을 간다는 가정을 해보자. 이때 "집 앞에 있는 편의 점을 갈께" 라고 말을 하는 것은 선언형 이고 "집 앞에 편의 점을 가기 위해서 집의 문을 어떻게 열고 앞에서 500미터를 쭉 앞으로 걸어 우회전을 해야한다"라고 말하는 것은 명령형이다. 즉, 명령형은 과정에 집중하고 선언형을 목적에 집중한다.

  명령형 프로그래밍의 경우 알고리즘 문에 풀이가 이에 해당될 수 있다. dfs문제를 푼다면 dfs의 과정을 모두 코드로 작성해야한다.

  선언형의 경우 SQL문이 이에 해당한다. SELECT * FROM TABLE;이라는 SQL문을 사용할떄는 이 문이 어떻게 동작하는지에는 관심이 없고 목적만이 존재한다. 따라서 과정이 추상화 되어있다.