객체지향
소프트웨어의 구성 요소를 '객체(Object)' 단위로 나누고,
이 객체들이 서로 메시지를 주고받으며 동작하도록 설계하는 프로그램 개발 방법
- 현실 세계의 사물이나 개념을 객체로 보고, 객체 간의 상호작용으로 시스템을 구성
- 절차적(구조적) 프로그램의 복잡도와 유지보수 문제를 해결하기 위한 대안
- 재사용성, 확장성, 유지부소성, 개발 생산성 향상
- 구성 요소
- 객체(Object)
- 클래스(Class)
- 메시지(Message)
- 객체지향 특징
- 캡슐화(Encapsulation)
- 상속(Inheritance)
- 다형성(Polymorphism)
- 연관성(Relationship)
객체(Object)
- 데이터(속성)와 그 데이터를 처리하는 함수(메서드)를 하나로 묶은 단위
- 데이터
- 객체가 가지고 있는 정보
- 속성, 상태, 분류 등
- 함수
- 객체가 수행하는 기능
- 객체가 갖는 데이터를 처리하는 알고리즘
- 객체의 상태를 참조하거나 변경하는 수단
클래스(Class)
- 공통된 속성과 연산을 갖는 객체의 집합 또는 설계도
- 객체를 생성하기 위한 템플릿
- 클래스에 속한 각각의 객체를 인스턴스라고 함
메시지(Message)
- 객체 간 상호작용을 위한 통신 수단(요청 또는 명령)
- 한 객체가 다른 객체의 메서드를 호출하는 방식
- 메시지를 받은 객체는 대응하는 연산을 수행한 후 결과를 반환
캡슐화(Encapsulation)
- 객체의 속성과 연산을 하나로 묶고, 외부에서 접근하지 못하도록 숨기는 것
- 내부 구현을 보호하고, 외부는 인터페이스(메서드)만 통해 접근 가능
- 모듈 독립성 향상
- 결합도 감소
상속(Inheritance)
- 상위(부모) 클래스의 속성과 연산을 하위(자식) 클래스가 물려받는 것
- 코드 재사용성 향상
- 개발 시간 단축
- 하위 클래스는 부모의 속성과 연산을 재정의 가능
다형성(Polymorphism)
- 동일한 메시지(함수 호출)에 대해 서로 다른 객체가 각기 다른 방법으로 응답하는 성질
- 같은 메시지에 다른 형태로 응답
연관성(Relationship)
- 두 개 이상의 객체들이 서로 연관되어 있는 관계
- is member of
- 연관화(Association)
- 서로 관련된 객체 간 일반적 관계
- 2개 이상의 객체가 상호 관련되어 있음
- 연관화(Association)
- is instance of
- 분류화(Classification)
- 객체가 특정 클래스에 속함
- 동일한 형의 특징을 갖는 객체들을 모아 구성
- 분류화(Classification)
- is part of
- 집단화(Aggregation)
- 구성요소로 포함되는 관계
- 관련 있는 객체들을 묶어 하나의 상위 객체를 구성
- 집단화(Aggregation)
- is a
- 일반화(Generalization)
- 공통적인 성질들로 추상화한 상위 객체를 구성
- 특수화/상세화(Specialization)
- 상위 객체를 구체화하여 하위 객체를 구성
- 일반화(Generalization)
'정보처리기사' 카테고리의 다른 글
| 정보처리기사 실기 - 모듈, 결합도, 응집도 정리 (0) | 2025.11.05 |
|---|---|
| 정보처리기사 실기 - 객체지향 분석 및 설계 정리(OOA, OMT, SOLID) (0) | 2025.11.05 |
| 정보처리기사 실기 - 아키텍처 패턴 종류·특징 정리 (0) | 2025.11.05 |
| 정보처리기사 실기 - 소프트웨어 아키텍처 설계 원리 & 품질 속성 정리 (0) | 2025.11.05 |
| 정보처리기사 실기 - 개발 환경 구성 요소 및 구축 절차 정리 (0) | 2025.11.04 |