개발 이모저모
명령형 프로그래밍, 선언적 프로그래밍이란?
진진이랑
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
반응형