KSCOLD LogoKSCOLD
Blog
Feed
Product
Admin Night
Vault
Guestbook
Info

Vault 목록

Protocol

연결된 노트와 함께 읽기

Protocol

2026년 8월 28일

Protocol

Protocol은 "이 메서드와 속성을 가진 객체라면 같은 타입으로 보겠다"는 구조적 타입 힌트이다.

상속 관계보다 인터페이스 모양을 중요하게 본다. 다른 언어의 interface와 비슷하지만, Python스럽게 duck typing을 타입 힌트로 표현한다.

예

Python
from typing import Protocol class SubAgent(Protocol): name: str async def run(self, payload) -> object: ...

SubAgent를 상속하지 않아도 name과 run()이 있으면 타입 체커는 SubAgent처럼 취급할 수 있다.

runtime_checkable

Python

이렇게 하면 런타임에서도 isinstance(obj, SubAgent) 검사가 가능해진다.

언제 쓰나

  • 플러그인 구조
  • sub-agent 공통 계약
  • 테스트 double/mock
  • 상속을 강제하고 싶지 않은 인터페이스

한 줄 정리

Protocol은 상속보다 객체의 모양을 기준으로 타입 계약을 표현하는 Python 타입 힌트이다.

관련

  • typing 모듈
  • dataclass
  • Fail-soft

Synapse Map Insight

from typing import runtime_checkable @runtime_checkable class SubAgent(Protocol): ...