객체지향이란?

Siwoo Pak·2022년 1월 28일
0

OOP

목록 보기
1/1

1. 객체지향이란?

  • 시스템을 상호작용하는 자율적인 객체들의 공동체로 바라보고 객체를 이용해 시스템을 분할하는 방법.
  • 자율적인 객체란 상태행위를 함께 지니며 스스로 자기 자신을 책임지는 객체를 의미
  • 객체는 시스템의 행위를 구현하기 위해 다른 객체와 협력한다. 각 객체는 협력 내에서 정해진 역할을 수행하며 역할은 관련된 책임의 집합이다.
  • 객체는 다른 객체와 협력하기 위해 메시지를 전송하고, 메시지를 수신한 객체는 메시지를 처리하는 데 적합한 메서드를 자율적으로 수행한다.

2. 객체지향의 목표

  • 실세계를 모방하는 것이 아니라, 새로운 세계를 창조하는 것.
  • 객체지향에서의 SW개발자의 역할은 단순히 실세계를 모방하는 것이 아니라 고객과 사용자를 만족시킬 수 있는 신세계를 창조하는 것
  • "S/W시스템이 해결하려고 하는 실재는 잘해봐야 먼 친척밖에는 되지 않는다" by 버트란드 마이어
    • S/W 세계와 실세계 사이의 거리를 잘 표현함.

3. 실세계의 모방이라는 개념으로 OOP를 설명하는 이유

  • 실세계에 대한 비유가 객체지향의 다양한 측면을 이해하고 학습하는데 매우 효과적
  • 객체를 스스로 생각하고 결정하는 현실 세계의 생명체에 비유하는 것은 상태와 행위를 '캡슐화'하는 SW 객체의 '자율성'을 설명하는 효과적.
  • 현실 세계의 사람들이 암묵적인 약속과 명시적인 계약을 기반으로 협력하며 목표를 당성해 나가는 과정은 '메시지'를 주고 받으며 공동의 목표를 달성하기 위해 '협력'하는 객체들의 관계를 설명하는 적합함.
  • 실세계의 사물을 기반으로 소프트웨어 객체를 식별하고 구현까지 이어간다는 개념은 객체지향 설계의 핵심사상인 '연결완전성'을 설명하는데 적합한 틀을 제공함.

4. '커피주문'으로 보는 객체의 협력, 역할, 책임

profile
'하루를 참고 인내하면 열흘을 벌 수 있고 사흘을 참고 견디면 30일을, 30일을 견디면 3년을 벌 수 있다.'

0개의 댓글