객체 지향 프로그래밍 OOP 특징

Yeju Ham
3 min readJul 12, 2021

--

객체지향 프로그래밍(Object-Oriented Programming)이란 실체가 있는 모든 물체를 클래스와 인스턴스, 함수, 변수라는 객체로 변화시켜 프로그램을 구성하는 것이다. 특정 객체를 컴퓨터라는 도구에 인식시키고 객체들 간의 상호작용을 통해서 로직을 구성하는 것을 의미한다.

예를 들어 아래, 대화창을 보면 <프로필 사진, 이름, 대화 말풍선, 시간표시>등 여러가지의 객체가 한 화면에 모여서 대화창 프로그램을 구성했다고 볼 수 있다.

대화/배경/시간 등의 실체를 각각의 함수, 인스턴스, 변수 등을 거쳐서 대화창을 구성한다고 볼 수 있다.

oop의 목적과 필요성

그렇다면 왜 OOP를 사용하는 것일까? 간단히 말하자면 이전의 방법보다 더 효율적이고 간단하기 때문이다. 이전의 프로그래밍 방법은 절차형으로 각 순서에 따라서 코드를 짜고, 그 과정에서 변수를 많이 생성하고 활용해 최대한 많은 기능을 적은양의 소스코드에 담아야 했다. 그렇기 때문에 기능이 증가할 때마다 배열과 함수를 계속해서 생성해야 했다. 이런 비효율을 완화하기 위해 속성과 기능을 object이라는 최소단위로 분리하는 oop개념이 나왔다.

OOP의 가장 중요한 점 중 하나는 기능, 속성별로 나눠 만든 object를 효율적으로 재사용 할 수 있도록 설계되어야 한다는 것이다. 그래야 후에 기본기능에 +알파를 할 수 있는 oop의 장점을 살릴 수 있을 뿐 아니라 타인과의 협업 과정에서 원활하게 유지보수 할 수 있기 때문이다.

OOP의 장점과 단점

장점:

  1. 코드 재사용이 용이한다.

앞에서 언급한 것처럼 각 기능, 속성별로 분리해서 프로그래밍을 완료했기 때문에 내가 짠 코드가 아니라고 하더라도 사용할 수 있고, 상속/포함을 사용해서 코드를 확장할 수 있다.

2. 유지보수가 쉽다.

보통 3번이상 반복되는 코드라면 함수로 만들어버린다고 한다. 예를 들어, 50세 이상인 사람들에게만 코로나 무료 키트를 제공하는 코드를 짠다고 하면, if a>50: 라고 할 수 있다. 그런데 코로나가 심각해져서 전 국민을 대상으로 한다고 하면 저 if문을 없애야 할 것이다. 그런데 무분별하게 같은 if문에 여러군데에 있다면 일일히 다 찾아내는 것도 일일 것이다. 객체지향 프로그래밍에서는 수정해야 할 부분이 클래수 내부에 메소드나 변수로 있기 때문에 유지보수하기가 쉽다.

3. 대형프로젝트에 적합

위에 적은 것처럼 협업을 해야 하는 상황에 클래스단위로 모듈화시켜서 분담할 수 있다.

단점

  1. 객체가 많으면 용량이 커지고, 속도가 저하될 수 있다.

2. 설계하기까지 많은 생각과 노력이 요구된다.

--

--

Yeju Ham

learner, writer, traveler, data science beginner with the whole passion