전자정부 표준 프레임워크_8(실행환경 화면처리레이어)

bitna's study note·2022년 11월 28일

스프링

목록 보기
52/54

11월 28일

1. 실행환경 화면처리 레이어 개요

화면처리 레이어는 업무 프로그램과 사용자 간의 Interface를 담당하는 Layer로서, 즉 클라이언트와 사버와 연결을 담당하는 Layer 이다.
주로 사용자 화면 이라던가 사용자가 입력한 정보가 맞는지 유효성을 검증하는 기능을 제공하고 있다.

화면처리 레이어는 총 5개의 서비스를 제공 하고 있습니다.
-Ajax Support: 비동기식으로 화면을 제어.
-MVC: 화면개발.
-UI Adaptor:상용솔루션과 연계해서 사용할 수 있음.
-Internationlization:다국어 와 국제화 서비스를 제공.
예전에는 다국어 서비스를 제공하기 위해서 지원하고자 하는 언어수에 맞는 페이지를 각각 작성을 했어야 했음.
Spring MVC는 다국어를 지원하기 위하여 LocaleResolver를 이용한다.
-Validation:사용자가 입력한 값이 맞는지 유효성을 검증 함.

2.MVC 흐름


클라이언트 요청이 들어오면-> Dispatcher Servlet에서 요청을 받게 되고 ->HandlerMapping으로 가서 요청에 해당하는 Controller를 찾아서 return을 해주는 역할을 함 -> 해당되는 Controller로 가서 비지니스로직을 수행하고 결과 값을 ModelAndView에 담아서 return을 해줌-> ViewResolver는 view의 name을 받아서 해당되는 view객체(Model)를 return해줌 -> View는 view객체(Model)를 받아서 렌더링 해주는 역할을 함.

3.MVC 설정

3-1.Dispatcher Servlet, ApplicationContext, WebApplicationContext

스프링 MVC를 사용하기 위해서는 Dispatcher Servlet, ApplicationContext, WebApplicationContext를 Web.xml에 설정해줘야 쓸 수 있다.
ContextLoaderListener가 웹어플리케이션이 시작되는 시점에 ApplicationContext를 만들게 되고 ApplicationContext는 persistance와 service layer의 빈을 등록을 해주면 되고 Dispatcher Servlet에 의해서 WebApplicationContext가 생성이됨

3-2.@MVC

과거에는 xml기반으로 빈정보를 일일히 등록을 했다면 이제는 어노테이션을 사용하여 보다 편리한 MVC프로그래밍이 가능해 졌음.

3-2.context:component-scan 설정

@Component,@Service,@Repository,@Controller 가 붙은 클래스들을 읽어들여 ApplicationContext,WebApplicationContext에 빈정보를 저장하고 관리를 할수 있게 되었음.

3-3.HandlerMapping

(1)RequestMappingHandlerMapping
@RequestMapping에 지정된 url과 해당 Controller를 매핑 해줌
(2)SimpleUrlAnotationHandlerMapping
특정 URL에 대해 interceptor를 적용하기 위해서 사용함.
표준프레임워크 3.0부터 mvc:interceptors 가 나와 SimpleUrlAnotationHandlerMapping는 더이상 사용하지 않는다.

3-4.관련 어노테이션

(1)@Controller
해당 클래스가 Controller임을 나타내기 위한 어노테이션
(2)RequestMapping
요청에 대해 어떤 Controller에서 처리할지 위한 어노테이션이다.
(3)RequestParam
Controller 메서드의 파라미터와 웹요청 파라미터를 1:1로 맵핑하기 위한 어노테이션
(4)ModelAttribute
Controller 메서드의 파라미터나 리턴값을 Model 객체와 바인딩(값 하나하나를 쪼개는 행위)하기 위한 어노테이션
(5)SessionAttribute
Model 객체를 Session에 저장하고 사용하기 위한 어노테이션
(6)CommandMap
Controller 메서드의 파라미터를 Map형태로 받을 때 웹요청 파라미터와 맵핑하기 위한 어노테이션
3.2부터는 사용을 자제하고 RequestParam으로 대체됨.

4.Ajax Support

Ajax Support를 하기위해서 jQuery를 사용하고 있는데, jQuery를 사용하게된 이유는 브라우저 호환성을 제공하는 자바스크립트 라이브러리 이기 때문이다. jQuery를 사용하면 간결한 문장의 표현으로 동적으로 화면을 만들어 줄수 있음.

(1)jQuery 함수

$.ajax({
type:"POST" <!--http요청 방식-->
url:"<c:url value='example01.do'/>", <!--request를 전달할 url명-->
content Type:"Application/x-www-form-urlencode; charset=UTF-8", <!--서버로 데이터를 전달할때 content Type-->
dataType:'json' <!--서버로부터 전달 받을 데이터 타입-->
data:{ <!--request에 담아 전달할 data명과 data값-->
 sampleInput:"sampleData"
},
success: function(data, status, jqXHR){
 <!--통신이 정상적일때 해당 함수 실행-->
},
error: function(request, status, error){
 <!--통신이 비정상적일때 해당 함수 실행-->
},
complate: function(jqXHR, status){
 <!--통신의 성공과 실패시 해당 함수 실행-->
}
});

*jqXHR이란?
jQuery의 모든 ajax함수는 XMLHttpRequest객체의 상위 집합을 리턴 받을 수 있다.jqXHR의 함수로 콜백 함수를 정의한다.

5.Validation

웹사이트에서 가입을 하다가 필수 입력값인 id 값을 입력을 하지 않고 가입을 눌렀을 경우에 화면창에 "id는 필수 입력 사항 입니다."라고 뜬경우가 있을것이다. 이러한 기능을 Validation 이라고 한다.
전자정부프레임워크는 Jakarta Commons Validator와 Spring MVC를 연계해서 활용하는 방안을 제공하고 있다.
Jakarta Commons Validator는 자바 뿐만 아니라 자바스크립트로도 제공되어 client-side, server-side의 2곳 모두 검증을 할 수 있다.

profile
좋은개발자가 되기위한 삽질기록 노트

0개의 댓글