본문 바로가기
방구석코딩/파이썬 기초문법

[파이썬 독학] 클래스(class) 개념 이해

by 석세상 2022. 7. 11.
반응형

파이썬을 공부하다 보면 클래스라는 용어를 자주 접하게 될 텐데요. 저처럼 초보자인 경우 벽에 부딪친 느낌이 들 정도로 어려운 내용인 것 같습니다. 이해해보기 위해 책도 같은 부분을 여러 번 읽어보고 여기저기 자료를 찾아보고 했지만 이해하기 쉽지 않은 것 같습니다.

 

하지만 파이썬 역시 결국은 프로그램 언어이니, 새로운 언어를 배우는 데는 많은 시간이 필요하다는 생각으로 조금씩 알아봐야겠습니다. 잘 생각해보면 어렸을 때 가나다라를 보고 읽을 때 이게 왜 가나다라인지 이해하고 배운 것이 아니고, 또 외우다 보면 이해할 수 있는 경우도 있으니 이 역시 이해하려고 노력해보지만 쉽지 않을 때는 그냥 그렇구나 하고 일단 해보다 보면 나중에 이해되는 날이 있겠죠.

 

그래서 오늘은 문법이나 사용법보다는 용어와 개념을 이해하는데 이야기해볼까 합니다.

 

 

클래스(class) 개념

자료를 찾아보다 보니 공통적으로 클래스에 대해서 정의한 부분을 보자면 어떤 물건을 찍어내기 위해 만들어진 틀이다.라는 것입니다. 휴대폰 케이스 또는 자동차 역시 계속 동일한 모양을 빠르게 생산하기 위해 틀을 만들어두고 재료만 투입해서 계속 동일한 모양의 물건을 생산하게 되죠. 이와 같이 클래스는 대량생산을 위해 필요한 틀 정도라고 생각하시면 됩니다.

 

자 그럼 클래스가 무엇이냐에 대한 일반적인 느낌은 알았는데 우리가 공부한 걸로 생각해보자면 함수의 모음? 정도로 생각하면 큰 무리는 없을 것 같습니다. 그럼 이전에 공부한 모듈과는 어떻게 다르냐라고 한다면 모듈이 클래스보다는 조금 더 넓은 범위인 것 같습니다. 그래서 굳이 범위를 보자면 '함수 < 클래스 < 모듈'로 생각해볼 수 있겠네요. 

 

예전에 함수, 모듈, 패키지에 대해서 정리해둔 게 있는데 필요하시면 아래 링크 참조하면 될 것 같아요.

[파이썬] 패키지, 모듈, 함수 비교 (tistory.com)

 

[파이썬] 패키지, 모듈, 함수 비교

파이썬을 공부하다 보면 모듈, 패키지, 함수라는 말이 나오는데 이 부분이 나처럼 잘 모르는 사람은 그게 뭔지, 또 어떻게 다른지 헷갈리는 부분이다. 여기에 더불어 명령어라는 말도 자주 쓰이

gusugi.tistory.com

 

 

위의 내용을 포함하여 함수, 클래스, 모듈, 라이브러리, 패키지 등의 용어가 있는데 이것 또한 제대로 정의되지 않는 것 같아 나중에 생각이 정리되면 용어에 대해서 쉽게 이해 가능하게끔 정리가 필요할 것 같습니다.

 

 

 

클래스에서 사용되는 용어

그럼 일단 클래스를 이해하기 위해서는 클래스 내에서 사용되는 용어들이 있는데요. 이 용어들에 대해서 먼저 알아봐야 나중에 이해하는데 도움이 되겠죠.

 

먼저 클래스는 함수의 모음이라고 했는데 클래스 안에는 '__init__'이라는 함수가 대부분 포함됩니다. '__init__' 부분에는 객체가 생성될 때 자동으로 호출하는 부분이 있는 함수라고 생각하면 됩니다. 여기서 객체란 그동안 공부할 때 자주 나왔던 변수명과 유사하다고 생각하면 될 것 같고요. 클래스로부터 만들어진 경우는 객체라고 표현합니다. 클래스를 이용하여 생성된 것들은 인스턴스, 즉, 실행되어 저장된 것들을 인스턴스라고 부릅니다. 결국 클래스는 이 인스턴스를 생성하기 위해 있는 거겠죠? 이것이 클래스라는 틀을 거쳐서 생산되는 결과라고 보면 되겠네요.

 


클래스 용어 정리

  • __init__ : 클래스 내 생성되는 함수이며, 객체 생성 시 자동으로 호출하는 함수
  • 객체 : 클래스에서 만들어진 값, 변수명과 유사
  • 인스턴스 : 클래스를 이용하여 만들어진 값 (실행결과)

__init__ 안의 객체 중 self는 기본값으로 포함되어야 하는데 self에는 어떤 값을 입력하지 않으며 호출을 위한 객체라고 생각하면 됩니다.

 

 

이렇게 개념과 용어에 대해서 가볍게 알아봤는데요. 다음번에는 실제로 클래스를 어떻게 만들고 사용하는지 알아보도록 해요. 저도 잘 이해가 안 되는 상태로 공부하다 보니 다음 내용은 시간이 좀 걸릴 수도 있겠네요..

 

 

728x90
반응형

댓글