8장에서는 파이썬에서 데이터 유형을 다루는 방법을 자세히 알아보았다. 클래스와 인스턴스의 관계를 이해했고, 데이터 유형을 정의하는 방법과 각 데이터 유형에 알맞는 메서드를 정의하는 방법을 배웠다. 클래스를 사용하지 않더라도 프로그램을 만들 수 있다. 하지만 클래스를 이용하면 데이터를 체계적으로 분류하고 데이터의 유형에 따라 코드를 정리하여 프로그램이 복잡해지는 것을 완화할 수 있다. 또한, 파이썬의 수많은 기능이 대부분 클래스를 이용해 구현되어 있기 때문에 이를 잘 이용하기 위해서도 클래스와 객체를 잘 이해하는 것이 필요하다.

8장 요약

  1. 다양한 데이터를 범주에 따라 분류하고, 취급 방법을 달리해야 한다. 이를 위한 약속이 필요하다.
  2. 파이썬의 모든 데이터는 객체이며, 클래스를 이용해 이를 분류한다. 어떤 클래스에 속하는 객체를 그 클래스의 인스턴스라고 한다.
  3. 클래스의 이름에 괄호를 붙여 인스턴스화 할 수 있다.
  4. class 문을 이용해 클래스를 직접 정의할 수 있다. class 문 안에는 클래스가 가질 속성을 정의한다.
  5. 클래스 또는 인스턴스의 속성으로 정의된 함수를 메서드라고 한다. 인스턴스를 기준으로 메서드를 호출할 경우, 그 인스턴스가 첫번째 인자로 전달된다. 메서드는 이를 관례적으로 self라는 매개변수로 전달받는다.
  6. __init__() 메서드를 이용해 인스턴스의 초기 속성을 정의한다.
  7. 클래스와 인스턴스는 일종의 이름공간이다. 이름공간은 문맥의 역할을 하며 상황에 따라 접근할 수 있는 범위가 상황에 따라 다르다.
  8. 클래스는 다른 클래스의 하위 클래스가 될 수 있다. 하위 클래스는 상위 클래스의 속성에 접근할 수 있다. 상속을 활용해 범주의 포함관계를 나타내거나 공통 속성을 재사용할 수 있다.
  9. 다른 사람이 클래스를 쉽고 안전하게 사용할 수 있도록 인터페이스를 잘 정의해야 한다. 이를 위해 클래스의 속성을 감추고 꼭 필요한 메서드만을 외부로 노출하는 캡슐화 기법을 활용한다.
  10. 이중 밑줄 메서드를 정의하여 연산자가 클래스에 대해 실행할 연산을 정의할 수 있다.