코딩일기/자격증

정보처리기사 소프트웨어 설계 : 객체지향(Object Oriented), 객체 클래스 인스턴스의 차이!

jhy_2023 2024. 6. 27. 10:45
728x90
반응형

1. 객체 지향

  • 정의: 현실 세계의 개체(Entity)를 기계의 부품처럼 하나의객체(Object)로 만들어, 소프트웨어 개발 시 객체들을 조립하여 개발하는 기법.
  • 배경: 구조적 기법의 문제점(재사용 및 유지보수 어려움)으로 인해 발생한 소프트웨어 위기를 해결하기 위해 사용.
  • 장점:
    • 소프트웨어 재사용 및 확장 용이
    • 고품질 소프트웨어의 빠른 개발 가능
    • 유지보수가 쉬움
    • 복잡한 구조를 단계적, 계층적으로 표현 가능
    • 멀티미디어 데이터 및 병렬 처리 지원


2. 객체

  • 정의
     : 데이터와 이를 처리하기 위한 함수를 묶어 놓은 소프트웨어 모듈. 
       객체는 현실 세계의 사물을 컴퓨터 프로그램으로 모델링한 것.
  • 구성 요소:
    • 데이터: 객체가 가진 정보로 속성, 상태, 분류 등을 의미. 속성(attribute), 상태, 변수, 상수, 자료 구조라고도 함.
    • 함수: 객체가 수행하는 기능으로 객체가 갖는 데이터를 처리하는 알고리즘. 메소드(Method), 서비스(Service), 동작(Operation), 연산이라고도 함.
  • 특성:
    • 객체는 독립적으로 식별 가능한 이름을 가짐.
    • 객체의 상태(State : 객체가 가질 수 있는 조건)는 시간에 따라 변할 수 있음.
    • 객체와 객체는 상호 연관성에 의한 관계가 형성됨.
    • 객체가 반응할 수 있는 메시지(Message)의 집합을 행위라고 하며, 객체는 행위의 특징을 나타냄.
    • 객체는 일정한 기억장소를 가짐.
  • 비유: 자동차는 하나의 객체입니다. 자동차는 색상, 속도 등의 속성(데이터)을 가지고 있으며, 가속, 감속 등의 행동(함수)을 수행할 수 있습니다.

3. 클래스

  • 정의: 공통된 속성과 연산(행위)을 갖는 객체의 집합.
  • 특징:
    • 클래스에 속한 각각의 객체를 인스턴스(Instance)라 하며, 클래스로부터 새로운 객체를 생성하는 것을 인스턴스화(Instantiation)라고 함.
    • 동일 클래스에 속한 객체들은 공통된 속성과 행위를 가짐.
    • 최상위 클래스는 상위 클래스를 갖지 않음.
    • 슈퍼 클래스(Super Class): 특정 클래스의 상위(부모) 클래스.
    • 서브 클래스(Sub Class): 특정 클래스의 하위(자식) 클래스.
  • 클래스 비유: 자동차 제조 공장에서 사용하는 자동차 설계도. 이 설계도에는 자동차의 색상, 모델, 엔진 유형 등의 속성뿐만 아니라 가속, 감속, 주유와 같은 기능이 정의되어 있습니다. 클래스는 이 설계도와 같습니다.
  • 인스턴스(Instance)  비유: 공장에서 만들어진 실제 자동차. 이 자동차는 설계도(클래스)에 따라 만들어졌지만, 각각은 독립적인 실체입니다.

4. 메시지

  • 정의
    : 객체들 간의 통신 수단으로, 객체의 행위를 표현하고 상호작용에 사용됨.
      메시지는 객체가 다른 객체와 상호작용하는 방법으로 객체는 메시지를 보내서 다른 객체의 메서드를 호출함.
  • 비유: 운전자가 자동차에게 가속 페달을 밟으라고 명령하는 것. 이는 자동차에게 가속하라는 메시지를 보내는 것과 같습니다.


5. 캡슐화

  • 정의: 데이터(속성)와 데이터를 처리하는 함수를 하나로 묶는 것.
  • 특징:
    • 캡슐화된 객체는 인터페이스를 제외한 세부 내용이 은폐(정보은닉)되어 외부 접근이 제한됨.
    • 외부 모듈의 변경으로 인한 파급 효과가 적음.
    • 캡슐화된 객체들은 재사용이 용이함.
    • 객체들 간 메시지를 주고받을 때 상대 객체의 세부정보를 알 필요가 없으므로 인터페이스가 단순해지고 결합도가 낮아짐.
  • 비유: 운전자가 자동차의 엔진 내부 구조를 알 필요 없이, 가속 페달을 밟아서 속도를 높이는 것을 생각해보세요. 운전자는 가속 페달이라는 인터페이스를 통해 자동차의 속도를 조절할 수 있지만, 엔진 내부의 복잡한 동작은 숨겨져 있습니다.
728x90
반응형