절차지향 / 객체지향 / 함수형 프로그래밍

park·2023년 4월 4일
0

절차지향 / 객체지향 / 함수형 프로그래밍이란 무엇이고 차이점은 무엇인가?

절차지향 프로그래밍(Procedural Programming)은 프로그램을 일련의 절차적인 단계로 나누어서 처리하는 방식입니다. 프로그램을 함수(function)의 모음으로 보며, 각 함수는 순서대로 호출되어 처리됩니다. C언어나 Pascal 등이 대표적인 절차지향 프로그래밍 언어입니다.

객체지향 프로그래밍(Object-Oriented Programming)은 프로그램을 객체(object)들의 모임으로 구성하는 방식입니다. 객체는 상태(state)와 행위(behavior)를 가지며, 클래스(class)를 통해 객체를 정의합니다. 객체는 서로 메시지(message)를 주고받으며 상호작용합니다. Java, C++, Python 등이 대표적인 객체지향 프로그래밍 언어입니다.

함수형 프로그래밍(Functional Programming)은 함수를 일급 객체(first-class object)로 다루는 프로그래밍 패러다임입니다. 함수는 변수나 상수처럼 다루어질 수 있으며, 부작용(side-effect)을 최소화하도록 작성됩니다. 함수형 프로그래밍은 불변성(immutability)과 순수성(purity)을 강조하여, 병렬처리와 같은 분산환경에서 안전하게 동작할 수 있습니다. Haskell, Lisp, Clojure 등이 대표적인 함수형 프로그래밍 언어입니다.

이 세 가지 프로그래밍 패러다임의 가장 큰 차이점은 프로그램을 어떻게 구성하는가에 있습니다. 절차지향 프로그래밍은 프로그램을 함수(function)의 모음으로 보며, 함수 간에 상태를 공유합니다. 객체지향 프로그래밍은 프로그램을 객체(object)들의 모임으로 구성하며, 객체 간에 메시지를 주고받습니다. 함수형 프로그래밍은 함수(function)를 일급 객체(first-class object)로 다루며, 부작용을 최소화합니다. 각 패러다임은 자신만의 장단점이 있으며, 상황에 맞게 적절히 선택하여 사용해야 합니다.

0개의 댓글