1. 객체 지향 프로그래밍(OOP)
주어진 문제영역을 실세계 안에 존재하는 객체의 집합으로 보고, 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체로 만들어 객체들간의 상호작용을 통해 로직을 구성하는 프로그래밍
2. 객체 지향 설계
- 객체와 클래스 : 객체는 독립적으로 존재하는 실세계의 사물, 클래스는 유사한 객체들의 모임으로 각 객체는 특정 속성의 모임에 의해 기술됨. 객체를 묶는 작업을 분류화라고 함
- 캡슐화 : 정보 은닉을 통한 추상화, 독립성 향상을 얻을 수 있는 방법, 속성과 오퍼레이션을 함께 묶어 보호함. 모듈의 기능적 독립성은 단위 모듈의 처리 완전성을 높이고 타 모듈과의 처리 종속성을 최소화할 때 극대화됨
- 상속 : 클래스의 정의를 단순화, 기존에 정의되어 있는 클래스를 이용하여 새로운 클래스를 쉽게 정의할 수 있도록 함
- 다형성 :동일한 이름의 오퍼레이션이라도 클래스에 따라 다르게 동작하는 것, 상위 클래스를 통하여 하위 클래스의 메소드를 호출할 수 있도록 하는 개념. 오버라이딩과 오버로딩이 있음
3. 장점과 단점
장점
- 클래스 단위로 모듈화 시켜 개발하기 때문에 업무 분담이 편리하고 대규모 소프트웨어 개발에 적합
- 클래스 단위로 수정이 가능하기 때문에 유지 보수가 편리
- 클래스를 재사용하거나 상속을 통해 확장함으로써 코드 재사용이 용이
단점
- 처리속도가 상대적으로 느림
- 객체의 수가 많아짐에 따라 용량이 커짐
- 설계시 많은 시간과 노력이 필요
'CS' 카테고리의 다른 글
[CS / 자료구조] 자료구조 정리 (0) | 2024.03.19 |
---|---|
[CS / 자료구조] List (0) | 2024.02.15 |
[CS / SW] 애자일 방법론 (0) | 2023.10.24 |
[CS / SW] TDD (Test Driven Development) (0) | 2023.10.19 |
[CS / SW] 클린코딩 & 리팩토링 & 시큐어코딩 (0) | 2023.10.19 |