본문 바로가기

C++

([C++] 26강) 객체지향프로그래밍과 절차지향프로그래밍 [매우 중요]

안녕하세요, 잭클입니다.

 

이번시간에는 드디어 C++에서 가장 중요한 핵심 내용!

 

객체지향과 절차지향에 대해서 설명해볼까 하는데요!

 

C언어와 C++의 가장 큰 차이는

 

C언어는 절차지향프로그래밍 언어이고

 

C++은 객체지향프로그래밍 언어이다

 

라고 설명 할 수 있습니다!

 

우선 우리가 지금까지 해온 프로그래밍은 "절차지향프로그래밍"이니

 

절차지향프로그래밍에 대해서 뭔지 부터 알아보도록 하겠습니다!

 

 

 

절차지향프로그래밍이란, 순서대로만 실행하는 프로그래밍이다

 

라고 설명하겠습니다.

 

우리가 썼던 C언어 코드를 보면, 위에서 아래로 흐르는 듯이

 

코드가 실행됩니다.

 

절차지향프로그래밍의 장점은 실행속도가 빠르다는 것이지만,

 

단점은 유지보수가 어렵죠, 코드의 위아래만 바꿔도 문제가 생길 가능성이 크니까요!

 

아직은 이해가 안될수 있지만 조금이따가 현실에 빗대어 조금 더 쉽게 설명해드리겠습니다.

 

 

 

자 그럼 이번에는 객체지향프로그래밍에 대해서 알아볼까요?

 

객체지향프로그래밍이란, 현실처럼 물체를 다루는 프로그래밍이다

 

라고 설명하겠습니다.

 

현실에는 많은 물체들로 이뤄져있습니다.

 

사람, 차, 건물, 나무 등으로 나눌 수도 있을것이고

 

좀 더 세밀하게는

 

팔 다리 몸통 손 발 머리 얼굴

 

엔진 타이어 휠 차체

 

벽돌 유리 엘리베이터

 

줄기 가지 나뭇잎

 

등등 얼마나 깊게 나눌지는 우리의 자유입니다. 나누는 용도에 따라 다르겠지요,

 

객체지향이란 바로 이런것입니다. 필요에 따른 깊이로 물체를 나누고

 

그 물체의 기능과 생김새를 분리해서 사용하는 프로그래밍인거죠.

 

 

 

자 이제 가장 핵심이 되는 개념을 알아봤으니, 이해하기 쉽도록 현실에 빗대어서 설명해보겠습니다.

 

예를들자면

 

절차지향프로그래밍은 소설입니다.

 

우리는 소설가고요!

 

차근차근 읽어봐야지 내용을 파악할수있고, 순서를 뒤죽박죽 읽으면

 

내용이 완전히 잘못될 수도 있습니다.

 

또, 중간에 스토리를 수정하고 싶다면, 아주 큰 일이 될것입니다

 

죽었던 등장인물이 갑자기 살아나서 춤을추고있으면 말이 안되니까요!

 

이게 바로 절차지향프로그래밍인겁니다!

 

 

 

 

그리고 객체지향프로그래밍은 설계도입니다.

 

내가 공장장이고 공장에 있는 모든 기계들의 기능이 적혀있는 설계도를 가지고 있다고 생각해보세요

 

장난감 공장이라고 가정해보면

 

기계 1은 플라스틱 녹이는기계,

 

기계 2는 모양을 잡는 기계,

 

기계 3은 색칠을 하는 기계

 

이렇게 세가지 기계의 사용법이 적힌 설계도가 있다면,

 

공장장은 기계 1, 2, 3 순서대로 작동만 시키면 된다는 것을 알것입니다.

 

장난감의 모양을 바꿔야 한다면 기계 2번의 설정을 바꿔주면 된다는것도 쉽게 알수있겠죠?

 

여기서 우리는 공장장이기도 하면서, 이 기계의 설계자일수도 있습니다.

 

이게 바로 객체지향 프로그래밍입니다!

 

 

 

이해 되셨나요?

 

이제 다음시간부터는 객체지향프로그래밍에 대해서 진도를 나가 볼 것입니다.

 

C++에서 객체지향을 모른다는것은 C++을 할줄 모른다는것과 같으니,

 

집중해서 따라와주시길 바래요! 그럼 다음시간에 뵙겠습니다!