본문 바로가기

Programing/Java

Java HTML Parser 자바 html parser중에 css selector를 지원하는 opensource프로젝트를 찾았더니 jsoup이라는 것이 있어서 소개 Site : http://jsoup.org/ WHATWG HTML5 명세를 구현했으며 아래와 같은 기능을 제공한다. scrape and parse HTML from a URL, file, or stringfind and extract data, using DOM traversal or CSS selectorsmanipulate the HTML elements, attributes, and textclean user-submitted content against a safe white-list, to prevent XSS attacksoutput tidy HTML URL,.. 더보기
java profiling (자바 프로파일링) YourKit 사용 방법 java application 실행 후 시간이 흐르면 cpu load가 올라가서 java profiling을 진행중이다. 나는 YourKit(http://www.yourkit.com/purchase/index.jsp)을 사용했고 리눅스 장비에서 실행되는 java program에 YourKit agent를 붙여 실행하고 내 윈도우 desktop에서 프로파일링을 진행했다. YourKit은 메모리(MEMORY), CPU, GC(garbage collection)등을 확인해 볼 수 있도록 지원한다. [프로파일링 방법] 링크를 따라가 보면 프로파일을 진행하는 방법을 가르쳐 준다. http://www.yourkit.com/docs/index.jsp Java Profiler YourKit Java Profiler 1.. 더보기
Java pipeline framework (자바 파이프라이닝 처리) 자파 파이프라인 프레임워크 내가 말하려는 파이프라인은 JAVA pipeline framework 모델이다. 언어는 JAVA가 아니어도 된다. 이미지 검색을 해봤는데 마음에 드는 그림이 없어서 직접 그렸다. 그러니까 공장에서 자동차를 조립하는 것을 상상해보면된다. 저런 pipeline이 있고 그 line에 따라서 job(자동)가 오면 작업자1(process1), 작업자2(process2), 작업자3(process3)이 차례로 job에 대해 어떤 일을 진행한다. 이런 종류의 프로세스는 같은 작업에 대해서 병렬적인 프로세스를 위해 쓰인다. 저런 line이 10개면 동시에 10개의 파이프라인에서 10대의 자동차를 생산할 수 있기 때문이다. http://www.informit.com/articles/article.. 더보기
java remote debugger, 자바 원격 디버깅 eclipse를 사용해 자바 원격 디버깅하는 방법에 대해서 설명한다. 영어에 거부감이 없다면 여기를 참고해도 좋다. http://www.eclipsezone.com/eclipse/forums/t53459.html 내 경우에는 원격 서버(linux)에서 돌릴 프로그램이 local에서 돌지 않기 때문에 remote debugging을 진행했다. linux에서만 도는 c library를 window에서는 돌릴 수 없기 때문에 ;;; 이런 경우 외에도 로컬이 아닌 원격장비에서만 일어나는 에러를 잡기 위해서 진행해 볼 수도 있다. 만약 test.java 파일을 컴파일 해서 test.class가 생성되었다면 실행은 아래와 같이 할 것이다. 서버 (10.8.34.1) $> java test 거기에 -Xdebug -X.. 더보기
java multi-thread, thread pool 사용 아래를 확인하면 안전하고 쉽게 java thread pool을 사용하는 방법을 알려 준다. http://www.vogella.de/articles/JavaConcurrency/article.html#threadpools 더보기
Mysql Connection pooling 비단 mysql에서만 필요한 것은 아니지만 mysql 사용을 예로 들어 connnection pooling에 대해서 적어 놓는다. mysql을 예로 들어 jdbc를 통해서 쿼리가 필요할 때마다 connection을 맺고 query의 결과를 받아오는 것은 비용이 크다고 볼 수 있다. 예전에 아래 포스팅에서도 썼듯 connection의 비용이 작은 편이 아니다. http://the-earth.tistory.com/entry/mysql-insert-%EC%86%8D%EB%8F%84%EC%97%90-%EB%8C%80%ED%95%98%EC%97%AC-Speed-of-INSERT-Statements 아래는 insert시에 드는 비용을 비율화 한 것이다. Connecting: (3) Sending query to s.. 더보기
JNDI 검색해 봤는데 설명이 어렵게 되어 있어서 찾은 것 중 가장 나아보이는 것 일단 투척 한글로 개념잡기 http://blog.naver.com/nciel77?Redirect=Log&logNo=110014111294 http://blog.naver.com/whitefre?Redirect=Log&logNo=140063288075 tutorial 페이지 http://download.oracle.com/javase/jndi/tutorial/index.html 더보기
java jdbc tutorial 오라클에서 제공하는 jdbc 관련 문서이다. http://download.oracle.com/javase/tutorial/jdbc/ 들어가기 귀찮을 텐데 여기서 들어가쟈. Trail: JDBC(TM) Database Access The JDBC™ API was designed to keep simple things simple. This means that the JDBC makes everyday database tasks easy. This trail walks you through examples of using JDBC to execute common SQL statements, and perform other objectives common to database applications. This.. 더보기
java udp server 예제 (datagram) 회사에서 분산 환경에서 저장소의 배치 진행 상황을 보기위해 udp server를 사용하려고 한다. 간단하게 client로 부터 datagram을 받아서 echo 해주는 서버이다. 출처 : http://systembash.com/content/a-simple-java-udp-server-and-udp-client/ UDPServer.java: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 import java.io.*; import java.net.*; class UDPServer { public static void main(String args[]) throws Exception { DatagramSocket serverSoc.. 더보기
eclipse에서 jdk 코드 안보일때 붙이기 (Attach Source) jdk 소스를 보고 싶은데 없다고 난리치면 그러니까 아래 DatagramSocket에서 F3눌렀을때 아래 같이 뜨면서 짜증이나고 그러면 말이다. Attach Source를 누른다. 아래 같이 찾아 보라고 할텐데 External File을 클릭하면 아래같은 창이 나오는데 java를 설치한 곳의 src.zip file을 고르고 확인 그리고 다시 확인 누르면 아래같이 아름다운 소스를 볼 수 있다. 더보기