MongoDB
For Giant Ideas
No1, NoSQL Database
MongoDB는 C++로 작성된 오픈소스 문서지향(Document-Oriented) 적 Cross-platform 데이터베이스이며, 뛰어난 확장성과 성능을 자랑합니다. 또한, 현존하는 NoSQL 데이터베이스 중 인지도 1위를 유지하고있습니다.
장점
-
Schema-less (Schema가 없다. 같은 Collection 안에 있을지라도 다른 Schema를 가지고 있을 수 있다)
-
각 객체의 구조가 뚜렷하다
-
복잡한 JOIN 이 없다.
-
Deep Query ability (문서지향적 Query Language 를 사용하여 SQL 만큼 강력한 Query 성능을 제공한다.
-
어플리케이션에서 사용되는 객체를 데이터베이스에 추가 할 때 Conversion / Mapping이 불필요하다.
NoSQL?
흔히 NoSQL이라고 해서 아, SQL이 없는 데이터베이스구나! 라고 생각 할 수도 있겠지만, 진짜 의미는 Not Only SQL 입니다. 기존의 RDBMS의 한계를 극복하기 위해 만들어진 새로운 형태의 데이터저장소 입니다. 관계형 DB가 아니므로, RDMS처럼 고정된 스키마 및 JOIN 이 존재하지 않습니다.
NoSQL은 최신 응용 프로그램을 구축하는 데 필요한 요구 사항에 따라 개발 된 다양한 데이터베이스 기술을 포괄합니다.
-
개발자는 구조적, 반 구조적, 비정형 및 다형성 데이터와 같이 빠르게 변화하는 새롭고 방대한 양의 데이터를 생성하는 응용 프로그램을 사용하고 있습니다.
-
12-18 개월간의 폭포 개발주기가 오래 전에 사라졌습니다. 이제는 소규모 팀이 민첩한 스프린트에서 작업하고 신속하게 반복하고 매주 또는 2 회, 심지어는 여러 번 매일 코드를 푸시합니다.
-
한 때 유한 고객을 대상으로 한 응용 프로그램은 이제 항상 켜져 있어야하고 여러 장치에서 액세스 할 수 있어야하며 전 세계적으로 수백만 명의 사용자로 확장되어야하는 서비스로 제공됩니다.
-
조직은 이제 대형 단일 서버 및 스토리지 인프라 대신 오픈 소스 소프트웨어, 상용 서버 및 클라우드 컴퓨팅을 사용하여 확장형 아키텍처로 전환하고 있습니다.
관계형 데이터베이스는 현대 응용 프로그램에 직면 한 규모와 민첩성 문제에 대처할 수 있도록 설계되지 않았으며 현재 사용할 수있는 상품 저장 및 처리 능력을 활용하지도 못했습니다.
Document?
Document Oriented 데이터베이스라는데.. 여기서 말하는 Document가 뭘까요? 문서? 이게 그냥 ‘문서’ 로 번역해버리면 조금은 애매합니다. 문서라고 하면 보통 워드/엑셀에 사용되는 그런 문서가 떠오르는데요, 그것과는 다릅니다. Document는 RDMS의 record 와 비슷한 개념인데요, 이의 데이터 구조는 한개이상의 key-value pair 으로 이뤄져있습니다.
Why MongoDB ?
1. 데이터 작업을 위한 최선의 방법
- 문서 모델을 사용하면 개발자가 직관적인 방식으로 데이터를 사용하고 신속하게 변경하고 다양한 데이터 모델, 관계 및
사용 사례를 지원 할 수있는 최대의 유연성을 제공 할 수 있습니다. 적은 비용으로 죄고의 성능을 제공합니다.
2. 필요한 곳에 지능적으로 데이터를 저장
- 개발자가 자신의 앱과 사용자가 필요로 하는 곳에 데이터를 배치 할수있는 지능형 분산 시스템 아키텍처를 제공
- 다른 솔루션과 비교 할 수없는 수준의 가용성과 작업 부하 분산, 확장성 및 데이터 지역 분산을 제공
3. 어디든 자유롭게 달릴 수있는 자유
- MongoDB는 메인 프레임에서 퍼블릭 클라우드에 이르기까지 모든 곳에서 동일하게 실행됩니다.
- 전 세계 50개 이상의 지역에 있는 3대 클라우드 제공 업체에서 사용할 수 있는 완전히 관리되는 데이트베이스인 MongoDB
Atlas를 사용하여 멀티 클라우드 전략의 이점을 활용 할 수 있습니다.
MongoDB 활용 서비스 아키텍처 (쇼핑몰예제)
