개인 프로젝트에서 Redis 의 Sorted Set 기능이 필요해 Nest.js 인메모리 cache-manager 에서 옮기던 도중 다음과 같은 오류를 겪었어요.

127.0.0.1:6379 에서 Redis 연결 실패
오류의 원인은 WSL 의 IP 문제였어요. WSL 에서 localhost 는 Windows 의 localhost 와 달랐기 때문에 WSL 에서 가동한 Redis는 127.0.0.1 이 아닌 WSL 의 localhost(172.x.x.x) 에서 돌아가는 중이었죠.
검색해보니 방화벽 문제로 인해 연결이 되지 않을 가능성이 있었어요. 다만 방화벽 문제일 가능성은 매우 적어보였기 때문에 잠시 컴퓨터의 방화벽을 꺼보고 다시 실행해보는 방법을 해보았어요.
방화벽 문제가 맞았다면 방화벽 설정을 하는 게 더 간편했겠지만, 가능성이 매우 적어보였고 5초 이내에 "개인" 컴퓨터의 방화벽을 해제하는 것이었기 때문에 이러한 방법을 선택하였어요.
결과적으로 방화벽 문제는 아니었어요.
이 케이스는 redis-cli 를 통해 간단히 검증해볼 수 있었어요.

PING-PONG 이 정상적으로 되는 것을 보아 Redis 의 문제는 아니었어요.
기본적으로 Redis 는 127.0.0.1 로 bind 가 설정되어있어 로컬 호스트에서만 접속이 가능했어요. 0.0.0.0 으로 설정하면 외부에서 접속이 가능하기 때문에 Windows 에서도 WSL IP 로 접속이 가능해요.
하지만 WSL IP 를 몰랐기 때문에 이는 최종적인 해결책은 아니었어요.
위의 검증 과정을 통해 원인을 WSL IP 문제로 좁힐 수 있었어요.
hostname -I
WSL 에서 IP 주소를 확인한 후, 확인한 IP 주소로 Redis 에 연결해보니 드디어 해결되었어요.
다만 이후에도 WSL 의 172.x.x.x 를 매번 입력하기는 번거로웠죠.
netsh interface portproxy add v4tov4 listenport=6379 listenaddress=0.0.0.0 connectport=6379 connectaddress=172.x.x.x
확인한 WSL 의 IP 주소를 Windows 의 localhost 로 포트포워딩하는 명령어를 통해 Windows 에서 localhost 로 WSL 의 IP 에 접근할 수 있었어요.
Redis + WSL 에서 어떻게 하면 해결되는지에 대한 답을 찾기는 까다로웠어요. 자료도 그리 많은 편이 아니었고, Claude 가 아니었다면 며칠은 더 헤맸겠죠.
다만 케이스가 명확했고, 가능한 원인을 하나하나 검증해보니 생각보다 쉽게 원인을 찾을 수 있었어요. 이 트러블슈팅 사건으로 인해 당황하지 않고 가능한 원인을 하나하나 줄여나가는 능력을 기를 수 있었어요.
좋은 글 감사합니다.