<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>아스피린 개발자</title>
    <link>https://uoonleen.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Fri, 10 Apr 2026 10:47:07 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>필로그래머</managingEditor>
    <image>
      <title>아스피린 개발자</title>
      <url>https://t1.daumcdn.net/cfile/tistory/23374D4B590FE23032</url>
      <link>https://uoonleen.tistory.com</link>
    </image>
    <item>
      <title>ES5 : Javascript 정리</title>
      <link>https://uoonleen.tistory.com/86</link>
      <description>&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;ES5 Seminar 정리! &lt;span style=&quot;font-size: 12pt;&quot;&gt;#양재동 코드랩&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;b&gt;1.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;b&gt;Javascript의 기능 (Control)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;- DOM : HTML, CSS 컨트롤&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;- HTML5 API : File, IndexedDB&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;- 그래픽 : SVG, Canvas, WebGL&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;- 통신 : XMLHttpRequest, Socket&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;책 추천 - 몰입 자바스크립트!, EcmaScript6&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;2.&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;함수 형태&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;빌트인(Built-in) function 오브젝트&lt;/b&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;- 내장 함수&lt;/p&gt;&lt;p&gt;&amp;nbsp;- Array.isArray()&lt;/p&gt;&lt;p&gt;&amp;nbsp;- Array.prototype.forEach()&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;function 오브젝트&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;- function book () {}&lt;/p&gt;&lt;p&gt;&amp;nbsp;- var book = function() {...}&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;function 인스턴스&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;- new Book(), new 사용 ( 대문자 사용 )&lt;/p&gt;&lt;p&gt;&amp;nbsp;-&amp;nbsp;&lt;span style=&quot;color: rgb(31, 218, 17);&quot;&gt;Book.prototype의 프로퍼티 사용 (이걸 이해하지 못하면 ES6의 많은 부분을 포기하는 것과 같다!)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(31, 218, 17);&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px; text-align: justify;&quot;&gt;▶&amp;nbsp;&lt;/span&gt;오브젝트와 인스턴스의 차이&lt;/p&gt;&lt;p&gt;&amp;nbsp;- function 오브젝트는 단일 수행이지만 function 인스턴스는 동일한 메소드를 가진 인스턴스를 생성하고 그 값들을 조작하여 수행할 수 있다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;3.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;b&gt;function 오브젝트&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;호출 형태&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp;- function sports() {...};&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&amp;nbsp;- sports();&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px; text-align: justify;&quot;&gt;▶&lt;/span&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&amp;nbsp;함수가 오브젝트여야&amp;nbsp;호출이 가능하다&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px; text-align: justify;&quot;&gt;▶&lt;/span&gt;엔진이 function 타입 키워드를&amp;nbsp;만나면&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;- 빌트인 function 오브젝트의 prototype에 연결된 프로퍼티(call, bind 등)를 결합해&amp;nbsp;function 오브젝트를 알맞게 생성한다.&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;- 이렇게 생성한 오브젝트를 sports 변수에 할당한다.&lt;/p&gt;&lt;p style=&quot;margin-left: 4em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px; text-align: justify;&quot;&gt;▶&lt;/span&gt;&amp;nbsp;function 오브젝트 저장 형태&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;- function 명령어로 생성한 function 오브젝트를 { name : value } 형태로 저장한다.&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;margin-left: 4em;&quot;&gt;ex) { sports : function 오브젝트 }&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;margin-left: 4em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;- 함수를 호출하면 함수 이름으로 저장된 오브젝트를 탐색하고 value 값을 구한 뒤 value 타입이 function 오브젝트이면 호출한다.&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;- javascript에선 타입을 컴파일할&amp;nbsp;때 결정하기 때문에 밑에서 얼마든지 key 값의 타입을 바꿀 수 있다. java나 c++ 같은 경우엔 타입을 프리 컴파일 과정에서 미리 결정을 해서 이런 오류가 발생할 가능성이 적지만 javascript의 자료형은 가변적이기 때문에 조심해야 한다.&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px; text-align: justify;&quot;&gt;▶ 함수가 호출되면 엔진은 { name : {{ name: value }, {..}} } 형태의 프로퍼티를 조합하여 실행 환경을 설정하고 함수 코드를 실행한다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px; text-align: justify;&quot;&gt;따라서 { name : value } 형태에 맞추어 생각을 전환할 필요가 있다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px; text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px; text-align: justify;&quot;&gt;▶ 어찌보면 HTML이나 CSS도 { name : value } 구조라고 볼 수 있다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;div = name&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;element = value&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;class = class&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;id = id&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px; text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;4.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;b&gt;객체지향언어&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;javscript는 EcmaScript 스펙에 나와있듯이&amp;nbsp;객체지향언어이다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;그래서 function 오브젝트를 객체로 인식하고 접근할 필요가 있다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;OOP의 개념을 이해해야 한다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;ES6는 OOP의 개념을 정확히 구현할 수 있도록 환경을 조성했다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;그렇기에 더더욱 OOP 개념에 따라 코드를 작성해야 한다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;5.&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;아키텍처, 메커니즘&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;아키텍처 : Architecture&lt;/p&gt;&lt;p&gt;&amp;nbsp;- 목적을 가진 구조&lt;/p&gt;&lt;p&gt;&amp;nbsp;- 자바스크립트 목적을 달성하기 위한 구조&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;메커니즘 : Mechanism&lt;/p&gt;&lt;p&gt;&amp;nbsp;- 목적을 달성하기 위한 방법&lt;/p&gt;&lt;p&gt;&amp;nbsp;- 목적에 따라 방법, 기준이 달라질 수 있음&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;아키텍처와 메커니즘 이해 필요&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;6.&amp;nbsp;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;javascript 목적&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;javascript는 프로그래밍 언어다. 언어의 목적은 소통이다.&lt;/p&gt;&lt;p&gt;프로그램을 통해 javscript 엔진과&amp;nbsp;소통하자.&amp;nbsp;&lt;/p&gt;&lt;p&gt;문법을 지켜야 소통이 가능하다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;7.&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;function 오브젝트 예제&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;(1) function 오브젝트 생성&lt;/p&gt;&lt;p&gt;- 코드 : function sports(){};&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;(2) sports 오브젝트에 prototype 오브젝트 ㅊㅁ부&lt;/p&gt;&lt;p&gt;- 코드 : {&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;margin-left: 4em;&quot;&gt;&amp;nbsp;sports : {&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;margin-left: 10em;&quot;&gt;prototype : { ... }&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;margin-left: 8em;&quot;&gt;}&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;margin-left: 4em;&quot;&gt;}&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;(3) prototype에 constructor 프로퍼티 첨부&lt;/p&gt;&lt;p&gt;- 코드 : {&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;margin-left: 4em;&quot;&gt;&amp;nbsp;sports : {&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;margin-left: 10em;&quot;&gt;prototype : { ... },&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;margin-left: 10em;&quot;&gt;constructor: sports 전체 참조&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;margin-left: 8em;&quot;&gt;}&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;margin-left: 4em;&quot;&gt;}&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;(4) prototype에 _proto_ 오브젝트 첨부&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;- ES5 스펙에 _proto_를 기술하지 않음&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;- ES6 스펙엔&amp;nbsp;_proto_ 기술, 엔진 사용 정의&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;- ES5 기준에선 표준이 아님&lt;/p&gt;&lt;p&gt;- 코드 : {&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;margin-left: 4em;&quot;&gt;&amp;nbsp;sports : {&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;margin-left: 10em;&quot;&gt;prototype : { ... },&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;margin-left: 10em;&quot;&gt;constructor: sports 전체 참조, __p&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;margin-left: 10em;&quot;&gt;__proto__ : { ... }&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;margin-left: 10em;&quot;&gt;// 엔진이 사용하는 key이기에 개발자는 건드리지 말 것!&lt;/p&gt;&lt;p style=&quot;margin-left: 8em;&quot;&gt;}&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;margin-left: 4em;&quot;&gt;}&lt;/p&gt;&lt;p style=&quot;margin-left: 4em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;(5) 빌트인 Object 오브젝트의 prototype에 연결된 프로퍼티를 결합해 Object 인스턴스를 생성한다. 생성한 Object 인스턴스를 prototype._proto_에 상속한다. (함수를 선언할 때마다 불필요하게 상속하기 때문에 설계 미스이다.) 마지막으로 sports 오브젝트에 _proto_ 오브젝트 첨부한다.&lt;/p&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;- 코드 : {&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;margin-left: 4em;&quot;&gt;&amp;nbsp;sports : {&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;margin-left: 10em;&quot;&gt;prototype : { ... },&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;margin-left: 10em;&quot;&gt;constructor: sports 전체 참조, __p&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;margin-left: 10em;&quot;&gt;__proto__ : {&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;margin-left: 16em;&quot;&gt;Object.prototype.call : { ... },&lt;/p&gt;&lt;p style=&quot;margin-left: 16em;&quot;&gt;Object.prototype.apply&amp;nbsp;: { ... },&lt;/p&gt;&lt;p style=&quot;margin-left: 16em;&quot;&gt;Object.prototype... : { ... }&amp;nbsp; &amp;nbsp;&lt;/p&gt;&lt;p style=&quot;margin-left: 14em;&quot;&gt;&amp;nbsp; &amp;nbsp; }&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;margin-left: 8em;&quot;&gt;}&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;margin-left: 4em;&quot;&gt;}&lt;/p&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;(6) 빌트인 function 오브젝트의 prototype에 연결된 프로퍼티로 function 인스턴스를 생성한 후 __proto__에 첨부한다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;- 코드 : {&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;margin-left: 4em;&quot;&gt;&amp;nbsp;sports : {&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;margin-left: 10em;&quot;&gt;prototype : { ... },&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;margin-left: 10em;&quot;&gt;constructor: sports 전체 참조, __p&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;margin-left: 10em;&quot;&gt;__proto__ : {&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;margin-left: 16em;&quot;&gt;function() {&lt;/p&gt;&lt;p style=&quot;margin-left: 18em;&quot;&gt;Object.prototype.call : { ... },&lt;/p&gt;&lt;p style=&quot;margin-left: 18em;&quot;&gt;Object.prototype.apply&amp;nbsp;: { ... },&lt;/p&gt;&lt;p style=&quot;margin-left: 18em;&quot;&gt;Object.prototype... : { ... }&lt;/p&gt;&lt;p style=&quot;margin-left: 16em;&quot;&gt;}&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;margin-left: 14em;&quot;&gt;&amp;nbsp; &amp;nbsp; }&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;margin-left: 8em;&quot;&gt;}&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;margin-left: 4em;&quot;&gt;}&lt;/p&gt;&lt;p style=&quot;margin-left: 4em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 4em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;(7) Math, JSON, Global Object를 제외한 모든 오브젝트는 prototype이 있다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;8. 내부 프로퍼티 분류&lt;/b&gt;&lt;/p&gt;&lt;p&gt;- 공통 프로퍼티, 선택적 프로퍼티&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px; text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px; text-align: justify;&quot;&gt;▶&lt;/span&gt;공통 프로퍼티 :&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;모든 오브젝트에 공통으로 설정되는 프로퍼티&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px; text-align: justify;&quot;&gt;▶&lt;/span&gt;선택적 프로퍼티 :&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;오브젝트에 따라 선택적으로 설정되는 프로퍼티, 해당되는 오브젝트에 설정&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;9. 함수 정의&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;함수 정의&lt;/p&gt;&lt;p&gt;&amp;nbsp;- 함수가 실행될 수 있도록 javascript 문법에 맞게 작성&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;함수 정의 형태&lt;/p&gt;&lt;p&gt;&amp;nbsp;- 함수 선언문 (function declaration)&lt;/p&gt;&lt;p&gt;&amp;nbsp;- 함수 표현식 (function expression)&lt;/p&gt;&lt;p&gt;&amp;nbsp;- new function(param1, param2, body)&lt;/p&gt;&lt;p&gt;&amp;nbsp;--- 문자열로 작성 -&amp;gt; 해킹 위험&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px; text-align: justify;&quot;&gt;▶&amp;nbsp;&lt;/span&gt;함수 선언문&lt;/p&gt;&lt;p&gt;&amp;nbsp;- function [function] : function 키워드&lt;/p&gt;&lt;p&gt;&amp;nbsp;- 식별자 [String] : 함수 이름&lt;/p&gt;&lt;p&gt;&amp;nbsp;- 파라미터 [Any] : 파라미터 리스트&lt;/p&gt;&lt;p&gt;&amp;nbsp;- 함수 블록 [Object] : 실행 가능한 코드&lt;/p&gt;&lt;p&gt;&amp;nbsp;- 반환 [function] : 생성한 function 오브젝트&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px; text-align: justify;&quot;&gt;▶&amp;nbsp;&lt;/span&gt;함수 표현식&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;- var name = function() {};&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;- function 오브젝트를 생성하여 변수에 할당&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;10. 엔진 해석&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;javascript는 script 언어이다. script 언어는 작성된 코드를 위에서부터 한 줄 씩 해석(컴파일, 실행)하지만 javascript는 조금 다르다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;함수 형태에 따라 해석 순서가 다르고 중간에 있는 코드가 먼저 해석될 수 있다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;먼저 전체 함수 선언문을 차례대로 해석한다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;- function sports(){};&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이어서 차례대로 함수 표현식을 해석한다.&lt;/p&gt;&lt;p&gt;&amp;nbsp;- var sports = function(){};&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;ex)&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style=&quot;color: rgb(212, 212, 212); background-color: rgb(30, 30, 30); font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; line-height: 19px; white-space: pre;&quot;&gt;&lt;div&gt;   &lt;/div&gt;&lt;div style=&quot;margin-left: 2em;&quot;&gt; &lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;window&lt;/span&gt;.&lt;span style=&quot;color: rgb(220, 220, 170);&quot;&gt;onload&lt;/span&gt; = &lt;span style=&quot;color: rgb(86, 156, 214);&quot;&gt;function&lt;/span&gt; &lt;span style=&quot;color: rgb(220, 220, 170);&quot;&gt;sports&lt;/span&gt;() {&lt;/div&gt;&lt;div&gt;        &lt;span style=&quot;color: rgb(86, 156, 214);&quot;&gt;debugger&lt;/span&gt;;&lt;/div&gt;&lt;div&gt;        &lt;span style=&quot;color: rgb(86, 156, 214);&quot;&gt;var&lt;/span&gt; &lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;player&lt;/span&gt; = &lt;span style=&quot;color: rgb(181, 206, 168);&quot;&gt;11&lt;/span&gt;;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;        &lt;span style=&quot;color: rgb(86, 156, 214);&quot;&gt;function&lt;/span&gt; &lt;span style=&quot;color: rgb(220, 220, 170);&quot;&gt;soccer&lt;/span&gt;() {&lt;/div&gt;&lt;div&gt;            &lt;span style=&quot;color: rgb(197, 134, 192);&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;player&lt;/span&gt;;&lt;/div&gt;&lt;div&gt;        } // debugger 줄에서 이미 함수로 해석됨&lt;/div&gt;&lt;p style=&quot;margin-left: 4em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 4em;&quot;&gt;baseball(); // undefined. &lt;/p&gt;&lt;p style=&quot;margin-left: 10em;&quot;&gt; //함수 표현식은 변수에 undefined로 할당되기 때문&lt;/p&gt;&lt;p style=&quot;margin-left: 10em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;div&gt;        &lt;span style=&quot;color: rgb(86, 156, 214);&quot;&gt;var&lt;/span&gt; &lt;span style=&quot;color: rgb(220, 220, 170);&quot;&gt;baseball&lt;/span&gt; = &lt;span style=&quot;color: rgb(86, 156, 214);&quot;&gt;function&lt;/span&gt;() {&lt;/div&gt;&lt;div style=&quot;margin-left: 6em;&quot;&gt; console.log(player)&lt;/div&gt;&lt;div style=&quot;margin-left: 4em;&quot;&gt; }; &lt;/div&gt;&lt;div style=&quot;margin-left: 6em;&quot;&gt; // debugger 줄에서 변수로 해석됨&lt;/div&gt;&lt;br /&gt;&lt;div&gt;        &lt;span style=&quot;color: rgb(220, 220, 170);&quot;&gt;soccer&lt;/span&gt;();&lt;/div&gt;&lt;div&gt;    }&lt;/div&gt;&lt;br /&gt;&lt;div&gt;    &lt;span style=&quot;color: rgb(220, 220, 170);&quot;&gt;sports&lt;/span&gt;();&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px; text-align: justify;&quot;&gt;▶ 코드 해석 단계&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px; text-align: justify;&quot;&gt;(1) 함수 선언문 해석 : 한번 쭉 내려가면서 함수를 탐색한다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px; text-align: justify;&quot;&gt;- function sports(){};&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px; text-align: justify;&quot;&gt;- function soccer(){};&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px; text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px; text-align: justify;&quot;&gt;(2) 변수 초기화&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px; text-align: justify;&quot;&gt;- var player = undefined;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px; text-align: justify;&quot;&gt;- var baseball = undefined;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;(3)&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;var player = 11;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;var baseball = function() {};&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;11. 함수 선언문 오버라이딩&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px; text-align: justify;&quot;&gt;▶ 오버라이딩(Overriding)&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px; text-align: justify;&quot;&gt;- 함수 이름이 같을 때 함수 코드 대체(replace)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px; text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px; text-align: justify;&quot;&gt;▶ 자바스크립트는 파라미터, 수, 데이터 타입을 체크하지 않는다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;모두 { name : value }로 저장하기 때문이다.&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px; text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px; text-align: justify;&quot;&gt;▶ 대체되는 상황&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;(1) 초기화 단계에서 위에서부터 함수 선언문을 function 오브젝트로 생성한다.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;(2) 아래에 같은 이름의 함수 선언문이 있으면 아래의 함수 선언문이 호출된다.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;ex)&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;div style=&quot;color: rgb(212, 212, 212); background-color: rgb(30, 30, 30); font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; line-height: 19px; white-space: pre;&quot;&gt;&lt;div&gt;   &lt;/div&gt;&lt;div style=&quot;margin-left: 2em;&quot;&gt; &lt;span style=&quot;color: rgb(156, 220, 254);&quot;&gt;window&lt;/span&gt;.&lt;span style=&quot;color: rgb(220, 220, 170);&quot;&gt;onload&lt;/span&gt; = &lt;span style=&quot;color: rgb(86, 156, 214);&quot;&gt;function&lt;/span&gt; &lt;span style=&quot;color: rgb(220, 220, 170);&quot;&gt;sports&lt;/span&gt;() {&lt;/div&gt;&lt;div&gt;        &lt;span style=&quot;color: rgb(86, 156, 214);&quot;&gt;function&lt;/span&gt; &lt;span style=&quot;color: rgb(220, 220, 170);&quot;&gt;soccer&lt;/span&gt;() {&lt;/div&gt;&lt;div&gt;            &lt;span style=&quot;color: rgb(78, 201, 176);&quot;&gt;console&lt;/span&gt;.&lt;span style=&quot;color: rgb(220, 220, 170);&quot;&gt;log&lt;/span&gt;(&lt;span style=&quot;color: rgb(206, 145, 120);&quot;&gt;'축구1'&lt;/span&gt;);&lt;/div&gt;&lt;div&gt;        };&lt;/div&gt;&lt;div&gt;        &lt;/div&gt;&lt;div&gt;        &lt;span style=&quot;color: rgb(220, 220, 170);&quot;&gt;soccer&lt;/span&gt;();&lt;/div&gt;&lt;br /&gt;&lt;div&gt;        &lt;span style=&quot;color: rgb(86, 156, 214);&quot;&gt;function&lt;/span&gt; &lt;span style=&quot;color: rgb(220, 220, 170);&quot;&gt;soccer&lt;/span&gt;() {&lt;/div&gt;&lt;div&gt;            &lt;span style=&quot;color: rgb(78, 201, 176);&quot;&gt;console&lt;/span&gt;.&lt;span style=&quot;color: rgb(220, 220, 170);&quot;&gt;log&lt;/span&gt;(&lt;span style=&quot;color: rgb(206, 145, 120);&quot;&gt;'축구2'&lt;/span&gt;);&lt;/div&gt;&lt;div&gt;        }&lt;/div&gt;&lt;div&gt;    }&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;12. 함수 파라미터&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;파라미터(Parameter) 상호 관계&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;- 매개 변수&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;- 호출하는 함수 : 값 전송&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;- 호출받는 함수 : 전송된 값을 받음&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px; text-align: justify;&quot;&gt;파라미터 작성&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px; text-align: justify;&quot;&gt;- 호출하는 함수의 파라미터에 값 작성&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px; text-align: justify;&quot;&gt;- 호출받는 함수의 파라미터에 이름 작성&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px; text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px; text-align: justify;&quot;&gt;파라미터 값 처리&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px; text-align: justify;&quot;&gt;- 호출한 함수에서 보낸 값을 호출 받는 함수의 순서에 따라 처리&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;(엔진은 파라미터 순서로 값을 mapping 한다.)&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px; text-align: justify;&quot;&gt;파라미터 수가 유동적이라면 arguments를 사용해도 된다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px; text-align: justify;&quot;&gt;arguments[0] : 파라미터의 첫번째 값&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px; text-align: justify;&quot;&gt;그러나 ES6부터 rest parameter 문법이 생겼고 arguments는 거의 쓰지 않는다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px; text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px; text-align: justify;&quot;&gt;▶&amp;nbsp; arguments 값 반환&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;호출한 함수의 파라미터 값 타입 - 문자열, 숫자, 배열, 오브젝트 등&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;매커니즘&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;- 파라미터 순서에서 0부터 인덱스를 부여하여 key로 사용하고&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&amp;nbsp; 파라미터로 받은 값을 value에 설정한다&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;- { 0 : value, 1 : value }&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;* 결론 : for()문 사용&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;- 파라미터가 배열일 때 for~in 문으로 읽으면 length 프로퍼티를 제외시키는 코드가 필요하기 때문이다.&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;Array-like&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;- key 값이 0부터 1씩 증가&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;- length 프로퍼티가 있어야 함&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px; text-align: justify;&quot;&gt;- 객체지만 인덱스값을 가지고 증가하기에 거의 배열 같은 친구&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px; text-align: justify;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 4em;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px; text-align: justify;&quot;&gt;&lt;b&gt;=&amp;gt;&amp;nbsp;&lt;/b&gt;이러한 연유로 ES6에선 for~of 문법이 나오게 된다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px; text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px; text-align: justify;&quot;&gt;▶ 엔진 처리&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;(1) 함수 호출&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;(2) 파라미터에 값 할당&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;(3) arguments 오브젝트 생성&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;(4) arguments 오브젝트에 파라미터 값 설정&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;(5) 함수 코드 실행&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;b&gt;12. 스코프&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;Scope : 함수가 실행될 때 영향을 받는 범위.&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;ex) indexOf()의 스코프&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;(1) indexOf()는 String 오브젝트에 존재&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;- String 오브젝트가 indexOf()의 스코프&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;- indexOf()는 문자열을 처리하는 String 오브젝트의 영향을 받음&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;(2) Number 오브젝트에서 indexOf()를 호출하면 에러&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;Number 오브젝트에 indexOf()가 없기 때문이다.&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;Number 오브젝트가 indexOf()의 스코프가 아니기 때문이다.&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;▶ 사용 목적&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;(1) 범위 제한&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 4em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;- 신속한 검색 및 접근&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 4em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;- 스코프 안에서 우선 검색&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;(2) 같은 프로퍼티 이름 사용 가능&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 4em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;- String 오브젝트의 indexOf()&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 4em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;- Array 오브젝트의 indexOf()&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;(3) 오브젝트로 보면 오브젝트가 다르지만 함수에서 보면 스코프가 다르다. 실행될 때 함수의 스코프에서 검색하며 함수 안에서 밖으로 나가는 개념이다.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;▶ 스코프 구조&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;- function 오브젝트를 생성할 때.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;- 함수를 호출할 때 설정하는 게 아니다. 이를 정적 스코프라고 함.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;- function 안의 코드에 대해서는 구조를 만들지 않는다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;*참고 : 동적 스코프란 함수를 호출할 때 설정하는 스코프를 의미한다. ES5에서 유일하게 동적 스코프를 허용하는 함수가 eval()다. 함수를 호출할 때마다 스코프를 형성하기 때문에 부담스럽다.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;b&gt;13. 글로벌 프로젝트&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;프로그램의 시작점&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;- 빌트인 오브젝트&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;글로벌 오브젝트 특성&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;(1) 전체 프로그램을 통해 하나만 존재&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;- 전체 프로그램 : 모든 &amp;lt;script&amp;gt;에 작성한 코드&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;(2) 오브젝트 이름을 작성하지 않고 함수를 호출하면 글로벌 오브젝트로 간주&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;글로벌 오브젝트 생성&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;(1) 첫 번째 &amp;lt;script&amp;gt;에서 한 번만 생성&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;- 자바스크립트 실행 환경 설정&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;(2) &amp;lt;script&amp;gt;의 프로그램 실행 전에 생성&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;new 사용 불가&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&amp;nbsp;- 인스턴스 생성 불가&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;▶ 글로벌 스코프&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 16px; color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;;&quot;&gt;- 전체를 통해 하나만 존재하므로 스코프도 하나&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 16px; color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;;&quot;&gt;- 글로벌 오브젝트와 글로벌 스코프가 같음&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 16px; color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;;&quot;&gt;- 스코프가 전체이므로 모든 코드에서 사용 가능&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 16px; color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 16px; color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;;&quot;&gt;* 최상위 스코프&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 4em;&quot;&gt;&lt;span style=&quot;font-size: 16px; color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;;&quot;&gt;- 함수에서 보면 최종 검색 스코프&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 4em;&quot;&gt;&lt;span style=&quot;font-size: 16px; color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;;&quot;&gt;- 검색한 프로퍼티가 없으면 undefined 반환&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;▶ 지역/글로벌 함수&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;- 지역함수 : 함수 안에서 var 키워드를 사용한 함수와 함수 선언문&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;- strict&amp;nbsp;모드일 때 -&amp;gt; var 키워드를 사용하지 않고 함수를 선언하면 에러 발생&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;* 글로벌에서 var 키워드를 사용하지 않으면 delete가 실행된다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;* 되도록 글로벌, 지역에 관계없이 var 키워드를 사용하자.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;▶ 변수 사용(접근)&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;- 글로벌 변수 : 어느 위치에서도 변수 사용 가능&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;- 지역 변수&amp;nbsp;: 함수 안으로 들어가야 변수 접근 가능. 함수 외부에서 직접 사용 불가&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;b&gt;14. 바인딩&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;바인딩(binding)&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-size: 16px; color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;;&quot;&gt;&amp;nbsp;구조적으로 결속된 상태로 만드는 것&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;대상 - 오브젝트와 프로퍼티 이름&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;var get = {&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;... qty : value,&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;... price: value&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;};&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;바인딩 목적&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;- 스코프 결정&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;- 스코프에서 이름 식별&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;바인딩 시점 분류&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;- 정적 바인딩(Lexical, Static Binding)&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;- 동적 바인딩(Dynamic Binding)&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;스코프 체인&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;- 스코프가 상하구조로 연결된 개념/구조&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;- 스코프 체인을 사용하여 근접한 스코프에서 프로퍼티(함수, 변수) 검색&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;- ES3에서 채용&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;ES5에서 scope chain&amp;nbsp;개념이 폐지되었다.&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;- 렉시컬 환경(Lexical Environment) 개념 사용&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;▶ 바인딩 시점&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;* 정적 바인딩&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;(1) 초기화 단계에서 바인딩&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;(2) 함수 선언문 이름으로 바인딩&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;(3)&amp;nbsp;변수, 함수 표현식 이름으로 바인딩&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;(4)&amp;nbsp;대부분 정적 바인딩&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;(5)&amp;nbsp;값은 바인딩 대상이 아님&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;* 동적 바인딩&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;- 실행 단계에서 바인딩&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;- eval() 함수, with 문&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;▶ 바인딩 시점의 중요성&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;- 바인딩할 때 스코프가 결정되기 때문이다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;b&gt;* function 오브젝트 생성 시점에 스코프가 결정된다.&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - 인식한 스코프를 [[Scope]]에 설정하고&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - 정적 바인딩은 [[Scope]]를 스코프로 사용한다.&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - 스코프는 변경되지 않는다.&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;b&gt;* 같은 단계의 모든 함수의 스코프가 같다.&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;▶ 프로퍼티 검색 방법&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;* [[Scope]] 프로퍼티에서 검색&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;엔진 해석 순서&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;-&amp;gt; 변수 생성 및 함수 생성 (key 값) -&amp;gt; 스코프 설정 -&amp;gt; (value) 값 할당 -&amp;gt; 함수 호출 -&amp;gt; 파라미터 값 할당 및 arguments 생성 -&amp;gt; 함수 실행&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;16. 렉시컬 환경&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;(1) 함수가 사용할 함수, 변수를 렉시컬 환경에 설정한다.&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 4em;&quot;&gt;- 오브젝트, 변수, 다른 함수 참조가 가능하다.&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;(2) 함수가 구조적 환경에서&amp;nbsp;&lt;b&gt;독립적으로 실행&lt;/b&gt;하기 위한 매커니즘 제공&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;초기화 단계에서 해석한 모든 함수와 변수를 { key : value } 형태로 저장한다.&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;▶ 렉시컬 환경 생성 : function, with, try ~ catch 문에서 생성됨&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 4em;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;▶ 렉시컬 환경 구성 형태&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 4em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;- 렉시컬 환경(LE) = {&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 6em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;... 환경 레코드(ER: Environment Record) : {&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 8em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;sports: &quot;농구&quot;,&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 8em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;member: &quot;5명&quot;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 6em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;}&amp;nbsp;,&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 6em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;...외부&amp;nbsp;렉시컬 환경 참조&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 6em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;(OLER: Outer Lexical Environment Reference) : {&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 8em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;play: function() {},&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 8em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;values: [12, 34, 56]&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 6em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;}&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 4em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;}&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;▶ 외부 렉시컬 환경 참조&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 4em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 4em;&quot;&gt;장점&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 4em;&quot;&gt;- 근접한 렉시컬 환경의 논리적 연결을 통해, 현재 렉시컬 환경에 영향을 미치지 않으면서, 1단계 밖 스코프로 이동하지 않고 프로퍼티 사용&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 4em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;▶ 검색 메커니즘&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 4em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;1. 프로퍼티 검색 순서 방법&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;▶ 글로벌 환경&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 4em;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;- 글로벌 오브젝트를 위한 렉시컬 환경&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 4em;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;- 렉시컬 환경과 형태가 같음&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 4em;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 4em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;특징&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 4em;&quot;&gt;- 동적으로 함수와 변수 바인딩&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 4em;&quot;&gt;- 함수에서 var 키워드를 사용하지 않고 함수/변수를 사용&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 4em;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 4em;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;b&gt;17. 실행 콘텍스트&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;생성 시점&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&amp;nbsp;- 실행할 수 있는 코드를 만났을 때&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;실행할 수 있는 코드 유형&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&amp;nbsp;- 함수 코드(function code)&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&amp;nbsp;- 글로벌 코드(global code)&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&amp;nbsp;- eval 코드(eval code)&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;코드 유형 분리 이유&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&amp;nbsp;- 실행 컨텍스트에서 처리 방법과 환경이 다르기 때문이다.&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&amp;nbsp;- 함수 코드 : 렉시컬 환경&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&amp;nbsp;- 글로벌 코드 : 글로벌 환경&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&amp;nbsp;- eval 코드 : 동적 환경&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;18. 환경 컴포넌트&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;환경 컴포넌트 구성&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&amp;nbsp;- 렉시컬 환경 컴포넌트와 변수 환경 컴포넌트 지칭&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;19 . this 바인딩 컴포넌트&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;목적&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&amp;nbsp;- this로, 호출한 함수가 속한 오브젝트의 프로퍼티에 접근&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;접근 메커니즘&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&amp;nbsp;1. 호출한 함수가 속한 오브젝트를 참조할 수 있도록 this 바인딩 컴포넌트에 호출된 함수가 속한 오브젝트 참조 설정&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&amp;nbsp;2. obj.sports() 형태에서 this로 obj 참조&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&amp;nbsp;3. obj의 프로퍼티가 변경되면 동적으로 참조&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&amp;nbsp;4. obj를 this 바인딩 컴포넌트에서 참조할 수 있도록 설정&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;▶ this와 strict 모드&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;1. 글로벌&amp;nbsp;오브젝트에서 오브젝트를 작성하지 않고 함수를 호출하면&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;- this 바인딩 컴포넌트에는 undefined가 설정된다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;- strict 모드가 아닐 경우에는&amp;nbsp;this가&amp;nbsp;글로벌 오브젝트인 window를 참조한다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;color: rgb(212, 212, 212); background-color: rgb(30, 30, 30); font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; line-height: 19px; white-space: pre;&quot;&gt;&lt;div&gt;      &lt;/div&gt;&lt;div style=&quot;margin-left: 4em;&quot;&gt; &lt;span style=&quot;color: #569cd6;&quot;&gt;var&lt;/span&gt; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;sports&lt;/span&gt; = {&lt;/div&gt;&lt;div&gt;            &lt;span style=&quot;color: #9cdcfe;&quot;&gt;value:&lt;/span&gt; &lt;span style=&quot;color: #b5cea8;&quot;&gt;123&lt;/span&gt;,&lt;/div&gt;&lt;br /&gt;&lt;div&gt;            &lt;span style=&quot;color: #dcdcaa;&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;color: #9cdcfe;&quot;&gt;:&lt;/span&gt; &lt;span style=&quot;color: #569cd6;&quot;&gt;function&lt;/span&gt;() {&lt;/div&gt;&lt;div&gt;                &lt;span style=&quot;color: #569cd6;&quot;&gt;var&lt;/span&gt; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;value&lt;/span&gt; = &lt;span style=&quot;color: #b5cea8;&quot;&gt;456&lt;/span&gt;;&lt;/div&gt;&lt;div&gt;                &lt;span style=&quot;color: #4ec9b0;&quot;&gt;console&lt;/span&gt;.&lt;span style=&quot;color: #dcdcaa;&quot;&gt;log&lt;/span&gt;(&lt;span style=&quot;color: #569cd6;&quot;&gt;this&lt;/span&gt; === &lt;span style=&quot;color: #9cdcfe;&quot;&gt;window&lt;/span&gt;);&lt;/div&gt;&lt;div&gt;                &lt;span style=&quot;color: #4ec9b0;&quot;&gt;console&lt;/span&gt;.&lt;span style=&quot;color: #dcdcaa;&quot;&gt;log&lt;/span&gt;(&lt;span style=&quot;color: #569cd6;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #9cdcfe;&quot;&gt;value&lt;/span&gt;);&lt;/div&gt;&lt;div&gt;                &lt;/div&gt;&lt;div&gt;            }&lt;/div&gt;&lt;div&gt;        };&lt;/div&gt;&lt;br /&gt;&lt;div&gt;        &lt;span style=&quot;color: #569cd6;&quot;&gt;var&lt;/span&gt; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;comp&lt;/span&gt; = &lt;span style=&quot;color: #9cdcfe;&quot;&gt;sports&lt;/span&gt;.&lt;span style=&quot;color: #9cdcfe;&quot;&gt;get&lt;/span&gt;;&lt;/div&gt;&lt;div&gt;        &lt;span style=&quot;color: #9cdcfe;&quot;&gt;sports&lt;/span&gt;.&lt;span style=&quot;color: #dcdcaa;&quot;&gt;get&lt;/span&gt;();&lt;/div&gt;&lt;div&gt;        &lt;span style=&quot;color: #dcdcaa;&quot;&gt;comp&lt;/span&gt;(); &lt;span style=&quot;color: #608b4e;&quot;&gt;// 이 경우 this 컴포넌트는 use strict 모드가 아니기&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-left: 10em;&quot;&gt;&lt;span style=&quot;color: #608b4e;&quot;&gt; 때문에 global oject에 바인딩된다.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #608b4e;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;20. Constructor&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;▶&amp;nbsp;&lt;/span&gt;Constructor 프로퍼티&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;- Function 오브젝트를 생성할 때 설정되며&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;- 생성하는 Function 오브젝트를 참조하도록 설정&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;- prototype에 연결되어 있음&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;개인 경험&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;- constructor가 없더라도 인스턴스가 생성됨&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;- 엔진에서 이를 고려하여 생성하는 것으로 생각됨&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;- 하지만 필요하지 않다는 의미는 아님&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;- ES6에서 constructor가 중요하므로 이해가 필요하다.&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 6em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;▶ property&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;- 목적 :&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 4em;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;(1) 프로퍼티 연결을 통한 프로퍼티 확장&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 4em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;(2) 생성한 각 인스턴스에서 prototype의 프로퍼티 공유&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 4em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;(3) 상속 : 다른 function 인스턴스를 연결&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 4em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;- 프로퍼티 확장&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 4em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;(1) prototype에 프로퍼티 {key : value}를 연결하여 확장&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 4em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;- 프로퍼티 공유&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 4em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;(1) prototype에 연결된 프로퍼티로 인스턴스 생성&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 4em;&quot;&gt;&lt;font color=&quot;#333333&quot; face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;(2) 인스턴스에서 prototype에 연결된 프로퍼티 값 공유&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify; margin-left: 2em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;21. 오브젝트 반환&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;new 연산자로 인스턴스를 생성할 때&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&amp;nbsp;- 생성자 함수에 return 문을 작성하지 않으면 인스턴스를 반환한다.&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&amp;nbsp;- 생성자 함수에 return 문을 작성하면 표현식 평가 결과에 따라 인스턴스가 반환되지 않을 수도 있다.&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;22. call()과 this&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;- 예제&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style=&quot;color: rgb(212, 212, 212); background-color: rgb(30, 30, 30); font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; line-height: 19px; white-space: pre;&quot;&gt;&lt;br /&gt;&lt;div&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;var&lt;/span&gt; &lt;span style=&quot;color: #dcdcaa;&quot;&gt;get&lt;/span&gt; = &lt;span style=&quot;color: #569cd6;&quot;&gt;function&lt;/span&gt;(&lt;span style=&quot;color: #9cdcfe;&quot;&gt;value&lt;/span&gt;) {&lt;/div&gt;&lt;div&gt;    &lt;span style=&quot;color: #c586c0;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #569cd6;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #9cdcfe;&quot;&gt;base&lt;/span&gt; * &lt;span style=&quot;color: #569cd6;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #9cdcfe;&quot;&gt;rate&lt;/span&gt; + &lt;span style=&quot;color: #9cdcfe;&quot;&gt;value&lt;/span&gt;;&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;var&lt;/span&gt; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;result&lt;/span&gt; = &lt;span style=&quot;color: #9cdcfe;&quot;&gt;get&lt;/span&gt;.&lt;span style=&quot;color: #dcdcaa;&quot;&gt;call&lt;/span&gt;({&lt;span style=&quot;color: #9cdcfe;&quot;&gt;base:&lt;/span&gt; &lt;span style=&quot;color: #b5cea8;&quot;&gt;20&lt;/span&gt;, &lt;span style=&quot;color: #9cdcfe;&quot;&gt;rate:&lt;/span&gt; &lt;span style=&quot;color: #b5cea8;&quot;&gt;30&lt;/span&gt;}, &lt;span style=&quot;color: #b5cea8;&quot;&gt;50&lt;/span&gt;)&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;console&lt;/span&gt;.&lt;span style=&quot;color: #dcdcaa;&quot;&gt;log&lt;/span&gt;(&lt;span style=&quot;color: #9cdcfe;&quot;&gt;result&lt;/span&gt;);&lt;/div&gt;&lt;div style=&quot;color: rgb(212, 212, 212); background-color: rgb(30, 30, 30); font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; line-height: 19px; white-space: pre;&quot;&gt;&lt;br /&gt;&lt;/div&gt;/////////////////////////////////////////////////////////////////&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;var&lt;/span&gt; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;obj&lt;/span&gt; = {&lt;span style=&quot;color: #9cdcfe;&quot;&gt;value:&lt;/span&gt; &lt;span style=&quot;color: #b5cea8;&quot;&gt;100&lt;/span&gt;};&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;var&lt;/span&gt; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;values&lt;/span&gt; = [&lt;span style=&quot;color: #b5cea8;&quot;&gt;1&lt;/span&gt;,&lt;span style=&quot;color: #b5cea8;&quot;&gt;2&lt;/span&gt;,&lt;span style=&quot;color: #b5cea8;&quot;&gt;3&lt;/span&gt;].&lt;span style=&quot;color: #dcdcaa;&quot;&gt;map&lt;/span&gt;(&lt;span style=&quot;color: #569cd6;&quot;&gt;function&lt;/span&gt;(&lt;span style=&quot;color: #9cdcfe;&quot;&gt;el&lt;/span&gt;, &lt;span style=&quot;color: #9cdcfe;&quot;&gt;index&lt;/span&gt;) {&lt;/div&gt;&lt;div&gt;    &lt;span style=&quot;color: #c586c0;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;el&lt;/span&gt; + &lt;span style=&quot;color: #569cd6;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #9cdcfe;&quot;&gt;value&lt;/span&gt;;&lt;/div&gt;&lt;div&gt;}, &lt;span style=&quot;color: #9cdcfe;&quot;&gt;obj&lt;/span&gt;); &lt;span style=&quot;color: #608b4e;&quot;&gt;// 두번째 파라미터는 this가 참조되는 주소를 의미한다.&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;console&lt;/span&gt;.&lt;span style=&quot;color: #dcdcaa;&quot;&gt;log&lt;/span&gt;(&lt;span style=&quot;color: #9cdcfe;&quot;&gt;values&lt;/span&gt;);&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;/div&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;div style=&quot;color: rgb(212, 212, 212); background-color: rgb(30, 30, 30); font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; line-height: 19px; white-space: pre;&quot;&gt;&lt;br /&gt;&lt;div&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;var&lt;/span&gt; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;sports&lt;/span&gt; = {&lt;/div&gt;&lt;div&gt;    &lt;span style=&quot;color: #9cdcfe;&quot;&gt;value:&lt;/span&gt; &lt;span style=&quot;color: #b5cea8;&quot;&gt;123&lt;/span&gt;,&lt;/div&gt;&lt;div&gt;    &lt;span style=&quot;color: #9cdcfe;&quot;&gt;soccer:&lt;/span&gt; {&lt;/div&gt;&lt;div&gt;        &lt;span style=&quot;color: #9cdcfe;&quot;&gt;value:&lt;/span&gt; &lt;span style=&quot;color: #b5cea8;&quot;&gt;456&lt;/span&gt;,&lt;/div&gt;&lt;div&gt;        &lt;span style=&quot;color: #dcdcaa;&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;color: #9cdcfe;&quot;&gt;:&lt;/span&gt; &lt;span style=&quot;color: #569cd6;&quot;&gt;function&lt;/span&gt;() {&lt;/div&gt;&lt;div&gt;            &lt;span style=&quot;color: #c586c0;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #569cd6;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #9cdcfe;&quot;&gt;value&lt;/span&gt;;&lt;/div&gt;&lt;div&gt;        }&lt;/div&gt;&lt;div&gt;    }&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;var&lt;/span&gt; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;result&lt;/span&gt; = &lt;span style=&quot;color: #9cdcfe;&quot;&gt;sports&lt;/span&gt;.&lt;span style=&quot;color: #9cdcfe;&quot;&gt;soccer&lt;/span&gt;.&lt;span style=&quot;color: #9cdcfe;&quot;&gt;get&lt;/span&gt;.&lt;span style=&quot;color: #dcdcaa;&quot;&gt;call&lt;/span&gt;(&lt;span style=&quot;color: #9cdcfe;&quot;&gt;sports&lt;/span&gt;);&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;console&lt;/span&gt;.&lt;span style=&quot;color: #dcdcaa;&quot;&gt;log&lt;/span&gt;(&lt;span style=&quot;color: #9cdcfe;&quot;&gt;result&lt;/span&gt;); &lt;span style=&quot;color: #608b4e;&quot;&gt;// 123&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;var&lt;/span&gt; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;result&lt;/span&gt; = &lt;span style=&quot;color: #9cdcfe;&quot;&gt;sports&lt;/span&gt;.&lt;span style=&quot;color: #9cdcfe;&quot;&gt;soccer&lt;/span&gt;.&lt;span style=&quot;color: #9cdcfe;&quot;&gt;get&lt;/span&gt;.&lt;span style=&quot;color: #dcdcaa;&quot;&gt;call&lt;/span&gt;(&lt;span style=&quot;color: #9cdcfe;&quot;&gt;sports&lt;/span&gt;.&lt;span style=&quot;color: #9cdcfe;&quot;&gt;soccer&lt;/span&gt;);&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;console&lt;/span&gt;.&lt;span style=&quot;color: #dcdcaa;&quot;&gt;log&lt;/span&gt;(&lt;span style=&quot;color: #9cdcfe;&quot;&gt;result&lt;/span&gt;); &lt;span style=&quot;color: #608b4e;&quot;&gt;// 456&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;23. bind()와 this&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;- 예제&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;div style=&quot;color: rgb(212, 212, 212); background-color: rgb(30, 30, 30); font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; line-height: 19px; white-space: pre;&quot;&gt;&lt;br /&gt;&lt;div&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;var&lt;/span&gt; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;el&lt;/span&gt; = &lt;span style=&quot;color: #9cdcfe;&quot;&gt;document&lt;/span&gt;.&lt;span style=&quot;color: #dcdcaa;&quot;&gt;getElementById&lt;/span&gt;(&lt;span style=&quot;color: #ce9178;&quot;&gt;'clickID'&lt;/span&gt;);&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;var&lt;/span&gt; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;sports&lt;/span&gt; = {&lt;/div&gt;&lt;div&gt;    &lt;span style=&quot;color: #9cdcfe;&quot;&gt;value:&lt;/span&gt; &lt;span style=&quot;color: #b5cea8;&quot;&gt;123&lt;/span&gt;&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span style=&quot;color: #9cdcfe;&quot;&gt;el&lt;/span&gt;.&lt;span style=&quot;color: #9cdcfe;&quot;&gt;onclick&lt;/span&gt; = &lt;span style=&quot;color: #9cdcfe;&quot;&gt;show&lt;/span&gt;.&lt;span style=&quot;color: #dcdcaa;&quot;&gt;bind&lt;/span&gt;(&lt;span style=&quot;color: #9cdcfe;&quot;&gt;sports&lt;/span&gt;, &lt;span style=&quot;color: #9cdcfe;&quot;&gt;el&lt;/span&gt;);&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #608b4e;&quot;&gt;// 두번째 파라미터는 해당 함수의 첫번째 파라미터로 간다.&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;function&lt;/span&gt; &lt;span style=&quot;color: #dcdcaa;&quot;&gt;show&lt;/span&gt;(&lt;span style=&quot;color: #9cdcfe;&quot;&gt;element&lt;/span&gt;, &lt;span style=&quot;color: #9cdcfe;&quot;&gt;event&lt;/span&gt;) {&lt;/div&gt;&lt;div&gt;    &lt;span style=&quot;color: #4ec9b0;&quot;&gt;console&lt;/span&gt;.&lt;span style=&quot;color: #dcdcaa;&quot;&gt;log&lt;/span&gt;(&lt;span style=&quot;color: #9cdcfe;&quot;&gt;element&lt;/span&gt;.&lt;span style=&quot;color: #9cdcfe;&quot;&gt;textContent&lt;/span&gt;);&lt;/div&gt;&lt;div&gt;    &lt;span style=&quot;color: #4ec9b0;&quot;&gt;console&lt;/span&gt;.&lt;span style=&quot;color: #dcdcaa;&quot;&gt;log&lt;/span&gt;(&lt;span style=&quot;color: #9cdcfe;&quot;&gt;event&lt;/span&gt;.&lt;span style=&quot;color: #9cdcfe;&quot;&gt;target&lt;/span&gt;.&lt;span style=&quot;color: #9cdcfe;&quot;&gt;id&lt;/span&gt;);&lt;/div&gt;&lt;div&gt;    &lt;span style=&quot;color: #4ec9b0;&quot;&gt;console&lt;/span&gt;.&lt;span style=&quot;color: #dcdcaa;&quot;&gt;log&lt;/span&gt;(&lt;span style=&quot;color: #569cd6;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #9cdcfe;&quot;&gt;value&lt;/span&gt;);&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;24. 캡슐화&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;캡슐화&lt;/p&gt;&lt;p&gt;- 객체의 메서드와 프로퍼티를 외부에 숨김&lt;/p&gt;&lt;p&gt;- 처리 방법은 숨기고 사용할 수 있는 메서드와 파라미터를 외부에 공개&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;자바스크립트의 캡슐화&lt;/p&gt;&lt;p&gt;- 함수 안의 함수를 외부에서 호출 불가하게 하기&lt;/p&gt;&lt;p&gt;- 지역 변수 값을 외부에서 접근 불가하게 하기&lt;/p&gt;&lt;p&gt;- source가 오픈되는 것과 exe 파일의 차이가 있음&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;25. 다형성&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;자바스크립트의 다형성&lt;/p&gt;&lt;p&gt;- 파라미터 수와 데이터 타입에 영향을 받지 않음&lt;/p&gt;&lt;p&gt;- 메소드 이름이 같으면 나중에 작성한 것으로 대체됨&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;26. 상속(유전)&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;상속(유전)&lt;/p&gt;&lt;p&gt;- 상속의 목적은 객체의 재사용에 있다.&lt;/p&gt;&lt;p&gt;- 목적에 맞는 객체를 내 객체에 포함시키는 것&lt;/p&gt;&lt;p&gt;- 다중상속&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;자바스크립트의 상속(유전)&lt;/p&gt;&lt;p&gt;- 오브젝트{}와 오브젝틀르 병합&lt;/p&gt;&lt;p&gt;- 함수의 prototype에 인스턴스 연결&lt;/p&gt;&lt;p&gt;- 다중상속 불가&lt;/p&gt;&lt;p&gt;- 다수의 인스턴스가 연결된 형태: Prototype Chain&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;27. 검색 우선순위&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style=&quot;color: rgb(212, 212, 212); background-color: rgb(30, 30, 30); font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; line-height: 19px; white-space: pre;&quot;&gt;&lt;br /&gt;&lt;div&gt;&lt;span style=&quot;color: #608b4e;&quot;&gt;/**&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #608b4e;&quot;&gt; *  반복되는 오브젝트의 전개 &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #608b4e;&quot;&gt; */&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;var&lt;/span&gt; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;sports&lt;/span&gt; = {&lt;/div&gt;&lt;div&gt;    &lt;span style=&quot;color: #9cdcfe;&quot;&gt;soccer:&lt;/span&gt; {&lt;span style=&quot;color: #9cdcfe;&quot;&gt;member:&lt;/span&gt; &lt;span style=&quot;color: #b5cea8;&quot;&gt;11&lt;/span&gt;, &lt;span style=&quot;color: #9cdcfe;&quot;&gt;time:&lt;/span&gt; &lt;span style=&quot;color: #b5cea8;&quot;&gt;90&lt;/span&gt;},&lt;/div&gt;&lt;div&gt;    &lt;span style=&quot;color: #9cdcfe;&quot;&gt;basketball:&lt;/span&gt; {&lt;span style=&quot;color: #9cdcfe;&quot;&gt;member:&lt;/span&gt; &lt;span style=&quot;color: #b5cea8;&quot;&gt;5&lt;/span&gt;, &lt;span style=&quot;color: #9cdcfe;&quot;&gt;time:&lt;/span&gt; &lt;span style=&quot;color: #b5cea8;&quot;&gt;48&lt;/span&gt;}&lt;/div&gt;&lt;div&gt;};&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;function&lt;/span&gt; &lt;span style=&quot;color: #dcdcaa;&quot;&gt;showValues&lt;/span&gt;(&lt;span style=&quot;color: #9cdcfe;&quot;&gt;sports&lt;/span&gt;) {&lt;/div&gt;&lt;div&gt;    &lt;span style=&quot;color: #569cd6;&quot;&gt;var&lt;/span&gt; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;type&lt;/span&gt;, &lt;span style=&quot;color: #9cdcfe;&quot;&gt;obj&lt;/span&gt;;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;    &lt;span style=&quot;color: #c586c0;&quot;&gt;for&lt;/span&gt; (&lt;span style=&quot;color: #9cdcfe;&quot;&gt;type&lt;/span&gt; &lt;span style=&quot;color: #569cd6;&quot;&gt;in&lt;/span&gt; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;sports&lt;/span&gt;) {&lt;/div&gt;&lt;div&gt;        &lt;span style=&quot;color: #9cdcfe;&quot;&gt;obj&lt;/span&gt; = &lt;span style=&quot;color: #9cdcfe;&quot;&gt;sports&lt;/span&gt;[&lt;span style=&quot;color: #9cdcfe;&quot;&gt;type&lt;/span&gt;];&lt;/div&gt;&lt;div&gt;        &lt;span style=&quot;color: #569cd6;&quot;&gt;typeof&lt;/span&gt; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;obj&lt;/span&gt; === &lt;span style=&quot;color: #ce9178;&quot;&gt;'object'&lt;/span&gt; ?&lt;/div&gt;&lt;div&gt;            &lt;span style=&quot;color: #dcdcaa;&quot;&gt;showValues&lt;/span&gt;(&lt;span style=&quot;color: #9cdcfe;&quot;&gt;obj&lt;/span&gt;) :&lt;/div&gt;&lt;div&gt;            &lt;span style=&quot;color: #4ec9b0;&quot;&gt;console&lt;/span&gt;.&lt;span style=&quot;color: #dcdcaa;&quot;&gt;log&lt;/span&gt;(&lt;span style=&quot;color: #9cdcfe;&quot;&gt;type&lt;/span&gt; + &lt;span style=&quot;color: #ce9178;&quot;&gt;' : '&lt;/span&gt; + &lt;span style=&quot;color: #9cdcfe;&quot;&gt;sports&lt;/span&gt;[&lt;span style=&quot;color: #9cdcfe;&quot;&gt;type&lt;/span&gt;]);&lt;/div&gt;&lt;div&gt;    }&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span style=&quot;color: #dcdcaa;&quot;&gt;showValues&lt;/span&gt;(&lt;span style=&quot;color: #9cdcfe;&quot;&gt;sports&lt;/span&gt;)&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;28. 함수 즉시 실행&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;함수 즉시 실행이란?&lt;/p&gt;&lt;p&gt;- 엔진이 함수 코드를 만나면 자동으로 함수를 실행하는 행태&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style=&quot;color: rgb(212, 212, 212); background-color: rgb(30, 30, 30); font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; line-height: 19px; white-space: pre;&quot;&gt;&lt;br /&gt;&lt;div&gt;        (&lt;span style=&quot;color: #569cd6;&quot;&gt;function&lt;/span&gt;() {&lt;/div&gt;&lt;div&gt;            &lt;span style=&quot;color: #4ec9b0;&quot;&gt;console&lt;/span&gt;.&lt;span style=&quot;color: #dcdcaa;&quot;&gt;log&lt;/span&gt;(&lt;span style=&quot;color: #ce9178;&quot;&gt;'스포츠'&lt;/span&gt;);&lt;/div&gt;&lt;div&gt;        }());&lt;/div&gt;&lt;div&gt;        &lt;/div&gt;&lt;div&gt;        &lt;span style=&quot;color: #569cd6;&quot;&gt;var&lt;/span&gt; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;total&lt;/span&gt; = (&lt;span style=&quot;color: #b5cea8;&quot;&gt;1&lt;/span&gt; + &lt;span style=&quot;color: #b5cea8;&quot;&gt;2&lt;/span&gt;);&lt;/div&gt;&lt;div&gt;        &lt;span style=&quot;color: #569cd6;&quot;&gt;var&lt;/span&gt; &lt;span style=&quot;color: #dcdcaa;&quot;&gt;value&lt;/span&gt; = &lt;span style=&quot;color: #569cd6;&quot;&gt;function&lt;/span&gt;() {&lt;/div&gt;&lt;div&gt;            &lt;span style=&quot;color: #c586c0;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #b5cea8;&quot;&gt;123&lt;/span&gt;;&lt;/div&gt;&lt;div&gt;        }&lt;/div&gt;&lt;div&gt;        &lt;span style=&quot;color: #4ec9b0;&quot;&gt;console&lt;/span&gt;.&lt;span style=&quot;color: #dcdcaa;&quot;&gt;log&lt;/span&gt;(&lt;span style=&quot;color: #ce9178;&quot;&gt;'함수호출: '&lt;/span&gt; + &lt;span style=&quot;color: #dcdcaa;&quot;&gt;value&lt;/span&gt;());&lt;/div&gt;&lt;br /&gt;&lt;div&gt;        &lt;span style=&quot;color: #dcdcaa;&quot;&gt;value&lt;/span&gt; = &lt;span style=&quot;color: #569cd6;&quot;&gt;function&lt;/span&gt;() {&lt;/div&gt;&lt;div&gt;            &lt;span style=&quot;color: #c586c0;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #b5cea8;&quot;&gt;456&lt;/span&gt;;&lt;/div&gt;&lt;div&gt;        }();&lt;/div&gt;&lt;div&gt;        &lt;span style=&quot;color: #4ec9b0;&quot;&gt;console&lt;/span&gt;.&lt;span style=&quot;color: #dcdcaa;&quot;&gt;log&lt;/span&gt;(&lt;span style=&quot;color: #ce9178;&quot;&gt;'자동실행: '&lt;/span&gt; + &lt;span style=&quot;color: #9cdcfe;&quot;&gt;value&lt;/span&gt;);&lt;/div&gt;&lt;br /&gt;&lt;div&gt;        &lt;span style=&quot;color: #9cdcfe;&quot;&gt;value&lt;/span&gt; = (&lt;span style=&quot;color: #569cd6;&quot;&gt;function&lt;/span&gt;(){&lt;/div&gt;&lt;div&gt;            &lt;span style=&quot;color: #c586c0;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #b5cea8;&quot;&gt;789&lt;/span&gt;;&lt;/div&gt;&lt;div&gt;        }());&lt;/div&gt;&lt;div&gt;        &lt;span style=&quot;color: #4ec9b0;&quot;&gt;console&lt;/span&gt;.&lt;span style=&quot;color: #dcdcaa;&quot;&gt;log&lt;/span&gt;(&lt;span style=&quot;color: #9cdcfe;&quot;&gt;value&lt;/span&gt;);&lt;/div&gt;&lt;div&gt;        &lt;/div&gt;&lt;div&gt;        (&lt;span style=&quot;color: #569cd6;&quot;&gt;function&lt;/span&gt;(){&lt;/div&gt;&lt;div&gt;            &lt;span style=&quot;color: #4ec9b0;&quot;&gt;console&lt;/span&gt;.&lt;span style=&quot;color: #dcdcaa;&quot;&gt;log&lt;/span&gt;(&lt;span style=&quot;color: #ce9178;&quot;&gt;'ABC'&lt;/span&gt;);&lt;/div&gt;&lt;div&gt;        }());&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;29. 클로저&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;클로저 개요&lt;/p&gt;&lt;p&gt;- 자바스크립트의 특정 기능을 지칭&lt;/p&gt;&lt;p&gt;- function 오브젝트를 생성할 때 [[Scope]]에 렉시컬 환경을 설정하고&lt;/p&gt;&lt;p&gt;함수가 호출되었을 때 [[Scope]]의 프로퍼티를 사용하는 메커니즘&lt;/p&gt;&lt;p&gt;- function 오브젝트 생성 과정을 히해하면 클로저는 단지 논리적인 접근.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style=&quot;color: rgb(212, 212, 212); background-color: rgb(30, 30, 30); font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; line-height: 19px; white-space: pre;&quot;&gt;&lt;br /&gt;&lt;div&gt;        &lt;span style=&quot;color: #569cd6;&quot;&gt;function&lt;/span&gt; &lt;span style=&quot;color: #dcdcaa;&quot;&gt;sports&lt;/span&gt;() {&lt;/div&gt;&lt;div&gt;            &lt;span style=&quot;color: #569cd6;&quot;&gt;var&lt;/span&gt; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;value&lt;/span&gt; = &lt;span style=&quot;color: #b5cea8;&quot;&gt;100&lt;/span&gt;;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;            &lt;span style=&quot;color: #569cd6;&quot;&gt;function&lt;/span&gt; &lt;span style=&quot;color: #dcdcaa;&quot;&gt;setValue&lt;/span&gt;(&lt;span style=&quot;color: #9cdcfe;&quot;&gt;param&lt;/span&gt;) {&lt;/div&gt;&lt;div&gt;                &lt;span style=&quot;color: #9cdcfe;&quot;&gt;value&lt;/span&gt; = &lt;span style=&quot;color: #9cdcfe;&quot;&gt;param&lt;/span&gt;;&lt;/div&gt;&lt;div&gt;            };&lt;/div&gt;&lt;br /&gt;&lt;div&gt;            &lt;span style=&quot;color: #569cd6;&quot;&gt;var&lt;/span&gt; &lt;span style=&quot;color: #dcdcaa;&quot;&gt;getValue&lt;/span&gt; = &lt;span style=&quot;color: #569cd6;&quot;&gt;function&lt;/span&gt;(&lt;span style=&quot;color: #9cdcfe;&quot;&gt;param&lt;/span&gt;) {&lt;/div&gt;&lt;div&gt;                &lt;span style=&quot;color: #9cdcfe;&quot;&gt;value&lt;/span&gt; = &lt;span style=&quot;color: #9cdcfe;&quot;&gt;value&lt;/span&gt; + &lt;span style=&quot;color: #9cdcfe;&quot;&gt;param&lt;/span&gt;;&lt;/div&gt;&lt;div&gt;                &lt;span style=&quot;color: #c586c0;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;value&lt;/span&gt;;&lt;/div&gt;&lt;div&gt;            };&lt;/div&gt;&lt;br /&gt;&lt;div&gt;            &lt;span style=&quot;color: #c586c0;&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;getValue&lt;/span&gt;;&lt;/div&gt;&lt;div&gt;        };&lt;/div&gt;&lt;div&gt;        &lt;/div&gt;&lt;div&gt;        &lt;span style=&quot;color: #569cd6;&quot;&gt;var&lt;/span&gt; &lt;span style=&quot;color: #9cdcfe;&quot;&gt;getObject&lt;/span&gt; = &lt;span style=&quot;color: #dcdcaa;&quot;&gt;sports&lt;/span&gt;();&lt;/div&gt;&lt;br /&gt;&lt;div&gt;        &lt;span style=&quot;color: #4ec9b0;&quot;&gt;console&lt;/span&gt;.&lt;span style=&quot;color: #dcdcaa;&quot;&gt;log&lt;/span&gt;(&lt;span style=&quot;color: #dcdcaa;&quot;&gt;getObject&lt;/span&gt;(&lt;span style=&quot;color: #b5cea8;&quot;&gt;123&lt;/span&gt;));&lt;/div&gt;&lt;div&gt;        &lt;span style=&quot;color: #4ec9b0;&quot;&gt;console&lt;/span&gt;.&lt;span style=&quot;color: #dcdcaa;&quot;&gt;log&lt;/span&gt;(&lt;span style=&quot;color: #dcdcaa;&quot;&gt;getObject&lt;/span&gt;(&lt;span style=&quot;color: #b5cea8;&quot;&gt;77&lt;/span&gt;));&lt;/div&gt;&lt;div&gt;        &lt;span style=&quot;color: #4ec9b0;&quot;&gt;console&lt;/span&gt;.&lt;span style=&quot;color: #dcdcaa;&quot;&gt;log&lt;/span&gt;(&lt;span style=&quot;color: #9cdcfe;&quot;&gt;getObject&lt;/span&gt;.&lt;span style=&quot;color: #9cdcfe;&quot;&gt;value&lt;/span&gt;);&lt;/div&gt;&lt;div&gt;        &lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>front-end/es6</category>
      <category>ES5</category>
      <category>javascript</category>
      <category>정리</category>
      <author>필로그래머</author>
      <guid isPermaLink="true">https://uoonleen.tistory.com/86</guid>
      <comments>https://uoonleen.tistory.com/86#entry86comment</comments>
      <pubDate>Sat, 7 Apr 2018 10:48:54 +0900</pubDate>
    </item>
    <item>
      <title>ㅁㄴㅇ</title>
      <link>https://uoonleen.tistory.com/83</link>
      <description>&lt;p&gt;블로그 관리를 안한지 몇 개월이&amp;nbsp;됐음에도 아직까지 방문해주시는 분들이 많이 있어 놀랐습니다. 초창기 Java와 서버 세팅에 대한 기초를 배울 때 스스로 정리해보자 했던 글들이 여러모로 검색이 되고 여전히 읽혀지는구나 싶어 신기하고 그렇군요.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;사실 저는 현재 프론트엔드 개발을 주로 하고 있습니다. 실무에서 일을 하다보니 시간적인 여유 때문에&amp;nbsp;글을 쓰고 정리하는 것보단 그냥 저만의 사전에 추가하듯 필요한 내용이 있을 때 북마크에 추가하는 편입니다. 그런데 확실히 북마크에 추가해놓으면 다시 잘 확인해보질 않아서 곧 프론트엔드 개발 쪽으로 블로그&amp;nbsp;글들을 정리하는 게 좋겠다는 생각이 들더라구요. 앞으로 프로젝트를 진행하면서 기억해야 되는 부분이 있을 때 정리를 해보겠습니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;또한 기회가 된다면 신입으로 회사에 들어가서 겪게된 이야기들도 정리해보고 싶어요. 다른 사람들과는 조금 다른 루트를 밟으면서 성장하고 있기에 색다르게 공유할 부분들이 있을 것 같은데 이 부분도 곧 글을 써보겠습니다. 이렇게 적어놓아야 제 스스로 무언가를 더 하게될 것 같아서요 :D&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;1년간의 회고록을 잘 작성할 수 있도록 열심히 작업해보겠습니다!&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>아스피린 기록지/record</category>
      <author>필로그래머</author>
      <guid isPermaLink="true">https://uoonleen.tistory.com/83</guid>
      <comments>https://uoonleen.tistory.com/83#entry83comment</comments>
      <pubDate>Sun, 28 Jan 2018 21:06:55 +0900</pubDate>
    </item>
    <item>
      <title>[ReactJS] ECMA2016 super() 메소드와 component</title>
      <link>https://uoonleen.tistory.com/82</link>
      <description>&lt;h3 style=&quot;box-sizing: border-box; line-height: 40px; padding: 0px; font-family: &amp;quot;Nanum Barun Gothic Light&amp;quot;, 나눔바른고딕OTF, NanumBarunGothicOTF, &amp;quot;맑은 고딕&amp;quot;, &amp;quot;Malgun Gothic&amp;quot;, &amp;quot;애플 SD 산돌고딕 Neo&amp;quot;, &amp;quot;Apple SD Gothic Neo&amp;quot;, Halvetica, Verdana, Arial, sans-serif; margin-top: 24px; margin-right: 0px; margin-bottom: 24px; font-weight: 400; font-size: 34px; color: rgb(76, 76, 76); text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;■&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: inherit; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; border-bottom: 3px solid rgb(180, 231, 248); box-sizing: border-box; line-height: inherit; -webkit-tap-highlight-color: rgba(255, 255, 255, 0); box-shadow: rgb(180, 231, 248) 0px -4px 0px inset; transition: background 0.15s cubic-bezier(0.33, 0.66, 0.66, 1); overflow-wrap: break-word; word-wrap: break-word; word-break: break-word;&quot;&gt;ReactJS: constructor()&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Q. constructor() 사용 시에 super() 메서드를 사용해야 하는 이유&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;-&amp;nbsp;'this' is not allowed before super() error&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;A.&amp;nbsp;&amp;nbsp;&lt;span style=&quot;font-size: 11pt;&quot;&gt;http://cheng.logdown.com/posts/2016/03/26/683329&lt;/span&gt;&lt;/p&gt;</description>
      <category>front-end/react</category>
      <category>constructor</category>
      <category>ecma2016</category>
      <category>ReactJS</category>
      <category>Super</category>
      <author>필로그래머</author>
      <guid isPermaLink="true">https://uoonleen.tistory.com/82</guid>
      <comments>https://uoonleen.tistory.com/82#entry82comment</comments>
      <pubDate>Mon, 11 Dec 2017 23:39:54 +0900</pubDate>
    </item>
    <item>
      <title>[CSS3] float:left 속성의 이해와 overflow:hidden 응용</title>
      <link>https://uoonleen.tistory.com/81</link>
      <description>&lt;p style=&quot;margin-right: 0px; margin-left: 0px; box-sizing: border-box; font-family: &amp;quot;KoPub Dotum&amp;quot;; text-align: justify; color: rgb(51, 51, 51); font-size: 14px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;i style=&quot;box-sizing: border-box; font-size: 32px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: rgb(61, 183, 204);&quot;&gt;✔︎&amp;nbsp;&lt;/span&gt;&lt;/i&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 24pt;&quot;&gt;&lt;i style=&quot;box-sizing: border-box;&quot;&gt;[CSS] float:left 속성의 이해&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px; box-sizing: border-box; font-family: &amp;quot;KoPub Dotum&amp;quot;; text-align: justify; color: rgb(51, 51, 51); font-size: 14px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 24pt;&quot;&gt;&lt;i style=&quot;box-sizing: border-box;&quot;&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px; box-sizing: border-box; font-family: &amp;quot;KoPub Dotum&amp;quot;; text-align: justify; color: rgb(51, 51, 51); font-size: 14px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 24pt;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 12pt;&quot;&gt;▶ float의 등장 배경&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px; box-sizing: border-box; font-family: &amp;quot;KoPub Dotum&amp;quot;; text-align: justify; color: rgb(51, 51, 51); font-size: 14px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 24pt;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 12pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 2em; box-sizing: border-box; text-align: justify; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;img 태그는 block 성질을 가지고 있습니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 2em; box-sizing: border-box; text-align: justify; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;그래서 이미지의 width 값이 작더라도 한 줄을 통째로 차지해버립니다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 2em; box-sizing: border-box; text-align: justify; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;이 경우엔 이미지 바로 옆 쪽에 문장을 배치할 수 없습니다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 2em; box-sizing: border-box; text-align: justify; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&lt;b&gt;이러한 문제를 해결하기 위해 등장한 것이 float 속성입니다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 2em; box-sizing: border-box; text-align: justify; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;float 속성은 이미지의 왼쪽/오른쪽에 문장을 배치할 수 있도록 도와줍니다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 2em; box-sizing: border-box; text-align: justify; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;(물론 이미지 뿐만 아니라 다른 요소도 float 속성을 가질 수 있습니다.)&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 2em; box-sizing: border-box; text-align: justify; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 2em; box-sizing: border-box; text-align: justify; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;(다음 그림 참고)&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 2em; box-sizing: border-box; text-align: justify; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; box-sizing: border-box; text-align: left; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important; clear: none; float: none;&quot;&gt;&lt;img src=&quot;https://www.1keydata.com/css-tutorial/example-float-right-float-left.jpg&quot; alt=&quot;Example of Float in CSS&quot;&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; box-sizing: border-box; text-align: justify; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; box-sizing: border-box; text-align: right; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: 9pt; color: rgb(140, 140, 140);&quot;&gt;출처 :&amp;nbsp;https://www.1keydata.com/css-tutorial/float.php&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; box-sizing: border-box; text-align: right; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: 9pt; color: rgb(140, 140, 140);&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; box-sizing: border-box; text-align: justify; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; box-sizing: border-box; text-align: justify; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;▶ float:left 예제&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; box-sizing: border-box; text-align: justify; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; box-sizing: border-box; text-align: justify; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important; margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 11pt;&quot;&gt;float:left는 해당 속성이 적용된 태그를 왼쪽으로 배열하도록 합니다.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; box-sizing: border-box; text-align: justify; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important; margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 11pt;&quot;&gt;다음은 Aside와 Section에 float:left 속성을 적용시킨 결과입니다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; box-sizing: border-box; text-align: justify; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important; margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 11pt;&quot;&gt;예상했던 대로, Aside 옆에&amp;nbsp;Section이 차례대로 붙어있는 것을 알 수 있습니다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; box-sizing: border-box; text-align: justify; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important; margin-left: 2em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; box-sizing: border-box; text-align: justify; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important; margin-left: 2em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; box-sizing: border-box; text-align: justify; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important; margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; box-sizing: border-box; text-align: left; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important; margin-left: 2em; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 500px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/9902CA3359EC728C2B&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F9902CA3359EC728C2B&quot; width=&quot;500&quot; height=&quot;247&quot; filename=&quot;float_left.PNG&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; box-sizing: border-box; text-align: justify; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important; margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 11pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; box-sizing: border-box; text-align: justify; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 2em; box-sizing: border-box; text-align: justify; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;but,&lt;/span&gt;&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 2em; box-sizing: border-box; text-align: justify; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;lt;div id=&quot;wrap&quot;&amp;gt;&amp;lt;/div&amp;gt; 안에 있는&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 14.6667px;&quot;&gt;Aside와 Section 태그는 잘 배치되었지만,&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 2em; box-sizing: border-box; text-align: justify; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;font face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;wrap 태그를 벗어난 footer 태그마저 '부유'하고 있는 것을 확인할 수 있습니다.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 2em; box-sizing: border-box; text-align: justify; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;font face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&lt;b&gt;이러한 문제를 해결하려면 어떻게 해야 할까요?&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;div&gt;&lt;font face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;KoPub Dotum&quot;&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;p style=&quot;margin-right: 0px; box-sizing: border-box; text-align: justify; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;▶ float:left 실무&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; box-sizing: border-box; text-align: justify; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;KoPub Dotum&amp;quot;; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 2em; box-sizing: border-box; text-align: justify; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;float:left가 적용된 태그의 '부모 태그'에다가 overflow:hidden 속성을 주면&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 2em; box-sizing: border-box; text-align: justify; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;다음과 같이 float:left 속성이&amp;nbsp;적용되지 않은 다른 태그들이&amp;nbsp;부유하지&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 2em; box-sizing: border-box; text-align: justify; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;않고 있는 것을 확인할 수 있습니다. 이러한 방법을 &lt;b&gt;One True Layout &lt;/b&gt;방식이라고 부릅니다.&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 2em; box-sizing: border-box; text-align: justify; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 2em; box-sizing: border-box; text-align: justify; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 2em; box-sizing: border-box; text-align: center; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 500px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/9936523359EC73EF0B&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F9936523359EC73EF0B&quot; width=&quot;500&quot; height=&quot;247&quot; filename=&quot;overflow_hidden_float.PNG&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 2em; box-sizing: border-box; text-align: justify; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 2em; box-sizing: border-box; text-align: justify; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>front-end/css</category>
      <category>CSS3</category>
      <category>float:left</category>
      <category>overflow:hidden</category>
      <author>필로그래머</author>
      <guid isPermaLink="true">https://uoonleen.tistory.com/81</guid>
      <comments>https://uoonleen.tistory.com/81#entry81comment</comments>
      <pubDate>Sun, 22 Oct 2017 19:36:40 +0900</pubDate>
    </item>
    <item>
      <title>[CSS3] display:none과 visibility:hidden의 차이</title>
      <link>https://uoonleen.tistory.com/80</link>
      <description>&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; margin-left: 0px; font-family: &amp;quot;KoPub Dotum&amp;quot;; text-align: justify; color: rgb(51, 51, 51); font-size: 14px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;i style=&quot;box-sizing: border-box; font-size: 32px;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; color: rgb(61, 183, 204);&quot;&gt;✔︎&amp;nbsp;&lt;/span&gt;&lt;/i&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 24pt;&quot;&gt;&lt;i style=&quot;box-sizing: border-box;&quot;&gt;[CSS]&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 32px;&quot;&gt;&lt;i style=&quot;box-sizing: border-box;&quot;&gt;display와 visibility&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; margin-left: 0px; font-family: &amp;quot;KoPub Dotum&amp;quot;; text-align: justify; color: rgb(51, 51, 51); font-size: 14px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 32px;&quot;&gt;&lt;i style=&quot;box-sizing: border-box;&quot;&gt;:&lt;/i&gt;&lt;/span&gt;&lt;i style=&quot;box-sizing: border-box; font-size: 32px;&quot;&gt;&amp;nbsp;none과 hidden의 차이&lt;/i&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; margin-left: 0px; font-family: &amp;quot;KoPub Dotum&amp;quot;; text-align: justify; color: rgb(51, 51, 51); font-size: 14px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;i style=&quot;box-sizing: border-box; font-size: 32px;&quot;&gt;&lt;br /&gt;&lt;/i&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; margin-left: 0px; font-family: &amp;quot;KoPub Dotum&amp;quot;; text-align: justify; color: rgb(51, 51, 51); font-size: 14px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 32px;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 11pt;&quot;&gt;&lt;i&gt;&lt;/i&gt;화면에서 태그를 보이지 않게 하기 위한 속성으로는&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; margin-left: 0px; font-family: &amp;quot;KoPub Dotum&amp;quot;; text-align: justify; color: rgb(51, 51, 51); font-size: 14px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 11pt;&quot;&gt;display:none과 visibility:hidden이 있습니다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; margin-left: 0px; font-family: &amp;quot;KoPub Dotum&amp;quot;; text-align: justify; color: rgb(51, 51, 51); font-size: 14px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; font-size: 32px;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; font-family: &amp;quot;KoPub Dotum&amp;quot;; text-align: justify; color: rgb(51, 51, 51); font-size: 14px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;두 스타일 모두 어떤 태그를 표시하지 않고 가릴 때 사용됩니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; font-family: &amp;quot;KoPub Dotum&amp;quot;; text-align: justify; color: rgb(51, 51, 51); font-size: 14px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;그러나 두 스타일에는 차이가 있습니다. 어떤 차이가 있을까요?&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; font-family: &amp;quot;KoPub Dotum&amp;quot;; text-align: justify; color: rgb(51, 51, 51); font-size: 14px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; font-family: &amp;quot;KoPub Dotum&amp;quot;; text-align: justify; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;▶ &lt;/span&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;b&gt;display:none&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; font-family: &amp;quot;KoPub Dotum&amp;quot;; text-align: justify; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; font-family: &amp;quot;KoPub Dotum&amp;quot;; text-align: justify; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important; margin-left: 2em;&quot;&gt;display:none 속성은&amp;nbsp;태그 자체를 html 상에서 제거시키는 힘이 있습니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; font-family: &amp;quot;KoPub Dotum&amp;quot;; text-align: justify; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important; margin-left: 2em;&quot;&gt;때문에 inspect(요소 검사)를 해도 해당 태그를 검색할 수 없습니다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; font-family: &amp;quot;KoPub Dotum&amp;quot;; text-align: justify; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important; margin-left: 2em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; font-family: &amp;quot;KoPub Dotum&amp;quot;; text-align: justify; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important; margin-left: 2em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; font-family: &amp;quot;KoPub Dotum&amp;quot;; text-align: left; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 500px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/991B623359EB29B90A&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F991B623359EB29B90A&quot; width=&quot;500&quot; height=&quot;247&quot; filename=&quot;display_none.PNG&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; font-family: &amp;quot;KoPub Dotum&amp;quot;; text-align: justify; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;div&gt;&lt;i style=&quot;box-sizing: border-box; font-size: 32px;&quot;&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; font-family: &amp;quot;KoPub Dotum&amp;quot;; text-align: justify; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: 14px;&quot;&gt;▶ &lt;/span&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;b&gt;visibility:hidden&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; margin-right: 0px; font-family: &amp;quot;KoPub Dotum&amp;quot;; text-align: justify; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 2em; box-sizing: border-box; font-family: &amp;quot;KoPub Dotum&amp;quot;; text-align: justify; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;visibility:hidden 속성은 태그 자체를 html 상에서 제거시키는 게 아니라&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 2em; box-sizing: border-box; font-family: &amp;quot;KoPub Dotum&amp;quot;; text-align: justify; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;그저 사용자가 해당 태그를 볼 수 없도록 만들어줍니다. 도자기로 덮어놓은 것처럼 말이죠.&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 2em; box-sizing: border-box; font-family: &amp;quot;KoPub Dotum&amp;quot;; text-align: justify; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;때문에 inspect(요소 검사)를 해도 해당 태그를 확인할 수 있습니다.&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 2em; box-sizing: border-box; font-family: &amp;quot;KoPub Dotum&amp;quot;; text-align: justify; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 2em; box-sizing: border-box; font-family: &amp;quot;KoPub Dotum&amp;quot;; text-align: justify; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; box-sizing: border-box; font-family: &amp;quot;KoPub Dotum&amp;quot;; text-align: left; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 500px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/998A6B3359EB2A732F&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F998A6B3359EB2A732F&quot; width=&quot;500&quot; height=&quot;247&quot; filename=&quot;visibility_hidden.PNG&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; box-sizing: border-box; font-family: &amp;quot;KoPub Dotum&amp;quot;; text-align: justify; color: rgb(51, 51, 51); padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>front-end/css</category>
      <category>css</category>
      <category>display:none</category>
      <category>visibility:hidden</category>
      <author>필로그래머</author>
      <guid isPermaLink="true">https://uoonleen.tistory.com/80</guid>
      <comments>https://uoonleen.tistory.com/80#entry80comment</comments>
      <pubDate>Sat, 21 Oct 2017 20:15:25 +0900</pubDate>
    </item>
    <item>
      <title>[CSS3] display 속성 : inline과 inline-block의 차이</title>
      <link>https://uoonleen.tistory.com/79</link>
      <description>&lt;p&gt;&lt;i style=&quot;font-size: 32px;&quot;&gt;&lt;span style=&quot;color: rgb(61, 183, 204);&quot;&gt;✔︎&amp;nbsp;&lt;/span&gt;&lt;/i&gt;&lt;span style=&quot;font-size: 24pt;&quot;&gt;&lt;i&gt;[CSS]&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 32px;&quot;&gt;&lt;i&gt;display 속성&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 32px;&quot;&gt;&lt;i&gt;:&lt;/i&gt;&lt;/span&gt;&lt;i style=&quot;font-size: 32px;&quot;&gt;&amp;nbsp;inline과 inline-block의 차이&amp;nbsp;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;css에서 display 속성 중 block은 'div 태그'나 'p 태그'에&amp;nbsp;&lt;/p&gt;&lt;p&gt;기본적으로 적용되는 속성입니다. 자체적인 block을 가져서&amp;nbsp;&lt;/p&gt;&lt;p&gt;해당되는 태그가 아예 한 줄을 차지해버리죠.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;그렇다면 inline과 inline-block은 무엇일까요?&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;▶&amp;nbsp;&lt;span style=&quot;font-size: 12pt;&quot;&gt;&lt;b&gt;inline&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;inline 속성을 가진 태그는&amp;nbsp;한 줄을 차지하지&amp;nbsp;않고, 다른 태그 옆에 나란히 표시됩니다.&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;b&gt;width와 height 값이 적용되지 않습니다.&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 500px; text-align: center;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99F2243359EB258417&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99F2243359EB258417&quot; width=&quot;500&quot; height=&quot;228&quot; filename=&quot;display-inline.PNG&quot; filemime=&quot;image/jpeg&quot; style=&quot;text-align: center;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;▶&amp;nbsp;&lt;span style=&quot;font-size: 12pt;&quot;&gt;&lt;b&gt;inline-block&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;inline 속성을 가진 태그는&amp;nbsp;한 줄을 차지하지&amp;nbsp;않고, 다른 태그 옆에 나란히 표시됩니다.&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;b&gt;덧붙혀 width와 height 값이 적용될 수 있습니다.&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 500px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99E0D83359EB26D422&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99E0D83359EB26D422&quot; width=&quot;500&quot; height=&quot;247&quot; filename=&quot;display_inline-block.PNG&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>front-end/css</category>
      <category>Block</category>
      <category>css</category>
      <category>display</category>
      <category>inline</category>
      <category>inline-block</category>
      <author>필로그래머</author>
      <guid isPermaLink="true">https://uoonleen.tistory.com/79</guid>
      <comments>https://uoonleen.tistory.com/79#entry79comment</comments>
      <pubDate>Sat, 21 Oct 2017 19:52:47 +0900</pubDate>
    </item>
    <item>
      <title>[CSS3] input 태그에 placeholder 스타일 효과 주기</title>
      <link>https://uoonleen.tistory.com/78</link>
      <description>&lt;p&gt;&lt;i style=&quot;font-size: 32px;&quot;&gt;&lt;span style=&quot;color: rgb(61, 183, 204);&quot;&gt;✔︎&amp;nbsp;&lt;/span&gt;&lt;/i&gt;&lt;span style=&quot;font-size: 24pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;&lt;i&gt;[CSS] input 태그에 placeholder 스타일 효과 주기&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 32px;&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size:11pt;&quot;&gt;예제 1.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size:11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size:11pt;&quot;&gt;https://codemyui.com/input-field-placeholder-to-label-transition/&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size:11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size:11pt;&quot;&gt;예제 2.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size:11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;https://jsfiddle.net/273ntk5s/2/&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>front-end/css</category>
      <category>css</category>
      <category>input</category>
      <category>placeholder</category>
      <author>필로그래머</author>
      <guid isPermaLink="true">https://uoonleen.tistory.com/78</guid>
      <comments>https://uoonleen.tistory.com/78#entry78comment</comments>
      <pubDate>Fri, 20 Oct 2017 12:21:24 +0900</pubDate>
    </item>
    <item>
      <title>[Angular] AngularJS 시작하기</title>
      <link>https://uoonleen.tistory.com/77</link>
      <description>&lt;h3 style=&quot;box-sizing: border-box; line-height: 40px; padding: 0px; font-family: &amp;quot;Nanum Barun Gothic Light&amp;quot;, 나눔바른고딕OTF, NanumBarunGothicOTF, &amp;quot;맑은 고딕&amp;quot;, &amp;quot;Malgun Gothic&amp;quot;, &amp;quot;애플 SD 산돌고딕 Neo&amp;quot;, &amp;quot;Apple SD Gothic Neo&amp;quot;, Halvetica, Verdana, Arial, sans-serif; margin-top: 24px; margin-right: 0px; margin-bottom: 24px; font-weight: 400; font-size: 34px; color: rgb(76, 76, 76); text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;■&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: inherit; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; border-bottom: 3px solid rgb(180, 231, 248); box-sizing: border-box; line-height: inherit; -webkit-tap-highlight-color: rgba(255, 255, 255, 0); box-shadow: rgb(180, 231, 248) 0px -4px 0px inset; transition: background 0.15s cubic-bezier(0.33, 0.66, 0.66, 1); overflow-wrap: break-word; word-wrap: break-word; word-break: break-word;&quot;&gt;Angular: 의미&lt;/span&gt;&lt;/h3&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-weight: normal; color: rgb(76, 76, 76); font-size: 11pt;&quot;&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;&lt;span style=&quot;font-size: 24pt;&quot;&gt;☇&lt;/span&gt; AngularJS는 매우 강력한 JavaScript 프레임워크입니다.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;font color=&quot;#4c4c4c&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;주로 싱글 페이지 어플리케이션 프로젝트에서 사용됩니다.&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font color=&quot;#4c4c4c&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;HTML DOM에서&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;font-size: 16px; color: rgb(76, 76, 76);&quot;&gt;추가적인 속성을 확장해 만들어졌으며&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: 16px; color: rgb(76, 76, 76);&quot;&gt;사용자의 액션에 따라 페이지를 동적으로 바꿀 수 있도록 도와줍니다.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: rgb(76, 76, 76); font-size: 32px;&quot;&gt;&lt;span style=&quot;color: rgb(76, 76, 76); font-size: 12pt;&quot;&gt;✎ ng-app&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-left: 2em;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin-left: 2em;&quot;&gt;ng-app 명령어는&amp;nbsp;&lt;span style=&quot;color: rgb(76, 76, 76); font-size: 16px;&quot;&gt;AngularJS 어플리케이션을 시작하겠다는 의미입니다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;color: rgb(76, 76, 76); font-size: 16px;&quot;&gt;AngularJS를 HTML에 연결해주는 역할을 합니다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;color: rgb(76, 76, 76); font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: rgb(76, 76, 76); font-size: 16px;&quot;&gt;✎ ng-model&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: rgb(76, 76, 76); font-size: 16px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-left: 2em;&quot;&gt;&lt;font color=&quot;#4c4c4c&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;ng-model 명령어는 AngularJS 어플리케이션 데이터의 벨류 값을&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 16px; color: rgb(76, 76, 76);&quot;&gt;HTML의 input 태그에 연결시켜 줍니다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-left: 2em;&quot;&gt;&lt;font color=&quot;#4c4c4c&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;(ng-model의 벨류 값에&amp;nbsp;바인딩 된 태그에 input 데이터가 넘어갈 수 있도록 도와줍니다.)&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style=&quot;margin-left: 2em;&quot;&gt;&lt;font color=&quot;#4c4c4c&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: rgb(76, 76, 76); font-size: 16px;&quot;&gt;✎ ng-bind&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;color: rgb(76, 76, 76); font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-left: 2em;&quot;&gt;&lt;font color=&quot;#4c4c4c&quot;&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;ng-bind 명령어는 AngularJS 어플리케이션 데이터를 HTML 태그와 연결시켜줍니다.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: rgb(189, 189, 189); font-size: 32px;&quot;&gt;☇&lt;/span&gt;&lt;span style=&quot;color: rgb(189, 189, 189);&quot;&gt;참고&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: rgb(189, 189, 189);&quot;&gt;*https://www.tutorialspoint.com/angularjs/angularjs_first_application.htm&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>front-end/angular</category>
      <category>AngularJS</category>
      <category>ng-app</category>
      <category>ng-bind</category>
      <category>ng-model</category>
      <category>앵귤러</category>
      <author>필로그래머</author>
      <guid isPermaLink="true">https://uoonleen.tistory.com/77</guid>
      <comments>https://uoonleen.tistory.com/77#entry77comment</comments>
      <pubDate>Tue, 17 Oct 2017 17:37:22 +0900</pubDate>
    </item>
    <item>
      <title>[Java] Spring WebMVC: 페이지 컨트롤러(Page Controller)를 만들어 보자 II</title>
      <link>https://uoonleen.tistory.com/72</link>
      <description>&lt;h3 style=&quot;box-sizing: border-box; line-height: 40px; padding: 0px; font-family: &amp;quot;Nanum Barun Gothic Light&amp;quot;, 나눔바른고딕OTF, NanumBarunGothicOTF, &amp;quot;맑은 고딕&amp;quot;, &amp;quot;Malgun Gothic&amp;quot;, &amp;quot;애플 SD 산돌고딕 Neo&amp;quot;, &amp;quot;Apple SD Gothic Neo&amp;quot;, Halvetica, Verdana, Arial, sans-serif; margin-top: 24px; margin-right: 0px; margin-bottom: 24px; font-weight: 400; font-size: 34px; color: rgb(76, 76, 76); text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;■&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: inherit; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; border-bottom: 3px solid rgb(180, 231, 248); box-sizing: border-box; line-height: inherit; -webkit-tap-highlight-color: rgba(255, 255, 255, 0); box-shadow: rgb(180, 231, 248) 0px -4px 0px inset; transition: background 0.15s cubic-bezier(0.33, 0.66, 0.66, 1); overflow-wrap: break-word; word-wrap: break-word; word-break: break-word;&quot;&gt;Spring WebMVC:&amp;nbsp;&lt;/span&gt;&lt;/h3&gt;&lt;h3 style=&quot;box-sizing: border-box; line-height: 40px; padding: 0px; font-family: &amp;quot;Nanum Barun Gothic Light&amp;quot;, 나눔바른고딕OTF, NanumBarunGothicOTF, &amp;quot;맑은 고딕&amp;quot;, &amp;quot;Malgun Gothic&amp;quot;, &amp;quot;애플 SD 산돌고딕 Neo&amp;quot;, &amp;quot;Apple SD Gothic Neo&amp;quot;, Halvetica, Verdana, Arial, sans-serif; margin-top: 24px; margin-right: 0px; margin-bottom: 24px; font-weight: 400; font-size: 34px; color: rgb(76, 76, 76); text-align: justify;&quot;&gt;&lt;span style=&quot;color: inherit; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; border-bottom: 3px solid rgb(180, 231, 248); box-sizing: border-box; line-height: inherit; -webkit-tap-highlight-color: rgba(255, 255, 255, 0); box-shadow: rgb(180, 231, 248) 0px -4px 0px inset; transition: background 0.15s cubic-bezier(0.33, 0.66, 0.66, 1); overflow-wrap: break-word; word-wrap: break-word; word-break: break-word;&quot;&gt;페이지 컨트롤러 만들기 II&lt;/span&gt;&lt;/h3&gt;&lt;div&gt;&lt;span style=&quot;color: inherit; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; border-bottom: 3px solid rgb(180, 231, 248); box-sizing: border-box; line-height: inherit; -webkit-tap-highlight-color: rgba(255, 255, 255, 0); box-shadow: rgb(180, 231, 248) 0px -4px 0px inset; transition: background 0.15s cubic-bezier(0.33, 0.66, 0.66, 1); overflow-wrap: break-word; word-wrap: break-word; word-break: break-word;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;───────&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;&lt;b&gt;Spring webMVC: Request Handler의 리턴값 다루기&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: inherit; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; border-bottom: 3px solid rgb(180, 231, 248); box-sizing: border-box; line-height: inherit; -webkit-tap-highlight-color: rgba(255, 255, 255, 0); box-shadow: rgb(180, 231, 248) 0px -4px 0px inset; transition: background 0.15s cubic-bezier(0.33, 0.66, 0.66, 1); overflow-wrap: break-word; word-wrap: break-word; word-break: break-word;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 4px; font-stretch: normal; font-size: 0.9333em; line-height: 1.5em; font-family: Consolas, &amp;quot;Lucida Console&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, &amp;quot;Courier New&amp;quot;, monospace; background: rgb(0, 0, 0); color: rgb(248, 248, 248);&quot;&gt;&lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;/* Spring webMVC: Request Handler의 리턴값 다루기
 */&lt;/span&gt;   
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;package&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;control&lt;/span&gt;;

&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;java.io.PrintWriter&lt;/span&gt;;

&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;javax.servlet.http.HttpServletResponse&lt;/span&gt;;

&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;org.springframework.stereotype.Controller&lt;/span&gt;;
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;org.springframework.web.bind.annotation.RequestMapping&lt;/span&gt;;
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;org.springframework.web.bind.annotation.ResponseBody&lt;/span&gt;;

@&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Controller&lt;/span&gt;  
@RequestMapping(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;/control/controller15/&quot;&lt;/span&gt;)
&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;class&lt;/span&gt; &lt;span style=&quot;text-decoration-line: underline;&quot;&gt;Controller15&lt;/span&gt; {
  
  &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 1) void: 요청 핸들러에서 직접 출력하기&lt;/span&gt;
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;@RequestMapping&lt;/span&gt;(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok1&quot;&lt;/span&gt;)
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;void&lt;/span&gt; &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;ok1&lt;/span&gt;(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletResponse&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;response&lt;/span&gt;) &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;throws&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Exception&lt;/span&gt; {
    response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;setContentType(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;text/plain;charset=UTF-8&quot;&lt;/span&gt;);
    &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;PrintWriter&lt;/span&gt; out &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt; response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;getWriter();
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;println(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok1(): 안녕하세요!&quot;&lt;/span&gt;); 
  }

  &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 2) String: 리턴 값을 클라이언트로 출력하기&lt;/span&gt;
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;@RequestMapping&lt;/span&gt;(&lt;span style=&quot;color: rgb(51, 135, 204);&quot;&gt;path&lt;/span&gt;=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok2&quot;&lt;/span&gt;, &lt;span style=&quot;color: rgb(51, 135, 204);&quot;&gt;produces&lt;/span&gt;=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;text/plain;charset=UTF-8&quot;&lt;/span&gt;)
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;@ResponseBody&lt;/span&gt;
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;String&lt;/span&gt; &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;ok2&lt;/span&gt;(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletResponse&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;response&lt;/span&gt;) &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;throws&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Exception&lt;/span&gt; {
    &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok2(): 안녕하세요!&quot;&lt;/span&gt;; 
  }

  &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 3) String: 리턴 값을 클라이언트로 출력하기 - error&lt;/span&gt;
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;@RequestMapping&lt;/span&gt;(&lt;span style=&quot;color: rgb(51, 135, 204);&quot;&gt;path&lt;/span&gt;=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok3&quot;&lt;/span&gt;)
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;@ResponseBody&lt;/span&gt; &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// &amp;lt;=== 리턴 값이 응답 데이터임을 표시하는 애노테이션&lt;/span&gt;
                &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 리턴 값을 바로 출력할 때는 @RequestMapping의 produces 속성을 이용하여&lt;/span&gt;
                &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 출력 내용의 타입과 인코딩을 지정한다.&lt;/span&gt;
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;String&lt;/span&gt; &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;ok3&lt;/span&gt;(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletResponse&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;response&lt;/span&gt;) &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;throws&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Exception&lt;/span&gt; {
    &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;//@ResponseBody를 사용하여 리턴 값을 바로 클라이언트로 출력할 때는&lt;/span&gt;
    &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 다음과 같이 UTF-8 처리를 지정할 수 없다.&lt;/span&gt;
    &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 해결책? 위의 ok2() 메서드에서처럼 @RequestMapping의 produces 속성으로 지정해야 한다.&lt;/span&gt;
    response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;setContentType(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;type/plain;charset=UTF-8&quot;&lt;/span&gt;);
    &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok3(): 안녕하세요!&quot;&lt;/span&gt;; 
  }

  &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 4) String: JSP로 포워딩하기&lt;/span&gt;
  &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;//    =&amp;gt; @ResponseBody가 붙지 않으면 리턴 값을 JSP URL로 취급한다.&lt;/span&gt;
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;@RequestMapping&lt;/span&gt;(&lt;span style=&quot;color: rgb(51, 135, 204);&quot;&gt;path&lt;/span&gt;=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok4&quot;&lt;/span&gt;)
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;String&lt;/span&gt; &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;ok4&lt;/span&gt;() &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;throws&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Exception&lt;/span&gt; {
    &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;/controller15_ok4.jsp&quot;&lt;/span&gt;; 
  }
}&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;application-context.xml 파일에 다음과 같은 bean 객체를 등록해줍니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 4px; font-stretch: normal; font-size: 0.9333em; line-height: 1.5em; font-family: Consolas, &amp;quot;Lucida Console&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, &amp;quot;Courier New&amp;quot;, monospace; background: rgb(0, 0, 0); color: rgb(248, 248, 248);&quot;&gt;&lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;&amp;lt;!-- 페이지 컨트롤러가 JSP URL을 리턴할 때, 해당 JSP를 찾아 실행하는 객체 --&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;bean id=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;jspViewResolver&quot;&lt;/span&gt; class=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;org.springframework.web.servlet.view.InternalResourceViewResolver&quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;property name=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;viewClass&quot;&lt;/span&gt; value=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;org.springframework.web.servlet.view.JstlView&quot;&lt;/span&gt;/&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;property name=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;prefix&quot;&lt;/span&gt; value=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;/&quot;&lt;/span&gt;/&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;property name=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;suffix&quot;&lt;/span&gt; value=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;.jsp&quot;&lt;/span&gt;/&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;/bean&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;이렇게 JSP를 실행할 객체를 명시적으로 등록하게 되면&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;페이지&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;컨트롤러에서 JSP URL을&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp;리턴할 때&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;이 설정을 고려하게 됩니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;그러나 String을 리턴 값으로 설정해주고 JSP로 포워딩 해준 4번 예제의&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;코드를&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;바꿔야 합니다. 이유는 다음의 주석을 참고해주세요.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;* Controller15의 ok4() 메서드를&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;다음과 같이&amp;nbsp;정의해야 합니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 4px; font-stretch: normal; font-size: 0.9333em; line-height: 1.5em; font-family: Consolas, &amp;quot;Lucida Console&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, &amp;quot;Courier New&amp;quot;, monospace; background: rgb(0, 0, 0); color: rgb(248, 248, 248);&quot;&gt;&lt;pre style=&quot;padding: 4px; background: rgb(0, 0, 0); margin-top: 0px; margin-bottom: 0px; font-stretch: normal; font-size: 0.9333em; line-height: 1.5em; font-family: Consolas, &amp;quot;Lucida Console&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, &amp;quot;Courier New&amp;quot;, monospace;&quot;&gt;&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;@RequestMapping&lt;/span&gt;(&lt;span style=&quot;color: rgb(51, 135, 204);&quot;&gt;path&lt;/span&gt;=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok4&quot;&lt;/span&gt;)
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;String&lt;/span&gt; &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;ok4&lt;/span&gt;() &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;throws&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Exception&lt;/span&gt; {&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;//  return &quot;/controller15_ok4.jsp&quot;; // InternalResourceViewResolver를 설정하기 전에는 괜찮다.&lt;/span&gt;
                                    &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// InternalResourceViewResolver를 설정한 후에는 오류가 발생한다.&lt;/span&gt;
                                    &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// why? 리턴 값 앞 뒤에 문자열이 붙기 때문이다.&lt;/span&gt;
                                    &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// &quot;/&quot; + &quot;controller15_ok4.jsp&quot; + &quot;.jsp&quot;&lt;/span&gt;
                                    &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 그래서 최종 url은 &quot;/controller15_ok4.jsp.jsp&quot;가 된다.&lt;/span&gt;
    
    &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;controller15_ok4&quot;&lt;/span&gt;;        &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 이렇게 InternalResourceViewResolver의 설정을 고려하여 리턴 값을 작성해야 한다.&lt;/span&gt;
  }&lt;/p&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;webapp 폴더 안에 controller15_ok4.jsp 파일을 만들고 다음처럼 작성합니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 4px; font-stretch: normal; font-size: 0.9333em; line-height: 1.5em; font-family: Consolas, &amp;quot;Lucida Console&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, &amp;quot;Courier New&amp;quot;, monospace; background: rgb(0, 0, 0); color: rgb(248, 248, 248);&quot;&gt;&amp;lt;%@ page language&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;java&quot;&lt;/span&gt; contentType&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;text/html; charset=UTF-8&quot;&lt;/span&gt;
    pageEncoding&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;UTF-8&quot;&lt;/span&gt;%&amp;gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;!DOCTYPE html PUBLIC &lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;&lt;/span&gt; &lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;http://www.w3.org/TR/html4/loose.dtd&quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;html&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;meta charest=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;UTF-8&quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;title&amp;gt;&lt;/span&gt;test&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;contoller_ok4()&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&lt;span style=&quot;color: rgb(0, 130, 153);&quot;&gt;▶&lt;/span&gt; &lt;span style=&quot;font-size: 11pt;&quot;&gt;실행 방법 :&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;http:localhost:8080/spring-web01/control/controller15/ok4.do&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;───────&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;클라이언트로 리턴 값을 출력하지도 않고, JSP URL로도 지정하지 않을 때&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 130, 153); font-size: 14.6667px;&quot;&gt;▶&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;앞서&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;application-context.xml 파일에 jspViewResolver bean 객체를 등록&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; &amp;nbsp; 해주었기에 &lt;/span&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;다음과 같은 예제를 추가해주고 실행해보면 정상적으로 실행&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&amp;nbsp; &amp;nbsp; 되는 것을 알 수 있습니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 4px; font-stretch: normal; font-size: 0.9333em; line-height: 1.5em; font-family: Consolas, &amp;quot;Lucida Console&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, &amp;quot;Courier New&amp;quot;, monospace; background: rgb(0, 0, 0); color: rgb(248, 248, 248);&quot;&gt;&lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 5) void: 클라이언트로 리턴 값을 출력하지도 않고, JSP URL로도 지정하지 않으면 &lt;/span&gt;
  &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;//    =&amp;gt; 기본 JSP URL로 현재 URL을 사용한다.&lt;/span&gt;
  &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;//    =&amp;gt; 단 이럴 경우 스프링 설정 파일에 JSP를 어디에서 찾을 것인지 지정해야 한다.&lt;/span&gt;
  &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;//       지정하지 않으면 URL이 &lt;/span&gt;
  @RequestMapping(path&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok5&quot;&lt;/span&gt;)
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;void&lt;/span&gt; ok5() throws &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Exception&lt;/span&gt; {
    &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;System&lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;println(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok5()&quot;&lt;/span&gt;);
  }&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&lt;span style=&quot;color: rgb(0, 130, 153);&quot;&gt;▶&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;font-size: 11pt;&quot;&gt;실행 방법 :&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;http:localhost:8080/spring-web01/control/controller15/ok5.do&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;───────&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&lt;b&gt;JSP URL을 바구니에 담아 리턴하기&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;pre style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 4px; font-stretch: normal; font-size: 0.9333em; line-height: 1.5em; font-family: Consolas, &amp;quot;Lucida Console&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, &amp;quot;Courier New&amp;quot;, monospace; background: rgb(0, 0, 0); color: rgb(248, 248, 248);&quot;&gt;&lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 6) JSP URL을 바구니에 담아 리턴하기&lt;/span&gt;
  @RequestMapping(path&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok6&quot;&lt;/span&gt;)
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;ModelAndView&lt;/span&gt; ok6() throws &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Exception&lt;/span&gt; {
    &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;ModelAndView&lt;/span&gt; mv &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;new&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;ModelAndView&lt;/span&gt;();
    mv&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;setViewName(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;controller15_ok6&quot;&lt;/span&gt;);
    &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;return&lt;/span&gt; mv;
  }&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;기존 예제에 위 코드를 추가하고 webapp 폴더 안에 controller15_ok6.jsp 파일을 만듭니다. 만든 파일에는&amp;nbsp;아래와 같이&amp;nbsp;작성합니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;padding: 4px; background: rgb(0, 0, 0); margin-top: 0px; margin-bottom: 0px; font-stretch: normal; font-size: 0.9333em; line-height: 1.5em; font-family: Consolas, &amp;quot;Lucida Console&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, &amp;quot;Courier New&amp;quot;, monospace; color: rgb(248, 248, 248);&quot;&gt;&lt;p&gt;&amp;lt;%@ page language&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;java&quot;&lt;/span&gt; contentType&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;text/html; charset=UTF-8&quot;&lt;/span&gt;
    pageEncoding&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;UTF-8&quot;&lt;/span&gt;%&amp;gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;!DOCTYPE html PUBLIC &lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;&lt;/span&gt; &lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;http://www.w3.org/TR/html4/loose.dtd&quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;html&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;meta charest=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;UTF-8&quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;title&amp;gt;&lt;/span&gt;test&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;contoller_ok6()&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&lt;span style=&quot;color: rgb(0, 130, 153);&quot;&gt;▶&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;font-size: 11pt;&quot;&gt;실행 방법 :&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;http:localhost:8080/spring-web01/control/controller15/ok6.do&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;───────&lt;/p&gt;&lt;p&gt;&lt;b style=&quot;font-size: 14.6667px;&quot;&gt;JSP URL과 JSP 사용할 데이터도 함께 ModelAndView 바구니에 담아 리턴하기&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b style=&quot;font-size: 14.6667px;&quot;&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 4px; font-stretch: normal; font-size: 0.9333em; line-height: 1.5em; font-family: Consolas, &amp;quot;Lucida Console&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, &amp;quot;Courier New&amp;quot;, monospace; background: rgb(0, 0, 0); color: rgb(248, 248, 248);&quot;&gt;&lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 7) JSP URL과 JSP 사용할 데이터도 함께 ModelAndView 바구니에 담아 리턴하기&lt;/span&gt;
  @RequestMapping(path&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok7&quot;&lt;/span&gt;)
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;ModelAndView&lt;/span&gt; ok7() throws &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Exception&lt;/span&gt; {
    &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;ModelAndView&lt;/span&gt; mv &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;new&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;ModelAndView&lt;/span&gt;();
    mv&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;setViewName(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;controller15_ok7&quot;&lt;/span&gt;);
    mv&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;addObject(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;title&quot;&lt;/span&gt;, &lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;제목이네요!&quot;&lt;/span&gt;);
    
    &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Member&lt;/span&gt; member &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;new&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Member&lt;/span&gt;();
    member&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;setName(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;홍길동&quot;&lt;/span&gt;);
    member&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;setAge(&lt;span style=&quot;color: rgb(51, 135, 204);&quot;&gt;20&lt;/span&gt;);
    member&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;setWorking(&lt;span style=&quot;color: rgb(51, 135, 204);&quot;&gt;true&lt;/span&gt;);
    mv&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;addObject(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;member&quot;&lt;/span&gt;, member);
    
    &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;/* 이렇게 ModelAndView 바구니에 값을 담아 두면,
     * 프론트 컨트롤러는 이 바구니에 담긴 값을 꺼내
     * JSP 가 사용할 수 있도록 ServletRequest 바구니에 옮겨 싣는다.
     */&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;기존 예제에 위 코드를 추가하고&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;webapp 폴더 안에 controller15_ok7&lt;/span&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;.jsp 파일을 만듭니다. 만든 파일에는&lt;/span&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&amp;nbsp;아래와 같이&lt;/span&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&amp;nbsp;작성합니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;b style=&quot;font-size: 14.6667px;&quot;&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 4px; font-stretch: normal; font-size: 0.9333em; line-height: 1.5em; font-family: Consolas, &amp;quot;Lucida Console&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, &amp;quot;Courier New&amp;quot;, monospace; background: rgb(0, 0, 0); color: rgb(248, 248, 248);&quot;&gt;&amp;lt;%@ page language&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;java&quot;&lt;/span&gt; contentType&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;text/html; charset=UTF-8&quot;&lt;/span&gt;
    pageEncoding&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;UTF-8&quot;&lt;/span&gt;%&amp;gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;!DOCTYPE html PUBLIC &lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;&lt;/span&gt; &lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;http://www.w3.org/TR/html4/loose.dtd&quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;html&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;meta charest=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;UTF-8&quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;title&amp;gt;&lt;/span&gt;test&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;contoller_ok7()&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
${title}&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;br&amp;gt;&lt;/span&gt;
${member.name}&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;br&amp;gt;&lt;/span&gt;
${member.age}&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;br&amp;gt;&lt;/span&gt;
${member.working}&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;br&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&lt;span style=&quot;color: rgb(0, 130, 153);&quot;&gt;▶&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;font-size: 11pt;&quot;&gt;실행 방법 :&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;http:localhost:8080/spring-web01/control/controller15/ok7.do&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 130, 153); font-size: 14.6667px;&quot;&gt;▶ &lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;실행 결과 :&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;h1 style=&quot;font-family: &amp;quot;Malgun Gothic&amp;quot;;&quot;&gt;contoller_ok7()&lt;/h1&gt;&lt;p&gt;&lt;span style=&quot;font-family: &amp;quot;Malgun Gothic&amp;quot;; font-size: medium;&quot;&gt;제목이네요!&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Malgun Gothic&amp;quot;; font-size: medium;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Malgun Gothic&amp;quot;; font-size: medium;&quot;&gt;홍길동&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Malgun Gothic&amp;quot;; font-size: medium;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Malgun Gothic&amp;quot;; font-size: medium;&quot;&gt;20&lt;/span&gt;&lt;br style=&quot;font-family: &amp;quot;Malgun Gothic&amp;quot;; font-size: medium;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Malgun Gothic&amp;quot;; font-size: medium;&quot;&gt;true&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;───────&lt;/p&gt;&lt;p&gt;&lt;b style=&quot;font-size: 14.6667px;&quot;&gt;JSP URL은 리턴 값으로,&amp;nbsp; JSP 사용할 데이터는 Model 바구니에 담아 리턴하기&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b style=&quot;font-size: 14.6667px;&quot;&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 4px; font-stretch: normal; font-size: 0.9333em; line-height: 1.5em; font-family: Consolas, &amp;quot;Lucida Console&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, &amp;quot;Courier New&amp;quot;, monospace; background: rgb(0, 0, 0); color: rgb(248, 248, 248);&quot;&gt;&lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 8) JSP URL은 리턴 값으로, JSP가 사용할 데이터는 Model 바구니에 담는다.&lt;/span&gt;
  @RequestMapping(path&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok8&quot;&lt;/span&gt;)
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;String&lt;/span&gt; ok8(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Model&lt;/span&gt; model) throws &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Exception&lt;/span&gt; {
    model&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;addAttribute(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;title&quot;&lt;/span&gt;, &lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;제목이네요!&quot;&lt;/span&gt;);
    
    &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Member&lt;/span&gt; member &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;new&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Member&lt;/span&gt;();
    member&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;setName(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;홍길동&quot;&lt;/span&gt;);
    member&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;setAge(&lt;span style=&quot;color: rgb(51, 135, 204);&quot;&gt;20&lt;/span&gt;);
    member&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;setWorking(&lt;span style=&quot;color: rgb(51, 135, 204);&quot;&gt;true&lt;/span&gt;);
    model&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;addAttribute(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;member&quot;&lt;/span&gt;, member);
    
    &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;/* 이렇게 ModelAndView 바구니에 값을 담아 두면,
     * 프론트 컨트롤러는 이 바구니에 담긴 값을 꺼내
     * JSP 가 사용할 수 있도록 ServletRequest 바구니에 옮겨 싣는다.
     */&lt;/span&gt;
    &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;controller15_ok8&quot;&lt;/span&gt;;
  }&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;기존 예제에 위 코드를 추가하고&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;webapp 폴더 안에 controller15_ok8&lt;/span&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;.jsp 파일을 만듭니다. 만든 파일은&lt;/span&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&amp;nbsp;아래와 같이&lt;/span&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&amp;nbsp;작성합니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 4px; font-stretch: normal; font-size: 0.9333em; line-height: 1.5em; font-family: Consolas, &amp;quot;Lucida Console&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, &amp;quot;Courier New&amp;quot;, monospace; background: rgb(0, 0, 0); color: rgb(248, 248, 248);&quot;&gt;&amp;lt;%@ page language&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;java&quot;&lt;/span&gt; contentType&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;text/html; charset=UTF-8&quot;&lt;/span&gt;
    pageEncoding&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;UTF-8&quot;&lt;/span&gt;%&amp;gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;!DOCTYPE html PUBLIC &lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;&lt;/span&gt; &lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;http://www.w3.org/TR/html4/loose.dtd&quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;html&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;meta charest=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;UTF-8&quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;title&amp;gt;&lt;/span&gt;test&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;contoller_ok8()&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
${title}&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;br&amp;gt;&lt;/span&gt;
${member.name}&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;br&amp;gt;&lt;/span&gt;
${member.age}&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;br&amp;gt;&lt;/span&gt;
${member.working}&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;br&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;div&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&lt;span style=&quot;color: rgb(0, 130, 153);&quot;&gt;▶&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;font-size: 11pt;&quot;&gt;실행 방법 :&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;http:localhost:8080/spring-web01/control/controller15/ok8.do&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;───────&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&lt;b&gt;Model 대신 Map 객체를 바구니로 사용해서 리턴 값을 받기&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 4px; font-stretch: normal; font-size: 0.9333em; line-height: 1.5em; font-family: Consolas, &amp;quot;Lucida Console&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, &amp;quot;Courier New&amp;quot;, monospace; background: rgb(0, 0, 0); color: rgb(248, 248, 248);&quot;&gt;&lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 9) Model 대신 Map 객체를 바구니로 사용할 수 있다.&lt;/span&gt;
  @RequestMapping(path&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok9&quot;&lt;/span&gt;)
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;String&lt;/span&gt; ok9(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Model&lt;/span&gt; model) throws &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Exception&lt;/span&gt; {
    model&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;addAttribute(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;title&quot;&lt;/span&gt;, &lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;제목이네요!&quot;&lt;/span&gt;);
    
    &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Member&lt;/span&gt; member &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;new&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Member&lt;/span&gt;();
    member&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;setName(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;홍길동&quot;&lt;/span&gt;);
    member&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;setAge(&lt;span style=&quot;color: rgb(51, 135, 204);&quot;&gt;20&lt;/span&gt;);
    member&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;setWorking(&lt;span style=&quot;color: rgb(51, 135, 204);&quot;&gt;true&lt;/span&gt;);
    model&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;addAttribute(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;member&quot;&lt;/span&gt;, member);
    
    &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;/* 이렇게 Map 바구니에 값을 담아 두면,
     * 프론트 컨트롤러는 이 바구니에 담긴 값을 꺼내
     * JSP 가 사용할 수 있도록 ServletRequest 바구니에 옮겨 싣는다.
     */&lt;/span&gt;
    &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;controller15_ok8&quot;&lt;/span&gt;;
  }&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;기존 예제에 위 코드를 추가하고&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;webapp 폴더 안에 controller15_ok9&lt;/span&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;.jsp 파일을 만듭니다. 만든 파일은&lt;/span&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&amp;nbsp;아래와 같이&lt;/span&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&amp;nbsp;작성합니다.&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>Programming/java</category>
      <category>Java</category>
      <category>page controller</category>
      <category>Request Handler</category>
      <category>Spring</category>
      <category>webmvc</category>
      <category>리턴</category>
      <category>스프링</category>
      <category>자바</category>
      <category>페이지 컨트롤러</category>
      <author>필로그래머</author>
      <guid isPermaLink="true">https://uoonleen.tistory.com/72</guid>
      <comments>https://uoonleen.tistory.com/72#entry72comment</comments>
      <pubDate>Tue, 27 Jun 2017 12:55:29 +0900</pubDate>
    </item>
    <item>
      <title>[Java] Spring WebMVC: 페이지 컨트롤러(Page Controller)를 만들어 보자 I</title>
      <link>https://uoonleen.tistory.com/71</link>
      <description>&lt;h3 style=&quot;box-sizing: border-box; line-height: 40px; padding: 0px; font-family: &amp;quot;Nanum Barun Gothic Light&amp;quot;, 나눔바른고딕OTF, NanumBarunGothicOTF, &amp;quot;맑은 고딕&amp;quot;, &amp;quot;Malgun Gothic&amp;quot;, &amp;quot;애플 SD 산돌고딕 Neo&amp;quot;, &amp;quot;Apple SD Gothic Neo&amp;quot;, Halvetica, Verdana, Arial, sans-serif; margin-top: 24px; margin-right: 0px; margin-bottom: 24px; font-weight: 400; font-size: 34px; color: rgb(76, 76, 76); text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;■&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: inherit; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; border-bottom: 3px solid rgb(180, 231, 248); box-sizing: border-box; line-height: inherit; -webkit-tap-highlight-color: rgba(255, 255, 255, 0); box-shadow: rgb(180, 231, 248) 0px -4px 0px inset; transition: background 0.15s cubic-bezier(0.33, 0.66, 0.66, 1); overflow-wrap: break-word; word-wrap: break-word; word-break: break-word;&quot;&gt;Spring WebMVC:&amp;nbsp;&lt;/span&gt;&lt;/h3&gt;&lt;h3 style=&quot;box-sizing: border-box; line-height: 40px; padding: 0px; font-family: &amp;quot;Nanum Barun Gothic Light&amp;quot;, 나눔바른고딕OTF, NanumBarunGothicOTF, &amp;quot;맑은 고딕&amp;quot;, &amp;quot;Malgun Gothic&amp;quot;, &amp;quot;애플 SD 산돌고딕 Neo&amp;quot;, &amp;quot;Apple SD Gothic Neo&amp;quot;, Halvetica, Verdana, Arial, sans-serif; margin-top: 24px; margin-right: 0px; margin-bottom: 24px; font-weight: 400; font-size: 34px; color: rgb(76, 76, 76); text-align: justify;&quot;&gt;&lt;span style=&quot;color: inherit; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; border-bottom: 3px solid rgb(180, 231, 248); box-sizing: border-box; line-height: inherit; -webkit-tap-highlight-color: rgba(255, 255, 255, 0); box-shadow: rgb(180, 231, 248) 0px -4px 0px inset; transition: background 0.15s cubic-bezier(0.33, 0.66, 0.66, 1); overflow-wrap: break-word; word-wrap: break-word; word-break: break-word;&quot;&gt;페이지 컨트롤러 만들기&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;b&gt;─&lt;/b&gt;&lt;/span&gt;&lt;b style=&quot;font-size: 16px;&quot;&gt;─&lt;/b&gt;&lt;b style=&quot;font-size: 16px;&quot;&gt;─&lt;/b&gt;&lt;b style=&quot;font-size: 16px;&quot;&gt;─&lt;/b&gt;&lt;b style=&quot;font-size: 16px;&quot;&gt;─&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b style=&quot;font-size: 12pt;&quot;&gt;Spring에서 제공하는 프론트 컨트롤러와 협업할 페이지 컨트롤러 만들기&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 130, 153); font-size: 11pt;&quot;&gt;▶&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp;Spring WebMVC 프로젝트 설정 &lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;방법&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;1) web.xml에 Spring webmvc의 프론트 컨트롤러를 설정합니다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 4px; font-stretch: normal; font-size: 0.9333em; line-height: 1.5em; font-family: Consolas, &amp;quot;Lucida Console&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, &amp;quot;Courier New&amp;quot;, monospace; background: rgb(0, 0, 0); color: rgb(248, 248, 248);&quot;&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;?xml version=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;1.0&quot;&lt;/span&gt; encoding=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;UTF-8&quot;&lt;/span&gt;?&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;web-app xmlns:xsi=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;http://www.w3.org/2001/XMLSchema-instance&quot;&lt;/span&gt; 
  xmlns=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;http://xmlns.jcp.org/xml/ns/javaee&quot;&lt;/span&gt; 
  xsi:schemaLocation=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd&quot;&lt;/span&gt; 
  id=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;WebApp_ID&quot;&lt;/span&gt; 
  version=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;3.1&quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;

  &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;display-name&amp;gt;&lt;/span&gt;project01&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;/display-name&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;&amp;lt;!-- 프론트 컨트롤러 등록 --&amp;gt;&lt;/span&gt;  
    &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;servlet&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;servlet-name&amp;gt;&lt;/span&gt;dispatcher&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;/servlet-name&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;servlet-class&amp;gt;&lt;/span&gt;org.springframework.web.servlet.DispatcherServlet&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;/servlet-class&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;init-param&amp;gt;&lt;/span&gt;
            &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;param-name&amp;gt;&lt;/span&gt;contextConfigLocation&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;/param-name&amp;gt;&lt;/span&gt;
            &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;param-value&amp;gt;&lt;/span&gt;classpath:control/application-context.xml&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;/param-value&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;/init-param&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;load-on-startup&amp;gt;&lt;/span&gt;1&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;/load-on-startup&amp;gt;&lt;/span&gt; &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;&amp;lt;!-- 클라이언트가 요청하지 않아도 init() 함수가 호출. 즉 servlet 객체가 생성한다. --&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;/servlet&amp;gt;&lt;/span&gt;
    
    &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;servlet-mapping&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;servlet-name&amp;gt;&lt;/span&gt;dispatcher&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;/servlet-name&amp;gt;&lt;/span&gt;
        &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;url-pattern&amp;gt;&lt;/span&gt;*.do&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;/url-pattern&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;/servlet-mapping&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;/web-app&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;/pre&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;2) Spring 설정 파일을 준비합니다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;/src/main/src/control/application-context.xml&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 4px; font-stretch: normal; font-size: 0.9333em; line-height: 1.5em; font-family: Consolas, &amp;quot;Lucida Console&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, &amp;quot;Courier New&amp;quot;, monospace; background: rgb(0, 0, 0); color: rgb(248, 248, 248);&quot;&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;?xml version=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;1.0&quot;&lt;/span&gt; encoding=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;UTF-8&quot;&lt;/span&gt;?&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;beans xmlns=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;http://www.springframework.org/schema/beans&quot;&lt;/span&gt;
    xmlns:xsi=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;http://www.w3.org/2001/XMLSchema-instance&quot;&lt;/span&gt;
    xmlns:context=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;http://www.springframework.org/schema/context&quot;&lt;/span&gt;
    xmlns:mvc=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;http://www.springframework.org/schema/mvc&quot;&lt;/span&gt;
    xsi:schemaLocation=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;http://www.springframework.org/schema/beans 
      http://www.springframework.org/schema/beans/spring-beans.xsd
      http://www.springframework.org/schema/context
      http://www.springframework.org/schema/context/spring-context.xsd
      http://www.springframework.org/schema/mvc
      http://www.springframework.org/schema/mvc/spring-mvc.xsd&quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;

  &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;&amp;lt;!-- Spring IoC 컨테이너를 위한 객체 등록 --&amp;gt;&lt;/span&gt;
  &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;context:component-scan base-package=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;control&quot;&lt;/span&gt;/&amp;gt;&lt;/span&gt;
  
  &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;&amp;lt;!-- Spring WebMVC 관련 기능을 처리할 객체를 등록한다. (RequsetMapping 되어 있는 객체를 등록) --&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;mvc:annotation-driven/&amp;gt;&lt;/span&gt;
    
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;/beans&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;3) Gradle 설정 파일을 준비합니다. (프로젝트 폴더 바로 &lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;아래에 위치시켜 주세요.&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; &amp;nbsp; build.gradle&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 4px; font-stretch: normal; font-size: 0.9333em; line-height: 1.5em; font-family: Consolas, &amp;quot;Lucida Console&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, &amp;quot;Courier New&amp;quot;, monospace; background: rgb(0, 0, 0); color: rgb(248, 248, 248);&quot;&gt;apply plugin: 'java' 
apply plugin: 'eclipse-wtp' 
apply plugin: 'war'       

compileJava {
  options.encoding = 'UTF-8'  
  sourceCompatibility = '1.8' 
}

repositories {
  mavenCentral() 
}

dependencies {
  compile 'org.slf4j:slf4j-api:1.7.22'
  compile group: 'commons-fileupload', name: 'commons-fileupload', version: '1.3.2'
  compile group: 'javax.servlet', name: 'jstl', version: '1.2'
  compile group: 'org.springframework', name: 'spring-webmvc', version: '4.3.9.RELEASE'
  
  providedCompile group: 'javax.servlet', name: 'javax.servlet-api', version: '3.1.0'
  
  testCompile 'junit:junit:4.12'
}
&lt;/pre&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;4) cmd 명령창에서 해당 프로젝트 폴더로 경로를 설정한 후&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&quot;gradle eclipse&quot;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; &amp;nbsp;명령어를 입력해&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp;실행시킵니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;* 이 글의 예제에서의 프로젝트 폴더는 spring-web01입니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 130, 153); font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 130, 153); font-size: 11pt;&quot;&gt;▶&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp;페이지 컨트롤러 만들기&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;1) 클래스를 페이지 컨트롤러로 표시&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;하기&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; &amp;nbsp;- @Controller 애노테이션을 붙입니다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;2) 요청을 처리할 메서드를 표시하기&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp; &amp;nbsp; - @RequestMapping(URL) 애노테이션을 붙입니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 4px; font-stretch: normal; font-size: 0.9333em; line-height: 1.5em; font-family: Consolas, &amp;quot;Lucida Console&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, &amp;quot;Courier New&amp;quot;, monospace; background: rgb(0, 0, 0); color: rgb(248, 248, 248);&quot;&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;/* Spring webMVC: 페이지 컨트롤러 만들기
 * 
 */&lt;/span&gt;
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;package&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;step01&lt;/span&gt;;

&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;java.io.PrintWriter&lt;/span&gt;;

&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;javax.servlet.http.HttpServletRequest&lt;/span&gt;;
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;javax.servlet.http.HttpServletResponse&lt;/span&gt;;

&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;org.springframework.stereotype.Controller&lt;/span&gt;;
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;org.springframework.web.bind.annotation.RequestMapping&lt;/span&gt;;

@&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Controller&lt;/span&gt;  &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 페이지 컨트롤러 클래스임을 표시&lt;/span&gt;
&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;class&lt;/span&gt; &lt;span style=&quot;text-decoration-line: underline;&quot;&gt;Controller01&lt;/span&gt; {
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;@RequestMapping&lt;/span&gt;(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;/control/controller01&quot;&lt;/span&gt;) &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 어떤 요청을 처리할지 표시&lt;/span&gt;
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;void&lt;/span&gt; &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;service&lt;/span&gt;(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletRequest&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;request&lt;/span&gt;, &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletResponse&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;response&lt;/span&gt;) &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;throws&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Exception&lt;/span&gt; {
    response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;setContentType(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;text/plain;charset=UTF-8&quot;&lt;/span&gt;);
    &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;PrintWriter&lt;/span&gt; out &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt; response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;getWriter();
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;println(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;Hello, world!&quot;&lt;/span&gt;);
  }
}
&lt;/p&gt;&lt;/pre&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 130, 153); font-size: 14.6667px;&quot;&gt;▶ &lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;결과 :&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 130, 153); font-size: 14.6667px;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&amp;nbsp; &amp;nbsp; 웹 브라우저 url 주소&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;에 http://localhost:8080/프로젝트명/패키지명/controller01.do 를 입력하면&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 130, 153); font-size: 14.6667px;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&amp;nbsp; &amp;nbsp; 화면에 &quot;Hello, world!&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&quot;가 출력되는 것을 확인하실 수 있습니다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 130, 153); font-size: 14.6667px;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;b&gt;─&lt;/b&gt;&lt;/span&gt;&lt;b style=&quot;font-size: 16px;&quot;&gt;─&lt;/b&gt;&lt;b style=&quot;font-size: 16px;&quot;&gt;─&lt;/b&gt;&lt;b style=&quot;font-size: 16px;&quot;&gt;─&lt;/b&gt;&lt;b style=&quot;font-size: 16px;&quot;&gt;─&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b style=&quot;font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 130, 153); font-size: 14.6667px;&quot;&gt;▶ &lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;설정 파일은 남겨둔 채 Controller01 파일을 다음 Controller02 파일로&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 130, 153); font-size: 14.6667px;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;&amp;nbsp; &amp;nbsp; 업그레이드 시켜보겠습니다. 메소&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;드의 이름은 꼭 service()일 필요가&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-size: 14.6667px;&quot;&gt;&amp;nbsp; &amp;nbsp; 없다는 것을 알 수 있습니다. @RequestMapping에서 설정해준 경로의&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-size: 14.6667px;&quot;&gt;&amp;nbsp; &amp;nbsp; 이름이 메소드 이름이 되면 됩니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;b style=&quot;font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 4px; font-stretch: normal; font-size: 0.9333em; line-height: 1.5em; font-family: Consolas, &amp;quot;Lucida Console&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, &amp;quot;Courier New&amp;quot;, monospace; background: rgb(0, 0, 0); color: rgb(248, 248, 248);&quot;&gt;&lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;/* Spring webMVC: 페이지 컨트롤러 만들기
 * 
 */&lt;/span&gt;
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;package&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;control&lt;/span&gt;;

&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;java.io.PrintWriter&lt;/span&gt;;

&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;javax.servlet.http.HttpServletRequest&lt;/span&gt;;
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;javax.servlet.http.HttpServletResponse&lt;/span&gt;;

&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;org.springframework.stereotype.Controller&lt;/span&gt;;
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;org.springframework.web.bind.annotation.RequestMapping&lt;/span&gt;;

@&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Controller&lt;/span&gt;  &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 페이지 컨트롤러 클래스임을 표시&lt;/span&gt;
&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;class&lt;/span&gt; &lt;span style=&quot;text-decoration-line: underline;&quot;&gt;Controller02&lt;/span&gt; {
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;@RequestMapping&lt;/span&gt;(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;/control/controller02/a&quot;&lt;/span&gt;) &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 어떤 요청을 처리할지 표시&lt;/span&gt;
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;void&lt;/span&gt; &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;a&lt;/span&gt;(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletRequest&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;request&lt;/span&gt;, &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletResponse&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;response&lt;/span&gt;) &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;throws&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Exception&lt;/span&gt; {
    response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;setContentType(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;text/plain;charset=UTF-8&quot;&lt;/span&gt;);
    &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;PrintWriter&lt;/span&gt; out &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt; response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;getWriter();
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;println(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;aaaa&quot;&lt;/span&gt;);
  }

  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;@RequestMapping&lt;/span&gt;(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;/control/controller02/b&quot;&lt;/span&gt;) &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 어떤 요청을 처리할지 표시&lt;/span&gt;
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;void&lt;/span&gt; &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;b&lt;/span&gt;(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletRequest&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;request&lt;/span&gt;, &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletResponse&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;response&lt;/span&gt;) &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;throws&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Exception&lt;/span&gt; {
    response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;setContentType(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;text/plain;charset=UTF-8&quot;&lt;/span&gt;);
    &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;PrintWriter&lt;/span&gt; out &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt; response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;getWriter();
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;println(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;bbbb&quot;&lt;/span&gt;);
  }

  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;@RequestMapping&lt;/span&gt;(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;/control/controller02/c&quot;&lt;/span&gt;) &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 어떤 요청을 처리할지 표시&lt;/span&gt;
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;void&lt;/span&gt; &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;c&lt;/span&gt;(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletRequest&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;request&lt;/span&gt;, &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletResponse&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;response&lt;/span&gt;) &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;throws&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Exception&lt;/span&gt; {
    response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;setContentType(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;text/plain;charset=UTF-8&quot;&lt;/span&gt;);
    &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;PrintWriter&lt;/span&gt; out &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt; response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;getWriter();
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;println(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;cccc&quot;&lt;/span&gt;);
  }
}&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 130, 153); font-size: 14.6667px;&quot;&gt;▶ &lt;span style=&quot;color: rgb(0, 0, 0);&quot;&gt;위 예제는 다음 Controller03의 예제와 똑같은 결과를 호출합니다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-size: 14.6667px;&quot;&gt;&amp;nbsp; &amp;nbsp; 공통되는 경로가 있다면 @RequestMapping을 통해 묶어줄 수 있습니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;요청 URL 계산하기 = class에 붙은 URL + 메소드에 붙은 URL&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 4px; font-stretch: normal; font-size: 0.9333em; line-height: 1.5em; font-family: Consolas, &amp;quot;Lucida Console&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, &amp;quot;Courier New&amp;quot;, monospace; background: rgb(0, 0, 0); color: rgb(248, 248, 248);&quot;&gt;&lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;/* Spring webMVC: 페이지 컨트롤러 만들기
 * 
 */&lt;/span&gt;
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;package&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;control&lt;/span&gt;;

&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;java.io.PrintWriter&lt;/span&gt;;

&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;javax.servlet.http.HttpServletRequest&lt;/span&gt;;
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;javax.servlet.http.HttpServletResponse&lt;/span&gt;;

&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;org.springframework.stereotype.Controller&lt;/span&gt;;
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;org.springframework.web.bind.annotation.RequestMapping&lt;/span&gt;;

@&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Controller&lt;/span&gt;  &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 페이지 컨트롤러 클래스임을 표시&lt;/span&gt;
@RequestMapping(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;/control/controller03/&quot;&lt;/span&gt;)
&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;class&lt;/span&gt; &lt;span style=&quot;text-decoration-line: underline;&quot;&gt;Controller03&lt;/span&gt; {
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;@RequestMapping&lt;/span&gt;(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;a&quot;&lt;/span&gt;) &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 어떤 요청을 처리할지 표시&lt;/span&gt;
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;void&lt;/span&gt; &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;a&lt;/span&gt;(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletRequest&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;request&lt;/span&gt;, &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletResponse&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;response&lt;/span&gt;) &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;throws&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Exception&lt;/span&gt; {
    response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;setContentType(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;text/plain;charset=UTF-8&quot;&lt;/span&gt;);
    &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;PrintWriter&lt;/span&gt; out &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt; response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;getWriter();
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;println(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;aaaa&quot;&lt;/span&gt;);
  }

  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;@RequestMapping&lt;/span&gt;(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;b&quot;&lt;/span&gt;) &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 어떤 요청을 처리할지 표시&lt;/span&gt;
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;void&lt;/span&gt; &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;b&lt;/span&gt;(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletRequest&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;request&lt;/span&gt;, &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletResponse&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;response&lt;/span&gt;) &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;throws&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Exception&lt;/span&gt; {
    response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;setContentType(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;text/plain;charset=UTF-8&quot;&lt;/span&gt;);
    &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;PrintWriter&lt;/span&gt; out &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt; response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;getWriter();
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;println(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;bbbb&quot;&lt;/span&gt;);
  }

  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;@RequestMapping&lt;/span&gt;(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;c&quot;&lt;/span&gt;) &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 어떤 요청을 처리할지 표시&lt;/span&gt;
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;void&lt;/span&gt; &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;c&lt;/span&gt;(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletRequest&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;request&lt;/span&gt;, &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletResponse&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;response&lt;/span&gt;) &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;throws&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Exception&lt;/span&gt; {
    response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;setContentType(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;text/plain;charset=UTF-8&quot;&lt;/span&gt;);
    &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;PrintWriter&lt;/span&gt; out &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt; response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;getWriter();
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;println(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;cccc&quot;&lt;/span&gt;);
  }
}
&lt;/pre&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 130, 153); font-size: 14.6667px;&quot;&gt;▶&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;호출될 메서드가 한 개일 경우에는 첫번째 @RequestMapping의 경로만&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&amp;nbsp; &amp;nbsp; 설정해줘도 웹 브라우저에서 처리해줄 수 있습니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;요청 URL 계산하기 = class에 붙은 URL + 메소드에 붙은 URL&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 4px; font-stretch: normal; font-size: 0.9333em; line-height: 1.5em; font-family: Consolas, &amp;quot;Lucida Console&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, &amp;quot;Courier New&amp;quot;, monospace; background: rgb(0, 0, 0); color: rgb(248, 248, 248);&quot;&gt;&lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;/* Spring webMVC: 한 페이지 컨트롤러에서 요청 처리하기
 * 
 */&lt;/span&gt;
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;package&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;control&lt;/span&gt;;

&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;java.io.PrintWriter&lt;/span&gt;;

&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;javax.servlet.http.HttpServletRequest&lt;/span&gt;;
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;javax.servlet.http.HttpServletResponse&lt;/span&gt;;

&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;org.springframework.stereotype.Controller&lt;/span&gt;;
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;org.springframework.web.bind.annotation.RequestMapping&lt;/span&gt;;

@&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Controller&lt;/span&gt;  &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 페이지 컨트롤러 클래스임을 표시&lt;/span&gt;
@RequestMapping(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;/control/controller04/ok&quot;&lt;/span&gt;)
&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;class&lt;/span&gt; &lt;span style=&quot;text-decoration-line: underline;&quot;&gt;Controller04&lt;/span&gt; {
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;@RequestMapping&lt;/span&gt; &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 어떤 요청을 처리할지 표시&lt;/span&gt;
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;void&lt;/span&gt; &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;a&lt;/span&gt;(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletRequest&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;request&lt;/span&gt;, &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletResponse&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;response&lt;/span&gt;) &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;throws&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Exception&lt;/span&gt; {
    response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;setContentType(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;text/plain;charset=UTF-8&quot;&lt;/span&gt;);
    &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;PrintWriter&lt;/span&gt; out &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt; response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;getWriter();
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;println(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;aaaa&quot;&lt;/span&gt;);
  }
}&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;b&gt;─&lt;/b&gt;&lt;/span&gt;&lt;b style=&quot;font-size: 16px;&quot;&gt;─&lt;/b&gt;&lt;b style=&quot;font-size: 16px;&quot;&gt;─&lt;/b&gt;&lt;b style=&quot;font-size: 16px;&quot;&gt;─&lt;/b&gt;&lt;b style=&quot;font-size: 16px;&quot;&gt;─&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;요청 http method 구분하여 처리하기 I&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 4px; font-stretch: normal; font-size: 0.9333em; line-height: 1.5em; font-family: Consolas, &amp;quot;Lucida Console&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, &amp;quot;Courier New&amp;quot;, monospace; background: rgb(0, 0, 0); color: rgb(248, 248, 248);&quot;&gt;&lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;/* Spring webMVC: 요청 http method 구분하여 처리하기
 * 
 */&lt;/span&gt;
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;package&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;control&lt;/span&gt;;

&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;java.io.PrintWriter&lt;/span&gt;;

&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;javax.servlet.http.HttpServletRequest&lt;/span&gt;;
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;javax.servlet.http.HttpServletResponse&lt;/span&gt;;

&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;org.springframework.stereotype.Controller&lt;/span&gt;;
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;org.springframework.web.bind.annotation.RequestMapping&lt;/span&gt;;
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;org.springframework.web.bind.annotation.RequestMethod&lt;/span&gt;;

@&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Controller&lt;/span&gt;  &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 페이지 컨트롤러 클래스임을 표시&lt;/span&gt;
@RequestMapping(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;/control/controller05/ok&quot;&lt;/span&gt;)
&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;class&lt;/span&gt; &lt;span style=&quot;text-decoration-line: underline;&quot;&gt;Controller05&lt;/span&gt; {
 
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;@RequestMapping&lt;/span&gt;(&lt;span style=&quot;color: rgb(51, 135, 204);&quot;&gt;method&lt;/span&gt;=&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;RequestMethod&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204);&quot;&gt;&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;GET&lt;/span&gt;)
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;void&lt;/span&gt; &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;get&lt;/span&gt;(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletRequest&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;request&lt;/span&gt;, &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletResponse&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;response&lt;/span&gt;) &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;throws&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Exception&lt;/span&gt; {
    response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;setContentType(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;text/plain;charset=UTF-8&quot;&lt;/span&gt;);
    &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;PrintWriter&lt;/span&gt; out &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt; response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;getWriter();
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;println(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;get&quot;&lt;/span&gt;);
  }

  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;@RequestMapping&lt;/span&gt;(&lt;span style=&quot;color: rgb(51, 135, 204);&quot;&gt;method&lt;/span&gt;=&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;RequestMethod&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204);&quot;&gt;&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;POST&lt;/span&gt;)
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;void&lt;/span&gt; &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;post&lt;/span&gt;(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletRequest&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;request&lt;/span&gt;, &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletResponse&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;response&lt;/span&gt;) &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;throws&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Exception&lt;/span&gt; {
    response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;setContentType(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;text/plain;charset=UTF-8&quot;&lt;/span&gt;);
    &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;PrintWriter&lt;/span&gt; out &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt; response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;getWriter();
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;println(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;post&quot;&lt;/span&gt;);
  }
}&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;GET 요청과 POST 요청을 가능하게 해주는 html 코드 I&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;b&gt;*참고&amp;nbsp;:&lt;/b&gt; .html 같은 정적파일은 webapp 폴더 아래에 생성해줘야 합니다.&lt;/div&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;pre style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 4px; font-stretch: normal; font-size: 0.9333em; line-height: 1.5em; font-family: Consolas, &amp;quot;Lucida Console&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, &amp;quot;Courier New&amp;quot;, monospace; background: rgb(0, 0, 0); color: rgb(248, 248, 248);&quot;&gt;&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;html&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;meta charset=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;UTF-8&quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Insert title here&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;form action=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;control/controller05/ok.do&quot;&lt;/span&gt; method=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;GET&quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;button&amp;gt;&lt;/span&gt;GET 요청&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;/form&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;hr&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;form action=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;control/controller05/ok.do&quot;&lt;/span&gt; method=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;POST&quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;button&amp;gt;&lt;/span&gt;POST 요청&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;/form&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: rgb(0, 130, 153); font-size: 14.6667px;&quot;&gt;▶&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;실행 방법 : http://localhost:8080/spring-web01/contr&lt;span style=&quot;font-size: 11pt;&quot;&gt;oller05.html&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;GET 요청 버튼을 클릭하면 화면에 get 문장이 출력되고&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;POST 요청 버튼을 클릭하면 화면에 post 문장이 출력됩니다.&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b style=&quot;font-size: 14.6667px;&quot;&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b style=&quot;font-size: 14.6667px;&quot;&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;요청 http method 구분하여 처리하기 II&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 4px; font-stretch: normal; font-size: 0.9333em; line-height: 1.5em; font-family: Consolas, &amp;quot;Lucida Console&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, &amp;quot;Courier New&amp;quot;, monospace; background: rgb(0, 0, 0); color: rgb(248, 248, 248);&quot;&gt;&lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;/* Spring webMVC: 요청 http method 구분하여 처리하기
 * 
 */&lt;/span&gt;
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;package&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;control&lt;/span&gt;;

&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;java.io.PrintWriter&lt;/span&gt;;

&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;javax.servlet.http.HttpServletRequest&lt;/span&gt;;
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;javax.servlet.http.HttpServletResponse&lt;/span&gt;;

&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;org.springframework.stereotype.Controller&lt;/span&gt;;
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;org.springframework.web.bind.annotation.RequestMapping&lt;/span&gt;;
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;org.springframework.web.bind.annotation.RequestMethod&lt;/span&gt;;

@&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Controller&lt;/span&gt;  &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 페이지 컨트롤러 클래스임을 표시&lt;/span&gt;
@RequestMapping(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;/control/controller06/&quot;&lt;/span&gt;)
&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;class&lt;/span&gt; &lt;span style=&quot;text-decoration-line: underline;&quot;&gt;Controller06&lt;/span&gt; {
 
  &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;//@RequestMapping(value=&quot;ok&quot;, method=RequestMethod.GET) // 이렇게 해도 되고&lt;/span&gt;
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;@RequestMapping&lt;/span&gt;(&lt;span style=&quot;color: rgb(51, 135, 204);&quot;&gt;path&lt;/span&gt;=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok&quot;&lt;/span&gt;, &lt;span style=&quot;color: rgb(51, 135, 204);&quot;&gt;method&lt;/span&gt;=&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;RequestMethod&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204);&quot;&gt;&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;GET&lt;/span&gt;) &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 이렇게 해도 된다.&lt;/span&gt;
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;void&lt;/span&gt; &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;get&lt;/span&gt;(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletRequest&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;request&lt;/span&gt;, &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletResponse&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;response&lt;/span&gt;) &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;throws&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Exception&lt;/span&gt; {
    response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;setContentType(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;text/plain;charset=UTF-8&quot;&lt;/span&gt;);
    &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;PrintWriter&lt;/span&gt; out &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt; response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;getWriter();
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;println(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;get&quot;&lt;/span&gt;);
  }

  &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;//@RequestMapping(value=&quot;ok&quot;, method=RequestMethod.POST) // 이렇게 해도 되고&lt;/span&gt;
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;@RequestMapping&lt;/span&gt;(&lt;span style=&quot;color: rgb(51, 135, 204);&quot;&gt;path&lt;/span&gt;=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok&quot;&lt;/span&gt;, &lt;span style=&quot;color: rgb(51, 135, 204);&quot;&gt;method&lt;/span&gt;=&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;RequestMethod&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204);&quot;&gt;&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;POST&lt;/span&gt;)
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;void&lt;/span&gt; &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;post&lt;/span&gt;(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletRequest&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;request&lt;/span&gt;, &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletResponse&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;response&lt;/span&gt;) &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;throws&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Exception&lt;/span&gt; {
    response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;setContentType(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;text/plain;charset=UTF-8&quot;&lt;/span&gt;);
    &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;PrintWriter&lt;/span&gt; out &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt; response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;getWriter();
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;println(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;post&quot;&lt;/span&gt;);
  }
}
&lt;/pre&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 14.6667px; font-weight: bold; text-align: center;&quot;&gt;GET 요청과 POST 요청을 가능하게 해주는 html 코드 II&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 4px; font-stretch: normal; font-size: 0.9333em; line-height: 1.5em; font-family: Consolas, &amp;quot;Lucida Console&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, &amp;quot;Courier New&amp;quot;, monospace; background: rgb(0, 0, 0); color: rgb(248, 248, 248);&quot;&gt;&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;html&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;meta charset=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;UTF-8&quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Insert title here&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;form action=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;control/controller06/ok.do&quot;&lt;/span&gt; method=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;GET&quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;button&amp;gt;&lt;/span&gt;GET 요청&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;/form&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;hr&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;form action=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;control/controller06/ok.do&quot;&lt;/span&gt; method=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;POST&quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
    &lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;button&amp;gt;&lt;/span&gt;POST 요청&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;/form&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;b&gt;─&lt;/b&gt;&lt;/span&gt;&lt;b style=&quot;font-size: 16px;&quot;&gt;─&lt;/b&gt;&lt;b style=&quot;font-size: 16px;&quot;&gt;─&lt;/b&gt;&lt;b style=&quot;font-size: 16px;&quot;&gt;─&lt;/b&gt;&lt;b style=&quot;font-size: 16px;&quot;&gt;─&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;요청 URL에 주는 파라미터에 따라 호출 메서드 제한하기&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;- 파라미터의 존재 유무로 요청을 구분합니다.&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 4px; font-stretch: normal; font-size: 0.9333em; line-height: 1.5em; font-family: Consolas, &amp;quot;Lucida Console&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, &amp;quot;Courier New&amp;quot;, monospace; background: rgb(0, 0, 0); color: rgb(248, 248, 248);&quot;&gt;&lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;/* Spring webMVC: 요청 URL에 주는 파라미터에 따라 호출 메서드 제한하기
 * 
 */&lt;/span&gt;
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;package&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;control&lt;/span&gt;;

&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;java.io.PrintWriter&lt;/span&gt;;

&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;javax.servlet.http.HttpServletRequest&lt;/span&gt;;
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;javax.servlet.http.HttpServletResponse&lt;/span&gt;;

&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;org.springframework.stereotype.Controller&lt;/span&gt;;
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;org.springframework.web.bind.annotation.RequestMapping&lt;/span&gt;;
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;org.springframework.web.bind.annotation.RequestMethod&lt;/span&gt;;

@&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Controller&lt;/span&gt;  
@RequestMapping(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;/control/controller07/&quot;&lt;/span&gt;)
&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;class&lt;/span&gt; &lt;span style=&quot;text-decoration-line: underline;&quot;&gt;Controller07&lt;/span&gt; {
 
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;@RequestMapping&lt;/span&gt;(&lt;span style=&quot;color: rgb(51, 135, 204);&quot;&gt;path&lt;/span&gt;=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok&quot;&lt;/span&gt;, &lt;span style=&quot;color: rgb(51, 135, 204);&quot;&gt;params&lt;/span&gt;={&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;name&quot;&lt;/span&gt;}) 
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;void&lt;/span&gt; &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;get&lt;/span&gt;(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletRequest&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;request&lt;/span&gt;, &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletResponse&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;response&lt;/span&gt;) &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;throws&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Exception&lt;/span&gt; {
    response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;setContentType(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;text/plain;charset=UTF-8&quot;&lt;/span&gt;);
    &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;PrintWriter&lt;/span&gt; out &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt; response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;getWriter();
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;println(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;name 있어요!&quot;&lt;/span&gt;);
  }

  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;@RequestMapping&lt;/span&gt;(&lt;span style=&quot;color: rgb(51, 135, 204);&quot;&gt;path&lt;/span&gt;=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok&quot;&lt;/span&gt;, &lt;span style=&quot;color: rgb(51, 135, 204);&quot;&gt;params&lt;/span&gt;={&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;age&quot;&lt;/span&gt;, &lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;tel&quot;&lt;/span&gt;})
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;void&lt;/span&gt; &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;post&lt;/span&gt;(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletRequest&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;request&lt;/span&gt;, &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletResponse&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;response&lt;/span&gt;) &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;throws&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Exception&lt;/span&gt; {
    response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;setContentType(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;text/plain;charset=UTF-8&quot;&lt;/span&gt;);
    &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;PrintWriter&lt;/span&gt; out &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt; response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;getWriter();
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;println(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;age와 tel 있어요!&quot;&lt;/span&gt;);
  }
}&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;@RequestMapping의 params 속성에 지정한 값과 일치하는 요청&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;파라미터가&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;있을 경우에 호출됩니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 130, 153); font-size: 14.6667px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 130, 153); font-size: 14.6667px;&quot;&gt;▶&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;실행 방법:&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;http://localhost8080:/spring-web01/control/controller07/ok.do?&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;amp;age=20&amp;amp;tel=111&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;b&gt;─&lt;/b&gt;&lt;/span&gt;&lt;b style=&quot;font-size: 16px;&quot;&gt;─&lt;/b&gt;&lt;b style=&quot;font-size: 16px;&quot;&gt;─&lt;/b&gt;&lt;b style=&quot;font-size: 16px;&quot;&gt;─&lt;/b&gt;&lt;b style=&quot;font-size: 16px;&quot;&gt;─&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&lt;b&gt;HTTP 요청 프로토콜에 지정한 이름의 헤더가 있을 경우에 호출됩니다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 4px; font-stretch: normal; font-size: 0.9333em; line-height: 1.5em; font-family: Consolas, &amp;quot;Lucida Console&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, &amp;quot;Courier New&amp;quot;, monospace; background: rgb(0, 0, 0); color: rgb(248, 248, 248);&quot;&gt;&lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;/* Spring webMVC: 요청 프로토콜의 헤더 이름을 요청 조건으로 지정
 * =&amp;gt; HTTP 요청 프로토콜에 지정한 이름의 헤더가 있을 경우에 호출된다.
 * 
 */&lt;/span&gt;
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;package&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;control&lt;/span&gt;;

&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;java.io.PrintWriter&lt;/span&gt;;

&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;javax.servlet.http.HttpServletRequest&lt;/span&gt;;
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;javax.servlet.http.HttpServletResponse&lt;/span&gt;;

&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;org.springframework.stereotype.Controller&lt;/span&gt;;
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;org.springframework.web.bind.annotation.RequestMapping&lt;/span&gt;;
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;org.springframework.web.bind.annotation.RequestMethod&lt;/span&gt;;

@&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Controller&lt;/span&gt;  
@RequestMapping(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;/control/controller08/&quot;&lt;/span&gt;)
&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;class&lt;/span&gt; &lt;span style=&quot;text-decoration-line: underline;&quot;&gt;Controller08&lt;/span&gt; {
 
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;@RequestMapping&lt;/span&gt;(&lt;span style=&quot;color: rgb(51, 135, 204);&quot;&gt;path&lt;/span&gt;=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok&quot;&lt;/span&gt;, &lt;span style=&quot;color: rgb(51, 135, 204);&quot;&gt;headers&lt;/span&gt;=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;aaaa&quot;&lt;/span&gt;) 
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;void&lt;/span&gt; &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;get&lt;/span&gt;(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletRequest&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;request&lt;/span&gt;, &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletResponse&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;response&lt;/span&gt;) &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;throws&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Exception&lt;/span&gt; {
    response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;setContentType(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;text/plain;charset=UTF-8&quot;&lt;/span&gt;);
    &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;PrintWriter&lt;/span&gt; out &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt; response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;getWriter();
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;println(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;aaaa 있어요!&quot;&lt;/span&gt;);
  }

  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;@RequestMapping&lt;/span&gt;(&lt;span style=&quot;color: rgb(51, 135, 204);&quot;&gt;path&lt;/span&gt;=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok&quot;&lt;/span&gt;, &lt;span style=&quot;color: rgb(51, 135, 204);&quot;&gt;headers&lt;/span&gt;={&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;bbbb&quot;&lt;/span&gt;, &lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;cccc&quot;&lt;/span&gt;})
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;void&lt;/span&gt; &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;post&lt;/span&gt;(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletRequest&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;request&lt;/span&gt;, &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletResponse&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;response&lt;/span&gt;) &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;throws&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Exception&lt;/span&gt; {
    response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;setContentType(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;text/plain;charset=UTF-8&quot;&lt;/span&gt;);
    &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;PrintWriter&lt;/span&gt; out &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt; response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;getWriter();
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;println(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;bbbb, cccc 있어요!&quot;&lt;/span&gt;);
  }
}&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 14.6667px; font-weight: bold; text-align: center;&quot;&gt;AJAX 요청을 통해 헤더 값을 넘겨주는&amp;nbsp;코드&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 14.6667px; font-weight: bold; text-align: center;&quot;&gt;* 참고 : &lt;/span&gt;&lt;span style=&quot;font-size: 14.6667px; text-align: center;&quot;&gt;그냥 html을 통해선 헤더 값을 넘겨줄 수 없어요.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 4px; font-stretch: normal; font-size: 0.9333em; line-height: 1.5em; font-family: Consolas, &amp;quot;Lucida Console&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, &amp;quot;Courier New&amp;quot;, monospace; background: rgb(0, 0, 0); color: rgb(248, 248, 248);&quot;&gt;&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;html&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;meta charset=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;UTF-8&quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Insert title here&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;button id=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;btn1&quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;&quot;aaaa&quot; 헤더 요청&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;button id=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;btn2&quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;&quot;bbbb&quot;, &quot;cccc&quot; 헤더 요청&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;textarea id=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ta&quot;&lt;/span&gt; cols=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;80&quot;&lt;/span&gt; rows=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;8&quot;&lt;/span&gt;&amp;gt;&amp;lt;/textarea&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;

&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;script src=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js&quot;&lt;/span&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&amp;lt;&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;script&lt;/span&gt;&amp;gt;
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;$&lt;/span&gt;(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;#btn1&quot;&lt;/span&gt;).&lt;span style=&quot;color: rgb(218, 208, 133);&quot;&gt;click&lt;/span&gt;(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;function&lt;/span&gt;() {
    &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;$&lt;/span&gt;.ajax(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;control/controller08/ok.do&quot;&lt;/span&gt;, {
        method: &lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;get&quot;&lt;/span&gt;,
        headers: {&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;aaaa&quot;&lt;/span&gt;:&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;hello&quot;&lt;/span&gt;},
        dataType: &lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;text&quot;&lt;/span&gt;})
        .done(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;function&lt;/span&gt;(result) {
            &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;$&lt;/span&gt;(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;#ta&quot;&lt;/span&gt;).val(result)
        })
        .fail(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;function&lt;/span&gt;(xhr, status, error) {
            &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;$&lt;/span&gt;(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;#ta&quot;&lt;/span&gt;).val(xhr.&lt;span style=&quot;color: rgb(207, 106, 76);&quot;&gt;responseText&lt;/span&gt;)
        })
})
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;$&lt;/span&gt;(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;#btn2&quot;&lt;/span&gt;).&lt;span style=&quot;color: rgb(218, 208, 133);&quot;&gt;click&lt;/span&gt;(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;function&lt;/span&gt;() {
    &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;$&lt;/span&gt;.ajax(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;control/controller08/ok.do&quot;&lt;/span&gt;, {
        method: &lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;get&quot;&lt;/span&gt;,
        headers: {&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;bbbb&quot;&lt;/span&gt;:&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;hello&quot;&lt;/span&gt;, 
                   &lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;cccc&quot;&lt;/span&gt;:&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;hello&quot;&lt;/span&gt;}, &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 한글은 헤더로 넘겨줄 수 없습니다.&lt;/span&gt;
        dataType: &lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;text&quot;&lt;/span&gt;})
        .done(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;function&lt;/span&gt;(result) {
            &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;$&lt;/span&gt;(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;#ta&quot;&lt;/span&gt;).val(result)
        })
        .fail(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;function&lt;/span&gt;(xhr, status, error) {
            &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;$&lt;/span&gt;(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;#ta&quot;&lt;/span&gt;).val(xhr.&lt;span style=&quot;color: rgb(207, 106, 76);&quot;&gt;responseText&lt;/span&gt;)
        })
})
&amp;lt;/&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;script&lt;/span&gt;&amp;gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 130, 153); font-size: 14.6667px;&quot;&gt;▶&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;실행 방법:&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;http://localhost8080:/spring-web01/controller08.html&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;b&gt;─&lt;/b&gt;&lt;/span&gt;&lt;b style=&quot;font-size: 16px;&quot;&gt;─&lt;/b&gt;&lt;b style=&quot;font-size: 16px;&quot;&gt;─&lt;/b&gt;&lt;b style=&quot;font-size: 16px;&quot;&gt;─&lt;/b&gt;&lt;b style=&quot;font-size: 16px;&quot;&gt;─&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;b&gt;요청 프로토콜의 Accept 헤더의 값에 따라 호출될 메서드 결정&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 4px; font-stretch: normal; font-size: 0.9333em; line-height: 1.5em; font-family: Consolas, &amp;quot;Lucida Console&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, &amp;quot;Courier New&amp;quot;, monospace; background: rgb(0, 0, 0); color: rgb(248, 248, 248);&quot;&gt;&lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;/* Spring webMVC: 요청 프로토콜의 Accept 헤더의 값에 따라 호출될 메서드 결정
 * 
 */&lt;/span&gt;
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;package&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;control&lt;/span&gt;;

&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;java.io.PrintWriter&lt;/span&gt;;

&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;javax.servlet.http.HttpServletRequest&lt;/span&gt;;
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;javax.servlet.http.HttpServletResponse&lt;/span&gt;;

&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;org.springframework.http.MediaType&lt;/span&gt;;
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;org.springframework.stereotype.Controller&lt;/span&gt;;
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;org.springframework.web.bind.annotation.RequestMapping&lt;/span&gt;;
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;org.springframework.web.bind.annotation.RequestMethod&lt;/span&gt;;

@&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Controller&lt;/span&gt;  
@RequestMapping(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;/control/controller09/&quot;&lt;/span&gt;)
&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;class&lt;/span&gt; &lt;span style=&quot;text-decoration-line: underline;&quot;&gt;Controller09&lt;/span&gt; {
  
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;@RequestMapping&lt;/span&gt;(&lt;span style=&quot;color: rgb(51, 135, 204);&quot;&gt;path&lt;/span&gt;=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok&quot;&lt;/span&gt;, &lt;span style=&quot;color: rgb(51, 135, 204);&quot;&gt;produces&lt;/span&gt;=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;text/plain&quot;&lt;/span&gt;) 
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;void&lt;/span&gt; &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;get&lt;/span&gt;(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletRequest&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;request&lt;/span&gt;, &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletResponse&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;response&lt;/span&gt;) &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;throws&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Exception&lt;/span&gt; {
    response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;setContentType(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;text/plain;charset=UTF-8&quot;&lt;/span&gt;);
    &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;PrintWriter&lt;/span&gt; out &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt; response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;getWriter();
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;println(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;text/plain 보냄!&quot;&lt;/span&gt;);
  }

  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;@RequestMapping&lt;/span&gt;(&lt;span style=&quot;color: rgb(51, 135, 204);&quot;&gt;path&lt;/span&gt;=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok&quot;&lt;/span&gt;, &lt;span style=&quot;color: rgb(51, 135, 204);&quot;&gt;produces&lt;/span&gt;=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;application/json&quot;&lt;/span&gt;)
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;void&lt;/span&gt; &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;post&lt;/span&gt;(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletRequest&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;request&lt;/span&gt;, &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletResponse&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;response&lt;/span&gt;) &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;throws&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Exception&lt;/span&gt; {
    response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;setContentType(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;text/plain;charset=UTF-8&quot;&lt;/span&gt;);
    &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;PrintWriter&lt;/span&gt; out &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt; response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;getWriter();
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;println(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;application/json 보냄!&quot;&lt;/span&gt;);
  }
}&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 130, 153); font-size: 14.6667px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 130, 153); font-size: 14.6667px;&quot;&gt;▶&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Accept 요청 헤더&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp;웹 브라우저가 웹 서버에게 요구하는 콘텐트의 타입을 가리킵니다.&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;span style=&quot;color: rgb(0, 130, 153); font-size: 14.6667px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: rgb(0, 130, 153); font-size: 14.6667px;&quot;&gt;▶ &lt;span style=&quot;color: rgb(0, 0, 0); font-size: 11pt;&quot;&gt;produces란?&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-size: 11pt;&quot;&gt;&amp;nbsp; &amp;nbsp; - 이 메서드를 생산하는 콘텐트의 타입을 가리킵니다.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: rgb(0, 130, 153); font-size: 14.6667px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 14.6667px; font-weight: bold; text-align: center;&quot;&gt;Accept&amp;nbsp;헤더의 값에 따라 호출될 메서드를 결정하는 html 코드&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 4px; font-stretch: normal; font-size: 0.9333em; line-height: 1.5em; font-family: Consolas, &amp;quot;Lucida Console&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, &amp;quot;Courier New&amp;quot;, monospace; background: rgb(0, 0, 0); color: rgb(248, 248, 248);&quot;&gt;&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;html&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;meta charset=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;UTF-8&quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Insert title here&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;button id=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;btn1&quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;&quot;text/plain&quot; 콘텐트 요청&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;button id=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;btn2&quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;&quot;application/json&quot; 콘텐트 요청&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;textarea id=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ta&quot;&lt;/span&gt; cols=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;80&quot;&lt;/span&gt; rows=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;8&quot;&lt;/span&gt;&amp;gt;&amp;lt;/textarea&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;

&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;script src=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js&quot;&lt;/span&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&amp;lt;&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;script&lt;/span&gt;&amp;gt;
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;$&lt;/span&gt;(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;#btn1&quot;&lt;/span&gt;).&lt;span style=&quot;color: rgb(218, 208, 133);&quot;&gt;click&lt;/span&gt;(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;function&lt;/span&gt;() {
    &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;$&lt;/span&gt;.ajax(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;control/controller09/ok.do&quot;&lt;/span&gt;, {
        method: &lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;get&quot;&lt;/span&gt;,
        headers: {&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;Accept&quot;&lt;/span&gt;:&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;text/plain&quot;&lt;/span&gt;},
        dataType: &lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;text&quot;&lt;/span&gt;})
        .done(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;function&lt;/span&gt;(result) {
            &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;$&lt;/span&gt;(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;#ta&quot;&lt;/span&gt;).val(result)
        })
        .fail(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;function&lt;/span&gt;(xhr, status, error) {
            &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;$&lt;/span&gt;(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;#ta&quot;&lt;/span&gt;).val(xhr.&lt;span style=&quot;color: rgb(207, 106, 76);&quot;&gt;responseText&lt;/span&gt;)
        })
})
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;$&lt;/span&gt;(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;#btn2&quot;&lt;/span&gt;).&lt;span style=&quot;color: rgb(218, 208, 133);&quot;&gt;click&lt;/span&gt;(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;function&lt;/span&gt;() {
    &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;$&lt;/span&gt;.ajax(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;control/controller09/ok.do&quot;&lt;/span&gt;, {
        method: &lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;get&quot;&lt;/span&gt;,
        headers: {&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;Accept&quot;&lt;/span&gt;:&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;application/json&quot;&lt;/span&gt;},
        dataType: &lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;json&quot;&lt;/span&gt;})
        .done(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;function&lt;/span&gt;(result) {
            &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;$&lt;/span&gt;(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;#ta&quot;&lt;/span&gt;).val(result)
        })
        .fail(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;function&lt;/span&gt;(xhr, status, error) {
            &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;$&lt;/span&gt;(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;#ta&quot;&lt;/span&gt;).val(xhr.&lt;span style=&quot;color: rgb(207, 106, 76);&quot;&gt;responseText&lt;/span&gt;)
        })
})
&amp;lt;/&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;script&lt;/span&gt;&amp;gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 130, 153); font-size: 14.6667px;&quot;&gt;▶&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;실행 방법:&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;http://localhost8080:/spring-web01/controller09.html&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;b&gt;─&lt;/b&gt;&lt;/span&gt;&lt;b style=&quot;font-size: 16px;&quot;&gt;─&lt;/b&gt;&lt;b style=&quot;font-size: 16px;&quot;&gt;─&lt;/b&gt;&lt;b style=&quot;font-size: 16px;&quot;&gt;─&lt;/b&gt;&lt;b style=&quot;font-size: 16px;&quot;&gt;─&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;요청 프로토콜의 Content-Type 헤더 값에 따라&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;호출될 메서드를&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;b style=&quot;font-size: 11pt;&quot;&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;결정하기&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 4px; font-stretch: normal; font-size: 0.9333em; line-height: 1.5em; font-family: Consolas, &amp;quot;Lucida Console&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, &amp;quot;Courier New&amp;quot;, monospace; background: rgb(0, 0, 0); color: rgb(248, 248, 248);&quot;&gt;&lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;/* Spring webMVC: 요청 프로토콜의 Content-Type 헤더 값에 따라 호출될 메서드 결정
 * =&amp;gt; Content-Type 요청 헤더?
 *    - 웹 브라우저가 웹 서버에게 보내는 데이터의 형식을 의미한다.
 */&lt;/span&gt;   
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;package&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;control&lt;/span&gt;;

&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;java.io.PrintWriter&lt;/span&gt;;

&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;javax.servlet.http.HttpServletRequest&lt;/span&gt;;
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;javax.servlet.http.HttpServletResponse&lt;/span&gt;;

&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;org.springframework.http.MediaType&lt;/span&gt;;
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;org.springframework.stereotype.Controller&lt;/span&gt;;
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;org.springframework.web.bind.annotation.RequestMapping&lt;/span&gt;;
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;org.springframework.web.bind.annotation.RequestMethod&lt;/span&gt;;

@&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Controller&lt;/span&gt;  
@RequestMapping(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;/control/controller10/&quot;&lt;/span&gt;)
&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;class&lt;/span&gt; &lt;span style=&quot;text-decoration-line: underline;&quot;&gt;Controller10&lt;/span&gt; {
  
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;@RequestMapping&lt;/span&gt;(&lt;span style=&quot;color: rgb(51, 135, 204);&quot;&gt;path&lt;/span&gt;=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok&quot;&lt;/span&gt;, &lt;span style=&quot;color: rgb(51, 135, 204);&quot;&gt;consumes&lt;/span&gt;=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;text/plain&quot;&lt;/span&gt;) 
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;void&lt;/span&gt; &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;get&lt;/span&gt;(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletRequest&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;request&lt;/span&gt;, &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletResponse&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;response&lt;/span&gt;) &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;throws&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Exception&lt;/span&gt; {
    response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;setContentType(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;text/plain;charset=UTF-8&quot;&lt;/span&gt;);
    &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;PrintWriter&lt;/span&gt; out &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt; response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;getWriter();
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;println(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;text/plain 데이터를 받아서 처리했음!&quot;&lt;/span&gt;);
  }

  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;@RequestMapping&lt;/span&gt;(&lt;span style=&quot;color: rgb(51, 135, 204);&quot;&gt;path&lt;/span&gt;=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok&quot;&lt;/span&gt;, &lt;span style=&quot;color: rgb(51, 135, 204);&quot;&gt;consumes&lt;/span&gt;=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;application/json&quot;&lt;/span&gt;)
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;void&lt;/span&gt; &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;post&lt;/span&gt;(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletRequest&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;request&lt;/span&gt;, &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletResponse&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;response&lt;/span&gt;) &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;throws&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Exception&lt;/span&gt; {
    response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;setContentType(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;text/plain;charset=UTF-8&quot;&lt;/span&gt;);
    &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;PrintWriter&lt;/span&gt; out &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt; response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;getWriter();
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;println(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;application/json 데이터를 받아서 처리했음!&quot;&lt;/span&gt;);
  }
}
&lt;/pre&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 130, 153); font-size: 14.6667px;&quot;&gt;▶ &lt;/span&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;cosumes 란?&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-size: 14.6667px;&quot;&gt;&amp;nbsp; &amp;nbsp; - 클라이언트가 보낸 데이터의 형식 중에서 이 메서드가 처리할 수 있는&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-size: 14.6667px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 형식을지정&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 0, 0); font-size: 14.6667px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;pre style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 4px; font-stretch: normal; font-size: 0.9333em; line-height: 1.5em; font-family: Consolas, &amp;quot;Lucida Console&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, &amp;quot;Courier New&amp;quot;, monospace; background: rgb(0, 0, 0); color: rgb(248, 248, 248);&quot;&gt;&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;html&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;meta charset=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;UTF-8&quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Insert title here&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;button id=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;btn1&quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;&quot;text/plain&quot; 콘텐트 요청&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;button id=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;btn2&quot;&lt;/span&gt;&amp;gt;&lt;/span&gt;&quot;application/json&quot; 콘텐트 요청&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;textarea id=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ta&quot;&lt;/span&gt; cols=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;80&quot;&lt;/span&gt; rows=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;8&quot;&lt;/span&gt;&amp;gt;&amp;lt;/textarea&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;

&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;script src=&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js&quot;&lt;/span&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&amp;lt;&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;script&lt;/span&gt;&amp;gt;
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;$&lt;/span&gt;(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;#btn1&quot;&lt;/span&gt;).&lt;span style=&quot;color: rgb(218, 208, 133);&quot;&gt;click&lt;/span&gt;(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;function&lt;/span&gt;() {
    &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;$&lt;/span&gt;.ajax(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;control/controller10/ok.do&quot;&lt;/span&gt;, {
        method: &lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;post&quot;&lt;/span&gt;,
        data: &lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;hello!&quot;&lt;/span&gt;,
        headers: {&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;Content-Type&quot;&lt;/span&gt;:&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;text/plain&quot;&lt;/span&gt;},
        dataType: &lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;text&quot;&lt;/span&gt;})
        .done(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;function&lt;/span&gt;(result) {
            &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;$&lt;/span&gt;(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;#ta&quot;&lt;/span&gt;).val(result)
        })
        .fail(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;function&lt;/span&gt;(xhr, status, error) {
            &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;$&lt;/span&gt;(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;#ta&quot;&lt;/span&gt;).val(xhr.&lt;span style=&quot;color: rgb(207, 106, 76);&quot;&gt;responseText&lt;/span&gt;)
        })
})
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;$&lt;/span&gt;(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;#btn2&quot;&lt;/span&gt;).&lt;span style=&quot;color: rgb(218, 208, 133);&quot;&gt;click&lt;/span&gt;(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;function&lt;/span&gt;() {
    &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;$&lt;/span&gt;.ajax(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;control/controller10/ok.do&quot;&lt;/span&gt;, {
        method: &lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;post&quot;&lt;/span&gt;,
        data: &lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;'{&quot;name&quot;:&quot;hong&quot;, &quot;age&quot;:&quot;20&quot;, &quot;tel&quot;:&quot;1111-1111&quot;}'&lt;/span&gt;,
        headers: {&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;Content-Type&quot;&lt;/span&gt;:&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;application/json&quot;&lt;/span&gt;},
        dataType: &lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;json&quot;&lt;/span&gt;})
        .done(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;function&lt;/span&gt;(result) {
            &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;$&lt;/span&gt;(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;#ta&quot;&lt;/span&gt;).val(result)
        })
        .fail(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;function&lt;/span&gt;(xhr, status, error) {
            &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;$&lt;/span&gt;(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;#ta&quot;&lt;/span&gt;).val(xhr.&lt;span style=&quot;color: rgb(207, 106, 76);&quot;&gt;responseText&lt;/span&gt;)
        })
})
&amp;lt;/&lt;span style=&quot;color: rgb(224, 197, 137);&quot;&gt;script&lt;/span&gt;&amp;gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 130, 153); font-size: 14.6667px;&quot;&gt;▶&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;실행 방법:&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;http://localhost8080:/spring-web01/controller10.html&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&lt;b&gt;─&lt;/b&gt;&lt;/span&gt;&lt;b style=&quot;font-size: 16px;&quot;&gt;─&lt;/b&gt;&lt;b style=&quot;font-size: 16px;&quot;&gt;─&lt;/b&gt;&lt;b style=&quot;font-size: 16px;&quot;&gt;─&lt;/b&gt;&lt;b style=&quot;font-size: 16px;&quot;&gt;─&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;Request Handler(요청을 처리하는 메서드)의 파라미터들 I&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 130, 153); font-size: 14.6667px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(0, 130, 153); font-size: 14.6667px;&quot;&gt;▶&lt;/span&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;&amp;nbsp;프론트 컨트롤러는 페이지 컨트롤러의 메서드를 호출할 때,&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size:12pt;&quot;&gt;&amp;nbsp; &amp;nbsp;그 메서드가 어떤 파라미터 값을 요구하는 지를 분석하여&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size:12pt;&quot;&gt;&amp;nbsp; &amp;nbsp;그에 해당하는 값을 자동으로 꼽아줍니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size:12pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 130, 153); font-size: 14.6667px;&quot;&gt;&amp;nbsp;▶&lt;/span&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;&amp;nbsp;Request Handler의 파라미터로 선언할 수 있는 것&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size:12pt;&quot;&gt;&amp;nbsp; &amp;nbsp; 1) HttpServletRequest, ServletRequest&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size:12pt;&quot;&gt;&amp;nbsp; &amp;nbsp; 2) HttpServletResponse, ServletResponse&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size:12pt;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;3) HttpSession&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;4) Map, Model&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;5) 요청 파라미터&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 4px; font-stretch: normal; font-size: 0.9333em; line-height: 1.5em; font-family: Consolas, &amp;quot;Lucida Console&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, &amp;quot;Courier New&amp;quot;, monospace; background: rgb(0, 0, 0); color: rgb(248, 248, 248);&quot;&gt;&lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;/* Spring webMVC: Request Handler(요청을 처리하는 메서드)의 파라미터들 I
 * =&amp;gt; Request Handler의 파라미터로 선언할 수 있는 것
 *    1) HttpRequestServlet, ServletRequest
 */&lt;/span&gt;   
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;package&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;control&lt;/span&gt;;

&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;java.io.FileInputStream&lt;/span&gt;;
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;java.io.PrintWriter&lt;/span&gt;;
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;java.util.Map&lt;/span&gt;;

&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;javax.servlet.http.HttpServletRequest&lt;/span&gt;;
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;javax.servlet.http.HttpServletResponse&lt;/span&gt;;
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;javax.servlet.http.HttpSession&lt;/span&gt;;

&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;org.springframework.stereotype.Controller&lt;/span&gt;;
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;org.springframework.ui.Model&lt;/span&gt;;
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;org.springframework.web.bind.annotation.RequestMapping&lt;/span&gt;;

@&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Controller&lt;/span&gt;  
@RequestMapping(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;/control/controller11/&quot;&lt;/span&gt;)
&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;class&lt;/span&gt; &lt;span style=&quot;text-decoration-line: underline;&quot;&gt;Controller11&lt;/span&gt; {
  
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;@RequestMapping&lt;/span&gt;(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok1&quot;&lt;/span&gt;) 
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;void&lt;/span&gt; &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;ok1&lt;/span&gt;() &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;throws&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Exception&lt;/span&gt; {
    &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;System&lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;println(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok1(): 프론트 컨트롤러로부터 아무것도 받지 않는다.&quot;&lt;/span&gt;);
  }

  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;@RequestMapping&lt;/span&gt;(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok2&quot;&lt;/span&gt;)
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;void&lt;/span&gt; &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;ok2&lt;/span&gt;(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletRequest&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;request&lt;/span&gt;) &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;throws&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Exception&lt;/span&gt; {
    &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;System&lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;println(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok2()&quot;&lt;/span&gt;);
  }

  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;@RequestMapping&lt;/span&gt;(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok3&quot;&lt;/span&gt;)
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;void&lt;/span&gt; &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;ok3&lt;/span&gt;(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletResponse&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;response&lt;/span&gt;) &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;throws&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Exception&lt;/span&gt; {
    response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;setContentType(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;text/plain;charset=UTF-8&quot;&lt;/span&gt;);
    &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;PrintWriter&lt;/span&gt; out &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt; response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;getWriter();
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;println(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok3()&quot;&lt;/span&gt;);
  }

  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;@RequestMapping&lt;/span&gt;(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok4&quot;&lt;/span&gt;)
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;void&lt;/span&gt; &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;ok4&lt;/span&gt;(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletRequest&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;request&lt;/span&gt;, &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletResponse&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;response&lt;/span&gt;) &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;throws&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Exception&lt;/span&gt; {
    response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;setContentType(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;text/plain;charset=UTF-8&quot;&lt;/span&gt;);
    &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;PrintWriter&lt;/span&gt; out &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt; response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;getWriter();
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;println(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok4()&quot;&lt;/span&gt;);
  }

  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;@RequestMapping&lt;/span&gt;(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok5&quot;&lt;/span&gt;)
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;void&lt;/span&gt; &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;ok5&lt;/span&gt;(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpSession&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;session&lt;/span&gt;, &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletResponse&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;response&lt;/span&gt;) &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;throws&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Exception&lt;/span&gt; {
    response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;setContentType(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;text/plain;charset=UTF-8&quot;&lt;/span&gt;);
    &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;PrintWriter&lt;/span&gt; out &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt; response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;getWriter();
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;println(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok5()&quot;&lt;/span&gt;);
  }
  
  &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 프론트 컨트롤러가 줄 수 없는 값을 메서드에서 요구할 경우,&lt;/span&gt;
  &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 즉 파라미터에 선언할 경우,&lt;/span&gt;
  &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 실행할 때 오류가 발생한다!&lt;/span&gt;
  &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 예) 다음 메서드에서 FileInputStream 파라미터가 이런 경우이다.&lt;/span&gt;
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;@RequestMapping&lt;/span&gt;(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok6&quot;&lt;/span&gt;)
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;void&lt;/span&gt; &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;ok6&lt;/span&gt;(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;FileInputStream&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;in&lt;/span&gt;, &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletResponse&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;response&lt;/span&gt;) &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;throws&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Exception&lt;/span&gt; {
    &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;System&lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;println(in);
    response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;setContentType(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;text/plain;charset=UTF-8&quot;&lt;/span&gt;);
    &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;PrintWriter&lt;/span&gt; out &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt; response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;getWriter();
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;println(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok6()&quot;&lt;/span&gt;);

  }
  
  &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 이 메서드에서 실행한 결과를 담을 빈 바구니를 요구할 수 있다.&lt;/span&gt;
  &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 이 바구니에 값을 담으면, JSP에서 꺼내 쓸 수 있다.&lt;/span&gt;
  &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 바구니의 타입은 Map 또는 Model 등이 가능하다.&lt;/span&gt;
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;@RequestMapping&lt;/span&gt;(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok7&quot;&lt;/span&gt;)
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;void&lt;/span&gt; &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;ok7&lt;/span&gt;(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Map&amp;lt;String, Object&amp;gt;&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;store&lt;/span&gt;, &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletResponse&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;response&lt;/span&gt;) &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;throws&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Exception&lt;/span&gt; {
    response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;setContentType(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;text/plain;charset=UTF-8&quot;&lt;/span&gt;);
    &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;PrintWriter&lt;/span&gt; out &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt; response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;getWriter();
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;println(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok7()&quot;&lt;/span&gt;);
    
    store&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;put(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;name&quot;&lt;/span&gt;, &lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;홍길동&quot;&lt;/span&gt;);
    store&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;put(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;age&quot;&lt;/span&gt;, &lt;span style=&quot;color: rgb(51, 135, 204);&quot;&gt;20&lt;/span&gt;);
  }
  &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 이렇게 바구니에 담은 데이터는&lt;/span&gt;
  &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 스프링의 프론트 컨트롤러가 ServletRequest에 보관한다.&lt;/span&gt;
  &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 그래서 JSP에서 꺼내 쓸 수 있는 것이다.&lt;/span&gt;

  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;@RequestMapping&lt;/span&gt;(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok8&quot;&lt;/span&gt;)
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;void&lt;/span&gt; &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;ok8&lt;/span&gt;(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Model&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;store&lt;/span&gt;, &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletResponse&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;response&lt;/span&gt;) &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;throws&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Exception&lt;/span&gt; {
    response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;setContentType(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;text/plain;charset=UTF-8&quot;&lt;/span&gt;);
    &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;PrintWriter&lt;/span&gt; out &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt; response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;getWriter();
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;println(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok8()&quot;&lt;/span&gt;);
    
    store&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;addAttribute(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;name&quot;&lt;/span&gt;, &lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;홍길동&quot;&lt;/span&gt;);
    store&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;addAttribute(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;age&quot;&lt;/span&gt;, &lt;span style=&quot;color: rgb(51, 135, 204);&quot;&gt;20&lt;/span&gt;);
      
    &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// Model이나 Map이나 쓰임새는 같다.&lt;/span&gt;
    &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 이렇게 바구니에 담은 데이터는&lt;/span&gt;
    &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 스프링의 프론트 컨트롤러가 ServletRequest에 보관한다.&lt;/span&gt;
    &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 그래서 JSP에서 꺼내 쓸 수 있는 것이다.&lt;/span&gt;
  }

  &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 클라이언트가 보낸 데이터를 꺼내기&lt;/span&gt;
  &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// =&amp;gt; 예전처럼 문자열을 원하는 형식을 직접 형변환 해야 한다.&lt;/span&gt;
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;@RequestMapping&lt;/span&gt;(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok9&quot;&lt;/span&gt;)
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;void&lt;/span&gt; &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;ok9&lt;/span&gt;(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletRequest&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;request&lt;/span&gt;, &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletResponse&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;response&lt;/span&gt;) &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;throws&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Exception&lt;/span&gt; {
    response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;setContentType(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;text/plain;charset=UTF-8&quot;&lt;/span&gt;);
    &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;PrintWriter&lt;/span&gt; out &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt; response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;getWriter();
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;println(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok9()&quot;&lt;/span&gt;);
    
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;printf(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;name: %s&lt;span style=&quot;color: rgb(221, 242, 164);&quot;&gt;\n&lt;/span&gt;&quot;&lt;/span&gt;, request&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;getParameter(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;name&quot;&lt;/span&gt;));
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;printf(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;age: %d&lt;span style=&quot;color: rgb(221, 242, 164);&quot;&gt;\n&lt;/span&gt;&quot;&lt;/span&gt;, &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Integer&lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;parseInt(request&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;getParameter(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;age&quot;&lt;/span&gt;)));
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;printf(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;working: %b&lt;span style=&quot;color: rgb(221, 242, 164);&quot;&gt;\n&lt;/span&gt;&quot;&lt;/span&gt;, &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Boolean&lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;parseBoolean(request&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;getParameter(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;working&quot;&lt;/span&gt;)));
      
  }

  &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 클라이언트가 보내는 데이터의 이름과 동일한 이름으로 파라미터 변수를 선언한다.&lt;/span&gt;
  &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 그러면, 프론트 컨트롤러가 파라미터 이름과 같은 데이터를 찾아서 호출할 때 꼽아준다.&lt;/span&gt;
  &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 프론트 컨트롤러는 문자열을 원시타입의 값으로 자동으로 바꿔준다.&lt;/span&gt;
  &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 그 외의 타입에 대해서는 오류가 발생한다.&lt;/span&gt;
  &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 해결책? =&amp;gt; 웹 파라미터 타입 변환기를 설치해야 한다.&lt;/span&gt;
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;@RequestMapping&lt;/span&gt;(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok10&quot;&lt;/span&gt;)
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;void&lt;/span&gt; &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;ok10&lt;/span&gt;(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;String&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;name&lt;/span&gt;, &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;int&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;age&lt;/span&gt;, &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;boolean&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;working&lt;/span&gt;, &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletResponse&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;response&lt;/span&gt;) &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;throws&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Exception&lt;/span&gt; {
    response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;setContentType(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;text/plain;charset=UTF-8&quot;&lt;/span&gt;);
    &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;PrintWriter&lt;/span&gt; out &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt; response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;getWriter();
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;println(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok10()&quot;&lt;/span&gt;);
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;printf(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;name: %s&lt;span style=&quot;color: rgb(221, 242, 164);&quot;&gt;\n&lt;/span&gt;&quot;&lt;/span&gt;, name);
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;printf(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;age: %d&lt;span style=&quot;color: rgb(221, 242, 164);&quot;&gt;\n&lt;/span&gt;&quot;&lt;/span&gt;, age);
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;printf(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;working: %b&lt;span style=&quot;color: rgb(221, 242, 164);&quot;&gt;\n&lt;/span&gt;&quot;&lt;/span&gt;, working);
    
  }
}&lt;/pre&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 130, 153); font-size: 14.6667px;&quot;&gt;▶&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;실행 방법:&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;http://localhost8080:/spring-web01/control/controller11/ok숫자.do?파라미터명=값&amp;amp;파라미터명=값&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px; font-weight: bold;&quot;&gt;Request Handler(요청을 처리하는 메서드)의 파라미터들 II&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 4px; font-stretch: normal; font-size: 0.9333em; line-height: 1.5em; font-family: Consolas, &amp;quot;Lucida Console&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, &amp;quot;Courier New&amp;quot;, monospace; background: rgb(0, 0, 0); color: rgb(248, 248, 248);&quot;&gt;&lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;/* Spring webMVC: Request Handler(요청을 처리하는 메서드)의 파라미터들 II - 
 */&lt;/span&gt;  
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;package&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;control&lt;/span&gt;;

&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;java.io.PrintWriter&lt;/span&gt;;

&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;javax.servlet.http.HttpServletResponse&lt;/span&gt;;

&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;org.springframework.stereotype.Controller&lt;/span&gt;;
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;org.springframework.web.bind.annotation.RequestMapping&lt;/span&gt;;
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;org.springframework.web.bind.annotation.RequestParam&lt;/span&gt;;

@&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Controller&lt;/span&gt;  
@RequestMapping(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;/control/controller12/&quot;&lt;/span&gt;)
&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;class&lt;/span&gt; &lt;span style=&quot;text-decoration-line: underline;&quot;&gt;Controller12&lt;/span&gt; {
  &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 클라이언트가 보낸 파라미터 값을 받는 방법&lt;/span&gt;
  
  &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 1) 보내는 데이터(요청 파라미터)의 이름과 같은 이름으로 아규먼트 이름을 짓는다.&lt;/span&gt;
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;@RequestMapping&lt;/span&gt;(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok1&quot;&lt;/span&gt;)
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;void&lt;/span&gt; &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;ok1&lt;/span&gt;(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;String&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;name&lt;/span&gt;, &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;int&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;age&lt;/span&gt;, &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;boolean&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;working&lt;/span&gt;, &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletResponse&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;response&lt;/span&gt;) &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;throws&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Exception&lt;/span&gt; {
    response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;setContentType(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;text/plain;charset=UTF-8&quot;&lt;/span&gt;);
    &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;PrintWriter&lt;/span&gt; out &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt; response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;getWriter();
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;println(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok1()&quot;&lt;/span&gt;);
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;printf(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;name: %s&lt;span style=&quot;color: rgb(221, 242, 164);&quot;&gt;\n&lt;/span&gt;&quot;&lt;/span&gt;, name);
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;printf(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;age: %d&lt;span style=&quot;color: rgb(221, 242, 164);&quot;&gt;\n&lt;/span&gt;&quot;&lt;/span&gt;, age);
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;printf(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;working: %b&lt;span style=&quot;color: rgb(221, 242, 164);&quot;&gt;\n&lt;/span&gt;&quot;&lt;/span&gt;, working);
  }
  
  &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 2) 보내는 데이터(요청 파라미터)의 이름과 아규먼트 이름이 다를 경우&lt;/span&gt;
  &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;//    @RequestParam 애노테이션을 사용하여 그 이름을 지정할 수 있다.&lt;/span&gt;
  &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;//    단, @RequestParam을 붙이는 순간 필수 항목이 된다. URL에 파라미터로 넘겨주지 않으면 오류 발생!&lt;/span&gt;
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;@RequestMapping&lt;/span&gt;(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok2&quot;&lt;/span&gt;)
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;void&lt;/span&gt; &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;ok2&lt;/span&gt;(
      @&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;RequestParam&lt;/span&gt;(&lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;name&lt;/span&gt;=&quot;&lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;name&lt;/span&gt;&quot;) String n, 
      @&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;RequestParam&lt;/span&gt;(&lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;name&lt;/span&gt;=&quot;&lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;age&lt;/span&gt;&quot;)int a, 
      @&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;RequestParam&lt;/span&gt;(&lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;name&lt;/span&gt;=&quot;&lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;working&lt;/span&gt;&quot;)boolean w, 
      HttpServletResponse response) &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;throws&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Exception&lt;/span&gt; {
    response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;setContentType(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;text/plain;charset=UTF-8&quot;&lt;/span&gt;);
    &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;PrintWriter&lt;/span&gt; out &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt; response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;getWriter();
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;println(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok2()&quot;&lt;/span&gt;);
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;printf(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;name: %s&lt;span style=&quot;color: rgb(221, 242, 164);&quot;&gt;\n&lt;/span&gt;&quot;&lt;/span&gt;, n);
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;printf(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;age: %d&lt;span style=&quot;color: rgb(221, 242, 164);&quot;&gt;\n&lt;/span&gt;&quot;&lt;/span&gt;, a);
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;printf(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;working: %b&lt;span style=&quot;color: rgb(221, 242, 164);&quot;&gt;\n&lt;/span&gt;&quot;&lt;/span&gt;, w);
  }

  &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 3) @RequestParam 애노테이션에서 요청 파라미터 값을 선택 항목으로 만들기&lt;/span&gt;
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;@RequestMapping&lt;/span&gt;(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok3&quot;&lt;/span&gt;)
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;void&lt;/span&gt; &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;ok3&lt;/span&gt;(
      @&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;RequestParam&lt;/span&gt;(&lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;name&lt;/span&gt;=&quot;&lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;name&lt;/span&gt;&quot;, &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;required&lt;/span&gt;=&lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;false&lt;/span&gt;) String n, 
      @&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;RequestParam&lt;/span&gt;(&lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;name&lt;/span&gt;=&quot;&lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;age&lt;/span&gt;&quot;, &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;required&lt;/span&gt;=&lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;false&lt;/span&gt;)int a, 
      @&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;RequestParam&lt;/span&gt;(&lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;name&lt;/span&gt;=&quot;&lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;working&lt;/span&gt;&quot;, &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;required&lt;/span&gt;=&lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;false&lt;/span&gt;)boolean w, 
      HttpServletResponse response) &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;throws&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Exception&lt;/span&gt; {
    response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;setContentType(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;text/plain;charset=UTF-8&quot;&lt;/span&gt;);
    &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;PrintWriter&lt;/span&gt; out &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt; response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;getWriter();
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;println(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok3()&quot;&lt;/span&gt;);
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;printf(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;name: %s&lt;span style=&quot;color: rgb(221, 242, 164);&quot;&gt;\n&lt;/span&gt;&quot;&lt;/span&gt;, n);
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;printf(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;age: %d&lt;span style=&quot;color: rgb(221, 242, 164);&quot;&gt;\n&lt;/span&gt;&quot;&lt;/span&gt;, a);
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;printf(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;working: %b&lt;span style=&quot;color: rgb(221, 242, 164);&quot;&gt;\n&lt;/span&gt;&quot;&lt;/span&gt;, w);
  }

  &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 4) @RequestParam 애노테이션에서 요청 파라미터의 기본(default) 값 지정하기&lt;/span&gt;
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;@RequestMapping&lt;/span&gt;(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok4&quot;&lt;/span&gt;)
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;void&lt;/span&gt; &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;ok4&lt;/span&gt;(
      @&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;RequestParam&lt;/span&gt;(&lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;name&lt;/span&gt;=&quot;&lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;name&lt;/span&gt;&quot;, &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;required&lt;/span&gt;=&lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;false&lt;/span&gt;) String n, 
      @&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;RequestParam&lt;/span&gt;(&lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;name&lt;/span&gt;=&quot;&lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;age&lt;/span&gt;&quot;, &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;required&lt;/span&gt;=&lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;false&lt;/span&gt;, &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;defaultValue&lt;/span&gt;=&quot;&lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;0&lt;/span&gt;&quot;)int a, 
      @&lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;RequestParam&lt;/span&gt;(&lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;name&lt;/span&gt;=&quot;&lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;working&lt;/span&gt;&quot;, &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;required&lt;/span&gt;=&lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;false&lt;/span&gt;, &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;defaultValue&lt;/span&gt;=&quot;&lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;false&lt;/span&gt;&quot;)boolean w, 
      HttpServletResponse response) &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;throws&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Exception&lt;/span&gt; {
    response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;setContentType(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;text/plain;charset=UTF-8&quot;&lt;/span&gt;);
    &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;PrintWriter&lt;/span&gt; out &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt; response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;getWriter();
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;println(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok4()&quot;&lt;/span&gt;);
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;printf(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;name: %s&lt;span style=&quot;color: rgb(221, 242, 164);&quot;&gt;\n&lt;/span&gt;&quot;&lt;/span&gt;, n);
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;printf(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;age: %d&lt;span style=&quot;color: rgb(221, 242, 164);&quot;&gt;\n&lt;/span&gt;&quot;&lt;/span&gt;, a);
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;printf(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;working: %b&lt;span style=&quot;color: rgb(221, 242, 164);&quot;&gt;\n&lt;/span&gt;&quot;&lt;/span&gt;, w);
  }

  &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;// 5) 요청 파라미터 값을 바로 값 객체(Value Object; VO)에 저장하기&lt;/span&gt;
  &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;//    VO 객체의 프로퍼티 이름과 일치하는 요청 파라미터를 찾아서 그 값을 넣어준다.&lt;/span&gt;
  &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;//    누가? 프론트 컨트롤러가 Member 객체를 생성한 다음에 값을 넣어준다.&lt;/span&gt;
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;@RequestMapping&lt;/span&gt;(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok5&quot;&lt;/span&gt;)
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;void&lt;/span&gt; &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;ok5&lt;/span&gt;(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Member&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;member&lt;/span&gt;, &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;HttpServletResponse&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;response&lt;/span&gt;) &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;throws&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;Exception&lt;/span&gt; {
    response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;setContentType(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;text/plain;charset=UTF-8&quot;&lt;/span&gt;);
    &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;PrintWriter&lt;/span&gt; out &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt; response&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;getWriter();
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;println(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;ok5()&quot;&lt;/span&gt;);
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;printf(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;name: %s&lt;span style=&quot;color: rgb(221, 242, 164);&quot;&gt;\n&lt;/span&gt;&quot;&lt;/span&gt;, member&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;getName());
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;printf(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;age: %d&lt;span style=&quot;color: rgb(221, 242, 164);&quot;&gt;\n&lt;/span&gt;&quot;&lt;/span&gt;, member&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;getAge());
    out&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;printf(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;working: %b&lt;span style=&quot;color: rgb(221, 242, 164);&quot;&gt;\n&lt;/span&gt;&quot;&lt;/span&gt;, member&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;isWorking());
  }
}&lt;/pre&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;b&gt;ok5() 메서드 파라미터의 Member.class 작성하기&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 4px; font-stretch: normal; font-size: 0.9333em; line-height: 1.5em; font-family: Consolas, &amp;quot;Lucida Console&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, &amp;quot;Courier New&amp;quot;, monospace; background: rgb(0, 0, 0); color: rgb(248, 248, 248);&quot;&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;package&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;control&lt;/span&gt;;

&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;class&lt;/span&gt; &lt;span style=&quot;text-decoration-line: underline;&quot;&gt;Member&lt;/span&gt; {
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;String&lt;/span&gt; name;
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;int&lt;/span&gt; age;
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;boolean&lt;/span&gt; working;
  
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;String&lt;/span&gt; &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;getName&lt;/span&gt;() {
    &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;return&lt;/span&gt; name;
  }
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;void&lt;/span&gt; &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;setName&lt;/span&gt;(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;String&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;name&lt;/span&gt;) {
    &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;name &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt; name;
  }
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;int&lt;/span&gt; &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;getAge&lt;/span&gt;() {
    &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;return&lt;/span&gt; age;
  }
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;void&lt;/span&gt; &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;setAge&lt;/span&gt;(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;int&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;age&lt;/span&gt;) {
    &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;age &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt; age;
  }
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;boolean&lt;/span&gt; &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;isWorking&lt;/span&gt;() {
    &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;return&lt;/span&gt; working;
  }
  &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;void&lt;/span&gt; &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;setWorking&lt;/span&gt;(&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;boolean&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;working&lt;/span&gt;) {
    &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;this&lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;.&lt;/span&gt;working &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt; working;
  }
 
  
}
&lt;/p&gt;&lt;/pre&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 130, 153); font-size: 14.6667px;&quot;&gt;▶&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;실행 방법:&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;http://localhost8080:/spring-web01/control/controller12/ok숫자.do?파라미터명=값&amp;amp;파라미터명=값&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>Programming/java</category>
      <category>initBinder</category>
      <category>Java</category>
      <category>page controller</category>
      <category>Spring</category>
      <category>webmvc</category>
      <category>스프링</category>
      <category>자바</category>
      <category>페이지 컨트롤러</category>
      <category>프로퍼티 변환기</category>
      <author>필로그래머</author>
      <guid isPermaLink="true">https://uoonleen.tistory.com/71</guid>
      <comments>https://uoonleen.tistory.com/71#entry71comment</comments>
      <pubDate>Tue, 27 Jun 2017 11:37:32 +0900</pubDate>
    </item>
  </channel>
</rss>