Lined Notebook

🍃 스프링 입문 스터디 6일 차 정리

by juraffe juraffe
이 글은 김영한 님의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술을 학습하며 작성된 글입니다.

스프링 입문 스터디 6일 차 정리

 

MongoDB 소개

몽고DB를 검색하면 가장 먼저 눈에 보이는 것은 바로 No SQL이다. 많은 입문자가 여기서 "SQL이 없다고?"라고 생각하고 나 또한 그랬다. 하지만 조금만 더 알아가면 이에 대한 설명을 굉장히 많은 곳에서 듣게 되는데 No SQL은 Not only SQL로, SQL 뿐만 아니라 다양한 형태로 데이터를 관리하는 DBMS를 나타내는 말이다.

 

Document Database

이렇듯 MongoDB 소개에선 가장 먼저 문서형 데이터베이스라고 소개된다. 우리가 익숙한 RDBMS의 record는 MongoDB에서는 document로 불리게 된다.

MongoDB RDBMS
데이터베이스 데이터베이스
컬렉션 테이블
도큐먼트 레코드
필드 컬럼
인덱스 인덱스
쿼리의 결과로 Cursor 반환 쿼리의 결과로 Record 반환

위 표에서 마지막 행에서 나온 Cursor(이하 커서)가 낯설 수 있다. Mongodb 클라이언트는 이 커서를 이용해 반복적으로 실제 도큐먼트를 가져올 수 있다. 커서는 단순히 데이터를 가져올 뿐만 아니라 정렬, 검색, 제한 등 다양한 기능을 제공한다. 더 자세한 기능은 이곳에서 확인해보자.

 

MongoDB의 특성

  • NoSQL
  • Schema Free
  • 비 관계형 데이터베이스

위 특성은 MongoDB라고 하면 떠오르는 대표적인 특성이라 할 수 있다. 이 중에서 Schema-Free는 MongoDB와 RDBMS를 구분 지어주는 가장 좋은 단어라 할 수 있다. Schema-Free가 의미하는 바는 기존의 RDBMS의 경우 테이블의 구조를 변경하는 것은 대단히 비싼 작업인 반면에 MongoDB는 필요에 따라 언제든지 데이터의 구조를 변경할 수 있다.

MongoDB MySQL
db.users.insert({user_id: 'abc123', age: 20, status: 'A'}) INSERT INTO users (user_id, age, status) VALUES ('abc123', 20, 'A')
db.users.update({age: {$gt: 25}}, {$set: {status: 'C'}}, {multi: true}) UPDATE users SET status = 'C' WHERE age > 35
db.users.remove({user_id: 'abc123'}) DELETE FROM users WHERE user_id='abc123'
db.users.find({user_id: 'abc123'}) SELECT * FROM users WHERE user_id='abc123'

 

스프링 MongoDB

시연

참조

 

블로그의 정보

🦒 Juraffe's note

juraffe juraffe

활동하기