알고리즘 복잡도(complexity)와 언어(language)

일반적으로 알고리즘과 자료구조 그리고 복잡도에 대한 이야기를 개발자들 사이에서는 많이 한다. 그리고 자주 나는 결론은 그런걸 고민하는 시간에 다른 중요한 일을 하고, 그 문제에 대해서는 서버를 증설하면 된다는 식으로 그냥 해결 방법을 얼버무린다. 물론 서버를 증설하는 방법은 좋다. 하지만 서버를 증설했을시에 자동으로 그런 리소스 분배가 되는지도 확인해야되고 그런 중요한 부분과 또 다른 점들때문에 배보다 배꼽이 […]

계속 읽기

Python과 C

이번 사내 짜투리 프로젝트로 Python 뽀개기를 하고 있다. 물론 Python은 정확히 2년전에 공부를 시작 했었고, 프로젝트도 해본 상태여서 그런지 그렇게 부담은 되지 않는다. 이번 Python 뽀개기의 개인적인 목표는 2.2 이후로 변한 내용을 다시 짚어 보는것과 Python을 Python 답게 쓰는 연습, 그리고 마지막 제일 중요한 C 확장모듈과 확장형에 대한 확실한 이해를 목표로 하고 있다. 어제 확장 […]

계속 읽기

Hash에 대해서…

2006년 9월에 만든 자료를 올려본다. 솔직히 말하자면, 2개의 인터넷에 돌아다니는 문서를 짜집기 해서 만든 문서다.어찌보면 재편집에다가 많은(?) 내용추가가 이루어 졌다. 앞부분 Hash에 대한 자료는 거의 자료구조 책에서 나오는 내용들이고, 뒷 부분 md5 알고리즘 부분은 기억으로는 서울대학교 어느(?) 연구실에서 발표한 자료를 붙인걸로 기억한다.(이 문서 보고 자신이 만들었다고 생각하신다면 꼭 뎃글 부탁드립니다. ) SHA-1 알고리즘도 함께 붙어 […]

계속 읽기

중복 문서 제거에 대한 : 주로 Shingle 방법

문서의 색인을 만드는데 중복문서 제거는 항상 이슈가 되는 사항이다. 물론 이 부분은 문서를 수집하는 시기부터 웹로봇이 주로 행하는 작업이기도 하고 로봇을 지나 온 문서도 마찬가지로 중복 문서가 존재하고 있는게 사실이다. 중복을 어느정도를 중복으로 봐야 되는지도 상당히 중요한 이슈 사항이여서 exact duplicate 와 유사도를 측정해 중복을 판단하는 방법이 존재하고 있다. exact duplicate는 구현자체는 그리 어렵지 않지만 […]

계속 읽기

인덱싱을 하기전에 어느정도 문서에 대한 ordering을 한다면…

먼저 인덱싱을 하기전에 문서를 reordering을 한다면 문서의 압축 효율이 좋아진다는 논문이 있다.(Blsndford and Blelloch, 2002, Silvestri et al., 2004) reordering이 왜 필요하냐면 문서의 포스팅 파일을 만들기 위해 텀에 대한 문서 번호를 색인에 쓸때 문서의 d-gap을 줄이기 위해서 사용한다. 예를들어 term t가 나오는 문서가 D1, D100, D600 에 해당한다면 이들의 doc no를 색인에 쓸때 1, 99, […]

계속 읽기

IBM DeveloperWorks 개발자 블로그 콘테스트 입상

집에 와서 생각없이 메일을 확인했는데 블로그 콘테스트에 입상했다는 메일이 왔다. 어… 난 저기에 블로그 주소 올린적이 없는데… 하고 생각하고 있었는데, 글을보니 onjo님께서 이 블로그 추천을 올렸었고, 3명의 수상자를 뽑는데 본 블로그가 뽑힌것이였다.(이벤트 상세 내용) 암튼 그렇고…. 아래는 추천사 이고. Gogamza란 아이디로 블로그를 운영하시는 전희원(검색엔진 개발자)님의 블로그입니다. 검색엔진에 관련된 정보를 찾기가 쉽지 않은데.. 오픈소스 정신으로 검색엔진에 […]

계속 읽기

색인 압축 기법 정리 : Byte Align and Gamma Compression

색인 압축에는 두가지 영역이 있는데 첫번째 영역은 Term Dictionary의 영역과, 두번째 영역은 posting 영역의 압축이 있다. Term Dic의 압축은 일단 다루지는 않겠고, (이 부분의 압축 기법은 Lucene 색인 파일 구조에 잘 나타나 있다. 예를 들어 prefix를 공유하는 기법이라든지 말이다.) posting list영역의 압축 기법은 대표적으로 연속된 doc id를 기준으로 d-gap을 이용하는데, 이 d-gap을 어떤식으로 저장을 하는것이 […]

계속 읽기

Lucene index file format 발표 자료

현재 다니는 회사 입사 초기에 만들어 발표했던 발표자료이다. 입사하기 전에 인덱스 파일 포멧에 관심이 많이 있어 블로그에 Lucene 색인구조에 대해서 강좌를 썼었고, 그것을 기반으로 간단하게 발표자료를 만들었다. 이번에 Lucene에 가봤더니 벌써 Lucene Index File Format 2.1 버전이 올라와 있더군.버전이 올라간 기념으로 2.0기반으로 만들었던 색인 파일 발표자료를 공개한다. 잠깐 봤는데 compound 파일의 포멧과 lock 파일에 대한것이 […]

계속 읽기

알고리즘 공부하기

그동안 그다지 신경쓰지 않았던 알고리즘 공부를 복습하고자 한다. 물론 기본적이 알고리즘과 여러 잡다한 알고리즘을 알고 있기는 하지만 처음부터 한번 정도 정리해야될 필요성을 많이 느끼고 있었다. 전에 conv2님과 함께 학교 와서 구입한 알고리즘 책은 이미 다 본 상태구 코딩까지 해봐서 이제 다른 책으로 넘어가야 할거 같다. Algorithms : Design Techniques and Analysys 라는 책인데 이 책은 […]

계속 읽기

Lucene KoreanAnalyzer : 다시 시작하다.

저번에 검개그 오픈소스 검색엔진 프로젝트 차원에서 형태소 분석기를 만들어 보자는 의견이 있었고, 오늘 그에 대한 첫 비공식 모임을 가졌다. 개발할 시간이 없어서 이래저래 많은 의욕적인 분들과 접촉을 하면서 함께 코웍하기를 그동안 그렇게나 원했지만 기회가 나지 않았다.그동안 안철수 연구소에서 일하시면서 함께 개발하고자 하는 의욕을 보여주신 분도 있었고,(이분은 학교를 외국에서 다닌다며 출국해버렸다. ㅜㅜ) 금전적(ㅜㅜ)으로 도움까지 주시려 하셨던 […]

계속 읽기