Page 19 -
P. 19
자바 EE 프로그래밍 모델은 J2EE 이후 눈에 띄게 단순해졌습니다. 애너테이션이 XML 서술자 파일(descriptor file)을
대체하면서 수동 설정 대신 ‘설정보다 관례(Convention over Configuration, CoC)’라는 개념이 정착됐고 리소스 생
성 및 검색 과정을 의존체를 주입으로 감추었습니다. 개발자들은 설계/코딩 방식을 다시 생각하게 됐지요.
엔터프라이즈 애플리케이션을 J2EE로 개발하는 일은 쉬워졌습니다. 메타데이터를 애너테이션으로 달아놓은 POJO만
있으면 EJB(상태성/무상태성), 서블릿(servlet), JSF 기반 빈(backing bean), 퍼시스턴스 개체(persistence entity),
싱글톤, REST 웹 서비스로 만들 수 있습니다. XML 배포 서술자 형태로 서비스를 선언할 수도 있게 됐죠.
코드 2-1은 POJO를 싱글톤 빈으로 만든 코드로 서버 시동 시 초기화한 다음부턴 컨테이너가 관리합니다. 간단히 클래
스에는 @Singleton과 @Startup을, 초기화 메서드에는 @PostConstruct를 붙입니다(애너테이션은 4장 싱글톤 패턴
에서 더 자세히 다뤄요).
코드 2-1 POJO에 애너테이션을 붙여 컨테이너-관리 싱글톤 빈으로 만듦
package com.devchronicles.singleton;
import java.util.HashMap;
import java.util.Map;
import javax.annotation.PostConstruct;
import javax.ejb.Singleton;
import javax.ejb.Startup;
@Startup
@Singleton
public class CacheSingletonBean {
private Map<Integer, String> myCache;
@PostConstruct
public void start() {
myCache = new HashMap<Integer, String>();
}
public void addUser(Integer id, String name) {
myCache.put(id, name);
}
public String getName(Integer id) {
return myCache.get(id);
}
}
J2EE의 목표는 예나 지금이나 변함없습니다. 지금도 속도, 보안, 믿음성을 보장하는 분산(distributed)/거래형
(transactional) 애플리케이션의 요건을 개발자와 현업 담당자가 계속 인지하고 있습니다. 자바 EE 플랫폼은 대규모
(large-scale) 다중 티어(multitier) 애플리케이션을 더 쉽게 안전하고 탄탄하게 구축하는 방향으로 설계됐습니다.
java_06.indd 36 2017-02-28 �� 3:00:51