정의: Imperative 방식은 "무엇을 해야 하는지"에 대해 구체적으로 설명하는 방식입니다. 프로그램은 명령어를 순차적으로 실행하며, 각 명령이 어떤 결과를 낳을지 명확하게 지정합니다. 개발자는 프로그램이 어떻게 동작할지를 제어합니다.
특징:
예시:
javascript
코드 복사
let sum = 0;
for (let i = 0; i < 10; i++) {
sum += i; // 반복문을 사용해 수동으로 합계 계산
}
console.log(sum);
장점: 성능 최적화가 필요할 때나 세부적인 제어가 요구될 때 유리합니다.
단점: 코드가 복잡하고 유지보수가 어려울 수 있습니다. 특히 대규모 시스템에서는 관리가 힘들어질 수 있습니다.
정의: Declarative 방식은 "무엇을 원하는지"를 선언하는 방식입니다. 프로그래밍의 세부적인 흐름이나 상태 변화에 대해 명시하지 않고, 목표만을 설명합니다. 선언형 프로그래밍은 상위 수준의 추상화를 제공합니다.
특징:
예시:
javascript
코드 복사
const sum = Array.from({ length: 10 }).reduce((acc, curr) => acc + curr, 0);
console.log(sum);
장점: 코드가 간결하고 읽기 쉬워 유지보수가 용이합니다. 로직을 직접 제어할 필요 없이 결과를 얻을 수 있습니다.
단점: 세부적인 제어가 필요할 때는 유연성이 떨어질 수 있습니다.