CS

[프로그래밍] 절차지향과 객체지향 프로그래밍이란

juhwan 2023. 9. 29. 15:59

절차지향 프로그래밍은 물이 위에서 아래로 흐르는 것처럼 순차적인 처리를 중요시 하는 프로그래밍 기법이다.

절차지향 프로그래밍(Procedural Programming)

프로그램을 일련의 절차나 순서로 보는 방식
데이터와 그 데이터를 조작하는 함수를 별도로 생각하며 C 언어가 대표적인 절차지향 언어이다.

장점

  1. 코드의 흐름을 쉽게 이해할 수 있고, 작성이 간단하다
  2. 컴퓨터의 처리구조와 유사해 실행속도가 빠르다.

단점

  1. 데이터와 함수가 분리되어 있기 때문에 대규모 프로그램애서 코드 관리가 어려울 수 있다.

객체지향 프로그래밍(Object-Oriented Programming)

실세계의 사물을 객체라는 개념으로 추상화하고, 이러한 객체들이 상호작용하는 것으로 프로그램을 구성하는 방식이다. 객체는 상태(속성)와 행동(메소드)를 가진다 Java, Python, C++ 등 많은 현대 언어들이 객체지향 패러다임을 지원한다.

장점

  1. 실세계 문제를 직관적으로 모델링할 수 있으며, 재사용성과 확장성이 좋다
  2. 캡슐화, 상속, 다형성 등의 개념을 통해 유연하고 안정적인 소프트웨어 설계가 가능하다

단점

  1. 설계 과정에서 고려해야 할 요소가 많으며 학습 곡선이 다소 가파르다
  2. 실행 시간과 메모리 사용량이 절차지향에 비해 크게 될 수 있다.
  3. 절차지향 언어보다 실행속도가 느리다.