Unit 36. 클래스 사용하기

​클래스는 특정 개념을 프로그래밍으로 표현할 때 사용합니다. 예를 들어 게임을 만든다고 하면 기사, 마법사, 궁수, 사제 등 직업별로 클래스를 만들어서 표현할 수 있습니다.

그림 36-1 게임 캐릭터
그림 36 1 게임 캐릭터

물론 집, 자동차, 나무 등도 클래스로 표현할 수 있습니다. 특히 프로그래밍에서는 현실 세계에 있는 개념들뿐만 아니라 컴퓨터 안에서만 쓰이는 개념들도 클래스로 만들어서 표현합니다. 웹 브라우저에서 내용이 길어지면 보이는 스크롤 바, 프로그램에서 주로 볼 수 있는 버튼, 체크 박스 등이 대표적입니다.

그림 36-2 컴퓨터 안에서만 쓰이는 스크롤 바
그림 36 2 컴퓨터 안에서만 쓰이는 스크롤 바, 버튼, 체크박스

지금까지 나온 기사, 마법사, 궁수, 사제, 집, 자동차, 나무, 스크롤 바, 버튼, 체크 박스처럼 특정한 개념이나 모양으로 존재하는 것을 객체(object)라고 부릅니다. 그리고 프로그래밍으로 객체를 만들 때 사용하는 것이 클래스입니다.

그럼 게임의 기사 캐릭터를 클래스로 표현하려면 무엇이 필요할까요? 간단합니다. 일단 게임 캐릭터는 체력, 마나, 물리 공격력, 주문력 등이 필요합니다. 그리고 기사 캐릭터는 칼로 베기, 찌르기 등의 스킬이 있어야 합니다.

여기서 체력, 마나, 물리 공격력, 주문력 등의 데이터를 클래스의 속성(attribute)이라 부르고, 베기, 찌르기 등의 기능을 메서드(method)라고 부릅니다.

그림 36-3 클래스의 속성과 메서드
그림 36 3 클래스의 속성과 메서드

이렇게 모든 개념을 객체로 표현하는 프로그래밍 방법을 객체지향(object oriented) 프로그래밍이라고 합니다. 객체지향 프로그래밍은 복잡한 문제를 잘게 나누어 객체로 만들고, 객체를 조합해서 문제를 해결합니다. 따라서 현실 세계의 복잡한 문제를 처리하는데 유용하며 기능을 개선하고 발전시킬 때도 해당 클래스만 수정하면 되므로 유지 보수에도 효율적입니다.

지금까지 숫자 1, 2, 3 문자 'a', 'b', 'c', 리스트, 딕셔너리 등을 조합해서 프로그램을 만들었는데 사실 파이썬에서는 이 모든 것이 객체입니다. 이번에는 클래스를 사용해서 객체를 표현하고 만드는 방법을 알아보겠습니다.