소개
스프링 프레임워크는 자바 애플리케이션 개발을 위한 포괄적인 인프라스트럭처를 제공하는 자바 플랫폼임.
스프링을 사용하면 "plain old Java objects" (POJOs)로 애플리케이션을 만들고 엔터프라이즈 서비스에 비침투적으로 POJOs를 적용할 수 있음.
이 능력은 Java SE 프로그래밍 모델에 적용되고, 전체 혹은 부분적으로 Java EE에 적용됨.
스프링의 이점을 사용한 예
- 트랜잭션 API를 사용하지 않고도 데이터베이스 트랜잭션 안에서 자바 메서드가 실행하게 만듦.
- 원격 API를 사용하지 않고도 로컬 자바 메서드를 원격 프로시저로 만듦.
- JMX API를 사용하지 않고도 로컬 자바 메서드를 관리작업으로 만듦.
- JMS API를 사용하지 않고도 로컬 자바 메서드를 메시지 핸들러로 만듦.
역사
로드 존슨이 2002년 10월에 출판한 자신의 저서인 Expert One-on-One J2EE Design and Development 에 작성한 코드를 기반으로 최초 버전을 만들게 됨.
(이후 유겐 휄러와 함께 Expert One-on-One J2EE Development without EJB 라는 제목을 저서를 발간함)
2006년에 1.2.6 버전으로 Jolt Productive Award 와 Jax Innovation Award 를 수상하였음.
목표
Spring Mission Statement
주의사항
- 출처 : www.springframework.org/statement.html (현재 존재하지 않음)
- 최초 스프링 프레임워크의 목표를 이해하는 측면에서 참고할 수 있음.
We believe that:
- J2EE should be easier to use.
- It's best to program to interfaces, rather than classes. Spring reduces the complexity cost of using interfaces to zero.
- JavaBeans offer a great way of configuring applications.
- OO design is more important than any implementation technology, such as J2EE.
- Checked exceptions are overused in Java. A framework shouldn't force you to catch exceptions you're unlikely to be able to recover from.
- Testability is essential, and a framework such as Spring should help make your code easier to test.
- Our philosophy is summarized in “Expert One-on-One J2EE Design and Development” by Rod Johnson.
우리가 믿는 것
- J2EE는 사용하기 쉬워야 한다.
- 클래스보다 인터페이스를 사용하여 프로그래밍을 하는 것이 가장 좋다. 스프링은 인터페이스를 사용함으로써 복잡도 비용을 0으로 감소시킨다.
- 자바빈은 애플리케이션을 구성하는 훌륭한 방법을 제공한다.
- 객체지향 설계는 J2EE와 같은 구현 기술보다 더 중요하다.
- 자바에서 체크드 익셉션이 과도하게 사용된다. 여러분이 복구할 수 있을 것 같지 않은 예외를 처리하도록 강요해서는 안된다.
- 테스트 용이성은 필수적이며, 스프링과 같은 프레임워크는 여러분의 코드를 테스트하기 쉽도록 도와주어야 한다.
- 우리의 철학은 Rod Johnson 이 쓴 [Expert One-on-One J2EE Design and Development] 에 요약되어 있다.
We aim that:
- Spring should be a pleasure to use.
- Your application code should not depend on Spring APIs.
- Spring should not compete with good existing solutions, but should foster integration. (For example, JDO, Toplink, and Hibernate are great O/R mapping solutions. We don't need to develop another one.)
우리의 목표
- 스프링은 사용하기 즐거워야 한다.
- 여러분의 애플리케이션 코드는 스프링 API에 의존해서는 안된다.
- 스프링은 현재 존재하는 좋은 솔루션과 경쟁하지 않는다. 그러나 통합은 촉진해야 한다. (예를 들어, JDO, Toplink, 하이버네이트는 훌륭한 O/R 매핑 솔루션이다. 우리는 그런 것을 또 하나 만들 필요가 없다.)