메타클래스에 대해 알아보기 전에 먼저 객체와 인스턴스에 대해 한번 짚고 넘어가자. 클래스로 만든 객체를 인스턴스라고 한다. 그렇다면 객체와 인스턴스의 차이는 무엇일까? 예를 들어 a = Person() 이렇게 만든 a는 객체이다. 그리고 a 객체는 Person의 인스턴스이다. 즉, 인스턴스라는 말은 특정 객체가 어떤 클래스의 객체인지를 관계 위주로 설명할 때 사용된다. 파이썬에서의 모든 것은 객체이다. 따라서 클래스도 객체이다. 그렇다면 클래스를 만들기 위한 클래스가 필요하다는 말이 되는데, 클래스를 만들기 위한 클래스는 무엇일까? 바로 이것이 메타클래스이다. 메타클래스는 우리가 재정의해주지 않으면 기본적으로 클래스를 만드는 클래스로 정해져 있다. 만약, 특정 클래스를 만들 때, 특별한 규칙을 적용하고 ..