[오브젝트 00] Paradigm

초보개발·2022년 11월 28일
0

오브젝트

목록 보기
2/6

패러다임(paradigm)

model, pattern, example을 의미하는 그리스어 paradeigma 에서 유래
과거, 표준적 모델을 따르거나 표방할 때를 가르키는 한정적인 상황에서만 단어를 사용함
현재, 한 시대의 사회 전체가 공유하는 이론이나 방법, 문제의식등의 체계로 전혀 다른 의미로 사용 중

프로그래밍 패러다임

프로그래밍 패러다임은 개발자들이 똑같은 프로그래밍 스타일, 모델을 공유함으로써 개발에 필요없는 부분들에 대해 논쟁을 방지 가능

  • 프로그래밍 언어와 프로그래밍을 분리할 수 없는 이유
    C언어 - 절차지향, Java - 객체지향, LISP - 함수형, PROLOG - 논리형
    각 언어마다 패러다임이 존재하며, 특정 종류의 문제를 해결하는데 필요한 개념들을 제공함

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

  • ex) 지동설과 천동설 두가지 모두를 사실로서 받아들일 수 없음

BUT, 프로그래밍 패러다임에서는 다름

  • 절차형 패러다임에서 객체지향 패러다임으로 전환했다해서 양립 불가능한 것은 아님, 오히려 서로 다른 패러다임이 공존하므로써 서로의 장단점을 보완할 수 있음
  • ex) 대표적 다중패러다임 언어: C++ - 절차형 & 객체지향 패러다임

쿤의 주장) 과거의 패러다임과 새로운 패러다임은 개념이 달라서 비교 불가능

  • 같은 대상에 대해 서로 다른 것을 보기 때문

BUT, 프로그래밍 패러다임에선 다름

  • 프로그래밍 패러다임이 바뀌었다해서 개발자가 바라보는 세상이 완전히 달라지지 않음
  • 객체지향은 절차형의 단점을 보완했으나 절차형 기반 위에서 구축됨
    즉, 절차형과 객체지향 비교 가능

프로그래밍 패러다임은 혁명적이 아닌 발전적(evolutionary)이다.
객체지향을 주로 사용한다더라도 다른 패러다임을 배우는 것은 큰 도움이 될 것, 객체지향이 적합하지 않는 상황이 있기 때문에, 언제라도 다른 패러다임을 적용할 수 있는 시야를 길러야 함

0개의 댓글