파이썬 클래스(class) 기초와 객체 생성 완전 정복
이 글은 파이썬의 클래스(class) 개념과 객체(object) 생성 방법을 완전히 이해하기 위한 가이드입니다. 객체 지향 프로그래밍의 핵심인 클래스를 파이썬에서 어떻게 활용하는지 단계별로 알아보겠습니다.
Thank you for reading this post, don't forget to subscribe!안녕하세요, 파이썬을 하루에 하나씩 배우는 여정에 함께하게 되어 반갑습니다. 오늘은 파이썬의 클래스와 객체 생성에 대해 알아보겠습니다. 처음에는 클래스가 추상적으로 느껴질 수 있지만, 실제로는 우리의 일상과 밀접한 개념입니다. 함께 차근차근 배워보도록 하겠습니다.
1. 클래스란 무엇인가?
클래스는 ‘설계도’입니다. 예를 들어, ‘학생’이라는 개념을 코드로 표현하고 싶다면, 학생이 가지는 속성(이름, 나이)과 행동(공부하기, 출석하기)을 하나로 묶어주는 것이 바로 클래스입니다. 클래스를 통해 우리는 일상 속 개념을 프로그래밍 언어로 구체화할 수 있습니다.
객체(Object)는 클래스를 바탕으로 만들어진 ‘실제 사물’입니다. 하나의 클래스에서 여러 개의 객체를 만들 수 있고, 각각은 독립적인 데이터를 가질 수 있습니다.
2. 클래스의 기본 문법
요소 | 설명 |
---|---|
class | 클래스를 정의할 때 사용하는 키워드 |
__init__ | 객체가 생성될 때 자동으로 실행되는 초기화 함수 |
self | 객체 자신을 의미하는 매개변수 |
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def introduce(self):
print(f"안녕하세요, 저는 {self.name}이고 {self.age}살입니다.")
3. 객체 생성과 사용
- 클래스를 통해 객체를 만들 때는 함수처럼 클래스 이름 뒤에 괄호를 붙입니다.
- 생성된 객체는 고유한 속성과 메서드를 가질 수 있습니다.
- 여러 개의 객체를 생성해도, 서로의 속성은 영향을 주지 않습니다.
student1 = Person("영희", 20)
student2 = Person("철수", 22)
student1.introduce() # 안녕하세요, 저는 영희이고 20살입니다.
student2.introduce() # 안녕하세요, 저는 철수이고 22살입니다.
클래스와 객체는 결국 반복 가능한 사고방식입니다. 하나의 공식을 만들고, 여러 번 활용하는 지혜이자 기술이죠.
4. __init__ 메서드의 역할
__init__
은 ‘생성자(Constructor)’ 역할을 합니다. 객체가 생성될 때 자동으로 호출되며, 객체의 초기 상태(속성)를 설정하는 데 사용됩니다. 쉽게 말해, 객체가 만들어질 때 무조건 실행되는 ‘첫 번째 함수’입니다.
class Car:
def __init__(self, brand, color):
self.brand = brand
self.color = color
def drive(self):
print(f"{self.color}색 {self.brand} 자동차가 달립니다.")
이렇게 정의된 클래스를 사용해 객체를 만들면 다음과 같이 동작합니다:
mycar = Car("현대", "파란")
mycar.drive() # 파란색 현대 자동차가 달립니다.
5. self 파라미터의 의미
self
는 클래스 내부에서 생성된 객체 자신을 가리킵니다. 객체가 자신의 속성이나 메서드에 접근할 수 있도록 해주죠. 마치 “내 것”을 지칭할 때 사용하는 1인칭 대명사 같은 존재입니다.
- self.name → 이 객체의 name 속성
- self.drive() → 이 객체의 drive 메서드 호출
self는 꼭 적어야 하는가? 네, 필수입니다. 파이썬이 객체와 자신의 상태를 연결하기 위한 ‘주소 역할’이니까요.
6. 클래스 예제: 학생 클래스 만들기
class Student:
def __init__(self, name, major):
self.name = name
self.major = major
def introduce(self):
print(f"안녕하세요! 저는 {self.major} 전공의 {self.name}입니다.")
student = Student("민수", "컴퓨터공학")
student.introduce()
- 이 코드는 학생 객체를 생성하고, 전공과 이름을 출력합니다.
- 코드를 수정하여 다양한 행동을 추가할 수도 있습니다 (ex. 수강신청, 성적조회).
클래스는 복잡해 보이지만, 사실은 ‘세상의 규칙을 내 코드 안에 담는 방법’입니다. 이제 여러분의 코드도 하나의 세계가 될 준비가 되었나요?
👩💻 실전 후기와 초보자 꿀팁
“클래스? 처음엔 무조건 어렵다고만 느꼈어요. 그런데, ‘나만의 설계도’라는 개념을 이해하고 나니까 코딩이 오히려 쉬워지더라고요.”
📌 클래스 입문자 꿀팁 3가지
- ❶ 눈으로만 읽지 말고 직접 타이핑해보자
클래스는 문법보다 손에 익는 게 중요해요. 타이핑을 반복하면 자연스레 구조가 보입니다. - ❷ self는 ‘나’다
자꾸 혼동된다면 ‘self = 나’라고 외워보세요. 나의 이름, 나의 전공처럼 이해하면 됩니다. - ❸ 비유로 연습해보기
학생, 자동차, 게임 캐릭터 등 일상에 존재하는 개체를 클래스로 만들어보면 흥미도 ↑ 이해도 ↑
개인적으로, 클래스를 제대로 이해한 순간부터 코드가 정리되기 시작했어요. 이전에는 여기저기 흩어진 변수와 함수들이 뒤엉켜 있었는데, 클래스를 사용하고 나서는 코드가 마치 ‘하나의 세계’처럼 느껴졌죠.
그러고 보니, 예전에 만든 ‘고양이’ 클래스를 아직도 기억해요. 이름, 색깔, 성격을 정해서 매일 다른 행동을 시켜봤는데, 진짜 내 애완동물을 키우는 기분이었어요. 그때부터였던 것 같아요. ‘아, 프로그래밍은 진짜 창작이구나’라고 느낀 순간이요.
“코드는 쓰는 게 아니라, 설계하는 것이다. 클래스는 그 설계의 시작이다.”
📸 클래스 이해를 돕는 이미지 & 외부 자료
🔗 클래스 학습에 도움 되는 외부 링크
클래스를 이해하는 순간, 파이썬은 단순한 언어가 아닌 ‘생각의 도구’로 진화합니다. 여러분은 이제 설계할 수 있는 사람, 사고를 코드로 표현할 수 있는 사람입니다. 오늘 하루의 학습이 내일의 성장을 만들고 있다는 걸 기억하세요.
파이썬의 클래스는 어렵지 않아요. 다만 천천히, 그리고 꾸준히 익숙해지는 시간이 필요할 뿐이죠. 그 시간에 오늘 이 글이 함께했다면 더없이 기쁩니다.
HANSORI.AI_Blog Labs에서 더 알아보기
구독을 신청하면 최신 게시물을 이메일로 받아볼 수 있습니다.