CS/📝 언어

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

늦은산책 2024. 5. 22. 17:14

🎎 절차 지향과 객체 지향의 차이

  • 객체 지향은 절차를 간소화한것이다
  • 절차 지향은 데이터와 함수가 분리되고 통일성이 없지만 객체 지향은 좀 더 모듈화 되어 체계적이다
  • 절차 지향은 과도한 전역 변수의 사용으로 스파게티 코드 발생, 변경과 확장, 프로그램에 대한 이해가 어렵지만, 객체지향은 코드의 재사용성이 굉장히 좋다
  • 절차 지향은 프로그램의 순서와 흐름을 먼저 세우고 필요한 자료구조와 함수를 설계하는 방식
    객체 지향은 자료구조와 이를 중심으로 한 모듈들을 먼저 설계한 다음에 이들의 실행 순서와 흐름을 짜는 방식

🎎 절차 지향과 객체 지향이 정반대일까?

위의 그림이 보다 쉽게 이해하기 위해 그려진 그림이다. 딱 보면 알 수있듯이 절차지향은 글을 작성하듯 진행되고 객체지향은 연관관계로 이루어져서 하나의 글을 작성하는 것처럼 볼 수 있다.

 

글을 쓰는 방식은 다르지만 같은 결과를 보내는 것은 똑같다.

 

절차지향 ↔ 객체 지향??

객체 지향을 설명하면 항상 비교 대산으로 절차지향 방식이 따라붙는다. 그렇다면 객체 지향은 실행 절차와 전혀 무방하다는 것일까? 아니다. 아무리 객체 지향으로 개발을 해도 일련의 절차는 무조건 필요하다. 

 

객체를 지향하는 프로그래밍
기존의 방식인 변수를 따로, 함수 따로 같이 분산적이고 통일성 없는 추상화 과정을 통합하여 문제 해결 대상을 좀 더 모듈화 하기 쉽게 해주는 도구에 불과한 것이다.

 

즉, 디자인이 다르다는 것이다. 플로우를 먼저 짜느냐 데이터의 모델링을 우선시 하느냐의 차이가 된다는 것이다. 그 이후에는 정해진 알고리즘에 의해 실행된다.

 

객체 지향은 기존의 방식에 비해 프로그램의 수행 절차를 간소화 해주지만, 절차를 무시하는 것은 아니다. 

깔끔한 모듈화를 통해서 코드가 간소화되면서 로직이 대폭 줄었지만 실행순서는 엄연히 존재한다. 객체 지향은 단지 별도의 장소를 분리해서 정리해놓은 기술이하는 사실을 잊어서는 안된다.