글 작성자: 망고좋아
반응형

🎯 MongoDB

  • 대표적인 NoSQL, Document DB
  • Mongo는 Humongous에서 따온 말로, 엄청나게 큰 DB라는 의미 → 대용량 데이터를 처리하기 좋다.

 

📝 RDB와 NoSQL

📕 RDB

  • Relational Database
  • 관계형 데이터베이스
  • 자료들의 관계를 주요하게 다룬다.
  • SQL 질의어를 사용하기 위해 데이터를 구조화해야 한다.

 

📕 NoSQL

  • Non SQL 또는 Not Only SQL
  • 구조화된 질의어를 사용하지 않는 데이터베이스
  • 자료 간의 관계에 초점을 두지 않음
  • 데이터를 구조화하지 않고, 유연하게 저장

 

📕 NoSQL을 사용하는 이유

  • SQL을 사용하기 위해서는 데이터를 구조화라는 것이 필수 (DDL)스키마에 정의된 데이터가 아니면 저장할 수 없는 제약이 따른다.
  • NoSQL을 사용하면 사전작업 없이 데이터베이스를 사용할 수 있다. → 데이터베이스 작업에 크게 관여하지 않고 프로젝트를 빠르게 진행할 수 있음

 

MySQL

CREATE DATABASE simple_board

CREATE TABLE posts (
    id NOT NULL AUTO INCREAMENT
    title VARCHAR(30),
    content TEXT,
    PRIMARY KEY(id)
);

INSERT INTO posts (title, content)

VALUES
('first title', 'first content'),
('second title', 'second content'),

 

MongoDB

use simple_board
db.posts.insert([
    {
        title: 'first title',
        content: 'first content'
    },
    {
        title: 'second title',
        content: 'second content'
    }
]);
  • NoSQL은 다양한 종류가 있지만 대표적으로 자료를 Document(문서)로 저장하는 Document DB가 일반적이다. 이 외에, key-value, Graph, large collection 등의 NoSQL DB가 존재한다.

 

📝 MongoDB 기본 개념

Database > Collection > Document

📕 Database

  • 하나 이상의 collection을 가질 수 있는 저장소
  • SQL에서의 database와 유사

 

📕 Collection

  • 하나 이상의 Document가 저장되는 공간
  • SQL에서의 table과 유사
  • 하지만, collection 이 document의 구조를 정의하지 않음

 

📕 Document

  • MongoDB에 저장되는 자료
  • SQL에서 row와 유사하지만 구조 제약 없이 유연하게 저장 가능
  • JSON과 유사한, BSON을 사용하여 다양한 자료형을 지원

 

📕 Document - ObjectID

Document > ObjectID

  • 각 document의 유일한 키 값, SQL의 primary key와 유사
  • 하나씩 증가하는 값이 아닌 document를 생성할 때 자동으로 생성되는 값
  • timestamp + random value + auto increament

 

📝 MongoDB 사용 방법

📕 직접 MongoDB 설치하기

  • 직접 모든 데이터베이스 관련 설정을 해야 한다.
  • Sharding이나 Replication 등의 작업이 필요할 때 운영 지식과 노하우가 요구된다.
  • 무료로 사용할 수 있는 Community Version을 제공한다.

  • 서비스에 들어가서 MongoDB 수동으로 설정

 

📕 MongoDB Cloud 이용하기

  • 모든 데이터베이스 관련 기능을 웹에서 관리 가능
  • 특별한 노하우 없이 데이터베이스 운용 가능
  • 사용량에 따라 비용이 발생하지만, 512MB까지는 평생 무료로 사용 가능

 

사용법

  1. 회원가입
  2. 조직 생성 - altlas
  3. new project
  4. Build DB - shared - google cloud(seoul) - 512mb for free - clusterName 적어주기 → 생성
  5. username and password 사용 -> 사용자 추가
  6. my local environment 클릭 - Add my current ip address - finish

 

📕 MongoDB Compass

  • MongoDB에 접속하여 Database, Collection, Document 등을 시각화하여 관리할 수 있게 도와주는 도구
  • MySQL을 사용할 때 MySQL Workbench와 유사

 

사용법

  1. 설치
  2. connect - 클라우드에서 만들어준 connect 클릭 - Compass 클릭 - connection string 복사
  3. create database- 이름, 컬렉션 채워주기
  4. Add data 클릭
반응형