몽고디비_NoSQL과 몽고디비(몽고디비 설치하기)

이애옹·2023년 1월 3일
0

Node.js

목록 보기
28/32

이제, MySQL과 다른 유형의 데이터베이스인 몽고디비를 사용 해 볼거다! 몽고디비의 가장 큰 특징은 바로 자바스크립트 문법을 사용한다는 점이다. 노드도 자바스크립트를 사용하기때문에, 데이터베이스 마저 몽고디비를 사용한다면 생산성이 더욱 향상 될 것이다!

다만 몽고디비는 흔히 사용하는 RDBMS가 아닌 NoSQL이므로 특징을 잘 파악해야 한다.


📝 NoSQL vs SQL

MySQLSQL을 사용하는 대표적인 데이터베이스 언어이며, SQL을 사용하지 않는 NoSQL이라고 부르는 데이터베이스도 있다. 그 중 몽고디비NoSQL의 대표주자이다.

SQLNoSQL은 여러가지 차이점이 있는데, 그 중 대표적인 차이점은 다음과 같다.
(* 여기에서 설명하는 NoSQL의 특징은 몽고디비의 특징이다!)

SQL(MySQL)NoSQL(몽고디비)
규칙에 맞는 데이터 입력자유로운 데이터 입력
테이블 간 JOIN 지원컬렉션 간 JOIN 미지원
트랜잭션 지원트랜잭션 미지원
안정성, 일관성확장성, 가용성
용어(테이블,로우,컬럼)용어(컬렉션,다큐먼트,필드)
  • NoSQL은 테이블이 없다. 테이블에 상응하는 컬렉션이라는 개념이 있지만, 컬럼을 따로 정의하지는 않는다.
    (컬렉션에는 어떠한 데이터라도 다 들어갈 수 있다.)

  • 몽고디비는 JOIN 기능이 없다. JOIN을 흉내내는 것은 가능하지만, 하나의 쿼리로 여러 테이블을 합치는 기능이 항상 가능하지는 않다.

  • 트랜잭션을 지원하지 않는다. (트랜잭션이란, 여러 쿼리가 모두 정상적으로 수행되거나 아예 하나도 수행되지 않음을 보장하는 기능) 따라서, 데이터 일관성에 문제가 발생할 수 있다.
    (* 현재 버전에서는 트랜잭션을 지원 한다고 하네여)

그럼에도 불구하고 몽고디비를 사용하는것은, 확장성과 가용성 때문이다. 데이터를 빠르게 넣을 수 있고, 여러 서버에 쉽게 분산이 가능하다.

많은 회사는 꼭 한가지 데이터베이스를 사용하는것이 아니라, MySQL과 NoSQL을 동시에 사용한다. 예를 들어 항공사 예약 시스템의 경우 비행기 표 정보가 모두 일관성있게 전달되어야 하므로, 예약 처리에는 MySQL을 사용한다. 하지만 핵심 기능 외에 빅데이터, 메시징, 세션 관리 등에는 확장성과 가용성을 위해 몽고디비를 사용한다.


📝 몽고디비 설치하기

일단, 설치를 위해 몽고디비 홈페이지에 접속 해 준다.

그 다음, DOWNLOAD 버튼을 눌러 다운을 시작해준다!

실행 파일을 실행 시키고, 동의를 체크 한 다음 넘겨준다.

Complete를 체크 한 후 넘겨준다.
(제공하는 모든 기능 다운로드)

여기도 그냥 넘긴댜

설치 버튼을 눌러준다!

설치완료~~~

설치가 완료된 후 꼭 해야하는 작업이 있다!!

윈도우의 경우 C:\ 에 data 폴더를 만들고, 그 안에 db 폴더를 만들어줘야 한다.(하지 않으면 오류가 난다고 하니 주의!!)

이제 몽고디비가 설치된 경로로 이동해서, mongod.exe 파일을 실행시켜준다.
( 나 같은 경우 C:\Program Files\MongoDB\Server\6.0\bin 이런 경로였다.)

실행 시키면 cmd 창 같은게 잠깐 켜졌다가 사라진다.

그 다음 브라우저 창에 http://localhost:27017/ 경로를 입력 해 주면,

이런 문구가 나오는데, 이 문구가 떠야 몽고디비가 실행되고 있다는 의미라고 하니까 참고하깅

아까 만든 db 폴더로 들어가면 새로운 폴더랑 파일들이 많이 생겼다~


📝 데이터베이스 및 컬렉션 생성하기

몽고디비는 관리도구로 컴퍼스를 제공한다. 윈도우의 경우 몽고디비와 함께 설치 완료 했으므로, 따로 설치 할 필요 없다.

윈도우 검색창에 MongoDBCompass라고 검색하면 실행된다.

새로운 커넥션을 생성해야 하므로, CONNECT 버튼을 클릭 해 줬다.

localhost에 접속된 화면이다. 기본적으로 adminlocal 데이터베이스가 생성되어있다!!

나는 새로운 데이터베이스를 생성하기 위해, 왼쪽에 있는 Databases를 클릭 해 줬다! 그러면 옆에 CREATE DATABASE 버튼이 생성된다.

해당 버튼을 클릭해주자.

정보를 이렇게 기입하고, Create Database 버튼을 눌러줬다. (users 컬렉션도 생성해줬다.)

이렇게 만들어졌다~~

이제 컬렉션을 생성해야한다. 컬렉션은 MySQL의 테이블에 대응되는 개념이다.

하지만, 컬럼을 정의 할 필요 없이 단순히 이름만 정하면 된다!

아까만든 users 컬렉션 외에 comments 컬렉션도 만들어둘거다.원하는 데이터베이스를 클릭한 뒤, CREATE COLLECTION 버튼을 눌러준다.

정보를 입력 한 뒤 CREATE 버튼을 눌러주면 끝

이렇게 나온당

profile
안녕하세요

0개의 댓글