Python 기초-클래스(Class)의 이해 - Class의 핵심 구성 요소
다양한 라이브러리와 모듈들이 클래스 기반으로 구성되어 있기 때문에, 처음부터 클래스 개념을 알고 있으면 각종 라이브러리 및 모듈들을 이해하고 보다 효율적으로 활용이 가능하다.
클래스는 프로그래밍에서 코드의재사용성과유지보수를 개선하는 데 중요한 역할을 한다. 클래스를 이용해 기능들과 속성을 하나의 단위로 묶어 재사용할 수 있으며, 이는 새로운 프로젝트에서 시간과 노력을 절약해준다. 또한, 클래스는 코드의가독성을 높여 다른 개발자들이나 미래의 자신이 코드를 이해하기 쉽게 만들어 준다.
나의 경우엔 이 개념을 세 번째 반복 학습한 후에야 완전히 이해할 수 있었다. 클래스는 매우 중요하지만 혼동이 생기는 개념 중 하나이다. 이해를 돕기 위해, 나는 클래스를 쿠키 만드는 과정에 비유하여 학습했다.
클래스(Class) : 쿠키 만드는 설명서(메뉴얼) 📜
클래스는 객체(쿠키)를 생성하기 위한설명서,메뉴얼이라고 할 수 있다.
예를 들어, 쿠키를 만드는 과정을 생각해 보자. 쿠키 메뉴얼(클래스)을 사용해서 쿠키의 모양과 크기를 정하고, 실제 쿠키를 만든다.
파이썬에서클래스도 마찬가지로 어떤 객체(쿠키)를 만들기 위한설명서,메뉴얼역할을 한다. 즉, 클래스는 객체의 기본 형태라고 볼 수 있고 여기에는 두 가지 주요 요소가 포함된다.
기초 다지기1. 객체(Object)란?
- 객체는 클래스에 기반하여 생성된 어떤
실체(쿠키)를 말한다. 클래스(Class)는 추상적인 것이고,객체는 추상적인클래스를 기반으로 만들어진 실체(쿠키)이다. - 객체는 일반적으로 클래스의 인스턴스를 말하기도 하지만, 더 넓은 의미로 모든 데이터 구조를 포함할 수 있다. (인스턴스와 같으면서 다름)
기초 다지기2. 인스턴스(Instance)란?
- 인스턴스는 클래스(설계도)를 따라 실제로 만들어진
쿠키이다. 인스턴스는 객체와 같은 의미로 사용되지만, 좀 더 구체적인 상황을 나타내는 데 사용된다. 클래스로부터 객체가 생성될 때, 그 객체를 인스턴스라고 부른다. (객체는 광범위 인스턴스는 더 작은 범위)
즉, 클래스의 인스턴스는 클래스로 생성된 객체를 말한다.
- 객체는 클래스에 기반하여 생성된 어떤
1. 속성(Attribute) : 쿠키의 재료
속성(Attribute)은 쿠키의 재료이다. 클래스에서 속성은 객체가 가지고 있는 데이터이다. 다양한 종류의 쿠키를 만들기 위해 다양한 재료(밀가루, 설탕, 초콜릿 등)를 사용할 수 있다.
클래스에서는 다양한 속성(재료)을 정의해서 각 객체의 독특한 특성을 나타낼 수 있다.
생성자(Constructor) : 속성 초기화
클래스의
__init__메서드는 생성자라고 불린다. 생성자는 인스턴스가 생성될 때 자동으로 호출된다. 이 생성자 메서드를 통해 객체의 초기 상태를 설정한다. 예를 들어, 쿠키 클래스의 생성자는 쿠키를 만드는 데 필요한 재료를 초기화 한다.1 2 3 4 5 6
class Cookie: def __init__(self, flour, sugar, butter): # 생성자에서 속성 초기화 self.flour = flour self.sugar = sugar self.butter = butter
이렇게
__init__메서드는 ‘flour’, ‘sugar’, ‘butter’ 라는 세 가지 매개변수를 받아서 이 변수 값을 객체의 속성으로 설정하여 초기화함으로써, 새로운 객체(쿠키)가 만들어질 때마다 해당 객체에 필요한 재료를 지정할 수 있게 된다.
2. 메서드(Method) : 쿠키 설명서 내부의 각 단계, 지침
메서드(Method)는 쿠키를 만드는 설명서 지침 이라고 생각하면 된다. 메서드를 사용해 단계별 지침을 정의할 수 있다. 쿠키 반죽 만들기, 오븐에 굽기, 식히기 등의 단계 등… 예를 들면,
메서드(지침)1. 재료 섞기
- 밀가루, 설탕, 버터등을 그릇에 넣고 섞는다
메서드(지침)2. 반죽 굽기
- 쿠키 반죽을 쿠키 틀에 넣고, 오븐에 굽는다.
메서드(지침)3. 쿠키 식히기
- 오븐에서 꺼낸 쿠키를 식한다.
- 오븐에서 꺼낸 쿠키를 식한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class Cookie:
def __init__(self, flour, sugar, butter):
# 속성: 쿠키 재료
self.flour = flour
self.sugar = sugar
self.butter = butter
def mix(self):
# 메서드1: 재료 섞기
return f"{self.flour}, {self.sugar}, {self.butter}를 섞는 중"
def bake(self):
# 메서드2: 반죽 굽기
return "쿠키 굽는 중"
def cool_cookies(self):
# 메서드3: 쿠키 식히기
return "쿠키를 식히는 중"
# 쿠키 인스턴스 생성
chocolate_cookie = Cookie("밀가루 2컵", "설탕 1컵", "버터 1컵")
# 메서드 호출
print(chocolate_cookie.mix()) # 재료 섞기
print(chocolate_cookie.bake()) # 반죽 굽기
print(chocolate_cookie.cool()) # 쿠키 식히기
이렇게 각 메서드는 쿠키 만들기 과정의 한 단계를 나타낸다. 클래스의 특정 메서드를 호출하면, 그 메서드가 정의하는 특정 동작이 실행되는 것이다.