객체지향 프로그래밍은 상태와 행위를 가진 객체에 책임을 나누고, 객체들이 서로 협력하도록 프로그램을 구성하는 방식입니다. 반면 절차 지향 프로그래밍은 처리할 작업을 함수나 프로시저 단위로 나누고, 데이터가 정해진 처리 과정을 따라가도록 구성하는 데 중심을 둡니다.

요구사항이 커지고 복잡해지면서 객체지향의 유지보수 측면에서 한계점이 존재했습니다.
이러한 배경에서 캡슐화, 상속, 다형성, 추상화 특징을 내세운 객체지향 프로그래밍이 주목받기 시작했습니다.

다만 객체지향이 항상 더 좋은 것은 아닙니다. 단순한 계산이나 순차적인 처리에서는 절차 중심의 구성이 더 이해하기 쉬울 수 있고, 불필요하게 객체와 추상화를 늘리면 오히려 복잡해질 수 있습니다. 따라서 두 방식의 우열을 나누기보다는, 복잡한 도메인 규칙과 변경 가능성이 큰 시스템에서는 객체에 적절한 책임을 분배하는 객체지향 설계가 유지보수에 유리하다고 생각합니다.

꼬리 질문