이글은 Mongo DB를 하나도 사용하지 않은 상태에서, 한번 사용해보기 위해 간단히 짚고 넘어간 개념들을 정리 한 입문 포스팅입니다. 이글은 정확한 Mongo DB의 스펙을 안내하는 글이 아닙니다. 혹시 정확한 스펙과 세부 기능을 알고 싶으신 분들은 다른 글을 보시길 바래요~
RDBMS vs NoSQL
DB에는 크게 두가지 종류의 DB가 있다. RDBMS (관계형 데이터베이스) 가 있고 그리고 NoSQL 이 있다. 관계형 데이터베이스는 우리가 처음에 db공부를 했을 때 들었던 MySQL 이 대표적인 관계형 데이터베이스이다. RDBMS 와 NoSQL 의 내가 느낀 가장 큰 차이는 schema 가 있고 없고의 차이 같다. RDBMS 는 처음에 정의한 데이터 스키마에 새로운 필드를 넣어주고 싶으면 테이블을 다시 만들어줘야 되고 정해진 데이터 필드에 맞는 데이터만 넣어줄 수 있지만, NoSQL 은 스키마에 새로운 필드를 넣고싶으면 그냥 추가만 해주면된다.
RDBMS 는 데이터 중복이 없이 관계를 통해서 데이터를 정의하므로 데이터 무결성 (data integrity)를 보장하여 부정확한 데이터가 있을 위험이 줄어드는 장점이 있지만 솔직히 개발자입장에서 처음에 완벽한 스펙이 기획이 된다면 좋겠지만 필요에 의해서 필드를 넣고 없애고 하는 경우가 빈번하기 때문에 나같은 초보 개발자입장에서는 NoSQL 을 쓰는게 편하다.. 고생을 해보면 마음이 바뀔지도... 동일한 데이터가 여러 컬렉션에 있으면 모두 update 를 해줘야 한다는 단점이 있지만 업데이트는 컴퓨터가하니 일단 기능을 확장하고 할때 스키마를 마음대로 수정할 수 있는 NoSQL 이 개발하기 편한게 편하다..
1. 개요
Mongo DB 는 NoSQL 중 하나로 Document Oriented 데이터 베이스이다.
Document Oriented라는 말은 쉽게 말해서 JSON 형식이나 XML 형식으로 DB에 데이터를 저장하는 것을 말한다. Mongo DB 는 key : value 로 이루어진 JSON 의 형태로 데이터를 저장한다.
Json 형식 예시
{
"firstName": "free",
"lastName": "kim",
"email": "test@gmail.com"
"study" : ["com", "game"]
}
RDBMS 의 한 row 를 MongoDB 에서는 Document 라고 표현을 하고 table 을 Collection 이라고 한다. 그리고 Collection 들의 집합은 Database 이다. 개념은 동일하고 용어는 좀 다르니 가볍게 생각하자.
2. MongoDB 장단점
그래도 쓰는데 장단점은 알아야 하니 가볍게 정리해보고 넘어가겠다. 여러가지 장단점이 있겠지만 그냥 가장 눈에 띄는 장단점을 짚고 넘어가 본다. 사용을 해보면서 느끼는 장단점은 추가적으로 포스팅을 하겠다. 초보자이니 이정도만 알고 바로 시작! 아 그런데 트랜잭션 지원하려면 Replica SET 환경을 구성해줘야 한다는 포스팅이 있다.... 필요할때... 찾아서 해봐야지..
장점
1. 속도가 빠르다.
2. 스키마가 없다.
단점
1. join 사용 불가
2. 메모리 사용량 큼
3. Mongo DB 설치 (Window)
1. MongoDB Communi Server 다운로드 (https://www.mongodb.com/download-center/community)
맞는 os를 눌러서 다운받는다.
2. 윈도우 실행시 자동 으로 Service 가 실행되는게 싫다면 체크해제
3. GUI 툴이 필요 없다면 체크해제
4. 아무일도 벌어지지 않아도 당황하지 마시길.. ProgramFile 에 가보면 잘 설치되어 있는 몽고 DB를 볼수 있다. 설치라기보단 압축 해제해 놓은 수준인듯.
5. 실행을 위한 bin 폴더 경로 환경변수 Path에 추가.
4. MongoDB 실행
mongod
cmd 에서 해당 커맨드를 입력해주면 아래와 같은 에러를 볼 수 있다. 몽고db가 참조하는 데이터 폴더를 안만들어 줫기 때문이다.
path 를 지정해주고 mongodb 를 실행한다.
mongod --dbpath 경로
해당 path 에 뭔가가 어마어마 하게 깔린다. 이렇게 mongodb run time 시에 path 옵션을 주어 mongo db 를 실행하게 된다.
보면 local host 의 27017 포트에서 몽고디비가 귀를 기울이면서 듣고 있는 것을 볼 수 있다. 웹브라우져에서 127.0.0.1:27017 쳐보면 아래와 같이 잘돌고 있는게 보인다
종료하고 싶으면 mongod 를 실행한 cmd 창에서 ctrl + c 를 이용하여 종료하면 몽고디비 서비스가 종료된다
아래의 명령어를 통해서 Shell 을 실행할 수 있다.
Shell 을 시작 하기 전에는 mongo DB 서비스를 켜두는 것은 잊지말자.
mongo
'MongoDB' 카테고리의 다른 글
[MongoDB] 몽고DB 기본 명령어 (1) | 2020.03.31 |
---|