🎯상황 설명
- 로그인/로그아웃 시 토큰을 관리하기 위해 redis를 이용했다.
- 로컬에서는 문제가 없어서 배포 환경까지 올렸는데, redis에 접근해야 할 때마다 아래와 같은 에러가 발생했다.
- 에러 로그
- Unable to connect to localhost/~~
- Connection refused
에러 로그가 친절하게 문제점을 알려주고 있다.
🚀 문제 파악
✨ 핵심
- redis를 localhost로 설정했기 때문에 redis를 찾지 못해 발생한 에러이다.
- docker-compose에서 지정한 서비스 이름을 이용해 host를 설정하도록 변경하면 된다.
🌎 배포 환경에서의 localhost
- localhost는 컨테이너 내부에서의 자기 자신을 가리킨다.
- Spring boot 컨테이너 내에서 localhost:포트번호로 접속을 시도하면 Spring boot 컨테이너 내부에서 redis를 찾으려고 시도한다.
- 하지만 redis는 별도의 다른 컨테이너로 띄워져 있으므로 Spring boot 컨테이너 내부에 redis가 존재하지 않는다.
🏠 로컬 개발 환경에서의 localhost
- redis가 호스트 머신(OS)에서 직접 실행 중이기 때문에 Spring boot에서 localhost로 접근을 시도해도 된다.
- 구조가 아래와 같기 때문이다.
[호스트 머신]
├── Redis: localhost:6379
└── Spring Boot: localhost:8080
🪄 문제 해결
- 당시 나는 GitHub Repository secrets를 이용해서 데이터를 관리하고 있었기에 알맞게 수정했다.
- 하지만 불구하고 계속 localhost로 접근을 시도했다. 중간에 환경변수들을 확인해도 맞게 잘 넘어오는데 실행만 되면 안 돼서 chatGPT한테 조언을 구했다.
- "하드코딩"되어 있을 수도 있다고 해서 '에이~ 설마' 했는데 진짜였다..
'독학 > [etc] 개발 관련 내용 정리' 카테고리의 다른 글
[배포🌎] AWS EC2, GitHub Action, Docker compose를 이용한 CI/CD 자동화 (2) (0) | 2025.05.18 |
---|---|
[배포🌎] AWS EC2, GitHub Action, Docker compose를 이용한 CI/CD 자동화 (1) (0) | 2025.05.18 |
[😎SwaggerHub] 협업을 위한 SwaggerHub 이용하기 (0) | 2024.12.16 |
[😎Swagger] 스프링 프로젝트 swagger 세팅하기 (1) | 2024.12.16 |
[Android Studio📱] Build failed, Error running 오류 해결 (0) | 2024.11.07 |