[c언어] 객체 지향 프로그래밍과 절차 지향 프로그래밍의 차이

프로그래밍은 객체 지향절차 지향 두 가지 주요 패러다임으로 나뉜다. 이 두 패러다임은 코드를 구조화하는 방식과 코드 재사용을 다루는 방식에서 차이가 있다.

절차 지향 프로그래밍

절차 지향 프로그래밍은 일련의 연속적인 단계로 이루어진다. 예를 들어, 데이터를 입력받아 처리한 후 출력하는 과정을 단계별로 처리한다. 주로 C파스칼(Pascal)과 같은 언어에서 사용된다.

int sum(int a, int b) {
    return a + b;
}

int main() {
    int num1 = 5;
    int num2 = 10;
    int result = sum(num1, num2);
    printf("%d", result);
    return 0;
}

객체 지향 프로그래밍

객체 지향 프로그래밍은 데이터와 해당 데이터를 처리하는 기능을 하나로 묶어서 다룬다. 객체는 데이터와 해당 데이터를 처리하는 메서드로 구성된다. Java, C++, Python과 같은 많은 언어에서 사용된다.

class Calculator {
public:
    int sum(int a, int b) {
        return a + b;
    }
};

int main() {
    Calculator calc;
    int result = calc.sum(5, 10);
    cout << result;
    return 0;
}

결론

두 패러다임은 코드의 구조와 재사용성 측면에서 차이가 있다. 절차 지향은 단계별 처리를 중심으로 하고, 객체 지향은 데이터와 해당 데이터를 처리하는 기능을 묶어서 다룬다. 선택은 사용하려는 언어와 프로젝트의 요구사항에 따라 달라진다.

참고문헌:

  1. https://en.wikipedia.org/wiki/Procedural_programming
  2. https://en.wikipedia.org/wiki/Object-oriented_programming