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
반응형