YYYEJI

[DS] 객체지향(OOP) vs 절차지향(PP) 본문

Data structure

[DS] 객체지향(OOP) vs 절차지향(PP)

YEJI ⍢ 2022. 12. 28. 02:53
728x90

절차지향(Precedural Programming)


절차지향이란 개체를 순차적 처리가 중요하며, 프로그램 전체가 유기적으로 연결되어 있는 프로그래밍 방법입니다.

 


절차지향의 장점

 

① 컴퓨터의 처리구조와 유사하다는 점

② 실행 속도가 빠르다는 것

 

 


절차지향의 단점

 

① 유지보수가 어렵다는 점

- 프로그램의 한 부분이 고장나면 시스템 전체가 고장난다는 의미입니다.

- 즉, 한 부분이 고장나면 프로그램의 전체를 수리해야 됩니다.

- 디버깅(프로그램의 문제를 찾아내서 고치는 과정)이 어렵습니다.

 

② 엄격하게 순서가 정해져 있어 비효율적이라는 점

- 실행 순서가 정해져 있어서 코드의 순서가 바뀌면 결과가 바뀔 확률이 높습니다.

- 언어의 융통성이 부족하여 생산 효율이 낮습니다.

 

 


절차지향 언어

C 언어 등

 

객체지향(Object-Oriented Language)


객체란 추상적인 무언가인데, 사물이 될 수도 있고 사람이 될 수도 있습니다.

컴퓨터를 예를 들면 컴퓨터에 쓰이는 모든 부품(모니터, 키보드, 스피커 등)들이 객체입니다.

컴퓨터가 제공하는 모든 기능(화면 켜짐, 소리가 남 등)들은 객체의 행동이라고 할 수 있습니다.

 

 

객체지향은 여러 객체를 만들고 객체의 행동을 정의해서 이를 상호작용 하도록 만드는 프로그래밍 언어입니다.

 

 


객체지향의 장점

① 재사용성

'상속(inheritance)'가 가능하기 때문에 코드 재사용이 편리합니다.

 

② 생산성 증가

독립된 객체로 이루어져 있기 때문에 생산적으로 작업할 수 있습니다.

 

③ 유지 및 보수 용이

 

 


객체지향의 단점

① 느린 개발 속도

모든 객체의 역할과 기능을 이해하는 시간이 필요합니다.

 

② 느린 실행 속도

절차지향언어보다 실행 속도가 느립니다.

 

③ 높은 난이도

 

 


객체지향언어

C++

Java

Python

 

 

 

 ◡̈

 

'Data structure' 카테고리의 다른 글

[DS] 연결 리스트(Linked List)란?  (2) 2022.12.29
[DS] 큐(Queue)란?  (0) 2022.12.29
[DS] Stack 응용 (infix, prefix, postfix)  (0) 2022.12.28
[DS] 스택(Stack)이란?  (0) 2022.12.28
[DS] 데이터 구조(Data Structures)란?  (0) 2022.12.28