절차지향(PP) vs 객체지향(OOP)

Ouroboros·2023년 9월 4일
0

개발상식

목록 보기
7/17


[프로그래밍 패러다임 더보기 😎]

0. 명령형 프로그래밍

  • 무엇(What)을 할 것인지 나타내기보다 어떻게(How) 수행할 명령을 순서대로 설명하는 방식
  • 컴퓨터가 수행할 명령들을 순서대로 써 놓은 것
  • 컴퓨터 프로그램은 아니지만 요리법이나 공정 점검표같은 것들이 명령형 프로그래밍과 비슷한 개념


1. 절차 지향(PP)

  • 위에서부터 아래로 순차적으로 진행되어서 프로그램을 유기적으로 연결하는 방식
  • 대표적 언어 : C, C++
  • 설계 방식 : 프로그램의 순서와 흐름을 먼저 세우고 필요한 자료구조와 함수를 설계
  • 장점
    • 컴퓨터 처리 구조와 유사해 속도가 빠르다
  • 단점
    • 실행 순서가 정해져 있어서 코드의 순서가 바뀌면 동일한 결과로 예측하기 힘듦

2. 객체 지향(OPP)

  • 작은 부품인 객체를 만들고 이렇게 만들어진 객체들을 결합하여 하나의 프로그램을 만드는 방식
  • 대표적 언어 : C++, JAVA, C#
  • 설계 방식 : 필요한 속성의 객체를 설계한 다음 흐름과 실행 순서를 조합
  • 장점
    • 개발하려는 것을 기능별로 묶어 모듈화를 함으로써 같은 기능을 중복으로 연산하지 않거나 모듈을 재활용하기 때문에 유지보수에 유리
    • 상속으로 기존 코드 재활용 가능
    • 데이터를 감추고 외부 세계와의 상호작용은 메소드를 통해서 이루어지는데, 이것을 라이브러리로 만들면 업그레이드가 쉬움
  • 단점
    • 절차 지향보다 느림
      ->어떤 하나의 기능을 가져오려고 해도 하나의 모듈을 가져와야하며, 메소드를 통해서만 접근할 수 있기 때문에 절차 지향 처럼 특정함수에 접근하기 어려움
    • 설계에 많은 시간이 소요


절차 지향은 순서와 흐름을 먼저 세우고, 그것을 중점적으로 하는 것이고 객체 지향은 데이터 모델링을 먼저 한 후 흐름을 설계해 나가는 것이다.
객체 지향이라고 해서 실행 순서를 무시하거나 흐름에 영향을 받지 않는 것이 아니다. 데이터 모델링과 진행시나리오 중 무엇을 더 먼저하느냐의 차이이다.
즉 객체란 표현대상을 모듈화 하여 도와주는 도구이고, 객체 지향은 객체를 먼저 생성하고 그 이후 플로우와 시나리오를 만드는 개발방법 중 하나일 뿐이다.

참고자료
: https://m.blog.naver.com/atalanta16/220249264429
: https://blackvill.tistory.com/221
: https://brownbears.tistory.com/407

0개의 댓글