스프링은 엔터프라이즈 애플리케이션을 개발하기에 적합한 프레임워크로 객체 관리를 해주는 빈 컨테이너 프레임워크다.
- 기업과 조직의 비즈니스를 처리해주는 시스템
- 엔터프라이즈 애플리케이션 개발이 어려운 원인은 개발의 복잡성(complexity)이 증가했기 때문임.
- 과거에 비해 사회는 점점 복잡해졌으며, 이에 따라 IT 시스템에 대한 의존도가 높아져 시스템에서 다루어야 하는 업무의 복잡도가 높아짐.
- 많은 사용자의 요구를 빠르고, 안정적이면서, 확장 가능한 형태로 유지하기 위해서 필요한 로우레벨 수준의 기술적 처리가 필요해짐.
많은 양의 화물을 운반할 때 컨테이너를 화물선에 실어서 운반한다.
마찬가지로, 웹 프로젝트에서 화물(Java Bean)을 대신해서 관리해줄 컨테이너(EJB, Enterprise Java Beans)를 통해 관리한다.
- 프레임워크란, 소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 일련의 협업화된 형태로 클래스들을 제공하는 것
장점 | 단점 |
---|---|
개발 생산성이 획기적으로 좋아진다. | 개발자 학습 시간이 필요하다. |
코드 품질이 향상된다. | 개발의 자유도에 한계가 있다. |
유지 보수가 안정적이고 편리해 진다. |
- 개발에 대한 요구 사항이 점점 복잡해지자 좀 더 경량화되고 간소화된 컨테이너를 선호하게 되었다.
- 복잡한 서울 시내 한복판에서는 경차가 주차 공간을 확보하거나 주행하기에 용이한 것과 같다.
- POJO는 간단히 말해서 일반 자바 클래스다.
Spring은 EJB서버와 같은 거창한 프로젝트가 필요없는 오픈소스 프레임워크이다. 웹 분야뿐만이 아니라 어플리케이션 등 모든 분야에 적용이 가능한 다양한 라이브러리를 가지고 있다.