무슨 일
- DW 로 집계된 데이터를 reverse etl 로 Serving 하는 API 가 있다. 특정 환경으로 배포하면 실패하는 현상을 발견했다.
- devops 팀의 도움을 원인을 확인했다. 원인은 apm agent 를 poetry run pip install 로 설치했고 기존과 다른 setuptools 가 높은 버전으로 설치, agent 를 실행하며 오류를 반환했다. apm agent 는 넓은 버전을 지원해야했기 때문에 3.8 >= 부터 쓰던 importlib 를 사용하지 않고 pkg_resources 를 사용했다. 결국 agent 실행을 위해 설치된 패키지 의존성의 setuptools 의 메이저 버전이 올라가버린 게 원인.
- 이러한 현상에 대해 나는 배포를 위한 패키지 의존성과 어플리케이션 실행의 의존성을 분리해야하는 게 아닌가 ? 라는 생각을 했다. apm agent 의존성은 시스템 인터프리터(전역 인터프리터로 표현하는게 맞나?)로, 어플리케이션 의존성은 패키지 도구(우리의 경우 poetry 혹은 uv) 로 분리하면 문제가 발생하지 않았을까.. 라는 생각을 했다.
- 기존:
poetry run --no-cache {에이전트_binary} ~
- 개선:
python3 -m {에이전트_binary} poetry run ~
- 근데 동료 M 은 이러한 현상을 이야기하는 쓰레드에 gpt 와의 대화를 첨부했는데, 스택 트레이스 로 exception 이 발생한 문(statement)
import pkg_resources 에 대해 궁금해했다. 이 패키지가 무엇을 하는 패키지인지에 초점을 맞췄다!
그래서
- 나와 다른 시각으로 현상을 바라본 게 신기했다. 난 개선점에, 내 동료는 문제의 원인에 집중했다. 다시 돌이켜보면 왜 문제가 발생했는지도 궁금해졌다.
- 단비 같은 좋은 신호라고 생각한다. 모든 동료가 나와 같은 생각을 할 수 없다. 나와 다른 관점에서 느낀 생각을 읽는 시간이 즐겁다. 나중에는 더 많은 동료들과 이야기하며 저녁에 곱씹을 수 있는 시간이 많아졌으면 좋겠다.
- 구글에 검색해봤다. "나와 다른 관점 사자성어"
- 견인견지 (見仁見智): 어진 사람은 어질다고 보고, 지혜로운 사람은 지혜로운 것으로 본다. 같은 사물이라도 보는 사람의 견해에 따라 생각이 다르다는 뜻