난이도 : 초급 Sing Li, Author, Wrox Press
2007 년 6 월 05 일 자바(Java™) 서버 애플리케이션을 만드는 것이 어렵고 지루할 필요는 없습니다. 2세대 경량(lightweight) 스프링(Spring) 프레임워크에는 많은 특징이 추가됐는데 이러한 특징들을 이용하면 심지어 초급 서버 애플리케이션 개발자도 사용하는 데 어렵지 않습니다. 이렇게 향상된 것은 스프링 2와 EJB(Enterprise JavaBeans) 3.0 명세의 토대가 되는 JPA(Java Persistence API)가 통합됐기 때문입니다. 이번 튜토리얼에서는 스프링 2 프레임워크를 사용해 점진적으로 서버 애플리케이션을 만드는 법을 배우겠습니다.
시작하기 전에
최근 10년 동안 견고하고(robust) 유지 보수가 쉬운 서버 측 자바 애플리케이션을 구축하는 "적절한" 방법은 J2EE(Java 2 Enterprise Edition) 플랫폼의 거의 독점적인 영역이 됐다. J2EE 애플리케이션은 EJB 기술을 사용해 구축되었고, 리치(rich) 컨테이너 서비스-데이터베이스 커넥션과 풀(pooling) 관리를 도와주는-를 제공하며, 배치(deployment)를 쉽게 해주는 서버에서 운영됐다. 이런 서버는 또한 배치 시에(deploy-time) 보안과 트랜잭션과 같은 핵심 기능의 선언적 관리를 제공함으로써 그 가치가 더한다. 이런 다양한 장점에 불구하고, J2EE 개발 프로세스에는 엄청나게 진저리 나고 반복적인 작업과 엄청난 양의 소스 코드 파일을 만들고 관리해야 하는 작업이 포함되어 있다.
서버 애플리케이션 개발 단순화를 주장하는 경량 자바 프레임워크가 많지만, 성숙도와 인기에서 스프링 프레임워크에는 미치지 못 한다(참고자료 참조). 이번 스프링 2 버전은 서버 애플리케이션 구축 프로세스를 단순화하기 위해 디자인되었다. 모든 것을 다 포함하는 컨테이너 측면(perspective)의 개발 방법으로 접근하는 대신, 스프링은 완벽히 성숙된 컨테이너 환경이라는 짐을 덜고, 애플리케이션의 요구 사항을 충분히 지원하는 정도만을 제공하는 것을 목표로 하고 있다. 스프링은 코드가 쓸데없이 부풀려지는 것을 배제한다. 컨테이너 외부에서 완벽하게 코드를 작성하고, 비즈니스 객체를 테스트할 수 있으며, 비즈니스 객체 코드를 간단하고, 테스트가 쉬우며, 유지보수 또한 쉽고, 재사용할 수 있는 코드로 유지할 수 있게 해준다.
자바 EE 5와 EJB 3.0의 출현으로 J2EE 커뮤니티는 스프링 개발자 커뮤니티와의 만남에 태연한 반응을 보이고 있다. EJB 3.0은 EJB 컴포넌트로서 경량 POJO(Plain old Java Object) 개념을 지원하고 컨테이너 외부에서 실행할 수 있는 영속성 메커니즘인 JPA를 소개하고 있다. 이 영속성 메커니즘은 비즈니스 객체와 외부 관계형 데이터베이스 사이의 정보 이동을 자동으로 처리해준다. 스프링 프레임워크 버전 2에서는 계속 진화하면서 영속성 메커니즘으로 JPA를 좋은 수단으로 활용한다.
이 튜토리얼에서는 스프링 2와 JPA로 작업을 해볼 것이다. DB2 Express-C 데이터베이스 접근을 완벽하게 지원하는 스프링 2 프레임워크를 사용해 서버 애플리케이션을 만들 것이다. 이클립스 IDE는 자바 애플리케이션 개발을 촉진시켜 주며, 스프링 2 프레임워크의 확장성을 강화해 준다.
이 튜토리얼에 대해
이 튜토리얼은 코드를 통해 배우는 접근 방법으로 스프링 프레임워크 2를 가장 짧은 시간에 핵심적이며 단순한 기능을 사용하고, 응용할 수 있도록 안내하는 것을 목표로 하고 있다. 독자들은 스프링 2 프레임워크의 도움을 받아 단계적이면서, 점진적으로 웹 애플리케이션을 구축할 것이다.
이 튜토리얼은 스프링 2의 모든 특징과 옵션을 다루려고 시도하지는 않는다. 대신 범위를 좁혀 스프링을 사용해 서버 애플리케이션을 개발하는 하나의 검증된 접근 방법에 집중한다. 프레임워크에 관련된 좀 더 상급의 응용과 기술에 대해서는 스프링 2 참고자료를 검토하면 도움을 받을 수 있을 것이다(참고자료 참조).
"개념에서 응용으로" 주기를 통해 진행해 나갈 것이며, 이 주기에는 다음과 같은 것들이 포함된다.
- 도메인 분석을 수행함
- 비즈니스 객체와 서비스를 구현함
- 비즈니스 객체에 대한 단위 테스트
- 스프링 JPA를 사용해 비즈니스 객체에 데이터 접근 코드 쉽게 추가
- 스프링 DAO(Data Access Object)를 사용해 서비스 구현
- DB2® Express-C와 연동한 서비스에 대한 통합 테스트 코드 작성
- 사용자 인터페이스에 기반을 둔 스프링 Model-View-Controller(MVC)를 위한 컨트롤러 생성
- 사용자 인터페이스를 위한 뷰(view) 디자인
- 애플리케이션을 위한 배치 가능한 WAR 파일 생성
- 아파치 톰캣(Apache Tomcat) 서버에 애플리케이션을 구성하고 배치함
이 튜토리얼의 마지막에서 여러분은 스프링 2 프레임워크 작동 방식과 컴포넌트화되어 있으며, 유지 보수가 쉬운 웹 애플리케이션을 구축 방법에 대해 알 수 있을 것이다. 이런 애플리케이션을 구축하면서 실제 사용해본 경험을 얻게 되고, 여기서 배운 많은 기술을 여러분이 매일 개발하는 업무에 적용할 수 있을 것이다.
선행조건
기본적인 객체 지향 디자인 개념과 제네릭(generic)을 포함한 자바 SE 5를 사용한 자바 개발에 친숙해야 한다. 관계형 데이터베이스 개념에도 익숙해야 하며, DB2 Express-C에서 새로운 데이터베이스를 어떻게 설정하는지에 대한 기본적인 지식도 있어야 한다.
단위 테스트와 통합 테스트를 비롯해 '테스팅(testing)'이라는 용어에 친숙해야 한다. JUnit과 같은 테스트 프레임워크로 작업한 경험이 있으면 좋지만, 필수는 아니다.
이클립스로 새로운 자바 프로젝트를 만들고, 자바 코드를 컴파일하고, 이클립스에 있는 디버그 프로젝트를 할 수 있는 정도의 작업 경험이 있어야 한다.
시스템 요구 사항
이 튜토리얼에 있는 도구와 예제를 실행해 보기 위해 필요한 하드웨어 구성은 적어도 512MB의 메모리(1GB 추천)가 있는 시스템이다.
다음과 같은 소프트웨어 설치가 필요하다.
 | 16 페이지 중 1 페이지 |  |
|