728x90
목차
1. 객체지향 기술의 개념
2. 객체지향 기술의 구성요소
3. 객체지향 기술의 종류
1. 객체지향 기술의 개념
1-1. 소프트웨어 위기
* 소프트웨어 개발, 유지보수 비용이 지속적으로 증대
* 소프트웨어 관리적 측면이 강조
* 하드웨어 기술에 비해 소프트웨어 기술이 뒤떨어진다
* 사용자의 요구 변화가 많아지고 시장은 넓어지고 있다
* 업무의 전문성은 높아지지만 소프트웨어를 평가하는 기준이 없다
1-2. 객체지향 기술
1. 객체지향 기술의 특징
* 현실 세계의 개체들을 속성과 메소드가 결합된 형태의 객체로 표현
* 현실 세계에 존재하는 속성을 데이터화한 것을 데이터베이스라고 한다
* 속성에 대한 기능 및 동작을 메소드라고 한다
* 구현된 객체와 객체간의 통신을 통해 객체지향 프로그램이 구현된다
2. 객체의 정의
* 객체: 속성과 메소드로 구성된 클래스의 인스턴스를 의미한다
* 속성: 객체를 나타내는 자료구조, 상태 등을 의미한다
* 메소드: 속성에 대한 연산기능과 객체가 수행하는 행위를 의미
1-3. 객체지향 기술의 장단점
1. 장점
* 규모가 큰 대형 프로그램 개발을 객체를 이용하면 쉽게 프로그래밍 할수 있다
* 객체를 재사용하므로 확장성과 유지보수가 용이하며 개발속도가 빠르다
* 실제 세계와 유사한 구조의 프로그램을 개발할수 있다
2. 단점
* 객체의 규모가 큰 경우 실행속도가 느려질수 있다
* 객체를 이용하면 쉽지만, 객체 자체의 설계는 어렵다
2. 객체지향 기술의 구성요소
2-1. 클래스(Class)
* 객체의 타입을 정의하고 객체를 구현하는 틀
* 유사한 성격의 객체들의 공통된 특성을 표현한 데이터 추상화 단위
* 같은 문제를 해결하기 위한 속성과 메소드를 정의한것
* 기존 언어의 사용자 정의 자료형(구조체)와 함수의 개념을 발전시킨 것
2-2. 객체(Object)
* 클래스에 의해 구현된 대상들의 총칭으로, 현실세계의 개체와 같은 개념이다
* 객체마다 고유한 속성을 가지며 클래스에 정의된 메소드 수행이 가능하다
2-3. 인스턴스(Instance)
* 특정 클래스에서 구현된 객체로, 좁은 범위의 객체를 뜻한다
2-4. 메시지(Message)
* 객체들 사이를 상호작용하기 위한 인터페이스(메소드)를 뜻한다
* 객체들은 메시지를 통해 메소드 수행을 시작한다
3. 객체지향 기술의 종류
3-1. 캡슐화(Encapsulation)
1. 캡슐화
* 클래스의 정의 단계에서 문제해결에 관여하는 속성과 메소드를 하나로 묶는것을 말한다
2. 정보은닉(Information Hiding)
* 캡슐화의 가장 큰 목적으로, 클래스 내부속성과 메소드를 외부의 고려되지 않은 영향(Side Effect)으로부터 보호할수 있도로 설계하는 방법
3. 캡슐화의 장점
* 재사용이 용이 중복성이 최소화
* 인터페이스 단순 가독성 향상
* 정보은폐로 내부 데이터의 일관성이 유지
* 사이드 이펙트에 의한 오류의 파급효과 작음
3-2. 추상화(Abstract)
1. 추상화의 개념
* 클래스의 공통된 요소를 추출하여 상위(부모)클래스로 구현
* 하위(자식)클래스 구현을 위한 큰 틀을 제공하며 상세한 구현은 하위클래스에서 진행
* 현실세계를 자연스럽게 표현할수 있어 객체중심의 안정된 모델링이 가능해진다
* 복잡한 문제를 간략화하는 기법으로 분석의 초점이 명확
2. 추상화의 종류
* 기능 추상화: IPO 과정을 추상화
* 자료 추상화: 데이터와 데이터에 적용될 기능을 함께 추상화
* 제어 추상화: 외부 이벤트에 대한 반응을 추상화
3-3. 상속(Inheritance)
* 상위 클래스의 속성과 메소드를 하위 클래스에서 사용하도록 하는 기법
* 하위 클래스는 상위 클래스의 모든 요소를 재사용 또는 확장할수 있다
* 상위 클래스의 추상적인 요소를 하위 클래스가 구체화하여 사용
* 같은 수준의 상위클래스가 둘 이상인 경우를 다중상속이라 부른다
3-4. 다형성(Polymorphism)
* 상속된 여러 하위 객체들이 서로 다른 형태를 가질수 있는 성질
* 오버로딩, 오버라이딩 기술로 동일한 메소드명으로 서로 다른 작업을 할수 있다
- 오버로딩: 동일한 이름의 여러 메소드중, 매개변수로 전달되는 인수의 타입과 개수를 식별하여 적절한 메소드를 호출해주는 기능
- 오버라이딩: 상속받은 메소드의 내부기능을 새롭게 정의하는 기능
* 둘이상의 클래스에서 동일한 메시지에 대해 서로 다르게 반응할수 있도록 한다
참고자료 : 이기적 환상콤비 정보처리기사
728x90
'자격증 > 정보처리기사' 카테고리의 다른 글
Java 언어 (0) | 2022.07.10 |
---|---|
객체지향 개발 절차 (0) | 2022.07.10 |
C언어 자료구조와 포인터 (0) | 2022.07.07 |
C언어 선택 및 반복 제어문 (0) | 2022.07.06 |
C언어 특징 및 입출력 (0) | 2022.07.06 |