#주간개발기, 3월 둘째주.

*exs4j 테스트에 대한 이야기 * 테스트를 진행하였다. OpenAPI 검색 결과 저장 및 검색 키워드에 대한 인덱스 생성 및 조회 개발 작업을 완료하였다. 러프한 상태의 v1.5 를 달성하긴 했는데 테스트를 해보고자 했다. 분명히 문제가 혹은 불편한 부분이 있을것이라고 생각이 되었다. 테스트는 간단했다. 1 클라이언트가 10000개의 검색을 한후, 해당 검색어에 대한 1일 동안 랜덤으로 요청해서 죽지 않은채,… Read More

(espressoOtr) Canister/Shelfer 소개

Canister shelfer from SeonyHyun AhnespressoOtr 에는 Canister/Shelfer 라는 데이터 구조(클래스)가 있다. 위의 설명은 영어로 써서 잘 이해가 안될수도 있는데 간단하게 말하자면 문자열(String)을 위한 구조이다. 그런데 문자열을 제일 앞글자를 기준으로 n 개의 Canister 라는 클래스로 나누어서 저장을 하는것이다.  이렇게 나누어서 저장을 하는 가장 큰 목적은 바로 탐색시 적은 수의 데이터를 대상으로… Read More

#주간개발기, 3월 첫째주

exs4j – DB에 OpenAPI를 이용한 검색 결과를 저장하는 것은 되었고, 저장된 검색 결과의 빠른 검색을 위해서 exs4j 내에 올려서 유지할 인덱스를 만드는 작업을 하였다. 기존의 espressoOtr 라이브러리 내에 Canister/Shelfer 를 통해서 구현하려고 했는데, 약간 기능이 미흡한 부분이 있어서, Shelfer+Map 형태로 인덱스 구조를 잡았다. 그렇게 해서 하나의 검색 결과에 대한 requestCode(유일하게 구분되는 검색 요청… Read More

(exs4j) Netty ChannelPipeline 에 대한 이해.

현재 개발하고 있는 exs4j 에서는 네트워크 파트는 전적으로 Netty가 담당하고 있다. 이유는 여러가지가 있겠지만 쉽게  서버를 구성할 수 있고 pipeline을 변경함에 따라 HTTP 통신 방식도 지원할 수 있기 때문이다.(v1.6 지원예정) Netty 에서 여러가지 예제를 제공하고 있기 때문에 쉽게 따라 할수 있는데 필자 역시 따라 하면서 배우고 적용하고 있는 중이다.  위의 코드는 exs4j 서비스… Read More

(exs4j) Convert DOM to JAXB

기존의 ExternSearchEngine 이라는 긴 이름을 버리고 exs4j 라는 이름의 검색 컨텐츠 서버 오픈소스를 (아직은 저장이 안된다.) 만들게 된 계기 중 하나는 NHN의 오픈API 커뮤니티에 가면서 였다. 그냥 NHN 구경도 하고 OpenAPI가 뭐 별거 있나 하는 생각에 듣게 되었지만, 세미나 중에 DOM 파싱방식 보다는 Apache HttpClient 와 JAXB 를 활용하는 것이 메모리 적인 측면에서 좀더 좋다는… Read More