금요일, 3월 29
Shadow

#002 자바 설치

SERVER
1. 자바 제거 rpm -qa | grep jdk yum remove java-1.6.0-openjdk-1.6.0.0-1.48.1.11.3.el6_2.x86_64 2. 자바 업데이트 sudo update-alternatives --install "/usr/bin/java" "java" "/usr/local/jdk1.7.0_79/bin/java" 1; sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/local/jdk1.7.0_79/bin/javac" 1; sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/local/jdk1.7.0_79/bin/javaws" 1; sudo update-alternatives --set java /usr/local/jdk1.7.0_79/bin/java; sudo update-alternatives --set javac /usr/local/jdk1.7.0_79/bin/javac; sudo update-alternatives --set javaws /usr/local/jdk1.7.0_79/bin/javaws; 3. 자바 Path 설정 vi /etc/profile export JAVA_HOME=/usr/local/jdk1.7.0_79 export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH="." 4. 자바가 정상적으로 설치 되었는지 확인 ...

#001 Apache + tomcat연동

SERVER
1. 톰켓 다운로드 및 톰켓 이동 wget http://apache.tt.co.kr/tomcat/tomcat-7/v7.0.73/bin/apache-tomcat-7.0.73.tar.gz tar -xvf apache-tomcat-7.0.63.tar.gz mv apache-tomcat-7.0.63/ tomcat 2. 톰켓 등록 cd /etc/rc.d/init.d/ vi tomcat #!/bin/bash # Startup script for the Tomcat Server # chkconfig: 345 50 50 # description: Tomcat is a Web application server. # processname: java # directory : CATALINA_HOME=/usr/local/tomcat source /etc/profile export CATALINA_HOME=/usr/local/tomcat case "$1" in start) echo "Starting tomcat: " $CATALINA_HOME/bin/startup.sh ;; stop) echo "Shutting down tomcat: " $CATALINA_HOME/bin/shutdown.sh ;; restart) echo "Restarting tomcat: " $CATALINA_HOME/bin/shutdown.sh; $CATA...
#018 루씬과의 만남

#018 루씬과의 만남

SEARCH ENGINE
  1부 1장의 내용을 보면 루씬에 대한 소개, 일반적인 검색 애플리케이션의 구조, 기본적인 색인 API, 기본적인 검색 API에 대해서 설명하고 있다. 이 글을 리뷰하는것은 필자의 주관적인 생각도 들어갈수 있으며, 모든 저작권은 루씬 저자와 옮긴이에게 있으며, 자세한 내용을 알고 싶다면 책을 사 보는것을 추천한다. 여기서 루씬이라는 것은 어떤 애플리케이션이건 간에 손쉽게 검색 기능을 추가 할수 있게 도와주는 강력한 자바 검색 라이브러리를 말한다. 더군다나 루씬의 직관적이고 간결한 API덕분에 단 몇개의 클래스 만을 사용해도 기본적인 색인과 검색 기능을 충분히 활용할수 있다. 다시말해 루씬은 고성능 정보 검색 라이브러리 이다. 루씬을 사용하면 애플리케이션에 정보 검색 기능을 추가 할수 있으며, 루씬의 API는 최소한의 노력으로 풀텍스트 색인과 검색 기능을 사용할수 있게 충분히 간결하면서도 매우 강력하다. 루씬의 핵심 JAR 파일 이외에 추가 기능을 담당하는 여러개의 확장 JAR파일이 있다. 확장 기능이지만 루씬을 사용할 때 거의 모든 애플리케이션에서 필요로 하는 중요한 JAR 파일도 있으며 예를 들어 맞춤법 검사 기능이나 결과 하이라이팅 등의 기능이 있다. 1.2 루씬의 역사 루씬은 최초에 더그 커팅이 개발했으며, 처음에는 소스포지 사이트의 루씬 프로젝트 페이지에서 내려 받을수 있었다. 그러다가 2001년 8월에 아파치 재단의 자카르타 프로젝트의 일원으로 아파치 재단에 합류하였으며, 2005년에는 아파치 재단의 최상위 프로젝트가 됐다. http://lucene.apache....

#017 루씬 인 액션을 시작하며..

SEARCH ENGINE
  오늘부터 공부하게될 루씬 인 액션이라는 책이다. 한주에 한부씩을 읽고 리뷰할 예정이다. 몇년전에 검색엔진을 만들어 보고 싶은 마음에 이책의 초판을 사서 보았는데, 그 책과 지금의 책을 읽어 보니 많은 기능들이 추가 된 것을 알 수 있었다.  먼저 챕터를 살펴보고 가기 전에 출판 서평을 먼저 보도록 하겠다.   * DB에 담겨 있는 수백만 건의 정보를 마음대로 조회하지 못하거나, 사내 인트라넷의 엄청난 디렉토리 구조 안에 저장된 수많은 문서 중 원하는 내용이 들어있는 문서를 찾지 못해 어려움을 겪고 있다면, 그렇다고 상용 검색 엔진을 구입해 사용하기엔 너무 부담스러운 경우, 루씬(Lucene)이 정답이다. 이 책은 외주 개발이든 사내 개발이든 간에 전문적인 검색 기능을 필요로 한다면 최우선으로 고려해야 할 루씬에 대해 색인부터 검색과 고급 설정까지 예제 기반으로 설명한다. [(개정판) 루씬 인 액션]을 기반으로 루씬의 A부터 Z까지 완벽하게 활용하는 고성능 검색 애플리케이션을 개발해보자. * 초판이 출간된 이후 5년간 루씬 프로젝트에서 많은 부분이 달라졌다. 영향력 있는 오픈소스 프로젝트는 대부분 그렇지만 루씬도 탄탄한 기술적인 기반을 갖고 있으며, 사용자와 개발자가 참여하는 안정적인 커뮤니티가 계속해서 유지되고 있고, 이런 잠재력이 뭉쳐 엄청나게 발전하는 중이다. 초판이 출간된 이후 추가되거나 변경된 기능을 살펴보면 대략 다음과 같다. - 준실시간 검색 - 문서에서 텍스트를 추출할 때 티카(Tika) 프로젝트 활용 - NumericField를 통해 숫자 필드를 ...

TDD 개발 방법론

미분류
1. 모든 중복이 제거되기 전까지는 테스트를 통과한것으로 치지 않는다. 2. 구현하기 위해 역방향이 아닌 순방향으로 작업한다. 3. 앞으로 필요 할 것으로 예상된느 객체의 생성을 강요하기 위한 테스트를 작성한다. 4. 빠른 속도로 구현한다. 5. 일단 한곳에 캐스팅을 이용해서 코드를 구현했다가 테스트가 돌아가자 그 코드를 적당한 자리로 옮긴다. 6. 명시적인 클래스 검사를 제거하기 위해 다형성을 사용한다.

TDD 새로운 메타포 작성

미분류
1. 큰테스트를 작은테스트로 줄여서 발전 2. 필요한 계산에 가능한 메타포들을 신중히 생각 3. 새 메타포에 기반하여 기존 테스트를 재작성 4. 테스트를 컴파일 5. 테스트를 실행 6. 진짜 구현을 만들기 위해 필요한 리팩토링을 약간의 전율과 함께 기대

TDD 중복 제거 방법

미분류
1. 동일한 메소드의 두 변이형 메서드 서명부를 통일시킴으로써 중복 제거를 향해 한 단계 더 전진했다. 2. 최소한 메소드 선언부 만이라도 공통 상위 클래스로 옮김. 3. 팩토리 메소드를 도입하여 테스트 코드에서 콘크리트 하위 클래스의 존재 사실을 분리했함. 4. 하위 클래스가 사라지면 몇몇 테스트는 불필요한 여분의 것이 된다는 것을 인식.

TDD 주기

미분류
1. 테스트를 작성한다.   - 원하는 인터페이스를 개발한다.   - 올바른 답을 덕기 위해 필요한 이야기의 모든 요소를 포함시켜라 2. 실행가능하게 만든다. 3. 올바르게 만든다.   - 중복을 제가한다. 4. 공통된 코드를 첫번째 클래스에서 상위클레스로 단계적으로 롬겼다. 5. 두번째 클래스를 상위 클래스의 하위 클래스로 만들었다. 6. 불필요한 구현을 제거하기 전에 전체적인 메소드를 만틀어 테스트 한다. 7. 중복된 내용을 제거한다. * 깔끔한 코드   - 전체 문제중 작동하는 에 해당하는 부분을 해결하는 것 TDD 단계 1. 테스트 작성 2. 컴파일되게 하기 3. 실패하는지 확인하기 위해 실행 4. 실행하게 만듦 5. 중복제거 ...