Node.js에서 사용하던 가중치 적용 함수를 SQL Query로 구현 보았습니다.

결론은 로직으로 구현하는것 보다는 Query로 구현하는것이 간단하다 입니다.


------ 테이블 ------ 

t_item 

 

t_weight 

 item_cd

 item_nm

weight 

 weight

a

 장미

2

 1

b

 튤립

5

 2

c

 백합

8

 2

d

 호박꽃

3

 3

e

 무궁화

9

 3


 3

 4

 4

 4

 4


****************** 가중치 함수 - Node.js 구현 ******************

rows1[] = SELECT * FROM t_item 집합

var rownum = weightcheck(rows1[0]); //가중치로 선택된 Row의 번호 Get

var selrow = rows1[0][rownum]; //가중치로 선택된 Row Value


/** -----------------------------------------------------------------

 * 가중치 계산, 배열의 크기를 작게하기 위하여 weight 은 1~9 까지만 사용

 ----------------------------------------------------------------- */

function weightcheck(rows){

var point = 0; //가중치

var beforePoint = 0; //이전 가중치

var totalweightn = totalweigh(rows,'weight');             //가중치 Column

var ran = Math.floor((Math.random() * totalweightn)+1);   //1~가중치총합 사이의 랜덤한수

var i = 0;



//직전 가중치 + 현재 row의 가중치는 Band

for(i=0;i < rows.length;i++){

point = beforePoint + rows[i].adweight; 

if(ran > beforePoint && ran <= point ){

break;

};

beforePoint = point; //현재 위치를 이전 위치로 저장 합니다.

};

return i;

};

/** -----------------------------------------------------------------

 * 총 가중치 계산 (배열,가중치값 이름)

 ------------------------------------------------------------------- */

function totalweigh(list,weightnm){

var total=0; //총 가중치

for(var i = 0;i < list.length;i++){

total = total + list[i].adweight;

}

return total;

};


****************** 가중치 계산 - Query 로 구현 ******************

SELECT C.*

FROM (

SELECT A.* FROM t_item as A INNER JOIN t_weight as B

ON A.weight = B.weight                                       //가중치 숫자만큼 Row 복제

) as C

ORDER BY rand() LIMIT 1;                                         //복제된 Row 중 랜덤하게 하나의 Row를 반환



Node.js 에서 코드로 처리하는 것 보다 RDB에서 처리하는것이 더 깔끔합니다.


안드로이드용 바로가기APP https://goo.gl/LjcQgi -- 바로가기G




'Node.js' 카테고리의 다른 글

Node.js Windows 10 에서 jsdom 3 설치 오류 해결  (0) 2015.09.05
node.js로 GooglePlay Crawling  (0) 2015.08.31
시작합니다  (0) 2015.08.07


개발시 문자열을 조작할 일이 많아 제작 하였습니다


사용처:

- 데이터 값으로 대량 Insert Query 생성

- 트래커 작업(중복 트래커 제거)

- 텍스트 로그에서 IP,시간 만 추출


 


개발언어: C#, .Net Framework 3.5 이상 필요


기타 건의사항 있으시면 댓글로 남겨 주세요.

요구 사항을 자세히 적어 주시면 빠르게 반영토록 하겠습니다.

TRT-Control.exe

command.json

Text_Formatter.zip

text_formatter.jar


-- 프로그램 화면





www.dbguide.net 의 DA가이드 페이지들을 PDF로 변환해 보았습니다.

출력해서 시험 전날 요약본으로 봐야겠습니다.


DA가이드-1_전사아키텍처 이해.pdf


DA가이드-2_데이터 요건 분석.pdf


DA가이드-3_데이터 표준화.pdf


DA가이드-4_데이터 모델링.pdf


DA가이드-5_DB설계와 이용.pdf


DA가이드-6_데이터 품질관리 이해.pdf


바로가기 앱: https://play.google.com/store/apps/details?id=com.orengineer.android.a209.floatingshotcut

[세미나] 최적 데이터 구조 설계

목차: 

1강현행 데이터 모델 구축 전략 [1] 46분 
2강현행 데이터 모델 구축 전략 [2] 56분 
3강최적 파티션 설계 및 운영기법 사례 [1] 41분 
4강최적 파티션 설계 및 운영기법 사례 [2] 45분 
5강최적 데이터 구조 설계 1편 [1] 60분 
6강최적 데이터 구조 설계 1편 [2] 52분 
7강최적의 대용량 데이터 처리 기법 및 사례 [1] 39분 
8강최적의 대용량 데이처 처리 기법 및 사례 [2] 42분 
9강최적 데이터 구조 설계 2편 [1] 54분 
10강최적 데이터 구조 설계 2편 [2] 60분 
11강최적 인덱스 설계 기법 [1] 40분 
12강최적 인덱스 설계 기법 [2] 42분 
13강최적 데이터 구조 설계 3편 [1] 57분 
14강최적 데이터 구조 설계 3편 [2] 61분 
15강최적 인덱스 활용 사례 [1] 38분 
16강최적 인덱스 활용 사례 [2] 43분 



http://cyber.dbguide.net 사이트에서 회원 가입후 무료로 시청 가능한 자료 입니다.

개인적으로 스마트폰에 넣어 가지고 다니면서 틈틈히 보는걸 좋아해 다운받았다가.

공유하게 되었습니다.


아래 링크 통해서 바로 보거나 다운 받으실 수 있습니다.

https://drive.google.com/folderview?id=0BzfE8slPbOvbaWZ2cTRYY0xuMlk&usp=sharing



바로가기 앱: https://play.google.com/store/apps/details?id=com.orengineer.android.a209.floatingshotcut

VirtualBox에 Centos를 설치하여 설정을 모두 잡고 로드밸런스 및 기타 테스트를 위하여 가상 머신을 복제 하였다.



- 스냅샷 항목의 가상머신 복제 사용


위와 같이 복제한 후 복제된 OS의 MAC Address를 변경하면 eth0이 활성화 되지 않는다.

#ifconfig -a 하면 eth1 이나 eth2가 표시된다.

그럴경우 다음과 같이한다.

1. # vi /etc/sysconfig/network-scripts/ifcfg-eth0

   ifcfg-eth0 에서 HWADDR="" 부분의 기존 주소를 지우고 새로 변경된 주소를 입력한다.

  * MAC 주소는  설정/네트워크 에서 확인 가능하다.

2. # rm -f /etc/udev/rules.d/70-persistent-net.rules      //해당 파일 삭제

3. # reboot                                                                //재부팅


그럼 정상적으로 eth0 이 활성화 되며 네트워크가 동작한다.


바로가기 앱: https://play.google.com/store/apps/details?id=com.orengineer.android.a209.floatingshotcut



Windows 10 에 Node.js 설치 후 jsdom 3 버전을 설치중 아래와 같은 오류가 발생

>npm install jsdom@3

https://www.visualstudio.com/ko-kr/products/visual-studio-express-vs

 - 필자는 위 링크의 Visual-studio-express를 설치하여 위 오류를 해결하였다. 어차피 C# 도 하니 겸사 겸사 깔았다.


https://www.microsoft.com/ko-kr/download/details.aspx?id=40784

위 재배포 가능 패키지를 설치해도 될것같기는 하다. 하지만 테스트는 못함


바로가기 앱: https://play.google.com/store/apps/details?id=com.orengineer.android.a209.floatingshotcut



'Node.js' 카테고리의 다른 글

가중치 구현 (DB,Node.js)  (0) 2015.10.23
node.js로 GooglePlay Crawling  (0) 2015.08.31
시작합니다  (0) 2015.08.07

+ Recent posts