객체 지향 프로그래밍은 실무에서 가장 널리 쓰이는 프로그래밍 방법론입니다. 확장성 있고 관리가 쉬운 코드를 작성할 수 있는 객체 지향 프로그래밍을 함께 배워봅시다.
객체 지향 프로그래밍을 알기 위해서는 먼저 객체가 무엇인지부터 알아야 겠죠?
객체는 우리가 살아가며 볼 수 있는 모든 존재를 일컫습니다. 이 객체는 속성과 행동으로 이루어져 있는데요.
예컨대, 우리가 평소 사용하는 노트북에는 화면과 키보드 등 기본 구성이 있고 길이나 높이 같은 속성도 가지고 있습니다. 우리가 키보드 자판을 누르면 원하는 값들이 화면에 입력되죠? 이는 노트북의 행동에 해당합니다. 따라서, 노트북은 속성과 행동을 가지고 있기 때문에 객체라고 할 수 있습니다.
또 다른 예시를 봅시다. 우리가 흔히 사용하는 멜론과 같은 음악 어플을 생각해볼까요? 멜론의 유저 객체에는 아이디, 비밀번호, 노래 목록 같은 속성이 있고 좋아하는 음악 다운 받기, 재생 목록에 음악 추가하기 등의 행동이 있습니다. 따라서, 멜론의 유저는 물리적으로 존재하지는 않지만 속성과 행동이 있기 때문에 객체라고 볼 수 있습니다.
그럼 이 세상에 존재하는 모든 것을 다 객체라고 할 수 있을까요? 사실상 맞습니다. 무엇이든 객체가 될 수 있죠. 이는 현실 세계에 있든, 가상 세계에 있든, 심지어 머릿속에 존재하는 추상적인 개념조차도 속성과 행동을 떠올릴 수 있다면 객체라고 할 수 있습니다.
객체에 대해 알았으니 이제 객체 지향 프로그래밍이 무엇인지 본격적으로 알아봅시다. 객체 지향 프로그래밍의 정의를 함께 살펴보죠.
프로그램을 여러 개의 독립된 객체들과 그 객체들 간의 상호작용으로 파악하는 프로그래밍 접근법이다.
간단히 말하면, 프로그램을 객체들과 객체들 간의 소통으로 보는 관점이 바로 객체 지향 프로그래밍입니다.
예시를 봅시다. 객체 지향 프로그래밍을 사용하여 '버블보블'이라는 게임을 만든다고 해볼까요? 그럼 이 게임에 필요한 객체들을 먼저 생각해봐야 합니다.
우선 게임 캐릭터인 공룡들과 공격할 때 사용하는 거품 방울, 악당 캐릭터들이 필요하겠죠? 이들 모두 다 각각 객체라고 할 수 있습니다.
객체를 정했으면 다음으로 해야할 것은 각 객체의 속성과 행동을 정의해야 합니다. 먼저 플레이어가 움직일 게임 캐릭터의 속성을 보면 체력이나 목숨, 아이템 등이 있겠고 행동으로는 거품 방울을 발사하는 것과 이동하는 것, 체력이 0이면 죽는 것 등이 있겠습니다.
다음으로 거품 방울을 보면 속성에는 거품 방울의 색, 힘의 강도, 이동 속도 등이 있고 행동에는 멀리 날아가기, 터지기, 적에 부딪히기 등이 있습니다.
마지막으로 악당 캐릭터 객체의 속성을 봅시다. 체력이 있을 수 있고, 크기나 이동 속도, 공격력 등도 있겠네요. 행동에는 플레이어 따라다니기, 공격하기 등이 있겠습니다.
객체를 정하고 각 개체의 속성과 행동도 정의했으니 앞으로 해야할 일은 각 개체들이 어떻게 소통할 지 생각하는 것입니다. 이들은 어떻게 소통할 수 있을까요?
먼저 게임 캐릭터가 거품 방울 객체에게 발사하라는 신호를 보냅니다. 그럼 거품 방울 객체가 발사될 텐데요. 이 거품 방울은 악당 캐릭터와 부딪히는 순간 터지고 악당 캐릭터가 가진 체력을 깎으라는 신호를 보냅니다. 거품 방울의 신호를 받은 악당 캐릭터는 거품 방울의 공격력만큼 자신의 체력을 깎습니다. 만약 깎은 체력이 0 이하라면 악당 캐릭터는 죽어야 합니다.
위와 같은 방식을 객체 지향 설계라고 합니다. 더 세련된 표현으로는 모델링(modeling)이라고 하죠.
위 과정을 세 단계로 요약해보겠습니다.
- 프로그램에 어떤 객체들이 필요할지 정하기
- 객체들의 속성과 행동을 정하기
- 객체들이 서로 어떻게 소통할지 정하기
Python으로 객체 지향 프로그래밍을 실습하기 위해서는 Python3와 Pycharm을 설치해야 합니다. 이 챕터는 Windows 사용자 기준으로 작성되었습니다.
MS WORD에서 특정 폰트로 글을 작성하려면 폰트를 다운 받아야겠죠? 여기서 MS WORD의 역할을 하는 것이 Pycharm이고 폰트가 바로 Python3입니다.
먼저, 파이썬 사이트에 접속하여 아래 버튼을 눌러줍니다. 버전은 다운로드 시점에 따라 달라질 수 있습니다.
설치 프로그램을 클릭해서 실행합니다. 설치 도중, 모든 체크박스에 체크 표시를 해주시고 Install Now를 클릭하면 설치가 자동으로 진행됩니다. close 버튼을 누르면 끝입니다.
JetBrains 사이트에 접속합니다. 사이트에서 Pycharm을 찾기가 어렵다면 구글에서 Pycharm을 검색해서 접속하면 됩니다. 여기서 무료 버전인 Community용을 다운 받도록 합시다.
다운로드한 폴더에서 pycharm-community-...exe 파일을 클릭하세요. 버전에 따라 파일 이름이 상이할 수 있습니다.
설치 도중, 모든 체크박스에 체크 표시를 해주시고 Install을 누르면 설치가 자동으로 진행됩니다.
Pycharm을 실행하려면 컴퓨터를 재부팅시켜야 합니다. 당장 해도 좋고 해야 할 일이 있다면 Finish 버튼을 누른 후 나중에 하셔도 좋습니다.
설치가 번거로우신 분들은 온라인 에디터를 사용하셔도 좋습니다. 다만, 앞으로 Python을 활용할 일이 많을 것이라 생각하여 미리 프로그램을 설치하는 것을 더 권장드립니다.
이번 시간에는 객체와 객체 지향 프로그래밍의 개념에 대해 알아보고 Python으로 객체 지향 프로그래밍을 하기 위해 필요한 Python3와 Pycharm 설치를 함께 진행해 봤습니다.
다음 시간에는 본격적으로 객체를 만드는 법에 대해 함께 배워보겠습니다.
* 이 자료는 CODEIT의 '객체 지향 프로그래밍' 강의를 기반으로 작성되었습니다.