제12회 한국자바개발자 컨퍼런스가 코엑스에서 열립니다.
2월 18일(토) 오전 9시반에서 오후 6시 50분까지 예정되어 있습니다. 저녁 7시부터 자바인의 밤 행사도 잡혀있네요.
http://jco.zdnet.co.kr/12th/default.asp <= 여기에서 등록하실 수 있습니다.
http://jcoorkr.tistory.com/ <= 여기가 홍보 블로그입니다.



 IBM DeveloperWorks의 문서 제목을 보던중에 재밌는 문서를 발견했습니다. 사실 발견한지는 꽤 시간이 지났지만, 테스트를 해본다는 둥, 내용을 검증 해봐야겠다는 둥... 평소에 하지 않던 짓을 하려다가 시간만 보내고 이제야 글을 올립니다. 아마도 게으름이 가장 큰 탓이겠죠.
 제목만으로는 개인적으로 아주 많이 기다려왔던 문서가 아닐까합니다. Java 애플리케이션 서버에서 PHP 프로그램을 돌릴 수 있고, Java의 클래스들을 PHP 안에서 실행시킬 수 있다는거. 아주 맘에 드네요. 자세한 내용은 원문을 보시길...
원래 레진(Resin)에 포함되어있는데 톰캣에서도 돌릴 수 있다고 합니다.

원문 : Java 기반 PHP 프레임워크 Quercus 소개

Quercus는 Java™ 기술과 PHP를 함께 사용하여 웹 서비스와 애플리케이션을 작성할 수 있는 새로운 도구입니다. Quercus 프레임워크에는 Java와 PHP가 서로 통합되어 있기 때문에 Spring, Hibernate 등의 유용한 Java 라이브러리를 애플리케이션에 쉽게 통합할 수 있습니다. 이 기사에서는 약간의 코드 샘플과 함께 이 프레임워크에 대해 간략하게 설명합니다. 간단한 HelloWorld 샘플을 사용하여 이 프레임워크의 기능과 장점을 살펴본 후 마지막으로 프레임워크 아키텍처에 대해 설명하고 실제 예제를 자세히 살펴봅니다.

소개

Quercus는 순수하게 Java로 구현된 오픈 소스 PHP 5 엔진이다. Quercus 문서에 따르면 Quercus는 Resin 애플리케이션 서버를 기반으로 실행되고 로드 밸런싱, 프록시 캐싱 등의 Resin 기능을 사용한다. 이 기사에서는 Apache Tomcat을 기반으로 Quercus를 실행하면서 그 기능에 대해 설명한다. 또한 PHP와 Java가 통합되어 있는 Quercus를 통해 웹 서비스와 애플리케이션을 쉽고 유연하게 작성하는 방법도 보여 준다.


 IBM DeveloperWorks에 올라온 글중에서  Google App Engine for Java라는 시리즈를 소개하려합니다. 저도 이 문서에 나오는 Google Plugin for Eclipse를 설치해놓고는... 아직 아무것도 하지 않았습니다. ^^;;
에구 개발에서 손뗀지가 오래되서 그런지 참... 잘 안되네요.

  필자인 Rick Hightower는 클라우드 컴퓨팅, GWT, Java EE, Spring 및 Hibernate 개발과 관련된 교육 서비스를 전문으로 제공하는 회사인 Mammatus Inc.의 CIO입니다. [Java Tools for Extreme Programming](자바 툴을 이용한 EXTREME PROGRAMMING)의 공동 저자이며 TheServerSide.com에서 여러 해 동안 다운로드 수가 가장 높았던 Struts Live 초판의 저자입니다. IBM developerWorks에 많은 기사와 튜토리얼을 기고하고 있는 그는 Java Developer's Journal의 편집위원으로 활동하고 있으며 DZone에도 Java 및 Groovy와 관련된 많은 글을 기고하고 있습니다.
자바 툴을 이용한 EXTREME PROGRAMMING
카테고리 컴퓨터/IT
지은이 RICHARD HIGHTOWER 외 (사이텍미디어, 2003년)
상세보기



원문보러가기
Google App Engine for Java1
Google App Engine for Java2
Google App Engine for Java3



얼마 전까지만 해도 Google App Engine은 Python 개발자만을 위한 것이었기에 조금은 암울한 시기였습니다. 그러나 2009년 4월에 Google Inc.에서 클라우드 컴퓨팅 플랫폼에 대한 문호를 Java™ 개발자에게도 개방했습니다. 세 편의 기사로 구성된 이 시리즈에서는 Java 기술 저자이자 강사인 Rick Hightower가 Java 기반 개발을 위한 이 안정적이고 강력하면서도 재미 있는 플랫폼을 소개합니다. 이 기사에서는 Google App Engine for Java를 확장성 높은 킬러 애플리케이션의 전개 플랫폼으로 사용하기에 적합한 이유를 살펴본 후 Google Plugin for Eclipse를 사용하여 GWT(Google Web Toolkit)와 Java Servlet API를 기반으로 하는 두 가지 예제 애플리케이션을 작성합니다. 애플리케이션을 처음부터 작성하는 과정과 애플리케이션을 전개하여 최대 5백만 개의 보기를 조정하는 과정을 통해 Google App Engine for Java의 진정한 가치를 알 수 있습니다. (게다가 이 제품은 무료 버전입니다.)

 OTN 홈페이지에 [고성능 Oracle JDBC 프로그래밍]이라는 문서가 올라왔네요.
원문보러가기 : 고성능 Oracle JDBC 프로그래밍

고성능 Oracle JDBC 프로그래밍

연결 및 명령문 풀링 기능을 이용하여 Oracle 기반의 JDBC 프로그램 성능을 개선하는 방법을 학습합니다.

By Yuli Vasiliev

2009년 4월 게시

연결 풀링 및 명령문 풀링과 같은 풀링 기능을 사용하면 데이터베이스 집약적인 애플리케이션의 성능을 크게 개선할 수 있습니다. 풀링 기능을 사용하지 않을 경우, 처음부터 객체를 새로 만들어야 하므로 시간과 리소스가 많이 소모되지만 풀링을 사용하면 객체를 다시 사용할 수 있기 때문입니다.

애플리케이션에서 사용한 물리적 데이터베이스 연결을 나타내는 데이터베이스 연결 객체를 다시 사용할 경우, 성능을 크게 개선시킬 수 있습니다. 단, 해당 애플리케이션은 동일한 매개 변수를 사용하여 연결을 수시로 재설정하면서 데이터베이스와 끊임없이 상호 작용해야 합니다. 반면, 애플리케이션이 기본 데이터베이스에 연결하는 경우가 거의 없다면 연결 풀을 사용하는 이점이 별로 없을 것입니다. 그러나 실제로는 허용되는 최대/최소 연결 수에 대한 한도 설정 같은 풀 설정이 특정 애플리케이션에 맞게 최적화되어 있다면 많은 데이터베이스 집약적인 애플리케이션이 연결 풀을 사용함으로써 이점을 누릴 수 있습니다.

연결 풀처럼 명령문 풀도 애플리케이션 성능을 개선할 수 있는 방법을 제공합니다. 프로그램을 실행하는 중에 여러 번 실행되는 명령문을 풀링함으로써 추가적인 성능 개선을 얻을 수 있습니다. 그러나 명령문 풀링이 성능 문제를 해결할 수 있는 특효약은 아니라는 점을 기억하십시오. 만약 프로그램에서 명령문이 실행되는 횟수를 구분하지 않고 모든 단일 명령문을 캐시 한다면 성능 개선을 이루지 못할 수 있습니다. 프로그램 실행 중에 한 번만 실행되는 명령문을 캐시할 경우, 해당 명령문을 캐시에 넣고 보관하는 작업과 관련된 오버헤드로 인해 실제로는 성능이 저하될 수 있습니다.

이 문서에서는 Oracle JDBC 씬 드라이버를 통해 Oracle Database와 상호 작용하는 데이터 집약적인 JDBC(Java DataBase Connectivity) 프로그램의 성능을 개선하기 위해 연결 및 명령문의 풀링을 이용하는 방법을 설명합니다. 특히 JDBC 연결을 캐시하기 위해 모든 기능을 갖춘 연결 풀 구현을 제공하는 JDBC용 Oracle Universal Connection Pool(UCP)을 살펴보겠습니다. 마지막으로 Oracle의 JDBC 드라이버뿐 아니라 명령문 인터페이스에 추가되고 JDK(Java Development Kit) 1.6 이상 버전을 지원하는 Oracle JDBC 드라이버에서 사용할 수 있는 새로운 JDBC 4.0 메소드에 관련된 기능을 사용함으로써 명령문 풀링에서 이점을 얻을 수 있는 방법을 설명하겠습니다.


 최근에 회사에 신청했던 [Blog2Blog 자바 성능을 결정짓는 코딩 습관과 튜닝 이야기]를 소개하려합니다. 회사돈으로 산거라 다른책 읽을때보다는 서둘러서 읽고 있습니다. ^^;
아직 다 읽지는 못했지만 저같은 어중간한 레벨의 개발자들에게 필요한 내용들을 찾아보기 쉽게 정리해놓은 책이라고 생각합니다. 개발에서 손뗀지가 일년 정도 되다보니 기억나지 않는게 너무 많더군요. ^^;

자바 성능을 결정짓는 코딩 습관과 튜닝 이야기
카테고리 컴퓨터/IT
지은이 이상민 (한빛미디어, 2008년)
상세보기

아래는 이 책을 읽은 분이 책 내용중에서 오류를 찾아내서 정리해 놓은 블로그 내용입니다. 저도 읽으면서 찾아봐야 겠네요.


 자바로 만든 마법사 기반의 설치 프로그램을 소개하는 글이 올라왔습니다. 재밌어 보이는 글이라 소개합니다. ^^

원문 : 사람을 위한 자동화: 마법사 기반 설치 프로그램 사용하기

소프트웨어 설치는 많은 사용자에게 보통 고통스러운 일에 해당합니다. 여러분이 생성한 설치 패키지(소프트웨어 개발의 "마지막 일정")는 사용자에게 채택되거나 쓰레기통에 버려지는 갈림길에서 예전보다 나아질 수 있습니다. 이번 사람을 위한 자동화 기사에서, 자동화 전문가 Paul Duvall은 무료로 이용할 수 있는 오픈 소스 IzPack 도구를 사용하여 마법사 기반 설치 프로그램을 만들어 여러분의 소프트웨어를 사용자가 간단하게 설치할 수 있게 하는 방법을 살펴보겠습니다.

내 경험을 전반적으로 볼 때, 나는 소프트웨어 개발 전체 생명 주기에 참여해왔다. 요구 사항 도출, 설계, 개발 그리고 테스트뿐만 아니라 배포, 빌드 관리, 문서화, 설치 같은 활동에도 참여했다. 요즘 애자일을 많이 채택하면서 이 부류가 좀 더 많아졌고 일반화되었다. 하지만 내가 참여했던 애자일 프로젝트에서 효율적인 배포와 설치가 항상 최우선 과제는 아니었다. 이것이 바로 아이러니다. 잠재적인 고객이 여러분의 소프트웨어를 쉽게 사용할 수 없거나 아예 사용할 수 없다면, 여러분은 그들을 잃을 것이기 때문이다. 여러분의 소프트웨어를 간단하게 설치하는 방법을 제공하는 것은 고객을 유지하고 더 끌어오는데 정말로 중요하다.


 Java에서 Ajax로 웹개발할때 사용할 수 있는 웹 개발 프레임워크, 라이브러리, 툴킷에 대한 문서를 소개합니다. IBM DeveloperWorks에 공개된 문서중 "전문가다운 Ajax 애플리케이션 개발, Part 3: DWR, 자바, Dojo 툴킷을 사용하여 자바와 자바스크립트 통합하기"라는 문서입니다.
 Michael Garpin이라는 eBay의 개발자가 작성한 글로서 장동수님께서 번역하셧습니다.

지금 바로 이름이 떠오르는 자바(Java™) 웹 개발 프레임워크, 라이브러리, 툴킷만 해도 엄청나게 많습니다. 뭐가 뭔지, 어떤 것이 문제 해결에 도움이 될지 알아내는 것만 해도 버거운 일이죠. 그러나 Ajax 개발을 하고 있다면 반드시 알아두어야 할 라이브러리가 바로 DWR(Direct Web Remoting)입니다. 이 라이브러리는 자바 언어와 자바의 웹 기술을 사용하여 Ajax 개발을 더 쉽게 해줍니다. 이 라이브러리는 Ajax와 자바 웹 애플리케이션을 긴밀하게 통합하는 방법에 있어 기준을 제시합니다. DWR은 Ajax 기술들의 광범위한 연합인 Dojo 재단에 합류했습니다. 이 기사에서는 DWR을 사용하면 Ajax가 얼마나 간단해지는지 알아보겠습니다.

이 글은 Ajax 애플리케이션 제작에 사용할 수 있는 인기있는 자바스크립트 라이브러리들에 대해 알아보는 연재의 세 번째이자 마지막 기사다. Part 1에서는 Prototype 라이브러리를 사용하여 노래를 관리하는 웹 애플리케이션을 만들어 보았다. Part 2에서는 script.aculo.us를 사용하여 사진을 관리하는 웹 애플리케이션을 만들어 보았다. 이번에는 DWR을 사용하면 Ajax가 얼마나 간단해지는지 알아보자.

이 기사에서는 DWR 2.0을 사용한다. 예제 코드는 제네릭스(generics)와 어노테이션(annotation)을 사용하므로 자바 5 이상이 필요하다. 예제에서는 MySQL 5.12와 톰캣(Tomcat) 6.0.14를 사용하고 있지만, 쉽게 교체할 수 있을 것이다. 데이터베이스 접근을 위해 JPA(Java Persistence API)를 사용하며, JPA 구현체는 OpenJPA 1.0을 사용한다. 하이버네이트(Hibernate)나 Kodo 등의 다른 JPA 구현체로 바꿔도 된다. 이 기사에서는 Ajax 디버깅을 위한 멋진 도구인 파이어버그(Firebug: 파이어폭스용 플러그인)를 사용한다. 이 도구들에 대한 링크는 참고자료에 나와 있다.

DWR 소개

Ajax 애플리케이션이 처음 등장했을 때는 마법처럼 보였지만, 다행히도 개발하는 과정은 직관적이다. 모든 Ajax 상호작용은 서버 측 엔드포인트(endpoint: 웹 서비스에서 빌려온 용어)와 그 엔드포인트를 호출하는 클라이언트 측 코드가 필요하다. 또한 클라이언트와 서버가 주고받는 데이터를 직렬화(serialize)하는 코드도 필요하다. 서버 측 엔드포인트는 일반적인 서비스(RESTful이든 아니든)면 되지만, 클라이언트 측에는 종종 요구에 부합하는 좀 더 구체적인 코드가 필요하다. 강한 결합(tight coupling)을 피해야 할 때도 있지만, 필요할 때도 있다. 후자라면 DWR이 준비된 해결책이다. DWR은 선언적인 방법으로(declaratively) 서버 측 코드를 Ajax 엔드포인트로 만들 수 있고, 모든 부가적인 설비도 자동으로 만들어 준다. 지금부터 구체적인 예제를 통해 DWR이 어떻게 동작하는지 알아보자.


 지난번에 이어지는 Part 3 : "pureQuery로 신속한 애플리케이션 개발"입니다.
^^ 우웅... 다음에는 DB2 관련 문서를 좀 뒤져볼까합니다. DB쪽 공부를 폭 넓게 해볼까하는데 잘 될지 모르겠습니다.

 
원문 : 새로운 IBM pureQuery 툴을 사용하여 자바 데이터베이스 개발의 생산성 높이기, Part 3 : pureQuery로 신속한 애플리케이션 개발 (한글)

 아래는 본문의 서론 부분을 정리한 내용입니다.

IBM® pureQuery 플랫폼과 이클립스 도구를 사용하면 JDBC보다 코드 작성을 덜 하고도 간단하면서도 고성능의 데이터 액세스 레이어와 애플리케이션을 신속하게 만들 수 있으며 다른 어느 이클립스 기반 도구보다 더 높은 생산성을 얻을 수 있습니다.

목표

  • pureQuery 애플리케이션을 신속하게 만든다.

  • pureQuery 프로그래밍 스타일에 대한 기초 지식을 소개한다.

  • 샘플 프로그램과 JUnit 생성 기능을 사용하여 코드 한 줄 쓰지 않고 생성된 애플리케이션을 실행해 볼 것이다.

  • pureQuery 이클립스 통합이 유연성을 제공하는 방법에 대해 배우고 고성능 애플리케이션 개발에 활용한다.

  • 생성된 애플리케이션을 수정한다.

  • 자바 프로그래밍 내에서 코드 어시스트를 사용하여 pureQuery SQL 편집기 통합을 사용한다.

  • SQL 기능을 실행한다.
---------------------------------------------------------------------------------------------------

시작하기전에

본 연재에 대해

본 튜토리얼은 새로운 IBM pureQuery 도구로 자바 데이터베이스 개발에 생산성을 높이는 방법을 다루는 연재다.

본 튜토리얼에 대해

본 튜토리얼에서는 pureQuery 애플리케이션을 신속하게 만드는 방법을 다룬다. pureQuery 프로그래밍 스타일에 대한 기초 지식을 소개하고 샘플 프로그램과 JUnit 생성 기능을 사용하여 코드 한 줄 쓰지 않고 생성된 애플리케이션을 실행해 볼 것이다. pureQuery 이클립스 통합이 유연성을 제공하는 방법에 대해 배우고 고성능 애플리케이션 개발에 활용한다. 생성된 애플리케이션을 수정하고 자바 프로그래밍 내에서 코드 어시스트, SQL 기능 실행을 사용하여 pureQuery SQL 편집기 통합을 사용한다.

pureQuery 도구에 대한 개요는 Part 1을 참조한다.

자바 프로그램에서 입력한 SQL 오류를 찾고 고치는 법은 Part 2를 참조한다.

본 튜토리얼은 IBM pureQuery 이클립스 기반 도구를 사용하여 pureQuery로 신속하게 애플리케이션을 개발하는 것에 중점을 둔다.

  • 다음과 같은 방식으로 코드 한 줄 쓰지 않고 pureQuery 메서드-스타일 애플리케이션을 빌드할 수 있다.
    • 데이터베이스 테이블과 프로시저에서 pureQuery 애플리케이션을 생성해 만든다.
    • 자바 빈(bean)에서 pureQuery 애플리케이션을 생성해 만든다.
    • 애플리케이션을 위해 JUnit 테스트 케이스를 생성해 만든다.
  • 다음 사항을 수정함으로써 자바 편집기 내에서 pureQuery의 유연한 도구를 사용하여 비즈니스 요구사항에 맞게 pureQuery 애플리케이션을 커스터마이즈할 수 있다.
    • SQL과 자바 통합을 사용해 SQL을 수정한다.
    • 커스터마이즈한 SQL을 사용하여 pureQuery 애플리케이션을 수정한다.

커스터마이즈한 SQL을 사용하여 pureQuery 애플리케이션을 수정한다.

  • Database Explorer
  • 데이터 연결 퍼시스턴스 옵션

플랫폼 지원

IBM 데이터베이스 - IBM Informix® Dynamic Server를 비롯 Linux®, UNIX®, Windows®, zSeries®, iSeries®용 IBM DB2

이클립스 환경

  • IBM Data Studio V1.1
  • IBM Rational® 스위트와 공유하는 향후 셸 지원



 지난번에 소개한 "새로운 IBM pureQuery 툴을 사용하여 자바 데이터베이스 개발의 생산성 높이기"의 Part 2입니다. SQL 문제 탐지와 관련된 내용이 주된 내용입니다.
제가 DB쪽 업무만 하는 관계로 자바 관련 내용은 툴을 실행시켜보지도 못할때가 있습니다. 음... 다음부터는 좀더 꼼꼼하게 살펴보겠습니다.

원문 : 새로운 IBM pureQuery 툴을 사용하여 자바 데이터베이스 개발의 생산성 높이기, Part 2: 자바 프로그램의 SQL 문제 탐지 및 수정하기 (한글)



IBM® pureQuery 기술과 툴을 사용하여, 자바 프로그램 내에서 SQL을 코딩 할 때 생기는 다양한 문제들을 탐지합니다. 제품 개발과 전개 사이클 동안 다양한 시나리오에서 데이터베이스 애플리케이션의 개발 생산성을 높이고, SQL 밸리데이션을 여러분의 필요에 맞게 개인화 합니다.

머리말

IBM pureQuery 기술과 툴은 SQL을 포함하고 있는 자바 애플리케이션을 개발하는 태스크를 매우 단순화 시킨다. pureQuery는 Eclipse 환경 안에서 자바와 SQL을 긴밀히 통합시킨다. pureQuery 툴은 SQL 밸리데이션, SQL 콘텐트 어시스트, SQL 실행, Database Explorer에 보기 테이블 및 컬럼, SQL 템플릿 같은 다양한 기능을 사용하여 자바 에디터에서 SQL 작업을 완벽하게 할 수 있도록 한다.



 한동안 삽질기를 올렸으니 이번엔 깔끔하게 정리된 문서를 소개하려합니다.
이번에는 IBM DeveloperWorks의 자바, 오픈소스 관련 문서중에서 IBM pureQuery툴을 소개하는 글입니다.
자바로 DB 개발을 할때 유용한 툴이라고 합니다.

 한가지 아쉬운 점이라면... 뭐 IBM에서 나온 툴이니까 당연한 현상이겠지만, DB2와 Informix Dynamic server만을 지원한다는 점입니다. 제가 실무에서 Oracle만 사용하기 때문이죠. 참 아쉽습니다. 이참에 DB2를 좀 배워봐야 겠습니다. ㅋㅋ


원문 : 새로운 IBM pureQuery 툴을 사용하여 자바 데이터베이스 개발의 생산성 높이기, Part 1: pureQuery 툴 개요 (한글)


2008 년 1 월 29 일

자바™ 개발자를 지망하거나, 현재 자바 개발자라면 이 글이 도움이 될 것입니다. IBM® pureQuery 툴로 SQL을 이용한 자바 프로그래밍의 생산성이 그 어느 때보다도 높아졌습니다. 자바 에디터에서 SQL과 자바 애플리케이션을 코딩하고, 동등한 생산성을 경험할 수 있습니다. 자바 에디터를 떠나지 않고, 에러가 없는 자바 애플리케이션과 SQL을 구현합니다. JDBC보다 훨씬 적은 코드로 간단한 데이터 액세스 레이어를 생성합니다. 정적인 SQL을 사용하여 애플리케이션 성능을 높이고, SQL을 사용하여 데이터베이스와 인-메모리(in-memory) 컬렉션에 액세스 합니다.

머리말

본 기술자료 시리즈에서는, 자바 애플리케이션 개발자가 자바 언어로 프로그래밍 할 때 SQL 코딩 에러를 줄일 수 있게 하는 방법을 배우고, 단 한 줄의 코드도 작성하지 않고 고성능 자바 애플리케이션과 테스트 샘플을 구현해 본다. 자바 애플리케이션 내에서 SQL을 커스터마이징 하여, SQL 콘텐트 어시스트, SQL 밸리데이션, SQL 실행, SQL 오픈 정의 같은 pureQuery 툴을 사용하여 SQL 프로그래밍에 적용한다.

pureQuery 툴을 사용하여 속도를 높일 수 있다:

  • pureQuery 생산성 툴을 사용하여 데이터베이스 애플리케이션을 빠르게 구현하고, pureQuery 생산성 툴을 사용하여 자바 퍼스펙티브 내에서 SQL을 커스터마이징 한다.
  • 하나의 API를 사용했을 때보다 더 쉽게 데이터베이스 애플리케이션을 개발하여 데이터베이스나 인-메모리 데이터 소스로 작업할 수 있다.
  • 추가 작업 없이 정적인 SQL로 애플리케이션을 구현한다.
  • 애플리케이션 등에 pureQuery 디자인 패턴을 사용한다.

pureQuery 툴과 기술은 IBM Viper Developer V9.5에서 사용할 수 있다.



 위의 머리말을 보면 아시겠지만, 자바 개발자라면 한번 써볼만할것 같습니다. 편리함도 편리함이지만, SQL 코딩 오류를 줄여줄거라는 얘기가 반갑게 느껴집니다. (거의 대부분의 오류는 개발자의 오타에서 발생하기에... 최소한 제 경우는 대부분의 오류는 오타에서 시작되더군요. ^^; )

+ Recent posts