[컴퓨터 공학]절차 지향 vs 객체 지향
카테고리: CS
절차지향 vs 객체 지향
절차지향(Procedural Programming)이란?
절차지향 프로그래밍이랑 말그대로 순차적인 처리가 중요시 되며 프로그램 전체가 유기적으로 연결되도록 만드는 프로그래밍 기법이다.
- Pros
- 실행속도가 빠름
- Cons
- 유지보수가 어려움(코드가 복잡)
- 실행 순서가 정해져 있어 코드의 순서가 바뀌면 동일한 결과를 보장하기 어려움
- 디버깅이 어려움
- Ex) C언어
객체지향(Object Oriented Programming)이란?
하드웨어의 빠른 발전을 통해 컴퓨팅 환경은 급속도로 증가했지만 소프트웨어 개발 시간이 따라가지 못하게 되고 이런 상황에 소프트웨어의 개발시간을 단축하되 하드웨어에 기본적인 사양을 잡아먹어도 더 이상 큰 단점이 아니기에 모듈화, 캡슐화해서 개념적으로 접근하는 형태를 갖는 객체지향 프로그래밍이 탄생했다.
객체지향의 정의를 살펴보면 객체지향이란 실제 세계를 모델링하여 소프트웨어를 개발하는 방법이다. 객체지향 프로그래밍에서는 데이터와 절차를 하나의 덩어리로 묶어서 생각하게 된다. 이는 마치 컴퓨터 부품을 하나씩 사다가 컴퓨터를 조립하는 것과 같은 방법이다. 객체 지향의 3대 특성은 다음과 같다.
- 캡슐화
- 캡슐화란 데이터와 그 데이터를 처리하는 메서드를 하나의 객체로 묶는 것을 말한다. 이는 외부에서 객체의 내부 상태를 직접 접근하지 못하게 하여 객체의 무결성을 유지하는 데 도움이 된다.
- 상속
- 상속이란 기존의 클래스를 재사용하여 새로운 클래스를 만드는 것을 말한다. 이를 통해 코드의 재사용성을 높이고, 계층 구조를 형성하여 관련 클래스들을 체계적으로 관리할 수 있다.
- 다형성
- 다형성이란 동일한 인터페이스를 통해 서로 다른 데이터 타입을 처리할 수 있는 특성을 말한다. 이는 하나의 메서드나 클래스가 다양한 방식으로 동작할 수 있게 하여 코드의 유연성과 확장성을 높이는 데 기여한다.
- Pros
- 코드의 재활용성이 높음.
- 코딩이 비교적 간편.
- 디버깅이 쉬움.
- Cons
- 속도가 비교적 느림.
- 설계에 많은 시간이 소요됨.
둘의 가장 큰 차이점은 절차지향은 데이터를 중심으로 함수를 구현합니다. 이에 반해 객체지향은 기능을 중심으로 메서드를 구현하게 된다.
Reference
절차지향과 객체지향 언어의 차이, 장단점, 코드 비교, 용도 총정리
댓글 남기기