리눅스 환경 세팅 - 7. CentOS 에 Tomcat 설치하기 (https://noobnim.tistory.com/24) 에 이어서 진행합니다.

 

출처 ) https://suwoni-codelab.com/linux/2017/05/31/Linux-CentOS-Node-Mongo/

 

10. 리눅스(CentOS) 개발 놀이터 만들기 - Node.js 그리고 Mongodb 설치

리눅스 CentOS에 Node.js 그리고 MongoDB를 설치해봅니다.

suwoni-codelab.com

 

1. node.js 설치하기

$ curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash --

node.js를 설치하기 위의 명령을 실행합니다.

 

위와 같이 보인다면 nodejs 의 설치가 준비 됐습니다.

 

$ yum -y install nodejs

위의 명령으로 본격적으로 nodejs를 설치합니다.

Complete! 의 메세지와 함께 설치가 완료 됩니다.

 

$ node --version
$ npm --version

위의 명령으로 버전정보가 확인된다면 설치가 정상적으로 된것입니다.

 

 

 

2. mongoDB 설치하기

저는 위의 출처를 따라서 조금더 상위 버전인 Community Edition 3.6버전을 설치하겠습니다.

 

$ vi /etc/yum.repos.d/mongodb-org-3.6.repo

우선 위의 명령으로 파일을 생성합니다.

 

[mongodb-org-3.6] 
name=MongoDB Repository 
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/  
gpgcheck=1 
enabled=1 
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc

파일에 위와 같이 작성을 하고 저장을 하도록 합니다.

이제 설치가 준비되었습니다.

 

$ yum -y install mongodb-org

위의 명령으로 mongodb를 설치하도록 합니다.

Complete ! 메세지와 함께 설치가 완료됩니다.

 

$ systemctl enable mongod 
$ systemctl start mongod

서비스에 등록을 하고 재시작을 하도록 합니다.

 

 

 

3. mongoDB User 생성 및 보안설정

$ mongo

위의 명령으로 mongodb 를 실행합니다.

 

> use admin

admin 상태로 들어옵니다.

 

> db.createUser({             
    user: “유저아이디" ,             
    pwd: “패스워드",             
    roles: [ "userAdminAnyDatabase","readWriteAnyDatabase” ] 
})

위의 형식으로 유저를 생성합니다.

올바르게 작성했다면 Successfully added user 메세지가 뜨게 됩니다.

 

> exit

mongodb를 종료합니다.

 

$ vi /etc/mongod.conf 

mongodb의 설정파일을 열도록 합니다.

중간쯤 port: 27017 로 기본 포트가 지정되어 있습니다. 변경하실 분들은 원하는 포트로 변경하시면 됩니다.

 

bindIp 부분은 접속할 곳의 IP를 입력하면 되나, 모든곳에서 허용을 원하면 0.0.0.0 으로 ip를 변경합니다.

 

#security 부분은 인증 받은 유저만 접속하게 하기 위하는 부분입니다.

security:
 authorization: enabled

위와 같이 입력하도록 합니다. authorization 앞부분을 tab키로 띄우면 에러가 난다고 합니다. 꼭 space바로 띄어쓰기 하도록 합니다.

 

저장하고 나오도록 합니다.

 

$ firewall-cmd --permanent --add-port=변경한포트/tcp
$ firewall-cmd --reload

위 명령으로 port를 방화벽 해제 해준뒤 재실행 합니다.

 

$ semanage port -a -t mongod_port_t -p tcp 변경한포트

Selinux의 mongdb포트 설정을 변경합니다.

 

$ systemctl restart mongod

mongodb를 재시작 합니다.

 

 

 

 

4. mongoDB Client 설치하기

제가 client로 접속할 환경은 windows10 입니다.

mongodb의 client 도구인 compass를 설치하도록 하겠습니다.

 

Compass 다운로드 링크

https://www.mongodb.com/download-center/compass

 

Download Center: Compass

MongoDB Compass, the GUI for MongoDB, is the easiest way to explore and manipulate your data. Download and use for free for development environments.

www.mongodb.com

위의 링크로 들어가도록 합니다.

 

 

본인의 OS에 맞게 선택하여 Download를 클릭합니다.

 

 

사용설명 안내와 함께 설치없이 바로 실행됩니다.

 

 

mongodb를 설치한 host, port, username, password 를 입력 후

연결을 시도하면 연결이 가능합니다.

 

 

위의 화면이 보인다면 정상적으로 접속이 된 상태입니다.

 

이상으로 마치도록 하겠습니다.

출처) https://gangnam-americano.tistory.com/30

 

■ NoSQL 이란?

NoSQL이란 Not Only SQL의 약자로 기존 관계형 데이터베이스(RDBMS)와는 다른형태의 데이터 저장기술을 의미한다.

기존의 RDBMS는 테이블형식의 row와 column 형태로 데이터가 저장되며 foriegn key를 이용하여 테이블, 데이터간의 관계를 정의하며 join을 통해 데이터를 조회할 수 있다.

NoSQL은 기존의 정적인 구조의 RDBMS보다 융통성있는 형태의 데이터 구조를 사용하고 있으며, 분산 저장 환경에 용이하여 데이터 저장 및 검색(scan) 작업에 있어 뛰어난 성능을 보인다. 단순한 데이터 검색에 용이한 key/value 형태는 응답속도나 처리효율에 큰 강점을 지니고 있어 빅데이터 환경에 특화되어 있다고 볼 수 있다.

NoSQL은 이러한 RDBMS와는 다른 형태의 저장 구조를 가지며, 크게 4가지 특성에 따라 NoSQL을 분류할 수 있다.

 

■ NoSQL의 종류

저장되는 데이터 구조에 따라 NoSQL은 다음과 같이 분류된다.

 

Key-Value Store

ey와 value로 이뤄진 간단한 데이터 구조로, 다른 형태 구조의 NoSQL이라도 기본적으로 대부분의 NoSQL에서는 key/value의 개념을 가진다. 기본적인 형태로 value에 String, Integer, List, Hash 등의 기본 자료형이 해당된다. 이러한 데이터 구조는 속도가 빠르며, 분산저장 환경에 용이하여 key에 대한 엑세스 속도는 빠르지만 검색(scan)에는 취약한 특징이있다.

 

대표적인 DB에는 Redis, Memcached 등이 있다.

 

Wide Column Store

Column Oriented Database 혹은 Column Family Oriented Database라고 불리는데, 일반적인 key/value의 형태의 데이터 구조에서 하나의 key에 하나의 value만 저장하는 단점을 극복하기 위해 value에 해당하는 값을 여러개의 Column형태로 저장하며 이 묶음을 Column Family라고 한다. 데이터마다 다른 스키마를 가질 수 있으며 이 점은 Document Store와 비슷하다고 볼 수도 있다. 또한 이러한 Column Oriented형태는 우리가 많이 사용하는 RDBMS와 많이 유사한 형태이다.

 

대표적인 DB에는 HBase, Cassandra 등이 있다.

 

Document Store

Document형태로 데이터가 저장되는데 여기서 말하는 Document는 JSON, XML등을 말하며 Column Oriented와 같이 스키마가 유동적인 것이 특징이다. 

 

대표적인 DB로는 MongoDB, CouchDB 등이 있다.

 

- Graph DB

데이터를 노드(node)간의 관계로 표현한 Database를 말한다.

 

대표적인 DB로는 Neo4j, OrientedDB 등이 있다.

 

'IT 용어 정리' 카테고리의 다른 글

DAO 와 DTO 란?  (0) 2019.09.26
MyBatis 란?  (0) 2019.09.26
node.js 란 무엇인가  (0) 2019.09.14
spring MVC 와 DispatcherServlet 의 정의  (0) 2019.09.14
front end와 back end의 정의  (0) 2019.09.13

+ Recent posts