절차 지향 vs 객체 지향

서정범·2023년 3월 28일
0

CS

목록 보기
2/7

📌 절차 지향 프로그래밍이란?

순차적인 처리가 중요시 되며 프로그램 전체가 유기적으로 연결되도록 만드는 프로그램이 기법

특징

  1. 컴퓨터의 작업 처리 방식과 유사하기 때문에 객체지향 언어를 사용하는 것에 비해 더 빨리 처리 되어 시간적으로 유리하다.
  1. 하나의 큰 기능을 처리하기 위해 작은 단위의 기능들로 나누어 처리하는 Top-Down 접근 방식으로 설계
  1. 데이터와 함수를 별개로 취급
  1. 모든 함수는 데이터 공유가 가능
  1. 정해진 순서대로 입력해야 하므로 순서가 바뀌면 결과를 도출하기 어렵다.

장단점

장점

  1. 섬세한 코딩 가능
  1. 메모리 사용이 적다
  1. 작은 규모의 프로그램에 적합

단점

  1. 한 부분이 고장나면 전체가 동작하지 않는다
  1. 유지 보수에 어려움이 있다
  1. 개발 기간이 오래 걸리고 비용이 많이 든다
  1. 협업이 어렵

📌 객체 지향 프로그래밍이란?

일의 순서대로 프로그래밍하는 것이 아닌 여러 객체의 협력을 통해 프로그램을 구현하는 것

특징

  1. 추상화: 공통적인 속성과 기능을 정의함으로써 코드의 중복을 줄이고, 클래스 간 관계를 효과적으로 설정하고, 유지/보수를 용이하게 하는 것
  1. 캡슐화: 관련된 데이터와 알고리즘(코드)를 하나의 묶음으로 정리한 것
  1. 상속성: 이미 작성된 클래스를 이어 받아서 새로운 클래스를 생성하는 기법(재활용)
  1. 다형성: 하나의 이름(방법)으로 많은 상황에 대처하는 기법(상속 + 가상메서드)

장단점

장점

  1. 한 부분이 고장나도 다른 부분 동작 가능
  1. 유지 보수가 쉬움
  1. 개발기간이 짧고 비용이 적게 든다
  1. 협업이 가능

단점

  1. 메모리 사용이 좀 더 많다
  1. 불필요한 부분까지 프로그램에 포함
  1. 대규모의 프로그램에 적합
profile
개발정리블로그

0개의 댓글