프로그래밍 패러다임(Programming Paradigm)

2025. 11. 3. 18:00Programming Language

이 글에서는 절차 / 객체 지향 프로그래밍과 함수형 프로그래밍의 개요를 정리한 글입니다.

  • 프로그래밍 패러다임
  • 절차 지향 프로그래밍 (Procedural Programming)
  • 객체 지향 프로그래밍 (Object-Oriented Programming, OOP)
  • 함수형 프로그래밍 (Functional Programming, FP)

프로그래밍 패러다임(Programming Paradigm)

코드를 바라보는 관점이자, 프로그램을 구성하는 사고 방식

[ 프로그래밍 패러다임의 이점 ]

  • 복잡성 관리 : 프로그램이 커져도 규칙대로 나누고 관리할 수 있습니다.
  • 협업 용이성 : 모두가 동일한 방식과 규칙을 기반으로 코드를 작성해 협업이 원활해집니다.
  • 예측 가능한 코드 : 정해진 규칙을 따라 코드를 작성하므로 동작 예측이 수월합니다.

[ 프로그래밍 패러다임의 종류 ]

  • 절차 지향 프로그래밍 (Procedural Programming)
  • 객체 지향 프로그래밍 (Object-Oriented Programming, OOP)
  • 함수형 프로그래밍 (Functional Programming, FP)

절차 지향 프로그래밍 (Procedural Programming)

초기 프로그래밍 패러다임으로, 명령어의 연속적인 실행으로 프로그램을 구성합니다.

ex) C
  • 명령어 순서에 따라 데이터를 다루는 방식입니다.
  • 코드 한 부분 수정시 연쇄적인 수정이 동반되며, 프로그램 규모가 커질 때 유지 보수성이 낮아집니다.

객체 지향 프로그래밍 (Object-Oriented Programming, OOP)

절차지향 한계를 극복하기 위한 패러다임으로, 객체라는 독립적 단위로 프로그램을 구현합니다.

ex) Java, C++, Python
  • 서로 연관된 데이터와 함수를 객체라는 단위로 구성하고 관리합니다.
  • JS의 객체지향은 전동적인 OOP언어와는 다르게, 프로토타입 기반의 객체지향 언어입니다.

함수형 프로그래밍 (Functional Programming, FP)

함수형 프로그래밍 또한 OOP와 동일하게 복잡성을 다루기 위한 방법 중 하나입니다.

ex) JavaScript
  • OOP는 데이터와 기능을 객체로 묶어 관리했다면, FP는 순수 함수를 조합해 프로그램을 만드는 것에 집중합니다.
  • 함수를 일급 객체 취급하며, 순수 함수 중심으로 프로그램을 작성해 예측 가능성과 안정성을 높입니다.