JJC's 테크니컬 다이어리

스프링 사용의 혜택들 본문

Spring

스프링 사용의 혜택들

털털한JJC 2009. 9. 25. 09:26
Benefits of Using Spring
스프링 사용의 혜택들
Spring은 POJO를 사용하여 엔터프라이즈급 어플리케이션 개발을 가능케해준다. POJO만을 사용한다는 장점은 어플리케이션 서버 같은 EJB 컨테이너 제품이 필요없다는 것이다. Spring이 있으면 Tomcat 같은 서블릿 컨테이너만 사용해도 되는 선택권을 가지게 되는 것이다.

모듈러
스프링은 모듈 형태로 이루어져 있다. 패키지 갯수나 클래스 갯수가 상당 하지만 필요한 것들만 생각하면 된다. 그렇기에 케이스-by-케이스 그리고 모듈-by-모듈 로 스프링을 적용 할수 있다.

보완성
스프링은 불필요한 일을 하지 않는다. 대신 하고 있던 기존 작업 부분을 보완하고 있다. 예를 들면 몇몇 ORM 프레임워크, JEE, Quartz, JDK 타이머나 다른 뷰 기법들을 보완하고 있는 것이다.

테스트하기
스프링을 사용하여 작성된 어플리케이션은 테스트하기 간편하다. 환경에 따라가는(environment-dependent) 코드가  프레임워크내에 위치하기 때문이다(코드에 포함되는 JNDI 룩업과 대비됨). 게다가 자바빈 스타일 POJO를 사용함으로써 테스트 데이타를 넣으려 할 때 의존성 주입(DI) 기법을 사용하기가 휠씬 쉬워졌다(XML 파일을 테스트 데이타 소스로 사용가능). 또한 스프링의 mock 클래스들은 HTTP 요청 객체와 같은 클래스들을 시뮬레이션해 보는데 도움을 줄 수 있다. 이것은 의존성 주입(DI)이 setter와 getter 메소드를 기본적으로 이용하기 때문이다.

싱글톤
Spring은 싱글톤 클래스를 개발자가 직접 유지관리 안해도 되게끔 해준다. 대신 일반적인 POJO 처럼 클래스를 작성해놓으면 항상 동일한 오브젝트에 접근할 수 있도록 Spring이 보장해준다.

웹프레임워크
Spring의 웹 프레임워크는 훌륭하게 설계된 MVC 프레임워크로서 스트럿츠나 다른 프레임워크 같은 웹 프레임워크의 멋진 대체 프레임워크이다. no-form 화면, simple-form 화면, 워저드형식 화면 등을 개발 가능하도록 해준다.  웹 프레임워크의 클래스를 상속받아 커스텀 클래스를 만들 필요없이 HTML 폼 필드를 직접 비지니스 오브젝트에 바인딩(bind) 할 수 있다. Spring은 또는 뷰(view) 에 대해서도 유연성을 제공하여 JSP, Velocity, JSF(JavaServer Faces) 등과 연동 가능하다.

일관성있는 예외 계층
Spring은 특정기술에 국한된 예외를(예를 들면 JDBC,하이버네이트,JDO의 예외) 해석하여 일관적이면서 체크되지 않는(unchecked) 예외로(예를 들면 org.springframework.dao.PessimisticLockingFailureException) 바꿔주는 편리한 API를 제공한다.

엔터프라즈급 트랜젝션 관리
일관된 트랜잭션 관리 인터페이스를 제공하여 로컬 트랜잭션으로(단일 데이타베이스의 사용) 규모축소 와 전역 트랜잭션으로(JTA의 사용) 규모확대를 가능하게 해준다.  Spring은 어플리케이션 서버에(일예로 BEA의 웹로직 서버와 IBM의 웹스피어) 특화된 통합을 제공한다.  Spring의 트랜잭션 관리는 프로그램적으로 또는 선언적으로 사용 가능하다.

경량 컨테이너
IoC 컨테이너는 일반적으로 가볍다(특히 EJB 와 비교하면).  이러한 특징은 메모리나 CPU자원이 한정되어 있는 컴퓨터용 어플리케이션을 개발하여 배포하는 경우 특별한 혜택을 받을 수있다.