개인적인 공부를 위해 진행 중인 프로젝트에서 인증 관련 라이브러리를 설치하고 테스트하던 도중, 갑작스럽게 MongoDB와의 연결이 끊기는 현상이 발생하였다.
오류 메시지인 connect ECONNREFUSED ::1:27017에 대해 구글 검색을 통해 해결책을 찾았다. 이 오류가 상당히 많은 사람들이 겪었던 것인지, 검색하기 어렵지 않았으며 해당 오류도 간단하게 해결할 수 있었다.
해결 예시 코드
수정 전
mongoose
.connect('mongodb://localhost:27017/') 수정할 부분
.then(() => {
console.log('데이터베이스 연결');
})
.catch((error) => {
console.error('연결 오류:', error);
});
수정 후
mongoose
.connect('mongodb://127.0.0.1:27017/') 수정된 부분
.then(() => {
console.log('데이터베이스 연결');
})
.catch((error) => {
console.error('연결 오류:', error);
});
위의 예시대로 코드를 수정하고 테스트한 결과 오류가 제대로 해결된 것을 확인 할 수 있었다.
솔직히 말해서 하루도 지나지 않은 상황에서 MongoDB의 연결이 제대로 이루어지지 않는다는 사실이 굉장히 궁금했다. 이 오류에 대해 더 알아보기 시작하였고, 문제 해결 방법을 찾을 수 있는 mongodb 커뮤니티를 발견하였다.
간단하게 설명하면, 이 오류는 Node.js의 버전 차이로 인해 발생한 것이다. Node.js v17.x 이상을 사용하는 경우, 위에서 설명한 해결 방안에 따라 코드를 수정해야 한다.
오류가 발생한 원인을 파악하면서, 개인적인 공부를 시작하기 전에 다른 프로젝트를 위한 개발 환경을 구축하면서 Node.js 버전을 변경한 적이 있다는 것을 깨달았다. 따라서 마지막으로 원래 사용하던 Node.js 버전으로 복구한 후 테스트를 진행하였고, MongoDB와 정상적으로 연결되는 것을 확인할 수 있었다.
앞으로는 환경 설정에 따른 버전 관리에 조금 더 신경을 써야겠다.
좋은 정보 얻어갑니다, 감사합니다.