'개발하는 남자'에 해당되는 글 122건
- 2009.04.07 오픈소스 검색서버 SOLR 설치 메뉴얼 2
- 2009.04.07 오픈소스 검색서버 SOLR 설치 메뉴얼 1
- 2009.03.15 시작이란 추억.
- 2009.03.13 scrollHeight / clientHeight / scrollTop
- 2009.03.12 [SOLR] CustomClobTransformer
- 2009.03.11 NoClassDefFoundError
- 2009.03.11 WOA - Web Oriented Architecture 관련 글
- 2009.03.02 CSV파일
- 2009.02.24 [검색]Solr 관련
- 2009.01.15 [펌] 2년차 개발자가 알아야 할 기본 지식
2. SOLR 설정
2.1 scheme.xml 편집
SOLR 홈 디렉토리 아래의 scheme.xml 파일을 편집기로 연 후, 도큐먼트의 필드정보를 설정한다.
2.1.1 filed속성 정리
<fields>
<field name="docId" type="long" indexed="true" stored="true" required="true" />
<field name="categoryId" type="long" indexed="false" stored="true" />
<field name="contents" type="string" indexed="true" stored="true" />
</fields>
- name(필수) : 필드의 이름
- type(필수) : <types>영역에 미리 정의된 데이터 타입
- indexed : 인덱싱 여부(true면 인덱싱이 되어 검색 및 정렬이 가능)
- stored : true면, 데이터를 보관한다.
- required : 필수로 입력되어야 하는 필드일 경우 true로 설정
- compressed : true이면, gzip을 이용하여 데이터를 압축해서 저장한다.
(TextField와 StrField 타입만 가능하다. )
- multiValued : true이면 해당 필드는 한 document 마다 여러 개의 값을 가질 수 있다.
2.1.2 고유키 설정
고유키로 지정된 필드는 중복된 값이 인덱스에 존재할 수 없고, 만약 인덱싱 시에 동일한 값이 이미 존재한다면, 오래된 문서에 대한 인덱싱 정보는 삭제되고 새로운 정보가 남게 된다.
<uniqueKey> docId </uniqueKey>
(설정된 필드는 반드시 인덱싱 되어야 한다.)
2.1.3 기본 검색 필드 설정
검색 시 특정 필드가 지정되지 않은 겨우 기본적으로 검색 대상이 될 필드를 설정한다.
<defaultSearchField>text</defaultSearchField>
2.1.4 검색 연산자 지정
복수개의 단어 검색 시 적용할 연산자를 설정한다.
(AND -> 모든 단어를 포함, OR –> 하나 이상의 단어를 포함한 컨텐츠 검색)
<solrQueryParser defaultOperator="OR"/>
2.1.5 멀티 인덱싱 설정
여러 개의 필드를 하나의 필드처럼 사용해야 할 경우에 아래와 같이 설정한다. (4번의 검색 연산자 적용 등)
<copyField source="title" dest="text"/>
<copyField source="contents" dest="text"/>
2.2 필터 매핑 설정
WEB-INF/web.xml 파일에서 아래처럼 디스패처 필터의 매핑 설정을 추가한다.
<filter>
<filter-name>SolrRequestFilter</filter-name>
<filter-class>org.apache.solr.servlet.SolrDispatchFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>SolrRequestFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
'작업노트 > Search Engine' 카테고리의 다른 글
오픈소스 검색서버 SOLR 설치 메뉴얼 4 (0) | 2009.04.07 |
---|---|
오픈소스 검색서버 SOLR 설치 메뉴얼 3 (1) | 2009.04.07 |
오픈소스 검색서버 SOLR 설치 메뉴얼 1 (0) | 2009.04.07 |
[SOLR] CustomClobTransformer (0) | 2009.03.12 |
[검색]Solr 관련 (0) | 2009.02.24 |
프로젝트 적용을 위해 조사하고 정리했던 내용 공개합니다.
문제 소지가 있다면 삭제하겠습니다.
하나의 프로젝트에 적용하기 위한 방법이므로,
경우에 따라 적용 방법이 이 메뉴얼과 다를 수 있습니다.
1. SOLR 설치
1.1 환경 요구사항
- 자바5 또는 그 이상을 필요로 한다.
- 톰캣, 제티, 레진과 같은 서블릿 컨테이너가 필요하다.
1.2 다운로드
아래 경로를 통해 검색서버 SOLR 최신 버전을 다운로드한다. (현재 최신버전은 apache-solr-1.3.0)
http://mirror.apache.or.kr/lucene/solr/
1.3 기본 디렉토리 설정
SOLR를 구동시키기 위해서는 ‘SOLR 홈 디렉토리’를 설정해야 한다. 임의의 경로를 설정하지 않을 경우 디폴트 디렉토리로 JVM’s Current Working Directory($CWD/solr)로 자동 설정된다.
홈 디렉토리 설정을 하기 위해 아래의 명령으로 자바 시스템 프로퍼티로 지정해야한다.
> export JAVA_OPTS="$JAVA_OPTS -Dsolr.solr.home=/my/custom/solr/home/dir/"
다운로드 받은 압축파일을 압축 해제한 후, ‘apache-solr-1.3.0/example/solr/’ 디렉토리 안의 모든 디렉토리 및 파일들을 위에서 설정한 ‘SOLR 홈 디렉토리’로 복사한다.
1.4 라이브러리 설치
Solr를 사용하기 위해서는 몇 개의 라이브러리를 추가해야 한다. 압축을 풀면 나오는 아래의 라이브러리들을 적용하고자 하는 프로젝트의 ‘/WEB-INF/lib/’ 디렉토리로 이동시키면 된다.
- apache-solr-1.3.0/lib 폴더 아래의 모든 라이브러리 파일
- apache-solr-1.3.0/dist/apache-solr-common-1.3.0.jar
- apache-solr-1.3.0/dist/apache-solr-core-1.3.0.jar
- apache-solr-1.3.0/dist/apache-solr-dataimporthandler-1.3.0.jar (DataImportHandler사용시 필요)
- apache-solr-1.3.0/dist/apache-solr-solrj-1.3.0 (Solrj API 사용시 필요)
- apache-solr-1.3.0/dist/solrj-lib 폴더 아래의 모든 라이브러리 파일 (Solrj API 사용시 필요)
* 중복되는 라이브러리가 존재할 경우 가장 최신의 것을 사용해야 한다. 그렇지 않으면 예상치 못한 오류가 발생할 수 있다.
'작업노트 > Search Engine' 카테고리의 다른 글
오픈소스 검색서버 SOLR 설치 메뉴얼 4 (0) | 2009.04.07 |
---|---|
오픈소스 검색서버 SOLR 설치 메뉴얼 3 (1) | 2009.04.07 |
오픈소스 검색서버 SOLR 설치 메뉴얼 2 (0) | 2009.04.07 |
[SOLR] CustomClobTransformer (0) | 2009.03.12 |
[검색]Solr 관련 (0) | 2009.02.24 |
고2때였던걸로 기억한다.
게임 제작자가 되고 싶었던 나는 게임 시나리오 대회에도 나가보고
프로그래밍 공부도 시작했었다.
그게 내가 처음 프로그래밍을 시작하게 된 계기였다.
처음에는 C언어 입문서를 사서 Turbo C라는 도스용 컴파일러로 공부를 했었다.
하지만 슬슬 도스프로그램에 대한 답답함이 밀려왔고,
비주얼 C++이란 녀석의 존재를 알게 되어
용산에 가서 만원-당시 나에겐 거금이었던-을 주고 불법씨디를 사왔었다.
(그때만해도 온라인상의 어둠의 경로가 그리 활성화되어있지 않았다ㅋ)
그녀석이 바로 저 녀석이다.
나를 플밍의 세계로 끌어들인 녀석...
방정리 하다가 발견했는데 1년 정도 프로그래머로 일해본 뒤에 보니 감회가 새롭다..
난.. 저녀석에게 감사해야할까, 원망해야할까..? ㅋㅋ
그 때부터 꾸준히 공부했으면 지금쯤 난 엄청난 실력자가 되있었을 텐데
라는 생각을 하며
미소인지 먼지 모를 표정을 지어본다. ㅎㅎ
(불법을 써서 미안하다는 말을 MS에 뒤늦게 남아 전달하고싶다-_-ㅋ
가난한 고등학생이였으니 이해바람ㅋ)
'작업노트 > Developer's Diary' 카테고리의 다른 글
빨래를 해야겠어요 (0) | 2010.10.05 |
---|---|
면접을 보고 왔다.. (0) | 2010.08.24 |
습관 (0) | 2008.11.04 |
묻기, 확실히 하기 (0) | 2008.09.19 |
팀 작업을 할때에... (0) | 2008.09.04 |
'작업노트 > HTML & Script' 카테고리의 다른 글
CSS display 속성 값 종류 (0) | 2012.09.20 |
---|---|
JTidy (HTML Parser) (0) | 2009.10.07 |
ActiveX가 있는 페이지에서는 레이어 처리가 불가능하다. (0) | 2008.11.19 |
IETester (0) | 2008.11.07 |
[퍼온글] 가장 원했던 Ajax 기술들: 50개 이상의 예제와 자습서 (0) | 2008.11.06 |
'작업노트 > Search Engine' 카테고리의 다른 글
오픈소스 검색서버 SOLR 설치 메뉴얼 4 (0) | 2009.04.07 |
---|---|
오픈소스 검색서버 SOLR 설치 메뉴얼 3 (1) | 2009.04.07 |
오픈소스 검색서버 SOLR 설치 메뉴얼 2 (0) | 2009.04.07 |
오픈소스 검색서버 SOLR 설치 메뉴얼 1 (0) | 2009.04.07 |
[검색]Solr 관련 (0) | 2009.02.24 |
http://logonjava.blogspot.com/2005/11/noclassdeffounderror.html
http://mwultong.blogspot.com/2006/09/java-exception-in-thread-main.html
'작업노트 > Error Handling' 카테고리의 다른 글
[Spring] java.lang.NullPointerException (0) | 2008.10.29 |
---|---|
이클립스에서 톰캣을 연동해서 작업할때, server.xml을 수정해도.. (1) | 2008.10.08 |
Spring] BeanDefinitionStoreException (0) | 2008.09.22 |
[Oracle] ORA-01461: can bind a LONG value only for insert into a LONG column (0) | 2008.08.07 |
[iBatis]UncategorizedSQLException (0) | 2008.07.07 |
http://blog.naver.com/greenyon?Redirect=Log&logNo=100055657006
http://blog.naver.com/greenyon?Redirect=Log&logNo=100061128938
'작업노트 > etc.' 카테고리의 다른 글
http content type (0) | 2009.08.19 |
---|---|
NNTP, Usenet, UUCP 간략한 정의 (0) | 2009.04.20 |
[펌] 2년차 개발자가 알아야 할 기본 지식 (0) | 2009.01.15 |
파이어폭스(firefox)에서의 새로고침 (1) | 2008.12.26 |
[퍼온 글] 서울특별시의회 전자회의시스템 프로젝트 프로그램 개발자 폭행사건 (0) | 2008.10.28 |
출처 : http://narrowway.tistory.com/43
CSV파일
Comma Separated Value의 약자로,
데이타를 컴머(,)단위로 잘라서 나열한 파일 형태.
컴머단위로 잘라져 있으므로, 텍스트 파일로도 읽을수 있지만,
엑셀파일로도 바로 읽을수 있다는 장점이 있어서
많은 데이타 관련
소프트웨어에서 사용되고 있다.
1. 자바에서의 구현
// 파일 다운로드 형식 지정
res.setContentType("application/octet-stream;charset=Shift_JIS");
res.setHeader("Content-Disposition","attachment;
filename="+selected_Table+"_"+date+".csv");
PrintWriter
out=res.getWriter();
// 데이타를 DB로 부터 읽어서 CSV로 만드는 과정
query = "select * from " +
selected_Table;
PreparedStatement pstmt =
con.prepareStatement(query);
rs = pstmt.executeQuery();
String strData = "";
while(rs.next()){
for(int i=0 ; i < selectedFieldList.length ; i++){
strData =
rs.getString(Integer.parseInt(selectedFieldList[i])+1);
if(strData==null){strData="";}
out.print( new String( strData.getBytes("8859_1"),"Shift_JIS") );
out.print(i<selectedFieldList.length ? "," : "");
}
out.print(System.getProperty("line.separator"));
}
위와같이 컴마와 System.getProperty("line.separator")를 이용해서 제어가 가능하고,
문자열처리과정을 일본어의 경우 new String( strData.getBytes("8859_1"),"Shift_JIS")
처럼
해결해 주면 된다.
2. 주의할 점
CSV파일의 가장 주의점이라 한다면 데이타 자체에 컴마나 줄바꿈 표시가 들어가 있는 경우로,
이때는 의도하지 않는
데이타상의 구분이 생겨버리므로,
향후 엑셀로 읽으려 할때에는 전체 테이블이 깨져버린다.
private String checkDataFormat(String data){
String returnVal = data;
returnVal =
returnVal.replaceAll(","," ");
returnVal =
returnVal.replaceAll("\n"," ");
returnVal =
returnVal.replaceAll("\r"," ");
returnVal =
returnVal.replaceAll("\r\n"," ");
return returnVal;
}
와 같은 방법으로 데이타 치환을 해주어야 한다.
'작업노트 > JAVA' 카테고리의 다른 글
자바의 가비지 콜렉터(Gavage Collector) (0) | 2010.07.27 |
---|---|
Java TimeZone 관련 링크 (0) | 2009.07.17 |
자바 5 에서의 반복자와 컬렉션(for/in 반복문) (0) | 2008.02.28 |
Java API Map (0) | 2008.01.05 |
JVM 메모리구조와 스택 - 참조 ^^ (0) | 2007.11.19 |
http://www.ibm.com/developerworks/kr/library/tutorial/os-apachelucene/index.html
http://www.ibm.com/developerworks/java/library/j-solr1/
'작업노트 > Search Engine' 카테고리의 다른 글
오픈소스 검색서버 SOLR 설치 메뉴얼 4 (0) | 2009.04.07 |
---|---|
오픈소스 검색서버 SOLR 설치 메뉴얼 3 (1) | 2009.04.07 |
오픈소스 검색서버 SOLR 설치 메뉴얼 2 (0) | 2009.04.07 |
오픈소스 검색서버 SOLR 설치 메뉴얼 1 (0) | 2009.04.07 |
[SOLR] CustomClobTransformer (0) | 2009.03.12 |
1. 서버단 기술
- 자바
프로그래밍
. 객체 지향 프로그래밍 기본 이해(추상화, 다형성, 캡슐화)
. 중요한 자바 API 활용 가능(Collection
API, Reflection API, generic, annotation)
. 많이 쓰이는 기본 디자인 패턴 이해(VO 패턴, MVC
패턴, FILTER 패턴 및 OBSERVER 패턴)
-
Servlet/JSP
. 브라우저와 서버간의 통신에서 HttpServletRequest/Response 객체 생명 주기와 중요 메소드
이해
. 웹 어플리케이션 구조 및 배포 방법의 이해
(filter, listener, Servlet 배포 방법 및 프로그래밍 이해
--> web.xml의 이해)
. JSTL과 EL 이해(JSP 1.2와 2.0차이점 이해) 및 Custom Tag handler 작성
가능
2. 데이터베이스단 기술
-
Database
. 관계형 데이터 베이스 논리/물리 모델링 설계 가능(ERD 작성 가능)
. 적당한 수준의 정규화/역정규화를 통한
기본적 성능 향상 방법의 이해
. 적절한 인덱싱과 인라인 쿼리의 사용을 통한 기본 SQL Tunning 가능(plan 사용)
.
Hibernate와 iBatis등의 OR-Mapping 프레임웍의 등장 배경과 사용 이유에 대한 이해
3. 화면단 기술
-
Ajax/HTML/CSS/DOM/JavaScript
. JSON을 이용한 기본적 AJAX 프로그래밍 가능
. XHTML과 HTML의
차이점과 등장배경을 이해하고 코딩 가능
. DOM API를 이용해서 동적인 화면을 표현/제어
4. 광범위하게 쓰이는 프레임워크 사용법 기본 이해
- 오픈 프레임워크
사용 방법의 이해(개발자 수준에서)
. Struts : 전형적인 MVC패턴으로 구성된 스트럿츠의 구조를 파악하고 간단한 게시판을 코딩할
수 있는 수준
. Spring : 스프링 혹은 EJB 컨테이너가 빈을 관리함으로써(Ioc) 얻는 잇점과 이를 통해
이루어지는
다양한 엔터프라이즈급 서비스(AOP 등)등을 이해하고 사용할 수 있는 수준
5. 최소 토익
750 정도 수준의 영어 실력(각종 API의 원활한 참조를 위해)
- 최소 750점 이상 의 토익 실력(Reading 400점 이상
--> 기본적 독해가 가능한 최소 실력)
- A4지 한장분량의 (영자신문수준의) 영문을 10분 이내로 읽고 90% 이상 이해
가능
*
하드정리하다가 2년전에 이곳에 올렸던 게시물을 발견해 약간 수정후 다시 올립니다. (이전껀 지워졌더군요)
* 다시 생각해
봐도 2년차 웹 개발자 수준이라면 반드시 알아야 할 내용만 나열했습니다.
솔직한 심정으로, "실무에 투입할 신입개발자" 스펙으로서
알아야할 지식이라 생각됩니다.
============================================================================
'작업노트 > etc.' 카테고리의 다른 글
NNTP, Usenet, UUCP 간략한 정의 (0) | 2009.04.20 |
---|---|
WOA - Web Oriented Architecture 관련 글 (0) | 2009.03.11 |
파이어폭스(firefox)에서의 새로고침 (1) | 2008.12.26 |
[퍼온 글] 서울특별시의회 전자회의시스템 프로젝트 프로그램 개발자 폭행사건 (0) | 2008.10.28 |
호오 쓸만한 녀석 일세 (0) | 2008.06.13 |