<?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.2-ppt DokuWiki" -->
<?xml-stylesheet href="http://www.egovframe.go.kr/wiki/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="http://www.egovframe.go.kr/wiki/feed.php">
        <title>eGovFrame egovframework:rte4.2:ptl</title>
        <description></description>
        <link>http://www.egovframe.go.kr/wiki/</link>
        <image rdf:resource="http://www.egovframe.go.kr/wiki/lib/images/favicon.ico" />
       <dc:date>2025-06-14T18:56:35+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte4.2:ptl:annotation-based_controller&amp;rev=1703136093&amp;do=diff"/>
                <rdf:li rdf:resource="http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte4.2:ptl:easycompany&amp;rev=1704674396&amp;do=diff"/>
                <rdf:li rdf:resource="http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte4.2:ptl:jsr303&amp;rev=1703136093&amp;do=diff"/>
                <rdf:li rdf:resource="http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte4.2:ptl:spel&amp;rev=1704703218&amp;do=diff"/>
                <rdf:li rdf:resource="http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte4.2:ptl:validation&amp;rev=1703136093&amp;do=diff"/>
                <rdf:li rdf:resource="http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte4.2:ptl:web_reactive&amp;rev=1708654963&amp;do=diff"/>
                <rdf:li rdf:resource="http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte4.2:ptl:web_reactive_annotated_controllers&amp;rev=1708917588&amp;do=diff"/>
                <rdf:li rdf:resource="http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte4.2:ptl:web_reactive_core&amp;rev=1708910572&amp;do=diff"/>
                <rdf:li rdf:resource="http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte4.2:ptl:web_reactive_dispatcherhandler&amp;rev=1708910907&amp;do=diff"/>
                <rdf:li rdf:resource="http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte4.2:ptl:web_reactive_functional_endpoints&amp;rev=1708911229&amp;do=diff"/>
                <rdf:li rdf:resource="http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte4.2:ptl:web_reactive_webclient&amp;rev=1708911441&amp;do=diff"/>
                <rdf:li rdf:resource="http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte4.2:ptl:web_servlet&amp;rev=1704674396&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="http://www.egovframe.go.kr/wiki/lib/images/favicon.ico">
        <title>eGovFrame</title>
        <link>http://www.egovframe.go.kr/wiki/</link>
        <url>http://www.egovframe.go.kr/wiki/lib/images/favicon.ico</url>
    </image>
    <item rdf:about="http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte4.2:ptl:annotation-based_controller&amp;rev=1703136093&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-21T05:21:33+00:00</dc:date>
        <title>egovframework:rte4.2:ptl:annotation-based_controller</title>
        <link>http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte4.2:ptl:annotation-based_controller&amp;rev=1703136093&amp;do=diff</link>
        <description>작업중입니다... ControllerAdvice추가예정



개요

스프링 프레임워크는 2.5 버젼 부터 Java 5+ 이상이면 @Controller(Annotation-based Controller)를 개발할 수 있는 환경을 제공한다.

인터페이스 Controller를 구현한 SimpleFormController, MultiActionController 같은 기존의 계층형(Hierarchy) Controller와의 주요 차이점 및 개선점은 아래와 같다.</description>
    </item>
    <item rdf:about="http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte4.2:ptl:easycompany&amp;rev=1704674396&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-01-08T00:39:56+00:00</dc:date>
        <title>egovframework:rte4.2:ptl:easycompany</title>
        <link>http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte4.2:ptl:easycompany&amp;rev=1704674396&amp;do=diff</link>
        <description>개발환경

	*  JDK : JDK 1.8
	*  Eclipse : 4.8.0
	*  Web Container : Tomcat 8.0
	*  DBMS : HSQLDB 2.3.2

설치

1. SVN에서 예제 코드 easycompany 프로젝트를 다운 받습니다. 

이클립스에서 해당 프로젝트를 보면 아래와 같은 구조를 가지고 있습니다.</description>
    </item>
    <item rdf:about="http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte4.2:ptl:jsr303&amp;rev=1703136093&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-21T05:21:33+00:00</dc:date>
        <title>egovframework:rte4.2:ptl:jsr303</title>
        <link>http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte4.2:ptl:jsr303&amp;rev=1703136093&amp;do=diff</link>
        <description>개요

화면처리: validation을 통해 검증방법을 알아보았다.
이전과는 다르게 JSR-303(Bean Validation) 스펙은 자동 검증 방식을 제공한다. @javax.validation.Valid애노테이션을 사용하여 내부적으로(자동으로) 검증이 수행된다.</description>
    </item>
    <item rdf:about="http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte4.2:ptl:spel&amp;rev=1704703218&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-01-08T08:40:18+00:00</dc:date>
        <title>egovframework:rte4.2:ptl:spel</title>
        <link>http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte4.2:ptl:spel&amp;rev=1704703218&amp;do=diff</link>
        <description>개요

Spring 3.0에서 처음 소개된 스프링 전용 표현식 언어로 강력하고 유연하게 사용된다.

SpEL은 빈 오브젝트에 직접 접근할 수 있는 표현식을 이용해서 프로퍼티 값을 능동적으로 가져오는 방법이며 가장 기본적이다. 또한 jsp에서 &lt;spring:eval&gt;태그를 사용하여 SpEL을 적용 할 수도 있다.</description>
    </item>
    <item rdf:about="http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte4.2:ptl:validation&amp;rev=1703136093&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-21T05:21:33+00:00</dc:date>
        <title>egovframework:rte4.2:ptl:validation</title>
        <link>http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte4.2:ptl:validation&amp;rev=1703136093&amp;do=diff</link>
        <description>개요

객체의 유효성 검증을 위해 스프링 프레임워크는 org.springframework.validation.Validator라는 인터페이스를 제공한다.

Validator는 특정 계층에 종속적인 구조가 아니라서, web이나 data-access등 어떤 계층의 객체라도 유효성 검증이 가능하게 한다.

Jakarta Commons Validator나 Valang 같은 외부 Validator들도 Spring 프레임워크에서 사용할 수 있다.

Spring Modules를 이용한 Jakarta Commons Validator 사용 방법에 대해서는 Spring Framework에서 Commons Validator 사용 을 참고하라.…</description>
    </item>
    <item rdf:about="http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte4.2:ptl:web_reactive&amp;rev=1708654963&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-02-23T02:22:43+00:00</dc:date>
        <title>egovframework:rte4.2:ptl:web_reactive</title>
        <link>http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte4.2:ptl:web_reactive&amp;rev=1708654963&amp;do=diff</link>
        <description>개요

스프링 프레임워크, 스프링 웹 MVC를 포함한 기존 웹 프레임워크는 서블릿 API와 서블릿 컨테이터를 위해 개발되었다. 스프링 WebFlux는 5.0 버전부터 추가된 리액티브 스택 웹 프레임워크로서, 서블릿 API와 서블릿 컨테이너를 개발하기 위한 스프링 프레임워크이다.

스프링 웹 MVC를 포함한 기존의 웹 프레임워크와 달리 완전한 논블로킹으로 동작하며 Reactive Streams back pressure를 지원하고 Netty, Undertow, 서블릿 3.1+ 컨테이너 서버에서 실행된다. 웹 프레임워크 모두 스프링 프레임워크에 포함되어 있으며, 원하는 모듈을 선택하여 개발할 수 있다.…</description>
    </item>
    <item rdf:about="http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte4.2:ptl:web_reactive_annotated_controllers&amp;rev=1708917588&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-02-26T03:19:48+00:00</dc:date>
        <title>egovframework:rte4.2:ptl:web_reactive_annotated_controllers</title>
        <link>http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte4.2:ptl:web_reactive_annotated_controllers&amp;rev=1708917588&amp;do=diff</link>
        <description>설명

스프링 WebFlux는 어노테이션 기반 프로그램밍 모델을 지원하기 때문에 @Controller, @RestController 컴포넌트로 요청을 매핑하고, 입력을 받고, 예외처리를 할수 있다. 컨트롤러는 메소드를 여러가지로 활용할 수 있어서 클래스를 상속하거나 인터페이스를 구현하지 않아도 된다.</description>
    </item>
    <item rdf:about="http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte4.2:ptl:web_reactive_core&amp;rev=1708910572&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-02-26T01:22:52+00:00</dc:date>
        <title>egovframework:rte4.2:ptl:web_reactive_core</title>
        <link>http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte4.2:ptl:web_reactive_core&amp;rev=1708910572&amp;do=diff</link>
        <description>설명

스프링-웹 모듈에는 반응형 웹 애플리케이션을 위한 다음과 같은 기본 지원이 포함되어 있다.

	*  서버 요청 처리에는 두 가지 수준의 지원한다.
		*  HttpHandler: 논블로킹 I/O 및 리액티브 스트림 Back Pressure을 사용하는 HTTP 요청을 처리하며, Reactor Netty, Undertow, Tomcat, Jetty 및 모든 Servlet 3.1+ 컨테이너용 어댑터와 함께 사용한다.
		*  WebHandler API: 요청 처리를 위한 약간 더 높은 수준의 범용 웹 API로, 주석이 달린 컨트롤러 및 기능적 엔드포인트와 같은 구체적인 프로그래밍 모델로 작성되어 있다.…</description>
    </item>
    <item rdf:about="http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte4.2:ptl:web_reactive_dispatcherhandler&amp;rev=1708910907&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-02-26T01:28:27+00:00</dc:date>
        <title>egovframework:rte4.2:ptl:web_reactive_dispatcherhandler</title>
        <link>http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte4.2:ptl:web_reactive_dispatcherhandler&amp;rev=1708910907&amp;do=diff</link>
        <description>설명

스프링 웸플럭스도 스프링 MVC와 유사한 프론트 컨트롤러 패턴을 사용한다. 중앙 WebHandler가 받은 요청을 다른 컴포넌트에 위임하는데 DispatcherHandler가 바로 이 중앙 WebHandler다. 이 모델 덕분에 다양한 워크플로우를 지원할 수 있다.

DispatcherHandler는 스프링 설정에 따라 그에 맞는 컴포넌트로 위임한다. DispatcherHandler도 스프링 빈이며 ApplicationContextAware 인터페이스를 구현했기 때문에 실행중인 컨텍스트에 접근할 수 있다. DispatcherHandler 빈을 WebHandler 이름으로 정의하면 WebHttpHandlerBuilder가 감지하고 WebHandler API에서 설명했던 체인에 추가한다.



웹플럭스 애플리케이션에서 사용하는 일반적인 스프링 설정은 다음과 같다.…</description>
    </item>
    <item rdf:about="http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte4.2:ptl:web_reactive_functional_endpoints&amp;rev=1708911229&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-02-26T01:33:49+00:00</dc:date>
        <title>egovframework:rte4.2:ptl:web_reactive_functional_endpoints</title>
        <link>http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte4.2:ptl:web_reactive_functional_endpoints&amp;rev=1708911229&amp;do=diff</link>
        <description>스프링 WebFlux는 경량화된 함수형 프로그램밍 모델을 지원한다. WebFlux.fn이라고 하는 이 모델은 함수로 요청을 라우팅하고 핸들링하기 때문에 불변성(immutability)을 보장한다.

함수형 모델과 어노테이션 모델 중 하나를 선택하면 되는데 둘 다 리액티브 코어를 기반으로 한다.</description>
    </item>
    <item rdf:about="http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte4.2:ptl:web_reactive_webclient&amp;rev=1708911441&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-02-26T01:37:21+00:00</dc:date>
        <title>egovframework:rte4.2:ptl:web_reactive_webclient</title>
        <link>http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte4.2:ptl:web_reactive_webclient&amp;rev=1708911441&amp;do=diff</link>
        <description>스프링 WebFlux는 리액티브, 논블로킹 HTTP 요청을 위한 WebClient를 제공한다. 웹 클라이언트는 리액티브 타입을 사용하는 함수형 API이기 때문에 선언적인(declarative) 프로그래밍이 가능하다. 웹플럭스 클라이언트와 서버는 동일한 논블로킹 코덱으로 요청, 응답을 인코딩, 디코딩한다.</description>
    </item>
    <item rdf:about="http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte4.2:ptl:web_servlet&amp;rev=1704674396&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-01-08T00:39:56+00:00</dc:date>
        <title>egovframework:rte4.2:ptl:web_servlet</title>
        <link>http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte4.2:ptl:web_servlet&amp;rev=1704674396&amp;do=diff</link>
        <description>개요

 

MVC(Model-View-Controller) 패턴은 코드를 기능(역활)에 따라 Model, View, Controller 3가지 요소로 분리한다. 


	*  Model : 어플리케이션의 데이터와 비지니스 로직을 담는 객체이다. 
	*  View : Model의 정보를 사용자에게 표시한다. 하나의 Model을 다양한 View에서 사용할 수 있다.
	*  Controller : Model과 View의 중계역활을 한다. 사용자의 요청을 받아 Model에 변경된 상태를 반영하고, 응답을 위한 View를 선택한다.…</description>
    </item>
</rdf:RDF>
