Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

절차적 지식 vs 선언적 지식: 핵심 차이점 완벽 정리

프로그래밍과 인공지능 분야에서 자주 언급되는 절차적 지식(Procedural Knowledge)선언적 지식(Declarative Knowledge)은 문제를 해결하는 방식에서 근본적인 차이를 보입니다. 이 글에서는 두 지식의 개념을 JavaScript 배열 복사 예제를 통해 살펴보고, 주요 차이점을 표로 정리해 드립니다.

절차적 지식(Procedural Knowledge)이란?

절차적 지식 또는 명령형 지식(Imperative Knowledge)은 특정 작업을 어떻게 수행해야 하는지를 설명합니다. 즉, 작업을 완료하기 위해 거쳐야 할 구체적인 단계를 하나하나 명시하는 방식입니다.

예제: 절차적 방식으로 배열 복사하기

var a = [1, 2, 3, 4, 5];
var b = [];
for (var i = 0; i < a.length; i++) {
    b.push(a[i]);
}
console.log(b);

출력 결과

[1, 2, 3, 4, 5]

위 코드처럼 반복문을 사용해 요소를 하나씩 순회하며 새 배열에 추가하는 과정 자체를 직접 기술하는 것이 절차적 접근 방식의 핵심입니다.

선언적 지식(Declarative Knowledge)이란?

선언적 지식 또는 함수형 지식(Functional Knowledge)은 특정 작업을 수행하기 위해 무엇을 해야 하는지를 설명합니다. 세부 실행 단계보다는 원하는 결과와 그것을 달성할 함수를 정의하는 데 초점을 맞춥니다.

예제: 선언적 방식으로 배열 복사하기

var a = [1, 2, 3, 4, 5];
var b = a.map(function(number) {
    return number * 1;
});
console.log(b);

출력 결과

[1, 2, 3, 4, 5]

위 코드는 내부 동작 원리(반복 처리 등)를 신경 쓰지 않고, 각 요소에 적용할 변환 규칙만 선언하면 됩니다. 이것이 바로 선언적 접근 방식입니다.

절차적 지식과 선언적 지식의 주요 차이점

아래 표는 두 지식 유형의 핵심적인 차이를 항목별로 비교한 것입니다.

번호구분 기준절차적 지식선언적 지식
1다른 명칭명령형 지식(Imperative Knowledge)이라고도 불립니다.함수형 지식(Functional Knowledge)이라고도 불립니다.
2기본 개념어떻게(How to) 수행할지에 중점을 둡니다.무엇을(What to) 할지에 중점을 둡니다.
3전달 용이성구체적인 단계가 많아 전달하기가 어렵습니다.결과 중심으로 정의되어 있어 쉽게 전달할 수 있습니다.
4지향 방향프로세스(과정) 지향적입니다.데이터(결과) 지향적입니다.
5검증(Validation)단계가 복잡하여 검증이 쉽지 않습니다.정의가 명확하여 검증이 비교적 쉽습니다.
6디버깅(Debugging)실행 흐름 추적이 필요해 디버깅이 까다롭습니다.로직이 단순하고 명확해 디버깅이 상대적으로 쉽습니다.

마무리

절차적 지식은 작업의 수행 과정을, 선언적 지식은 작업의 목표와 결과를 중심으로 사고합니다. 실제 개발에서는 두 방식을 상황에 맞게 조합하여 사용하는 것이 좋으며, 최근에는 가독성과 유지보수성이 뛰어난 선언적 프로그래밍 스타일이 널리 권장되는 추세입니다.