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