메시지 전송 기능 (WebSocket) 로직을 추가하고 프로젝트를 실행하자 MongoDB 에러가 터졌다.
그 전에는 Warning 정도였는데 이제는 Error 로 실행이 되지 않았다.
그저 로직만 있는건데 왜 Error 가 발발할까?
spring-boot-starter-data-mongodb
) 을 추가하면, 👉 Spring Boot 가 애플리케이션 시작 시점에 자동으로 MongoDB 관련 빈(MongoClient 등)을 초기화하려고 시도함 👉 이게 ApplicationContext 초기화 단계에서 일어남 → 내가 WebSocket 을 실행하든 안 하든 상관없음→ 이전에는 Mongo 관련 빈이 없었음 → 에러 X
→ 지금은 ChatMessageService 등 만들면서 Mongo 의존성 or Bean 추가됨 →
Spring Boot 가 MongoClient 를 무조건 띄우려고 함
2025-06-09T21:31:50.278+09:00 WARN 42406 --- MongoReactiveHealthIndicator : Mongo health check failed
—> 이게 애플리케이션 startup 단계에서 발생
상황 | 결과 |
---|---|
ChatMessage 전송 기능 실행 X | 그래도 에러 발생 |
이유 | Mongo 의존성 추가됨 → Spring Boot 가 startup 시 MongoClient 초기화 시도 |
영향 | Mongo 가 안 떠있으면 health check 실패 / 일부 빈 등록 실패 가능 |
Caused by: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: localhost/[0:0:0:0:0:0:0:1]:27017
👉 localhost:27017
→ MongoDB 기본 포트
👉 현재 애플리케이션이 MongoDB 에 연결 시도했는데 → 연결 거부 (Connection refused) 발생
→ 애플리케이션이 MongoDB 사용 설정이 되어 있음 (Spring Data MongoDB 적용 중)
→ Health check 도 시도 (mongo
health check failed 로그 있음)
→ 그런데 MongoDB 서버가 현재 로컬에서 꺼져 있음 (port 27017 에 없음)
원인 | 설명 |
---|---|
MongoDB 서버가 꺼져있음 | localhost:27017 연결 실패 → Connection refused |
Spring Boot app 에서 Mongo 연결 시도 중 | MongoClient 설정 자동 적용됨 |
Health check 실패 | /actuator/health 확인 시 mongo 부분 unhealthy |
docker-compose up
등)brew services start mongodb-community
이런 걸로 실행레포지토리에 docker-compose.yml 가 따로 없어서 준비된 Mongo 가 없다고 판단했다.
# 가장 기본적인 Mongo 실행 (로컬에서 27017 포트로)
docker run --name mongo -d -p 27017:27017 mongo:6.0
—> 이랬더니 바로 다른 에러가 났다..
—> 원래라면 localhost:27017
에 Mongo 가 떠서 에러가 나지 않는다.
—> Docker Engine(데몬) 이 실행되고 있지 않아서 나는 에러다.
👉 메뉴바에 고래 아이콘 🐳 떠 있는지 확인
docker info
→ 여기서 정상 정보 나오면 데몬 실행 중 (이제 docker run
가능)
docker run --name mongo -d -p 27017:27017 mongo:6.0
👉 Docker Desktop 화면에도 mongo 컨테이너 생김
docker ps
MongoDB 에러로 인해 실행되지 않는 에러를 디버깅했다.