프로그래밍 패러다임

위키백과, 우리 모두의 백과사전.
이동: 둘러보기, 검색

프로그래밍 패러다임(programming paradigm)은 프로그래밍패러다임 형태이다. 소프트웨어 공학을 할 때의 패러다임 형태인 방법론와 비교된다.

프로그래밍 패러다임은 프로그래머에게 프로그래밍의 관점을 갖게 해 주고, 결정하는 역할을 한다. 예를 들어 객체지향 프로그래밍은 프로그래머들이 프로그램을 상호작용하는 객체들의 집합으로 볼 수 있게 하는 반면에, 함수형 프로그래밍은 상태값을 지니지 않는 함수값들의 연속으로 생각할 수 있게 해준다.

소프트웨어 공학의 서로 다른 무리가 서로 다른 방법론을 지원하듯이, 서로 다른 프로그래밍 언어는 서로 다른 프로그래밍 패러다임을 지원한다. 어떤 언어들은 하나의 특정한 패러다임을 지원하기도 하는데, 스몰토크자바가 객체지향 프로그래밍을 지원하는 반면에, 하스켈스킴은 함수형 프로그래밍을 지원한다. 여러 가지 패러다임을 지원하는 언어들도 있는데, 커먼 리스프, 파이썬, 오즈가 이런 언어들이다.

많은 프로그래밍 패러다임은 어떤 기법을 금지하거나 어떤 것을 가능하게 하는 것으로 널리 알려져 있다. 예를 들어, 순수 함수형 프로그래밍은 부작용의 사용을 허용하지 않는다. 구조적 프로그래밍GOTO문의 사용을 제한한다. 부분적으로 이런 이유로 인하여 새로운 패러다임들은 종종 과거의 것에 길들여진 사람들에게 교조주의적이거나 지나치게 엄격한 것으로 간주되기도 한다. 하지만 특정 기법을 피하는 것은 프로그래밍 언어의 범용성을 제한하지 않으면서 프로그램의 올바름에 대한 정리를 증명하는 것을 더 쉽게 하고, 더 간단하게 이해할 수 있기도 하다.

프로그래밍 패러다임과 프로그래밍 언어와의 관계는 프로그래밍 언어가 여러 프로그래밍 패러다임을 지원하기도 하기 때문에 복잡할 수도 있다. 예를 들어서 C++절차적 프로그래밍, 객체기반 프로그래밍, 객체지향 프로그래밍, 제네릭 프로그래밍의 요소들을 지원하도록 설계되었다. C++에서는 순수하게 절차적 프로그램을 작성할 수 있고, 순수하게 객체지향 프로그램을 작성할 수 있으며, 두 가지 패러다임 모두의 요소를 포함한 프로그램을 작성할 수도 있다.

여러 프로그래밍 패러다임[편집]

읽을거리[편집]