2019/03 44

[리눅스] 우분투에서 Postgresql 9.5 저장 위치 변경하기

DB 서버에 RAID로 구성한 디스크를 준비하였으니, 이제는 데이터 베이스를 RAID 디스크에 옮겨서 보관해야한다. OS 가 깨질 수도 있으니.. 항상 데이터 영역과 OS 영역은 구분하자. 데이터를 저장할 디스크의 마운트 위치가 /db라고하자. [1] 기존 디비 저장 위치 확인 sudo -u postgres psql SHOW data_directory; 먼저 sudo 명령으로 postgres 사용자를 실행한다. 이후 SHOW data_directory;를 입력하여 현재 위치를 확인한다. 아마도 아래처럼 나올 것이다. data_directory ------------------------------ /var/lib/postgresql/9.5/main (1 row) [2] postgresql 멈추기 이제 시..

[서버] Node.js Redis Only (P)SUBSCRIBE / (P)UNSUBSCRIBE / PING / QUIT allowed in this context 오류 해결

Socket.io를 이용하여 데이터 크롤링 결과를 실시간으로 뿌려주는 기능을 구현하였다. 물론 Node.js를 두개로 나누어 웹 서비스용과 데이터 크롤링 및 전송용으로 나눠서 사용했지만, Node.js http request 모듈이 특정 사이트에 가면 timeout이 생기는 문제가 발생했다.(Node.js가 Non-blocking이 아니었나..) 그래서 서버를 웹 서비스 / 데이터 크롤링 / 데이터 전송 세가지로 나누고, 데이터 크롤링 서버가 데이터를 redis 상에 업데이트 하면 이 정보를 데이터 전송 서버에 전달하도록 구현하는데 redis publish, subscribe를 사용했다. 우선 데이터 크롤링에서 얻은 데이터는 실시간 데이터기 때문에 소실되어도 문제가 크게 없어서, redis pub/sub..

[자바스크립트] Associative array 정렬하기

Javascript에서 Associative array는 C++의 map이나 Python의 dictionary와 같은 데이터 타입이다. Javascript의 Array의 경우 손쉽게 prototype에 정의된 sort를 사용할 수 있으나, Associative array의 경우 사용자 정의 데이터 타입에 가깝기 때문에 Compare 함수를 만들어 줘야한다. Associative array가 key : value 타입으로 정의되어 있다면, 아래와 같이 만들면 된다. function aasort(arr){ var tuples = []; for (var key in arr) tuples.push([key, arr[key]]); tuples.sort(function(a, b) { a = a[1]; b = b[1..

[티스토리] 티스토리 OPEN API 이용하여, Access token 발급받기 (2020.12.10 업데이트)

티스토리 OPEN API를 이용하면, 사용자가 직접 로그인하지 않아도 글을 쓰거나, 수정, 삭제, 조회할 수 있습니다. 이런 CRUD 작업을 REST API를 바탕으로 수행하기 위해서는, 작업을 수행하는 자가 본인임을 인증해야 합니다. 이러한 인증을 Authentication이라고하며, 그중 티스토리는 OAuth2.0을 지원합니다. OAuth 2.0 인증 절차의 끝은 Access token을 발급받는 과정이고, 이 Access token을 이용하여 현재 Rest API를 사용하는 자가 본인임을 증명하는 것입니다. 우선 Tistory의 Access token을 발급 받는 방법은 두가지로 나뉩니다. 자신이 직접 웹 서버나, 응용 프로그램을 만들고 이를 지원하거나 누군가 만들어 놓은 서버를 이용하여 사용하거나..

[서버] 웹 서비스 단일 로그인 (아이디당 1세션 유지)

대부분의 웹 서비스 프레임워크에서 세션을 관리하는 기능을 제공한다. 이런 세션 기능들은 1번 로그인을 하면, 브라우저내의 어떤 탭에서도 로그인이 유지된다. 하지만 일부 프로젝트는 반드시 1계정 1세션 유지가 정책이 되어야 하는 경우도 있다. [세션의 정의와 세션 관리 기능이 동작하는 방법] 어떤 프레임워크를 사용하든지, 세션은 서버 기준의 1개의 일시적인 연결이다. 즉, 어떤 클라이언트가 접근하였을때 세션 ID를 만들고, 로그인시 클라이언트의 정보를 해당 세션 ID(Key)에 대한 값(Value)로 저장한다. 그리고 마지막으로 클라이언트 브라우저에게 해당 세션 ID(세션 ID, 세션 Key를 혼용하겠음)를 전달해주면서, 해당 세션키를 이후 모든 연결에 전달하라고 요구한다. 이 경우 브라우저는 이 세션키를..

[자바스크립트] Node.js, 자바스크립트 Object(Associative array) 종료 및 콜백

jQuery에서 동일한 DOM의 반복적인 selector를 사용을 방지하기 위해서나, K-V 형식으로 데이터를 저장할때 Object를 많이 사용한다. 이런 Object안에서 전체 Key를 찾아 순회할 때, Object.keys(obj)형식을 많이 사용한다. 특히, Object.keys(obj).forEach(function(k,v){})를 이용하여 Loop 문까지 한번에 처리하는 경우가 많은데, 여기서 Callback을 사용하는 경우 callback 호출후에도 루프가 Break되지 않는 문제가 생긴다. var obj = { 'abc':1 , 'bcd':2'}; function run(obj, callback){ Object.keys(obj).forEach(function(k,v){ if(k == 'abc..

[컴퓨터] 제온 워크스테이션 조립 및 윈도우 설치

이전글 보기 : [컴퓨터] 개인 워크스테이션 구축 E5-2680v2, X9DRi-LN4F+ 정말 험란했다. 케이스 조립과 화면 출력만 거의 1시간을, 윈도우 설치 시도만 거의 6시간을 썼다. 그리고 문제를 깨달고 이를 해결하는데만 2시간이 걸렸다. 도합 9시간짜리 작업이었다. 어제부로 기존 시스템에서 돌리고 있던 MSSQL 서버 2008를 다른 컴퓨터로 이전하고, 오후 9시부터 본격적으로 설치하기 시작했다. 1. 24핀, 8핀 연장선 설치 우선 어제 도착한 마지막 드래곤볼중 하나인 맥스파인더 연장선을 설치했다. 맥스파인더가 다른 일반 케이블보다 3~4배 가량 비싸서, 워크스테이션에 과연 적합한가 고민을 많이 했었다. 그러나 일반 케이블 판매처에서 케이블 두께에 대해서 언급도 안되있고 아무리 좋은 것을 써..

일상/리뷰 2019.03.10

[C/C++] Simple Polygon의 Triangulation – OpenGL

1. Visual Studio 2015와 OpenGL 사용 아래 글 참조 http://fatc.club/2017/03/25/1814 2. 코드 https://github.com/ChangdaeJeong/triangluation-openGL 위의 깃허브 참조 3. 데모 영상 콘솔창 + OpenGL 영상 https://www.youtube.com/watch?v=pxCs9ynF_OA&feature=youtu.be OpenGL 영상 https://www.youtube.com/watch?v=fBwQU2o17aQ 4. 기타 Triangulation 할때, Upper & Lower Chain을 이미 알고 있다는 가정하에, 구현하였음. 초기 시작시 X-coordinate 순으로 점이 추가됨. 그 다음 Upper Cha..

[VB] 윈도우에서 프로그램을 백그라운드로 실행하는 방법

1. 백그라운드 프로세스 백그라운드 프로세스는 화면에 출력되지 않고, 서비스 처럼 동작하는 프로세스로 호출하기 위해서는 아래와 VBS 코드를 작성하면 된다. 2. VBS VBS 코드란 Visual Basic Script로 MS의 Visual Basic 언어로 작성된 스크립트 파일을 말한다. VBS는 Windows 98 이후쭉 내장되어 왔다. 3. 코드 Set WshShell = CreateObject("WScript.Shell") WshShell.Run chr(34) & "절대/상대 주소" & Chr(34), 0 Set WshShell = Nothing 위의 코드를 메모장에 복사하고 저장한다. 그리고 .txt를 .vbs 확장자로 바꾸어 준다. 여기서 절대 주소는 "C:\Users\UserName\Desk..

[컴퓨터] 개인 워크스테이션 구축 E5-2680v2, X9DRi-LN4F+

테스트 서버를 개인 데스크톱에 구성해서 프로젝트를 진행하다 보니, 어느새 내 컴퓨터에 돌아가는 Mongodb, Redis등을 제외한 RDBMS만 3개가 되어가고 WAS, 웹서버 그리고 가상머신까지 돌아간다. 여기에 컴퓨터를 전혀 끄지 않고, 크롬을 열어두다 보니 메모리 점유율이 50프로가 기본이다. 물론 기존 사양은 i7 2600, DDR3 16GB이므로 썩 나쁜편(?)은 아니다. 사실상 2세대 이후로 매 세대마다 약 5~6%정도 밖에 성능향상이 안되었으니,최신 i7이나 라이젠 1800으로 교체한다고 하더라도 언젠가는 다시 사양 문제에 부딪히게 될 것이다. 물론 i9이나 스레드리퍼를 사용하게 된다면, 위의 CPU보다도 오래 버틸 수 있을 테지만 너무 가격이 비싸다. 그리고 그렇게 높은 클럭이 필요하지 않..

일상/리뷰 2019.03.05
페이스북으로 공유카카오톡으로 공유카카오스토리로 공유트위터로 공유URL 복사