난이도 : 초급
Sing Li, Author, Wrox Press
2006 년 3 월 13 일
Apache Geronimo는 진취적인 개발 커뮤니티와 성장하고 있는 사용자 커뮤니티를 갖춘 대형 오픈 소스 프로젝트이다. 따라서 새로운 사용자들은 감히 엄두를 내지 못한다. 심지어 숙련된 Java™ 2 Platform, Enterprise Edition(J2EE) 개발자들도 헤맬 때가 있다. 이 글은 신참 Geronimo 사용자를 위한 지침서이다. Geronimo 개발에 관한 광범위한 질문에 대한 답도 제시한다.
본 가이드에서는,
- Apache Geronimo 애플리케이션 서버와 오픈 소스 Geronimo 프로젝트를 소개한다.
- 서버를 다운로드 할 장소와 설치 방법을 설명한다.
- 첫 번째 Geronimo 애플리케이션을 구현하는 단계별 방법을 제시한다.
나머지 부분은 FAQ 리스트를 중심으로 엮었다. "최신 기술 정보를 어디에서 얻을 수 있는가?"부터 "커뮤니티에서 Geronimo 개발자들과 접촉할 수 있는 방법은?"까지 질문 범위는 다양하다.
Apache Geronimo 프로젝트(참고자료)의 목표는 완벽한 호환성을 갖춘 오픈 소스 J2EE 1.4 애플리케이션 서버용 코드 베이스와 관련하여 J2EE 사용자와 개발자들의 글로벌 커뮤니티를 만드는 것이다.
이 글을 쓰고있는 지금, 프로젝트 팀은 Release 1.0으로 향하고 있고, 서버도 J2EE 1.4 인증을 완전히 받은 상태이다. Geronimo 구현도 사용할 수 있다.(참고자료) Geronimo 구현에 포함된 바이너리 배포판은 개발과 평가를 위한 완벽한 서버 환경을 제공한다.
Geronimo 개발자들은 필드 테스트를 거친 기존의 여러 가지 오픈 소스 프로젝트를 통합했다. 많은 프로젝트들이 성숙하고 잘 알려져 있다. 사실, 벌써 사용하고 있는 사람들도 있을 것이다. 표 1은 Geronimo에 통합된 오픈 소스 코드의 일부이다.
오픈 소스 프로젝트 | 설명 |
---|---|
Apache Tomcat 5.5 | Java Servlet 2.4와 JavaServer Pages™(JSP) 2.0을 지원하는 웹 티어 애플리케이션 서버. |
Jetty | Tomcat 서버의 대안인 Servlet 2.4와 JavaServer Pages 2.0을 지원하는 웹 티어 애플리케이션 서버. |
ActiveMQ | 메시지 중심 빈(MDB)의 오픈 소스 Java Message Service(JMS) 1.1 애플리케이션 공급자와 지원자. |
OpenEJB | 오픈 소스 Enterprise JavaBeans(EJB) Container System과 EJB Server. 2.1 레벨에서 Enterprise JavaBeans와 Container Managed Persistence 2(CMP2)와 EJB Query Language(EJBQL)를 지원한다. |
Apache Axis and Scout | 웹 서비스와 Web Services Interoperability Organization(WS-I) Basic Profile 지원을 위한 Simple Object Access Protocol(SOAP) 구현(Axis)과 JSR 93(JAXR) 구현(Scout). |
Apache Derby | 원시 Java Database Connectivity(JDBC) 지원을 갖춘 완전한 관계형 데이터베이스 관리 시스템(RDBMS). |
표 1에 소개된 Geronimo의 J2EE 코어를 지원하는 오픈 소스 프로젝트 외에도, Geronimo 커뮤니티는 두 개의 중요하고 잘 알려진 오픈 소스 프로젝트를 기여했다. 표 2에 리스팅 된 이 프로젝트들은 Geronimo에 통합되어 테스트되고 Geronimo 바이너리 배포판을 함께 포함시켰다.
오픈 소스 프로젝트 | 설명 |
---|---|
Spring Framework | 경량 Inversion of Control(IoC) 컴포넌트에서 애플리케이션을 구현하는 대중적인 애플리케이션 프레임웍. |
ServiceMix | Java Business Integration(JBI)을 지원하고 서비스 지향 아키텍처(SOA) 구현에 Enterprise Service Bus(ESB)를 제공하는 오픈 소스 툴킷. |
위 오픈 소스 프로젝트 중 하나라도 이미 사용하고 있다면 Geronimo를 배우는 과정이 훨씬 간단해 진다.
Geronimo에서 실행할 수 있는 애플리케이션, 애플리케이션 서비스, 컴포넌트들
표 1에서 제시된 통합 서비스들을 통해 다양한 애플리케이션, 애플리케이션 서비스, 컴포넌트들을 Geronimo에서 실행할 수 있다.
- JSP와 서블릿 기반의 웹 애플리케이션
- JSP, 서블릿, EJB가 포함된 엔터프라이즈 애플리케이션
- 관계형 데이터베이스 서비스
- JMS 기반 메시지 큐 컴포넌트
- MDB 컴포넌트
- Spring 기반 경량 애플리케이션 컴포넌트
- 웹 서비스
- JBI 서비스 컴포넌트
지체할 것 없이 Geronimo 서버를 설정해 보자.
시작하기 전에, 다음 체크리스트를 점검해 보자.
- 서버의 코드를 다운로드하기 위한 고속 인터넷 연결.
- Sun Java 2 Platform, Standard Edition(J2SE) Development Kit(JDK) 1.4.2_08 또는 이후 버전(JDK 1.5는 현재 작동하지 않는다.)
- (Windows 사용자의 경우) Microsoft® Windows® 2000, 또는 Windows Server 2003, Windows XP.
- (리눅스 사용자의 경우) Sun JDK 1.4.2 애플리케이션을 갖춘 리눅스 버전, 또는 완벽한 테스트를 거친 Red Hat Enterprise Linux, Version 3 또는 4, SUSE Linux Enterprise Server, Version 9.
- Sun Solaris™ 9와 10.
- 최소 1.6-GHz Intel® Pentium® 4 프로세서. 1 GB RAM을 갖추면 이상적이다. (최소 256 MB도 가능하다.)
- Geronimo를 설치 및 실행할 200 MB 이상의 유휴 디스크 공간. (최소 60 MB도 가능하다.)
위 체크리스트를 다 검토한 후에 Apache Geronimo 사이트에서 Geronimo의 최신 마일스톤 구현을 다운로드(참고자료)한다. (이 글에서는 Milestone 4 또는 M4를 사용한다.)
.zip 또는 .jar 설치를 선택한다. 이것이 가장 빠른 방법이다. 다른 것으로는 .exe 인스톨러가 있는데, 더 많은 설정 옵션이 있고 추기 구현에 유용하다.
![]() |
|
여러분이 선택한 설치 디렉토리에 .zip 또는 .jar의 압축을 푼다. 이 글에서는 Geronimo_installation_directory로 정했다.
기본 설치는 압축을 푸는 것 만큼 간단하다. 이제 서버를 시작해 보자.
현재 작업 디렉토리를 Geronimo_installation_directory로 바꾸고 다음 명령어를 입력한다.
java -jar bin/server.jar |
서버는 server.jar 아카이브로서 Geronimo_installation_directory에서 실행할 준비가 된다.
그림 1은 콘솔 디스플레이 모습이다. 서버가 시작되었다는 것을 알려준다. 여러분도 같을 것이라 믿는다.
그림 1에서, 여러 가지 통합 서비스들은 시스템의 요청에 대해 TCP 포트를 리포팅 한다. 서버를 중지해야 한다면 콘솔에서 control-c 를 입력한다. Geronimo 1.0은 시스템 서비스로서 서버의 설치를 지원하고 콘솔 없이도 실행될 수 있도록 한다.
Listing 1은 여러분이 만들 JSP 웹 애플리케이션이다. Hello world!
메시지를 프린팅하는 하나의 JSP로 구성되어 있다. 이 JSP는 표준 <jsp:useBean> 명령어와 Expression Language(EL)를 사용하여 현재 서버 시간을 프린트 한다.
<html> <head> <jsp:useBean id="datetime" class="java.util.Date" /> <title>dw Getting Started with Geronimo</title> </head> <body> <h1>Hello world, from Geronimo!</h1> on ${datetime} </body> </html> |
먼저, project_base 라고 하는 작업 디렉토리를 만들어서 제품을 포함시킨다. 이 디렉토리에서 Listing 1의 내용이 담긴 hellojsp.jsp 파일을 만든다.
이제, WEB-INF라고 하는 프로젝트베이스 밑에 하위 디렉토리를 만든다. WEB-INF 디렉토리에서 Listing 2의 내용이 담긴 web.xml 파일을 만든다.
Listing 2. hellojsp.war용 web.xml 전개 디스크립터
<?xml version="1.0" encoding="ISO-8859-1"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> <description> developerWorks Getting Started with Geronimo - Hello JSP example </description> <display-name> IBM developerWorks getting started with Geronimo example </display-name> </web-app> |
Listing 2는 표준 Servlet 2.4 호환의 J2EE 전개 디스크립터이다. 이 디스크립터는 Web Application aRchive(.war) 파일에 J2EE 1.4 표준에서 요구되는 것이다.
이제, 다시 project_base 디렉토리로 가서 다음 명령어를 사용하여 .war 파일을 만든다.
jar cvf hellojsp.war |
드디어 Geronimo 서버에 전개할 hellojsp.war 파일이 생겼다.
웹 애플리케이션을 전개하려면 hellojsp.war 파일을 Geronimo_installation 디렉토리에 복사한다. 이 디렉토리에서 런타임 전개자를 사용하여 애플리케이션을 전개한다.
java –jar bin/deployer.jar --user system --password manager deploy hellojsp.war |
첫 번째 Geronimo 애플리케이션 전개를 성공적으로 완료하면 Geronimo 전개자는 다음과 같은 인디케이터를 프린트 한다.
Deployed hellojsp |
이제 브라우저를 시작하여 URL http://localhost:8080/hellojsp/hellojsp.jsp로 들어가 보자.
디폴트 Jetty 컨테이너가 JSP를 처리 및 실행했다. (1.0 릴리스에서는 기본적으로 Tomcat을 실행할 수 있다. 브라우저는 다음과 같이 JSP를 디스플레이 한다.(그림 2)
그림 2. Geronimo에서 실행되는 Hello world JSP
축하한다! 드디어 Geronimo 서버의 설치와 설정을 마쳤다. 게다가 애플리케이션을 만들고 이를 서버에 전개한 것이다.
다음 섹션에서는 새로운 Geronimo 사용자를 위한 FAQ를 마련했다.
Geronimo 서버에 무엇이 전개되었는지를 어떻게 아는가?
런타임 전개자를 사용하여 서버상의 모든 전개된 모듈들을 리스팅 한다. 명령어는 다음과 같다.
java -jar bin/deployer.jar -user system -password manager list-modules |
Geronimo에서 버그를 찾았거나 새로운 기능 요청을 하려면?
Geronimo 프로젝트는 Apache Software Foundation의 버그와 이슈 트래킹 데이터베이스(참고자료)를 사용하여 이슈와 기능 요청들을 트래킹 한다. 어떤 Geronimo 사용자라도 버그나 기능 요청들을 제출할 수 있다.
버그나 기능 요청을 제출하기 전에 다른 사람이 먼저 제출했는지의 여부를 확인한다.
처음 로그인 할 경우 계정을 만들어야 한다. 그런 다음, 여러분이 발견한 버그의 디스크립션을 입력한다. 버그가 어떻게 만들어졌는지를 자세히 설명하고 도움이 될만한 파일을 첨부하라.
Geronimo에 대한 기술 정보는 어디에서 찾을 수 있는가?
developerWorks에는 Geronimo 아키텍처와 관련된 기술자료들이 있다.(참고자료)
- "오픈 소스 방식으로 더 나은 J2EE 서버 구현하기" (developerWorks, May 2005)
- "Geronimo! Part 1: J2EE 1.4 엔진" (developerWorks, May 2005)
- "Geronimo! Part 2: J2EE 1.4 길들이기" (developerWorks, May 2005)
다음은 보다 구체적인 Geronimo 개발 작업에 참조할 수 있는 리스트들이다.(참고자료)
- Geronimo 공식 프로젝트와 커뮤니티 웹 사이트는 기본적인 자료 제공처이다.
- JSP와 웹 애플리케이션의 경우, "Powerful browser detection and custom JSP tags with Geronimo" (developerWorks, 2005년 9월)를 참조하라.
- EJB의 경우, "Dive into EJB Web applications with Geronimo" (developerWorks, 2005년 7월).
- JMS의 경우, "Magic with JMS, MDBs, and ActiveMQ in Geronimo" (developerWorks, 2005년 7월).
- 데이터베이스의 경우, "Three ways to connect a database to a Geronimo application server" (developerWorks, 2005년 6월).
- 웹 서비스의 경우, "J2EE Web services in Geronimo, Part 1" (developerWorks, 2005년 8월)와 "Deploy Web services in Apache Geronimo" (developerWorks,2005년 6월).
- 클라이언트 또는 GUI 개발자라면, "Create client applications for Geronimo" (developerWorks, 2005년 6월)와 "Connect a Java Swing application to a Geronimo server" (developerWorks, 2005년 7월)를 참조하라.
- Geronimo의 보안 구현은 "Build a secure enterprise infrastructure with Geronimo" (developerWorks, 2005년 7월)를 참조하라.
developerWorks Apache Geronimo 프로젝트 리소스 페이지에서 최신 Geronimo 기술자료와 튜토리얼을 참조할 수 있다.(참고자료)
Geronimo 프로젝트 wiki(참고자료)는 커뮤니티 기반의 정보 사이트로서 Geronimo의 기술적인 측면에 대해 상세하게 설명하고 있다.
거의 모든 메이저 출판사에서 Geronimo에 대한 책을 발간하고 있다. 이들 대부분이 2005년 말과 2006년 초에 출간될 예정이다. Apache의 Geronimo 책 리스트에는 곧 출간 예정인 Geronimo 도서 리스트가 제공된다.(참고자료)
Geronimo에 Integrated Development Environment (IDE) 지원이 되는가?
그렇다. Eclipse용 Geronimo 플러그인을 Eclipse Web Tools Platform 프로젝트(참고자료)에서 사용할 수 있다. "Create, deploy, and debug Apache Geronimo applications"(참고자료)에서는 이 플러그인의 기능을 배울 수 있다.
Geronimo는 Apache License, Version 2.0(참고자료)에서 라이센스를 받는다. 라이센스 스팩들은 합법적인 법률 위원회에서 면밀히 해석되는 반면 기여의 의무 없이 프로젝트에서 서버를 무상으로 사용할 수 있다.
오픈 소스 소프트웨어란 무엇인가? 다운로드와 사용 모두 합법적인가? IBM이 이를 승인하는가?
developerWorks의 "New to open source" 리소스 센터를 참조하라.(참고자료)
Geronimo 커미터(committer) 리스트를 참조하라.(참고자료) 커미터는 Geronimo의 소스 코드 리파지토리에 쓰기 액세스를 가진 Geronimo 서버의 개발자이다. 현재 커미터 팀은 월드 클래스 J2EE 서버의 개발이라는 공통 관심사를 가진 전문 기술자들의 글로벌 그룹이다. 여러 벤더들 출신의 개인 또는 사원들이 대표를 맡고 있다. Geronimo 개발자가 되고싶다면 커미터가 되는 방법에 답변하기 바란다.
Geronimo는 J2EE 서버라고 생각했다. ServiceMix와 Spring 같은 프레임웍이 배포판에 통합되는 이유는?
실제로, Geronimo는 J2EE 서버 그 이상이다. 이것은 근본적으로 서비스 컴포넌트들을 하나로 이어주는 프레임웍이다. Geronimo의 어셈블리라는 개념 때문에 여러분이 필요로 하는 서버 컴포넌트들만 포함하고 있는 특별한 Geronimo 버전을 만들 수 있다. J2EE 서버는 기존의 오픈 소스 서비스 컴포넌트들의 특정 어셈블리에 불과하다. 다른 서비스 컴포넌트를 Geronimo에 통합할 수도 있다. "Integrate third-party components into Geronimo" (developerWorks, developerWorks, 2005년 8월)를 참조하라.(참고자료)
Geronimo에 대해 도움이 필요하다. 누구에게 문의해야 하는가?
Apache Geronimo 사용자 메일링 리스트가 제일 좋다.(참고자료) 많은 커뮤니티 멤버들을 비롯하여 개발 팀이 이 리스트를 구독하고 있다. 여러분이 이 리스트를 사용한다면 빠르게 도움을 받을 수 있을 것이다. 이미 답변을 받은 질문인지를 먼저 확인하도록 하라.
여러분의 회사에서 제품급의 J2EE 애플리케이션을 개발중이라면 신뢰성 있고 전문적인 지원이 필요할 것이다. IBM Support for Apache Geronimo에 등록하기 바란다.(참고자료).
developerWorks Apache Geronimo 커뮤니티 포럼(참고자료)에서 핵심적인 Geronimo 개발자들을 만날 수 있다. 그들이 기술적인 질문에 답해 줄 것이다. 또한, developerWorks "Meet the experts" 섹션(참고자료)에서는 Dain Sundstrom이 Geronimo 개발에 대한 질문에 답변한다.
Apache Geronimo의 빡빡한 개발 스케줄은 두 명의 개발자들이 언제나 상주하고 있다는 것을 의미한다. IRC 채널에서도 도움을 받을 수 있다. 리소스를 사용하려면 IRC 클라이언트가 필요하고 #geronimo 채널에 참여해야 한다. IRC 정보에 대한 프리노드 서버를 참조하라.(참고자료).
현재의 모든 Geronimo 개발자들은 Geronimo 개발자 메일링 리스트에 등록되어 있다.(참고자료) 메일링 리스트는 Geronimo 서버의 개발과 직접적인 관련이 있는 논의로 제한된다.
일년에 한 번, ApacheCon 연례 컨퍼런스가 열린다.(참고자료)
공식 Geronimo 1.0 릴리스 전에, Geronimo 서버의 릴리스는 마일스톤 구현을 통해 가능하다. 이러한 구현들은 서버로 빠른 액세스를 위해 제공된다. 이는 오픈 소스 프로젝트의 일반적인 관행이다.
이 글을 쓰는 지금은 Milestone 4를 사용할 수 있다. 표 3은 다양한 Geronimo 마일스톤 구현에 대한 정보이다.
마일스톤 구현 | 설명 |
---|---|
M5 | 1.0 릴리스에 가장 가까운 최신 기능 세트. 웹 콘솔과 결합되었다. 웹 티어 컴포넌트에 Tomcat과 Jetty 중 쉽게 선택할 수 있다. |
M4 | OpenEJB를 통해 EJB를 완전히 지원하는 첫 번째 마일스톤 구현. |
M3 | 주요 마일스톤 구현. 모든 웹 티어 지원을 갖추었고 ActiveMQ가 작동을 하며 Derby가 빌트인 RDBMS이다. EJB 지원은 없어졌다. 웹 티어 개발에는 Tomcat 보다는 Jetty를 선호한다. |
M1, M2 | 제한된 기능 세트만 제공하는 제한 릴리스. |
있다. 마일스톤 구현 중간에 Geronimo 팀은 최신 불안정 빌드를 구현했다.
이 빌드는 이름에서 암시하듯 테스트도 되지 않고 안정성에 대한 보장도 없다. 하지만 평가를 원하는 사용자들을 위한 최신 기능들을 제공하지만 소스 코드에서 구현할 수는 없다.
소스 코드에서 Geronimo를 구현하는 것은 간단한 일이 아니다. 수십억 달러 소프트웨어 회사들이 전용 구현 서버에서 수행하는 것을 여러분의 데스크탑 컴퓨터에서 수행하는 꼴이 된다.
Geronimo는 큰 프로젝트이고 버전 컨트롤과 구현 툴을 사용한다. 여러분이 굳이 구현하고 싶다면 설정과 관련한 문제해결에 많은 시간을 보내야 한다. 여러분이 준비가 되었다면 wiki 페이지를 참조하기 바란다.(참고자료)
Geronimo 프로젝트에 기여하고 싶다. Geronimo 오픈 소스 프로젝트의 개발자가 되려면 어떻게 해야 하는가?
단순히 등록할 수는 없다. 유명한 Apache 웹 서버 팀 같은 Geronimo 팀은 상당한 실력을 갖추고 있다. 여러분 스스로 합당한 자격을 갖추었는지 확인해야 한다. 오랜 기간 동안 프로젝트에 중대한 기여를 하는 등의 헌신적인 노력을 해야 한다. 버그 픽스, 패치 제출, 커뮤니티와의 교류, 많은 코드 작성부터 시작해야 한다. 그런 다음, 어느 좋은 날 프로젝트의 기존 커미터가 여러분에게 멤버 초대장을 보낼 것이다. 기존 개발자 그룹(참고자료)은 여러분의 활동 내역을 기반으로 투표를 할 것이다. 정말로 이 같은 일을 시작하려면 Geronimo to-do 리스트를 확인하기 바란다. (참고자료)
요즘 오픈 소스 분야에서, Geronimo 같은 Apache 프로젝트의 유급 커미터의 위치는 소프트웨어 마스터 급으로 인식된다.
IBM WebSphere 사용자이다. Geronimo에 상당한 관심이 있다. IBM WebSphere Application Server와 어떻게 다른가?
"Apache Geronimo uncovered" (developerWorks, 2005년 8월) 튜토리얼을 참조하라.(참고자료)
열정적인 오픈 소스 개발자 팀은 여러분이 무상으로 다운로드 하여 사용할 수 있는 표준의 인증 서버를 제공하기 위해 열심히 일하고 있다.
이 서버는 확장 가능하고, 관리하기 쉬우며, 구성력도 뛰어나다. 기존 지원 사용자들이라는 굴레에서 벗어나서 다른 사람이 이전에 저지른 값비싼 실수까지 피한다.
동시에, Geronimo는 주요 글로벌 소프트웨어 기업과 적극적인 오픈 소스 전략의 지원을 받는 서버이다.
J2EE 개발자라면 Geronimo를 진지하게 고려해 보라.
교육
-
Apache Geronimo developerWorks articles :
- "Building a better J2EE server, the open source way" (developerWorks, May 2005)
- "Geronimo! Part 1: The J2EE 1.4 engine that could" (developerWorks, May 2005)
- "Geronimo! Part 2: Tame this J2EE 1.4 bronco" (developerWorks, May 2005)
- "Dive into EJB Web applications with Geronimo" (developerWorks, July 2005)
- "Magic with JMS, MDBs, and ActiveMQ in Geronimo" (developerWorks, July 2005)
- "Three ways to connect a database to a Geronimo application server" (developerWorks, June 2005)
- "Create client applications for Geronimo" (developerWorks, June 2005)
- "Connect a Java Swing application to a Geronimo server" (developerWorks, July 2005)
- "Build a secure enterprise infrastructure with Geronimo" (developerWorks, July 2005)
- "Deploy Web services in Apache Geronimo" (developerWorks, June 2005)
- "Create, deploy, and debug Apache Geronimo applications (developerWorks, May 2005)
- "Integrate third-party components into Geronimo" (developerWorks, August 2005)
- "Apache Geronimo uncovered" (developerWorks, August 2005)
- "Powerful browser detection and custom JSP tags with Geronimo" (developerWorks, September 2005)
- "J2EE Web services in Geronimo, Part 1" (developerWorks, August 2005)
- Apache Geronimo project resources
- developerWorks New to open source resource center
- Meet the experts
- Apache Geronimo project Web site.
- bugs and issue-tracking database.
- Tomcat Web site
- Geronimo book list Apache's.
- Geronimo project wiki, building Geronimo from source code
- Geronimo to-do list
- Jetty Web site
- annual ApacheCon conference.
- existing Geronimo developers.
- OpenEJB project
- Apache License, Version 2.0.
- Geronimo user mailing list, Geronimo developer mailing list.
- ActiveMQ server.
- Apache Derby RDBMS server
- freenode server.
- Apache Axis, Apache Scout
- ServiceMix engine
- Spring Application Framework information center.
- developerWorks Open source zone
제품 및 기술 얻기
- IBM Support for Apache Geronimo
- latest Geronimo milestone.
- Eclipse Web Tools Platform.
- Geronimo application server.
- IBM trial software
- Gluecode Standard Edition.
토론
이 글은 스프링노트에서 작성되었습니다.
댓글 없음:
댓글 쓰기