ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 절차적 프로그래밍과 객체지향 프로그래밍의 차이점
    프로그래밍 2025. 2. 10. 22:45

    1. 프로그래밍 패러다임의 기본 개념: 절차적 vs. 객체지향

    프로그래밍 언어는 특정한 패러다임을 따르며, 이 중 가장 널리 사용되는 두 가지 방식이 절차적 프로그래밍(Procedural Programming)객체지향 프로그래밍(Object-Oriented Programming, OOP) 이다. 절차적 프로그래밍은 프로그램을 단계별로 실행되는 절차(Procedure) 의 집합으로 구성하며, 대표적인 언어로 C, Pascal, Fortran 등이 있다. 반면, 객체지향 프로그래밍은 프로그램을 객체(Object) 라는 독립적인 단위로 구성하여 재사용성과 유지보수를 용이하게 한다. 객체지향 언어에는 Java, Python, C++ 등이 있으며, 이 방식은 현실 세계의 개념을 코드로 표현하는 데 유리하다.

    2. 데이터와 함수의 관계: 절차적은 분리, 객체지향은 통합

    절차적 프로그래밍에서는 데이터를 저장하는 변수와 이를 처리하는 함수가 분리 되어 있다. 예를 들어, C 언어에서 구조체를 정의하고, 해당 구조체의 데이터를 조작하는 함수들을 별도로 작성하는 것이 일반적이다. 반면 객체지향 프로그래밍에서는 데이터(속성)와 데이터를 처리하는 함수(메서드)가 하나의 객체 안에 캡슐화(encapsulation)되어 있다. 이를 통해 데이터 보호와 재사용성이 강화되며, 특정 객체의 상태를 변경할 수 있는 메서드만 제공함으로써 코드의 안정성이 높아진다.

     

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

     

    3. 코드의 구조와 재사용성: 절차적은 순차적, 객체지향은 모듈화

    절차적 프로그래밍은 프로그램의 흐름을 순차적으로(top-down) 진행하며, 함수 호출을 통해 코드의 중복을 최소화한다. 하지만 코드의 양이 많아질수록 유지보수가 어려워지고, 다른 프로젝트에서 재사용하기가 어렵다는 단점이 있다. 반면, 객체지향 프로그래밍에서는 클래스(Class) 를 기반으로 프로그램을 구조화하며, 이를 통해 코드의 재사용성확장성 이 뛰어나게 된다. 예를 들어, 동일한 기능을 수행하는 여러 객체를 만들 때, 기존의 클래스를 재사용하여 새로운 기능을 추가할 수 있어 코드 중복을 방지할 수 있다.

    4. 확장성과 유지보수: 절차적은 수정이 어렵고, 객체지향은 용이

    소프트웨어 개발에서는 시간이 지나면서 프로그램을 확장(Scalability) 하거나 유지보수(Maintenance)해야 하는 경우가 많다. 절차적 프로그래밍에서는 새로운 기능을 추가할 때 기존의 함수들을 수정해야 하므로 코드가 복잡해지고, 유지보수가 어렵다. 반면, 객체지향 프로그래밍은 상속(Inheritance)과 다형성(Polymorphism)과 같은 개념을 활용하여 기존 코드를 변경하지 않고도 기능을 확장할 수 있다. 예를 들어, 기존의 Animal 클래스를 상속받아 Dog, Cat 클래스를 정의하면, 기존 코드를 수정하지 않고도 동물의 새로운 속성을 추가할 수 있다.

    5. 현실 세계와의 연관성: 객체지향이 더 직관적이다

    객체지향 프로그래밍의 가장 큰 장점 중 하나는 현실 세계의 개념을 코드로 직관적으로 모델링 할 수 있다는 점이다. 예를 들어, 은행 시스템을 개발할 때, 고객, 계좌, 거래 등을 객체로 정의하면, 개발자가 실제 비즈니스 개념을 보다 쉽게 이해하고 구현할 수 있다. 반면, 절차적 프로그래밍에서는 이러한 개념을 함수와 데이터 구조로 분리하여 구현해야 하므로, 현실 세계를 반영하는 데 어려움이 있을 수 있다.

    결론

    절차적 프로그래밍과 객체지향 프로그래밍은 각각의 장단점을 가지며, 특정한 상황에서 더 적합한 방식이 존재한다. 절차적 프로그래밍은 실행 흐름이 단순한 프로그램에 적합하고, 객체지향 프로그래밍은 대규모 프로젝트에서 코드의 재사용성과 유지보수를 극대화하는 데 강점을 가진다. 따라서 개발자는 문제의 특성과 요구사항에 따라 적절한 패러다임을 선택 해야 하며, 두 가지 접근 방식을 모두 이해하고 활용하는 것이 중요하다.

Designed by Tistory.