NoSQL DB란
Not only SQL라는 뜻으로써 단순히 기존 관계형 DBMS의 특성뿐만 아니라 다른 특성들도 포용한다는 뜻으로 이해 된다. 정형화 되지 않은 데이터를 수용하고 그것들의 확장성을 쉽게 할 수 있는 장점이 있어 요즘 각광을 받는 것 같다. RDBMS와 NoSQL의 차이점을 잘 정리된 글이 있어 공유 한다.
Mongo DB
NoSQL 진영에서 제일 각광 받고 제일 많이 사용되는 Database이다. Mongo DB는 Document 기반으로 구성되었다. 또한 RDBMS의 ACID 대신 BASE특징을 지원한다. BASE는(Basically Available Sift state Eventually consistent)의 약자로써 기본적인 가용성을 보장한다고 이해하면 될것 같다.
Docker로 서비스 하기
기본적인 OS별 설치는 여기서 다루지 않기로 한다. Docker를 이용하여 컨테이너롤 서비스 하는 방법을 설명할 예정이다.
Mongo DB 컨테이너 실행
기본적으로 아래 사이트를 방문하여 MongoDB의 이미지 버전들과 사용법을 알 수 있다
https://hub.docker.com/_/mongo
아래 명령어로 서비스를 구동해 보자
docker run -d --name mongodb-test -p 17017:27017 \
-v ~/mongod.conf:/etc/mongod.conf \
-v ~/data/db:/data/db mongo --config /etc/mongod.conf
- -name : 컨테이너 이름 지정
-p: 포트 매핑을 해준다. 앞에 host port를 쓰고 뒤에 컨테이너 service port를 적어준다.
-v: 볼륨 매팅을 해준다, 여기서는 설정파일과 데이터 저장 경로에 대한 볼륨을 각각 지정 했다.
- -config: 설정파일 경로를 지정해 준다. MongoDB에서 설정파일 경로를 지정해 주지 않으면 기본적으로 설정파일을 읽어들이지 않는다.(MongoDB 설정파일에 대한 내용은 공식 문서를 참고하기 바란다.)
Docker-compose 사용
아래 yaml파일을 사용하여
version: "1.0"
services:
mongodb:
image: mongo
restart: always
environment:
- MONGO_INITDB_ROOT_USERNAME: monggo
- MONGO_INITDB_ROOT_PASSWORD: 1234
volumes:
- ~/mongod.conf:/etc/mongod.conf
- ~/data/db:/data/db
ports:
- "27017:27017"
MongoDB 접속
제일 쉬운 방법은 컨테이너로 접속하여 내부에서 MongoDB에 접속하는 방법이다.
아래 캡쳐는 구동된 컨테이너로 이동 후 DB에 접속하는 모습이다
Host에서 DataGrip를 이용하여 MongoDB 접근
컨테이너를 올릴때 사용된 정보를 입력하면 연결은 정상적으로 되는 것을 확인 할 수 있다.
다음편에서는 JPA를 이용하여 Spring boot에서 MongoDB 사용법에 대하여 다루어 볼 예정이다.
https://www.samsungsds.com/kr/insights/1232564_4627.html
https://elfinlas.github.io/2019/02/11/docker-on-mongo/
'DataBase' 카테고리의 다른 글
ORM 장단점 (0) | 2021.12.12 |
---|---|
Postgres Failover 방법 (0) | 2021.12.12 |
PostgreSQL 설치부터 이중화까지 (0) | 2021.12.12 |
MongoDB 기본적인 사용법 (0) | 2021.11.07 |
Docker로 PostgreSQL를 서비스 하기 (0) | 2021.11.03 |
Comment