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
반응형
'개발 이모저모' 카테고리의 다른 글
for/while 반복문 VS streamAPI 뭐가 더 좋을까? (0) | 2025.01.11 |
---|---|
자바 Stream API , stream() , 자바 반복문 (2) | 2025.01.11 |
랜덤키 생성하기, SecureRandom() (0) | 2025.01.07 |
StringUtils.hasText 함수 (0) | 2025.01.05 |
(String) , .toString() 차이점 (0) | 2025.01.05 |