절차지향 vs 객체지향

김영후·2022년 12월 6일
0

CS

목록 보기
14/15
post-thumbnail

절차지향(Procedual Programming)

절차지향에서는 순차적인 처리가 중요하며 프로그램 전체가 유기적으로 연결되도록 만드는 프로그래밍 기법이다.

예시) C언어


장점

컴퓨터의 작업 처리 방식과 유사하기 때문에 객체지향 언어를 사용하는 것에 비해 더 빨리 처리되어 시간적으로 유리하다.


단점

유지보수가 어렵다.

실행 순서가 정해져 있으므로 코드의 순서가 바뀌면 동일한 결과를 보장하기 어렵다.

디버깅이 어렵다.


객체지향(Object Oriented Programming)

객체지향에서는 데이터와 절차를 하나의 덩어리로 묶어서 생각하게 된다.

마치 컴퓨터 부품을 하나씩 사다가 컴퓨터를 조립하는 것과 같은 방법


객체란 구체적인 사물, 혹은 사람이 될 수도 있고 추상적인 개념이 될 수도 있는 무언가다.

컴퓨터로 예를 들자면 컴퓨터에 쓰이는 모든 부품(모니터, 키보드, 마우스) 등과 컴퓨터가 제공하는 모든 기능(화면이 켜짐, 소리가 남)은 객체다.

객체지향 프로그래밍에서는 프로그램을 다수의 객체로 만들고, 이들끼리 서로 상호작용하도록 만든다.

컴퓨터의 모든 부품을 적절히 연결하고 조립해서 컴퓨터가 제대로 작동하도록 만드는 것


객체지향의 특징

  1. 캡슐화

데이터와 알고리즘을 묶어 하나의 캡슐로 만든다. 데이터와 코드의 형태를 외부에서 알 수 없다.

캡슐화 되어있지 않은 데이터와 코드는 사용하기 어렵다.

  1. 상속

부모가 자식에게 유전자를 물려주듯, 상위 클래스의 모든 것을 하위 클래스가 이어 받는다.

  1. 다형성

상속과 연관된 개념으로, 하나의 객체가 다른 여러 객체로 재구성되는 것.

(오버로딩, 오버라이딩)

  1. 추상화

실존하는 객체의 모든 특성 중, 프로그램을 만드는데 필요한(공통적인) 부분만 파악해서 추출하고 필요하지 않은 것은 제거하는 것.


객체지향의 장점

  1. 재사용성

'상속'이 가능해서 코드를 재사용 가능하다.

  1. 생산성 증가

컴퓨터가 고장났을 때, 문제가 되는 부품만 수리하면 다시 정상 가동됩니다.
마찬가지로 독립된 객체로 이루어져 있기 때문에 생산적으로 작업할 수 있고, 유지 및 보수가 용이하다.

  1. 자연스러운 모델링

개발자가 상상하는 대로 자연스럽게 구현가능.


객체지향의 단점

  1. 느린 개발 속도

모든 객체의 역할과 기능을 이해해야 되기 때문에 많은 시간이 소요된다.

  1. 느린 실행 속도

절차 지향보다 실행 속도가 느리다.

  1. 높은 난이도
profile
배움기록

0개의 댓글