[Django] hash()의 함정: 멀티프로세스 환경에서 캐싱이 실패하는 이유
TL;DRDjango 멀티프로세스 환경에서 캐싱 데코레이터가 제대로 작동하지 않았다. 원인은 Python 내장 hash() 함수가 프로세스마다 다른 값을 반환하는 해시 랜더마이제이션 때문이었다. hashlib.sha1()으로 해싱을 구현해 해결했다.로컬에선 잘 되는데요?평화로운 인턴생활을 보내던 중, 복잡한 계산이 포함된 API 성능 최적화 작업을 맡았다.계산 로직이 100ms 이상 걸려서 캐싱 데코레이터를 직접 구현했다. 로컬 개발 환경에서 테스트해보니 완벽했다. 첫 번째 호출에서는 실제 계산을 수행하고, 두 번째 호출부터는 캐시에서 즉시 결과를 반환했다. 실제 계산 없이 캐시에서 바로 가져오니까 체감상 거의 즉시 응답이 왔다.동일한 입력에는 동일한 해시값이 나오고, 다른 입력에는 다른 해시값이 나오니..