오브젝트 - 조영호

패러다임?

  • 모델, 패턴, 예를 의미하는 그리스어 파라데이그마(paradeigma)에서 유래
  • 과거엔 표준적인 모델을 따르거나 모방하는 상황을 가리키는 제한적인 상황에서 사용했음
  • 현대엔 한 시대의 사회 전체가 공유하는 이론이나 방법 등의 체계를 의미함

패러다임 전환?

과거의 패러다임이 새로운 패러다임에 의해 대체됨으로써 방향과 성격이 변하는 것을 의미함.

  • 예시: 천동설 → 지동설

프로그래밍에서의 패러다임

특정 시대의 어느 성숙한 개발자 공동체에 의해 수용된 프로그래밍 방법과 문제 해결 방법,일프로그래밍 스타일

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

  • 개발자 공동체가 동일한 프로그램링 스타일과 모델을 공유할 수 있게 함으로써 불필요한 부분에 대한 의견 충돌을 방지함

  • 프로그래밍 패러다임을 교육시킴으로써 동일한 규칙과 방법을 공유하는 개발자로 성장할 수 있도록 준비시킴

  • 프로그래밍 언어와 프로그래밍 패러다임은 분리할 수 없음

    • C언어는 절차형 패러다임
    • Java는 객체지향 패러다임
    • LISP는 함수형 패러다임

프로그래밍 패러다임과 쿤의 패러다임이 다른점

프로그램 패러다임은 상이한 패러다임이 공존할 수 있다.

  • 절차형 패러다임과 객체지향 패러다임을 접목한 C++
  • 함수형 패러다임과 객체지향 패러다임을 접목한 Scala

→ 이러한 언어를 다중패러다임 언어라고 부름

프로그래밍 패러다임은 비교 가능하다.

  • 프로그래밍 패러다임은 기존 개념의 단점을 보완해서 새로운 패러다임이 생겨난다.
    • 절차형 패러다임을 보완한 객체지향 패러다임
  • 기존 패러다임을 폐기시키는 혁명적인 과정을 거치지 않는다. 오히려 발전적이다.
  • 다른 프로그래밍 패러다임을 배우는 것은 도움이 된다.

No silver Bullet.