Ch.2 Python 첫걸음 — 데이터를 다루다

클래스 — 데이터와 함수를 묶다

클래스로 데이터와 기능을 하나로 묶는다self의 역할을 이해한다

변수와 함수가 점점 많아지면?

프로젝트가 커지면 변수 수십 개, 함수 수십 개가 생깁니다. 관련된 것끼리 묶지 않으면 코드가 뒤죽박죽이 됩니다.

관련된 데이터와 기능을 깔끔하게 묶는 방법은?

클래스 — 데이터와 함수를 하나의 '설계도'로 묶습니다.


article

핵심 내용

PyTorch의 모든 AI 모델은 클래스로 만들어집니다. `class MyModel(nn.Module):` — 이 한 줄이 AI 모델의 시작이죠. 변수와 함수가 수십 개로 늘어나면, 관련된 것끼리 묶어야 합니다. 그 묶음의 설계도가 클래스입니다.

클래스는 데이터와 함수를 묶는 설계도입니다

class Tokenizer:
    def __init__(self, name):
        self.name = name
        self.vocab = {}

    def add_word(self, word):
        if word not in self.vocab:
            self.vocab[word] = len(self.vocab)

    def vocab_size(self):
        return len(self.vocab)

class — 설계도 정의 __init__ — 초기화 (자동 호출) self — 현재 객체 자신

설계도로 실제 객체를 만들어봅시다

AI Tokenizer 클래스를 직접 만들고 사용해봅시다

# 나만의 Tokenizer 클래스 만들기!

class SimpleTokenizer:
    def __init__(self, name):
        self.name = name
        self.vocab = {}

    def add_word(self, word):
        if word not in self.vocab:
            self.vocab[word] = len(self.vocab)

    def encode(self, text):
        tokens = text.split()
        return [self.vocab.get(w, -1) for w in tokens]

    def vocab_size(self):
        return len(self.vocab)

# 사용해보기!
tok = SimpleTokenizer("my-tokenizer")

# 단어 등록
for word in ["오늘", "날씨", "좋다", "내일", "도", "좋을까"]:
    tok.add_word(word)

print(f"토크나이저: {tok.name}")
print(f"사전 크기: {tok.vocab_size()}")
print(f"사전: {tok.vocab}")

# 문장 인코딩
text = "오늘 날씨 좋다"
encoded = tok.encode(text)
print(f"\n'{text}' → {encoded}")

클래스에서 self는 무엇을 가리키는가?

__init__ 메서드는 언제 실행되는가?

Python에서 딕셔너리의 키는 중복될 수 있다

클래스 기초

edit_note

정리 노트

클래스 — 데이터와 함수를 묶다

클래스 기본 구조

class
데이터(속성)와 함수(메서드)를 묶는 설계도 정의 키워드
__init__
생성자 — 인스턴스 생성 시 자동 호출되어 초기화
self
현재 인스턴스 자신을 가리키는 참조 (메서드의 첫 번째 인자)

클래스 활용

인스턴스
설계도(클래스)로 만든 실제 객체 — tok = Tokenizer("basic")
메서드 호출
인스턴스.메서드() — tok.add_word("hello")
AI 연결
PyTorch 모든 AI 모델 = class MyModel(nn.Module):

클래스 = 붕어빵 틀, 인스턴스 = 실제 붕어빵 — 틀 하나로 여러 붕어빵 생산!

image

시각 자료

다이어그램: py-scene-class
check_circle

핵심 정리

  • 1클래스 = 데이터 + 함수를 묶는 설계도
  • 2self = 현재 객체 자신
  • 3딕셔너리 키는 중복 불가

퀴즈와 인터랙션으로 더 깊이 학습하세요

play_circle인터랙티브 레슨 시작