골든래빗은 더 탁월한 가치를 제공하는 콘텐츠 프로덕션 & 프로바이더 입니다. 골든래빗은 취미, 경제, 수험서, 만화, IT 등 다양한 분야에서 책을 제작하고 있습니다.골든래빗은 더 탁월한 가치를 제공하는 콘텐츠 프로덕션 & 프로바이더 입니다. 골든래빗은 취미, 경제, 수험서, 만화, IT 등 다양한 분야에서 책을 제작하고 있습니다.

[바로바로 파이썬 08] 클래스와 인스턴스

2026년 11월 12일조회 3

이 글은 《바로바로 파이썬》에서 발췌했습니다.

바로바로 파이썬

바로바로 파이썬

ISBN 9791124516775지은이 셀레나, 박현규₩30,000
교보문고예스24알라딘

[바로바로 파이썬 08] 클래스와 인스턴스

이번 장에서는 파이썬 문법의 큰 산인 클래스를 공부합니다. 클래스는 데이터와 기능, 즉 지금까지 배운 자료형과 함수를 하나로 묶어 관리할 수 있는 설계도입니다. 처음에는 낯설겠지만 코드를 직접 실행하다 보면 조금씩 감이 잡힐 겁니다. 천천히 시작해봅시다.

클래스와 인스턴스 이해하기

파이썬에서 클래스는 class 키워드로 만듭니다. 클래스 안에는 클래스 변수, 인스턴스 변수, 메서드 등을 정의할 수 있습니다. 이렇게 만든 클래스는 설계도 역할을 합니다. 하지만 설계도만으로는 충분하지 않습니다. 설계도 자체가 실제 제품이 아닌 것처럼, 이를 바탕으로 실제 제품을 만드는 과정이 필요합니다. 이처럼 클래스를 바탕으로 실제로 사용할 수 있는 실체를 만드는 것을 ‘인스턴스화한다’라고 하며, 이렇게 만들어진 실체를 ‘인스턴스’라고 합니다. 우선 다음 코드를 입력하여 실행해보면서 이 의미에 대해 천천히 알아가봅시다.

Character라는 이름의 클래스를 선언하는 코드입니다. 다시 말해 캐릭터를 만들기 위한 설계도를 정의한 것이죠. 이 아래에 들여쓴 코드 블록은 모두 Character 클래스에 속합니다.

인스턴스가 만들어지는 순간 자동으로 실행되는 메서드입니다. 클래스를 설계도에 비유했으니 굳이 이어서 비유하자면 설계도에 ‘이 설계도로 제품을 만드는 순간 이것을 실행하세요’라고 적어둔 것과 같습니다. 이때 self가 붙은 self.name, self.health 변수를 인스턴스 변수라고 합니다.

생김새는 함수와 같지만 클래스 안에 정의되어 있으므로 메서드라고 부릅니다. 이 메서드는 인스턴스의 이름과 체력을 출력합니다. 여전히 인스턴스라는 말이 낯설 수 있지만 일단 넘어갑시다.

Character 클래스를 바탕으로 인스턴스를 생성하는 부분입니다. 바로 이 시점에 설계도(클래스)로부터 실제 인스턴스가 만들어집니다. Character("슬라임", 30)처럼 데이터가 다른 인스턴스를 만들기도 합니다.

정리하면 ➊ 클래스라는 설계도에 ➋ 인스턴스 변수와 ➌ 메서드를 정의하고, ➍ 그 설계도를 바탕으로 필요한 만큼 인스턴스를 만들어 사용하는 것이 클래스의 핵심입니다.

그림으로 이해하는 클래스와 인스턴스의 관계

다음은 앞에서 작성한 코드를 그림으로 그려본 것입니다. 그림을 통해 클래스와 인스턴스의 관계를 이해합시다.

➊ 그림을 보면 Character 클래스라는 설계도를 바탕으로 용사와 슬라임을 만들고 있습니다.

➋ 이때 용사와 슬라임은 각각 Character 클래스의 인스턴스인 것을 알 수 있죠. 각 인스턴스를 생성할 때 이름과 체력을 다르게 지정했습니다.

➌ 두 인스턴스는 모두 Character 클래스를 바탕으로 만들어졌기 때문에 show_status( ) 메서드를 사용할 수 있습니다.

➍ 따라서 두 인스턴스에서 각각 show_status( ) 메서드를 호출하면 자신의 이름과 체력을 출력합니다.

__init__( ) 메서드의 역할 알아보기

파이썬에는 이름 앞뒤에 밑줄 두 개(__)가 붙은 특별한 메서드가 있는데, 이를 특수 메서드special method라고 합니다. 흔히 매직 메서드magic method라고도 부르며, 특정 동작이 일어날 때 파이썬이 자동으로 호출합니다. __init__( ) 메서드는 인스턴스가 생성되는 순간 실행된다고 했습니다. __init__( ) 메서드의 동작 방식에 집중하기 위해 다음 예제를 실습해봅시다.

실행 결과를 보면 __init__( ) 메서드를 직접 실행하지 않았지만 Dog("초코", 3)과 같이 인스턴스를 만드는 과정에서 __init__( ) 메서드가 자동으로 호출됩니다. 이때 메서드 내부의 코드 블록이 실행되면서 '초코 강아지 등록 완료'가 출력됩니다. 그다음 self.name = name, self.age = age에 의해 "초코", 3도 저장됩니다.

self의 역할 알아보기

이제 self의 역할을 말끔하게 이해할 차례입니다. 인스턴스가 생성될 때 __init__( ) 메서드가 무조건 실행된다면 그 안에서 self는 무슨 역할을 할까요? 바로 ‘생성된 인스턴스’를 의미합니다.

클래스는 인스턴스를 만들기 위한 설계도이므로 어떤 인스턴스가 만들어질지 미리 알 수 없습니다. 클래스 안에 단순히 name, age라고만 작성하면 누구의 이름이고 나이인지 구분할 수 없습니다. 그래서 self.name, self.age처럼 작성하여 ‘앞으로 만들어질 각 인스턴스의 이름과 나이’를 나타냅니다.

코드로 살펴보면 self.name = name은 ‘전달받은 name의 값을 현재 생성되는 인스턴스의 self.name에 저장하라’는 뜻입니다. choco에 저장할 인스턴스를 만들 때 "초코"가 name으로 전달되므로 해당 인스턴스의 self.name에 "초코"가 저장됩니다. 메서드를 호출할 때도 마찬가지입니다. hero.show_status( )처럼 점 앞에 쓴 인스턴스가 그대로 self로 전달됩니다. 따라서 같은 메서드를 호출하더라도 각 인스턴스에 저장된 서로 다른 값을 사용할 수 있습니다. 이를 인스턴스 변수라고 부릅니다.

이제 앞에서 배운 내용을 다시 연습하며 내 것으로 다져보겠습니다. 이번에는 게임 아이템을 클래스로 표현해보겠습니다. 코드가 여러 줄이므로 파이썬 파일로 저장하여 실행하는 방식으로 연습하겠습니다. 다음 코드를 입력한 뒤 실행해봅시다.

➊ Item이라는 이름의 클래스를 만들었습니다. 게임 아이템을 만들기 위한 설계도를 정의한 셈입니다.

➋ __init__( ) 메서드에서 name과 price 값을 받아 self.name, self.price에 저장했습니다. 이렇게 저장한 값은 각 인스턴스가 자기만의 데이터로 가지게 됩니다.

➌ show_info( ) 메서드는 아이템의 이름과 가격을 출력합니다.

➍ Item("체력 물약", 50), Item("나무 검", 120)을 실행해서 서로 다른 두 인스턴스를 만들었습니다.

➎ 각 인스턴스에서 show_info( ) 메서드를 호출하면 자기 인스턴스에 저장된 name과 price를 사용해 정보를 출력합니다.

이번에는 하나의 Student 클래스로 두 학생을 만들고, self가 각 인스턴스를 가리켜 학생마다 자신의 이름과 점수를 출력하는 과정을 확인해봅시다.

➊ Student라는 이름의 클래스를 만들었습니다.

➋ __init__( ) 메서드에서 name과 score를 받아 self.name, self.score에 저장했습니다.

➌ introduce( ) 메서드는 인스턴스가 가진 이름과 점수를 출력합니다.

➍ Student("민수", 85), Student("지유", 92)를 실행해서 서로 다른 두 인스턴스를 만들었습니다.

➎ minsu.introduce( )를 실행하면 self는 minsu를 가리키고, jiyu.introduce( )를 실행하면 self는 jiyu를 가리킵니다. 따라서 같은 메서드를 실행해도 각 인스턴스에 저장된 서로 다른 값이 출력됩니다.

이 정도면 클래스와 인스턴스, __init__( ), self, 메서드가 어떤 역할을 하고 어떻게 동작하는지 이해할 수 있을 것입니다. 그럼 다음으로 넘어가봅시다.

📚 더 읽기

저자 소개

셀레나

서강대학교 AI·SW대학원 인공지능전공 대우교수이자 서울아산병원 빅데이터연구센터 데이터사이언티스트로 활동하고 있다. 고려대학교 정보대학 컴퓨터학과 박사과정에서 인공지능과 데이터 분석을 연구하고 있으며, 머신러닝·딥러닝·생성형 AI를 비롯한 다양한 IT 기술을 교육하고 있다. 서강대학교, 삼성전자, S-OIL, CJ 등 대학과 기업에서 파이썬 프로그래밍, 데이터 분석, 생성형 AI를 강의해 왔으며, 패스트캠퍼스·멀티캠퍼스·클래스101·메가스터디·인프런 등 다양한 교육 플랫폼에서 파이썬 및 AI 강의를 운영하고 있다. 저서로는 《파이썬 데이터 분석가 되기 + 챗GPT》가 있으며, 2025년 세종도서 학술부문에 선정되었다. 초보자도 프로그래밍을 쉽게 이해하고 직접 활용할 수 있도록 쉽고 실용적인 방식으로 가르치고 있다.

저서

  • 《파이썬 데이터 분석가 되기 + 챗GPT》

강의

  • 서강대학교: '생성형AI와 파이썬 데이터 분석' 정규 학기 수업
  • 패스트캠퍼스: AI 월드 프롬프트엔지니어링 강의 - '소크라테스', '아인슈타인' 강의 런칭
  • 패스트캠퍼스: '실패 없이 완주하는 파이썬 데이터 분석 입문' 강의 런칭
  • 멀티캠퍼스: '생성형 AI로 쉽게 배우는 데이터 분석', '파이썬 데이터 분석 입문 with ChatGPT' 강의 런칭
  • 클래스101: 'ChatGPT를 이용한 Python 데이터 분석 정복하기' 강의 런칭
  • 패스트캠퍼스: '실습으로 끝장내는 파이썬 데이터 분석 입문' 기업 전용 강의 런칭
  • 국비지원: '한 번에 따라하는 파이썬 데이터 분석 기초 완주반' 강의 런칭
  • 메가스터디: '파이썬 프로그래밍 기초', '인공지능을 위한 파이썬 라이브러리 활용' 강의 런칭
  • 인프런: '[왕초보] Python 프로그래밍 기초 완성 로드맵 강의' 런칭
  • 삼성전자: Citizen Developer 양성 과정 '파이썬 프로그래밍 기초'
  • 대한의료정보학회: '의료 데이터를 활용한 실전 분석' 튜토리얼
  • 숙명여자대학교, 한국외국어대학교, 아주대학교, 한국교통대학교, 울산대학교, 부산대학교: '파이썬 프로그래밍 기초', '파이썬을 활용한 머신러닝 및 데이터 분석 실습'
  • S-OIL, 현대오토에버, SK플래닛, 대상 주식회사, KPMG, CJ, 한국생산성본부: '생성형 AI 응용', '생성형 AI 입문', '생성형AI와 데이터 분석', 'RNN을 활용한 주가 데이터 분석'
  • 잡코리아: '인공지능 분야 취업 컨설팅'

SNS

  • E-mail _ selena.course.help@gmail.com
  • YouTube _ https://www.youtube.com/@SELENASSAM
  • LinkedIn _ https://www.linkedin.com/in/selenassam/
  • Instagram _ https://www.instagram.com/selenassam/

약력

  • 현) 서강대학교 AI·SW대학원 인공지능전공 대우교수
  • 현) 서울아산병원 빅데이터연구센터 데이터사이언티스트
  • 현) 고려대학교 정보대학 컴퓨터학과 박사과정
  • 전) 머신러닝, 딥러닝, IT플랫폼 개발, SCI 논문 저자
  • 전) 서강대학교 AI·SW대학원 데이터사이언스 석사 졸업
  • 전) 숙명여자대학교 컴퓨터과학 학사 졸업
  • 전) MIT IDSS Program 'Data Science and Machine Learning' 수료

박현규

최신 AI 도구를 리서치해 소개하는 ai100.co.kr을 운영하며, 현재 SpaceXAI 공식 앰배서더로 활동 중이다. IT 지식을 더 쉽게 나누기 위해 책을 쓰고, 유튜브와 쇼츠를 제작하며, 학교와 공공기관 등 AI를 쉽게 이해하고 싶은 사람들을 위해 강의한다.

저서

  • 《이게 되네? 챗GPT 미친 크롤링 24제》
  • 《이게 되네? 클로드 MCP 미친 활용법 27제》
  • 《요즘 바이브 코딩 커서 AI 30가지 프로그램 만들기》
  • 《요즘 바이브 코딩 깃허브 코파일럿 31가지 프로그램 만들기》
  • 《바로바로 바이브 코딩 with 커서 AI》
  • 《이게 되네? 클로드 MCP 커넥터 미친 활용법 31제》
  • 《바로바로 챗GPT X 덕테이프 X 코덱스》

SNS

  • E-mail _ hgpark@goldenrabbit.co.kr
  • Home _ ai100.co.kr
  • Facebook _ facebook.com/limedaddy8924
  • YouTube _ youtube.com/@editorp89
  • GitHub _ github.com/canine89
  • Kakao _ open.kakao.com/o/ggK7EAJh

📚《바로바로 파이썬》 자주 묻는 질문

Q.AI가 코드를 다 짜주는 시대인데, 지금 굳이 파이썬을 배워야 할까요?

인공지능 기술이 발전하면서 AI가 코드를 자동으로 생성해 주는 것은 맞습니다. 하지만 AI가 만든 코드가 내가 원하는 방향으로 정확하게 동작하는지 검증하고, 오류를 수정하며, 필요한 기능을 덧붙이기 위해서는 결국 사람이 코드를 이해하는 힘이 필수적입니다. 즉, AI를 도구로서 주도적이고 완벽하게 활용하기 위해서라도 프로그래밍의 기본기가 더욱 중요해진 시대가 되었습니다. 변수와 자료형, 조건문, 반복문 같은 기초 체력을 다져 놓아야 AI에게도 구체적이고 명확한 지시를 내릴 수 있고 그 결과를 제대로 판단할 수 있습니다. AI 시대를 이끌어갈 나만의 프로그래밍 기초 체력을 기르고 싶다면, 코드를 이해하는 힘을 길러주는 입문서 《바로바로 파이썬》으로 시작해 보시기를 강력히 추천합니다.

Q.코딩을 한 번도 안 해본 비전공자이자 초보자인데 책을 따라갈 수 있을까요?

네, 전혀 걱정하실 필요 없습니다. 이 책은 프로그래밍을 처음 접하는 독자의 눈높이에 맞춰 기획되었기 때문에 파이썬 설치 방법부터 코드 한 줄을 입력하고 실행하는 과정까지 아주 친절하고 세심하게 안내합니다. 특히 글만으로는 이해하기 힘든 추상적인 컴퓨터 과학 개념들을 일상생활의 친숙한 상황에 빗대어 설명하는 것이 큰 장점입니다. 예를 들어 어려운 함수 개념은 가래떡 공장에 비유하고, 클래스와 인스턴스의 관계는 시각적인 그림으로 풀어내어 비전공자도 막힘없이 읽어 내려갈 수 있습니다. 낯설고 딱딱한 코딩을 가장 쉽고 편안하게 배우고 싶다면, 풍부한 도해와 실생활 비유로 기본기를 탄탄하게 채워주는 《바로바로 파이썬》이 최고의 선택이 될 것입니다.

Q.책에 나오는 예제 코드들은 직접 수정해 보면서 실습할 수 있나요?

네, 이 책은 단순히 눈으로만 읽는 이론서가 아니라 독자가 직접 실행하고 변경하며 몸으로 익히는 실습 지향적 도서입니다. 책에 수록된 짧고 직관적인 예제들을 개발 환경에 직접 타이핑하고 실행해 본 뒤, 변숫값이나 조건을 살짝 바꾸어 보면서 결과가 어떻게 달라지는지 눈으로 확인할 수 있도록 설계되었습니다. 이 과정을 반복하다 보면 자연스럽게 코드의 동작 원리를 몸소 깨닫게 됩니다. 더불어 학습자 스스로의 진도를 점검할 수 있는 총정리 퀴즈와 종합 실력 점검 문제도 마련되어 있어 독학하기에 매우 좋습니다. 직접 코드를 만지고 변형하며 파이썬을 '내 것'으로 만들고 싶다면, 직접 실행하며 재미있게 배우는 《바로바로 파이썬》을 권해 드립니다.

Q.파이썬의 핵심 문법 중 어떤 내용들을 다루고 있나요?

파이썬 프로그래밍을 하기 위해 반드시 알아야 하는 필수 핵심 문법을 체계적으로 다룹니다. 데이터를 담는 그릇인 변수와 자료형부터 시작하여, 프로그램의 흐름을 제어하는 조건문과 반복문, 그리고 코드를 재사용할 수 있게 해주는 함수와 객체 지향 프로그래밍의 기초인 클래스까지 빠짐없이 담고 있습니다. 이 개념들은 나중에 데이터 분석이나 웹 개발, 인공지능 활용 등 어떤 분야로 나아가더라도 뼈대가 되는 중요한 지식들입니다. 눈에 보이지 않는 어려운 실행 흐름도 그림 자료를 통해 한눈에 볼 수 있도록 도해화하여 시각적으로 이해하기 편합니다. 파이썬의 핵심 뼈대를 가장 쉽고 탄탄하게 구축하고 싶다면 문법의 원리를 시각적으로 명쾌하게 풀어낸 《바로바로 파이썬》을 적극 추천합니다.

Q.혼자 공부하다가 중간에 포기하지 않고 끝까지 완독할 수 있는 장치가 있나요?

혼자 공부하는 독학자분들이 중도 포기하지 않도록 체계적인 학습 페이스메이커 도구들을 제공합니다. 독자의 개인 일정과 상황에 맞춰 유연하게 선택할 수 있는 '30일 집중 학습 진도표'와 '16주 여유만만 학습 진도표'가 수록되어 있어 계획적으로 진도를 관리할 수 있습니다. 또한 각 장이 끝날 때마다 배운 내용을 가볍게 복습할 수 있는 총정리 퀴즈가 준비되어 있고, 책 후반부에는 실력을 한 단계 더 끌어올릴 수 있는 종합 실력 점검 문제가 제공되어 배움의 성취감을 즉각적으로 느낄 수 있습니다. 중간에 지치지 않고 나만의 속도로 코딩 독학 완주의 기쁨을 누려보고 싶으시다면, 독자의 꾸준한 학습을 섬세하게 응원하고 돕는 《바로바로 파이썬》과 함께 시작해 보세요.

Q.데이터 분석이나 인공지능 분야로 나아가고 싶은데, 이 책이 도움이 될까요?

데이터 분석이나 인공지능(AI) 공부를 시작할 때 가장 먼저 맞닥뜨리는 장벽이 바로 파이썬 기본기 부족입니다. 아무리 좋은 라이브러리와 AI 툴이 있더라도, 기본 문법을 모르면 데이터를 전처리하거나 모델의 결과를 커스텀할 때 코드를 손대지 못해 막히게 됩니다. 이 책은 본격적인 데이터 분석이나 AI 모델링 단계로 넘어가기 전, 프로그래밍의 기초 근력을 완벽히 기를 수 있도록 돕는 디딤돌 역할을 합니다. 기초가 튼튼해야 고급 기술도 빠르게 습득할 수 있습니다. 나중에 데이터 과학자나 AI 엔지니어로 거듭나기 위한 첫걸음이자 탄탄한 기본기 발판을 다지고 싶다면, 누구나 쉽고 빠르게 원리를 깨우치는 입문서 《바로바로 파이썬》으로 튼튼한 뼈대를 세워보세요.

Q.책에 복잡하고 긴 코드 예제만 가득해서 지루하진 않을까 걱정됩니다.

초보자분들의 그런 걱정을 덜어드리기 위해 이 책은 아주 짧고 직관적인 예제들 위주로 구성되어 있습니다. 지루하고 긴 코드 대신 한눈에 들어오는 짧은 분량의 예제를 직접 타이핑하고 실행해 볼 수 있어 학습 피로도가 매우 낮습니다. 단순히 텍스트만 나열된 것이 아니라, 글만으로는 직관적으로 파악하기 어려운 복잡한 개념과 실행 흐름들을 다채롭고 풍부한 삽화와 도해로 처리하여 페이지를 넘기는 재미가 쏠쏠합니다. 그림을 보며 눈으로 이해하고, 짧은 코드를 손으로 만져보며 코딩의 즐거움을 즉각적으로 느낄 수 있습니다. 코딩이 낯설고 두려워 시도조차 못 하고 계셨다면, 지루할 틈 없이 눈과 손이 모두 즐거운 《바로바로 파이썬》으로 파이썬의 매력에 푹 빠져보세요.