<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ko">
	<id>https://www.newiki.net/w/index.php?action=history&amp;feed=atom&amp;title=%EB%AA%BD%EA%B3%A0DB</id>
	<title>몽고DB - 편집 역사</title>
	<link rel="self" type="application/atom+xml" href="https://www.newiki.net/w/index.php?action=history&amp;feed=atom&amp;title=%EB%AA%BD%EA%B3%A0DB"/>
	<link rel="alternate" type="text/html" href="https://www.newiki.net/w/index.php?title=%EB%AA%BD%EA%B3%A0DB&amp;action=history"/>
	<updated>2026-04-11T00:30:49Z</updated>
	<subtitle>이 문서의 편집 역사</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://www.newiki.net/w/index.php?title=%EB%AA%BD%EA%B3%A0DB&amp;diff=23473&amp;oldid=prev</id>
		<title>2020년 11월 25일 (수) 10:36에 Dennis님의 편집</title>
		<link rel="alternate" type="text/html" href="https://www.newiki.net/w/index.php?title=%EB%AA%BD%EA%B3%A0DB&amp;diff=23473&amp;oldid=prev"/>
		<updated>2020-11-25T10:36:30Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ko&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 이전 판&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2020년 11월 25일 (수) 10:36 판&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l5&quot;&gt;5번째 줄:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;5번째 줄:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;반면 컬렉션은 단순히 문서를 모아놓은 컨테이너에 불과하다. 즉 같은 컬렉션 안에 있는 문서(관계형 데이터베이스에서는  레코드)라고 해도 키와 값은 일관성 없이 제각각일 수 있다. 또한 각 키에 대한 값에 미리 데이터 유형이 정해져 있는 것도 아니다. 여기에 더해서 컬렉션은 트리 구조를 가질 수도 있다. 즉 테이블은 스키마의 정의라는 강력한 권한을 가지지만 컬렉션은 그런 거 없다. 이러한 구조는 [[NoSQL]] 답게 데이터 구조의 일관성을 강제하지 않아서 데이터 구조가 굉장히 유연하다. 관계형 [[데이터베이스]]는 테이블을 일단 짜 놓고 데이터가 쌓이면 이 구조를 고치는 게 좀 까다로운 반면, 몽고DB는 그야말로 막 할 수 있다. 예를 들어, 어떤 컬렉션에 새로운 문서를 하나 집어넣으면서 전에는 정의되어 있지 않던 키를 쓸 수도 있다. 그렇다고 기존의 컬렉션에 있던 문서에 이 키가 전부 생기는 것도 아니다. 물론 이러한 유연함은 손쉽게 독이 되는데, 관계형 데이터베이스는 스키마 정의를 통해서 데이터의 유효성과 일관성을 어느 정도 확보할 수 있지만 몽고DB는 프로그래머가 스스로 신경쓰지 않으면 정말로 개판이 될수 있다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;반면 컬렉션은 단순히 문서를 모아놓은 컨테이너에 불과하다. 즉 같은 컬렉션 안에 있는 문서(관계형 데이터베이스에서는  레코드)라고 해도 키와 값은 일관성 없이 제각각일 수 있다. 또한 각 키에 대한 값에 미리 데이터 유형이 정해져 있는 것도 아니다. 여기에 더해서 컬렉션은 트리 구조를 가질 수도 있다. 즉 테이블은 스키마의 정의라는 강력한 권한을 가지지만 컬렉션은 그런 거 없다. 이러한 구조는 [[NoSQL]] 답게 데이터 구조의 일관성을 강제하지 않아서 데이터 구조가 굉장히 유연하다. 관계형 [[데이터베이스]]는 테이블을 일단 짜 놓고 데이터가 쌓이면 이 구조를 고치는 게 좀 까다로운 반면, 몽고DB는 그야말로 막 할 수 있다. 예를 들어, 어떤 컬렉션에 새로운 문서를 하나 집어넣으면서 전에는 정의되어 있지 않던 키를 쓸 수도 있다. 그렇다고 기존의 컬렉션에 있던 문서에 이 키가 전부 생기는 것도 아니다. 물론 이러한 유연함은 손쉽게 독이 되는데, 관계형 데이터베이스는 스키마 정의를 통해서 데이터의 유효성과 일관성을 어느 정도 확보할 수 있지만 몽고DB는 프로그래머가 스스로 신경쓰지 않으면 정말로 개판이 될수 있다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;정형화 되지 않은 데이터가 폭발적으로 늘어나는 [[빅데이터]] 시대가 되면서 다른 [[NoSQL]] 데이터베이스와 함께 급부상하고 있다. 아니, 급부상 정도가 아니라 [[NoSQL]]의 선두주자라고 해도 과언이 아니다. 현재 DB 시장 점유율을 보면 금방 드러난다. 2017년 1월에 DB-Engines.com이 발표한 순위를 봐도 [[오라클]], [[&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;마이SQL&lt;/del&gt;]], MS SQL서버에 이어서 4위를 차지하고 있을 정도다! 위의 세 가지와 비교하면 훨씬 역사가 짧은 몽고DB가 이 정도의 입지를 가지고 있는 것은 놀라운 일. &amp;lt;ref&amp;gt;그 다음에 나오는 [[NoSQL]]은 7위를 기록하고 있는 [[아파치]]의 [[카산드라]]다. &amp;lt;/ref&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;정형화 되지 않은 데이터가 폭발적으로 늘어나는 [[빅데이터]] 시대가 되면서 다른 [[NoSQL]] 데이터베이스와 함께 급부상하고 있다. 아니, 급부상 정도가 아니라 [[NoSQL]]의 선두주자라고 해도 과언이 아니다. 현재 DB 시장 점유율을 보면 금방 드러난다. 2017년 1월에 DB-Engines.com이 발표한 순위를 봐도 [[오라클]], [[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;MySQL&lt;/ins&gt;]], MS SQL서버에 이어서 4위를 차지하고 있을 정도다! 위의 세 가지와 비교하면 훨씬 역사가 짧은 몽고DB가 이 정도의 입지를 가지고 있는 것은 놀라운 일. &amp;lt;ref&amp;gt;그 다음에 나오는 [[NoSQL]]은 7위를 기록하고 있는 [[아파치]]의 [[카산드라]]다. &amp;lt;/ref&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;하지만 금융 거래와 같이 데이터의 안전성이나 정확성이 절대 중요한 분야에는 적합하지 않다.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;하지만 금융 거래와 같이 데이터의 안전성이나 정확성이 절대 중요한 분야에는 적합하지 않다.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;모든 데이터는 [[JSON]] 형식으로 입출력되며, 이를 &#039;문서&#039;라고 한다. JSON이 [[자바스크립트]] 쪽에서 나온 것인 만큼 [[자바스크립트]]와 궁합이 좋다. 물론 [[루비]], [[PHP]]를 비롯한 어떤 언어에도 붙여 쓸 수 있지만 [[Node.js]]에 붙여서 쓰는 [[NoSQL]] &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;데이터베이스로는 &lt;/del&gt;가장 많이 쓰이고 있다. 일단 [[하둡]]이나 [[카산드라]] 같은 다른 [[NoSQL]] [[데이터베이스]]에 비해서 진입장벽이 낮고 [[자바스크립트]]를 알고 있으면 [[JSON]]도 능숙하게 다룰 수 있기 때문. 아예 [[자바스크립트]] 언어 한 가지로 프론트엔드-백엔드-[[데이터베이스]]까지 퉁칠 수 있는 대표 기술들을 [[MEAN 스택]]으로 묶어서 웹 개발 플랫폼으로 사용하는데 여기서 &#039;M&#039;에 해당하는 것이 몽고DB다.&amp;lt;ref&amp;gt;E는 Express.js, A는 [[AngularJS]], N은 [[Node.js]]를 뜻한다.&amp;lt;/ref&amp;gt; 자세한 것은 해당 항목 참조.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;모든 데이터는 [[JSON]] 형식으로 입출력되며, 이를 &#039;문서&#039;라고 한다. JSON이 [[자바스크립트]] 쪽에서 나온 것인 만큼 [[자바스크립트]]와 궁합이 좋다. 물론 [[루비]], [[PHP]]를 비롯한 어떤 언어에도 붙여 쓸 수 있지만 [[Node.js]]에 붙여서 쓰는 [[NoSQL]] &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[데이터베이스]]로는 &lt;/ins&gt;가장 많이 쓰이고 있다. 일단 [[하둡]]이나 [[카산드라]] 같은 다른 [[NoSQL]] [[데이터베이스]]에 비해서 진입장벽이 낮고 [[자바스크립트]]를 알고 있으면 [[JSON]]도 능숙하게 다룰 수 있기 때문. 아예 [[자바스크립트]] 언어 한 가지로 프론트엔드-백엔드-[[데이터베이스]]까지 퉁칠 수 있는 대표 기술들을 [[MEAN 스택]]으로 묶어서 웹 개발 플랫폼으로 사용하는데 여기서 &#039;M&#039;에 해당하는 것이 몽고DB다.&amp;lt;ref&amp;gt;E는 Express.js, A는 [[AngularJS]], N은 [[Node.js]]를 뜻한다.&amp;lt;/ref&amp;gt; 자세한 것은 해당 항목 참조.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;몽고DB 데이터 질의가 간단한 건 정말 단순해 보이지만 질의문을 무조건 [[JSON]] 형태로 만들어야 하기 때문에 조금만 복잡해지면 [[SQL]]과는 비교도 안 되게 알아보기 힘들어진다. 이를 보완하기 위해서 몽구스를 많이 쓴다. 몽구스는 스키마를 정의함으로써 관계형 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;데이터베이스와 &lt;/del&gt;비슷한 형태의 모델을 만들어 쓸 수 있도록 돕는다. 또한 한 가지의 질의는 단일 컬렉션 안에서만 할 수 있는 몽고DB의 한계를 어느 정도 보완해서 여러 컬렉션을 묶은 질의도 할 수 있다. 그렇다고 [[관계형 데이터베이스]]와 똑같이 몽고DB를 다룰 수 있는 것은 절대 아니며, 몽고DB에서 원래 안 되던 것을 몽구스를 사용해서 무리하게 하다 보면 성능 저하가 심각하게 일어날 수 있다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;몽고DB 데이터 질의가 간단한 건 정말 단순해 보이지만 질의문을 무조건 [[JSON]] 형태로 만들어야 하기 때문에 조금만 복잡해지면 [[SQL]]과는 비교도 안 되게 알아보기 힘들어진다. 이를 보완하기 위해서 몽구스를 많이 쓴다. 몽구스는 스키마를 정의함으로써 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[&lt;/ins&gt;관계형 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;데이터베이스]]와 &lt;/ins&gt;비슷한 형태의 모델을 만들어 쓸 수 있도록 돕는다. 또한 한 가지의 질의는 단일 컬렉션 안에서만 할 수 있는 몽고DB의 한계를 어느 정도 보완해서 여러 컬렉션을 묶은 질의도 할 수 있다. 그렇다고 [[관계형 데이터베이스]]와 똑같이 몽고DB를 다룰 수 있는 것은 절대 아니며, 몽고DB에서 원래 안 되던 것을 몽구스를 사용해서 무리하게 하다 보면 성능 저하가 심각하게 일어날 수 있다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{각주}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{각주}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:데이터베이스]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:데이터베이스]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dennis</name></author>
	</entry>
	<entry>
		<id>https://www.newiki.net/w/index.php?title=%EB%AA%BD%EA%B3%A0DB&amp;diff=19011&amp;oldid=prev</id>
		<title>2020년 1월 13일 (월) 07:27에 Dennis님의 편집</title>
		<link rel="alternate" type="text/html" href="https://www.newiki.net/w/index.php?title=%EB%AA%BD%EA%B3%A0DB&amp;diff=19011&amp;oldid=prev"/>
		<updated>2020-01-13T07:27:26Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ko&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 이전 판&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2020년 1월 13일 (월) 07:27 판&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;1번째 줄:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;1번째 줄:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[JSON]] 방식 문서 기반의 [[NoSQL]] 데이터베이스. 2007 10gen에서 개발을 시작해서 2009년에 오픈소스로 공개되었고, 10gen은 아예 회사 이름을 MongoDB Inc.로 바꾸었다. 완전 무료인 커뮤니티 에디션과 유료 지원을 받을 수 있는 엔터프라이즈 에디션 두 가지로 나뉜다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[JSON]] 방식 문서 기반의 [[NoSQL]] 데이터베이스. 2007 10gen에서 개발을 시작해서 2009년에 오픈소스로 공개되었고, 10gen은 아예 회사 이름을 MongoDB Inc.로 바꾸었다. 완전 무료인 커뮤니티 에디션과 유료 지원을 받을 수 있는 엔터프라이즈 에디션 두 가지로 나뉜다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[NoSQL]]이라는 말이 뜻하는 것처럼 [[관계형 데이터베이스]]가 아니다. 일단 테이블이 없다. 관계형은 기본 구조가 [[데이터베이스]] → 테이블이라면 몽고DB는 데이터베이스 → 컬렉션으로 되어 있다. 이 컬렉션을 테이블과 같은 것으로 생각하기 쉽지만 개념이 많이 다르다. 일단 테이블은 그 안의 스키마가 고정되어 있으며, 같은 테이블에 저장되는 레코드는 같은 스키마를 가져야 한다. 설령 어떤 레코드에게는 무의미한 키라고 해도 어쨌든 Null 값이든 0이든 키와 값이 존재한다. 또한 테이블의 각 속성은 데이터 유형이 정의되어 있으므로 다른 유형을 넣을 수 없다. 테이블 안에 테이블이 들어갈 수는 없으며 각각 다른 테이블로 놔 둔 다음 JOIN 연산과 같은 방법으로 연결해서 써야 한다. 반면 컬렉션은 단순히 문서를 모아놓은 컨테이너에 불과하다. 즉 같은 컬렉션 안에 있는 문서(관계형 데이터베이스에서는  레코드)라고 해도 키와 값은 일관성 없이 제각각일 수 있다. 또한 각 키에 대한 값에 미리 데이터 유형이 정해져 있는 것도 아니다. 여기에 더해서 컬렉션은 트리 구조를 가질 수도 있다. 즉 테이블은 스키마의 정의라는 강력한 권한을 가지지만 컬렉션은 그런 거 없다. 이러한 구조는 [[NoSQL]] 답게 데이터 구조의 일관성을 강제하지 않아서 데이터 구조가 굉장히 유연하다. 관계형 [[데이터베이스]]는 테이블을 일단 짜 놓고 데이터가 쌓이면 이 구조를 고치는 게 좀 까다로운 반면, 몽고DB는 그야말로 막 할 수 있다. 예를 들어, 어떤 컬렉션에 새로운 문서를 하나 집어넣으면서 전에는 정의되어 있지 않던 키를 쓸 수도 있다. 그렇다고 기존의 컬렉션에 있던 문서에 이 키가 전부 생기는 것도 아니다. 물론 이러한 유연함은 손쉽게 독이 되는데, 관계형 데이터베이스는 스키마 정의를 통해서 데이터의 유효성과 일관성을 어느 정도 확보할 수 있지만 몽고DB는 프로그래머가 스스로 신경쓰지 않으면 정말로 개판이 될수 있다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[NoSQL]]이라는 말이 뜻하는 것처럼 [[관계형 데이터베이스]]가 아니다. 일단 테이블이 없다. 관계형은 기본 구조가 [[데이터베이스]] → 테이블이라면 몽고DB는 데이터베이스 → 컬렉션으로 되어 있다. 이 컬렉션을 테이블과 같은 것으로 생각하기 쉽지만 개념이 많이 다르다. 일단 테이블은 그 안의 스키마가 고정되어 있으며, 같은 테이블에 저장되는 레코드는 같은 스키마를 가져야 한다. 설령 어떤 레코드에게는 무의미한 키라고 해도 어쨌든 Null 값이든 0이든 키와 값이 존재한다. 또한 테이블의 각 속성은 데이터 유형이 정의되어 있으므로 다른 유형을 넣을 수 없다. 테이블 안에 테이블이 들어갈 수는 없으며 각각 다른 테이블로 놔 둔 다음 JOIN 연산과 같은 방법으로 연결해서 써야 한다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;반면 컬렉션은 단순히 문서를 모아놓은 컨테이너에 불과하다. 즉 같은 컬렉션 안에 있는 문서(관계형 데이터베이스에서는  레코드)라고 해도 키와 값은 일관성 없이 제각각일 수 있다. 또한 각 키에 대한 값에 미리 데이터 유형이 정해져 있는 것도 아니다. 여기에 더해서 컬렉션은 트리 구조를 가질 수도 있다. 즉 테이블은 스키마의 정의라는 강력한 권한을 가지지만 컬렉션은 그런 거 없다. 이러한 구조는 [[NoSQL]] 답게 데이터 구조의 일관성을 강제하지 않아서 데이터 구조가 굉장히 유연하다. 관계형 [[데이터베이스]]는 테이블을 일단 짜 놓고 데이터가 쌓이면 이 구조를 고치는 게 좀 까다로운 반면, 몽고DB는 그야말로 막 할 수 있다. 예를 들어, 어떤 컬렉션에 새로운 문서를 하나 집어넣으면서 전에는 정의되어 있지 않던 키를 쓸 수도 있다. 그렇다고 기존의 컬렉션에 있던 문서에 이 키가 전부 생기는 것도 아니다. 물론 이러한 유연함은 손쉽게 독이 되는데, 관계형 데이터베이스는 스키마 정의를 통해서 데이터의 유효성과 일관성을 어느 정도 확보할 수 있지만 몽고DB는 프로그래머가 스스로 신경쓰지 않으면 정말로 개판이 될수 있다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;정형화 되지 않은 데이터가 폭발적으로 늘어나는 [[빅데이터]] 시대가 되면서 다른 [[NoSQL]] 데이터베이스와 함께 급부상하고 있다. 아니, 급부상 정도가 아니라 [[NoSQL]]의 선두주자라고 해도 과언이 아니다. 현재 DB 시장 점유율을 보면 금방 드러난다. 2017년 1월에 DB-Engines.com이 발표한 순위를 봐도 [[오라클]], [[마이SQL]], MS SQL서버에 이어서 4위를 차지하고 있을 정도다! 위의 세 가지와 비교하면 훨씬 역사가 짧은 몽고DB가 이 정도의 입지를 가지고 있는 것은 놀라운 일. &amp;lt;ref&amp;gt;그 다음에 나오는 [[NoSQL]]은 7위를 기록하고 있는 [[아파치]]의 [[카산드라]]다. &amp;lt;/ref&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;정형화 되지 않은 데이터가 폭발적으로 늘어나는 [[빅데이터]] 시대가 되면서 다른 [[NoSQL]] 데이터베이스와 함께 급부상하고 있다. 아니, 급부상 정도가 아니라 [[NoSQL]]의 선두주자라고 해도 과언이 아니다. 현재 DB 시장 점유율을 보면 금방 드러난다. 2017년 1월에 DB-Engines.com이 발표한 순위를 봐도 [[오라클]], [[마이SQL]], MS SQL서버에 이어서 4위를 차지하고 있을 정도다! 위의 세 가지와 비교하면 훨씬 역사가 짧은 몽고DB가 이 정도의 입지를 가지고 있는 것은 놀라운 일. &amp;lt;ref&amp;gt;그 다음에 나오는 [[NoSQL]]은 7위를 기록하고 있는 [[아파치]]의 [[카산드라]]다. &amp;lt;/ref&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;하지만 금융 거래와 같이 데이터의 안전성이나 정확성이 절대 중요한 분야에는 적합하지 않다. 모든 데이터는 [[JSON]] 형식으로 입출력되며, 이를 &#039;문서&#039;라고 한다. JSON이 [[자바스크립트]] 쪽에서 나온 것인 만큼 [[자바스크립트]]와 궁합이 좋다. 물론 [[루비]], [[PHP]]를 비롯한 어떤 언어에도 붙여 쓸 수 있지만 [[Node.js]]에 붙여서 쓰는 [[NoSQL]] 데이터베이스로는 가장 많이 쓰이고 있다. 일단 [[하둡]]이나 [[카산드라]] 같은 다른 [[NoSQL]] [[데이터베이스]]에 비해서 진입장벽이 낮고 [[자바스크립트]]를 알고 있으면 [[JSON]]도 능숙하게 다룰 수 있기 때문. 아예 [[자바스크립트]] 언어 한 가지로 프론트엔드-백엔드-[[데이터베이스]]까지 퉁칠 수 있는 대표 기술들을 [[MEAN 스택]]으로 묶어서 웹 개발 플랫폼으로 사용하는데 여기서 &#039;M&#039;에 해당하는 것이 몽고DB다.&amp;lt;ref&amp;gt;E는 Express.js, A는 [[AngularJS]], N은 [[Node.js]]를 뜻한다.&amp;lt;/ref&amp;gt; 자세한 것은 해당 항목 참조.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;하지만 금융 거래와 같이 데이터의 안전성이나 정확성이 절대 중요한 분야에는 적합하지 않다.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;모든 데이터는 [[JSON]] 형식으로 입출력되며, 이를 &#039;문서&#039;라고 한다. JSON이 [[자바스크립트]] 쪽에서 나온 것인 만큼 [[자바스크립트]]와 궁합이 좋다. 물론 [[루비]], [[PHP]]를 비롯한 어떤 언어에도 붙여 쓸 수 있지만 [[Node.js]]에 붙여서 쓰는 [[NoSQL]] 데이터베이스로는 가장 많이 쓰이고 있다. 일단 [[하둡]]이나 [[카산드라]] 같은 다른 [[NoSQL]] [[데이터베이스]]에 비해서 진입장벽이 낮고 [[자바스크립트]]를 알고 있으면 [[JSON]]도 능숙하게 다룰 수 있기 때문. 아예 [[자바스크립트]] 언어 한 가지로 프론트엔드-백엔드-[[데이터베이스]]까지 퉁칠 수 있는 대표 기술들을 [[MEAN 스택]]으로 묶어서 웹 개발 플랫폼으로 사용하는데 여기서 &#039;M&#039;에 해당하는 것이 몽고DB다.&amp;lt;ref&amp;gt;E는 Express.js, A는 [[AngularJS]], N은 [[Node.js]]를 뜻한다.&amp;lt;/ref&amp;gt; 자세한 것은 해당 항목 참조.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;몽고DB 데이터 질의가 간단한 건 정말 단순해 보이지만 질의문을 무조건 [[JSON]] 형태로 만들어야 하기 때문에 조금만 복잡해지면 [[SQL]]과는 비교도 안 되게 알아보기 힘들어진다. 이를 보완하기 위해서 몽구스를 많이 쓴다. 몽구스는 스키마를 정의함으로써 관계형 데이터베이스와 비슷한 형태의 모델을 만들어 쓸 수 있도록 돕는다. 또한 한 가지의 질의는 단일 컬렉션 안에서만 할 수 있는 몽고DB의 한계를 어느 정도 보완해서 여러 컬렉션을 묶은 질의도 할 수 있다. 그렇다고 [[관계형 데이터베이스]]와 똑같이 몽고DB를 다룰 수 있는 것은 절대 아니며, 몽고DB에서 원래 안 되던 것을 몽구스를 사용해서 무리하게 하다 보면 성능 저하가 심각하게 일어날 수 있다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;몽고DB 데이터 질의가 간단한 건 정말 단순해 보이지만 질의문을 무조건 [[JSON]] 형태로 만들어야 하기 때문에 조금만 복잡해지면 [[SQL]]과는 비교도 안 되게 알아보기 힘들어진다. 이를 보완하기 위해서 몽구스를 많이 쓴다. 몽구스는 스키마를 정의함으로써 관계형 데이터베이스와 비슷한 형태의 모델을 만들어 쓸 수 있도록 돕는다. 또한 한 가지의 질의는 단일 컬렉션 안에서만 할 수 있는 몽고DB의 한계를 어느 정도 보완해서 여러 컬렉션을 묶은 질의도 할 수 있다. 그렇다고 [[관계형 데이터베이스]]와 똑같이 몽고DB를 다룰 수 있는 것은 절대 아니며, 몽고DB에서 원래 안 되던 것을 몽구스를 사용해서 무리하게 하다 보면 성능 저하가 심각하게 일어날 수 있다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dennis</name></author>
	</entry>
	<entry>
		<id>https://www.newiki.net/w/index.php?title=%EB%AA%BD%EA%B3%A0DB&amp;diff=19010&amp;oldid=prev</id>
		<title>2020년 1월 13일 (월) 07:26에 Dennis님의 편집</title>
		<link rel="alternate" type="text/html" href="https://www.newiki.net/w/index.php?title=%EB%AA%BD%EA%B3%A0DB&amp;diff=19010&amp;oldid=prev"/>
		<updated>2020-01-13T07:26:47Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ko&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 이전 판&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2020년 1월 13일 (월) 07:26 판&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;1번째 줄:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;1번째 줄:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[JSON]] 방식 문서 기반의 [[NoSQL]] 데이터베이스. 2007 10gen에서 개발을 시작해서 2009년에 오픈소스로 공개되었고, 10gen은 아예 회사 이름을 MongoDB Inc.로 바꾸었다. 완전 무료인 커뮤니티 에디션과 유료 지원을 받을 수 있는 엔터프라이즈 에디션 두 가지로 나뉜다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[JSON]] 방식 문서 기반의 [[NoSQL]] 데이터베이스. 2007 10gen에서 개발을 시작해서 2009년에 오픈소스로 공개되었고, 10gen은 아예 회사 이름을 MongoDB Inc.로 바꾸었다. 완전 무료인 커뮤니티 에디션과 유료 지원을 받을 수 있는 엔터프라이즈 에디션 두 가지로 나뉜다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[NoSQL]]이라는 말이 뜻하는 것처럼 [[관계형 데이터베이스]]가 아니다. 일단 테이블이 없다. 관계형은 기본 구조가 [[데이터베이스]] → 테이블이라면 몽고DB는 데이터베이스 → 컬렉션으로 되어 있다. 이 컬렉션을 테이블과 같은 것으로 생각하기 쉽지만 개념이 많이 다르다. 일단 테이블은 그 안의 스키마가 고정되어 있으며, 같은 테이블에 저장되는 레코드는 같은 스키마를 가져야 한다. 설령 어떤 레코드에게는 무의미한 키라고 해도 어쨌든 Null 값이든 0이든 키와 값이 존재한다. 또한 테이블의 각 속성은 데이터 유형이 정의되어 있으므로 다른 유형을 넣을 수 없다. 반면 컬렉션은 단순히 문서를 모아놓은 컨테이너에 불과하다. 즉 같은 컬렉션 안에 있는 문서(관계형 데이터베이스에서는  레코드)라고 해도 키와 값은 일관성 없이 제각각일 수 있다. 또한 각 키에 대한 값에 미리 데이터 유형이 정해져 있는 것도 아니다. 즉 테이블은 스키마의 정의라는 강력한 권한을 가지지만 컬렉션은 그런 거 없다. 이러한 구조는 [[NoSQL]] 답게 데이터 구조의 일관성을 강제하지 않아서 데이터 구조가 굉장히 유연하다. 관계형 [[데이터베이스]]는 테이블을 일단 짜 놓고 데이터가 쌓이면 이 구조를 고치는 게 좀 까다로운 반면, 몽고DB는 그야말로 막 할 수 있다. 예를 들어, 어떤 컬렉션에 새로운 문서를 하나 집어넣으면서 전에는 정의되어 있지 않던 키를 쓸 수도 있다. 그렇다고 기존의 컬렉션에 있던 문서에 이 키가 전부 생기는 것도 아니다. 물론 이러한 유연함은 손쉽게 독이 되는데, 관계형 데이터베이스는 스키마 정의를 통해서 데이터의 유효성과 일관성을 어느 정도 확보할 수 있지만 몽고DB는 프로그래머가 스스로 신경쓰지 않으면 정말로 개판이 될수 있다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[NoSQL]]이라는 말이 뜻하는 것처럼 [[관계형 데이터베이스]]가 아니다. 일단 테이블이 없다. 관계형은 기본 구조가 [[데이터베이스]] → 테이블이라면 몽고DB는 데이터베이스 → 컬렉션으로 되어 있다. 이 컬렉션을 테이블과 같은 것으로 생각하기 쉽지만 개념이 많이 다르다. 일단 테이블은 그 안의 스키마가 고정되어 있으며, 같은 테이블에 저장되는 레코드는 같은 스키마를 가져야 한다. 설령 어떤 레코드에게는 무의미한 키라고 해도 어쨌든 Null 값이든 0이든 키와 값이 존재한다. 또한 테이블의 각 속성은 데이터 유형이 정의되어 있으므로 다른 유형을 넣을 수 없다&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. 테이블 안에 테이블이 들어갈 수는 없으며 각각 다른 테이블로 놔 둔 다음 JOIN 연산과 같은 방법으로 연결해서 써야 한다&lt;/ins&gt;. 반면 컬렉션은 단순히 문서를 모아놓은 컨테이너에 불과하다. 즉 같은 컬렉션 안에 있는 문서(관계형 데이터베이스에서는  레코드)라고 해도 키와 값은 일관성 없이 제각각일 수 있다. 또한 각 키에 대한 값에 미리 데이터 유형이 정해져 있는 것도 아니다&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. 여기에 더해서 컬렉션은 트리 구조를 가질 수도 있다&lt;/ins&gt;. 즉 테이블은 스키마의 정의라는 강력한 권한을 가지지만 컬렉션은 그런 거 없다. 이러한 구조는 [[NoSQL]] 답게 데이터 구조의 일관성을 강제하지 않아서 데이터 구조가 굉장히 유연하다. 관계형 [[데이터베이스]]는 테이블을 일단 짜 놓고 데이터가 쌓이면 이 구조를 고치는 게 좀 까다로운 반면, 몽고DB는 그야말로 막 할 수 있다. 예를 들어, 어떤 컬렉션에 새로운 문서를 하나 집어넣으면서 전에는 정의되어 있지 않던 키를 쓸 수도 있다. 그렇다고 기존의 컬렉션에 있던 문서에 이 키가 전부 생기는 것도 아니다. 물론 이러한 유연함은 손쉽게 독이 되는데, 관계형 데이터베이스는 스키마 정의를 통해서 데이터의 유효성과 일관성을 어느 정도 확보할 수 있지만 몽고DB는 프로그래머가 스스로 신경쓰지 않으면 정말로 개판이 될수 있다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;정형화 되지 않은 데이터가 폭발적으로 늘어나는 [[빅데이터]] 시대가 되면서 다른 [[NoSQL]] 데이터베이스와 함께 급부상하고 있다. 아니, 급부상 정도가 아니라 [[NoSQL]]의 선두주자라고 해도 과언이 아니다. 현재 DB 시장 점유율을 보면 금방 드러난다. 2017년 1월에 DB-Engines.com이 발표한 순위를 봐도 [[오라클]], [[마이SQL]], MS SQL서버에 이어서 4위를 차지하고 있을 정도다! 위의 세 가지와 비교하면 훨씬 역사가 짧은 몽고DB가 이 정도의 입지를 가지고 있는 것은 놀라운 일. &amp;lt;ref&amp;gt;그 다음에 나오는 [[NoSQL]]은 7위를 기록하고 있는 [[아파치]]의 [[카산드라]]다. &amp;lt;/ref&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;정형화 되지 않은 데이터가 폭발적으로 늘어나는 [[빅데이터]] 시대가 되면서 다른 [[NoSQL]] 데이터베이스와 함께 급부상하고 있다. 아니, 급부상 정도가 아니라 [[NoSQL]]의 선두주자라고 해도 과언이 아니다. 현재 DB 시장 점유율을 보면 금방 드러난다. 2017년 1월에 DB-Engines.com이 발표한 순위를 봐도 [[오라클]], [[마이SQL]], MS SQL서버에 이어서 4위를 차지하고 있을 정도다! 위의 세 가지와 비교하면 훨씬 역사가 짧은 몽고DB가 이 정도의 입지를 가지고 있는 것은 놀라운 일. &amp;lt;ref&amp;gt;그 다음에 나오는 [[NoSQL]]은 7위를 기록하고 있는 [[아파치]]의 [[카산드라]]다. &amp;lt;/ref&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dennis</name></author>
	</entry>
	<entry>
		<id>https://www.newiki.net/w/index.php?title=%EB%AA%BD%EA%B3%A0DB&amp;diff=8641&amp;oldid=prev</id>
		<title>2017년 1월 10일 (화) 00:04에 Dennis님의 편집</title>
		<link rel="alternate" type="text/html" href="https://www.newiki.net/w/index.php?title=%EB%AA%BD%EA%B3%A0DB&amp;diff=8641&amp;oldid=prev"/>
		<updated>2017-01-10T00:04:19Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ko&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 이전 판&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2017년 1월 10일 (화) 00:04 판&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l3&quot;&gt;3번째 줄:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;3번째 줄:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[NoSQL]]이라는 말이 뜻하는 것처럼 [[관계형 데이터베이스]]가 아니다. 일단 테이블이 없다. 관계형은 기본 구조가 [[데이터베이스]] → 테이블이라면 몽고DB는 데이터베이스 → 컬렉션으로 되어 있다. 이 컬렉션을 테이블과 같은 것으로 생각하기 쉽지만 개념이 많이 다르다. 일단 테이블은 그 안의 스키마가 고정되어 있으며, 같은 테이블에 저장되는 레코드는 같은 스키마를 가져야 한다. 설령 어떤 레코드에게는 무의미한 키라고 해도 어쨌든 Null 값이든 0이든 키와 값이 존재한다. 또한 테이블의 각 속성은 데이터 유형이 정의되어 있으므로 다른 유형을 넣을 수 없다. 반면 컬렉션은 단순히 문서를 모아놓은 컨테이너에 불과하다. 즉 같은 컬렉션 안에 있는 문서(관계형 데이터베이스에서는  레코드)라고 해도 키와 값은 일관성 없이 제각각일 수 있다. 또한 각 키에 대한 값에 미리 데이터 유형이 정해져 있는 것도 아니다. 즉 테이블은 스키마의 정의라는 강력한 권한을 가지지만 컬렉션은 그런 거 없다. 이러한 구조는 [[NoSQL]] 답게 데이터 구조의 일관성을 강제하지 않아서 데이터 구조가 굉장히 유연하다. 관계형 [[데이터베이스]]는 테이블을 일단 짜 놓고 데이터가 쌓이면 이 구조를 고치는 게 좀 까다로운 반면, 몽고DB는 그야말로 막 할 수 있다. 예를 들어, 어떤 컬렉션에 새로운 문서를 하나 집어넣으면서 전에는 정의되어 있지 않던 키를 쓸 수도 있다. 그렇다고 기존의 컬렉션에 있던 문서에 이 키가 전부 생기는 것도 아니다. 물론 이러한 유연함은 손쉽게 독이 되는데, 관계형 데이터베이스는 스키마 정의를 통해서 데이터의 유효성과 일관성을 어느 정도 확보할 수 있지만 몽고DB는 프로그래머가 스스로 신경쓰지 않으면 정말로 개판이 될수 있다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[NoSQL]]이라는 말이 뜻하는 것처럼 [[관계형 데이터베이스]]가 아니다. 일단 테이블이 없다. 관계형은 기본 구조가 [[데이터베이스]] → 테이블이라면 몽고DB는 데이터베이스 → 컬렉션으로 되어 있다. 이 컬렉션을 테이블과 같은 것으로 생각하기 쉽지만 개념이 많이 다르다. 일단 테이블은 그 안의 스키마가 고정되어 있으며, 같은 테이블에 저장되는 레코드는 같은 스키마를 가져야 한다. 설령 어떤 레코드에게는 무의미한 키라고 해도 어쨌든 Null 값이든 0이든 키와 값이 존재한다. 또한 테이블의 각 속성은 데이터 유형이 정의되어 있으므로 다른 유형을 넣을 수 없다. 반면 컬렉션은 단순히 문서를 모아놓은 컨테이너에 불과하다. 즉 같은 컬렉션 안에 있는 문서(관계형 데이터베이스에서는  레코드)라고 해도 키와 값은 일관성 없이 제각각일 수 있다. 또한 각 키에 대한 값에 미리 데이터 유형이 정해져 있는 것도 아니다. 즉 테이블은 스키마의 정의라는 강력한 권한을 가지지만 컬렉션은 그런 거 없다. 이러한 구조는 [[NoSQL]] 답게 데이터 구조의 일관성을 강제하지 않아서 데이터 구조가 굉장히 유연하다. 관계형 [[데이터베이스]]는 테이블을 일단 짜 놓고 데이터가 쌓이면 이 구조를 고치는 게 좀 까다로운 반면, 몽고DB는 그야말로 막 할 수 있다. 예를 들어, 어떤 컬렉션에 새로운 문서를 하나 집어넣으면서 전에는 정의되어 있지 않던 키를 쓸 수도 있다. 그렇다고 기존의 컬렉션에 있던 문서에 이 키가 전부 생기는 것도 아니다. 물론 이러한 유연함은 손쉽게 독이 되는데, 관계형 데이터베이스는 스키마 정의를 통해서 데이터의 유효성과 일관성을 어느 정도 확보할 수 있지만 몽고DB는 프로그래머가 스스로 신경쓰지 않으면 정말로 개판이 될수 있다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;정형화 되지 않은 데이터가 폭발적으로 늘어나는 [[빅데이터]] 시대가 되면서 다른 [[NoSQL]] 데이터베이스와 함께 급부상하고 있다. 아니, 급부상 정도가 아니라 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;NoSQL의 &lt;/del&gt;선두주자라고 해도 과언이 아니다. 현재 DB 시장 점유율을 보면 금방 드러난다. 2017년 1월에 DB-Engines.com이 발표한 순위를 봐도 [[오라클]], [[마이SQL]], MS SQL서버에 이어서 4위를 차지하고 있을 정도다! &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;반면 &lt;/del&gt;금융 거래와 같이 데이터의 안전성이나 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;정확히 &lt;/del&gt;절대 중요한 분야에는 적합하지 않다. 모든 데이터는 [[JSON]] 형식으로 입출력되며, 이를 &#039;문서&#039;라고 한다. JSON이 [[자바스크립트]] 쪽에서 나온 것인 만큼 [[자바스크립트]]와 궁합이 좋다. 물론 [[루비]], [[PHP]]를 비롯한 어떤 언어에도 붙여 쓸 수 있지만 [[Node.js]]에 붙여서 쓰는 [[NoSQL]] 데이터베이스로는 가장 많이 쓰이고 있다. 일단 [[하둡]]이나 [[카산드라]] 같은 다른 [[NoSQL]] [[데이터베이스]]에 비해서 진입장벽이 낮고 [[자바스크립트]]를 알고 있으면 [[JSON]]도 능숙하게 다룰 수 있기 때문. 아예 [[자바스크립트]] 언어 한 가지로 프론트엔드-백엔드-[[데이터베이스]]까지 퉁칠 수 있는 대표 기술들을 [[MEAN 스택]]으로 묶어서 웹 개발 플랫폼으로 사용하는데 여기서 &#039;M&#039;에 해당하는 것이 몽고DB다.&amp;lt;ref&amp;gt;E는 Express.js, A는 [[AngularJS]], N은 [[Node.js]]를 뜻한다.&amp;lt;/ref&amp;gt; 자세한 것은 해당 항목 참조.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;정형화 되지 않은 데이터가 폭발적으로 늘어나는 [[빅데이터]] 시대가 되면서 다른 [[NoSQL]] 데이터베이스와 함께 급부상하고 있다. 아니, 급부상 정도가 아니라 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[NoSQL]]의 &lt;/ins&gt;선두주자라고 해도 과언이 아니다. 현재 DB 시장 점유율을 보면 금방 드러난다. 2017년 1월에 DB-Engines.com이 발표한 순위를 봐도 [[오라클]], [[마이SQL]], MS SQL서버에 이어서 4위를 차지하고 있을 정도다! &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;위의 세 가지와 비교하면 훨씬 역사가 짧은 몽고DB가 이 정도의 입지를 가지고 있는 것은 놀라운 일. &amp;lt;ref&amp;gt;그 다음에 나오는 [[NoSQL]]은 7위를 기록하고 있는 [[아파치]]의 [[카산드라]]다. &amp;lt;/ref&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;하지만 &lt;/ins&gt;금융 거래와 같이 데이터의 안전성이나 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;정확성이 &lt;/ins&gt;절대 중요한 분야에는 적합하지 않다. 모든 데이터는 [[JSON]] 형식으로 입출력되며, 이를 &#039;문서&#039;라고 한다. JSON이 [[자바스크립트]] 쪽에서 나온 것인 만큼 [[자바스크립트]]와 궁합이 좋다. 물론 [[루비]], [[PHP]]를 비롯한 어떤 언어에도 붙여 쓸 수 있지만 [[Node.js]]에 붙여서 쓰는 [[NoSQL]] 데이터베이스로는 가장 많이 쓰이고 있다. 일단 [[하둡]]이나 [[카산드라]] 같은 다른 [[NoSQL]] [[데이터베이스]]에 비해서 진입장벽이 낮고 [[자바스크립트]]를 알고 있으면 [[JSON]]도 능숙하게 다룰 수 있기 때문. 아예 [[자바스크립트]] 언어 한 가지로 프론트엔드-백엔드-[[데이터베이스]]까지 퉁칠 수 있는 대표 기술들을 [[MEAN 스택]]으로 묶어서 웹 개발 플랫폼으로 사용하는데 여기서 &#039;M&#039;에 해당하는 것이 몽고DB다.&amp;lt;ref&amp;gt;E는 Express.js, A는 [[AngularJS]], N은 [[Node.js]]를 뜻한다.&amp;lt;/ref&amp;gt; 자세한 것은 해당 항목 참조.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;몽고DB 데이터 질의가 간단한 건 정말 단순해 보이지만 질의문을 무조건 [[JSON]] 형태로 만들어야 하기 때문에 조금만 복잡해지면 [[SQL]]과는 비교도 안 되게 알아보기 힘들어진다. 이를 보완하기 위해서 몽구스를 많이 쓴다. 몽구스는 스키마를 정의함으로써 관계형 데이터베이스와 비슷한 형태의 모델을 만들어 쓸 수 있도록 돕는다. 또한 한 가지의 질의는 단일 컬렉션 안에서만 할 수 있는 몽고DB의 한계를 어느 정도 보완해서 여러 컬렉션을 묶은 질의도 할 수 있다. 그렇다고 [[관계형 데이터베이스]]와 똑같이 몽고DB를 다룰 수 있는 것은 절대 아니며, 몽고DB에서 원래 안 되던 것을 몽구스를 사용해서 무리하게 하다 보면 성능 저하가 심각하게 일어날 수 있다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;몽고DB 데이터 질의가 간단한 건 정말 단순해 보이지만 질의문을 무조건 [[JSON]] 형태로 만들어야 하기 때문에 조금만 복잡해지면 [[SQL]]과는 비교도 안 되게 알아보기 힘들어진다. 이를 보완하기 위해서 몽구스를 많이 쓴다. 몽구스는 스키마를 정의함으로써 관계형 데이터베이스와 비슷한 형태의 모델을 만들어 쓸 수 있도록 돕는다. 또한 한 가지의 질의는 단일 컬렉션 안에서만 할 수 있는 몽고DB의 한계를 어느 정도 보완해서 여러 컬렉션을 묶은 질의도 할 수 있다. 그렇다고 [[관계형 데이터베이스]]와 똑같이 몽고DB를 다룰 수 있는 것은 절대 아니며, 몽고DB에서 원래 안 되던 것을 몽구스를 사용해서 무리하게 하다 보면 성능 저하가 심각하게 일어날 수 있다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dennis</name></author>
	</entry>
	<entry>
		<id>https://www.newiki.net/w/index.php?title=%EB%AA%BD%EA%B3%A0DB&amp;diff=8640&amp;oldid=prev</id>
		<title>2017년 1월 10일 (화) 00:01에 Dennis님의 편집</title>
		<link rel="alternate" type="text/html" href="https://www.newiki.net/w/index.php?title=%EB%AA%BD%EA%B3%A0DB&amp;diff=8640&amp;oldid=prev"/>
		<updated>2017-01-10T00:01:49Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ko&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 이전 판&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2017년 1월 10일 (화) 00:01 판&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l3&quot;&gt;3번째 줄:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;3번째 줄:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[NoSQL]]이라는 말이 뜻하는 것처럼 [[관계형 데이터베이스]]가 아니다. 일단 테이블이 없다. 관계형은 기본 구조가 [[데이터베이스]] → 테이블이라면 몽고DB는 데이터베이스 → 컬렉션으로 되어 있다. 이 컬렉션을 테이블과 같은 것으로 생각하기 쉽지만 개념이 많이 다르다. 일단 테이블은 그 안의 스키마가 고정되어 있으며, 같은 테이블에 저장되는 레코드는 같은 스키마를 가져야 한다. 설령 어떤 레코드에게는 무의미한 키라고 해도 어쨌든 Null 값이든 0이든 키와 값이 존재한다. 또한 테이블의 각 속성은 데이터 유형이 정의되어 있으므로 다른 유형을 넣을 수 없다. 반면 컬렉션은 단순히 문서를 모아놓은 컨테이너에 불과하다. 즉 같은 컬렉션 안에 있는 문서(관계형 데이터베이스에서는  레코드)라고 해도 키와 값은 일관성 없이 제각각일 수 있다. 또한 각 키에 대한 값에 미리 데이터 유형이 정해져 있는 것도 아니다. 즉 테이블은 스키마의 정의라는 강력한 권한을 가지지만 컬렉션은 그런 거 없다. 이러한 구조는 [[NoSQL]] 답게 데이터 구조의 일관성을 강제하지 않아서 데이터 구조가 굉장히 유연하다. 관계형 [[데이터베이스]]는 테이블을 일단 짜 놓고 데이터가 쌓이면 이 구조를 고치는 게 좀 까다로운 반면, 몽고DB는 그야말로 막 할 수 있다. 예를 들어, 어떤 컬렉션에 새로운 문서를 하나 집어넣으면서 전에는 정의되어 있지 않던 키를 쓸 수도 있다. 그렇다고 기존의 컬렉션에 있던 문서에 이 키가 전부 생기는 것도 아니다. 물론 이러한 유연함은 손쉽게 독이 되는데, 관계형 데이터베이스는 스키마 정의를 통해서 데이터의 유효성과 일관성을 어느 정도 확보할 수 있지만 몽고DB는 프로그래머가 스스로 신경쓰지 않으면 정말로 개판이 될수 있다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[NoSQL]]이라는 말이 뜻하는 것처럼 [[관계형 데이터베이스]]가 아니다. 일단 테이블이 없다. 관계형은 기본 구조가 [[데이터베이스]] → 테이블이라면 몽고DB는 데이터베이스 → 컬렉션으로 되어 있다. 이 컬렉션을 테이블과 같은 것으로 생각하기 쉽지만 개념이 많이 다르다. 일단 테이블은 그 안의 스키마가 고정되어 있으며, 같은 테이블에 저장되는 레코드는 같은 스키마를 가져야 한다. 설령 어떤 레코드에게는 무의미한 키라고 해도 어쨌든 Null 값이든 0이든 키와 값이 존재한다. 또한 테이블의 각 속성은 데이터 유형이 정의되어 있으므로 다른 유형을 넣을 수 없다. 반면 컬렉션은 단순히 문서를 모아놓은 컨테이너에 불과하다. 즉 같은 컬렉션 안에 있는 문서(관계형 데이터베이스에서는  레코드)라고 해도 키와 값은 일관성 없이 제각각일 수 있다. 또한 각 키에 대한 값에 미리 데이터 유형이 정해져 있는 것도 아니다. 즉 테이블은 스키마의 정의라는 강력한 권한을 가지지만 컬렉션은 그런 거 없다. 이러한 구조는 [[NoSQL]] 답게 데이터 구조의 일관성을 강제하지 않아서 데이터 구조가 굉장히 유연하다. 관계형 [[데이터베이스]]는 테이블을 일단 짜 놓고 데이터가 쌓이면 이 구조를 고치는 게 좀 까다로운 반면, 몽고DB는 그야말로 막 할 수 있다. 예를 들어, 어떤 컬렉션에 새로운 문서를 하나 집어넣으면서 전에는 정의되어 있지 않던 키를 쓸 수도 있다. 그렇다고 기존의 컬렉션에 있던 문서에 이 키가 전부 생기는 것도 아니다. 물론 이러한 유연함은 손쉽게 독이 되는데, 관계형 데이터베이스는 스키마 정의를 통해서 데이터의 유효성과 일관성을 어느 정도 확보할 수 있지만 몽고DB는 프로그래머가 스스로 신경쓰지 않으면 정말로 개판이 될수 있다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;정형화 되지 않은 데이터가 폭발적으로 늘어나는 [[빅데이터]] 시대가 되면서 다른 [[NoSQL]] 데이터베이스와 함께 급부상하고 있다. 아니, 급부상 정도가 아니라 NoSQL의 선두주자라고 해도 과언이 아니다. 현재 DB 시장 점유율을 보면 금방 드러난다. 2017년 1월에 DB-Engines.com이 발표한 순위를 봐도 [[오라클]], [[마이SQL]], MS SQL서버에 이어서 4위를 차지하고 있을 정도다! 반면 금융 거래와 같이 데이터의 안전성이나 정확히 절대 중요한 분야에는 적합하지 않다. 모든 데이터는 [[JSON]] 형식으로 입출력되며, 이를 &#039;문서&#039;라고 한다. JSON이 [[자바스크립트]] 쪽에서 나온 것인 만큼 [[자바스크립트]]와 궁합이 좋다. 물론 [[루비]], [[PHP]]를 비롯한 어떤 언어에도 붙여 쓸 수 있지만 [[Node.js]]에 붙여서 쓰는 [[NoSQL]] 데이터베이스로는 가장 많이 쓰이고 있다. 일단 [[하둡]]이나 [[카산드라]] 같은 다른 [[NoSQL]] [[데이터베이스]]에 비해서 진입장벽이 낮고 [[자바스크립트]]를 알고 있으면 [[JSON]]도 능숙하게 다룰 수 있기 때문. 아예 [[자바스크립트]] 언어 한 가지로 프론트엔드-백엔드-[[데이터베이스]]까지 퉁칠 수 있는 대표 기술들을 [[MEAN 스택]]으로 묶어서 웹 개발 플랫폼으로 사용하는데 여기서 &#039;M&#039;에 해당하는 것이 몽고DB다.&amp;lt;ref&amp;gt;E는 Express.js, A는 [[AngularJS]], N은 Node.js]]를 뜻한다.&amp;lt;/ref&amp;gt; 자세한 것은 해당 항목 참조.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;정형화 되지 않은 데이터가 폭발적으로 늘어나는 [[빅데이터]] 시대가 되면서 다른 [[NoSQL]] 데이터베이스와 함께 급부상하고 있다. 아니, 급부상 정도가 아니라 NoSQL의 선두주자라고 해도 과언이 아니다. 현재 DB 시장 점유율을 보면 금방 드러난다. 2017년 1월에 DB-Engines.com이 발표한 순위를 봐도 [[오라클]], [[마이SQL]], MS SQL서버에 이어서 4위를 차지하고 있을 정도다! 반면 금융 거래와 같이 데이터의 안전성이나 정확히 절대 중요한 분야에는 적합하지 않다. 모든 데이터는 [[JSON]] 형식으로 입출력되며, 이를 &#039;문서&#039;라고 한다. JSON이 [[자바스크립트]] 쪽에서 나온 것인 만큼 [[자바스크립트]]와 궁합이 좋다. 물론 [[루비]], [[PHP]]를 비롯한 어떤 언어에도 붙여 쓸 수 있지만 [[Node.js]]에 붙여서 쓰는 [[NoSQL]] 데이터베이스로는 가장 많이 쓰이고 있다. 일단 [[하둡]]이나 [[카산드라]] 같은 다른 [[NoSQL]] [[데이터베이스]]에 비해서 진입장벽이 낮고 [[자바스크립트]]를 알고 있으면 [[JSON]]도 능숙하게 다룰 수 있기 때문. 아예 [[자바스크립트]] 언어 한 가지로 프론트엔드-백엔드-[[데이터베이스]]까지 퉁칠 수 있는 대표 기술들을 [[MEAN 스택]]으로 묶어서 웹 개발 플랫폼으로 사용하는데 여기서 &#039;M&#039;에 해당하는 것이 몽고DB다.&amp;lt;ref&amp;gt;E는 Express.js, A는 [[AngularJS]], N은 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[&lt;/ins&gt;Node.js]]를 뜻한다.&amp;lt;/ref&amp;gt; 자세한 것은 해당 항목 참조.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;몽고DB 데이터 질의가 간단한 건 정말 단순해 보이지만 질의문을 무조건 [[JSON]] 형태로 만들어야 하기 때문에 조금만 복잡해지면 [[SQL]]과는 비교도 안 되게 알아보기 힘들어진다. 이를 보완하기 위해서 몽구스를 많이 쓴다. 몽구스는 스키마를 정의함으로써 관계형 데이터베이스와 비슷한 형태의 모델을 만들어 쓸 수 있도록 돕는다. 또한 한 가지의 질의는 단일 컬렉션 안에서만 할 수 있는 몽고DB의 한계를 어느 정도 보완해서 여러 컬렉션을 묶은 질의도 할 수 있다. 그렇다고 [[관계형 데이터베이스]]와 똑같이 몽고DB를 다룰 수 있는 것은 절대 아니며, 몽고DB에서 원래 안 되던 것을 몽구스를 사용해서 무리하게 하다 보면 성능 저하가 심각하게 일어날 수 있다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;몽고DB 데이터 질의가 간단한 건 정말 단순해 보이지만 질의문을 무조건 [[JSON]] 형태로 만들어야 하기 때문에 조금만 복잡해지면 [[SQL]]과는 비교도 안 되게 알아보기 힘들어진다. 이를 보완하기 위해서 몽구스를 많이 쓴다. 몽구스는 스키마를 정의함으로써 관계형 데이터베이스와 비슷한 형태의 모델을 만들어 쓸 수 있도록 돕는다. 또한 한 가지의 질의는 단일 컬렉션 안에서만 할 수 있는 몽고DB의 한계를 어느 정도 보완해서 여러 컬렉션을 묶은 질의도 할 수 있다. 그렇다고 [[관계형 데이터베이스]]와 똑같이 몽고DB를 다룰 수 있는 것은 절대 아니며, 몽고DB에서 원래 안 되던 것을 몽구스를 사용해서 무리하게 하다 보면 성능 저하가 심각하게 일어날 수 있다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dennis</name></author>
	</entry>
	<entry>
		<id>https://www.newiki.net/w/index.php?title=%EB%AA%BD%EA%B3%A0DB&amp;diff=8639&amp;oldid=prev</id>
		<title>2017년 1월 10일 (화) 00:01에 Dennis님의 편집</title>
		<link rel="alternate" type="text/html" href="https://www.newiki.net/w/index.php?title=%EB%AA%BD%EA%B3%A0DB&amp;diff=8639&amp;oldid=prev"/>
		<updated>2017-01-10T00:01:28Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ko&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 이전 판&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2017년 1월 10일 (화) 00:01 판&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l6&quot;&gt;6번째 줄:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;6번째 줄:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;몽고DB 데이터 질의가 간단한 건 정말 단순해 보이지만 질의문을 무조건 [[JSON]] 형태로 만들어야 하기 때문에 조금만 복잡해지면 [[SQL]]과는 비교도 안 되게 알아보기 힘들어진다. 이를 보완하기 위해서 몽구스를 많이 쓴다. 몽구스는 스키마를 정의함으로써 관계형 데이터베이스와 비슷한 형태의 모델을 만들어 쓸 수 있도록 돕는다. 또한 한 가지의 질의는 단일 컬렉션 안에서만 할 수 있는 몽고DB의 한계를 어느 정도 보완해서 여러 컬렉션을 묶은 질의도 할 수 있다. 그렇다고 [[관계형 데이터베이스]]와 똑같이 몽고DB를 다룰 수 있는 것은 절대 아니며, 몽고DB에서 원래 안 되던 것을 몽구스를 사용해서 무리하게 하다 보면 성능 저하가 심각하게 일어날 수 있다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;몽고DB 데이터 질의가 간단한 건 정말 단순해 보이지만 질의문을 무조건 [[JSON]] 형태로 만들어야 하기 때문에 조금만 복잡해지면 [[SQL]]과는 비교도 안 되게 알아보기 힘들어진다. 이를 보완하기 위해서 몽구스를 많이 쓴다. 몽구스는 스키마를 정의함으로써 관계형 데이터베이스와 비슷한 형태의 모델을 만들어 쓸 수 있도록 돕는다. 또한 한 가지의 질의는 단일 컬렉션 안에서만 할 수 있는 몽고DB의 한계를 어느 정도 보완해서 여러 컬렉션을 묶은 질의도 할 수 있다. 그렇다고 [[관계형 데이터베이스]]와 똑같이 몽고DB를 다룰 수 있는 것은 절대 아니며, 몽고DB에서 원래 안 되던 것을 몽구스를 사용해서 무리하게 하다 보면 성능 저하가 심각하게 일어날 수 있다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{각주}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:데이터베이스]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:데이터베이스]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dennis</name></author>
	</entry>
	<entry>
		<id>https://www.newiki.net/w/index.php?title=%EB%AA%BD%EA%B3%A0DB&amp;diff=8638&amp;oldid=prev</id>
		<title>2017년 1월 10일 (화) 00:01에 Dennis님의 편집</title>
		<link rel="alternate" type="text/html" href="https://www.newiki.net/w/index.php?title=%EB%AA%BD%EA%B3%A0DB&amp;diff=8638&amp;oldid=prev"/>
		<updated>2017-01-10T00:01:14Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ko&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 이전 판&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2017년 1월 10일 (화) 00:01 판&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l3&quot;&gt;3번째 줄:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;3번째 줄:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[NoSQL]]이라는 말이 뜻하는 것처럼 [[관계형 데이터베이스]]가 아니다. 일단 테이블이 없다. 관계형은 기본 구조가 [[데이터베이스]] → 테이블이라면 몽고DB는 데이터베이스 → 컬렉션으로 되어 있다. 이 컬렉션을 테이블과 같은 것으로 생각하기 쉽지만 개념이 많이 다르다. 일단 테이블은 그 안의 스키마가 고정되어 있으며, 같은 테이블에 저장되는 레코드는 같은 스키마를 가져야 한다. 설령 어떤 레코드에게는 무의미한 키라고 해도 어쨌든 Null 값이든 0이든 키와 값이 존재한다. 또한 테이블의 각 속성은 데이터 유형이 정의되어 있으므로 다른 유형을 넣을 수 없다. 반면 컬렉션은 단순히 문서를 모아놓은 컨테이너에 불과하다. 즉 같은 컬렉션 안에 있는 문서(관계형 데이터베이스에서는  레코드)라고 해도 키와 값은 일관성 없이 제각각일 수 있다. 또한 각 키에 대한 값에 미리 데이터 유형이 정해져 있는 것도 아니다. 즉 테이블은 스키마의 정의라는 강력한 권한을 가지지만 컬렉션은 그런 거 없다. 이러한 구조는 [[NoSQL]] 답게 데이터 구조의 일관성을 강제하지 않아서 데이터 구조가 굉장히 유연하다. 관계형 [[데이터베이스]]는 테이블을 일단 짜 놓고 데이터가 쌓이면 이 구조를 고치는 게 좀 까다로운 반면, 몽고DB는 그야말로 막 할 수 있다. 예를 들어, 어떤 컬렉션에 새로운 문서를 하나 집어넣으면서 전에는 정의되어 있지 않던 키를 쓸 수도 있다. 그렇다고 기존의 컬렉션에 있던 문서에 이 키가 전부 생기는 것도 아니다. 물론 이러한 유연함은 손쉽게 독이 되는데, 관계형 데이터베이스는 스키마 정의를 통해서 데이터의 유효성과 일관성을 어느 정도 확보할 수 있지만 몽고DB는 프로그래머가 스스로 신경쓰지 않으면 정말로 개판이 될수 있다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[NoSQL]]이라는 말이 뜻하는 것처럼 [[관계형 데이터베이스]]가 아니다. 일단 테이블이 없다. 관계형은 기본 구조가 [[데이터베이스]] → 테이블이라면 몽고DB는 데이터베이스 → 컬렉션으로 되어 있다. 이 컬렉션을 테이블과 같은 것으로 생각하기 쉽지만 개념이 많이 다르다. 일단 테이블은 그 안의 스키마가 고정되어 있으며, 같은 테이블에 저장되는 레코드는 같은 스키마를 가져야 한다. 설령 어떤 레코드에게는 무의미한 키라고 해도 어쨌든 Null 값이든 0이든 키와 값이 존재한다. 또한 테이블의 각 속성은 데이터 유형이 정의되어 있으므로 다른 유형을 넣을 수 없다. 반면 컬렉션은 단순히 문서를 모아놓은 컨테이너에 불과하다. 즉 같은 컬렉션 안에 있는 문서(관계형 데이터베이스에서는  레코드)라고 해도 키와 값은 일관성 없이 제각각일 수 있다. 또한 각 키에 대한 값에 미리 데이터 유형이 정해져 있는 것도 아니다. 즉 테이블은 스키마의 정의라는 강력한 권한을 가지지만 컬렉션은 그런 거 없다. 이러한 구조는 [[NoSQL]] 답게 데이터 구조의 일관성을 강제하지 않아서 데이터 구조가 굉장히 유연하다. 관계형 [[데이터베이스]]는 테이블을 일단 짜 놓고 데이터가 쌓이면 이 구조를 고치는 게 좀 까다로운 반면, 몽고DB는 그야말로 막 할 수 있다. 예를 들어, 어떤 컬렉션에 새로운 문서를 하나 집어넣으면서 전에는 정의되어 있지 않던 키를 쓸 수도 있다. 그렇다고 기존의 컬렉션에 있던 문서에 이 키가 전부 생기는 것도 아니다. 물론 이러한 유연함은 손쉽게 독이 되는데, 관계형 데이터베이스는 스키마 정의를 통해서 데이터의 유효성과 일관성을 어느 정도 확보할 수 있지만 몽고DB는 프로그래머가 스스로 신경쓰지 않으면 정말로 개판이 될수 있다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;정형화 되지 않은 데이터가 폭발적으로 늘어나는 [[빅데이터]] 시대가 되면서 다른 [[NoSQL]] 데이터베이스와 함께 급부상하고 있다. 반면 금융 거래와 같이 데이터의 안전성이나 정확히 절대 중요한 분야에는 적합하지 않다. 모든 데이터는 [[JSON]] 형식으로 입출력되며, 이를 &#039;문서&#039;라고 한다. JSON이 [[자바스크립트]] 쪽에서 나온 것인 만큼 [[자바스크립트]]와 궁합이 좋다. 물론 [[루비]], [[PHP]]를 비롯한 어떤 언어에도 붙여 쓸 수 있지만 [[Node.js]]에 붙여서 쓰는 [[NoSQL]] 데이터베이스로는 가장 많이 쓰이고 있다. 일단 [[하둡]]이나 [[카산드라]] 같은 다른 [[NoSQL]] [[데이터베이스]]에 비해서 진입장벽이 낮고 [[자바스크립트]]를 알고 있으면 [[JSON]]도 능숙하게 다룰 수 있기 때문. 아예 [[자바스크립트]] 언어 한 가지로 프론트엔드-백엔드-[[데이터베이스]]까지 퉁칠 수 있는 대표 기술들을 [[MEAN 스택]]으로 묶어서 웹 개발 플랫폼으로 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;사용한다&lt;/del&gt;. 자세한 것은 해당 항목 참조.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;정형화 되지 않은 데이터가 폭발적으로 늘어나는 [[빅데이터]] 시대가 되면서 다른 [[NoSQL]] 데이터베이스와 함께 급부상하고 있다. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;아니, 급부상 정도가 아니라 NoSQL의 선두주자라고 해도 과언이 아니다. 현재 DB 시장 점유율을 보면 금방 드러난다. 2017년 1월에 DB-Engines.com이 발표한 순위를 봐도 [[오라클]], [[마이SQL]], MS SQL서버에 이어서 4위를 차지하고 있을 정도다! &lt;/ins&gt;반면 금융 거래와 같이 데이터의 안전성이나 정확히 절대 중요한 분야에는 적합하지 않다. 모든 데이터는 [[JSON]] 형식으로 입출력되며, 이를 &#039;문서&#039;라고 한다. JSON이 [[자바스크립트]] 쪽에서 나온 것인 만큼 [[자바스크립트]]와 궁합이 좋다. 물론 [[루비]], [[PHP]]를 비롯한 어떤 언어에도 붙여 쓸 수 있지만 [[Node.js]]에 붙여서 쓰는 [[NoSQL]] 데이터베이스로는 가장 많이 쓰이고 있다. 일단 [[하둡]]이나 [[카산드라]] 같은 다른 [[NoSQL]] [[데이터베이스]]에 비해서 진입장벽이 낮고 [[자바스크립트]]를 알고 있으면 [[JSON]]도 능숙하게 다룰 수 있기 때문. 아예 [[자바스크립트]] 언어 한 가지로 프론트엔드-백엔드-[[데이터베이스]]까지 퉁칠 수 있는 대표 기술들을 [[MEAN 스택]]으로 묶어서 웹 개발 플랫폼으로 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;사용하는데 여기서 &#039;M&#039;에 해당하는 것이 몽고DB다.&amp;lt;ref&amp;gt;E는 Express.js, A는 [[AngularJS]], N은 Node.js]]를 뜻한다&lt;/ins&gt;.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/ref&amp;gt; &lt;/ins&gt;자세한 것은 해당 항목 참조.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;몽고DB 데이터 질의가 간단한 건 정말 단순해 보이지만 질의문을 무조건 [[JSON]] 형태로 만들어야 하기 때문에 조금만 복잡해지면 [[SQL]]과는 비교도 안 되게 알아보기 힘들어진다. 이를 보완하기 위해서 몽구스를 많이 쓴다. 몽구스는 스키마를 정의함으로써 관계형 데이터베이스와 비슷한 형태의 모델을 만들어 쓸 수 있도록 돕는다. 또한 한 가지의 질의는 단일 컬렉션 안에서만 할 수 있는 몽고DB의 한계를 어느 정도 보완해서 여러 컬렉션을 묶은 질의도 할 수 있다. 그렇다고 [[관계형 데이터베이스]]와 똑같이 몽고DB를 다룰 수 있는 것은 절대 아니며, 몽고DB에서 원래 안 되던 것을 몽구스를 사용해서 무리하게 하다 보면 성능 저하가 심각하게 일어날 수 있다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;몽고DB 데이터 질의가 간단한 건 정말 단순해 보이지만 질의문을 무조건 [[JSON]] 형태로 만들어야 하기 때문에 조금만 복잡해지면 [[SQL]]과는 비교도 안 되게 알아보기 힘들어진다. 이를 보완하기 위해서 몽구스를 많이 쓴다. 몽구스는 스키마를 정의함으로써 관계형 데이터베이스와 비슷한 형태의 모델을 만들어 쓸 수 있도록 돕는다. 또한 한 가지의 질의는 단일 컬렉션 안에서만 할 수 있는 몽고DB의 한계를 어느 정도 보완해서 여러 컬렉션을 묶은 질의도 할 수 있다. 그렇다고 [[관계형 데이터베이스]]와 똑같이 몽고DB를 다룰 수 있는 것은 절대 아니며, 몽고DB에서 원래 안 되던 것을 몽구스를 사용해서 무리하게 하다 보면 성능 저하가 심각하게 일어날 수 있다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:데이터베이스]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:데이터베이스]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dennis</name></author>
	</entry>
	<entry>
		<id>https://www.newiki.net/w/index.php?title=%EB%AA%BD%EA%B3%A0DB&amp;diff=4946&amp;oldid=prev</id>
		<title>2016년 1월 20일 (수) 03:59에 Dennis님의 편집</title>
		<link rel="alternate" type="text/html" href="https://www.newiki.net/w/index.php?title=%EB%AA%BD%EA%B3%A0DB&amp;diff=4946&amp;oldid=prev"/>
		<updated>2016-01-20T03:59:24Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ko&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 이전 판&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2016년 1월 20일 (수) 03:59 판&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l5&quot;&gt;5번째 줄:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;5번째 줄:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;정형화 되지 않은 데이터가 폭발적으로 늘어나는 [[빅데이터]] 시대가 되면서 다른 [[NoSQL]] 데이터베이스와 함께 급부상하고 있다. 반면 금융 거래와 같이 데이터의 안전성이나 정확히 절대 중요한 분야에는 적합하지 않다. 모든 데이터는 [[JSON]] 형식으로 입출력되며, 이를 &amp;#039;문서&amp;#039;라고 한다. JSON이 [[자바스크립트]] 쪽에서 나온 것인 만큼 [[자바스크립트]]와 궁합이 좋다. 물론 [[루비]], [[PHP]]를 비롯한 어떤 언어에도 붙여 쓸 수 있지만 [[Node.js]]에 붙여서 쓰는 [[NoSQL]] 데이터베이스로는 가장 많이 쓰이고 있다. 일단 [[하둡]]이나 [[카산드라]] 같은 다른 [[NoSQL]] [[데이터베이스]]에 비해서 진입장벽이 낮고 [[자바스크립트]]를 알고 있으면 [[JSON]]도 능숙하게 다룰 수 있기 때문. 아예 [[자바스크립트]] 언어 한 가지로 프론트엔드-백엔드-[[데이터베이스]]까지 퉁칠 수 있는 대표 기술들을 [[MEAN 스택]]으로 묶어서 웹 개발 플랫폼으로 사용한다. 자세한 것은 해당 항목 참조.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;정형화 되지 않은 데이터가 폭발적으로 늘어나는 [[빅데이터]] 시대가 되면서 다른 [[NoSQL]] 데이터베이스와 함께 급부상하고 있다. 반면 금융 거래와 같이 데이터의 안전성이나 정확히 절대 중요한 분야에는 적합하지 않다. 모든 데이터는 [[JSON]] 형식으로 입출력되며, 이를 &amp;#039;문서&amp;#039;라고 한다. JSON이 [[자바스크립트]] 쪽에서 나온 것인 만큼 [[자바스크립트]]와 궁합이 좋다. 물론 [[루비]], [[PHP]]를 비롯한 어떤 언어에도 붙여 쓸 수 있지만 [[Node.js]]에 붙여서 쓰는 [[NoSQL]] 데이터베이스로는 가장 많이 쓰이고 있다. 일단 [[하둡]]이나 [[카산드라]] 같은 다른 [[NoSQL]] [[데이터베이스]]에 비해서 진입장벽이 낮고 [[자바스크립트]]를 알고 있으면 [[JSON]]도 능숙하게 다룰 수 있기 때문. 아예 [[자바스크립트]] 언어 한 가지로 프론트엔드-백엔드-[[데이터베이스]]까지 퉁칠 수 있는 대표 기술들을 [[MEAN 스택]]으로 묶어서 웹 개발 플랫폼으로 사용한다. 자세한 것은 해당 항목 참조.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;몽고DB 데이터 질의가 간단한 건 정말 단순해 보이지만 질의문을 무조건 [[JSON]] 형태로 만들어야 하기 때문에 조금만 복잡해지면 [[SQL]]과는 비교도 안 되게 알아보기 힘들어진다. 이를 보완하기 위해서 몽구스를 많이 쓴다. 몽구스는 스키마를 정의함으로써 관계형 데이터베이스와 비슷한 형태의 모델을 만들어 쓸 수 있도록 돕는다. 그렇다고 [[관계형 데이터베이스]]와 똑같이 몽고DB를 다룰 수 있는 것은 절대 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;아니다&lt;/del&gt;.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;몽고DB 데이터 질의가 간단한 건 정말 단순해 보이지만 질의문을 무조건 [[JSON]] 형태로 만들어야 하기 때문에 조금만 복잡해지면 [[SQL]]과는 비교도 안 되게 알아보기 힘들어진다. 이를 보완하기 위해서 몽구스를 많이 쓴다. 몽구스는 스키마를 정의함으로써 관계형 데이터베이스와 비슷한 형태의 모델을 만들어 쓸 수 있도록 돕는다&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. 또한 한 가지의 질의는 단일 컬렉션 안에서만 할 수 있는 몽고DB의 한계를 어느 정도 보완해서 여러 컬렉션을 묶은 질의도 할 수 있다&lt;/ins&gt;. 그렇다고 [[관계형 데이터베이스]]와 똑같이 몽고DB를 다룰 수 있는 것은 절대 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;아니며, 몽고DB에서 원래 안 되던 것을 몽구스를 사용해서 무리하게 하다 보면 성능 저하가 심각하게 일어날 수 있다&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:데이터베이스]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:데이터베이스]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dennis</name></author>
	</entry>
	<entry>
		<id>https://www.newiki.net/w/index.php?title=%EB%AA%BD%EA%B3%A0DB&amp;diff=4939&amp;oldid=prev</id>
		<title>2016년 1월 18일 (월) 14:46에 Dennis님의 편집</title>
		<link rel="alternate" type="text/html" href="https://www.newiki.net/w/index.php?title=%EB%AA%BD%EA%B3%A0DB&amp;diff=4939&amp;oldid=prev"/>
		<updated>2016-01-18T14:46:33Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ko&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 이전 판&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2016년 1월 18일 (월) 14:46 판&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;1번째 줄:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;1번째 줄:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[JSON]] 방식 문서 기반의 [[NoSQL]] 데이터베이스. 2007 10gen에서 개발을 시작해서 2009년에 오픈소스로 공개되었고, 10gen은 아예 회사 이름을 MongoDB Inc.로 바꾸었다. 완전 무료인 커뮤니티 에디션과 유료 지원을 받을 수 있는 엔터프라이즈 에디션 두 가지로 나뉜다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[JSON]] 방식 문서 기반의 [[NoSQL]] 데이터베이스. 2007 10gen에서 개발을 시작해서 2009년에 오픈소스로 공개되었고, 10gen은 아예 회사 이름을 MongoDB Inc.로 바꾸었다. 완전 무료인 커뮤니티 에디션과 유료 지원을 받을 수 있는 엔터프라이즈 에디션 두 가지로 나뉜다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[NoSQL]]이라는 말이 뜻하는 것처럼 [[관계형 데이터베이스]]가 아니다. 일단 테이블이 없다. 관계형은 기본 구조가 [[데이터베이스]] → 테이블이라면 몽고DB는 데이터베이스 → 컬렉션으로 되어 있다. 이 컬렉션을 테이블과 같은 것으로 생각하기 쉽지만 개념이 많이 다르다. 일단 테이블은 그 안의 스키마가 고정되어 있으며, 같은 테이블에 저장되는 레코드는 같은 스키마를 가져야 한다. 설령 어떤 레코드에게는 무의미한 키라고 해도 어쨌든 Null 값이든 0이든 키와 값이 존재한다. 반면 컬렉션은 단순히 문서를 모아놓은 컨테이너에 불과하다. 즉 같은 컬렉션 안에 있는 문서(관계형 데이터베이스에서는  레코드)라고 해도 키와 값은 일관성 없이 제각각일 수 있다. 즉 테이블은 스키마의 정의라는 강력한 권한을 가지지만 컬렉션은 그런 거 없다. 이러한 구조는 [[NoSQL]] 답게 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;스키마의 &lt;/del&gt;일관성을 강제하지 않아서 데이터 구조가 굉장히 유연하다. 관계형 [[데이터베이스]]는 테이블을 일단 짜 놓고 데이터가 쌓이면 이 구조를 고치는 게 좀 까다로운 반면, 몽고DB는 그야말로 막 할 수 있다. 예를 들어, 어떤 컬렉션에 새로운 문서를 하나 집어넣으면서 전에는 정의되어 있지 않던 키를 쓸 수도 있다. 그렇다고 기존의 컬렉션에 있던 문서에 이 키가 전부 생기는 것도 아니다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[NoSQL]]이라는 말이 뜻하는 것처럼 [[관계형 데이터베이스]]가 아니다. 일단 테이블이 없다. 관계형은 기본 구조가 [[데이터베이스]] → 테이블이라면 몽고DB는 데이터베이스 → 컬렉션으로 되어 있다. 이 컬렉션을 테이블과 같은 것으로 생각하기 쉽지만 개념이 많이 다르다. 일단 테이블은 그 안의 스키마가 고정되어 있으며, 같은 테이블에 저장되는 레코드는 같은 스키마를 가져야 한다. 설령 어떤 레코드에게는 무의미한 키라고 해도 어쨌든 Null 값이든 0이든 키와 값이 존재한다&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. 또한 테이블의 각 속성은 데이터 유형이 정의되어 있으므로 다른 유형을 넣을 수 없다&lt;/ins&gt;. 반면 컬렉션은 단순히 문서를 모아놓은 컨테이너에 불과하다. 즉 같은 컬렉션 안에 있는 문서(관계형 데이터베이스에서는  레코드)라고 해도 키와 값은 일관성 없이 제각각일 수 있다&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. 또한 각 키에 대한 값에 미리 데이터 유형이 정해져 있는 것도 아니다&lt;/ins&gt;. 즉 테이블은 스키마의 정의라는 강력한 권한을 가지지만 컬렉션은 그런 거 없다. 이러한 구조는 [[NoSQL]] 답게 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;데이터 구조의 &lt;/ins&gt;일관성을 강제하지 않아서 데이터 구조가 굉장히 유연하다. 관계형 [[데이터베이스]]는 테이블을 일단 짜 놓고 데이터가 쌓이면 이 구조를 고치는 게 좀 까다로운 반면, 몽고DB는 그야말로 막 할 수 있다. 예를 들어, 어떤 컬렉션에 새로운 문서를 하나 집어넣으면서 전에는 정의되어 있지 않던 키를 쓸 수도 있다. 그렇다고 기존의 컬렉션에 있던 문서에 이 키가 전부 생기는 것도 아니다&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. 물론 이러한 유연함은 손쉽게 독이 되는데, 관계형 데이터베이스는 스키마 정의를 통해서 데이터의 유효성과 일관성을 어느 정도 확보할 수 있지만 몽고DB는 프로그래머가 스스로 신경쓰지 않으면 정말로 개판이 될수 있다&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;정형화 되지 않은 데이터가 폭발적으로 늘어나는 [[빅데이터]] 시대가 되면서 다른 [[NoSQL]] 데이터베이스와 함께 급부상하고 있다. 반면 금융 거래와 같이 데이터의 안전성이나 정확히 절대 중요한 분야에는 적합하지 않다. 모든 데이터는 [[JSON]] 형식으로 입출력되며, 이를 &amp;#039;문서&amp;#039;라고 한다. JSON이 [[자바스크립트]] 쪽에서 나온 것인 만큼 [[자바스크립트]]와 궁합이 좋다. 물론 [[루비]], [[PHP]]를 비롯한 어떤 언어에도 붙여 쓸 수 있지만 [[Node.js]]에 붙여서 쓰는 [[NoSQL]] 데이터베이스로는 가장 많이 쓰이고 있다. 일단 [[하둡]]이나 [[카산드라]] 같은 다른 [[NoSQL]] [[데이터베이스]]에 비해서 진입장벽이 낮고 [[자바스크립트]]를 알고 있으면 [[JSON]]도 능숙하게 다룰 수 있기 때문. 아예 [[자바스크립트]] 언어 한 가지로 프론트엔드-백엔드-[[데이터베이스]]까지 퉁칠 수 있는 대표 기술들을 [[MEAN 스택]]으로 묶어서 웹 개발 플랫폼으로 사용한다. 자세한 것은 해당 항목 참조.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;정형화 되지 않은 데이터가 폭발적으로 늘어나는 [[빅데이터]] 시대가 되면서 다른 [[NoSQL]] 데이터베이스와 함께 급부상하고 있다. 반면 금융 거래와 같이 데이터의 안전성이나 정확히 절대 중요한 분야에는 적합하지 않다. 모든 데이터는 [[JSON]] 형식으로 입출력되며, 이를 &amp;#039;문서&amp;#039;라고 한다. JSON이 [[자바스크립트]] 쪽에서 나온 것인 만큼 [[자바스크립트]]와 궁합이 좋다. 물론 [[루비]], [[PHP]]를 비롯한 어떤 언어에도 붙여 쓸 수 있지만 [[Node.js]]에 붙여서 쓰는 [[NoSQL]] 데이터베이스로는 가장 많이 쓰이고 있다. 일단 [[하둡]]이나 [[카산드라]] 같은 다른 [[NoSQL]] [[데이터베이스]]에 비해서 진입장벽이 낮고 [[자바스크립트]]를 알고 있으면 [[JSON]]도 능숙하게 다룰 수 있기 때문. 아예 [[자바스크립트]] 언어 한 가지로 프론트엔드-백엔드-[[데이터베이스]]까지 퉁칠 수 있는 대표 기술들을 [[MEAN 스택]]으로 묶어서 웹 개발 플랫폼으로 사용한다. 자세한 것은 해당 항목 참조.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;몽고DB 데이터 질의가 간단한 건 정말 단순해 보이지만 질의문을 무조건 [[JSON]] 형태로 만들어야 하기 때문에 조금만 복잡해지면 [[SQL]]과는 비교도 안 되게 알아보기 힘들어진다. 이를 보완하기 위해서 몽구스를 많이 쓴다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;몽고DB 데이터 질의가 간단한 건 정말 단순해 보이지만 질의문을 무조건 [[JSON]] 형태로 만들어야 하기 때문에 조금만 복잡해지면 [[SQL]]과는 비교도 안 되게 알아보기 힘들어진다. 이를 보완하기 위해서 몽구스를 많이 쓴다. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;몽구스는 스키마를 정의함으로써 관계형 데이터베이스와 비슷한 형태의 모델을 만들어 쓸 수 있도록 돕는다. 그렇다고 [[관계형 데이터베이스]]와 똑같이 몽고DB를 다룰 수 있는 것은 절대 아니다. &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:데이터베이스]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:데이터베이스]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dennis</name></author>
	</entry>
	<entry>
		<id>https://www.newiki.net/w/index.php?title=%EB%AA%BD%EA%B3%A0DB&amp;diff=4938&amp;oldid=prev</id>
		<title>2016년 1월 18일 (월) 04:04에 Dennis님의 편집</title>
		<link rel="alternate" type="text/html" href="https://www.newiki.net/w/index.php?title=%EB%AA%BD%EA%B3%A0DB&amp;diff=4938&amp;oldid=prev"/>
		<updated>2016-01-18T04:04:49Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ko&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 이전 판&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2016년 1월 18일 (월) 04:04 판&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;1번째 줄:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;1번째 줄:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[JSON]] 방식 문서 기반의 [[NoSQL]] 데이터베이스. 2007 10gen에서 개발을 시작해서 2009년에 오픈소스로 공개되었고, 10gen은 아예 회사 이름을 MongoDB Inc.로 바꾸었다. 완전 무료인 커뮤니티 에디션과 유료 지원을 받을 수 있는 엔터프라이즈 에디션 두 가지로 나뉜다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[JSON]] 방식 문서 기반의 [[NoSQL]] 데이터베이스. 2007 10gen에서 개발을 시작해서 2009년에 오픈소스로 공개되었고, 10gen은 아예 회사 이름을 MongoDB Inc.로 바꾸었다. 완전 무료인 커뮤니티 에디션과 유료 지원을 받을 수 있는 엔터프라이즈 에디션 두 가지로 나뉜다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[NoSQL]]이라는 말이 뜻하는 것처럼 [[관계형 데이터베이스]]가 아니다. 일단 테이블이 없다. 관계형은 기본 구조가 [[데이터베이스]] → 테이블이라면 몽고DB는 데이터베이스 → 컬렉션으로 되어 있다. 이 컬렉션을 테이블과 같은 것으로 생각하기 쉽지만 개념이 많이 다르다. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;예를 들어 컬렉션이 컬렉션을 품을 수도 &lt;/del&gt;있다. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;이는 관계형에서 테이블이 다른 테이블을 외래 키로 참조하는 것과는 많이 다르다&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;또한 &lt;/del&gt;[[NoSQL]] 답게 스키마의 일관성을 강제하지 않아서 데이터 구조가 굉장히 유연하다. 관계형 [[데이터베이스]]는 테이블을 일단 짜 놓고 데이터가 쌓이면 이 구조를 고치는 게 좀 까다로운 반면, 몽고DB는 그야말로 막 할 수 있다. 예를 들어, 어떤 컬렉션에 새로운 문서를 하나 집어넣으면서 전에는 정의되어 있지 않던 키를 쓸 수도 있다. 그렇다고 기존의 컬렉션에 있던 문서에 이 키가 전부 생기는 것도 아니다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[NoSQL]]이라는 말이 뜻하는 것처럼 [[관계형 데이터베이스]]가 아니다. 일단 테이블이 없다. 관계형은 기본 구조가 [[데이터베이스]] → 테이블이라면 몽고DB는 데이터베이스 → 컬렉션으로 되어 있다. 이 컬렉션을 테이블과 같은 것으로 생각하기 쉽지만 개념이 많이 다르다. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;일단 테이블은 그 안의 스키마가 고정되어 있으며, 같은 테이블에 저장되는 레코드는 같은 스키마를 가져야 한다. 설령 어떤 레코드에게는 무의미한 키라고 해도 어쨌든 Null 값이든 0이든 키와 값이 존재한다. 반면 컬렉션은 단순히 문서를 모아놓은 컨테이너에 불과하다. 즉 같은 컬렉션 안에 있는 문서(관계형 데이터베이스에서는  레코드)라고 해도 키와 값은 일관성 없이 제각각일 수 &lt;/ins&gt;있다. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;즉 테이블은 스키마의 정의라는 강력한 권한을 가지지만 컬렉션은 그런 거 없다&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;이러한 구조는 &lt;/ins&gt;[[NoSQL]] 답게 스키마의 일관성을 강제하지 않아서 데이터 구조가 굉장히 유연하다. 관계형 [[데이터베이스]]는 테이블을 일단 짜 놓고 데이터가 쌓이면 이 구조를 고치는 게 좀 까다로운 반면, 몽고DB는 그야말로 막 할 수 있다. 예를 들어, 어떤 컬렉션에 새로운 문서를 하나 집어넣으면서 전에는 정의되어 있지 않던 키를 쓸 수도 있다. 그렇다고 기존의 컬렉션에 있던 문서에 이 키가 전부 생기는 것도 아니다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;정형화 되지 않은 데이터가 폭발적으로 늘어나는 [[빅데이터]] 시대가 되면서 다른 [[NoSQL]] 데이터베이스와 함께 급부상하고 있다. 반면 금융 거래와 같이 데이터의 안전성이나 정확히 절대 중요한 분야에는 적합하지 않다. 모든 데이터는 [[JSON]] 형식으로 입출력되며, 이를 &amp;#039;문서&amp;#039;라고 한다. JSON이 [[자바스크립트]] 쪽에서 나온 것인 만큼 [[자바스크립트]]와 궁합이 좋다. 물론 [[루비]], [[PHP]]를 비롯한 어떤 언어에도 붙여 쓸 수 있지만 [[Node.js]]에 붙여서 쓰는 [[NoSQL]] 데이터베이스로는 가장 많이 쓰이고 있다. 일단 [[하둡]]이나 [[카산드라]] 같은 다른 [[NoSQL]] [[데이터베이스]]에 비해서 진입장벽이 낮고 [[자바스크립트]]를 알고 있으면 [[JSON]]도 능숙하게 다룰 수 있기 때문. 아예 [[자바스크립트]] 언어 한 가지로 프론트엔드-백엔드-[[데이터베이스]]까지 퉁칠 수 있는 대표 기술들을 [[MEAN 스택]]으로 묶어서 웹 개발 플랫폼으로 사용한다. 자세한 것은 해당 항목 참조.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;정형화 되지 않은 데이터가 폭발적으로 늘어나는 [[빅데이터]] 시대가 되면서 다른 [[NoSQL]] 데이터베이스와 함께 급부상하고 있다. 반면 금융 거래와 같이 데이터의 안전성이나 정확히 절대 중요한 분야에는 적합하지 않다. 모든 데이터는 [[JSON]] 형식으로 입출력되며, 이를 &amp;#039;문서&amp;#039;라고 한다. JSON이 [[자바스크립트]] 쪽에서 나온 것인 만큼 [[자바스크립트]]와 궁합이 좋다. 물론 [[루비]], [[PHP]]를 비롯한 어떤 언어에도 붙여 쓸 수 있지만 [[Node.js]]에 붙여서 쓰는 [[NoSQL]] 데이터베이스로는 가장 많이 쓰이고 있다. 일단 [[하둡]]이나 [[카산드라]] 같은 다른 [[NoSQL]] [[데이터베이스]]에 비해서 진입장벽이 낮고 [[자바스크립트]]를 알고 있으면 [[JSON]]도 능숙하게 다룰 수 있기 때문. 아예 [[자바스크립트]] 언어 한 가지로 프론트엔드-백엔드-[[데이터베이스]]까지 퉁칠 수 있는 대표 기술들을 [[MEAN 스택]]으로 묶어서 웹 개발 플랫폼으로 사용한다. 자세한 것은 해당 항목 참조.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dennis</name></author>
	</entry>
</feed>