MongoDB Sharding
샤딩(Sharding) 수직 확장 vs 수평 확장 일반적으로 수직확장이라고 하면 단일 서버의 CPU 성능이나 RAM, 하드디스크의 용량을 늘리는 것이고 수평 확장이라고하면 물리적인 서버를 한대 더 두는 것을 뜻한다. 이렇게만 들으면 서버를 한 대 더 사는것보다 단일 서버 성능을 늘리는게 돈이나 노력면에서 훨씬 낫지 않느냐고 말할 수 있겠지만 일반적...
샤딩(Sharding) 수직 확장 vs 수평 확장 일반적으로 수직확장이라고 하면 단일 서버의 CPU 성능이나 RAM, 하드디스크의 용량을 늘리는 것이고 수평 확장이라고하면 물리적인 서버를 한대 더 두는 것을 뜻한다. 이렇게만 들으면 서버를 한 대 더 사는것보다 단일 서버 성능을 늘리는게 돈이나 노력면에서 훨씬 낫지 않느냐고 말할 수 있겠지만 일반적...
MongoDB ReplicaSet Replica set 물리적인 복사본을 가지고 DB를 운용하는 것이다. 어째서 이렇게 복사본을 운용하는가 하면 총 세가지 이유가 있다. 높은 가용성 다수의 복사본이 있기 때문에 서버 한 개가 셧다운 되어도 다른 서버가 읽거나 쓰는 기능을 대신할 수 있기 때문에 가용성에는 문제가 없다. 단, 데이터 정합성 때문에 주(...
리눅스 커널 컴파일 이번 포스팅에서는 리눅스 커널을 빌드하고 설치해보도록 하겠다. 진행환경 1. 하드웨어 CPU : 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz MEMORY : 16GB 2. Host OS Windows 10 Home 3. VM 환경 VM 환경 : VMware...
MongoDB 사용하기 MongoDB와 연결하기 어떤 플랫폼을 기반으로 사용할지 정해야한다. 많은 플랫폼을 지원하지만 Nodejs와 Python에 대해서만 다뤄보겠다. Nodejs Nodejs에서 제공하는 MongoDB 드라이버는 두 개이다. MongoDB Client MongoDB에서 제공하는 공식 드라이버이다. const { MongoClien...
필드 타입 MongoDB는 아래와 같은 필드 타입을 지원한다. double 소수점 자리이다. 소수를 입력하면 다음의 타입으로 지정된다. string 문자열 타입이다. UTF-8로 변환하여 저장된다. object 임의로 Object로 지정할 수 있다. 대부분 JSON으로 많이 쓴다. array 배열을 넣을 수 있다. 이 배열 내부 요소들은 doub...
보안 몽고 DB에서 지원하는 보안은 아래와 같다. 인증 기본적인 방식으로 아래에 기반한다 내가 아는 것을 기반으로 - 패스워드 내게 주어진 것을 기반으로 - 자격 내가 누구인지를 기반으로 - 생체 인식 또는 IP 주소 위의 3가지를 기반으로 제공하는 방식은 아래와 같다. SCRAM-SHA MongoDB는 사용자 ID와 솔트 처리된 암호 해시...
설치 절차 본 설치 절차는 ubuntu 20.04를 기준으로 작성되었다. public key 가져오기 $ wget -qO - https://www.mongodb.org/static/pgp/server-{버전}.asc | sudo apt-key add - {버전} 안에는 필요한 버전을 입력하면 되며 현재 있는 버전에 대해서...
MongoDB 개요 하드웨어에 대한 발달과 컴퓨터 공학에 대한 발달로 빅데이터에 대한 수요가 점점 늘어나면서 기존의 SQL DB로는 빅데이터 처리에 대한 수요를 제대로 처리할 수 없게 되었다. 그렇기 때문에 수 많은 NOSQL 솔루션들이 나왔는데 MongoDB 역시 그 솔루션들중 하나이다. 언제 쓰는가? 빅데이터를 사용하거나 혹은 SQL을 사용하기 ...
데이터 종속성 개요 데이터 베이스의 설계를 잘못하게 되면 삽입, 수정, 삭제간에 문제가 발생할 수 있다. 이렇게 발생한 문제를 이상현상이라고 하는데 이상현상의 실제적인 예시는 아래와 같다. 삽입 : 레코드 삽입시 부득이하게 NULL 입력 수정 : 데이터 일관성 훼손 - 일부 테이블에만 값이 업데이트 됨 삭제 : 연쇄 삭제 - 같이 저정된 ...
데이터 보안관련 SQL 한 개의 데이터 베이스를 여러개의 서비스가 사용할 수 있다. 그런데 이런 경우 각각의 계정마다 특정 테이블만 엑세스할 수 있도록 제한을 걸지 않는다면 다른 서비스가 사용하고 있는 테이블을 침범해 데이터 무결성을 깨뜨릴 수도 있다. 그리고 특히 유지보수나 여타 다른 목적으로 DB의 열람 기능만으로도 업무를 처리할 수 있는데 열...