명령형 프로그래밍과 선언형 프로그래밍

명령형 프로그래밍과 선언형 프로그래밍의 정의, 해당 언어, 예시, 탄생 배경 등을 알아본다.

명령형 프로그래밍

정의

어떻게 문제를 해결할지 나열하는 방식

해당 언어

  • C
  • C++
  • Java
  • Python

예시

def filter_even_numbers(numbers):
    result = []
    for num in numbers:
        if num % 2 == 0:
            result.append(num)
    return result
 
numbers_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
filtered_numbers = filter_even_numbers(numbers_list)
print(filtered_numbers)  # 출력: [2, 4, 6, 8, 10]

장점

  • 직관적이다.
  • 디버깅하기 쉽다.

단점

  • 코드가 길어질 수 있다.

등장한 계기

프로그래밍 초기에 발견된 방식으로, 초기 컴퓨터는 단순한 명령어 집합을 순서대로 실행하는 것이 주된 작업이었기 때문에 자연스럽게 명령형 프로그래밍이 발전하게 되었다.

선언형 프로그래밍

정의

이게 무엇인지에 대해 초점을 맞추고 코딩하는 방식

해당 언어

  • SQL
  • HTML
  • CSS
  • Javascript

예시

  • console.log()
  • window.alert()

장점

  • 코드의 추상화 수준이 높아진다.
  • 코드의 재사용성이 늘어난다.

단점

  • 이해의 난이도가 높을 수 있다.

등장한 계기

명령형 프로그래밍으로 개발하기 시작하면서 점점 더 복잡한 문제에 맞닥드리게 되는데, 코드의 양이 길어지고 비효율적으로 중복된 코드가 생겨나기 시작하면서 자연스럽게 더 추상적이고 간결한 코드의 중요성이 대두되었다.