화면처리
화면처리 서비스그룹은 업무처리 서비스와 사용자간의 인터페이스를 담당하는 서비스로 사용자 화면 구성 및 사용자 입력 정보 검증 등의 기능을 지원한다.
MVC 패턴의 구조와 장점
MVC 패턴은 애플리케이션의 기능을 Model, View, Controller로 분리하여 UI 코드와 비즈니스 로직의 종속성을 줄이고, 재사용성과 변경 용이성을 높인다. 표준프레임워크에서 “MVC 서비스"는 이 패턴을 활용한 Web MVC Framework를 의미한다.
Bean Validation (JSR-303)
JSR-303(Bean Validation) 스펙은 @Valid 애노테이션을 사용해 모델 객체 필드의 자동 검증을 지원한다. 이를 통해 표준화된 방식으로 애노테이션을 활용한 필드 검증이 가능하다.
스프링 WebFlux와 기존 스프링 웹 프레임워크 비교
스프링 WebFlux는 5.0 버전부터 추가된 리액티브 스택 웹 프레임워크로, 서블릿 API와는 달리 완전한 논블로킹 동작과 Reactive Streams back pressure를 지원한다. 기존의 스프링 웹 MVC와 함께 스프링 프레임워크에 포함되어 있으며, Netty, Undertow 등 다양한 서버에서 실행될 수 있다.
Ajax 지원 서비스
Ajax 지원 서비스는 J2EE 개발자가 쉽게 Ajax 기능을 구현할 수 있도록 AjaxTags 라이브러리를 기반으로 제공하며, 자주 사용하는 기능을 커스텀 태그 형태로 제공한다. 주요 기능으로는 자동완성, 연동된 셀렉트박스, 탭 패널 등이 있으며, 이를 위해 JSP 설정과 Controller에서 AjaxXmlBuilder로 데이터를 가공하여 처리한다.
Internationalization(국제화)
Spring MVC는 Cookie, Session, AcceptHeader를 이용한 LocaleResolver를 제공하며, 다국어 메시지는 ResourceBundleMessageSource를 통해 관리된다. 사용자는 LocaleChangeInterceptor를 통해 언어를 변경하고, JSP에서 <spring:message>
태그로 해당 언어에 맞는 메시지를 표시할 수 있다.
Security Service
입력값 유효성 검증을 위한 기능으로 Jakarta Commons Validator를 선택하여 Spring MVC와 연계해 활용하는 방법을 설명한다. 이를 통해 화면 처리 레이어에서 입력값 검증 기능을 제공하고, Spring Security를 활용한 공통 기반 레이어에서 인증 및 권한과 같은 보안 서비스를 지원한다.
UI Adaptor Service
전자정부 표준프레임워크에서는 Spring MVC Annotation을 기반으로 요청 URI와 Controller 메소드를 매핑하며, 메소드 파라미터로 업무용 DTO 객체를 사용할 수 있도록 가이드한다. UI 솔루션과의 연동 방식은 프로젝트 특성에 맞게 설계해야 하며, 보통 Controller에서 데이터를 DTO 형태로 변환하여 업무 로직으로 넘기는 방식이 많이 사용된다.
Asynchronous request processing
Servlet 3.0과 Spring MVC 3.2 이상에서는 비동기 요청 처리를 통해 요청 쓰레드가 반환된 후에도 내부 쓰레드에서 비동기 작업을 처리할 수 있다. 이를 위해 Callable
, DeferredResult
, WebAsyncTask
등을 사용해 시간이 오래 걸리는 작업을 비동기로 처리하고, 완료 후 응답을 보낼 수 있다.
jQuery 가이드
jQuery는 다양한 UI 기능과 AJAX 요청을 지원하는 JavaScript 라이브러리로, 이를 통해 이벤트 처리, 자동 완성, 탭 등의 기능을 쉽게 구현할 수 있다. AJAX 요청은 $.ajax()
, $.get()
, $.post()
와 같은 메서드를 사용하여 서버와 데이터를 비동기적으로 통신하며, JSON과 같은 형식으로 데이터를 주고받을 수 있다.
WebSocket
WebSocket은 HTTP 환경에서 양방향 통신을 지원하는 Spring 기술로, Spring은 기본적으로 STOMP sub-protocol을 사용한다. Spring Framework 4.0부터 spring-websocket 모듈이 추가되어 복잡한 WebSocket 통신을 지원하며, JSR356(Java WebSocket API)과 호환된다.
UI - bootstrap
Bootstrap은 반응형 웹 디자인을 쉽게 구현하기 위한 프론트엔드 프레임워크로, 다양한 CSS, JavaScript 컴포넌트와 UI 템플릿을 제공하여 빠르게 웹사이트를 구축할 수 있다. 또한 그리드 시스템, 다양한 UI 컴포넌트, 모달과 같은 동적 기능들을 지원하며, 모바일 중심으로 설계되어 다양한 디바이스에서 최적화된 화면을 제공한다.
UX/UI Controller Component
전자정부는 스마트 전자정부 기반 시스템 구축을 위해 UI/UX Controller Component, HTML5, CSS3, JavaScript Module App Framework를 활용하며, jQuery Mobile을 오픈소스로 채택하여 이를 커스터마이징한다. UI 레이어에서는 터치 최적화된 UI 컨트롤러 컴포넌트와 모바일 특화 HTML5 태그, CSS3를 통해 유연한 사용자 환경을 제공하며, JavaScript와 JSON 구조로 효율적인 UX/UI 컨트롤을 지원한다.
HTML5 CSS3.0 JavaScript Module App Framework 기본 활용
전자정부는 효율적인 스마트 전자정부 시스템 구축을 위해 UI/UX Controller Component, HTML5, CSS3, JavaScript Module App Framework를 제공하며, 이 과정에서 jQuery Mobile을 활용하여 모바일 웹 사용자 경험을 최적화한다. Ajax 기반의 페이지 이동 및 다양한 이벤트와 메서드를 지원하여 반응형 모바일 애플리케이션 개발을 용이하게 한다.