728x90
반응형
1. 객체 지향
- 정의: 현실 세계의 개체(Entity)를 기계의 부품처럼 하나의객체(Object)로 만들어, 소프트웨어 개발 시 객체들을 조립하여 개발하는 기법.
- 배경: 구조적 기법의 문제점(재사용 및 유지보수 어려움)으로 인해 발생한 소프트웨어 위기를 해결하기 위해 사용.
- 장점:
- 소프트웨어 재사용 및 확장 용이
- 고품질 소프트웨어의 빠른 개발 가능
- 유지보수가 쉬움
- 복잡한 구조를 단계적, 계층적으로 표현 가능
- 멀티미디어 데이터 및 병렬 처리 지원
2. 객체
- 정의
: 데이터와 이를 처리하기 위한 함수를 묶어 놓은 소프트웨어 모듈.
객체는 현실 세계의 사물을 컴퓨터 프로그램으로 모델링한 것. - 구성 요소:
- 데이터: 객체가 가진 정보로 속성, 상태, 분류 등을 의미. 속성(attribute), 상태, 변수, 상수, 자료 구조라고도 함.
- 함수: 객체가 수행하는 기능으로 객체가 갖는 데이터를 처리하는 알고리즘. 메소드(Method), 서비스(Service), 동작(Operation), 연산이라고도 함.
- 특성:
- 객체는 독립적으로 식별 가능한 이름을 가짐.
- 객체의 상태(State : 객체가 가질 수 있는 조건)는 시간에 따라 변할 수 있음.
- 객체와 객체는 상호 연관성에 의한 관계가 형성됨.
- 객체가 반응할 수 있는 메시지(Message)의 집합을 행위라고 하며, 객체는 행위의 특징을 나타냄.
- 객체는 일정한 기억장소를 가짐.
- 비유: 자동차는 하나의 객체입니다. 자동차는 색상, 속도 등의 속성(데이터)을 가지고 있으며, 가속, 감속 등의 행동(함수)을 수행할 수 있습니다.
3. 클래스
- 정의: 공통된 속성과 연산(행위)을 갖는 객체의 집합.
- 특징:
- 클래스에 속한 각각의 객체를 인스턴스(Instance)라 하며, 클래스로부터 새로운 객체를 생성하는 것을 인스턴스화(Instantiation)라고 함.
- 동일 클래스에 속한 객체들은 공통된 속성과 행위를 가짐.
- 최상위 클래스는 상위 클래스를 갖지 않음.
- 슈퍼 클래스(Super Class): 특정 클래스의 상위(부모) 클래스.
- 서브 클래스(Sub Class): 특정 클래스의 하위(자식) 클래스.
- 클래스 비유: 자동차 제조 공장에서 사용하는 자동차 설계도. 이 설계도에는 자동차의 색상, 모델, 엔진 유형 등의 속성뿐만 아니라 가속, 감속, 주유와 같은 기능이 정의되어 있습니다. 클래스는 이 설계도와 같습니다.
- 인스턴스(Instance) 비유: 공장에서 만들어진 실제 자동차. 이 자동차는 설계도(클래스)에 따라 만들어졌지만, 각각은 독립적인 실체입니다.
4. 메시지
- 정의
: 객체들 간의 통신 수단으로, 객체의 행위를 표현하고 상호작용에 사용됨.
메시지는 객체가 다른 객체와 상호작용하는 방법으로 객체는 메시지를 보내서 다른 객체의 메서드를 호출함. - 비유: 운전자가 자동차에게 가속 페달을 밟으라고 명령하는 것. 이는 자동차에게 가속하라는 메시지를 보내는 것과 같습니다.
5. 캡슐화
- 정의: 데이터(속성)와 데이터를 처리하는 함수를 하나로 묶는 것.
- 특징:
- 캡슐화된 객체는 인터페이스를 제외한 세부 내용이 은폐(정보은닉)되어 외부 접근이 제한됨.
- 외부 모듈의 변경으로 인한 파급 효과가 적음.
- 캡슐화된 객체들은 재사용이 용이함.
- 객체들 간 메시지를 주고받을 때 상대 객체의 세부정보를 알 필요가 없으므로 인터페이스가 단순해지고 결합도가 낮아짐.
- 비유: 운전자가 자동차의 엔진 내부 구조를 알 필요 없이, 가속 페달을 밟아서 속도를 높이는 것을 생각해보세요. 운전자는 가속 페달이라는 인터페이스를 통해 자동차의 속도를 조절할 수 있지만, 엔진 내부의 복잡한 동작은 숨겨져 있습니다.
728x90
반응형
'코딩일기 > 자격증' 카테고리의 다른 글
정보처리기사 소프트웨어 설계 : 객체지향(Object Oriented)의 특징 (0) | 2024.06.28 |
---|---|
정보처리기사 소프트웨어 설계 : UI 설계 지침 (0) | 2024.06.27 |
정보처리기사 소프트웨어 설계 : 미들웨어 (Middleware) (0) | 2024.06.26 |
정보처리기사 소프트웨어 설계 : 요구사항의 유형 (기능 요구사항과 비기능 요구사항) (0) | 2024.06.26 |
비트 연산자 NOT과 2의 보수 (0) | 2024.06.26 |