CS_정리 & 정보처리기사 💾
[CS_정리] 객체 지향프로그래밍 특징 & 장단점 _ 3
개발하는윤기사
2023. 1. 16. 12:59
728x90
반응형
저번 SOLID 객체 지향 설계 5원칙에 이어서 객체 지향프로그래밍의 특징과 장단점에 대해 정리해보려고 합니다.
깔끔 명료하게 정리해 드릴게요!
1. 추상화 :
- 객체에서 공통의 속성과 행위를 찾아서 타입을 정의하는 과정입니다.
- 추상화는 불필요한 정보는 숨기고 중요한 정보만을 표현함으로써 프로그램을 간단하게 만드는 것입니다.
- 예를 들면 "BMW"와 같은 다른 자동차 브랜드가 추가될 수도 있습니다. 이때 추상화로 "Car"를 구현해 놓으면 다른 곳의 코드를 수정할 필요 없이 추가로 만들 부분만 새로 생성해 주면 됩니다!
2. 캡슐화 :
- 데이터 구조와 데이터를 다루는 방법들을 결합시켜 묶는 것을 뜻합니다. (변수와 함수를 하나로 묶는 것을 뜻함)
- 낮은 결합도를 유지할 수 있도록 설계하는 것을 뜻합니다.
- 속성과 기능을 정의하는 변수와 메서드를 클래스라는 캡슐에 넣어서 분류하는 것으로 재사용이 원활하다는 장점이 있고 캡슐화를 통해서 정보은닉을 활용할 수도 있습니다! (접근제어자(Ex. private)의 활용)
3. 상속 :
- 클래스 속성과 행위를 하위 클래스에 물려주거나 하위 클래스가 상위 클래스의 속성과 행위를 물려받는 것을 뜻합니다.
- 새로운 클래스가 기존의 클래스의 데이터와 연산을 이용할 수 있게 하는 기능입니다.
장점 | 단점 |
- 재사용으로 인한 코드가 줄어든다. - 범용적인 사용이 가능하다. - 메서드의 자유로운 사용 및 추가 가능하다. |
- 상위 클래스의 변경이 어려워진다. - 불필요한 클래스가 증가할 수 있다. - 상속이 잘못 사용될 수 있다. |
4. 다형성 :
- 하나의 변수명, 함수명이 상황에 따라 다른 의미로 해석될 수 있는 것입니다.
- 어떠한 요소에 여러 개념을 넣어 놓는 것이라고 생각하시면 됩니다.
- 하나의 클래스 내부에 같은 이름의 행위를 여러 개 정의하거나 상위 클래스의 행위를 하위 클래스에서 재정의하여 사용할 수 있기 때문에 다형성이라는 특징을 갖게 됩니다.
💥 그렇다면 객체지향프로그래밍의 장점과 단점은 무엇일까요?
장점
- 클래스 단위로 모듈화 시켜서 개발하기 때문에 업무 분담이 편리하고 대규모 소프트웨어 개발에 적합하다.
- 클래스 단위로 수정이 가능하기 때문에 유지 보수가 편리하다.
- 클래스를 재사용하거나 상속을 통해 확장함으로써 코드 재사용이 용이하다.
단점
- 처리속도가 상대적으로 느리다.
- 객체의 수가 많아짐에 따라 용량이 커질 수 있다.
- 설계 시 많은 시간과 노력이 필요하게 될 수 있다.
참고
객체 지향 프로그래밍 (OOP::Object Oriented Programming)
🔍What is OOP? 객체 지향 프로그래밍이란 컴퓨터 프로그래밍의 패러다임 중 하나로 모든 것이 객체(object)로 이루어져있다는 원리를 기반으로 합니다. 즉, 프로그래밍에서 필요한 데이터를 모두
velog.io
객체지향 프로그래밍이란?
객체 지향 프로그래밍이란? 객체 지향 프로그래밍 (Object-Oriented Programming, OOP…
jongminfire.dev
728x90
반응형