![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bxILlh/btqF9lihMsv/7lnUdrOzl16ZmHtXSCeD4K/img.jpg)
검색어 자동완성기능 구현을 위한 전체 소스입니다. 추천 검색어 리스트 파일로부터 추천 검색어 DB 파일을 생성한 후 실제 웹페이지에서 검색어를 입력했을 경우, 추천 검색어가 출력하는 데모 페이지까지의 전체 파일이 들어있습니다. 소스 안에 이것저것 쓸만한 모듈이 많이 있네요.. B-TREE 관련 모듈과... iconv를 wrap한 클래스도 있습니다. iconv는 문자 인코딩과 관련된 라이브러리 입니다. 또 AJAX를 이용해 웹브라우져에서 검색어 자동완성기능이 구현되어있는데, AJAX와 관련된 소스는 Ajax 입문(타카하시 토시로 저, 한빛 미디어) 책 소스를 그대로 참조하였습니다. 원래 소스는 z.html 이라는 파일에서 php 파일로 데이터를 전송하는데, 이 부분만 제가 만든 cgi 파일로 전송하도록 바..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/I2TXE/btqF8Zfr3Y2/YGdeOUcKuQ6Oc65rludj6k/img.jpg)
안녕하세요. 지난 시간에 이어 검색어 자동완성 기능 구현에 대해 알아보도록 하겠습니다. 지난 시간에는 한글을 자동완성 기능 구현에 적합한 형태의 자소 단위로 변환하는 방법에 대해 알아보았습니다. 이번 시간에서는, 지난번에 만들었던 모듈을 이용해, 사용자가 검색어를 입력하면, 입력한 검색어로 시작되는 추천 검색어들을 출력해 주는 프로그램을 만들어 보도록 하겠습니다. 여기까지 구현된다면, 남은 부분은 AJAX를 이용해 웹브라우져로 보여주는 것 밖에 없습니다. 그럼 자세한 부분을 설명하기 앞서, 먼저 오늘 만들어 볼 프로그램의 개략적인 흐름에 대해서 알아보도록 하겠습니다. 오늘은 두 개의 프로그램을 만들어 볼 것입니다. 검색어 자동완성 기능에 필요한 데이터를 구축하는 프로그램, 그리고 구축된 데이터를 이용해 ..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/brV5gZ/btqF64INfwP/fGo7Y8BLxKrAiasHz7KTB1/img.jpg)
검색어 자동완성 기능을 구현하기 앞서, 자동완성 기능에 대해서 명확히 알아보도록 하겠습니다. 자동완성 기능이라면, 모두들 아시겠지만, 네이버의 검색어를 입력하는 창에 ‘ㄱ’ 을 입력하면 ‘ㄱ’으로 시작되는 단어들을 자동으로 추천해주는(괴물, 국민은행, 김진희 기자와 같은) 기능을 말하죠? 그런데, 웹에서 이 기능이 구현되는데, 버튼을 클릭해서 페이지가 리프레쉬 되면서 데이터를 건네주고 받아오는 것이 아니라… 어떤 버튼을 누르지 않아도 사용자가 입력한 ‘ㄱ’ 이란 값이 전송이 되어서, ‘ㄱ’으로 시작되는 ‘괴물’, ‘국민은행’ 과 같은 단어들을 실시간으로 받아서 출력해 준다는 사실이, 예전의 웹관련 지식만을 가지고 있었던 사람들에겐(저 같은) 놀라운 사실일 것입니다. 이 것이 가능한 것은, AJAX(Asy..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bavQ97/btqF7ugcv0f/CU8omZWrutHwBzI33zK1R0/img.png)
안녕하세요. 이경민입니다. 대용량 처리에 관해서 예전부터 관심이 많았는데, 압축 분야의 기본인 허프만 코딩에 대해 얕은 지식을 써볼까 합니다. 먼저 허프만 코딩을 이용한 압축의 기술적인 사항을 살펴보기 전에, 텍스트 압축이 어떻게 이루어지는지 개념적으로 살펴보도록 하죠. 텍스트 문서를 압축하기 위해서는 문서에 어떤 처리를 해주어야 할까요? 여러 가지 방법이 있겠지만, 허프만 코딩을 이용한 텍스트 압축에서는, 다음과 같은 기본 개념에 기초를 두고 있습니다. “많이 나오는(출현 빈도수가 높은) 기호에는 짧은 코드 길이를 부여한다.” 우리가 일반적으로 사용하는 아스키 코드의 경우에서는 모든 기호의 코드 길이가 8비트로 동일합니다. 아스키 코드에서 최상위 비트는 확장 문자를 나타내기 위해 사용되고, 나머지 7비..
프로그래밍 언어가 first class function을 갖는다는건,function을 value, variable과 동일하게 다룬다는 것이다. 즉 function을 함수 인자로도 넘길 수 있고, 리턴할 수 있고, 변수에 저장할 수 있을때, 그 언어는 first class function을 갖는다고 말할 수 있다. closure란 first class function을 감싸고 있는 environment를 first class function과 묶는 기법을 말하거나first class function과 environment 저장하고 있는 record를 의미한다. closure의 의미를 글로 표현하면 이해하기 어렵고 파이썬 예제를 통해 알아보도록 하자. 먼저 함수를 리턴하는 함수(higher-order fun..
Spark 프로그램을 yarn에서 돌리다보면, 종종 아래와 같은 메시지가 드라이버 프로그램 로그에 찍히면서, 이미 처리된 Task를 재시도 하다가 결국 실패하는 현상이 발생한다.15/07/30 10:18:13 ERROR cluster.YarnScheduler: Lost executor 8 on myhost1.com: remote Rpc client disassociated Yarn container에 돌고 있는 Spark Executor 로그를 살펴보면, 아래와 같이 SIGTERM 으로 인해 Executor 프로세스가 종료된 것을 확인할 수 있다. (Executor 로그 확인하는 위치는 아래를 참조)ERROR executor.CoarseGrainedExecutorBackend: RECEIVED SIGNA..