스프링의 역사

 

스프링은 스프링 프레임워크(Spring Framework)의 줄임말로 많이들 사용하지만, 사실 스프링소스사(SpringSource社)에는 여러가지 스프링 제품이 있다.

그 중 Spring Framework - DIxAOP 컨테이너를 중심으로 스프링 MVC 와 스프링 JDBC 등을 포함 - 에 대해 정리해볼 필요성을 느껴, 학원 교재로 쓰던 책을 바탕으로 포스팅을 해보기로 한다.

 

스프링 MVC의 등장배경
  • 스프링(버전1 계열)이 국내에서 자주 쓰이게 된 것은 2006년부터.
  • 당시에는 스프링이 제공하는 DI(Dependency Injection)와 AOP(Aspect Oriented Programming) 기능을 중심으로
  • 주로 스트럿츠(Struts)와 하이버네이트(Hibernate)를 조합한, SSH 구성으로 웹프레임워크가 이용되었음.

 

<SSH>

Application 

 Struts
(스프링MVC이용은 드물었음)

Spring Framework 

Hibernate 

 

 

 

 

웹 애플리케이션 업무가 JSP, Servlet, EJB를 거쳐 현재의 스프링에 이르는 기술사의 발전사는 아래와 같다.

 

<자바 엔터프라이즈의 역사>

HTML(Hyper Text Markup Language)
정적인 콘텐츠
CGI (Common Gateway Interface)
동적인 콘텐츠
1요청 1프로세스
세션 관리가 없다.

 ▼

 서블릿, JSP(Java Server Pages)
CGI의 문제점을 해결
자바 언어 사용

EJB(Enterprise JavaBeans) 
컴퓨넌트 모델의 업계 표준
분산 오브젝트

 ▼

 스프링
(J2EE의 반성에서 태어나 현재는 클라우드 시대를 이끈다)

 

 

 

스프링의 특징

 

 

웹 애플리케이션의 아키텍처
  • 티어
  • 레이어

 

<티어>

클라이언트 층
(PC, 스마트폰) 

중간 층
(애플리케이션 서버) 

EIS(Enterprise Information System)층
(DB, 레거시 시스템) 

 

<레이어>

프레젠테이션 층
사용자 인터페이스(UI)와 컨트롤러를 제공한다.
이 층에는 클래스 이름으로 Controller나 Action이 붙은 클래스가 놓인다. 

비즈니스 로직 층
비즈니스 로직을 제공한다. 이 층에는 클래스 이름 끝에 Service가 붙은 유스케이스를 제어하는 클래스나,
회사(Company)나 종업원(Employee), 주문(Order) 등 업무 대상의 이름이 붙은 클래스가 놓인다.

데이터 액세스 층
데이터베이스 액세스를 추상화한다.
이 층에는 클래스 이름 끝에 DAO(Data Access Object)가 붙은 클래스가 놓인다.

 

<웹 애플리케이션의 다양한 레이어>

레이어1

레이어2

레이어3

레이어4

프레젠테이션

프레젠테이션

프레젠테이션

클라이언트 층에 있는
프레젠테이션

애플리케이션 컨트롤러

중간 층의 프레젠테이션

 비즈니스

서비스

도메인

비즈니스

 도메인

데이터 액세스

퍼시스턴스

인티그레이션

인티그레이션

비(非) 레이어 

리소스

 

※ 웹 애플리케이션 용어

용어 

정의 

 컨트롤러

화면 전환이나 화면에서 버튼이 눌러졌을 때의 동작 제어나 세션 관리 등을 한다.

 비즈니스 로직

서비스(애플리케이션) 

유스케이스로 표현되는 특정 업무나 특정 부서 처리의 통합, 트랜젝션의 기점.
일반적으로는 stateless(자신의 상태를 나타내는 값을 가지지 않는다) 클래스

 도메인

서비스로부터 비즈니스를 실행하는 데 있어 당연히 인식되는 고객이나 주문 같은 클래스의 집합이다.
자신이 무엇인지 나타내는 값과 그 값을 이용한 처리를 실현한다. 

 

+ Recent posts