패스잇
백엔드 개발 · 심화

Python의 descriptor란 무엇이며, 어떻게 동작하나요?

힌트 · __get__, __set__, __delete__ 메서드를 설명해보세요.

attribute 접근getsetdelete데이터 캡슐화

모범답안

Python의 descriptor는 객체 속성(attribute) 접근 방식을 제어하는 메커니즘입니다. 간단히 말해, 속성에 접근할 때 특별한 동작을 수행하도록 해주는 것이죠.

descriptor를 구현하려면 클래스에 __get__, __set__, __delete__ 중 하나 이상의 메서드를 정의해야 합니다.

  • __get__(self, instance, owner): 속성 값을 가져올 때 호출됩니다.
  • __set__(self, instance, value): 속성 값을 설정할 때 호출됩니다.
  • __delete__(self, instance): 속성을 삭제할 때 호출됩니다.

이 메서드들을 통해 속성 접근, 설정, 삭제 시점을 가로채서 원하는 로직을 실행할 수 있습니다. 예를 들어, 데이터 유효성 검사나 읽기 전용 속성 구현 등에 활용할 수 있습니다. descriptor를 사용하면 속성 접근을 캡슐화하고 더 유연하고 제어 가능한 코드를 작성할 수 있습니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 Python 면접 질문

← Python 면접 질문 전체 보기