블로그 이미지
숏퐁숑

카테고리

분류 전체보기 (70)
게임기획자 준비 (18)
게임기획 참고자료 (7)
프로그램 (33)
숨쉬기 활동 (10)
Total
Today
Yesterday

달력

« » 2024.10
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

공지사항

태그목록

최근에 올라온 글

간단하게 정리하기 어려운 내용인것 같다. 토비의 스프링 프레임워크 책을 보아도 이해안가는 부분도 많다.

하지만 현재 전자정부 프레임워크를 쓰면서 기존의 내용을 알고 정리해 놓으면 좋을것 같아서 정리해 보려고 한다.


MVC 개념이란 무엇일까?

Spring이란 무엇일까?  SPRING MVC란? 


MVC 개념은 화면에서 보여주는 V(View), 데이터 처리관리는 M(Model)

V(View)와 M(Model) 를 연결시켜주는 C(Controller)  각 첫글자를 따서 MVC 라고 한다.

MVC개념은 User Interface 부분을 담당하는 부분과 실제 처리가 일어나는 부분을 최대한 서로 분리시켜 디자이너와 프로그래머 사이에 종속성을 최대한 줄이기 위한 방법론 중 하나이다. 또한 웹 개발을 하면서 클라이언트에서 요청시 처리 로직을

거쳐 데이타 처리를 하여 화면에 매핑시켜주는 일련의 반복적인 과정을 MVC 개념이라고 하겠다. 


Spring은 간단히 스프링이라 지칭하지만 정확하게는 스프링 프레임워크 (Spring Framework) 라고 하는 것이 정확한 표현이다.

즉, 스프링은 자바 프레임 워크중 한 종류를 말한다.  프레임 워크에는 스트러츠, 스트러츠2, 스프링 등 여러 종류가 있는데, 처음

회사에 들어오기 전에는 스트러츠와 스트러츠2로 웹개발을 했던 기억이 있다. 회사에 들어와서는 스프링 2.5 부터시작해서 3.0

지금은 전자정부 프레임워크를 사용하기까지 다양한 자바 프레임워크를 경험해본 결과... 자바기반의 프레임 워크 중에는 스프링프레임워크가 가장 확장성이 좋고 사용하기 좋은 것 같다.  프레임워크의 버전이 올라갈 수록 개발자가 할 일과 신경쓸일이 줄어드는 것은 분명하다.(단, 잘 설계되어진 프레임워크를 사용한다는 가정)   많은 기능(보안,로그,라이브러리관리 등등) 들을 지원해 주기 때문에 공통/표준 설계자가 처음 프레임워크 설계만 잘해서 준다면 개발자들은 별 신경 없이 개발에만 집중할 수 있다. 토비의 스프링프레임워크 3.1에서는 자바 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 프레임워크라고 정의하고 있다.   프레임워크란 집을 짓는것을 예로 들면 말 그대로 집의 틀을 구성한다는 의미인데 그 틀을 어떻게 구성하느냐에 따라서 살만 붙히면 집이 완성되기 때문에 중요한 부분을 차지하는 것은 분명하다. 스프링 프레임워크를 정리하기엔 너무 많은 내용(POJO,AOP,DI,IoC 등등)들이 있으니 나중에 다시 보도록 하고, 본론으로 들어가 SPRING MVC 패턴이 무엇인지 정리해 보려 한다.


Spring MVC는 위에서 설명한 기본적인 요소 Model,View,Controller외에도 많은 컴포넌트들이 있다.

DispatcherServlet, HandlerMapping, Controller,Interceptor,Viewresolver,View 등 컴포넌트들이 존재하며

각 역활이 명확하게 분리되어 있다.


아래 설명은 각 컴포넌트들의 역활에 대한 설명이다.

 


아래 그림은 스프링MVC 패턴의 흐름을 잘 설명해주는 그림으로 정말 여러번 보았지만 꾀 오랫동안 이해 가지 않았던 MVC흐름도이다. 지금 전체적인 그림은 아니지만 MVC 각 모듈이 어떤 일들을 하면서 진행되는지 알 수 있다.



클라이언트가 요청을 하면 위 그림처럼 DispatcherServlet이 가장 먼저 요청을 받아 어느 Controller에서 일을 진행할지 정하기위해 HandlerMapping을 통해 리턴 받는다. Controller가 정해지면 해당 컨트롤러에서 인터페이스를 호출하고, 인터페이스 구현부를 호출하여 비즈니스 로직(Impl)을 수행하게 된다. 비즈니스 로직 단계에서 필요한 데이터들은 Dao를 호출하여

데이터 처리를 하며 DB에서 가져온 데이터를 Controller단계까지 가져와 화면과 매핑해주게 된다.

이때 데이터들을 담는 통?을 모델(model)이라고 하며 모델에 담겨온 정보들을 View Resolver에서 해당 화면과 매핑하는

작업을 하여 결과값을 리턴 해주고 마지막으로 데이터가 담겨있는 Model을 View로 던져주면 모든 클라이언트 Request 에 대한 Response 작업이 완료되어진다. 크게 클라이언트 요청이 시작되면 Presentation Layer => Business Layer => Data Layer 순으로 흘러가며 작업이 이루어 지는데 간단하게 정리해 보았다. 참고로 위의 그림은 Presentation Layer에서 클라이

언트 요청이 들어왔을때 이루어지는 흐름만 표현되어져 있다.


정리해 본다고 글을 적어보긴 했는데 정리하면서도 느끼는 것이지만 역시나 어렵다.  정리하자면 프레임워크에는 스트러츠, EJB,

스트러츠2, 스프링 등이 있고, 대부분 프로젝트에서 자바기반 프레임워크로는 가장 효츌적인 스프링프레임워크를 사용하고 있다.

물론 전자정부 프레임워크를 도입해 쓰기 시작했지만...

이 스프링프레임워크를 이해하기위해 Spring MVC 패턴에 대해 공부해 보았는데 더 깊은 이해를 위해서는 토비의 스프링프레임워크 3.5를 추천한다. 앞으로 클라우드 기술 표준을 잡기위해 공부해야할 부분이 많이 있는데~  다음에 시간이 되면 스프링프레임워크가 무엇이며 전자정부 프레임워크가 왜 나오게 되었는지에 대해서 간단히 정리해 보도록 하겠다.

Posted by 숏퐁숑
, |

최근에 달린 댓글

글 보관함