본문 바로가기

DEVELOPMENT/NoSQL

[NoSQL] MongoDB 설치(Windows/Linux)

NoSQL

 

NoSQL은 "Not Only SQL"의 약어로, 관계형 데이터베이스가 아닌 다른 유형의 데이터베이스를 지칭하는 용어이다. NoSQL 데이터베이스는 기존의 관계형 데이터베이스 시스템과는 다른 데이터 모델과 저장 방식을 사용한다.
NoSQL 데이터베이스는 다음과 같은 특징을 가지고 있다.


(1) 유연한 데이터 모델

NoSQL 데이터베이스는 관계형 데이터베이스처럼 정해진 스키마를 갖지 않고, 유연한 데이터 모델을 사용하여 비정형 데이터나 다양한 데이터 형식을 저장할 수 있다. 이는 데이터의 구조가 자주 변경되는 경우나 대량의 복잡한 데이터를 다루는 경우에 유용하다.


(2) 분산 데이터베이스

NoSQL 데이터베이스는 대부분 분산 환경에서 동작하도록 설계되었다. 데이터를 여러 서버에 분산하여 저장하고 처리할 수 있으므로, 높은 확장성과 성능을 제공할 수 있습니다. 이는 대량의 데이터를 처리하거나 트래픽이 많은 웹 애플리케이션 등에 유용하다.


(3) 비정형 데이터 지원

NoSQL 데이터베이스는 다양한 형태의 비정형 데이터를 처리할 수 있다. 문서(document), 그래프(graph), 열(column), 키-값(key-value) 등 다양한 데이터 모델을 지원하며, 데이터 간의 관계를 유연하게 표현할 수 있다.


(4) 높은 확장성

NoSQL 데이터베이스는 수평적 확장을 지원한다. 데이터베이스의 용량과 처리 능력을 증가시키기 위해 샤딩(sharding)이라는 기술을 사용하여 데이터를 분산 저장하고 처리할 수 있다. 이를 통해 대량의 데이터나 사용자 요청에 대한 처리를 확장할 수 있다.

 

 

MongoDB

 

MongoDB는 NoSQL 데이터베이스 시스템 중 하나이다.

MongoDB는 JSON 형태의 동적 스키마형 문서를 사용한다. 이를 MongoDB에서는 BSON(Binary JSON)이라는 독자적인 형식을 사용하는데, 데이터의 타입까지 포함되어 이진형태로 인코딩되 저장되기 때문에 JSON과는 다른 차이점이 있다.

MongoDB는 가장 기본적인 데이터를 Document 라고 부른다. 이는 RDBMS에서는 row에 해당된다. 이 Document의 집합을 Collection이라고 하는데, RDBMS에서는 테이블(Table)에 해당된다. Collection의 집합은 DB이고, 이는 RDBMS에서도 동일하다.
똑같은 조건으로 설계되었을 시 기존 RDBMS 속도보다 굉장히 빠르다는 장점이 있다. 따라서 데이터 일관성(Consistency)이 거의 필요 없고 조인 연산을 Embed로 대체할 수 있는 경우에는 MongoDB가 확실한 대안이 될 수 있다.

반대로 저장하는 데이터가 은행 데이터 같이 일관성(Consistency)이 매우 중요한 작업에는 MongoDB를 쓰기 매우 힘들다.

 

 

MongoDB 설치(Windows)

 

https://www.mongodb.com/try/download/community

 

Try MongoDB Community Edition

Try MongoDB Community Edition on premise non-relational database including the Community Server and Community Kubernetes Operator for your next big project!

www.mongodb.com

 

① 홈페이지 접속 > MongoDB Community Server Download > 버전 선택 후 Download

 

② 설치파일 실행 > Next > Complete 선택 > Install MongoD as a Sevice 선택 > Install MongoDB Compass 필요시 선택 > Install

③ 시스템 환경 변수 편집

시스템 속성 > 고급 > 환경 변수 > 시스템 변수 Path 선택 > 편집 > 새로 만들기

> 설치파일 경로 (C:\Program Files\MongoDB\Server\4.4\bin) 입력 후 확인

 

④ cmd 창을 통해 설치 확인

*버전 확인

mongo --version

*db 저장할 폴더 직접 생성 후 dbpath, port 설정

mongod --dbpath C:\Users\PC\Documents\db --port 27017

*DB 리스트 조회

show dbs

 

 

MongoDB 설치(Linux)

 

1. 리눅스 개발 환경 구축

WSL로 리눅스(Ubuntu) 설치

(참고) https://www.yalco.kr/_01_install_wsl/

 

WSL로 윈도우에 리눅스 설치하기

어려운 프로그래밍 개념들을 쉽게 설명해주는 유튜브 채널 '얄팍한 코딩사전'. 영상에서 다 알려주지 못한 정보들이나 자주 묻는 질문들의 답변들, 예제 코드들을 얄코에서 확인하세요!

www.yalco.kr

 

2. SSH로 리눅스 서버 접속

*ssh-i 명령어로 서버에 접속할 경우

개인 키 생성(ssh-keygen 명령을 통해 개인 키 생성) > 서버에 공개 키 추가 > SSH 접속

ssh -i /path/to/private_key.pem username@hostname

 

 

3. MongoDB 설치

 

 우분투 버전 확인

$ lsb_release -dc


② 패키지 관리 시스템에서 사용하는 public key 가져오기

$ wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -

 

③ MongoDB 목록 파일을 추가

$ echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list

 

 저장소 업데이트

$ sudo apt-get update

 

 MongoDB 패키지 설치하기

$ sudo apt-get install -y mongodb-org

 

MongoDB 실행하기

$ ps --no-headers -o comm 1

systemd - systemd(systemctl) 사용

$ sudo systemctl start mongod

init - System V Init(service) 사용

$ sudo service mongod start


⑦ MongoDB 사용 시작하기

$ mongo