검색창 이전화면 이전화면
최근 검색어
인기 검색어

닫기
사이즈 비교
소득공제
루씬 인 액션

루씬 인 액션

: 고성능 오픈소스 자바 검색엔진

[ 개정판 ] 에이콘- 오픈소스 프로그래밍 시리즈-022이동
리뷰 총점6.0 리뷰 1건 | 판매지수 24
베스트
IT 모바일 top100 1주
정가
45,000
판매가
40,500 (10% 할인)
구매 시 참고사항
eBook이 출간되면 알려드립니다. eBook 출간 알림 신청
분철서비스 시작 시 알려드립니다. 분철서비스 알림신청

품목정보

품목정보
발행일 2013년 08월 30일
쪽수, 무게, 크기 776쪽 | 1490g | 188*250*40mm
ISBN13 9788960774674
ISBN10 8960774677

책소개 책소개 보이기/감추기

목차 목차 보이기/감추기

저자 소개 관련자료 보이기/감추기

저자 : 마이클 맥캔들리스
Michael McCandless
이미 10년 이상 검색 엔진 분야에서 일하고 있다. 1999년에는 다른 세 명과 의기투합해 파이썬과 C++ 언어로 사용자 기반의 기업용 검색 엔진 소프트웨어를 개발하는 아이프레이즈 테크놀로지스(iPhrase Technologies)를 창업했다. 그리고 이 회사를 2005년에 IBM이 인수한 후, 루씬을 사용하기 시작한 마이클은 코드를 여러 번 고쳐 제공하기도 했다. 결국 2006년에는 루씬 프로젝트의 커미터가 됐고, 2008년에는 PMC 위원으로 활동하기 시작했다. 마이클은 MIT에서 학사, 석사, 박사를 마쳤고 현재 매사추세츠 주의 렉싱턴에서 아내와 네 아이 미아(Mia), 카이라(Kyra), 조엘(Joel), 카일(Kyle)과 함께 살고 있다. 마이클은 http://chbits.blogspot.com 블로그를 운영하고 있다.
저자 : 에릭 해쳐
Erik Hatcher
기술적으로 재미있고 도전해 볼만한 일과 관련한 프로그램을 만들고 글도 쓰며 강연도 해오고 있다. 이미 여러 분야에서 다양한 프로그래밍 언어를 사용해 소프트웨어를 만들었으며, 스티브 로런(Steve Loughran)과 함께 업계에서 알아주는 책 중 하나인 『Java Development with Ant』(Manning, 2002)을 쓰기도 했다. 첫 번째 책인 『Java Development with Ant』를 출판한 이후 노플러프 저스트스터프(No Fluff, Just Stuff) 심포지엄이나 자바원(JavaOne) 컨퍼런스, 오라일리의 오픈 소스 컨벤션(Open Source Convention), 자바존(JavaZone), 디복스(devoxx), 각종 자바 사용자 그룹 모임, 그리고 여러 웨비나 등에서 강연을 해왔다. 현재 아파치 소프트웨어 재단의 회원으로 활동중이며 루씬과 솔라를 포함해 여러 프로젝트에서 왕성하게 활동 중이다. 에릭이 최근 가장 좋아하는 기술로는 솔라, 솔라리타스(Solritas), 플레어(Flare), 블랙라이트(Blacklight), 솔라-루비(solr-ruby) 등이 있으며, 그 중에도 솔라를 활용해 멋진 사용자 경험을 끌어내는 데 재미를 붙이고 있다. 현재 오픈소스 검색 엔진을 활용한 다양한 서비스를 제공하는 루시드 이매지네이션(Lucid Imagination)을 공동 창업해 일하고 있으며, 버지니아 주 중부 지방에 살고 있다.
저자 : 오티스 고스포드네티치
Otis Gospodnetic
루씬이 아파치 재단으로 옮겨온 이후부터 루씬 프로젝트에 참여했다. 검색(특히 루씬, 솔라, 너치 등)과 관련한 서비스와 제품, 그리고 빅데이터 분석 서비스(하둡 등)를 제공하는 시마텍스트(Sematext)를 공동 창업해 일하고 있다. 지난 수년간 루씬과 솔라에 대한 강연을 해왔으며, 오라일리 네트워크나 IBM의 디벨로퍼웍스(developerWorks) 등에 루씬 관련 글을 여러 차례 기고했다. 얼마 전에는 자신의 경험을 살려 미국에서 공부하고자 하는 외국인을 대상으로 하는 『To Choose and Be Chosen: Pursuing Education in America』라는 책을 저술하기도 했다. 오티스는 현재 뉴욕 시에 살고 있으며, NY Search & Discovery 모임을 주도하고 있다.
역자 : 강철구
컴퓨터 비전(영상 인식)을 전공했으며, 검색 엔진, 인공 지능, 모바일 등의 키워드에 관심이 많고, 현재 캐나다에서 소프트웨어 개발자로 일하고 있다. 에이콘출판사에서 출간한 『루씬 인 액션』(2005년)과 『Ajax 인 액션』(2006년), 『자바 병렬 프로그래밍』(2008년), 『알짜만 골라 배우는 안드로이드 프로그래밍』(2009년), 『아이폰북』(2009년), 『(개정판)알짜만 골라 배우는 안드로이드 프로그래밍2』(2010년), 『아이폰 개발자를 위한 아이패드 프로그래밍』(2010년)을 번역했다.

책 속으로 책속으로 보이기/감추기

한국어판(초판) 출간에 부쳐

저는 지금 『루씬 인 액션』 초판이 출간된 지 9개월 만에 한국어판의 서문을 쓰고 있습니다. 그동안 루씬과 너치에 대해 많이 배우고 경험했습니다. 저는 지금도 버지니아 대학의 ARP(Applied Research in Patacriticism) 팀에서 일하고 있습니다. 그동안 배우고 이 책에서 설명하기도 했던 루씬의 다양한 기능을 사용해 로제티 아카이브(Rossetti Archive)에서 강력한 전문 검색, 결과 하이라이팅, ‘비슷한 작품 보기’와 같은 기능을 구현할 수 있었습니다. 단테 가브리엘 로제티가 쓴 작품 중에서 1860년에서 1870년 사이에 쓰였고 ‘love’와 인접한 ‘wife’ 단어를 포함하는 모든 시를 찾고 싶다면 어떻게 하시겠습니까? 루씬이라면 쉽게 답을 찾을 수 있습니다!

현재 저는 ‘구글’, ‘플리커’, ‘del.icio.us’의 19세기 문학 버전에 해당하며 HTML, URL, JPEG 파일보다 훨씬 다양한 메타 정보를 관리할 수 있는 사이트 구축 프로젝트에 참여하고 있습니다. 너치는 연합된 NINES(19세기 전자 장학재단을 위한 네트워크 인터페이스) 사이트에서 숨겨진 RDF 데이터를 포함한 다양한 정보를 수집할 때 중요한 역할을 담당합니다. 사용자 정의 형태로 작성된 루씬의 색인 코드는 브라우징과 전문 검색 수행이 용이하게 수집된 데이터를 처리합니다. 학자들은 독립적인 형태의 기록 저장소에 걸쳐 존재하는 내용을 조회하고, 자신만의 수집 목록에 추가하고, 개체와 다른 학자 사이의 상관관계를 탐색할 수 있을 것입니다. 수집된 개체를 이용해 목록을 만들고, 출판할 수 있고, 그 결과로 자신만의 개체를 최상위 정보로 시스템에 피드백할 수 있습니다. 이 책을 쓰는 동안 이와 같은 구조를 증명하기 위해 시스템을 설계하고 프로토타입을 만들었습니다. 곧 이 시스템을 NINES에 설치할 예정입니다. 관심을 갖고 http://www.nines.org를 지켜봐 주세요!

ARP 외에도 다양한 SpanQuery군을 제공하는 사용자 정의 질의 파서 개발에 대해 컨설팅도 하고, 이런 과정에서 좀 더 발전된 코드는 루씬에 다시 반영하기도 했습니다. 이 기회에 오픈소스로서 루씬이 갖는 장점을 강조하고 싶고, 더불어 루씬을 처음 공개한 더그 커팅에게 다시 한 번 감사드립니다. 루씬은 헌신적인 수많은 개발자들의 노력으로 발전되어 왔습니다. 루씬 관련 커뮤니티(특히 자바 유저 메일링 리스트)에서는 엄청난 도움을 받을 수 있고, 활발하게 교류하고 있습니다. 여러분도 저희와 함께 하시기를 바랍니다.

2005년 9월 15일
텍사스주 댈러스의 자바 사용자 그룹에서
루씬에 대해 발표하고 돌아오는 비행기 안에서
에릭 해쳐

루씬이 어느덧 8살이 되었군요. 곧 다가올 영문판 『루씬 인 액션』의 첫 번째 생일을 즈음해 저희 책이 한글판으로 새롭게 탄생하는 경사스러운 일에 함께 하게 되어 더없이 기쁩니다.
『루씬 인 액션』이 출간된 이후에도 루씬 프로젝트는 끊임없이 발전해오고 있습니다. 개별 프로젝트였던 너치는 이제 루씬의 하위 프로젝트가 됐고, 왕성하게 활동하는 개발자들 덕분에 튼튼한 그룹으로 만들어졌습니다. http://lucene.apache.org/에서 보듯이 루씬도 아파치 소프트웨어 재단ASF의 최상위 프로젝트로 성장했습니다. 또 9장에서 다룬 루씬의 일부 포팅 버전도 하위 프로젝트로 ASF에 추가됐습니다. 루씬의 이슈 트래킹 시스템인 지라(JIRA)는 점점 더 커지고 있습니다. 물론 버그가 아닌 수많은 개발자의 헌신과 확장을 통해서 말입니다.

『루씬 인 액션』은 2005년 8월 슬래시닷에서 리뷰점수 10점 만점에 9점을 받았습니다. 이 책의 공식 사이트인 http://lucenebook.com/은 슬래시닷 사이트를 통해 접속해오는 사용자 때문에 부하를 좀 겪었지만, 역시 죽지 않고 살아남았습니다. 몇 년 동안 저는 여러 개의 루씬 프로젝트에 참여해왔는데, 그 중에서도 심피 프로젝트는 가장 인상 깊었습니다. 심피는 수천 명의 사용자에게 제공되고 있고, 루씬을 중심으로 소셜 북마크 서비스에 태그 처리, 전문 검색 등 수많은 기능을 제공하고 있습니다. 또 심피 이외에도 루씬에 대한 컨설팅을 시작했고, 나날이 늘어나는 루씬의 인기를 지켜보면서 눈에 띄는 일부 프로젝트에 서비스를 제공했습니다.

마지막으로 한국 독자들이 『루씬 인 액션』을 더 많이 읽을 수 있게 이 책을 번역해주신 역자들에게 감사드립니다.

2005년 9월 15일
미국 뉴욕주 브루클린에서
오티스

저자 서문

루씬을 처음 사용하기 시작한 건 『루씬 인 액션』 초판이 출간된 지 1년 정도 지나서였습니다. 루씬을 사용하기 전에도 검색 엔진을 사용해본 경험이 있지만, 루씬 자체에 대해서는 별로 알지 못하는 상태였죠. 그래서 에릭과 오티스가 저술했던 『루씬 인 액션』을 손에 들고 읽기 시작했는데, 이후에는 완전히 루씬에 사로잡히고 말았습니다.

처음 루씬을 사용할 때 여기저기에 자잘하게 개선할 부분이 보여 조금씩 코드를 고치기도 하고, 문서를 작성하기도 하고, 루씬 메일링 리스트에서 특정 주제를 놓고 토의도 하기 시작했습니다. 결과적으로는 이후에 아파치 프로젝트의 커미터가 되어 수년간 다양한 코드를 커밋했고, PMC(Project Management Committee), 프로젝트 관리 위원회에도 참여하고 있습니다.

『루씬 인 액션』 초판이 출간된 지 벌써 4년 반이 흘렀는데, 엄청나게 빠르게 변화하는 오픈소스 세계에서 4년 반이면 엄청나게 오랜 시간이라고 볼 수 있죠. 그동안 루씬은 두 번의 메이저 업그레이드를 거쳤고, 지금은 수많은 새로운 기능을 갖고 있습니다. 예를 들어 숫자 필드도 있고, 재사용하기 좋은 분석기 API도 있고, 적재 기능도 있고, 준실시간 검색 기능도 있고, 색인과 검색에 대한 트랜잭션도 지원합니다.

매닝 출판사와 연락하기 시작했을 때는 『루씬 인 액션』의 개정판이 필요한 시점이었습니다. 또한 활발하게 활동하는 커미터의 한 명으로서 수많은 코드를 커밋하고 추가된 기능에 대한 설명을 해야 할 필요가 있겠다는 약간의 책임감도 느끼고 있었죠. 그래서 『루씬 인 액션』 개정판 작업에 참여하기로 하고, 루씬에 새로 추가된 내용에 대해 설명하는 원고를 정말 열심히 작성했으며, 그 결과에도 상당히 만족하고 있습니다. 검색 애플리케이션을 개발하고 있다면 『(개정판) 루씬 인 액션』이 큰 도움이 되리라 믿으며, 사용자 또는 개발자 메일링 리스트에서 재미있는 질문에 대해 함께 토론하고, 루씬이 계속해서 발전할 수 있도록 도와주길 바랍니다.
- 마이클 맥캔들리스

인터넷이 처음 시작될 무렵부터 검색이나 색인과 같은 작업을 이래저래 시작했습니다. 1991년쯤에는 majordomo, MUSH(Mail User's Shell)에 펄과 awk를 셸 스크립트로 묶어 메일링 리스트를 관리하는 프로그램을 만들기도 했죠. 그 때는 grep을 이용해 메일링 리스트에 저장된 메일과 사용자 정보를 검색할 수 있는 프로그램을 CGI로 구현해 웹으로 사용할 수 있게 만들었습니다. 그러고 나서 야후!를 비롯해 알타비스타나 익사이트와 같은 검색 사이트가 나타났고요.

첫 아이인 제이콥이 태어난 이후로 디지털 카메라로 찍은 사진들이 엄청나게 늘어나기 시작했습니다. 사진이 많아지니 관리하기도 어려워서 ‘간단한 사진 관리 프로그램’을 만들어보려 했습니다. 사진마다 날짜나 주제어, 찍은 장소 등을 미리 입력해두고 원하는 정보를 기준으로 쉽게 찾아볼 수 있는 것이었죠. 90년대 말에는 마이크로소프트의 제품군을 기반으로 만들어보려 했습니다. 이를테면 인덱스 서버, ASP, 영상 처리를 위한 COM 객체 등을 사용하는 거죠. 그 당시에는 이런 제품들로 작업하는 직업을 갖기도 했고, 이들을 잘 조합해 며칠 작업하면 프로그램 하나를 뚝딱 만들 수가 있었습니다.

시간이 흐르다 보니 직업적으로 마이크로소프트의 제품을 사용하는 일은 줄어들고, 점점 자바 언어를 사용하는 경우가 많아졌습니다. 예전에 만들었던 사진 관리 프로그램을 자바, 특히 플랫폼 독립적으로 만들려다 보니 루씬을 사용하게 됐습니다. 루씬은 기대했던 것보다 훨씬 사용하기 쉽더군요. 여러 오픈소스 프로젝트의 라이브러리를 많이 사용해봤지만 루씬처럼 간단한 것은 별로 없었습니다.

2001년에는 스티브 로런(Steve Loughran)과 『Java Development with Ant』라는 책을 써서 매닝 출판사에서 출간했습니다. 예전의 사진 관리 프로그램을 ‘문서 관리 프로그램’으로 좀 더 확장해 이 책에 예제로 넣었는데, 조금만 확장하면 이미지 검색 엔진으로도 사용할 수 있는 수준이었죠. 앤트(Ant)와 루씬이 연결되는 건 단순히 컴파일하고 패키징하는 앤트의 기능 외에도 〈index〉라는 앤트 태그 때문이었습니다. 〈index〉 태그를 이용해 프로그램을 빌드하는 도중에 색인을 구축할 수 있었죠. 이때 만들었던 태그는 아직도 사용되며 현재 루씬 샌드박스에서 찾아볼 수 있고, 『루씬 인 액션 1판』 의 8.4절에서도 볼 수 있습니다.

이렇게 만들었던 〈index〉 태그는 제 개인 블로그인 블로그씬(BlogScene)(http://www. blogscene.org/erik/)에서도 사용하고 있습니다. 블로그씬에서 글을 쓰면 자동으로 앤트 작업이 돌아가게 했고, 〈index〉 태그를 통해 제가 쓴 글을 색인에 추가하고 서버에 저장합니다. 블로그씬 서버는 서블릿(servlet), 벨로시티 템플릿, 루씬을 사용해 다양한 검색 쿼리를 사용할 수 있고, 통합 연동까지 가능하죠. 다른 많은 블로깅 제품만큼 장점이 많지는 않지만 루씬을 사용한 검색만큼은 최고임이 분명합니다.

요즘은 버지니아 주립대학에서 ARP(Applied Research in Patacriticism) 프로젝트에 참여하고 있습니다. 저는 물론 텍스트 분석과 색인, 검색과 관련한 경험을 살리고 양자 물리학이 문학에 어떤 영향을 미쳤는지에 대해 토론하며 안목을 넓히고자 합니다.
“문학은 이 세상에 알려지지 않은 공학도이다.”
- 에릭 해쳐

제가 미들베리 대학(Middlebury College)에 다닐 때부터 정보 검색과 관리에 흥미와 관심을 갖기 시작했습니다. 그때쯤 인터넷과 웹이 엄청난 정보의 바다라는 걸 깨달았고, 아직 초창기였지만 장기적으로는 웹에서 찾아볼 수 있는 자료를 모아서 분석, 관리하고 검색할 수 있으면 좋겠다고 생각하고 있었습니다. 곧 웹에서 정보를 수집하는 프로그램을 만들어 수집한 정보를 쌓아두다 보니, 그 많은 자료 가운데 필요한 정보를 검색할 필요가 생겼습니다. 특히 검색 기능이야말로 아직 알려지지 않았지만 훗날 인터넷 세상에서 꼭 필요한 기능이 되리라 짐작하고 있었죠. 이런 생각에 모든 작업에 항상 필요한 수집과 검색 두 가지 기능에 대한 프로젝트를 시작했습니다.

1995년경 학교 동기인 마샬 레빈(Marshall Levin)과 개인 주소록 정보를 모아두고 찾아볼 수 있는 WebPh라는 오픈소스 프로젝트를 만들었습니다. 말이야 거창하지만 간단한 개인 주소록을 웹 CGI로 구현한 것뿐이었는데, 그 당시를 생각해보면 요즘 PIMS개인 정보 관리 시스템라고 말하는 프로그램의 초창기였다고 생각됩니다(심지어는 90년대 후반 어느 법정에서 선구적인 작품으로 언급되기도 했습니다). 대학이나 정부 기관에서 WebPh를 많이 사용했고, 아직까지도 사용하고 있는 걸로 알고 있습니다. 1997년에는 WebPh를 만들었던 경험을 살려 파퓰러스(Populus)라는 나름대로 인기 있었던 일종의 전화번호부 서비스를 시작했습니다. 기술 자체는 WebPh와 별반 다를 게 없었지만, 파퓰러스는 그 당시 유명하던 WhoWhere, BigFoot, Infospace 같은 서비스에 뒤처지지 않는 서비스였다고 생각됩니다.

위의 두 가지 프로젝트에서 개인 정보 관리를 목표로 했었으니, 새로운 사업 영역을 찾아볼 차례였죠. 그래서 인포점프(Infojump)라는 벤처를 시작했는데, 수많은 온라인 신문이나 뉴스레터, 저널, 잡지 등의 내용을 수집하고 제공하려는 시도였습니다. 인포점프는 직접 만들었던 수많은 펄 스크립트와 웨비네이터(Webinator)라는 웹사이트 수집 프로그램과 텍시스(Texis)라는 텍스트 검색 엔진을 사용했습니다. 인포점프는 요즘 서비스하고 있는 FindArticle.com이라는 사이트와 비슷하죠.

WebPh와 파퓰러스, 인포점프가 기술적으로 목표한 바를 충분히 달성하긴 했지만, 모두 기술적 한계를 갖고 있었죠. 역파일 색인 같은 훌륭한 구조를 가진 성능 좋은 텍스트 검색 라이브러리를 알고 있었다면 훨씬 나은 서비스를 제공할 수 있었으리라 생각합니다. 그런 라이브러리를 만들기보다는 오픈소스에서 찾아보려 했는데, 2000년쯤 찾아낸 게 바로 루씬이었습니다. 뭔가 빠진 것 같던 바로 그 부분을 채워주는 오픈소스 프로젝트였죠!

그래서 루씬이 소스포지에서 개발될 당시부터 프로젝트에 참여했고, 루씬은 점점 제가 작업하는 프로젝트의 핵심 부분을 차지하기 시작했습니다. 그 중의 하나는 취미로 만들기 시작한 심피(Simpy)(http://www.simpy.com/)인데, 사용자들이 웹에서 찾아낸 정보들을 올려두고 서로 공유하며 검색해볼 수 있는 서비스죠. 심피는 루씬이 없으면 만들 수 없었다고 생각될 만큼 루씬을 기반으로 하고, 더그 커팅의 또 다른 프로젝트인 너치(『루씬 인 액션 1판』의 10장 참조)를 통해 수천 개의 색인을 관리하고 있습니다. 루씬 커뮤니티에서 활발하게 활동하다 보니 매닝 출판사에서 에릭 해쳐와 함께 루씬 책을 써보지 않겠냐는 제의가 있었던 거구요.

『루씬 인 액션』은 최강의 오픈소스 검색 엔진 루씬 관련 기술과 정보를 하나로 모은 최고의 책이라고 자부합니다. 루씬의 기초부터 고급 기술까지 여러 장에 걸쳐 살펴보는데, 루씬을 이용해 검색 기능을 구현하려 할 때 꼭 필요한 정보와 지식을 싣고 있습니다. 이 책을 쓰는 동안 루씬 커뮤니티에서 활동하던 것과 비슷하게 에릭을 비롯한 다른 커뮤니티 구성원과 어울려 손쉽게 작업할 수 있었습니다. 루씬과 『루씬 인 액션』을 함께 작업하다 보니, 직접 얼굴을 맞대지 않더라도 공통의 관심사만 있다면 각자의 지식과 경험을 한군데에 모아 뭔가를 만들어내는 게 충분히 가능하다는 걸 새삼 느끼게 됐습니다.
- 오티스 고스포드네티치

옮긴이의 말

2005년에 『루씬 인 액션』 초판을 출간한 이후 루씬은 눈부시게 발전해왔습니다. 루씬 2.x 버전으로도 정말 다양한 검색 애플리케이션을 충분히 만들 수 있었지만, 버전 3.x와 4.x를 거치면서 정말 많은 기능을 추가하며 성능도 개선됐고, 이런 발전 과정과 함께 계속해서 내부적인 구조를 바로잡아 가는 리팩토링을 거치고 있기도 합니다.

국내에서도 최근 루씬 사용자 층이 넓어지면서 소스코드가 공개되거나 공개되지 않은 한글 형태소 분석기가 나타나고 있습니다. 예를 들어 ‘한글 형태소 분석기’라고 검색해보면 테스트 용도나 상업적인 용도로 사용할 수 있는 루씬 분석기 형태의 클래스를 받아와 적용할 수 있습니다.

또한 한글을 담고 있는 아래아 한글(.hwp), 마이크로소프트 오피스(.doc, .ppt, .xls) 등의 문서도 몇 년 전보다 훨씬 처리하기가 쉬워졌습니다. 특히 『(개정판) 루씬 인 액션』에서 소개하는 아파치 티카(Apache Tika) 프로젝트를 사용하면 마이크로소프트 오피스 문서를 포함해 다양한 문서를 한 번에 손쉽게 처리할 수 있고, 필요한 경우 아래아 한글 역시 SDK를 제공하고 있으니 라이선스를 얻어 사용할 수 있습니다.

요즘에는 루씬을 직접 호출하는 대신 아파치 솔라(Apache Solr)나 일래스틱서치(Elastic Search) 등 루씬 기반 검색 서버를 사용하는 경우도 많습니다. 둘 다 오픈소스 프로젝트이며, HTTP REST 스타일의 API를 제공해 사용하기 편리하고, 검색할 대상 문서의 양이 많아지더라도 분산 검색 기능 등을 통해 손쉽게 확장할 수 있기 때문이죠. 그렇더라도 솔라와 일래스틱서치 등에서 핵심 역할을 맡고 있는 루씬에 대해 충분히 이해하고 있어야 최적의 결과를 얻을 수 있습니다. 특히 검색 결과가 올바르게 나오지 않거나 속도에 문제가 있는 경우 루씬의 내부 구조와 동작하는 방법을 알아야 적절히 대응할 수 있습니다.

한국어판이 출간되는 2013년 8월 현재 루씬의 최신 버전은 4.4이며, 2.x 버전과는 물론 3.x 버전과 비교해도 API가 엄청나게 많이 바뀌었습니다. 이 책의 예제는 3.0.1 버전을 기준으로 작성했으며, 루씬 웹사이트에서 3.x 버전을 내려받아 사용하면 모든 예제를 돌려볼 수 있습니다.

『(개정판) 루씬 인 액션』을 발판 삼아 최고의 성능을 자랑하는 루씬 검색 엔진을 활용하는 멋진 애플리케이션, 모바일 앱 또는 웹사이트를 만들어보시기 바랍니다.
강철구
---본문 중에서

출판사 리뷰 출판사 리뷰 보이기/감추기

추천평 추천평 보이기/감추기

루씬은 순전히 개인적인 목적으로 시작했습니다. 1997년쯤이었죠. 직업도 맘에 들지 않고 해서 제 스스로 뭔가 만들어서 시장에 진출해봐야겠다는 생각을 했습니다. 또 자바라는 새로운 언어가 업계에서 인기를 끌고 있었기에 자바를 공부해볼 만한 프로젝트가 필요하기도 했었죠. 이전의 경험과 경력으로 검색 엔진을 어떻게 구성해야 한다는 것은 머릿속에 어느 정도 들어 있는 상태였기 때문에 자바로 검색 엔진을 만들어야겠다고 생각했습니다. 그리고는 루씬을 시작했죠.

2000년쯤 내 스스로가 사업에는 적성이 맞지 않다는 걸 깨달았습니다. 라이선스나 계약서 등을 신경 쓰고 관리하는 데는 별다른 관심이 없었죠. 관심이 없으니 제대로 해낼 리가 있었겠습니까? 더군다나 그런 상태에서 사람을 뽑아 회사를 운영하는 건 안 될 일이었습니다. 전 그저 소프트웨어를 만드는 게 좋았을 뿐이지 파는 데는 관심이 별로 없다고 판단했습니다. 그래서 유명한 오픈소스 개발 커뮤니티인 소스포지에 루씬 프로젝트를 올려보기로 했습니다. 과연 오픈소스로 공개하면 내가 원하는 방식으로 일을 할 수 있을지 궁금했습니다.

루씬을 오픈소스로 공개하자 일부 개발자들이 루씬을 사용하기 시작했습니다. 2001년에는 아파치 재단에서 루씬을 아파치 프로젝트에 참여시키는 게 어떠냐는 제안을 해왔고, 제안을 받아들여 아파치 자카르타 프로젝트에 참여하게 되었죠. 루씬 개발자 메일링 리스트에서 루씬을 개발하고 사용하는 개발자 간의 의견 전달 건수가 늘어나고, 개발자들은 자신들이 만든 각종 코드를 루씬에 추가하기 시작했습니다. 그렇지만 대부분 루씬을 활용하는 수준에서 그치는 프로그램이었고, 루씬의 핵심에 손을 대는 사람은 저 혼자였습니다. 여전히 루씬은 여러 개발자가 참여해 새로 만들어가는 과정에 있었다고 생각합니다.

2004년이 되자 루씬 관련 개발자 가운데 루씬의 핵심 부분까지 충분히 이해하는 사람들이 상당히 많아졌습니다. 요즘은 루씬 자체를 개발하는 데 제가 그다지 관여하지 않음에도 불구하고 다른 루씬 개발자들이 계속해서 루씬을 발전시키고 있습니다.

처음 개발된 이후 몇 년이 흐르는 동안 루씬은 C++을 비롯해 C#, 펄, 파이썬 등의 언어로도 포팅됐고, 자바를 비롯한 이 모든 ‘루씬’ 검색 엔진은 초기에 구상했던 것보다 훨씬 많이 사용되고 있음을 실감합니다. 어떤 언어로 만들어졌든지 루씬은 이제, 포춘지 선정 100대 기업들과 상용 버그 추적 시스템, 마이크로소프트의 아웃룩 이메일 검색 소프트웨어(루씬 기반의 Lookout이란 아웃룩 검색 소프트웨어가 있었으나 2004년에 마이크로소프트가 인수했다. - 옮긴이), 수십억 페이지의 인터넷 사이트를 검색할 수 있는 인터넷 검색 시스템까지 널리 사용되고 있으니 말이죠. 뿐만 아니라 요즘은 사람들이 저를 ‘루씬 창시자’라고 부르기도 하고, 자신들의 프로젝트에서 루씬을 어떻게 활용하는지 수다를 떨기도 합니다. 그렇게 여러 얘기를 듣다 보면 제가 상상했던 루씬의 응용 분야를 뛰어 넘어 정말 다양한 분야에서 루씬을 활용하고 있다는 생각도 많이 듭니다.

오픈소스 대신 예전 방식 그대로 사업을 했더라면 지금과 같은 루씬의 성공은 이루지 못했을 것입니다. 요즘 들어 소프트웨어 개발자들은 대부분 오픈소스를 선호합니다. 또 제품을 사고는 궁금한 걸 질문하기 위해 전화를 걸어 고객지원센터 직원에게 문제를 설명하느라 진땀 빼는 일은 하려들지 않습니다. 대신 공개된 소스코드를 보면서 뭐가 어떻게 돌아가는지 직접 파악해냅니다. 그게 개발자의 정서에는 더 맞는 방법이라고 생각합니다. 소스코드를 봐도 이해할 수 없다면 루씬 메일링 리스트에서 수많은 전문적인 루씬 개발자들이 서로 의견을 교환하고 질문에 답합니다. 물론 충분하진 않을 수 있지만, 루씬 메일링 리스트가 웬만한 상용 고객지원 서비스보다 훨씬 낫다고 자부합니다. 루씬처럼 제대로 자리 잡은 오픈소스 커뮤니티가 개발자들을 얼마나 편하게 해주는지도 새삼 느끼고 있습니다.

다시 말하지만 루씬을 오픈소스로 공개한 이후 얼마나 발전했는지 이루 헤아릴 수 없습니다. 제가 처음 시작한 게 맞기는 하지만, 수많은 루씬 커뮤니티 참여자들과 개발자들의 도움 덕분에 지금의 루씬이 존재하는 것입니다.

루씬으로 무엇을 할 수 있을까요? 차세대 루씬이라면 어떤 모습일까요? 이미 루씬을 공개한 지 10년이 지난 지금, 루씬은 여전히 씩씩하게 앞으로 나아가고 있으며, 사용자와 개발자 커뮤니티는 그 어느 때보다 크고 바쁘게 움직이고 있습니다. 특히 『루씬 인 액션』 초판이 출간되면서 더 많은 사람이 루씬을 사용하게 되었다는 점을 간과할 수 없겠죠. 루씬은 버전이 업그레이드될 때마다 더 안정적으로 많은 기능을 제공하며, 처리 속도도 개선되고 있습니다.

2004년에 『루씬 인 액션』이 처음 출간된 이후 루씬의 내부 구조와 외부의 API 모두 엄청나게 발전했으며, 이제 개정판이 절실한 시점이라고 생각합니다. 『(개정판) 루씬 인 액션』은 전체적으로 새로운 내용에 맞춰 내용을 고쳤으며, 루씬의 최신 API와 개선 사항을 소개합니다.

『루씬 인 액션』 개정판과 함께 루씬 커뮤니티에 합류했으니, 이제 루씬을 활용해 다음 단계로 올라설 차례입니다. 즐거운 여행을 기원합니다!
더그 커팅(Doug Cutting) (루씬, 너치, 하둡 프로젝트 창시자)

회원리뷰 (1건) 회원리뷰 이동

한줄평 (0건) 한줄평 이동

  등록된 한줄평이 없습니다!

첫번째 한줄평을 남겨주세요.

배송/반품/교환 안내

배송 안내
반품/교환 안내에 대한 내용입니다.
배송 구분 예스24 배송
  •  배송비 : 무료배송
포장 안내

안전하고 정확한 포장을 위해 CCTV를 설치하여 운영하고 있습니다.

고객님께 배송되는 모든 상품을 CCTV로 녹화하고 있으며, 철저한 모니터링을 통해 작업 과정에 문제가 없도록 최선을 다 하겠습니다.

목적 : 안전한 포장 관리
촬영범위 : 박스 포장 작업

  • 포장안내1
  • 포장안내2
  • 포장안내3
  • 포장안내4
반품/교환 안내

상품 설명에 반품/교환과 관련한 안내가 있는경우 아래 내용보다 우선합니다. (업체 사정에 따라 달라질 수 있습니다)

반품/교환 안내에 대한 내용입니다.
반품/교환 방법
  •  고객만족센터(1544-3800), 중고샵(1566-4295)
  •  판매자 배송 상품은 판매자와 반품/교환이 협의된 상품에 한해 가능합니다.
반품/교환 가능기간
  •  출고 완료 후 10일 이내의 주문 상품
  •  디지털 콘텐츠인 eBook의 경우 구매 후 7일 이내의 상품
  •  중고상품의 경우 출고 완료일로부터 6일 이내의 상품 (구매확정 전 상태)
  •  모바일 쿠폰의 경우 유효기간(발행 후 1년) 내 등록하지 않은 상품
반품/교환 비용
  •  고객의 단순변심 및 착오구매일 경우 상품 반송비용은 고객 부담임
  •  직수입양서/직수입일서중 일부는 변심 또는 착오로 취소시 해외주문취소수수료 20%를 부과할수 있음

    단, 아래의 주문/취소 조건인 경우, 취소 수수료 면제

    •  오늘 00시 ~ 06시 30분 주문을 오늘 오전 06시 30분 이전에 취소
    •  오늘 06시 30분 이후 주문을 익일 오전 06시 30분 이전에 취소
  •  직수입 음반/영상물/기프트 중 일부는 변심 또는 착오로 취소 시 해외주문취소수수료 30%를 부과할 수 있음

    단, 당일 00시~13시 사이의 주문은 취소 수수료 면제

  •  박스 포장은 택배 배송이 가능한 규격과 무게를 준수하며, 고객의 단순변심 및 착오구매일 경우 상품의 반송비용은 박스 당 부과됩니다.
반품/교환 불가사유
  •  소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
  •  소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우 : 예) 화장품, 식품, 가전제품, 전자책 단말기 등
  •  복제가 가능한 상품 등의 포장을 훼손한 경우 : 예) CD/LP, DVD/Blu-ray, 소프트웨어, 만화책, 잡지, 영상 화보집
  •  소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우
  •  디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
  •  eBook 대여 상품은 대여 기간이 종료 되거나, 2회 이상 대여 했을 경우 취소 불가
  •  모바일 쿠폰 등록 후 취소/환불 불가
  •  중고상품이 구매확정(자동 구매확정은 출고완료일로부터 7일)된 경우
  •  LP상품의 재생 불량 원인이 기기의 사양 및 문제인 경우 (All-in-One 일체형 일부 보급형 오디오 모델 사용 등)
  •  시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
  •  전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우
소비자 피해보상
  •  상품의 불량에 의한 반품, 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁해결기준(공정거래위원회 고시)에 준하여 처리됨
환불 지연에
따른 배상
  •  대금 환불 및 환불 지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리
  • 절판 상태입니다.
맨위로