MongoDB 샤딩 개요

Posted by Breeze24
2021. 1. 3. 00:23 DB

샤딩 사용 목적

처리해야할 데이터가 많은 경우 하나의 ReplicaSet만으로는 성능 개선이 되지 않을 경우 데이터를 서버에 분산 저장 하여 성능 개선 목적으로 사용함

MongoDB 샤딩 개요

 

샤딩 구성 요소

샤딩을 구성하기 위해서는 크게 3가지 요소가 필요하다. Config 서버, Mongos, Mongod가 있어야 한다. 

전체 구조는 아래와 같이 구성된다고 보면 된다. 

.

샤딩 구성 요소

 

1. Config 서버

 - 샤딩 설정이 있는 서버. 어떤 Mongod 서버에 질의하면 되는지에 대한 정보를 가지고 있다. 3대의 ReplicaSet으로 구성 필요

 

2. Mongos

- Config 서버와 Mongod 사이에서 라우팅 역할을 한다. 어플리케이션으로 부터 요청을 받아 해당하는 Mongod로 질의한다. 

3. Mongod

- 실제 데이터가 저장되는 서버. Shard 서버라고도 불린다. replicaset으로 구성이 필요하다.  

.

'DB' 카테고리의 다른 글

MYSQL DSN (ODBC) 설정  (0) 2016.06.05

PriorityQueue 예제

Posted by Breeze24
2020. 12. 28. 22:25 카테고리 없음

PriorityQueue는 요소 들 중에 우선순위가 높은 요소를 꺼내 주는 기능을 한다. 

우선순위는 생성자에서 지정할 수 있다.

 

PriorityQueue 예제

 

우선 순위가 낮은 순 - PriorityQueue<>();  

우선 순위가 높은 순 - PriorityQueue<>(Collections.reverseOrder()); 

 

public static void main(String[] args) {

Queue queue = new PriorityQueue();

queue.offer("z");

queue.offer("a");

queue.offer("c");

queue.offer("g");

queue.offer("q");

queue.offer("q");

queue.offer("b");

 

System.out.println(queue);

 

//출력 결과 : [a, g, b, z, q, q, c] a가 맨 앞으로 왔고, 뒤의 요소들은 동일하지 않다. 중복을 허용한다.

 

Object temp = null;

while ((temp = queue.poll())!=null) {

        System.out.println(temp);

     }

}

 

출력 결과

네이버 billboard.js 차트 라이브러리 샘플 및 무료 사용 가능 여부

Posted by Breeze24
2020. 12. 6. 00:50 카테고리 없음

MIT 차트 라이브러리

무료 사용 가능 여부

네이버 차트 라이브러리인 billboard.js는 오픈소스에서 사용이 많이 되는 라이르러리인 MIT 라이센스이다. 

 

차트 라이브러리

MIT 라이센스를 모르는 경우는 아래 사이트를 참고하기 바란다.

복제, 배포, 수정 허용 여부 및 배포시 소스코드 제공의무와 범위에 대해 자세히 나와 있다. 

.

 

.

www.olis.or.kr/license/Detailselect.do?lId=1006&mapCode=010006

 

위의 내용을 참고해서 사용하려는 목적 범위에서 사용이 가능한지 판단이 필요하다. 

 

샘플 코드

막대 그래프를 그릴수 있는 샘플은 크게 스크립트, css링크 부분과 그래프를 그리는 function을 정의하는 부분, 그래프를 표시하는 영역의 선언 부분으로 나눌 수 있다. 

그리 어렵지 않은 소스이니 쉽게 테스트가 가능하다. 

 

$(function(){}) 안에 function 내용을 작성해야지 오류 없이 테스트가 가능하다. 

<!DOCTYPE html>
<html>
<head>
<script src="/js/jquery-1.12.3.js"></script>
<script src="https://d3js.org/d3.v5.min.js"></script>
<script src="/js/billboard.pkgd.js"></script>
<link rel="stylesheet" href="/css/billboard.css">
<link rel="stylesheet" href="/css/theme/insight.min.css">


<script>

$(function(){
var chart = bb.generate({
	  data: {
	    columns: [
		["data1", 30, 200, 100, 400, 150, 250],
		["data2", 130, 100, 140, 200, 150, 50]
	    ],
	    type: "bar", // for ESM specify as: bar()
	  },
	  bar: {
	    width: {
	      ratio: 0.5
	    }
	  },
	  bindto: "#barChart"
	});

	setTimeout(function() {
		chart.load({
			columns: [
				["data3", 130, -150, 200, 300, -200, 100]
			]
		});
	}, 1000);
	
})
</script>

</head>
<body>
<div id="barChart"></div>

</body>
</html>

차트 샘플

 

위에 설명한 내용 말고 더 자세한 내용은 아래 사이트에서 확인할 수 있다.

 

 

.

 

 

naver.github.io/billboard.js/