안녕하세요!
오늘은 mongoDB compass 에서 새 DB 만들고 외부와 연결하는 방법에 대해 작성해볼까 합니다.
어쩌다가 게임 내 데이터를 다루게 되면서 mongoDB 에 대해 써보게 되었고 더 편리하게 쓰기 위한 도구로 mongoDB Compass를 사용하게 되었습니다.
다만, 데이터 송신 등 잘 아는 분야가 아니여서 좀 헷갈린 부분들이 많았는데 그 부분에 대해 작성해볼까 합니다.
먼저, 제가 문제가 생긴 부분은 mongoDB 와 연결해서 데이터를 보낼 때, 컴퓨터 내에서 잘 되는데 태블릿으로 하면 안되는 게 문제였습니다. 이 문제는 데이터 받을 때, 기본적으로 mongoDB에서 로컬 호스트를 사용해서 문제가 된 것을 알게 되었습니다.
127.0.0.1 이 문자 많이 보셨을 텐데, 로컬호스트(localhost) 라 불리며 이를 사용하면 어떤 컴퓨터여도 자기 자신을 자동으로 가리킵니다. 즉, 내 컴퓨터에서만 사용할 수 있는 주소로 127.0.0.1 을 사용하면, 다른 컴퓨터나 네트워크에서 접속할 수 없습니다. 결과적으로 자기 자신의 컴퓨터에서 실행되는 서비스를 테스트할 때 사용합니다.
mongodb://127.0.0.1:27017는 현재 실행 중인 MongoDB 서버에 자기 자신의 컴퓨터에서만 연결을 시도한다는 의미가 됩니다.
그렇다면 자신의 컴퓨터를 바탕으로 하는 외부에서 접속 가능한 주소는 어떻게 찾을까요?
cmd 창을 켜서 "ipconfig" 명령어를 입력하면 쭉 무언가 뜨고 그 중에 IPv4 주소가 바로 내 컴퓨터 사설 IP 주소입니다.
192.168.x.x 대역은 사설 네트워크에서 사용하는 IP 주소 범위이기 때문에 로컬 네트워크에서 사용되는 주소로, 내부 네트워크(예: 가정이나 회사 네트워크)에서만 유효합니다. 즉, 같은 네트워크에 연결된 다른 장치와 통신할 수 있어 같은 네트워크를 잡고 있는 태블릿에서도 사용 가능하다는 의미입니다.
다만 외부 네트워크나 인터넷에서는 사용되지 않으며, 라우터나 게이트웨이를 통해 다른 네트워크와 연결된다고 합니다.
그렇다면 mongoDB 기본 주소 설정을 바꾸는 방법에 대해 알려드리겠습니다.
MongoDB의 파일 안 bin > mongod.conf 를 열게 되면
다음과 같이 뜨는데 여기서 bindIp 이 기본적으로 127.0.0.1로 설정되어 있는데
자신의 사설 IP 주소인 192.168.x.x 로 바꿔주거나 0.0.0.0 으로 바꾸면 됩니다. 0.0.0.0 은 모든 네트워크 인터페이스에서 접근 허용이라는 의미입니다.
저장 후 창을 닫으면 끝이 아니라 완전 MongoDB 서버 재시작해줘야 합니다. 여러가지 방법이 있지만 저는 서비스 관리를 통해 MongoDB 서비스를 재시작해주었습니다.
1. 윈도우 키 + R을 눌러 services.msc를 입력하고 Enter를 누릅니다.
2. 서비스 목록에서 MongoDB를 찾습니다.
3. 마우스 오른쪽 버튼을 클릭하고 다시 시작을 선택합니다.
그리고 mongoDB Compass 를 가서 새로운 New Connection 을 만들고 URI 을 사설 IP 이런 mongodb://192.168.x.x:27017/ 식으로 설정해주면 저는 이제 태블릿에서 192.168.x.x:27017 을 통해 접속할 수 있게 되었습니다.
만약에 그래도 연결이 안된다면 27017 포트 번호인데 해당 포트가 열려있는지 확인해보시길 바랍니다.
후 다행히 잘 연결되고 초록불이 들어옵니다. 이제야 시작점에 선 느낌이네요. 그다음으로 테스트 해보는 건
mongodb://test:1q2w3e4r@192.168.x.x:27017 으로 test:1q2w3e4r@ 의미는 test 가 아이디 1q2w3e4r 가 비밀번호로 해당 주소로 아무나 받는 것이 아닌 사용자를 인증 받아 데이터를 받는 형식인데 현재까지는 위 아이디와 비밀번호가 있든 없든 다 받아지는 문제가 있습니다. 이 문제는 해결 후에 후에 다시 작성해보도록 하겠습니다.
여기까지 글 읽어주셔서 감사합니다.
댓글