kungfugay
2025. 1. 3. 15:53
2025. 1. 3. 15:53
1. 개념적 접근
- 절차 지향 프로그래밍: 프로그램을 일련의 절차나 함수로 구성합니다. 데이터와 기능이 분리되어 있으며, 주로 함수 호출을 통해 흐름을 제어합니다. 예를 들어, C 언어가 대표적입니다.
- 객체 지향 프로그래밍: 데이터를 객체로 묶어 다루며, 객체는 데이터와 해당 데이터에 대한 메서드를 포함합니다. 따라서 데이터와 기능이 밀접하게 결합되어 있습니다. Java, C++, Python 등이 이에 해당합니다.
2. 모듈화
- 절차 지향 프로그래밍: 모듈화는 함수 단위로 이루어지며, 각 함수가 독립적으로 동작합니다. 데이터는 여러 함수에 의해 접근되고 수정될 수 있습니다.
- 객체 지향 프로그래밍: 모듈화는 객체 단위로 이루어지며, 객체는 자신의 상태(데이터)를 보호하고, 외부에서 직접 접근할 수 없도록 캡슐화합니다. 이를 통해 데이터의 무결성을 유지할 수 있습니다.
3. 상속과 다형성
- 절차 지향 프로그래밍: 상속 개념이 없거나 제한적이며, 함수의 재사용은 주로 복사 및 수정에 의존합니다.
- 객체 지향 프로그래밍: 상속을 통해 기존 클래스를 확장할 수 있으며, 다형성을 통해 같은 메서드가 서로 다른 형태로 동작할 수 있습니다. 이를 통해 코드의 재사용성과 유연성을 높입니다.
4. 유지보수
- 절차 지향 프로그래밍: 프로그램이 커지면 코드의 복잡도가 증가하고, 유지보수가 어려워질 수 있습니다. 함수 간의 의존성이 높아지기 때문입니다.
- 객체 지향 프로그래밍: 객체 단위로 나누어져 있어 유지보수가 용이하며, 새로운 기능 추가 시 기존 코드에 미치는 영향을 최소화할 수 있습니다.