Skip to content

절차 지향 #
Find similar titles

Structured data

Category
Programming

절차 지향(Procedural oriented) 프로그래밍 이란? #

물이 위에서 아래로 흐르는 것처럼 순차적인 처리가 중요시 되며 프로그램 전체가 유기적으로 연결되도록 만드는 프로그래밍 기법이다. 절차 지향 프로그래밍은 컴퓨터 작업 처리 방식과 유사하기 때문에 객체 지향 언어를 사용하는 것에 비해 더 빨리 처리되어 시간적으로 유리하다는 인식이 일반적이지만, 소프트웨어 언어 발달과 컴파일러의 발달로 하드웨어가 소프트웨어의 발달을 따라가지 못하는 상황으로 변하고 있다.

포트란, 베이직 , C 언어 등이 대표적인 절차 지향 프로그래밍 언어에 속한다.

Image

절차지향 언어 C(출처)

절차 지향 프로그래밍의 특징 #

  1. Top-Down 방식으로 설계된다.
  2. 비교적 작은 규모의 작업을 수행하는 함수(function)를 생성한다.
  3. 인수(parameter)와 반환값(value)으로 명령을 전달하고 수행한다.
  4. 객체 지향 프로그래밍과의 가장 큰 차이점으로 데이터와 함수를 별개로 취급한다.
  5. 특정 기능을 수행하려면 그 일을 해주는 메소드를 직접 호출해야 한다. (vs 객체 지향 프로그래밍 에선 특정 기능을 수행하는 메소드를 가진 객체를 만들어서, 그 인스턴스를 이용해 메소드를 호출한다.)

도형 그리기 예제 #

  1. 기능 위주 프로그래밍 도형 그리기 함수
    • void drawLine(Position, Color);
    • void drawCircle(Position, Color);
    • void drawRectangle(Position, Color);
    • 위에 정의된 함수에 위치와 색상 인수를 전달해 원하는 도형 그리기를 실행
  2. 객체 지향 프로그래밍에서의 객체 선언
    • "Shape" 인터페이스(interface) 선언
      • 속성 : Position, Color, Width, Style ...
      • 메소드 : draw(); move(); ...
    • "Shape" 인터페이스를 상속받은 "Line", "Circle", "Rectangle" 클래스 구현
    • 객체화된 인스턴스의 draw() 메소드를 호출해 각 인스턴스의 도형 그리기를 수행

절차 지향 프로그래밍의 단점 #

  1. 유지보수가 어렵다.
  2. 정해진 순서대로 입력을 해야되므로 순서가 바뀌면 결과값을 도출하기 어렵다.
  3. 프로그램을 분석하기 어렵다.
  4. 대형 프로젝트에는 부적합하다.

객체지향과 절차지향의 차이점 #

객체지향 프로그래밍과 절차지향 프로그래밍이 일부 대조적인 특징을 가지고 있기 때문에 많은 사람들이 객체지향의 반대개념은 절차지향이라고 오해하고 있다. 위에서 설명한 바와 같이 절차지향은 데이터를 중심으로 순차적 실행에 초점을 맞추고 코드를 작성한다. 그렇다고 객체지향은 순차적으로 실행되는 것이 아니라고할 수 없다. 객체지향 프로그래밍도 절차지향 프로그래밍과 같이 절차적으로 실행되나 객체간의 관계에 초점을 두고 코드를 작성한다. 아래 그림을 보변 절차지향 프로그래밍은 데이터를 중심으로 함수를 구현한다. 돈을 지불하는 절차, 계산하는 절차, 제품을 받는 절차를 중점으로 함수가 구성되었다. 반면 객체지향 프로그래밍에서는 프로세스의 주요 행위자인 고객과 자판기를 객체로 설정하고 돈과 제품에 대한 관계에 따라 함수를 작성한다. 절차라는 단어 때문에 단순히 절차지향 프로그래밍이 순차적으로 진행되는 것은 아니라는 점을 유의해야한다. 각각의 프로그래밍 방식이 순서를 중요시하는지, 객체를 중요하는지에 따라 구분한다고 생각하면 개념을 이해하는데 도움이 될 것 같다.

Image

절차지향과 객체지향 (출처)

Incoming Links #

Related Articles #

0.0.1_20140628_0