TypeError: must be str or None, not ModelPrivateAttr
·
트러블슈팅
"내부 변수니까 _variable로 선언해야지" 하고 코드를 작성했다가, 예상치 못한 TypeError를 마주친 적 있으신가요?특히 Pydantic v2를 사용하면서 Class 내부 상수를 정의할 때 이 문제를 자주 겪게 됩니다.이번 글에서는 TypeError: must be str, not ModelPrivateAttr 에러가 발생하는 기술적 원인을 분석하고, Pydantic의 설계 의도에 부합하는 ClassVar 패턴을 소개합니다.1. 문제 상황: "분명 문자열을 넣었는데?"다음과 같이 복합 ID를 파싱하는 Pydantic 모델을 만들었다고 가정해 봅시다. 내부에서만 쓸 구분자(_delim)를 정의하고, split 함수에 넘겨주었습니다.from pydantic import BaseModelclass ..