Development Environment/Spring

Spring Framework 개념 및 구조

짠백이 2019. 5. 26. 18:46
반응형

spring framework

이번 포스팅은 web 개발(java)을 할 때 자주 사용하는 framework인 Spring에 대해서 전반적인 느낌을 알아보겠습니다.

 

저의 블로그는 입문자들에게 거리감이 느껴지는 추상적인 개념들을 구체화해보면서 이전보다 친숙해지는 것을 목표로 하고있습니다. 이번 포스팅 또한 동일한 목표를 가지고 바로 시작하겠습니다.

 

 

* 참고1 : 해당 포스팅에서 사용하는 구조는 software design pattern의 MVC model 2를 채택하였고, IDE는 eclipse를 사용하였습니다.

* 참고2 : WAS와 software design pattern MVC model 2에 대한 사전지식이 필요합니다.

 

 

--------------------------------------------

[ 목차 ]

1. Spring 개념

 

2. Spring 구조

  2.1 Bean 관점

  2.2 MVC 관점

 

3. spring project 구성 (eclipes 기준)

 

4. spring 설정순서

--------------------------------------------

 

 

 

 

1. Spring 개념

  - Spring은 개발 할 때 사용하는 Framework 입니다. 

한국어로 번역하면 Frame(틀) + work(일) 으로 일(개발)을 효율적으로 하기위해서 사용하는 틀(frame) 입니다. 

framework은 정해진 규칙을 지키면 개발의 생산성을 향상시킬 수 있는 특징이 있습니다.

 

일상생활에서 비유를 한다면 커피를 만들 때 핸드드립으로 만드는것은 시간과 정성이 많이 소모되지만, 커피머신으로 커피를 만든다면 간단한 버튼조작만으로 빠르게 커피를 만들 수 있습니다.

(조작 : 원두 글라인딩/농도, 물 양/온도, 라떼 등)

 

여기서 커피를 만들기위해 커피머신이 하는 역할이 Spring Framework과 유사합니다.

 

 

2. spring 구조

  2.1 Bean 관점

   - Bean을 관리하는 관점에서 spring framework의 구조를 확인해보겠습니다.

 

   * Bean : spring container에서 관리하는 객체

   * dispatcher servlet 객체 : client의 요청을 받아 처리할 controller와 view 를 제어하는 객체 (=front controller)

 

Spring 구조 (bean 관점)

 

  2.2 MVC 관점

   - 다음으로는 MVC(sotfware design pattern) 관점에서 spring framework의 구조를 확인해보겠습니다.

 

   * 파란색 박스 : spring 설정영역

   * 빨간색 박스 : 개발자 코딩영역

   * Handler = controller 를 포함하는 개념

 

Spring 구조 (MVC관점)

 

3. spring project 구성 (eclipse)

  - 해당 spring project 의 type은  'spring MVC project' 입니다.

 

  * spring 의 설정은 java or xml 의 두가지 방법이 존재합니다.

 

 

RecommendBook_B : project 명 (=context path)

 

 

[controller, model] 

src/main/java : java source (controller, DAO, DTO...)

                 spring 설정파일 (dispatcher, Bean) - java로 설정 할 경우

 

[view]

src/main/webapp/resource  : 정적자원 (HTML, CSS, JS)

src/main/webapp/WEB-INF/spring : spring 설정파일 - xml로 설정 할 경우

src/main/webapp/WEB-INF/views : JSP 파일

src/main/webapp/WEB-INF/web.xml : tomcat 설정파일

 

 

 

pom.xml : Maven project 설정파일

 

 

 

 

4. spring 설정순서

 - spring 을 설정하는 방법은 다양하게 존재하지만 가장 기초적인 설정에 대해서만 알아보겠습니다.

(이는 절대적인 순서는 아니며 개발자에 따라 차이가 있을 수 있습니다)

 

4.1 project 설정 (pom.xml)

  - Maven, JdbcTemplate, dependency ...

 

4.2 tomcat 설정 (web.xml)

 - servlet, 인코딩 등등

 

* 참고 : dispatcher servlet / bean 설정파일을 등록하는 과정이 필요함

 

 

4.3 dispatcher servlet 설정 (java or xml)

 - Handler Mapping : client의 request를 수행 할 controller 객체를 mapping

 - Handler Adapter : client의 request를 수행 할 controller객체의 method를 mapping

 - view Resolver : client에 반환 할 view를 선택

 - Resource Handler : webapp/resources 에 접근하기 위한 설정

 

 

4.4 Bean 설정 (java or xml)

 - Aspect 설정 : autoproxy

 - 각종 bean을 생성 (controller, view, model, aspect ...)

 

 

4.5 Bean 정의 (java)

 - Controller : request URL mapping 설정 + logic

 - View 

 - Moded (service, DAO)

 - DTO

 

 

 

* 마치며

이로써 Spring의 개념부터 구조와 설정순서까지 알아보았습니다. Spring 은 software 개발을 도와주는 역활을 하는 도구이기 때문에 구조와 설정이 가장 중요하다고 생각합니다.

 

저와 같은 spring 입문자들에게 조금이나마 도움이 되셨기를 바라면서 포스팅을 마치겠습니다.

 

반응형