Certificate/정보처리기사

[1과목 소프트웨어 설계] 애플리케이션 설계 - 023. ⭐ 객체지향 (Object-Oriented)

S_sun 2024. 5. 28. 18:30
  • 개체(Entity)를 하나의 객체(Object)로 만들어 작성
  • 구조적 기법의 문제점의 해결책으로 채택
    • 유지보수 고려하지 않고 개발공정에만 집중
    • 개발 이후, 추가 요구사항 대응 어려움
    • 재사용 불가해 유사 소프트웨어 개발 시 시간과 인력 소모
  • 복잡한 구조를 단계적 · 계층적으로 표
  • 멀티미디어 데이터 및 병렬처리 지원
  • 사용자와 개발자가 쉽게 이해
  • 객체, 클래스, 캡슐화, 상속, 다형성, 연관성


1. 객체 (Object)

  • 데이터와 데이터를 처리하는 함수를 묶어 놓은 하나의 모듈
  • 데이터 : 속성(Attribute), 상태, 변수, 상수, 자료 구조
  • 함수 : 메소드(Method), 서비스(Service), 동작(Operation), 연산
  • 객체의 메소드는 다른 객체로부터 메시지를 받았을 때 정해진 기능을 수행

객체 특성

  • 독립적으로 식별 가능한 이름
  • 객체가 가질 수 있는 조건 = 상태(State) → 시간에 따라 변함
  • 객체 간 상호 연관성에 의한 관계가 형성됨
  • 객체가 반응할 수 있는 메시지의 집합을 행위 → 객체는 행위의 특징
  • 일정한 기억장소

 

2. 클래스 (Class)

  • 공통된 속성과 연산(행위)를 갖는 객체의 집합 → 일반적인 타입(Type)을 의미
  • 객체들이 갖는 속성과 연상을 종의하고 있는 틀
  • 데이터를 추상화하는 단위
  • 각 객체를 인스턴스(Instance)
  • 클래스로부터 새로운 객체를 생성하는 것을 인스턴스화(Instantiation)
  • 동일 클래스에 속한 객체들은 공통된 속성과 행위를 가지고 있으며, 속성에 대한 정보가 달라서 동일 기능을 하는 여러가지 객체를 나타냄

 

3. 캡슐화 (Encapsulation)

  • 데이터(속성)와 데이터를 처리하는 함수를 하나로 묶는 것
  • 인터페이스를 제외한 세부 내용이 은폐(정보 은닉)되어 외부에서 접근이 제한적 → 외부 모듈 변경으로 인한 파급효과가 적음
  • 재사용이 용이
  • 인터페이스가 단순해지고, 객체 간의 결합도가 낮아짐

 

4. 상속 (Inheritance)

  • 이미 정의된 상위 클래스의 모든 속성과 연산을 하위 클래스가 물려받는 것
  • 하위 클래스는 다시 정의하지 않고 즉시 자신의 속성으로 사용 가능
  • 상속받은 속성과 연산 외에 새로운 속성과 연산을 첨가해 사용 가능
  • 재사용을 높이는 중요한 개념
  • 💡다중 상속(Multiple Inheritance) : 두 개 이상의 상위 클래스를 상속받는 것

 

5. 다형성 (Polymorphism)

  • 하나의 메시지에 대해 여러가지 형태의 응답이 존재
  • 하나의 함수나 연산자가 두 개 이상의 서로 다른 클래스의 인스턴스들을 같은 클래스에 속한 인스턴스처럼 수행할 수 있도록 하는 것
  • 오버로딩(Overloading) : 동일 메소드명, 다른 매개변수
  • 오버라이딩(Overriding) : 메소드 재정의

 

6. 연관성 (Relationship)

  • 두 개 이상 객체(클래스)들이 상호 참조하는 관계
종류 의미 특징
is member of 연관화
(Association)
2개 이상의 객체가 상호 관련되어있음을 의미
is instance of 분류화
(Classification)
동일한 형의 특성을 갖틑 객체들을 모아 구성하는 것
is part of 집단화
(Aggregation)
관련 있는 객체들을 묶어 하나의 상위 객체를 구성하는 것
is a 일반화
(Generalization)
공통적인 성질들로 추상화한 상위 객체를 구성하는 것
is a 특수화/상세화
(Specialization)
상위 객체를 구체화하여 하위 객체를 구성하는 것



📖 Reference
 

2023 시나공 정보처리기사 필기 : 네이버 도서

네이버 도서 상세정보를 제공합니다.

search.shopping.naver.com

 

728x90
반응형