본문 바로가기

카테고리 없음

절차지향 / 객체지향의 차이

절차지향 (Procedural Programming) 

  • 함수 중심적 프로그래밍
  • 단계적 절차 중심 (알고리즘 중심)
  • 함수, 절차, 변수, 데이터로 이루어짐 
  • 함수, 순차적 실행 기반 동작 ( 대부분 전역변수, 함수로 처리)
  • 간단, 직관적, 소규모 프로그램
  • 프로그램 커질수록 코드 복잡, 관리 힘듦
  • 데이터, 함수 분리되어있기 때문에 유지보수 힘듦

 

객체지향 (Object-Oriented Programming)

  • 객체 중심적 프로그래밍
  • 클래스, 객체, 상속, 다형성, 캡슐화, 추상화
  • 재사용성, 유지보수성, 확장성
  • 클래스 / 객체로 나눠짐 
    - 클래스 = 변수와 메소드를 정의하는 틀
    - 객체 = 클래스에서 정의한 것을 토대로 메모리에 할당.    .  
  • 재사용성, 유지보수성, 확장성,
  • 시스템 모듈화, 객체간 상호작용(가독성, 효율성)
  • Java, Python, C++ ... etc

 

/ 절차지향 (Procedural Programming)  객체지향 (Object-Oriented Programming)
프로그램구성 함수, 절차 중심 객체, class중심
데이터 처리 데이터, 함수 분리 데이터, 함수가 객체에 결합
구성요소 변수, 함수 class, 객체, 메소드, 속성
재사용성 재사용 힘듦 재사용 높음 (클래스 객체 이용)
확장성 확장 힘듦 확장 용이(상속, 다형성)
장점 간단, 직관적, 작은 프로그램, 절차적 문제에 용이 대규모 프로그램, 복잡한 문제에 용이, 유지보수 용이