새소식

반응형
Study/오브젝트

[Object] 들어가며 : 프로그래밍 패러다임

  • -
반응형

패러다임의 시대

패러다임이라는 말은 ‘모델’, ‘패턴’, 또는 ‘전형적인 예’를 의미하는 그리스어인 ‘파라데이그마’에서 유래했다. 

과거에는 표준적인 모델을 따르거나 모방하는 상황을 가리키는 매우 제한적인 상황에서만 패러다임이라는 단어를 사용했다

 

하지만 현대인들은 패러다임이라는 단어를 전혀 다른 의미로 사용한다. 

우리가 사용하는 패러다임은 한 시대의 사회 전체가 공유하는 이론이나 방법, 문제의식 등의 체계를 의미한다.

 

패러다임의 개념이 과거와 다른 의미로 바뀐 과정

토마스 쿤의  “과학혁명의 구조” 라는 이름의 책은 과학사에 대한 기존 관점을 뿌리째 흔들었다. 

쿤의 책이 출간되기 전까지 과학사에 대한 보편적인 시각은 과학의 발전은 이미 달성된 과학적 성취를 기반으로 새로운 발견을 누적시키거나 오류를 수정하면서 단계적으로 진보해 나갔다고 생각했다. 

그러나 쿤은 과학이 단순한 계단식 발전의 형태를 이루는 것이 아닌, 새로운 발견이 기존의 과학적 견해를 붕괴시키는 혁명적인 과정을 통해서 발전해 왔다고 주장했다. 

그리고 이를 과학혁명이라고 불렀다.

과학혁명이란 과거의 패러다임이 새로운 패러다임에 의해 대체됨으로써 정상과학의 방향과 성격이 변하는 것을 의미한다.

이를 패러다임 전환이라고 부른다.

패러다임 전환의 가장 대표적인 예는 우주를 바라보는 관점이 천동설에서 지동설로 변화한 사건으로 들 수 있다.

 

프로그래밍 패러다임

프로그래밍 패러다임이라는 용어를 처음 사용한 사람은 로버트 플로이드이다. 

프로그래밍 패러다임은 특정 시대에 수용된 프로그래밍 방법과 문제 해결 방법, 프로그래밍 스타일이라고 할 수 있다. 

우리가 어떤 프로그래밍 패러다임을 사용하느냐에 따라 우리가 해결할 문제를 바라보는 방식과 프로그램을 작성하는 방법이 달라진다. 

프로그래밍 패러다임은 개발자 공동체가 동일한 프로그래밍 스타일과 모델을 공유할 수 있게 함으로써 불필요한 부분에 대한 의견 충돌을 방지한다. 

각 프로그래밍 언어가 제공하는 특징과 프로그래밍 스타일은 해당 언어가 채택하는 프로그래밍 패러다임에 따라 달라진다. 

각 패러다임과 패러다임을 채용하는 언어는 특정한 종류의 문제를 해결하는 데 필요한 일련의 개념들을 지원한다.

 

패러다임 VS 프로그래밍 패러다임 

프로그래밍 패러다임이 쿤의 패러다임 개념에 영향을 받았다고 해서 두가지가 완전히 동일하지는 않다. 

 

쿤의 패러다임은 상이한 두가지 패러다임이 있을 때 두 패러다임은 함께 존재할 수 없다고 주장했다. 

예로 천동설과 지동설 모두를 사실로 받아들일 수 없다. 

하지만 프로그래밍 패러다임은 서로 다른 패러다임이 하나의 언어 안에서 공존함으로써 서로의 장단점을 보완할 수 있다. 

대표적인 예로 절차형 패러다임과 객체지향 패러다임을 접목시킨 ‘C++’이 있다. 

하나 이상의 패러다임을 수용하는 언어를 다중패러다임 언어라고 부른다. 

 

쿤은 과거의 패러다임과 새로운 패러다임은 개념 자체가 다르기 때문에 비교할 수 없다고 주장했다.

하지만 프로그래밍 패러다임의 영역에서는 적용되지 않는다.

일례로 객체지향 패러다임은 절차형 패러다임의 단점을 보완했지만 절차형 패러다임의 기반 위에서 구축됐다.

따라서 절차형 패러다임과 객체지향 패러다임을 비교하는 것은 가능하다.

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.