[CS] 객체지향과 절차지향

박상민·2023년 6월 30일
0

Computer Science

목록 보기
23/29

💡 절차적 프로그래밍과 객체지향 프로그래밍은 반대되는 단어가 아니다.

💡 프로시저에는 루틴, 서브루틴, 메소드, 함수 등이 있다.

  • 루틴 : main문
  • 서브루틴 : main문 밖에서 정의한 코드 블럭 중에 - 반환 값이 없는 것
  • 함수 : main문 밖에서 정의한 코드 블럭 중에 반환 값이 있는 것

❗️절차지향

  • 절차지향이란 프로시져로 프로그램을 구성하는 기법이다.
  • 프로시져는 대체로 데이터를 중심으로 구현한다.
  • 단점은 데이터 타입이나 의미를 변경해야 할 때, 함께 수정해야 하는 프로시져가 증가하는 것이다.

❗️절차적 프로그래밍

  • 절차적 프로그래밍은 순차적인 처리를 중요시 여기며, 프로그램 전체가 유기적으로 연결되도록 만드는 프로그래밍 기법이다.
  • 장점
    • 모듈 구성이 용이하며 구조적인 프로그래밍이 가능하다.
    • 컴퓨터의 처리구조와 유사해 실행 속도가 빠르다.
  • 단점
    • 유지보수가 어렵다.
    • 정해진 순서대로 입력을 해야하므로 순서를 바꾸면 결과값을 보장할 수 없다.
    • 코드가 길어지면 가독성이 무척 떨어지며 이해하기가 힘들다.
    • 대형 프로젝트에 부적합하다.

❗️객체지향

  • 객체는 자신만의 데이터와 프로시져를 갖는다.
  • 객체는 자신만의 기능을 제공한다.
  • 객체들은 서로 연결되어 다른 객체가 제공하는 기능을 사용할 수 있다.

❗️객체지향 프로그래밍

  • 객체지향 프로그래밍은 필요한 속성과 메서드를 가진 클래스를 정의하고, 정의된 클래스를 통해서 각각의 객체를 생성하여, 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 기법이다.
  • 장점
    • 코드의 재사용성이 높아졌다.
    • 유지보수가 쉬워졌다.
    • 클래스를 한 번 이해하면 코드의 가독성이 높아진다.
    • 대형 프로젝트에 적합해졌다.
  • 단점
    • 처리속도가 절차지향보다는 느리다.
    • 객체가 많아지면 용량이 커질 수 있다.
    • 설계시 많은 시간과 노력이 필요하다.

❗️절차지향 VS 객체지향

  • 설계방식
    • 절차적 프로그래밍은 프로그램의 순서와 흐름을 먼저 세우고 필요한 자료구조와 함수들을 설계하는 방식이다.
    • 객체지향 프로그래밍은 반대로 자료 구조와 이를 중심으로 한 모듈 들을 먼저 설계한 후, 이들의 실행 순서와 흐름을 조합하는 방식이다.
  • 목적
    • 절차적 언어를 사용한다면, 말 그대로 실행 순서, 즉 절차가 더 중점이 된다.
    • 객체지향 언어를 사용한다면, 필요한 객체들의 종류와 속성 등이 더 중점이 된다.
profile
💡 클린코드를 지향하는 Backend Developer

0개의 댓글