개발 이모저모

명령형 프로그래밍, 선언적 프로그래밍이란?

진진이랑 2025. 1. 9. 07:38
728x90
반응형

명령형 프로그래밍과 선언적 프로그래밍이라는 것은 대비되는 방식으로,
같은 결과를 내더라도 표현,구현방식에 대비가 된다.

 

1. 명령형 프로그래밍 (Imperative Programming)

  • 어떻게(How)를 정의: 문제를 해결하기 위한 절차를 상세히 기술한다.
  • 프로그램의 상태(state)를 변경하며 작업을 수행한다.
  • 루프와 조건문을 많이 사용한다.

 

  • 예시 : 명령형 방식으로 리스트에서 짝수만 필터링 (숫자를 하나씩 반복하면서 조건에 따라 직접 처리)
List<Integer> numbers = List.of(1, 2, 3, 4, 5);
List<Integer> evenNumbers = new ArrayList<>();

for (int number : numbers) {
    if (number % 2 == 0) {
        evenNumbers.add(number);
    }
}
System.out.println(evenNumbers); 
// 결과 :  [2, 4]

 

 

2. 선언적 프로그래밍 (Declarative Programming)

 

  • 무엇(What)을 정의: 문제를 해결하기 위한 목적(결과)을 기술한다.
  • 작업의 의도를 표현하며, 세부적인 구현 방법은 신경 쓰지 않는다.
  • 코드가 간결하고 가독성이 높아진다.

 

  • 예시 : 선언적 방식으로 리스트에서 짝수만 필터링 (짝수만 남기고 리스트로 반환하라는 의도)
List<Integer> numbers = List.of(1, 2, 3, 4, 5);
List<Integer> evenNumbers = numbers.stream()
    .filter(num -> num % 2 == 0) // 조건을 선언
    .collect(Collectors.toList()); // 결과를 수집
System.out.println(evenNumbers); 
// 결과 : [2, 4]

 

 

 

728x90
반응형