Post

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()) # 쿠키 식히기

이렇게 각 메서드는 쿠키 만들기 과정의 한 단계를 나타낸다. 클래스의 특정 메서드를 호출하면, 그 메서드가 정의하는 특정 동작이 실행되는 것이다.


This post is licensed under CC BY 4.0 by the author.