2023.06.23
버전 관리?의 중요성.
지난번에 썼던 것처럼 채팅방의 인원수를 체크하기 위해서 방법을 찾아보고 있었는데, 그냥 Redis를 이용해서 출력하는 방법이 있음을 알았다. 어차피 인원수는 누군가 들어오거나 나갈 때만 변동이 있으므로, 그 때마다 redis에 저장된 키에 값을 올리거나 줄인 후 값을 다시 메세지로 보내면 분명 될 것이라 생각했다.
이때 사용할 라이브러리는 aioredis 였는데 코드를 완전히 다 적고 실행했을 때 생전 처음보는 오류코드를 발견했다. 무슨 문제인지 당황하여 찾아보니...
https://github.com/aio-libs/aioredis-py/issues/1409
Library not works with Python 3.11 · Issue #1409 · aio-libs/aioredis-py
Describe the bug When running library with Python 3.11 I got this error: class TimeoutError(asyncio.TimeoutError, builtins.TimeoutError, RedisError): TypeError: duplicate base class TimeoutError To...
github.com
더 이상 aioredis가 python 3.11에서 지원하지 않는다는 것. 허무함과 당혹스러움이 덮쳤지만, 위 링크에서 redis 라이브러리를 그냥 대신 사용하면 된다는 코멘트에 따라 redis 라이브러리에 맞게 메서드를 고친 후에야 정상적으로 동작하는 것을 확인 할 수 있었다.
괜히 사람들이 구버전으로 쓰는게 아니구나 싶었다. 그냥 업데이트 해버렸다가 지원하지 않는 라이브러리들과 힘싸움을 해야할 생각을 한다면 말이다...