공부/기본 개념 공부

절차 지향, 객체 지향 차이

냥냥냥냥냥냥 2022. 3. 6. 21:57

객체 지향 개발 언어 책(JAVA, Kotlin 등등)을 보면, 흔히들 절차 지향(procedural programming), 객체 지향(Object-Oriented Programming, OOP) 두 개를 많이 비교, 대조를 한다

 

일단 결론부터 얘기를 하자면, 절차 지향 프로그래밍과 객체 지향 프로그래밍의 의미는 반대 의미가 아니다

절차 지향이란 데이터 중심 기반 프로그래밍, 객체 지향은 객체 중심 기반 프로그래밍이라는 차이가 있다

 

절차 지향 프로그래밍이란 말 그대로, 프로그램을 절차에 맞게 순차적으로 진행하는 언어 개발 형태를 말한다

(대표적인 언어로는 C언어 등이 있다.)

즉, 프로그램을 유기적으로 또 순차적으로 하나 하나 순서대로 진행하는 방식을 일컫는다 

자동차를 만드는 경우를 예시로 많이 들던데, 자동차를 생각해보면 핸들, 엔진, 바퀴 등 절차적인 순서대로 개발을 하는 방식이다 

기능이 순차적으로 되어 있긴 하지만 너무 다양하게 있으니 디버깅이 어렵고,

순차적인 한 부분의 수정을 위해서는 코드의 많은 부분을 수정해야하는 단점이 있다.

다만, 성능적인 고려를 했을 때는 빠를 수 있기 때문에 크지 않은 시스템 개발의 경우에는 유용할 수도 있다

 

 

객체 지향 프로그래밍이란, 객체라는 개념을 통해 진행하는 언어 개발 형태를 말한다

(대표적인 언어로는 C++, JAVA 언어 등이 있다)

절차 지향에서와 같이 마찬가지로, 자동차를 예시로 들어보면 먼저 크게 자동차라는 객체가 존재할 수 있다(이것이 핵심이다)

자동차 안에는 또 핸들, 엔진, 바퀴라는 특성들이 있고 이들을 모듈화 할 수 있다 

절차지향에서는 하나의 수정을 위해 많은 코드 수정이 필요할 수 있으나, 객체 지향에서는 객체 내의 부분만 고치면 되기 때문에 유지보수가 용이 하다

(객체 지향 언어의 대표적인 특성으로는 캡슐화, 상속, 다형성, 추상화 들이 있는데 이는 다음 챕터에서 자세히 공부해보자)

 

'공부 > 기본 개념 공부' 카테고리의 다른 글

Overriding과 Overloading 차이점  (0) 2022.03.04