본문 바로가기
이카루스의 날개/JAVA

Spring의 장점이라는데...

by 윙혼 2007. 6. 24.
온자바에 올라온 아티클(http://www.onjava.com/lpt/a/5833)에서
 
Spring: A Developer's Notebook
 
 
Spring: A Developer's Notebook 의 공동 저자인 Bruce A. Tate 가
Spring의 다섯가지 장점을 언급하고 있다.
제대로 써보지 않고는 피상적인 지식이 되겠지만
그래도 한번.. 어떤 항목들을 언급했는지 살펴보자.
 
1. Spring Provides Better Leverage
Spring이 적은 노력을 하고도 많은 결과를 줄 수 있다는 점. ROI(Return On Invest)측면이고
개발 속도를 빠르게 하고, 유지보수도 용이하게 한다고...
쉽게 말해 안쓰는 것보다 효과적이란 것이다. 직관적인 코드 예제다.
 
Spring 사용시:
public List getReservations( ) {
  return getHibernateTemplate( ).find("from Reservation");
}
 
Spring을 안쓰면:
public List getBikesOldWay( ) throws Exception {
  List bikes = null;
  Session s = null;
  try {
    s = mySessionFactory.openSession( );
    bikes = s.find("from Bike");
  }catch (Exception ex) {
    //handle exception gracefully
  }finally {
    s.close( );
  }
  return bikes;
}
 
물론 공짜란 없다. 코드가 간결해지는 대가는 XML로 된 설정 파일과 Spring 라이브러리 덕으로
Spring 및 XML에 대한 학습이 당연히 요구된다.
 
2. Spring Enables POJO Programming
EJB를 쓰지 않아도, 트랜젝션 처리나 중앙 집중적 보안이 가능하다는 점
Figure 1
인터셉터를 이용한 일종의 AOP를 접목한 방식으로 EJB를 쓰지 않고
Spring에서 트랜젝션과 보안 문제를 해결하는 사례다.
 
3. Dependency Injection Helps Testability
EJB 스펙과 서버에 완전히 의존적이어서 테스트가 어려운 EJB와 달리
실행시점에서 의존성을 부과하는 Spring의 IoC 혹은 Dependency Injection은 테스트를
용이하게 한다. Spring 쓰나 안쓰나.. 설계만 잘 해두면
핵심 코드(Spring 접목부가 아닌 비즈니스 로직)는 Spring 사용과 무관하게
JUnit으로 테스트가 가능하다.
 
4. Inversion of Control Simplifies JDBC
데이터베이스 접근 즉, SQL 처리 관련한 템플릿 제공과
보다 편리한 API를 제공한다.
 
5. Spring's Community Thrives
커뮤니티의 힘. 저자는 구체적으로 네 가지 사항을 들었다.
  • Services: 협업 지향적이다. 예를 들어 데이터베이스 접근의 경우 JDO, Hibernate, Top Link, JDBC 혹은 OJB등과 플러긴하기 용이하다. 통합하는 어려움이 아니라 도리어 함께 쓰면 설정과 통합이 수월해진다.
  • Support and education: 국내에서는 해당되지 않는 이야기다. 미주나 유럽에선 컨설팅이 한창인 모양이다.
  • Enhancements: 빠르게 진화한다. 지속적인 개선.. 매우 중요한 부분이다.
  • Commercial support: 책도 나오고 있고, 점차 지원책들이 커지고 있다고...
  • 출처 : Tong - 妙心主님의 STRUTS/SPRING통

    '이카루스의 날개 > JAVA' 카테고리의 다른 글

    Spring Framework 설치법  (0) 2008.05.21
    Eclipse 북마크  (0) 2008.05.21
    .NET무료 서적 배포  (0) 2007.06.23
    이클립스 3.0 설치 & 톰캣, 롬보즈 플러그인  (0) 2007.03.26
    Java SE 6 - 새로운 JDK와 JRE  (0) 2007.03.26

    댓글