MongoDB의 기본 동작 원리
MongoDB 구성
- MongoDB는 수평적 확장이라는 특징을 가짐
- 한 대 이상의 서버로 구성하는 것이 일반적
- MongoDB는 메모리 사용 가능량에 대비하여 성능이 좌우되기 때문에 독립된 서버에서 실행을 권장
- 기본적으로 MongoDB는 mongod 라는 실행파일을 단위로 실행
- 데이터를 한 곳에만 저장하면 데이터 손상 시 복구가 불가능하기 때문에 보통 3개의 Replica 단위로 구성하여 데이터를 복제
- mongos 서버를 통해 마치 한 대의 데이터베이스 서버처럼 사용 가능
MongoDB 설치
- MongoDB는 총 4개의 운영체제를 지원
- MongoDB를 사용하는 대부분의 유저는 90%가 리눅스를 사용
- 빅데이터 처리를 위해서는 많은 수의 머신이 필수적으로 사용
- 운영체제에 대한 비용이 상대적으로 적은 리눅스를 사용
- MongoDB의 철학 : 메모리 관리는 운영체제에게 맡기자
- 상대적으로 메모리 관리에 뛰어난 *nix 베이스의 운영체제 선택
- 윈도우용 MongoDB는 설치 및 사용이 간편함
- 지원 언어
- Java / Java Script
- Perl / PHP / Python
- Ruby / Scala / Erlang / Haskell
- 지원 운영체제
- MongoDB 공식 사이트 (mongodb.org) 접속 후,
다운로드 페이지에서 운영체제에 맞는 배포판 선택 및 다운로드
MongoDB 실행 / 종료
MongoDB 실행
- MongoDB 설치 폴더로 이동
- MongoDB 데이터 저장 폴더 생성 / mkdir C:\data
- MongoDB 실행 / mongod --dbpath C:\data
- MongoDB Shell 실행 / mongo
- MongoDB 실행 (서비스) / mongod --config C:\Program Files\MongoDB\mongodb.conf --install
MongoDB 종료
- MongoDB 안전 종료 (clean exit)
- > use admin;
- > db.shutdownServer();
Node.js의 개요
기본 개념
- MongoDB는 다양한 언어를 통해 사용 가능
- 본 강의는 JavaScript 기준으로 설명
- Node.js - 네트워크 프로그래밍을 위한 자바스크립트 플랫폼
- Node.js 내부는 표준 자바스크립트를 실행하기 위한 V8엔진을 기반으로 동작
- 손쉽고 간단하게 HTTP , URL 처리 가능
- MongoDB 데이터 입출력 시 사용되는 JSON처리가 용이
- 구글 크롬 웹브라우저에서 사용하는 자바스크립트 엔진(V8)을 이용하여 애플리케이션을 구축할 수 있게 해주는 프레임워크
- 자바스크립트를 이용하기 때문에 다른 언어에 비해 쉽고 간편하게 애플리케이션 제작 가능
- V8이라는 크롬에서 사용하는 자바스크립트 엔진을 사용하기 때문에 스크립트 언어의 단점인 느린속도 개선
- event-driven, non-blocking I/O 등의 개발 방식을 사용하여 네트워크 프로그래밍에 유리
Event-driven
- 사용자 또는 외부 환경이 만들어낸 이벤트를 기반으로 어떤 처리를 할지 지정해주는 개발 방식
- 예를들어 사용자가 마우스를 움직이거나 키보드를 입력하거나 새로운 데이터가 들어올 때 이 모든것을 이벤트로 처리
- 일부 웹서버는 데이터가 들어올 때까지 무한정 기다리는 문제가 있음
- 특정 이벤트에 대한 처리만하여 웹서버와 연결시키면 되기 때문에 자원을 최소화할 수 있다.
Non-blocking
- Blocking I/O
- 쓰기/읽기 이벤트가 발생할 경우 해당 이벤트가 끝날 때까지 해당 모듈을 계속 점유
- 다른 일을 할 수 없는 상태
- 메모리를 계속 차지하고 있기 때문에 자원의 낭비가 심함
- Non-Blocking I/O
- 쓰기/읽기 이벤트가 시작되어도 모듈을 반환
- 다른 작업이 가능한 준비상태로 전환
- 동기식보다 빠르고 메모리도 적게 차지함
Node.js 설치
Node.js
Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.
nodejs.org
Node.js 개발 환경
The Community for Open Innovation and Collaboration | The Eclipse Foundation
The Eclipse Foundation - home to a global community, the Eclipse IDE, Jakarta EE and over 375 open source projects, including runtimes, tools and frameworks.
www.eclipse.org
'DataBase > MongoDB' 카테고리의 다른 글
MongoDB 쉘을 이용하여 저장된 데이터를 수정하거나 삭제하기 (0) | 2021.09.24 |
---|---|
MongoDB 쉘을 이용하여 데이터 저장하고 조회하기 (0) | 2021.09.23 |
MongoDB의 기본 개념 (0) | 2021.08.27 |
NOSQL 데이터 모델링 기법 (0) | 2021.08.27 |
NOSQL의 특징 (0) | 2021.08.23 |