해당 글은 Mysql과 같은 RDBMS를 배우고 오신 분이 실수도 있고 처음으로 DB를 접근하시는 분 이 실수도 있습니다. 초보자 시점과 Mysql과 다른 점을 집중적으로 적었으니 꼭 글을 끝까지 읽어보신 후 실습 부탁드립니다 😁
MongoDB Install
MongoDB 에서 접속 후 상단의 Software
→ Community Server
를 클릭한다.
자신의 사양에 맞게 버전을 설정후 Download를 클릭한다.
Next 클릭
동의 후 Next 클릭
Complete
를 눌러 설치합니다.
기본경로 C:\Program Files
밑에 설치하고자 한다면 Complete
다른경로에 설치하고 싶다면 Custom
을 선택하면 됩니다.
note
설정을 변경하지 않고 기본 값 그대로 설치한다.
GUI기반 MongoDB Tool을 설치하실 분은 Install MongoDB Compass
체크하고 설치하시면 됩니다.
해당 페이지에서는 DataGrip
을 사용할 예정이지만 나중에 살펴보기 위해 이번 편에서는 설치하도록 하겠습니다.
Install 클릭하여 설치를 진행합니다.
이전에 체크한 MongoDBCompass
가 설치된 것을 확인할 수 있다.
환경 변수 설정
info
[Windows]Mongodb설치하고 환경변수 설정하기(ver 4.2.0) 을 참고하여 작성되었습니다.
설치 후 mongod
, mongo
와 같은 실행파일을 커맨드라인에서 경로를 들어가지않아도 편리하게 바로 실행할 수 있도록 환경변수를 추가해야 한다.
그냥 어디서든지 명령어를 실행하고 싶어서 그렇습니다 😏
먼저 mongodb가 설치되어있는 폴더의 주소를 복사합니다.
환경변수 설정 페이지로 들어갑니다.
내 PC
우클릭 →속성
→ 왼쪽의고급 시스템 설정
→환경 변수
이후 Path
를 선택 후 편집을 클릭합니다.
새로 만들기
를 클릭하여 이전에 복사한 경로를 붙여넣고 확인을 눌러 설정합니다.
명령 프롬프트로 실제로 잘 적용되었는지 확인해봅니다.
$ set path
C:\Program Files\MongoDB\Server\[버전명]\bin
보인다면 환경변수 설정 완료입니다.
mongo server가 활성화 되어있다면 mongo
입력 시 mongoDB Shell으로 넘어가는걸 확인할 수 있습니다.
Server Setting
개념
대부분의 DB는 외부에서 접속하기 위해 Server를 내장하고 있다.
예를 들어 개인 공부 및 대학교 수업에서 Mysql으로 실습 시 설치할 때 잘보면 MySQL Server도 설치하는 것을 볼 수 있다.
그렇기 때문에 DB Server가 활성화 되어있지 않으면 DB의 접근은 불가능하다.
필자의 경우 DBMS Install시 DB는 DB자체라고 생각했지 Server안에 DB가 있는 줄 몰랐다.
해당 개념을 알고 접근하면 추후, JDBC와 같은 DB Connection시 이해하기 쉬울 것이다.
MongoDB도 마찬가지다. 아래의 명령어를 통해 Server를 활성화 시키고 접근할 수 있다.
행위 | 명령어 | 설명 |
---|---|---|
Server | mongod | mongoDB 데몬의 약자로 mongoDB server를 활성화 시킵니다. |
Client | mongo | Client 신분으로 mongoDB에 접속합니다. |
보통 DBMS를
mysql
으로 입문하게 되면mysql workbench
편리한 GUI Tool 덕분에 익숙함에 모를 수 있지만 사실 백단에서는 mysql도 똑같이 shell기반으로 돌아가고 있다.
활성화 전 mongod 이해하기
mongod
Server를 활성화 시켜보겟다.
log가 쭈우욱 찍히더니 마지막 cmd를 보면 server가 실행되지 않은 것을 확인할 수 있다.
트러블 슈팅 전 mongod
라는 명령어에 대해 알 필요가 있다.
mongod -help
를 입력해보면 해당 명령어에 대한 파라미터 목록이 나온다.
우리는 argument없이 mongod
만 호출했음으로 Default으로 작동한 것이다.
DB를 저장할 디렉토리 생성
server 실행 전 어떤 DB를 server에 올릴껀지 선택해 줘야 한다.
mongod
의 DB 기본경로는 Windows 기준 C:\data\db
이다. 해당 디렉토리를 만들고 다시 실행해보자.
현재는 빈 디렉토리로 되어있다. 이제 server를 실행해보자.
많은 log와 함께 정상적으로 server가 실행되는 것을 볼 수 있다.
잘보면 port 27017
으로 실행되고 있다는 log를 확인할 수 있다.
info
MongoDB의 기본 포트 번호는 27017
이다.
또한, Default Value가 생성된것을 확인할 수 있다.
이제 해당서버에서 일어나는 CRUD는 서버가 지정된 아래 디렉토리에 모두 저장된다.
설정 정보 변경하기
근데 port와 db 경로를 변경하고 싶으면 어떻게 해야 할까?
mongod
실행 시 --config
및 --dbpath
파라미터로 값을 넘겨줄 수 있다.
번외 🤬
Windows의 경우 MongoDB
설치 시 자동으로 Server가 활성화되어있으며
Windows Service에도 등록되어있다.
서비스에 들어가면 확인할 수 있다.
덕분에 내가 Server를 활성화 하지 않았는데 활성화 되어있어 훨씬 더 햇갈리게 되었다. 😭
어디를 참조해?
사용 환경에 따라 다르지만 Local으로 사용할 경우 이미 Windows Service에 등록되어 있는 것을 사용하는 것이 편리해 보인다.
혹은 커스텀해서 Service으로 등록할 수 있다!
자동으로 생성된 MongoDB Windows Service를 까서 확인해보면 실행 파일 경로가 아래와 같이 설정되어 있다.
"C:\Program Files\MongoDB\Server\4.4\bin\mongod.exe" --config "C:\Program Files\MongoDB\Server\4.4\bin\mongod.cfg" --service
위에서 설정 정보 변경하기를 보고오면 어떤 메커니즘으로 호출되는지 알 수 있다.
사실 우리가 이전에 환경변수를 지정하러 들어갔던 디렉토리를 보면 .cfg
파일이 생성되어 있었다.
기본으로 등록된 Windows Services를 사용하면 해당 경로로 log와 DB가 저장되는 것을 확인할 수 있다.
Hello, world
Server에 대한 개념이 길었지만 해당 챕터를 이해하면 추후, 다른 DBMS 사용시 많은 도움이 될 것이다.
자 이제 Server를 열고 mongo
를 통해 접속해보자.
당연히 Server 활성화 안하고 들어가면 Connection 되지 않는다.
DB list 출력
show dbs
으로 DB list를 출력합니다.
DB 생성
use [DATABASE_NAME]
명령어를 통해 Database를 생성합니다.show dbs
으로 조회해도 최소 한개의 Document가 없어서 출력되지 않습니다.- 한개의 Document를 추가합니다.
- 정상적으로 조회되는 것을 확인할 수 있습니다.
DataGrip 연결
+
버튼을 클릭 후 데이터 소스에서 MongoDB를 클릭한다.
만약 MongoDB Driver가 없다면 설치하고 Host와 Port를 입력 후 연결 테스트를 클릭한다.
note
접속 Server에 따라 계정 정보 등 필요한 값을 입력합니다.
정상적으로 연결되었다는 피드백이 있으면 적용 후 확인을 클릭한다.
정상적으로 연결되어 DataGrip에서 DB list를 출력하고 있다.
결론
사실 Server쪽이 아니면 크게 설치시 어려움은 없다.
하지만 대부분의 튜토리얼이 MongoDB 설치 후 mongod
으로 server를 활성화 시켜서 설명을 진행하는데
사실은 백단에서는 Windows Service으로 mongod
가 실행 중 이여서 C:\data\db
와 같이 지정한 경로에 DB가 저장되지 않을 수도 있고
mongod
를 종료해도 mongo
으로 계속 Local Server에 접속되는걸 보고 뭐야 서버 왜 안죽어! 를 경험할 수도 있다.
필자도 위의 이유로 화가나서 작성되었다.