객체 지향 프로그래밍

김민섭·2022년 12월 14일
0

객체 지향이란?

우선 객체지향을 구글에 검색해보면 이렇게 결과가 나온다.

우리가 실생활에서 쓰는 모든 것을 객체라 하며, 객체 지향 프로그래밍은 프로그램 구현에 필요한 객체를 파악하고 각각의 객체들의 역할이 무엇인지를 정의하여 객체들 간의 상호작용을 통해 프로그램을 만드는 것을 말한다

......?

솔직히 말해서 잘 이해가 안되었다.
그래서 내가 알고 있는 내용과 여기저기 블로그를 뒤져보며 알아낸 것을 종합하여 이렇게 정리해 보았다.

객체지향

필요한 데이터를 추상화 시켜 객체를 만들고, 객체들간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법

즉, 데이터를 추상화, 추상화된 객체들관의 관계로 프로그램을 구성하는 것이다.

객체 지향의 특성

  • 추상화
    1. 공통된 속성을 추출하는 것
    2. 공통된 속성을 찾아 정의하는 것
    3. 불필요한 정보는 숨기고 중요한 정보만을 나타내는 것

  • 캡슐화
    1. 클래스라는 캡슐에 넣어서 재사용성과 정보은닉의 효과를 얻는 것
    2. 변수와 함수를 하나로 묶어 낮은 결합도를 유지할 수 있도록 설계하는 것

  • 상속
    1. 클래스의 속성을 하위 클래스가 물려받는 것
    2. 새 클래스가 기존의 클래스의 기능을 이용할 수 있다

  • 다향성
    1. 하나의 변수, 함수명이 상황에 따라 다른 의미로 해석 될 수 있는 것

객체 지향의 장점과 단점

  • 장점
    1. 클래스 단위로 모듈화를 시키기 때문에 업무 분담이 편리하여 대규모 개발에 용이하다
    2. 클래스 단위로 수정이 가능하기 때문에 유지 보수가 간편하다
    3. 클래스를 재사용하거나 상속을 통해 코드의 확장 및 재사용에 용이하다

  • 단점
    1. 처리속도가 상대적으로 느리다
    2. 객체의 수가 많아질수록 용량이 커질 수 있다

객체 지향 VS 절차 지향

객체지향과 절차지향의 장단점이 겹치다 보니 서로 반대되는 개념이라고 알고 있는 분들이 종종 있는데 사실 객체 지향과 절차 지향은 반대되는 개념이 아니다.

절차지향은 순차적으로 실행하는 것에 초점이 맞춰져 있고, 객체지향은 관계 및 조직에 초점이 맞춰져 있다.

즉, 절차 지향이라고 해서 객체를 다루지 않는 것이 아니고, 객체 지향이라고 해서 절차가 없는 것도 아니다

profile
getting ready to run

0개의 댓글