[MongoDB] 몽고DB

Bam·2022년 3월 6일
0

Database

목록 보기
14/19
post-thumbnail

NoSQL

NoSQL은 이름에서 느낄 수 있듯이 SQL을 사용하지 않는 데이터베이스입니다. 사용하지 않는다고 했지만 이는 정확하지 않은 이야기이고, SQL을 사용할 수는 있으므로 No를 Not only라고도 부르기도 합니다.

그렇다면 SQL문을 사용하지 않았을 때의 장점은 무엇이길래 NoSQL이 등장하게 되었을까요? NoSQL 데이터베이스는 기존의 관계형 데이터베이스에 비해 융통성있고, 데이터를 다루는데 개선된 매커니즘을 다루고 있습니다. 기존 데이터베이스가 관계적이고, 구조적 데이터를 다루기 위해 규칙을 세웠다면 NoSQL은 그런 규칙에서 벗어나 비교적 자유롭게 다룰 수 있다는 점이 있습니다.

Mongo DB 소개

MongoDB(이하 몽고디비)는 NoSQL에서 가장 잘 알려진 데이터베이스들 중 하나입니다. 제가 몽고디비를 소개하는 이유는 몽고디비가 자바스크립트로 이용하는데 특화되어 있어서, 자바스크립트를 배워왔던 분들이라면 익숙하고 편하게 이용할 수 있기 때문입니다. 또한 자바스크립트 하나로 데이터베이스까지 다룬다면, 굉장한 생산성과 효율성을 가질 수 있다는 이점도 존재합니다.

NoSQL과 관계형 데이터베이스는 각각 이점이 있기 때문에 프로젝트에서 하나 이상의 데이터베이스를 섞어서 이용하기도 합니다.

MongoDB의 특징, MySQL과 비교

MySQL과 몽고디비의 특징을 비교하면 다음과 같습니다.우선 기존 관계형 데이터베이스와 몽고디비에서 사용하는 용어가 조금씩 다릅니다. 관계형 데이터베이스의 테이블(릴레이션), Row, Column이라고 부르던 것은 몽고디비에서는 컬렉션, Document, Field라고 부릅니다.
다음 그림은 기존의 관계형 데이터 베이스에서 사용하던 용어를 나타내는 그림입니다.이번에는 동일한 그림에 대해 MongoDB에서는 어떤 용어를 사용하는 지를 보여주는 그림입니다.
다음으로 큰 특징은 몽고디비는 데이터 입력이 자유롭다는 것 입니다. 컬렉션이라는 개념과 필드(관계형에서 컬럼)이라는 개념이 있으나, 따로 속성을 정의하지 않습니다. 몽고디비는 컬렉션만을 만들고 그 내부 document에 저장되는 데이터들은 개체마다 다양한 속성을 가질 수 있습니다.

또 다른 특징은 JOIN 명령이 존재하지 않는다는 점입니다. JOIN이 활용에 따라 아주 강력한 도구가 될 수 있다는 점을 고려하면, 이것은 단점이 될 수도 있는 특징입니다. 물론 JOIN과 비슷한 쿼리를 작성할 수는 있으나, JOIN 명령처럼 모든 상황에서 쿼리를 작성할 수는 없습니다.

마지막 특징은 확장성과 가용성인데, 이 특징이 몽고디비의 가장 강력한 장점입니다. 데이터 입력이 자유로워 컬렉션 내부의 일관성은 떨어지게 되지만, 데이터를 빠르게 입력하고, 여러곳에 분산시킬 수 있습니다.

몽고디비 설치하기

몽고디비는 공식 홈페이지에서 다운로드할 수 있습니다. 설치할 때 current 버전(작성일 기준 2022.01.26, V5.0.5)을 다운해 주세요.

다운로드 후 .msi를 실행해 설치를 진행합니다. Setup 타입은 complete로 진행해주세요.다음 화면에서는 체크박스를 해제하고 진행해주세요.그러면 다음 페이지에서 컴퍼스를 설치할거냐고 묻는데, 이것은 체크하셔도 되고, 안해도 됩니다.

몽고디비 컴퍼스는 몽고디비를 편하게 사용하기 위한 GUI 툴 입니다. Git의 소스트리나 MySQL의 워크벤치를 생각하시면 됩니다. 저는 콘솔로 진행할 예정이지만, 일단 컴퍼스도 설치하고 진행하도록 하겠습니다.설치가 완료되었다면, 추가적으로 작업을 해주어야합니다. 터미널(cmd, 콘솔)을 열고 설치 경로 bin으로 이동합니다. 따로 경로를 만지지 않았다면 보통 다음 위치에 존재합니다. 해당 경로를 환경변수에도 추가해주세요.

C:\Program Files\MongoDB\Server(설치 메이저 버전)\bin

그리고 C:위치에 data\db폴더를 만들어줍니다. 이 기본 경로가 존재하지 않는다면, 서버 실행시 오류가 납니다.

C:\data\db


서버를 실행해보겠습니다. 서버 실행 명령은 mongod입니다.

mongod

그러면 아래와 같은 로그들이 나오는데 중간에 보시면 27017번 포트로 서버가 실행되고 있음을 알 수 있습니다.



다른 콘솔 창을 열어 서버에 접속해보겠습니다. 서버에 접속하는 명령은 mongo입니다.

mongo

입력란이 '>'로 변경되었다면, 몽고디비 서버에 접속을 성공한 것 입니다.

관리자 계정 root를 만들어보겠습니다. use admin으로 어드민 db를 만들어주세요.

use admin

그 다음 다음 메소드를 통해 root 계정을 생성해주세요.

db.createUser({user: '계정명', pwd: '비밀번호', roles: ['권한']})

이렇게 메세지가 나온다면 관리자 계정 생성에 성공한 것 입니다.



서버를 실행할 때 --auth 옵션을 추가하면 DB 접속 시 권한이 있어야 접속이 가능하도록 서버를 실행할 수 있습니다.

//서버 실행
mongod --auth

//서버 접속
mongo admin -u 계정명 -p 비밀번호

몽고디비를 종료하는 방법은 Ctrl+C 혹은 quit를 입력하면 종료가 됩니다.

0개의 댓글