스프링은 스프링 프레임워크(Spring Framework)의 줄임말로 많이들 사용하지만, 사실 스프링소스사(SpringSource社)에는 여러가지 스프링 제품이 있다.
그 중 Spring Framework - DIxAOP 컨테이너를 중심으로 스프링 MVC 와 스프링 JDBC 등을 포함 - 에 대해 정리해볼 필요성을 느껴, 학원 교재로 쓰던 책을 바탕으로 포스팅을 해보기로 한다.
스프링 MVC의 등장배경
- 스프링(버전1 계열)이 국내에서 자주 쓰이게 된 것은 2006년부터.
- 당시에는 스프링이 제공하는 DI(Dependency Injection)와 AOP(Aspect Oriented Programming) 기능을 중심으로
- 주로 스트럿츠(Struts)와 하이버네이트(Hibernate)를 조합한, SSH 구성으로 웹프레임워크가 이용되었음.
<SSH>
Application | ||
Struts |
Spring Framework |
Hibernate |
웹 애플리케이션 업무가 JSP, Servlet, EJB를 거쳐 현재의 스프링에 이르는 기술사의 발전사는 아래와 같다.
<자바 엔터프라이즈의 역사>
HTML(Hyper Text Markup Language) | ||
▼ | ||
서블릿, JSP(Java Server Pages) |
EJB(Enterprise JavaBeans) | |
▼ | ||
스프링 |
스프링의 특징
웹 애플리케이션의 아키텍처
- 티어
- 레이어
<티어>
클라이언트 층 |
중간 층 |
EIS(Enterprise Information System)층 |
<레이어>
프레젠테이션 층 |
비즈니스 로직 층 |
데이터 액세스 층 |
<웹 애플리케이션의 다양한 레이어>
레이어1 |
레이어2 |
레이어3 |
레이어4 |
프레젠테이션 |
프레젠테이션 |
프레젠테이션 |
클라이언트 층에 있는 |
애플리케이션 컨트롤러 |
중간 층의 프레젠테이션 | ||
비즈니스 |
서비스 |
도메인 |
비즈니스 |
도메인 | |||
데이터 액세스 |
퍼시스턴스 |
인티그레이션 |
인티그레이션 |
비(非) 레이어 |
리소스 |
※ 웹 애플리케이션 용어
용어 |
정의 | |
컨트롤러 |
화면 전환이나 화면에서 버튼이 눌러졌을 때의 동작 제어나 세션 관리 등을 한다. | |
비즈니스 로직 |
서비스(애플리케이션) |
유스케이스로 표현되는 특정 업무나 특정 부서 처리의 통합, 트랜젝션의 기점. |
도메인 |
서비스로부터 비즈니스를 실행하는 데 있어 당연히 인식되는 고객이나 주문 같은 클래스의 집합이다. |