이제, MySQL
과 다른 유형의 데이터베이스인 몽고디비
를 사용 해 볼거다! 몽고디비
의 가장 큰 특징은 바로 자바스크립트 문법을 사용한다는 점이다. 노드도 자바스크립트를 사용하기때문에, 데이터베이스 마저 몽고디비
를 사용한다면 생산성이 더욱 향상 될 것이다!
다만 몽고디비
는 흔히 사용하는 RDBMS
가 아닌 NoSQL
이므로 특징을 잘 파악해야 한다.
MySQL
은 SQL
을 사용하는 대표적인 데이터베이스 언어이며, SQL
을 사용하지 않는 NoSQL
이라고 부르는 데이터베이스도 있다. 그 중 몽고디비
는 NoSQL
의 대표주자이다.
SQL
과 NoSQL
은 여러가지 차이점이 있는데, 그 중 대표적인 차이점은 다음과 같다.
(* 여기에서 설명하는 NoSQL
의 특징은 몽고디비
의 특징이다!)
SQL(MySQL) | NoSQL(몽고디비) |
---|---|
규칙에 맞는 데이터 입력 | 자유로운 데이터 입력 |
테이블 간 JOIN 지원 | 컬렉션 간 JOIN 미지원 |
트랜잭션 지원 | 트랜잭션 미지원 |
안정성, 일관성 | 확장성, 가용성 |
용어(테이블,로우,컬럼) | 용어(컬렉션,다큐먼트,필드) |
NoSQL은 테이블이 없다. 테이블에 상응하는 컬렉션
이라는 개념이 있지만, 컬럼을 따로 정의하지는 않는다.
(컬렉션에는 어떠한 데이터라도 다 들어갈 수 있다.)
몽고디비는 JOIN 기능이 없다. JOIN을 흉내내는 것은 가능하지만, 하나의 쿼리로 여러 테이블을 합치는 기능이 항상 가능하지는 않다.
트랜잭션을 지원하지 않는다. (트랜잭션이란, 여러 쿼리가 모두 정상적으로 수행되거나 아예 하나도 수행되지 않음을 보장하는 기능) 따라서, 데이터 일관성에 문제가 발생할 수 있다.
(* 현재 버전에서는 트랜잭션을 지원 한다고 하네여)
그럼에도 불구하고 몽고디비
를 사용하는것은, 확장성과 가용성 때문이다. 데이터를 빠르게 넣을 수 있고, 여러 서버에 쉽게 분산이 가능하다.
많은 회사는 꼭 한가지 데이터베이스를 사용하는것이 아니라, MySQ
L과 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에 접속된 화면이다. 기본적으로 admin
과 local
데이터베이스가 생성되어있다!!
나는 새로운 데이터베이스를 생성하기 위해, 왼쪽에 있는 Databases를 클릭 해 줬다! 그러면 옆에 CREATE DATABASE
버튼이 생성된다.
해당 버튼을 클릭해주자.
정보를 이렇게 기입하고, Create Database
버튼을 눌러줬다. (users 컬렉션도 생성해줬다.)
이렇게 만들어졌다~~
이제 컬렉션
을 생성해야한다. 컬렉션
은 MySQL의 테이블
에 대응되는 개념이다.
하지만, 컬럼을 정의 할 필요 없이 단순히 이름만 정하면 된다!
아까만든 users 컬렉션 외에 comments 컬렉션도 만들어둘거다.원하는 데이터베이스를 클릭한 뒤, CREATE COLLECTION
버튼을 눌러준다.
정보를 입력 한 뒤 CREATE 버튼을 눌러주면 끝
이렇게 나온당