정체불명의 모모

c++ 04 : 객체 지향이란??? [ 클래스와 객체 / 어서와c++은 처음이지] 본문

프로그래밍(c++)

c++ 04 : 객체 지향이란??? [ 클래스와 객체 / 어서와c++은 처음이지]

정체불명의 모모 2019. 12. 17. 14:06

1. 객체지향 프로그래밍(OOP: object - oriented programming ) 이란??

   = 우리가 살고 있는 실제 세계가 객체(object)들로 구성되어 있는 것과 비슷하게, 소프트웨어도 객체로

      구성하는 방법이다.

      다양한 기능을 하는 소프트웨어 객체들이 이러한 객체들을 조합하여 자기가 원하는 기능을 구현하는 

      기법이다.

 

   정의 : 데이터와 함수를 하나의 덩어리(객체)로 묶는 것을 캡슐화(encapsulation)라고 부른다.

            객체 지향 프로그래밍 방법은 현재 가장 각광받고 있는 프로그래밍 기술이다.

 

 

[ 절차 지향과 객체 지향 ]

객체 지향 프로그래밍

 

 

2. 절차 지향 프로그래밍

= 절차 지향 프로그래밍(procedural programming)은 프로시저(procedure)를 기반으로 하는 프로그래밍 방법이다.

   (프로시저는 일반적으로 함수를 의미한다. / '프로시저 지향 프로그래밍' 라는 용어가 더 적합한것 같다.)

   절차 지향에서 사용되는 설계 방법은 하향식 설계(top down design)이라고도 불린다.

절차지향 프로그래밍

 

    단점 : 데이터가 함수와 분리된다는 점

 

     단점-1). 과도한 전역 변수의 사용

           = 절차 지향 프로그래밍은 함수들이 쉽게 접근하게 하기 위해서 전역 변수에 핵심적인 데이터를 저장하게 된다.

              하지만 전역 변수는 모든 함수에 대하여 개방되어 있기 때문에 전역 변수의 값을 잘못 설정할 가능성도

              많아진다.

( 절차 지향 프로그래밍에서는 데이터와 함수가 묶여 있지 않다. )

     단점-2). 프로그램의 이해가 어려워진다.

             = 절차 지향에서는 작업들이 함수로 작성된다. 하지만 인간이 동시에 이해할 수 있는 함수의 숫자는

                제한되어 있다. 따라서 서로 상호 작용하는 수백 개의 함수를 이해하는 것은 쉽지 않다.

 

      단점-3). 변경하고 확장하기가 어렵다.

             = 절차 지향의 경우, 프로그램의 복잡도가 어느정도 이상으로 커지게 되면 프로그램을

                변경하기가 어려워진다. 종종 하나의 수정하면 다른 함수들이 영향을 받기 때문이다.

 

 

  

Comments