2009년 1월 8일 목요일

객체 지향 개요


객체 지향에서 가장 핵심적인 용어는 바로 객체(Object) 입니다.

그렇다면 객체란 무엇일까요?

우리 주변을 둘러싼 실세계 모두를 객체로 정의할 수 있습니다. 사람, 고양이, 컴퓨터 등... 모든것이 객체입니다.

 

이런 객체라는 개념을 프로그램의 방법론으로는 어떻게 정의하는지 생각해 봅시다.

객체는 '상태(State)'와 '행동(behavior)' 또는 '기능'이 있다고 말할 수 있습니다. 또한 식별 가능한 '독자성(identity)'이 있습니다.

따라서 객체는 "상태 + 행동 + 독자성" 이라고 정의할 수 있겠습니다.

 

상태, 행동, 독자성이라는 특성으로 객체를 정의해서 프로그램화하는 것이 바로 객체 지향 방법론입니다. 객체 지향 프로그램 방법론의 기본적인 원리는 다음과 같습니다.

  • 추상화
    중요한 것과 중요하지 않은 것이 무엇인지 결정하고 중요하지 않은 부분을 무시해서 중요한 것에만 초점을 맞추어 관리하는 개념입니다.
  • 갭슐화
    블랙박스와 비슷한 개념으로 내부는 모르더라도 외부에 노출된 입력 부분과 출력 부분을 통해서 기능이 이루어지는 것을 말합니다. 예를 들어, 운전할 때 엔진의 연료분사 과정, 발화, 크랭크축의 회전 등 내부의 세부적인 내용은 몰라도, 단지 시동키와 기어, 엑셀레이터 등 운전자가 조작하는 부분만 알아도 운전이 가능한 것과 같습니다.
    이처럼 갭슐화를 하면 내부적인 것은 자세히 모르더라도 인터페이스 부분만 알면 프로그래밍을 할 수 있습니다.
  • 모듈화
    기능의 단위를 작게 나누는 것입니다. 독립적으로 개발한 부붐을 레고처럼 조립할 수 있다면 분업을 통해 복잡한 것을 쉽게 만들어 낼 수 있습니다.
  • 계층성
    추상화해서 상위에 위치시키고, 자세하고 특수한 사항은 추상화된 부분의 하위에 위치시키틑 체계를 말합니다. 계층성은 계층 간 객체의 상속과 다양한 형태로 변형할 수 있습니다.



  • [출처]
    객체 지향 개요|작성자 웃진

댓글 없음:

댓글 쓰기