OOP (object-oriented programming) ; 객체지향 프로그래밍

객체지향 프로그래밍(이하 줄여서 'OOP'라 칭함)은 컴퓨터 프로그램의 개발을 완전히 새로운 시각으로 바라다보는 혁명적 개념이라 할 수 있는데, 동작보다는 객체, 논리보다는 자료를 바탕으로 구성된다. 프로그램은 전통적으로 논리적인 수행 즉, 입력을 받아 처리한 다음, 결과를 내는 것이라는 생각이 지배적이었다. 또한 프로그래밍을 한다는 것은 어떻게 자료를 정의할까 보다는 어떻게 논리를 써나가는 것인가로 간주되었다.

그러나 OOP는 프로그램에서 정말 중요한 것이 논리보다는 오히려 다루고자 하는 객체라는 시각에서 접근하고 있다. 객체의 예로는, 사람(이름, 주소 등으로 묘사되는)에서부터 건물까지, 그리고 상품 판매를 위한 매장(특성이 서술되고 다뤄질 수 있는)에서부터 컴퓨터 바탕화면의 아주 작은 요소인 버튼이나 스크롤바 같은 것들까지를 모두 망라한다.

OOP에서의 첫 단계는 다루고자 하는 모든 객체와, 그것들이 서로 어떤 연관성이 있는지를 식별하는 - 흔히 데이터 모델링이라고 부르는 - 작업이다. 일단 모든 객체를 식별했으면, 객체 클래스로 일반화하고 (플라톤의 "이상적" 의자 개념이 모든 의자를 대표한다고 생각하는 식으로), 그것이 담고 있는 데이터의 종류와 그것을 다룰 수 있는 모든 논리 순서를 정의한다.

논리 순서는 메쏘드라고 부르며, 클래스의 실제 인스턴스를 하나의 "객체"라 하거나, 어떤 상황에서는 하나의 "클래스 활성체"라 한다. 객체 또는 활성체는 컴퓨터 내에서 실제로 수행되는 것이다. 메쏘드는 컴퓨터 명령어를 규정하고, 클래스 객체의 특성은 관련 데이터를 규정한다.

OOP에 사용된 개념과 규칙은 다음과 같은 중요한 이점을 제공한다.

Smalltalk는 최초의 객체지향 프로그래밍 언어 중 하나이며, C++Java는 최근 가장 인기있는 객체지향 프로그래밍 언어이다. C++의 부분집합이라고 할수 있는 Java는 특히 기업이나 인터넷의 분산 응용프로그램에 사용되도록 설계되었다.


이 정보는 1999년 5월 28일에 수정되었으며, 심재범님께서 도움을 주셨습니다.
영어판(whatis.com)