Notice
Recent Posts
관리 메뉴

Hacking Arts

OOP(Object-Oriented Programing) vs 절차 지향(Procedure-Oriented Language) 본문

Programing/ETC++

OOP(Object-Oriented Programing) vs 절차 지향(Procedure-Oriented Language)

Rakehell 2014. 8. 23. 01:49

<OOP>

 

-요약

모든 데이터를 오브젝트(object;물체)로 취급하여 프로그래밍 하는 방법으로, 처리 요구를 받은 객체가 자기 자신의 안에 있는 내용을 가지고 처리하는 방식이다.  

-본문
이 개념은 1960년 중엽에 유행한 시뮬레이션 언어의 SIMURA에서 유래한 것이다. 모든 데이터를 오브젝트(object:물체)로 취급하며, 이 오브젝트에는 클래스(class:類)의 개념이 있어서 상위(上位)와 하위(下位)의 관계가 있다. 클래스의 구체적인 예가 인스턴스(instance)이다. 오브젝트 사이는 메시지의 송신(送信)으로 상호 통신한다. 가장 특징적인 것은 각 클래스에 그 메시지를 처리하기 위한 방식이 있다는 것이다. 어떤 인스턴스에 메시지가 도래하면 그 상위 클래스가 그것을 처리한다. 현재 오브젝트지향개념은 프레임 표현형식과 융합하여 인공지능을 위한 소프트웨어 기법(技法)의 하나로 되어 있다.

객체지향프로그램은 C, Pascal, BASIC 등과 같은 절차형 언어(procedure-oriented programming)가 크고 복잡한 프로그램을 구축하기 어렵다는 문제점을 해결하기 위해 탄생된 것이다. 절차형 언어에서는 코드 전체를 여러 개의 기능부분 즉, 인쇄하는 기능부분과 유저로부터의 입력을 받는 기능부분 등으로 분할하는데, 이와 같이 각 기능부분을 구성하는 코드를 모쥴이라고 한다. 절차형 언어에서는 프로그램을 여러 기능으로 나누고 이들 모쥴을 편성하여 프로그램을 작성할 경우, 각 모쥴이 처리하는 데이터에 대해서는 전혀 고려하지 않는다. 다시 말하면 데이터 취급이 완전하지 않고 현실 세계의 문제를 프로그램으로서 표현하는 것이 곤란하다.

이러한 절차형 프로그래밍이 가지는 문제를 해결하기 위해 탄생된 객체지향프로그래밍은 객체라는 작은 단위로서 모든 처리를 기술하는 프로그래밍 방법으로서, 모든 처리는 객체에 대한 요구의 형태로 표현되며, 요구를 받은 객체는 자기 자신 내에 기술되어 있는 처리를 실행한다. 이 방법으로 프로그램을 작성할 경우 프로그램이 단순화되고, 생산성과 신뢰성이 높은 시스템을 구축할 수 있다.

------------------------------------------

<절차 지향 언어>

 

프로그램을 작성할 때 실행 순서를 지정하게 되는 프로그램 작성 언어. 문제의 해결 순서와 절차의 표현과 해결이 쉽도록 설계된 프로그램 언어로서 고수준 언어에는 C 언어, 파스칼, 코볼, 포트란, 알골, PL/1 등이 있다. 이에 대하여 리스프(LISP)와 같은 함수형 언어나 프롤로그와 같은 논리형 프로그램 작성 언어는 실행 순서를 지정할 필요가 없어 비절차형, 또는 비절차 지향 언어라고 한다.

-------------------------------------------

프로그래밍은 두 종류로 나눈다면 객체지향과 절차지향 언어가 아닐까 생각한다. 이 두 언어를 대표하는 언어를 말한다면 대부분

객체지향은 C++을 절차지향은 C언어라고 할 것이다. 절차지향의 언어와 객체지향의 차이로 가장 큰 차이점은 객체(Class)의 유무라고 할 수있는데 요즘같이 프로그래밍의 소스가 점점 거대해지는 시점은 객체란 개념이 점점 중요해지고있다. 이유는 유지 보수에 가장 좋다는 점이죠. 객체를 불러와서 쓰기만 하면 되는 이런 부분이 굉장히 편리하지만 절차지향언어도 중요합니다.

 

C언어와 JAVA나 C++을 배워보시면 아.. 배울수록 뭔가 틀린점을 알 수 있습니다. 객체는 C언어의 구조체가 발달한 것 같은 느낌을 줍니다.

그리고 절차지향은 위에서 아래로 그래서 항상 C언어 프로그래밍에서 순서가 굉장히 중요합니다. 이유는 절차지향 언어라서 그런것입니다. 객체지향의 언어의 경우 절차지향처럼 위에서 아래가 아닌 이리갔다 저리 가는 이런식의 언어에서 차이가 납니다.

 

이런식입니다. 굉장히 잘 표현한것 같아서

출처는 http://cafe.naver.com/sciencefreetamgu123.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=77& 입니다.

 

그리고 사전 뜻은 네이버 백과사전을 퍼왔답니다.

'Programing > ETC++' 카테고리의 다른 글

함수 호출 규약(Calling Convention)  (0) 2014.09.28