분류 전체보기 397

인수(argument)의 평가와 값

함수에 넘기는 어떤 값을 인수(argument)라고 하지요. 오늘은 인수로 어떤 종류의 값이 넘어가는지, 그리고 인수를 언제 평가(evaluation)하는지 살펴보도록 하겠습니다. 빠른 평가와 지연 평가 수식(expression)의 평가는 시점에 따라 빠른 평가(eager evaluation)와 지연 평가(lazy evaluation)로 나뉩니다. 빠른 평가는 인수 수식을 함수에 넘기기 전에 평가합니다. 반면, 지연 평가는 인수를 함수 안에서 실제로 사용할 때 비로소 해당 수식을 평가합니다. 평가 방법 여기서는 참고의 링크에 나온 몇 가지 평가 방법을 소개하겠습니다. Call-by-value (빠른 평가) 값을 복사해서 전달 (C에서 pointer를 전달하는 것도 call-by-value) Call-by..

ARCHIVES 2016.03.05

pgpool을 사용한 DB 복제 및 부하분산

pgpool을 사용한 DB 복제 및 부하분산 1. 테스트 환경 postgresSQL DB 2개, pgpool 1개 2. 테스트 내용 1) pgpool에 2개의 postgreSQL을 등록하여 Master/slave를 구성 2) DML/DDL 실행시 각 DB에 수행 3) load_balance_mode와 backend_weight 파라미터를 설정하여 select 쿼리 분산 테스트 3. 파라미터 설정 backend_weight 설정은 각노드의 값을 더했을 때 1로 보며 다음과 같이 1, 4로 설정하였을 경우 backend0 = 20%, backend1 = 80%로 load balancing 수행하므로 select 쿼리의 경우 backend1에서 우선 실행 한다. backend_hostname0 = '192.1..

ARCHIVES 2016.03.04

Parsing Expression Grammars(PEGs)

이번 포스팅에서는 Parsing Expression Grammars(PEGs)에 대해 알아보는 시간을 갖도록 하겠습니다. 들어가기에 앞서 예전에 Lex와 YACC을 사용해서 간단한 파서를 만드는 과제를 해본 경험이 있으시죠? 컴파일러 시간에 ᅟ정규표현식과 Context-free grammars(CFGs)등을 배우면서 말지요. 이 과정에서 BNF와 비슷한 표기법으로 우리가 파싱하고자 하는 언어의 문법을 정의했던 기억이 납니다. PEGs도 CFGs와 비슷한 것이라고 보시면 됩니다. PEGs란? PEGs는 CFGs와 비슷하지만, 몇 가지 차이점이 있습니다. 그중 가장 큰 차이점은 순차 선택(ordered choice)에 있습니다. CFGs에서 아래와 같이 C언어 스타일의 if/then/else 문장을 정의하면..

ARCHIVES 2016.02.29

PostgreSQL 9.5의 새로운 기능: BRIN 인덱스

PostgreSQL 9.5의 새로운 기능: BRIN 인덱스 최근 PostgreSQL 9.5가 릴리즈됐습니다(http://www.postgresql.org/about/news/1636/).이번 포스트에서는 9.5에 새로 추가된 기능인 BRIN 인덱스에 대해 알아보겠습니다. BRIN은 Block Range INdexes를 뜻합니다. 이 인덱스는 페이지에 대한 메타데이터를 저장하는 인덱스입니다. 즉 테이블의 페이지에 대해 검색에 도움이 될 수 있는 메타데이터를 뽑아서 인덱스로 구성하는 것입니다. 메타데이터의 한 가지 예로 현재는 페이지에 저장된 특정 컬럼의 최소값과 최대값을 저장합니다. 다음과 같은 저장 구조를 가진 테이블을 생각해 봅시다.(예제 출처: http://pythonsweetness.tumblr.c..

ARCHIVES 2016.01.22

비트코인(bitcoin)이란?

안녕하세요 김경호 선임입니다. 오늘은 2016년 핀테크 화두 중의 하나인 비트코인(bitcoin)에 대해서 잠시 소개하는 시간을 가져보려 합니다. (이미지 : bitcoin.org/ko/ 캡처) 먼저 비트코인은 비트(bit)로 표현되는 전자화폐입니다. 화폐이니 무언가 사고 팔수 있는 거래 수단으로 사용 될 수 있겠죠. 그런데 우리는 월급으로 비트코인을 받거나 하지 않습니다. 그렇다면 어떻게 비트코인을 우리가 얻을 수 있고 어디에 보관할 수 있을까요. 기본적으로 비트코인은 비트코인 전자지갑(계좌라고 생각하시면 됩니다.)에 보관하게 됩니다. 비트코인 전자지갑은 비트코인 거래소 혹은 관련 사이트를 이용해서 쉽게 생성할 수 있습니다.그리고 비트코인을 취할 수 있는 방법으로는 다음이 있습니다. 1. 비트코인 거래..