절차지향 vs 객체지향
절차지향 vs 객체지향
절차 지향
프로시저로 프로그램을 구성하는 기법을 절차 지향 프로그래밍이라고 부른다.
- 프로시저는 데이터를 사용해서 기능을 구현한다.
- 프로시저는 다른 프로시저를 사용하기도 한다.
- 여러 프로시저가 동일한 데이터를 공유한다.
다수의 프로시저들이 데이터를 공유하는 방식으로 만들어지기 때문에, 절차 지향 프로그램은 자연스럽게 데이터를 중심으로 구현하게 된다.
절차 지향의 문제점
- 데이터 타입이나 의미를 변경해야 할 때, 함께 수정해야 하는 프로시저가 증가한다.
- 같은 데이터를 프로시저들이 서로 다른 의미로 사용하는 경우가 발생한다.
절차 지향적으로 코드를 구현하는 것은 쉽지만, 데이터 종류가 증가하고 이를 사용하는 프로시저가 증가하게 되면, 여러가지 문제들이 발생하게 되고, 유지 보수가 어렵다.
객체 지향
객체 지향은 데이터 및 데이터 관련된 프로시저를 객체로 묶는다.
객체는 프로시저를 실행하는데 필요한 만큼의 데이터를 가지며, 객체들이 모여 프로그램을 구성한다.
객체는 자신만의 기능을 제공하며, 각 객체들이 서로 연결되어 다른 객체가 제공하는 기능을 사용할 수 있게 된다.
객체는 다른 객체에 기능을 제공하기 위해 프로시저를 사용하는데, 프로시저는 자신이 속한 객체의 데이터에만 접근할 수 있으며, 다른 객체에 속한 데이터에는 접근할 수 없다.
객체 지향은 객체 별로 데이터와 프로시저를 알맞게 정의해야 한다.
객체 지향적으로 만든 코드는 객체의 데이터를 변경하더라도 해당 객체로만 변화가 집중되고 다른 객체에는 영향을 주지 않으므로, 요구 사항의 변화가 발생했을 때 절차 지향 방식보다 프로그램을 더 쉽게 변경할 수 있다.
참고 : 개발자가 반드시 정복해야 할 객체 지향과 디자인 패턴 (최범균)