🧠 클래스, 인스턴스, 객체 완전 정복 가이드
파이썬 객체지향(OOP)을 공부할 때 꼭 짚고 넘어가야 할 세 가지 개념이 있습니다:
클래스(class), 인스턴스(instance), 그리고 객체(object). 이 개념들을 완전히 이해하고 있으면 실무에서도 훨씬 정확하고 효율적으로 코드를 작성할 수 있어요.
✅ 클래스란?
"설계도"
클래스는 객체를 만들기 위한 설계도입니다.
예를 들어, 강아지를 표현하는 클래스를 만들 수 있어요:
class Dog:
def __init__(self, name):
self.name = name
이건 "강아지"라는 물건을 어떻게 만들지에 대한 정의만 담고 있을 뿐, 실제 강아지는 아직 만들어지지 않았습니다.
✅ 인스턴스란?
"클래스를 호출해서 실제로 만든 것"
dog1 = Dog("멍멍이")
여기서 Dog("멍멍이")는 클래스를 호출한 것이고,
그 결과로 메모리에 실제 강아지 하나가 만들어집니다. 이것이 바로 **인스턴스(instance)**입니다.
그리고 dog1이라는 변수는 그 인스턴스를 참조하고 있는 것이죠.
✅ 객체란?
"파이썬 안에서 메모리에 존재하는 모든 것"
- 정수 10, 문자열 'hello', 리스트 [1, 2, 3], Dog("멍멍이") 모두 **객체(object)**입니다.
- 즉, 인스턴스는 객체의 일종입니다.
객체 인스턴스
더 넓은 개념 | 특정 클래스에서 나온 객체 |
모든 값, 자료형 포함 | 클래스 기반으로 만들어진 것만 |
dog1 = Dog("멍멍이")
위 코드에서:
- Dog("멍멍이") → Dog 클래스의 인스턴스, 그리고 객체
- dog1 → 그 인스턴스를 가리키는 변수
🎯 요약 정리
용어 정의 예시
클래스(class) | 객체의 설계도 | class Dog: |
인스턴스(instance) | 클래스로부터 실제 만들어진 객체 | Dog("멍멍이")의 결과 |
객체(object) | 메모리에 존재하는 모든 데이터 | 10, 'hello', Dog("멍멍이") 등 |
🧸 비유로 한 번 더 정리!
- 클래스 → 쿠키 틀 🍪
- 인스턴스 → 쿠키 틀로 찍어낸 쿠키 한 개
- 객체 → 쿠키 포함 모든 실제 물건 (빵, 차 등 포함!)
- 변수 → 쿠키에 붙인 이름표 (dog1)
✅ 한 줄로 정리하면?
"클래스를 호출하면 인스턴스라는 객체가 만들어지고, 변수는 그것을 가리킨다!"
이제 클래스, 객체, 인스턴스 개념이 완전히 정리되셨죠?
필요하다면 self가 무엇을 가리키는지도 이어서 정리해드릴게요! 😊
'기술블로그-Flask편' 카테고리의 다른 글
Use Case Diagram (유스케이스 다이어그램) 완벽 이해하기 (0) | 2025.04.28 |
---|---|
📂 프론트엔드 파일 구조 설명 (0) | 2025.04.28 |
리눅스 서버 관리 필수 명령어 정리 (Flask + Nginx + AWS) (0) | 2025.04.27 |
Flask 백엔드 배포 & CORS 문제 해결기 (AWS EC2 + DuckDNS) (0) | 2025.04.27 |
백엔드 내부(admin용) 페이지(시작단계 확인) (0) | 2025.04.26 |