[개념] 절차지향과 객체지향의 차이는?

2024. 3. 13. 16:22·CS 공부
728x90

프로그래밍에 필요한 코드는 데이터와 데이터를 조작하는 명령어로 나뉜다.

데이터와 데이터를 조작하는 명령어가 어떻게 구성되고 어떤 순서로 실행되는지에 따라 절차지향과 객체지향이 나뉜다고 생각한다.

 

절차지향 (Procedural Programming)

 

- 절차지향은 데이터와 데이터 조작 명령어가 순차적으로 실행되어진다.

- 프로그램의 구조가 데이터와 함수들로 이루어져 있다.

- 데이터와 함수를 개별적으로 관리해야한다.

- 코드가 직관적이어 이해하기 편리하다.

- 컴파일러가 코드를 최적화하기 쉬워 실행속도가 객체지향보다 빠르다.

- 프로젝트의 규모가 커질수록 코드가 길고 복잡해져서 유지보수가 어렵다.

- 함수를 이용하여 재사용할 수 있지만 함수들 간의 의존성이 높아 재사용성이 떨어진다.

 

- 대표적인 언어 : C 등

 

객체지향 (Object-Oriented Programming)

 

- 객체지향은 객체들 간의 상호작용이 이루어지면서 실행된다.

- 프로그램은 객체들로 이루어져 있으며 객체는 데이터와 데이터를 다루는 함수를 묶어서 관리할 수 있게한다.

- 하나의 클래스라는 틀을 만들고 틀을 통해 여러 객체(인스턴스)를 생성하여 프로그램에서 사용한다.

- 상속, 다형성, 캡슐화라는 특징들이 있고, 특징들을 잘 사용해야한다.

- 코드를 모듈화하여 사용하기 때문에 재사용성이 높다.

- 코드를 수정해야 할때, 관련 객체의 코드만 수정하면 되기 때문에 유지보수성이 뛰어나다.

- 자유도가 높아 확장성이 뛰어난 반면, 논리적인 설계가 비교적 어렵다.

- 대표적인 언어 : Java, C++, Python 등

 

내 생각

 

최근에는 절차지향보다는 객체지향 프로그래밍을 많이 하게되는 것 같다.

점점 유지보수와 재사용성에 대한 중요성이 높아지기 때문인것 같다.

절차지향, 객체지향 말은 많이 들었지만 그 특징에 맞는 프로그래밍을 잘하고 있는지 모르겠다.

클래스와 객체는 같은 개념인줄 알고 있었다...

개념 정리를 기회 삼아 조금 더 방향 잡힌 코딩을 해보아야겠다.

 

728x90

'CS 공부' 카테고리의 다른 글

[개념] REST API의 특징 및 API URL 작성법  (0) 2024.06.15
[개념] CI/CD 란?  (0) 2024.03.17
[개념] 번들링(Bundling)이란?  (1) 2024.03.14
[개념] SPA, MPA, SSR, CSR, SSG 개념 알기  (0) 2024.03.12
[개념] Ajax(Asynchronous Javascript And XML)란?  (0) 2024.03.09
'CS 공부' 카테고리의 다른 글
  • [개념] CI/CD 란?
  • [개념] 번들링(Bundling)이란?
  • [개념] SPA, MPA, SSR, CSR, SSG 개념 알기
  • [개념] Ajax(Asynchronous Javascript And XML)란?
Sanghyundal
Sanghyundal
  • Sanghyundal
    초보 개발자
    Sanghyundal
  • 전체
    오늘
    어제
    • Coding
      • Flutter
      • FE
      • CS 공부
      • Git
      • 활동 관련
      • SKALA
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    SK
    Get.put()
    initialBinding
    ossca
    자바스크립트 이벤트 위임
    skala 부트캠프
    멋쟁이 사자처럼 해커톤
    skala
    crew ai
    css normalize
    Get.lazyPut()
    oscca
    turbopack
    ai agent
    클라우드
    우테코 프론트엔드
    skala 1기
    skala1기
    JS 이벤트 위임
    pr agent
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Sanghyundal
[개념] 절차지향과 객체지향의 차이는?
상단으로

티스토리툴바