학습개요
프로그램으로 인해 컴퓨터 사용 방법은 획기적으로 바뀌게 됩니다. 단순히 계산만 빠르게 수행했던 기계였던 컴퓨터가 사람의 여러 가지 업무를 도와주고 처리할 수 있는 일로 바뀌게 된 거지요. 수학만 잘했던 모범생이 일 처리의 달인이 되었다고나 할까요? 프로그램 자체도 컴퓨터 사용 방식의 일대 변혁을 가져왔지만 프로그래밍 언어 자체에도 변화가 일어나기 시작했습니다. 여러 다양한 프로그래밍 방식을 지원하기 위해서 여러 프로그래밍 패러다임이 생겨나기 시작했습니다. 프로그래밍 언어의 변화는 컴퓨터 사용 방식의 변화와 맞물려 점차 더 발전하게 되었습니다. 이번 강의에서는 대표적인 프로그래밍 패러다임과 이를 지원하기 위한 프로그래밍 언어의 패러다임을 알아봅니다.
학습목표
- 패러다임이 무엇인지, 또 프로그래밍 패러다임이 구체적으로 어떻게 발전되었는지 설명할 수 있다.
- 대표적인 프로그래밍 패러다임이 무엇인지, 그리고 이를 지원하기 위한 프로그래밍 언어 패러다임을 설명할 수 있다.
- 다양한 프로그래밍 패러다임을 지원하기 위한 프로그래밍 언어의 구체적인 특징을 설명할 수 있다.
- 한 프로그램을 작성하기 위해서 여러 패러다임을 동시에 사용하는 방법을 이해한다.
정리하기
- 프로그램을 작성하는 전형적인 방식을 프로그래밍 패러다임이라고 부른다.
- 명령형 프로그래밍 패러다임에서 프로그램은 특정 작업을 수행하기 위해 명령어가 나열된 것이다. 컴퓨터 하드웨어의 속성을 그대로 반영한 형태의 패러다임이다.
- 절차형 프로그래밍 패러다임은 문제를 해결하기 위한 절차를 서브루틴 단위의 절차로 구현하는 방식의 패러다임으로, 프로그램을 절차의 집합으로 간주한다.
- 함수형 프로그래밍 패러다임에서는 데이터를 값으로 간주하고, 주어진 데이터로부터 새로운 값을 생성하는 함수에 초점을 맞추어 프로그램을 작성한다.
- 논리 프로그래밍 패러다임에서는 문제의 조건을 논리식으로 표현하고 이 식을 바탕으로 어떤 사실을 입증해 나가는 방식으로 프로그램을 수행한다. 논리 프로그래밍 패러다임은 선언적 프로그래밍 패러다임의 일종이다.
- 객체지향 프로그래밍 패러다임은 데이터와 관련 연산을 합쳐 객체로 모형화하고, 객체 사이의 상호작용을 통해 프로그램을 수행하는 프로그래밍 패러다임이다.
- 프로그래밍 패러다임의 변화 배경으로는 응용 도메인의 변화, 프로그램 구성 방식의 변화, 계산 모델의 변화 등을 들 수 있다.
- 하나의 프로그래밍 언어가 한 패러다임만 지원하는 것은 아니다.
- 구조화 프로그래밍은 goto 논란으로부터 촉발되었는데 goto 없이 프로그램을 작성하는 패러다임이다.
- 다양한 프로그래밍 패러다임은 서로 배타적이라기보다 상호 보완적인 것으로 보는 것이 바람직하다.