Java 23

자바 환경에서 XQuery 사용하기 (하)

자바 환경에서 XQuery 사용하기 (하) JDBC를 많이 사용해봤거나 n-티어 데이터베이스 애플리케이션을 작성해 봤다면 데이터 소스에 대한 개념은 친숙할 것이다. 이 글에서 말하는 데이터 소스는 어떻게 연결이 생성되고, 그리고 연결이 이디에 연결되는지에 대한 상세 정보를 추상화한 연결 객체다. 따라서 데이터 소스가 MySQL 데이터베이스에 네트워크로 연결된 것이나 정적 XML 문서에 파일 기반으로 연결되어 있는 것을 나타낼지도 모른다. 일단 데이터 소스를 가졌으면 연결 시맨틱에 상관 없이 그것을 다룰 수 있다. 로컬 디스크에 있는 XML 문서(이 글에서 다루는)에 쿼리를 수행한다면, 연결 설정은 간단하다. Listing 3은 새로운 데이터 소스를 만들고, 쿼리를 할 수 있는 기본적인 자바 프로그램이다...

Java 2009.05.15

자바 환경에서 XQuery 사용하기 (중)

자바 환경에서 XQuery 사용하기 (중) for 문 사용하기 for 문은 자바와 C# 같은 프로그램 언어에서 사용하는 방법과 거의 비슷하게 쓴다. for 문의 형식은 다음과 같다. for $variable-name in XPath ... 변수명은 어떤 식별자(예를 들면 x)라도 상관없다. 일반적으로 변수명은 용도(firstName, title)에 따라 정해지지만, 이 변수는 반복 카운터로만 사용할 것이므로, 문자 한 개만 사용하는 것도 나쁘지 않다. XPath는 어떤 것이라도 사용할 수 있다. /cds/cd는 완벽한 예다. 예를 들어 다음과 같이 사용할 수 있다. for $cd in doc("catalog.xml")/cds/cd ... 이것이 전부다. 변수 &cd는 XPath 경로 /cds/cd에 의해..

Java 2009.05.15

자바 환경에서 XQuery 사용하기 (상)

자바 환경에서 XQuery 사용하기 (상) 자바 애플리케이션에서 XQuery로 문서 검색하기 XML 데이터 형식은 검색이 어렵지만, 최근에 나온 XQuery API를 사용하면 쉽고 유연하게 XML을 검색할 수 있습니다. XQJ(XQuery API for Java)는 SAX, DOM, JDOM, JAXP 등을 사용해 XML 문서를 다뤄 왔던 자바(Java™) 프로그래머들을 위한 새로운 도구입니다. 이제 자바 프로그래머들은 시스템 호출이나 썬 표준 패키지에 있는 무겁고 다루기 힘든 API를 사용하지 않고도 XQurey의 강력한 기능을 활용할 수 있습니다. SQL 데이터베이스, XML 데이터, 그리고 쿼리, ...! 프로그래밍 세계, 특히 자바 프로그래밍이 팽창하면서 표준화된 방법도 같이 늘어나고 있다. 다시..

Java 2009.05.15

JVM Heap Analyzer

JVM Heap Analyzer입니다. java 프로그램 구동중 OutOfMemoryError가 발생하면 jvm은 자동 셧다운 됩니다. 이때 heapdump를 활용 함으로써 어떤 프로세서에서 얼마만큼의 메모리를 사용하고 있는지를 분석할 수 있습니다. jvm 1.4.2 update 12 이상에서는 아래 옵션으로 OutOfMemoryError 발생시 자동으로 Heap dump를 뜨게 할수 있습니다. -XX:+HeapDumpOnOutOfMemoryError 그리고 아래 옵션으로 heapdump 파일의 경로를 설정할 수 있습니다. -XX:HeapDumpPath=[dump file full path] 생성된 heap dump는 바이너리 파일로 생성되어 일반 에디터로는 분석이 불가능합니다. jdk6.0 이상에서는 ..

Java 2008.01.22

Dynamic Faces를 사용한 Client-Side Polling

이 아티클의 영문 원본은 http://java.sun.com/mailers/techtips/enterprise/2007/TechTips_Oct07.html#1 에서 볼수 있습니다. 이 팁은 Java EE 5의 오픈 소스 참조 구현인 GlassFish와 오픈 소스 NetBeans IDE 5.5.1을 사용하여 작성했습니다. GlassFish는 GlassFish 커뮤니티 다운로드 페이지에서 다운로드할 수 있습니다. NetBeans IDE 5.5.1은 NetBeans 페이지에서 다운로드할 수 있습니다. Dynamic Faces를 사용한 Client-Side Polling 팁에 대한 샘플 아카이브는 여기에서 다운로드할 수 있습니다. 아래에 있는 이 코드 및/또는 정보의 사용은 라이센스 계약 조건에 따릅니다. Dy..

Java 2007.11.27

자바 프레임워크 활용 전략

자바의 장점은 JCP, 프레임워크, 오픈소스이다. JCP를 통해서 호환성과 성능, 안정성이 보장된 스펙을 만들고, 잘 설계된 스펙들은 상호 연관성을 갖고 구조화된 구조로 확장한다. 이러한 결과물이 프레임워크이고 프레임워크를 지원하는 핵심은 오픈소스와 벤더이다. 이렇듯 프레임워크는 자바 구현체의 핵심이기도 하다. 특집 4부에서는 수 없이 많은 자바 프레임워크 중에서 데이터베이스와 보안 기능 구현에 효과적으로 사용할 수 있는 iBatis와 Acegi Security의 활용 방법들에 대해 알아본다. 웹 애플리케이션을 개발하면서 가장 중요하면서도 복잡한 기능 둘을 꼽으라면 단연 데이터베이스와 보안 기능일 것이다. 특집 4부에서는 데이터베이스 기능을 효과적으로 구축할 수 있는 iBatis와 보안 기능 구현용 프레..

Java 2007.11.14

프레임워크 이머전스의 미학

이머전스란 전체는 부분의 합보다 크게 되는 현상을 말한다. 혼자서는 도저히 발휘할 수 없는 개체들이 하나의 프레임워크에 융합되어 거대한, 새로운 힘을 만드는 것이다. 하지만 n개의 개체들이 모여 n개를 초과하는 무엇을 만들기란 어려운 일이다. 그럼에도 불구하고 JBoss를 비롯한 우수한 프레임워크들은 이러한 기적을 이뤄내고 있다. 특집 2부를 통해 JBoss와 JBoss를 이용하는 애플리케이션이 이머전스 되는 모습을 분석해 보자. 이제 개발자 혼자서 프로그램의 처음과 끝을 모두 개발하는 시대는 지났다. 시스템 라이브러리나 프로그래밍 언어에서 지원하는 라이브러리를 제외하더라도, 우리는 각종 코드 샘플, 유틸리티 라이브러리, 미들웨어 서비스, 프레임워크 등을 이용하여 애플리케이션을 개발한다. 어차피 소프트웨..

Java 2007.11.14

Log4j 웹에서 사용하기

LOG4J I. 들어가면서.. 그리고 log4j log4j는 자바 어플리케이션에서 빠르고 효과적으로 로깅 할 수 있도록 도와주는 오픈 소스 프로젝트입니다. 로깅(logging)은 코드의 가독성을 떨어뜨리는 단점이 있지만 애플리케이션에 문제가 있을 때 개발자가 자세한 상황을 파악할 수 있도록 해 주며 테스팅시 빠질 수 없는 요소입니다. 아마도 여러분들은 여러 어플리케이션이 추가되면서 각 개발자들만의 독특한 로깅방식이 서로 썩이고 얽혀서 화면에 나타나는것을 많이 봤을겁니다 -_-; 즉 로깅방법을 통일할 필요가 있는것이죠. 모든 개발자가 특정 포맷에 맞추어서 로깅 한다면 한결 로깅하기도 편하겠지요 오픈 소스 프로젝트인 Log4j는 개발자들이 매우 손쉽고 다양한 형태로 로깅을 할 수 있도록 도와줍니다. 성능또한..

Java 2007.11.14

정규표현식

정규 표현식 (Regular Expression) Character 의 미 \ \ 다음에 나오는 특수 문자를 문자열로 인식 예) /라는 특수문자는 일반적으로 프로그램 상에서 나누기로 인식하게 되어있습니다. 이것을 나누기가 아닌 그냥 문자열 / 로 인식시키려면 \/ 로 써주면 됩니다. ^ 라인의 처음과 패턴과 매치 예) ^A 라고 써주면 검색하고자 하는 문장의 시작 문자가 A인지를 검사하는 것입니다. $ 라인의 끝과 패턴과 매치 예) $A 라고 써주면 검색하고자 하는 문장의 마지막 문자가 A인지를 검사하는 것입니다. * 0개 이상의 문자와 매치(모든것이라는 의미) + 1개 이상의 문자와 매치, {1,}와 같은 의미임 ? 0 또는 1개의 문자 의미 예) A?b 라면 A라는 문자와 b라는 문자 사이에 문자가 ..

Java 2007.08.20