개발기초

OOP 객체 지향 프로그래밍이란? [핵심간단정리]

Veams 2023. 2. 20.

객체지향 프로그래밍 (object-oriented programming, OOP)

PHP, 파이썬, 자바스크립트, 자바, C#, C++, 루비, 스위프트 등의 프로그래밍 언어는 객체 지향 패러다임에 기반에하여 만들어졌다.

 

객체지향 프로그래밍은 객체(object)라는 개념을 중심으로 프로그래밍을 한다는 의미로, 소프트웨어 프로그램 동작의 주체가 객체인 것을 뜻한다.

 

객체는 '실제로 존재하는 사물'로, 다소 추상적이긴 하지만 세상에 존재하는 모든 대상을 의미한다. 이러한 대상은 구체적인 사물, 사람, 어떤 개념이 될 수 있다.

 

객체지향 프로그램에 대비한 패러다임으로 '절차' 지향 프로그래밍(Procedural Oriented Programming, POP)이 있다.

기존의 이 절차지향 언어는 유지보수의 어려움과 엄격한 순서 설정으로 인해 비효율적인 문제가 있었다. 이러한 문제를 보완하기 위해 만들어진 패러다임이 OOP이다.

 

OOP는 소프트웨어의 핵심을 기능이 아닌 객체로 삼으면서 '어떤 객체어떤 역할과 기능을 담당 것인가?'를 규정하는데 초점을 맞춘다. 이를 통해 연관된 데이터와 연관된 처리를 분류하여 그룹화한다.

 

복잡한 시스템을 객체 단위로 분해 및 구성하여, 각 객체간에 서로 메시지를 주고 받으며(상호작용) 어떤 필요한 기능을 수행하도록 개발한다.

 

출처 : https://iamjaeeuncho.com/pop_oop_programming/

객체지향 프로그래밍 OOP의 장점

절차지향 언어에 대비하여 다음과 같은 특성이 있다. 

1) 자연스럽다. 객체에 따라 기능을 구분하는 것은 실제 세상과 많이 닮아있기 때문이다. 

2) 재사용성이 증대한다. 한 클래스(일종의 객체를 만드는 틀)에서 다른 클래스로 '상속'이 가능하기 때문이다. 이 과정에서 코드 중복을 막을 수 있다.

3) 생산성이 증가한다. 독립적인 객체를 사용하기 때문이다. 업무 분담으로 협업에 용이하며 대형 프로젝트에도 적합하다고 할 수 있다.

4) 유지 및 보수가 용이해졌다. 캡슐화로 프로그램을 추가 및 수정, 삭제하는데 효과적이다.

 

객체지향 프로그래밍 OOP의 단점

1) 개발 속도가 느리다. 어떤 객체가 어떤 역할을 담당하며 어떤 처리를 할 것인지에 대해 파악하는 과정에 시간이 많이 소요된다.

2) 실행 속도가 느리다.

3) 언어의 난이도가 높다.

댓글