Skip to content

Latest commit

 

History

History
62 lines (39 loc) · 3.33 KB

File metadata and controls

62 lines (39 loc) · 3.33 KB

절차적 프로그래밍과 객체지향 프로그래밍의 차이점

절차지향 프로그래밍이란?

  • 절차적 프로그래밍이란 물이 위에서 아래로 흐르는 것처럼 순차적인 처리가 중요시되며 프로그램 전체가 유기적으로 연결되도록 만드는 프로그래밍 기법이다.
  • 절차적 프로그래밍은 '데이터를 중심으로 함수'를 만든다.
  • 대표적인 절차적 언어에는 C언어 가 있다.

객체지향 프로그래밍이란?

  • 객체지향 프로그래밍이란 실제 세계를 모델링하여 소프트웨어를 개발하는 방법이다.
  • 객체지향에서는 데이터와 메소드를 하나의 덩어리로 묶어서 생각한다.
  • 대표적인 객체지향 언어에는 Java, Python 등이 있다.

객체지향 언어와 절차적 언어의 구분

대표적으로 아래의 기준을 바탕으로 객체지향 언어와 절차적 언어를 구분한다.

  • 캡슐화, 다형성, 상속, 추상화를 지원하는가?
  • 데이터 접근 제한을 걸 수 있는가?

보통 위 기준을 만족하면 객체지향, 만족하지 않으면 절차적 성격이 강해진다.

절차적 프로그래밍 예시

image

절차적 프로그래밍과 같은 경우 말 그대로 절차적으로 코드를 구성한다. 쉽게 말하면 '흐름도(순서도)'로 코드를 구성한다.


객체지향 프로그래밍 예시

image

절차적 프로그래밍과 다르게 객체지향 프로그래밍은 고객이 할 수 있는 행위와 데이터들을 하나로 묶어 객체를 만들고, 자판기에서 할 수 있는 행위들과 데이터들을 묶어 자판기라는 하나의 객체를 만들어 묶는다.

장/단점

절차적 프로그래밍 장/단점

절차적 프로그래밍 장점

  1. 객체나 클래스를 만들 필요 없이 바로 프로그램을 코딩할 수 있다.
  2. 필요한 기능을 함수로 만들어 두기 때문에 같은 코드를 복사하지 않고 호출하여 사용할 수 있다.
  3. 프로그램의 흐름을 쉽게 추적할 수 있다.

절차적 프로그래밍 단점

  1. 각 코드가 매우 유기성이 높기 때문에 수정하기가 힘들다. (새로운 데이터나 기능을 추가하기가 어려움)
  2. 프로그램 전체에서 코드를 재사용 할 수가 없어 프로젝트 개발 비용과 시간이 늘어날 수 있다.
  3. 디버그(오류 검사)가 어렵다.

객체지향 프로그래밍 장/단점

객체지향 프로그래밍 장점

  1. 모듈화, 캡슐화로 인해 유지보수에 용이하다.
  2. 객체지향적이기 때문에 현실 세계와 유사성에 의해 코드를 이해하기 쉽게 만든다.
  3. 객체는 그 자체가 하나의 프로그램이기 때문에 다른 프로그램에서 재사용이 가능하다.

객체지향 프로그래밍 단점

  1. 대부분의 객체 지향 프로그램은 속도가 상대적으로 느려지고 많은 양의 메모리를 사용하는 경향이 있다.
  2. 현실 세계와 유사성에 의해 코드를 이해하기 쉽게 만드는 만큰 설계 과정에 시간이 많이 투자된다.