2021_05_26

유지원·2021년 5월 26일
0
post-thumbnail

TIL - MongoDB

1. MongoDB

지금까지 관계형 데이터베이스로 MySQL을 공부했다면, 이번시간에는 대표적인 비관계형 데이터베이스인 MongoDB를 공부했다.
데이터를 테이블 형식이 아닌 도큐먼트(문서) 형식으로 저장하는 방식이다.
그렇기 때문에 데이터의 구조가 거의 없는 대용량의 데이터, 구조를 자주 업데이트해야 하는 상황, 수평적 확장이 필요할 경우 등에 많이 사용된다.

Atlas를 사용해서 클라우드에서 데이터베이스를 설정한다. Atlas 사용자는 클러스터를 배포할 수 있으며 이는 그룹화된 서버에 데이터를 저장한다.

MongoDB에서는 도큐먼트와 컬렉션 개념이 있다.

(1) 도큐먼트
데이터를 필드-값 쌍으로 저장하고 구성하는 방법이다.

{
"name": "kimcoding", //field: value
"title": "Chapter Lead",
"age": 30 }

이 자체를 도큐먼트라고 하고 "name", "title", "age"를 필드, "kimcoding" 등을 이라고 한다.

(2) 컬렉션
이 도큐먼트들의 모음을 컬렉션이라고 하며 컬렉션들의 모임을 데이터베이스라고 한다.

MongoDB에서는 주로 데이터를 BSON 형식으로 저장하고 JSON 형식으로 출력한다. 이를 이해하기 위해 BSON과 JSON의 차이를 알아보자.

(1) JSON

JSON은 개발자들이 읽기 쉽고, 쓰기 편한 형태이다. 따라서 텍스트 형식으로 되어있다. 이 때문에 파싱이 느리고 메모리 사용이 비효율적이라는 단점이 있다.

JSON 형식으로 데이터를 가져올때는 mongoimport, 데이터를 내보낼때는 mongoexport를 사용한다.

(2) BSON

이를 해결하기 위해 컴퓨터 언어에 가까운 이진법 형식인 BSON이 등장했다. 그렇기 때문에 메모리 효율이 좋고 다양한 데이터 타입을 사용할 수 있다. 따라서 내부적으로 BSON 형식으로 데이터를 저장한다.

BSON 형식으로 데이터를 가져올때는 mongorestore, 데이터를 내보낼때는 mongodump를 사용한다.




이번시간에는 MongoDB에 대해 공부했다.
다음시간에는 hashing, salt에 대해 공부한다.
오늘은 여기까지

profile
안녕하세요 유지원입니다

0개의 댓글