정체불명의 모모
c++ 04 : 객체 지향이란??? [ 클래스와 객체 / 어서와c++은 처음이지] 본문
1. 객체지향 프로그래밍(OOP: object - oriented programming ) 이란??
= 우리가 살고 있는 실제 세계가 객체(object)들로 구성되어 있는 것과 비슷하게, 소프트웨어도 객체로
구성하는 방법이다.
다양한 기능을 하는 소프트웨어 객체들이 이러한 객체들을 조합하여 자기가 원하는 기능을 구현하는
기법이다.
정의 : 데이터와 함수를 하나의 덩어리(객체)로 묶는 것을 캡슐화(encapsulation)라고 부른다.
객체 지향 프로그래밍 방법은 현재 가장 각광받고 있는 프로그래밍 기술이다.
[ 절차 지향과 객체 지향 ]
2. 절차 지향 프로그래밍
= 절차 지향 프로그래밍(procedural programming)은 프로시저(procedure)를 기반으로 하는 프로그래밍 방법이다.
(프로시저는 일반적으로 함수를 의미한다. / '프로시저 지향 프로그래밍' 라는 용어가 더 적합한것 같다.)
절차 지향에서 사용되는 설계 방법은 하향식 설계(top down design)이라고도 불린다.
단점 : 데이터가 함수와 분리된다는 점
단점-1). 과도한 전역 변수의 사용
= 절차 지향 프로그래밍은 함수들이 쉽게 접근하게 하기 위해서 전역 변수에 핵심적인 데이터를 저장하게 된다.
하지만 전역 변수는 모든 함수에 대하여 개방되어 있기 때문에 전역 변수의 값을 잘못 설정할 가능성도
많아진다.
단점-2). 프로그램의 이해가 어려워진다.
= 절차 지향에서는 작업들이 함수로 작성된다. 하지만 인간이 동시에 이해할 수 있는 함수의 숫자는
제한되어 있다. 따라서 서로 상호 작용하는 수백 개의 함수를 이해하는 것은 쉽지 않다.
단점-3). 변경하고 확장하기가 어렵다.
= 절차 지향의 경우, 프로그램의 복잡도가 어느정도 이상으로 커지게 되면 프로그램을
변경하기가 어려워진다. 종종 하나의 수정하면 다른 함수들이 영향을 받기 때문이다.
'프로그래밍(c++)' 카테고리의 다른 글
c++ 04 : 클래스는 객체의 설계도 [ 클래스와 객체 / 어서와c++은 처음이지] (0) | 2019.12.17 |
---|---|
c++ 04 : 객체는 무엇으로 구성되는가? [ 클래스와 객체 / 어서와c++은 처음이지] (0) | 2019.12.17 |
c++ 문제 : Tic-Tac-Toe게임(어서와c++은 처음이지?) (1) | 2019.12.05 |
c++ 02 : 2차원 배열 (어서와c++은 처음이지?) (0) | 2019.12.04 |
c++ 문제 : 사과를 제일 좋아하는 사람 찾기 (어서와c++은 처음이지?) (1) | 2019.12.04 |