<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>jamk-diary 님의 블로그</title>
    <link>https://jamk-diary.tistory.com/</link>
    <description>jamk-diary 님의 블로그 입니다.</description>
    <language>ko</language>
    <pubDate>Fri, 17 Jul 2026 20:15:22 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>jamk-diary</managingEditor>
    <item>
      <title>[260708] Ajax를 통해 로그인 페이지 만들기</title>
      <link>https://jamk-diary.tistory.com/92</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;605&quot; data-origin-height=&quot;207&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ky2ms/dJMcaf8gjGE/GTVdW58jkhCHSeRGhp4XEK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ky2ms/dJMcaf8gjGE/GTVdW58jkhCHSeRGhp4XEK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ky2ms/dJMcaf8gjGE/GTVdW58jkhCHSeRGhp4XEK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fky2ms%2FdJMcaf8gjGE%2FGTVdW58jkhCHSeRGhp4XEK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;605&quot; height=&quot;207&quot; data-origin-width=&quot;605&quot; data-origin-height=&quot;207&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;jsp&lt;/blockquote&gt;
&lt;pre id=&quot;code_1783557378398&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;%@ page language=&quot;java&quot; contentType=&quot;text/html; charset=UTF-8&quot; pageEncoding=&quot;UTF-8&quot;%&amp;gt;
&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;title&amp;gt;로그인 페이지&amp;lt;/title&amp;gt;
&amp;lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;

아이디: &amp;lt;input type=&quot;text&quot; id=&quot;id&quot; /&amp;gt;&amp;lt;br/&amp;gt;
비밀번호: &amp;lt;input type=&quot;number&quot; id=&quot;ps&quot; /&amp;gt;&amp;lt;br/&amp;gt;
&amp;lt;button type=&quot;button&quot; onclick=&quot;loginCheck()&quot;&amp;gt;로그인 요청&amp;lt;/button&amp;gt;

&amp;lt;hr&amp;gt;
&amp;lt;h3 id=&quot;result&quot;&amp;gt;&amp;lt;/h3&amp;gt;

&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
//버튼 누르면 함수 기능 시작 
function loginCheck() {
	//값 가져옴 
    let idValue = document.getElementById(&quot;id&quot;).value;
    let psValue = document.getElementById(&quot;ps&quot;).value;

    $.ajax({ // 새로고침 안 됨 현상태에서 바로 변화하기 위해 일단 $.ajax로 비동기 데이터 통신 시작  
        url: &quot;LoginCheckServlet&quot;, //서블릿.자바 파일 주소 설정부터 하기 
        type: &quot;get&quot;,           //get,post 둘 중 하나 선택 하기 
        data: { &quot;id&quot;: idValue, &quot;ps&quot;: psValue }, //데이터 정의하는 과정 json형식 : JSon 형식으로 저장할 데이터를 한줄 형식으로 만듬 
        success: function(data) {  //내장함수 석세스시작(기능 :성공할때만 실행) : 함수 기능 제공 (대신 data라는 박스에 담아서 기능 실현)
           
        
        	 //자바 스크립트 사용해서 길게 안 쓰고 싶음 그래서 제이쿼리 호출해서 제이쿼리 문법으로 쓸거임 
            $(&quot;#result&quot;).html(&quot;상태: &quot; + data.status + &quot; / 등급: &quot; + data.grade);
        //통신 성공하면 제이쿼리에서(아이디 리절트인애 불러옴). 불러온 거 html에 (이 문장 형식으로 만들어서 담아야지)
        },
        //통신 실패하면 에러 써야지 뭐
        error: function() {
            alert(&quot;통신 실패&quot;);
        }
    });
}
&amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;java&lt;/blockquote&gt;
&lt;pre id=&quot;code_1783557392390&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;package Sam;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet(&quot;/LoginCheckServlet&quot;) //현재 파일의 주소 설정 완료 : 웹페이지 만든 파일에서 url 얘로 설정해서 이제 여기로 넘어왔음 
public class LoginCheckServlet extends HttpServlet {
    private static final long serialVersionUID = 1L; //버전 표시용 자동 작성된  식별번호니까 걍 무시
//do get 여긴 소스 기능 사용해서 자동 작성 되었고 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding(&quot;UTF-8&quot;); //한글 출력 설청
        response.setContentType(&quot;application/json;charset=UTF-8&quot;);

        String id = request.getParameter(&quot;id&quot;);
        String ps = request.getParameter(&quot;ps&quot;);

        // 여기서 원래는 DB 검사를 하지만 지금은 성공했다고 가정
        PrintWriter out = response.getWriter(); //출력할 빨대 이름  out 이라고 설정해서 사용할게 = 결과 담아서 보낼 응답 준비 완료 . 글쓰기 도구 꺼내서 결과 담아야지 
        
        // JSON 형식으로 보내줌 
        String json = &quot;{\&quot;status\&quot;:\&quot;성공\&quot;, \&quot;grade\&quot;:\&quot;관리자\&quot;}&quot;;
        
        out.print(json); //내보내.출력해서(제이슨박스를)
        out.flush(); //내보내.남김없이전부 
    }


}&lt;/code&gt;&lt;/pre&gt;</description>
      <author>jamk-diary</author>
      <guid isPermaLink="true">https://jamk-diary.tistory.com/92</guid>
      <comments>https://jamk-diary.tistory.com/92#entry92comment</comments>
      <pubDate>Thu, 9 Jul 2026 09:38:56 +0900</pubDate>
    </item>
    <item>
      <title>내장 객체(out / request) 실습</title>
      <link>https://jamk-diary.tistory.com/89</link>
      <description>&lt;p data-path-to-node=&quot;4&quot; data-ke-size=&quot;size16&quot;&gt;  JSP 내장 객체 가상 시뮬레이터 미션&lt;/p&gt;
&lt;p data-path-to-node=&quot;5&quot; data-ke-size=&quot;size16&quot;&gt;[1] 화면 UI 구조 예시&lt;/p&gt;
&lt;h1 data-path-to-node=&quot;6&quot;&gt;====   내장 객체(out / request) 실습창====&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/h1&gt;
&lt;p data-path-to-node=&quot;7&quot; data-ke-size=&quot;size16&quot;&gt;이름: [ 성춘향 ] -&amp;gt; 입력함 나이: [ 15 ] -&amp;gt; 입력함&lt;/p&gt;
&lt;p data-path-to-node=&quot;8&quot; data-ke-size=&quot;size16&quot;&gt;[   데이터 전송하기 ] -&amp;gt; 버튼&lt;/p&gt;
&lt;hr data-path-to-node=&quot;9&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-path-to-node=&quot;10&quot; data-ke-size=&quot;size16&quot;&gt;[  ️ 가상 JSP 결과 화면 ] (기본은 보이지 않는 상태)&lt;/p&gt;
&lt;p data-path-to-node=&quot;11&quot; data-ke-size=&quot;size16&quot;&gt;  out 객체로 출력한 메시지: -&amp;gt; 하이 반갑습니다&lt;/p&gt;
&lt;h1 data-path-to-node=&quot;12&quot;&gt;  request 객체로 읽어온 데이터: -&amp;gt; 이름은 성춘향이고, 나이는 15세입니다.&lt;/h1&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;13&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;버튼을 누르면 아래 결과 화면이 슥 나타나게 만듭니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-path-to-node=&quot;14&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-path-to-node=&quot;15&quot; data-ke-size=&quot;size16&quot;&gt;[2] 과제 구현 조건 (스스로 짜볼 내용)&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-path-to-node=&quot;16&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;HTML 구조 잡기&lt;/li&gt;
&lt;/ol&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;17&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이름을 입력할 input 태그와 나이를 입력할 input 태그를 만듭니다.&lt;/li&gt;
&lt;li&gt;'데이터 전송하기' 버튼(button) 태그를 만듭니다.&lt;/li&gt;
&lt;li&gt;결과를 보여줄 div 태그를 만들고, 처음에는 숨겨둡니다(display:none).&lt;/li&gt;
&lt;/ul&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-path-to-node=&quot;18&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;JavaScript 기능 (딱 1개의 함수만!)&lt;/li&gt;
&lt;/ol&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;19&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;버튼을 누르면 작동할 함수를 만듭니다.&lt;/li&gt;
&lt;li&gt;함수가 실행되면 결과 div창을 보이게(display:block) 바꿉니다.&lt;/li&gt;
&lt;li&gt;사용자가 입력한 이름과 나이 값을 변수에 가져옵니다.&lt;/li&gt;
&lt;li&gt;오늘 일지에서 배운 두 가지 핵심 문구를 화면에 갈아끼워 줍니다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;19,3,1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;out 객체 출력 영역에는 &quot;하이 반갑습니다&quot;가 나오게 하세요.&lt;/li&gt;
&lt;li&gt;request 객체 출력 영역에는 수강일지 index1.jsp에서 주소창 값을 읽어오듯, 입력받은 이름과 나이 변수를 활용해 &quot;이름은 OO이고, 나이는 OO세입니다.&quot;라는 문장이 완성되도록 엮어서 출력하세요.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-path-to-node=&quot;20&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-path-to-node=&quot;21&quot; data-ke-size=&quot;size16&quot;&gt;[3] 이번 과제의 핵심 포인트&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;22&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;오늘 배운 JSP 코드(out.println(), request.getParameter())가 실제로 웹 화면에 어떤 최종 결과물로 변환되어 유저에게 보여지는지 그 원리를 프론트엔드단에서 가상으로 흉내 내보는 연습입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-path-to-node=&quot;23&quot; data-ke-size=&quot;size16&quot;&gt;너무 깊게 생각하지 마시고 document.getElementById().innerHTML을 사용해서 글자만 쏙쏙 바꿔보세요. 폰으로 짜다가 괄호가 빠지거나 글자가 안 바뀌면 언제든 편하게 코드 들고 오세요. 힌트 바로 드릴게요. 화이팅!  &lt;/p&gt;
&lt;p data-path-to-node=&quot;23&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;23&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;23&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1167&quot; data-origin-height=&quot;416&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kXYlx/dJMcagTH7ex/vMVzKKkbEBFDd2jyUo9nak/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kXYlx/dJMcagTH7ex/vMVzKKkbEBFDd2jyUo9nak/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kXYlx/dJMcagTH7ex/vMVzKKkbEBFDd2jyUo9nak/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkXYlx%2FdJMcagTH7ex%2FvMVzKKkbEBFDd2jyUo9nak%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1167&quot; height=&quot;416&quot; data-origin-width=&quot;1167&quot; data-origin-height=&quot;416&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1012&quot; data-origin-height=&quot;345&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bCaICB/dJMcajv74o8/Bmxd2Scis43V3D9gDBKWL1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bCaICB/dJMcajv74o8/Bmxd2Scis43V3D9gDBKWL1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bCaICB/dJMcajv74o8/Bmxd2Scis43V3D9gDBKWL1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbCaICB%2FdJMcajv74o8%2FBmxd2Scis43V3D9gDBKWL1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1012&quot; height=&quot;345&quot; data-origin-width=&quot;1012&quot; data-origin-height=&quot;345&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1783501485416&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;%@ page language=&quot;java&quot; contentType=&quot;text/html; charset=UTF-8&quot;
    pageEncoding=&quot;UTF-8&quot;%&amp;gt;
&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;title&amp;gt;Insert title here&amp;lt;/title&amp;gt;
 &amp;lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;

&amp;lt;%

String name = request.getParameter(&quot;name&quot;);
String age = request.getParameter(&quot;age&quot;);



%&amp;gt;
&amp;lt;h1&amp;gt;====   내장 객체(out / request) 실습창==== &amp;lt;/h1&amp;gt;

&amp;lt;h1&amp;gt;이름: &amp;lt;span id=&quot;span_tag&quot;&amp;gt; &amp;lt;input  type=&quot;text&quot; size=&quot;20&quot; id=&quot;name&quot; value=&quot;&amp;lt;%=name %&amp;gt;&quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/h1&amp;gt;
&amp;lt;h2&amp;gt;나이: &amp;lt;span id=&quot;span_tag2&quot;&amp;gt;&amp;lt;input type= &quot;text&quot; size=&quot;20&quot; id= &quot;age&quot; value=&quot;&amp;lt;%=age %&amp;gt;&quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/h2&amp;gt;
&amp;lt;button type=&quot;submit&quot; onclick=&quot;btnClick()&quot;&amp;gt;제출&amp;lt;/button&amp;gt;

&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;

 function btnClick() {
	let na= document.getElementById(&quot;name&quot;).value;
	let ag= document.getElementById(&quot;age&quot;).value;
	//alert(na); //변수 na 에  html 잘 들어왔는지 확인하려고 띄우는 경고창
	document.getElementById(&quot;name&quot;).innerHTML;
	document.getElementById(&quot;age&quot;).innerHTML;
	
	//HTML 삽입 방법 : 아이디 이름. 이너html = 원하는 변수, &quot;글자&quot; 등등
	span_tag.innerHTML = na;
	span_tag2.innerHTML = ag;
	
}
 
 
&amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;</description>
      <author>jamk-diary</author>
      <guid isPermaLink="true">https://jamk-diary.tistory.com/89</guid>
      <comments>https://jamk-diary.tistory.com/89#entry89comment</comments>
      <pubDate>Wed, 8 Jul 2026 18:05:22 +0900</pubDate>
    </item>
    <item>
      <title>[수강일지 40] 웹페이지의 데이터 통신/ 서블릿(Servlet) 기초와 Forward vs Redirect 개념</title>
      <link>https://jamk-diary.tistory.com/87</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1142&quot; data-origin-height=&quot;508&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/UprLq/dJMcabENwi6/IKA45pb0qFKlcbwho6nLUK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/UprLq/dJMcabENwi6/IKA45pb0qFKlcbwho6nLUK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/UprLq/dJMcabENwi6/IKA45pb0qFKlcbwho6nLUK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUprLq%2FdJMcabENwi6%2FIKA45pb0qFKlcbwho6nLUK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1142&quot; height=&quot;508&quot; data-origin-width=&quot;1142&quot; data-origin-height=&quot;508&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;web.xml 파일&amp;nbsp;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;C:\apache-tomcat-9.0.118\apache-tomcat-9.0.118\conf&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;경로 따라가서 web.xml 파일 드래그 앤 드랍&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;web&amp;nbsp; Server 시작했을 때 제일 처음으로 읽는 파일 &amp;gt;&lt;/p&gt;
&lt;pre id=&quot;code_1783387034953&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;web-app xmlns=&quot;http://xmlns.jcp.org/xml/ns/javaee&quot;
  xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
  xsi:schemaLocation=&quot;http://xmlns.jcp.org/xml/ns/javaee
                      http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd&quot;
  version=&quot;4.0&quot;&amp;gt;
  
  &amp;lt;/web-app&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 코드 web.xml 파일에 옮기고 저장 후 삭제&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이후 프로젝트 명 마우스 우클릭 -&amp;gt; 자바 ee tools&amp;nbsp; -&amp;gt; 제너레이트 클릭&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;HelloServlet.java&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;505&quot; data-origin-height=&quot;46&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b4usiH/dJMcaaFY9nV/7kkNrrmnQjSlORGbkcteR1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b4usiH/dJMcaaFY9nV/7kkNrrmnQjSlORGbkcteR1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b4usiH/dJMcaaFY9nV/7kkNrrmnQjSlORGbkcteR1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb4usiH%2FdJMcaaFY9nV%2F7kkNrrmnQjSlORGbkcteR1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;505&quot; height=&quot;46&quot; data-origin-width=&quot;505&quot; data-origin-height=&quot;46&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;구문 입력후 extend 뒤에 Http 까지만 입력, 컨트롤 스페이스바 해서 찾아서 입력 안 그럼 인식 안 됨&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;소스 -&amp;gt; 오버라이드 -&amp;gt; do get , do post 체크 후 실행 (do get과 post 는 함수)&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;505&quot; data-origin-height=&quot;32&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/du0XPf/dJMcaijEEXg/9vAVBNsysAjUTSCLAkNon1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/du0XPf/dJMcaijEEXg/9vAVBNsysAjUTSCLAkNon1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/du0XPf/dJMcaijEEXg/9vAVBNsysAjUTSCLAkNon1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdu0XPf%2FdJMcaijEEXg%2F9vAVBNsysAjUTSCLAkNon1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;505&quot; height=&quot;32&quot; data-origin-width=&quot;505&quot; data-origin-height=&quot;32&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;530&quot; data-origin-height=&quot;522&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/br2LHV/dJMcaicW9MG/mWvY8kGAD1gB4oPQAh0qvK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/br2LHV/dJMcaicW9MG/mWvY8kGAD1gB4oPQAh0qvK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/br2LHV/dJMcaicW9MG/mWvY8kGAD1gB4oPQAh0qvK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbr2LHV%2FdJMcaicW9MG%2FmWvY8kGAD1gB4oPQAh0qvK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;530&quot; height=&quot;522&quot; data-origin-width=&quot;530&quot; data-origin-height=&quot;522&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;527&quot; data-origin-height=&quot;62&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bkozvt/dJMcadWV85f/kkqB5JNibPQW2VdYYvFtH1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bkozvt/dJMcadWV85f/kkqB5JNibPQW2VdYYvFtH1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bkozvt/dJMcadWV85f/kkqB5JNibPQW2VdYYvFtH1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbkozvt%2FdJMcadWV85f%2FkkqB5JNibPQW2VdYYvFtH1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;527&quot; height=&quot;62&quot; data-origin-width=&quot;527&quot; data-origin-height=&quot;62&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;Sample1&lt;/blockquote&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;
&lt;h2 style=&quot;color: #000000;&quot; data-path-to-node=&quot;3&quot; data-ke-size=&quot;size26&quot;&gt;Sample1 수업 목적:&amp;nbsp; 웹의 기초적인 소통 흐름 배우기&amp;nbsp;&lt;/h2&gt;
학습목표:&amp;nbsp; HTML 화면(프론트엔드)과 자바 서블릿(백엔드)이 어떻게 연결되고 서로 소통하는지 알 수 있다&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 data-path-to-node=&quot;7&quot; data-ke-size=&quot;size23&quot;&gt;주요 학습 내용&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;8&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;8,0,0&quot;&gt;GET 방식과 POST 방식의 차이점&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;8,0,1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;8,0,1,0,0&quot;&gt;GET:&lt;/b&gt; 링크(&amp;lt;a href=&quot;...&quot;&amp;gt;)를 누르거나 일반적인 정보를 전송할 때 사용하는 방식.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;8,0,1,1,0&quot;&gt;POST:&lt;/b&gt; 로그인 비밀번호나 개인정보처럼 외부로 드러나면 안 되는 &lt;b data-index-in-node=&quot;37&quot; data-path-to-node=&quot;8,0,1,1,0&quot;&gt;보안이 필요한 데이터&lt;/b&gt;를 전송할 때 사용하는 방식 (폼 태그 내부에서 method=&quot;post&quot;로 지정).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;8,1,0&quot;&gt;서블릿(Servlet)의 개념 잡기&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;8,1,1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&quot;Java 코드 안에 HTML 코드가 삽입되어 있는 것&quot;이 서블릿이라는 정의를 배우고, 클라이언트의 요청(doGet, doPost)을 서버가 어떻게 나누어 받는지 그 갈림길을 확인하는 실습이었습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;8,2,0&quot;&gt;자바스크립트(location.href)를 통한 이동&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;8,2,1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;일반적인 form 전송뿐만 아니라, 자바스크립트 함수(move())를 이용해 버튼을 눌렀을 때 비동기나 강제 페이지 이동 처리를 어떻게 하는지 맛보는 과정이었습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;index.html&lt;/blockquote&gt;
&lt;pre id=&quot;code_1783402293610&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;title&amp;gt;HTML 화면(프론트엔드)과 자바 서블릿(백엔드)의 연결 방법과 소통 방법&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;

&amp;lt;!--  Servlet = Server + Applet : Java(Html)
	  jsp : html
	  
	  
	  Get방식, post 방식의 차이 
	  Get : 일반적인 정보 전송 
	  Post : 보안에 필요한 데이터를 전송하는 경우 사용한다 (ex. password,개인정보)
	
	 Java 코드 안에 (Html)이 삽입되어 있는 것 = Servlet 
 --&amp;gt;
 
 &amp;lt;a href= &quot;hello&quot;&amp;gt;Hello Servlet으로 이동 &amp;lt;/a&amp;gt;
 &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;
 
 &amp;lt;form action=&quot;hello&quot; method=&quot;post&quot;&amp;gt;
 &amp;lt;input type = &quot;text&quot; name = &quot;name&quot; placeholder=&quot;이름&quot;&amp;gt;&amp;lt;br/&amp;gt;
 &amp;lt;input type = &quot;submit&quot; value=&quot;dopost버튼&quot;&amp;gt;
 &amp;lt;/form&amp;gt;
 
 &amp;lt;!-- 자바스크립트를 이용한 링크 넘어가는 방법 --&amp;gt;
 &amp;lt;button type=&quot;button&quot; onclick= &quot;move()&quot;&amp;gt;doget버튼&amp;lt;/button&amp;gt;
 
 &amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
 //do get으로 간다 
 function move() {
	location.href = &quot;hello&quot;;
}
 
 &amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;helloServelet&lt;/blockquote&gt;
&lt;pre id=&quot;code_1783402369825&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;package Sample1;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloServlet extends HttpServlet{
//서블릿 파일 안에 두 겟과 두 포스트로 나눠진 부분 
	@Override //do get
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		System.out.println(&quot;helloServlet doGet&quot;);
		
		
	
	}

	@Override //do post
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		System.out.println(&quot;helloServlet doPost&quot;);
	}

}&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;Sample2&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;
&lt;h2 data-path-to-node=&quot;3&quot; data-ke-size=&quot;size26&quot;&gt;Sample2 수업 목적: 다양한 양식의 데이터 전송 및 백엔드 동적 화면 구현 배우기&lt;/h2&gt;
&lt;span&gt;학습목표: 사용자가 입력한 다양한 타입의 데이터(단일 텍스트, 복수 선택 체크박스)를 서블릿에서 정확히 구분하여 수집(getParameter, getParameterValues)하고, PrintWriter를 활용해 브라우저에 동적인 HTML 결과 화면을 직접 그려낼 수 있다&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;
&lt;h2 data-path-to-node=&quot;0&quot; data-ke-size=&quot;size26&quot;&gt;주요 학습 내용&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;다양한 데이터 타입의 파라미터 수집 (getParameter vs getParameterValues)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;getParameter: 메모 입력창(memo)처럼 단 하나의 문자열 데이터를 서버로 가져올 때 사용합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;getParameterValues: 체크박스(hobby)처럼 복수 선택이 가능한 데이터를 문자열 배열(String[]) 형태로 한꺼번에 수집할 때 사용합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;동적 HTML 화면 출력 (PrintWriter)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;response.setContentType(&quot;text/html; charset=utf-8&quot;): 서버가 브라우저에게 HTML 문서를 전달하기 전, 한글이 깨지지 않도록 인코딩과 문서 타입을 미리 세팅합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;response.getWriter(): 자바 서블릿 안에서 브라우저 화면에 글씨나 HTML 태그를 직접 써서 보낼 수 있는 통로인 PrintWriter 객체를 생성하고, pw.println() 메서드로 동적인 화면을 빌드합니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;index&lt;/blockquote&gt;
&lt;pre id=&quot;code_1783416904483&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;title&amp;gt;Insert title here&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;

&amp;lt;!-- 
		servlet : java(html)
		jsp : html(java)
 --&amp;gt;


&amp;lt;a href=&quot;hello&quot;&amp;gt;Hello Servlet으로 이동&amp;lt;/a&amp;gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;

&amp;lt;form action=&quot;hello&quot; method=&quot;get&quot;&amp;gt;
&amp;lt;input type=&quot;text&quot; name=&quot;memo&quot; placeholder=&quot;memo&quot;/&amp;gt;
&amp;lt;br/&amp;gt;
&amp;lt;input type=&quot;checkbox&quot; name=&quot;hobby&quot; value=&quot;picture&quot;/&amp;gt;그림그리기
&amp;lt;input type=&quot;checkbox&quot; name=&quot;hobby&quot; value=&quot;movie&quot;/&amp;gt;영화감상
&amp;lt;br/&amp;gt;
&amp;lt;input type=&quot;submit&quot; value=&quot;HelloServlet GET&quot;&amp;gt;
&amp;lt;/form&amp;gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;

&amp;lt;!-- 여기 왜 위에 폼 부분이랑 다르게 사용하는지 ? method 위에는 get으로 썼는데 여기는 왜 Post 인지 출력쪽이라 ? --&amp;gt;
&amp;lt;form action=&quot;hello&quot; method=&quot;post&quot;&amp;gt;
&amp;lt;input type=&quot;text&quot; name=&quot;memo&quot; placeholder=&quot;memo&quot;/&amp;gt;
&amp;lt;input type=&quot;submit&quot; value=&quot;HelloServlet POST&quot;&amp;gt;
&amp;lt;/form&amp;gt;




&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;web.xml&lt;/blockquote&gt;
&lt;pre id=&quot;code_1783416931756&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;
&amp;lt;web-app xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xmlns=&quot;http://xmlns.jcp.org/xml/ns/javaee&quot; xsi:schemaLocation=&quot;http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd&quot; version=&quot;4.0&quot;&amp;gt;
  
  &amp;lt;servlet&amp;gt;
  	&amp;lt;servlet-name&amp;gt;hello&amp;lt;/servlet-name&amp;gt;
  	&amp;lt;servlet-class&amp;gt;sample2.HelloServlet&amp;lt;/servlet-class&amp;gt;
  &amp;lt;/servlet&amp;gt;
  
  &amp;lt;servlet-mapping&amp;gt;
  	&amp;lt;servlet-name&amp;gt;hello&amp;lt;/servlet-name&amp;gt;
  	&amp;lt;url-pattern&amp;gt;/hello&amp;lt;/url-pattern&amp;gt;
  &amp;lt;/servlet-mapping&amp;gt;
  
&amp;lt;/web-app&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;HelloServlet&lt;/blockquote&gt;
&lt;pre id=&quot;code_1783416962731&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;package sample2;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloServlet extends HttpServlet{

	@Override
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		System.out.println(&quot;HelloServlet doGet&quot;);
		
		String memo = request.getParameter(&quot;memo&quot;);
		System.out.println(memo);
		
		String hobby[] = request.getParameterValues(&quot;hobby&quot;);
		
		response.setContentType(&quot;text/html; charset=utf-8&quot;);
		PrintWriter pw = response.getWriter();
		pw.println(&quot;&amp;lt;html&amp;gt;&quot;);
		
		pw.println(&quot;&amp;lt;head&amp;gt;&quot;);
		pw.println(&quot;&amp;lt;title&amp;gt;Hello Servlet&amp;lt;/title&amp;gt;&quot;);
		pw.println(&quot;&amp;lt;/head&amp;gt;&quot;);
		
		pw.println(&quot;&amp;lt;body&amp;gt;&quot;);
		
		pw.println(&quot;&amp;lt;h1&amp;gt;Hello Servlet&amp;lt;/h1&amp;gt;&quot;);
		
		pw.println(&quot;&amp;lt;p&amp;gt;memo:&quot; + memo + &quot;&amp;lt;/p&amp;gt;&quot;);
		
		pw.println(&quot;&amp;lt;ul&amp;gt;&quot;);
		for (int i = 0; i &amp;lt; hobby.length; i++) {
			pw.println(&quot;&amp;lt;li&amp;gt;&quot; + hobby[i] + &quot;&amp;lt;/li&amp;gt;&quot;);
		}
		pw.println(&quot;&amp;lt;/ul&amp;gt;&quot;);
		
		pw.println(&quot;&amp;lt;/body&amp;gt;&quot;);		
		pw.println(&quot;&amp;lt;/html&amp;gt;&quot;);
		
		pw.close();
		
	}

	@Override
	protected void doPost(HttpServletRequest request, HttpServletResponse resp) throws ServletException, IOException {
		System.out.println(&quot;HelloServlet doPost&quot;);
	}	

}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;Sample3&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;
&lt;h2 data-path-to-node=&quot;0&quot; data-ke-size=&quot;size26&quot;&gt;Sample 3 수업 목적: Forward와 Redirect를 활용한 서블릿 간 데이터 전송 및 흐름 제어 배우기&lt;/h2&gt;
&lt;span&gt;학습목표: 서버 내부에서 페이지를 전환하는 Forward 방식과 브라우저를 통해 재요청하는 Redirect 방식의 차이를 명확히 이해하고, 상황에 맞게 DTO 객체(setAttribute)나 URL 파라미터를 활용하여 서블릿 간에 데이터를 안전하게 토스하고 출력할 수 있다.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;포워드(Forward)와 리다이렉트(Redirect)의 개념 및 차이점 이해&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;포워드(Forward): 서버 내부에서 다른 서블릿으로 요청을 토스하는 방식으로 브라우저 주소창이 변하지 않으며, 기존의 request 객체가 유지되어 자바 객체(DTO)를 그대로 다음 서블릿으로 안전하게 전달할 수 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;리다이렉트(Redirect): 서버가 브라우저에게 새 주소로 다시 접속하라고 명령하는 방식으로 주소창이 최종 목적지로 바뀌며, 기존 request 상자가 소멸하므로 오직 주소창 뒤에 문자열 파라미터를 매달아 보내야 합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;포워드 구현을 위한 3대 핵심 도구 활용&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;HttpServletRequest: 다음 부서로 넘길 데이터 택배 상자를 보관(setAttribute)하고 비밀 통로 티켓을 발행하는 역할을 합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;RequestDispatcher: 톰캣 내부에서 forward(req, resp) 명령어를 가동해 요청과 데이터를 옆 부서로 슥 밀어주는 실제 제어 스위치 역할을 합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;HumanDto: 데이터를 글자로 쪼개 보내지 않고 하나의 예쁜 패키지 상자로 포장하여 전달하기 위해 우리가 직접 설계한 규격 택배 상자(Data Transfer Object)입니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;리다이렉트 한글 인코딩 (URLEncoder)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;리다이렉트 방식은 주소창 뒤에 텍스트를 직접 매달아 보내기 때문에, 이름 같은 한글 데이터가 외계어로 깨지는 것을 막기 위해 URLEncoder.encode(name, &quot;utf-8&quot;) 처리를 반드시 거쳐야 함을 학습합니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;index0&lt;/blockquote&gt;
&lt;pre id=&quot;code_1783416742813&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;

&amp;lt;title&amp;gt;데이터를 다음 서블릿으로 패스하는 두 가지 기술 &amp;lt;/title&amp;gt;
&amp;lt;title&amp;gt;웹페이지에서 사용자가 입력한 데이터를 서버로 보낸 뒤 Forward, Redirect 각각 두 가지 방법으로 또다른 웹페이지에 출력하는 방법 &amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;

&amp;lt;pre&amp;gt;
  [과정과 목표 설명 ]
  
{과정}
1단계: 웹페이지 준비 및 요청
2단계: 1차 서블릿의 교통정리 (HelloServlet)
3단계: 최종 목적지 및 화면 출력 (SampleServlet)

{목표}
1. index.html (입력창)
2. HumanDto: (데이터 모양 설계도)입력한 데이터를 어떤 형태로 받아올지 그려주는 설계도
3. HelloServlet.java (1차 가공) : 설계도 모양대로 데이터를 받아서 가공하고 Forward와  Redirect 둘 중 하나를 선택해서 데이터를 넘긴다 
4. SampleServlet.java : (출력) Forward 혹은  Redirect 로 받은 데이터를  웹페이지에 출력해주는 과정
5. web.xml : 서버를 열어주고 어디로 갈지 이동시켜주는 이정표 


   [전체 작동 순서 구조도]
   
---------------------index.html---------------------
	유저가 index.html 을 통해 생성된 웹페이지 창에 이름, 나이, 신장을 입력한 뒤 전송 버튼을 누른다 
    form action= url-pattern , 원하는 사이트 주소를 작성해도 동작한다 =
    method= post / get  -&amp;gt; 데이터 통신 방법 결정 
    
---------------------web.xml---------------------
	web.xml 을 통해 어디로 갈 지 결정   
	url-pattern 주소로 받은 데이터들은 servlet-class 를 통해 작업될 수 있게 넘겨준다 

---------------------HelloServlet---------------------
	갈림길 선택 - 다른 부서로 데이터 토스하기 	
	입력창 생성 시 설정한 메소드를 통해 작업이 되기 시작한다 (get과 post 중 선택)
     *req.getParameter() 데이터 꺼내기 
     *req.setCharacterEncoding(&quot;utf-8&quot;); 한글 깨지지 않게 작업하기
 
   출력 준비를 위해 다른 서블릿.자바 파일로 데이터 보내기
   	*Redirect 과  Forward 둘 중 하나로 선택해서 사용하기 
   	
   * Redirect 선택 시 주의점
      - 주소창 뒤에 데이터를 매달아 보내므로 한글(예: 이름)은 외계어로 깨짐!
      - 반드시 name = URLEncoder.encode(name, &quot;utf-8&quot;); 작업 후 주소창에 더해줘야 함!
 ---------------------SampleServlet---------------------

 	Redirect: 브라우저가 주소창을 바꾸고 새롭게 GET 방식으로 접속하기 때문에, SampleServlet의 doGet() 메서드가 실행

	Forward: 처음 출발한 POST 신호가 그대로 이어지기 때문에, SampleServlet의 doPost() 메서드가 실행
	
	*데이터 꺼내는 법
	*Forward로 왔을 때 (doPost 가동): req.getAttribute(&quot;human&quot;) 으로 객체를 꺼내어 출력 -&amp;gt; (주소창 변화 없음) 
	*Redirect로 왔을 때 (doGet 가동): req.getParameter(&quot;name&quot;) 으로 데이터를 바로 꺼냄 -&amp;gt; (주소창 변화 있음 )
	
	
	*Redirect 굳이 사용하는 이유: 결제 완료 후 새로고침 시 결제 2번 되는 상황을 방지하려고  
	*  면접 단골 정답 구절
	서버의 데이터에 변화를 주는 작업(Insert, Update, Delete) 이후에는 중복 요청으로 인한 에러나 사고를 막기 위해 
	PRG 패턴 (Post-Redirect-Get)**에 따라 무조건 리다이렉트를 사용해야 합니다.
	
	
	*포워드 구현할 때 도대체 어떤 자바 도구들이 필요했는가
	* 실무형 한 줄 코드 공식:
	  req.getRequestDispatcher(&quot;목적지서블릿&quot;).forward(req, resp);
	
	-&amp;gt; 1. HttpServletRequest (req) : 데이터 택배 상자를 임시 보관(setAttribute)하고, 
	                              비밀 통로 티켓을 발행해 주는 주머니 역할.
	-&amp;gt; 2. RequestDispatcher (rd)  : 톰캣 내부에서 다른 서블릿(옆 부서)으로 
	                              요청과 데이터를 슥 밀어주는 진짜 '이동 제어 스위치'.
	-&amp;gt; 3. HumanDto                 : 데이터를 글자로 쪼개지 않고 한 덩어리로 예쁘게 포장하는 
	                              우리가 직접 만든 '규격 택배 상자'.                            
	
 
    
&amp;lt;/pre&amp;gt;

 
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-path-to-node=&quot;3&quot; data-ke-style=&quot;style3&quot;&gt;index&lt;/blockquote&gt;
&lt;pre id=&quot;code_1783416760757&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;title&amp;gt;웹페이지 유저 입력창&amp;lt;/title&amp;gt;



&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;

&amp;lt;form action=&quot;hello&quot; method=&quot;post&quot;&amp;gt;
&amp;lt;input type=&quot;text&quot; name=&quot;name&quot; placeholder=&quot;이름&quot;&amp;gt;&amp;lt;br/&amp;gt;
&amp;lt;input type=&quot;text&quot; name=&quot;age&quot; placeholder=&quot;나이&quot;&amp;gt;&amp;lt;br/&amp;gt;
&amp;lt;input type=&quot;text&quot; name=&quot;height&quot; placeholder=&quot;신장&quot;&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;
&amp;lt;input type=&quot;submit&quot; value=&quot;전송&quot;&amp;gt;
&amp;lt;/form&amp;gt;

&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-path-to-node=&quot;3&quot; data-ke-style=&quot;style3&quot;&gt;web.xml&lt;/blockquote&gt;
&lt;pre id=&quot;code_1783416785540&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;
&amp;lt;web-app xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xmlns=&quot;http://xmlns.jcp.org/xml/ns/javaee&quot; xsi:schemaLocation=&quot;http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd&quot; version=&quot;4.0&quot;&amp;gt;

&amp;lt;!-- &amp;lt;url-pattern&amp;gt; 주소로 받은 데이터들은 &amp;lt;servlet-class&amp;gt; 를 통해 작업할 수 있게 넘겨준다 --&amp;gt;


&amp;lt;!--데이터가 입력된 창이 /hello 주소를 사용하고 있으면  sample3패키지의 HelloServlet 클래스로 이동--&amp;gt;
&amp;lt;servlet&amp;gt;
	&amp;lt;servlet-name&amp;gt;hello&amp;lt;/servlet-name&amp;gt;
	&amp;lt;servlet-class&amp;gt;sample3.HelloServlet&amp;lt;/servlet-class&amp;gt;
&amp;lt;/servlet&amp;gt;

&amp;lt;servlet-mapping&amp;gt;
	&amp;lt;servlet-name&amp;gt;hello&amp;lt;/servlet-name&amp;gt;
	&amp;lt;url-pattern&amp;gt;/hello&amp;lt;/url-pattern&amp;gt;
&amp;lt;/servlet-mapping&amp;gt;

&amp;lt;!--데이터가 입력된 창이 /sample 주소를 사용하고 있으면  sample3패키지의 SampleServlet 클래스로 이동--&amp;gt;
&amp;lt;servlet&amp;gt;
	&amp;lt;servlet-name&amp;gt;sample&amp;lt;/servlet-name&amp;gt;
	&amp;lt;servlet-class&amp;gt;sample3.SampleServlet&amp;lt;/servlet-class&amp;gt;
&amp;lt;/servlet&amp;gt;

&amp;lt;servlet-mapping&amp;gt;
	&amp;lt;servlet-name&amp;gt;sample&amp;lt;/servlet-name&amp;gt;
	&amp;lt;url-pattern&amp;gt;/sample&amp;lt;/url-pattern&amp;gt;
&amp;lt;/servlet-mapping&amp;gt;


&amp;lt;/web-app&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;HelloServlet.java&lt;/blockquote&gt;
&lt;pre id=&quot;code_1783416798949&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;package sample3;

import java.io.IOException;
import java.net.URLEncoder;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloServlet extends HttpServlet{

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

	}

	@Override
	/*1차 접수처 (자바)
	  HTML에서 method=&quot;post&quot;로 보냈기 때문에, HelloServlet 내부의 doPost() 메서드가 자동으로 실행
	*/
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		req.setCharacterEncoding(&quot;utf-8&quot;); // post일 경우 추가해야 한다
		
		String name = req.getParameter(&quot;name&quot;);
		int age = Integer.parseInt(req.getParameter(&quot;age&quot;));
		double height = Double.parseDouble(req.getParameter(&quot;height&quot;));
		
		System.out.println(&quot;name:&quot; + name);
		System.out.println(&quot;age:&quot; + age);
		System.out.println(&quot;height:&quot; + height);
	
	//	방식 A (Forward):  1. forward(전진) -&amp;gt; doPost
	// 데이터들을 object로 묶는다:방식 A(Forward)로 갈 때만 쓸 수 있는 상자
	//	HumanDto human = new HumanDto(name, age, height);
	//	req.setAttribute(&quot;human&quot;, human);
		
		// 이동
	
	//	RequestDispatcher rd = req.getRequestDispatcher(&quot;sample&quot;);
	//	rd.forward(req, resp);
	//	req.getRequestDispatcher(&quot;sample&quot;).forward(req, resp); 이런식으로 축약 가능 
		
	//방식 B (Redirect): 한글일 경우 인코딩을 적용해 줘야 한다! &amp;lt;- sendRedirect로 보낼때
	
		name = URLEncoder.encode(name, &quot;utf-8&quot;);
		
		// 2. sendRedirect -&amp;gt; 단순이동 시에 사용  (doGet으로 간다)
		resp.sendRedirect(&quot;sample?name=&quot; + name + &quot;&amp;amp;age=&quot; + age + &quot;&amp;amp;height=&quot; + height);		
		
	}

}&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-path-to-node=&quot;3&quot; data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;blockquote data-path-to-node=&quot;3&quot; data-ke-style=&quot;style3&quot;&gt;SampleServlet.java&lt;/blockquote&gt;
&lt;pre id=&quot;code_1783416840427&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;package sample3;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class SampleServlet extends HttpServlet{

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		System.out.println(&quot;SampleServlet doGet&quot;);
		
		//  sendRedirect 로 전송
		String name = req.getParameter(&quot;name&quot;);
		String age = req.getParameter(&quot;age&quot;);
		String height = req.getParameter(&quot;height&quot;);
		
		resp.setContentType(&quot;text/html; charset=utf-8&quot;);
		PrintWriter pw = resp.getWriter();
		pw.println(&quot;&amp;lt;html&amp;gt;&quot;);
		
		pw.println(&quot;&amp;lt;head&amp;gt;&quot;);
		pw.println(&quot;&amp;lt;title&amp;gt;Sample Servlet&amp;lt;/title&amp;gt;&quot;);
		pw.println(&quot;&amp;lt;/head&amp;gt;&quot;);
		
		pw.println(&quot;&amp;lt;body&amp;gt;&quot;);	
		
		pw.println(&quot;&amp;lt;h1&amp;gt;Sample Servlet&amp;lt;/h1&amp;gt;&quot;);
		
		pw.println(&quot;&amp;lt;p&amp;gt;&quot; + name + &quot;&amp;lt;/p&amp;gt;&quot;);
		pw.println(&quot;&amp;lt;p&amp;gt;&quot; + age + &quot;&amp;lt;/p&amp;gt;&quot;);
		pw.println(&quot;&amp;lt;p&amp;gt;&quot; + height + &quot;&amp;lt;/p&amp;gt;&quot;);
		
		pw.println(&quot;&amp;lt;/body&amp;gt;&quot;);		
		pw.println(&quot;&amp;lt;/html&amp;gt;&quot;);
		
		pw.close();		
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		System.out.println(&quot;SampleServlet doPost&quot;);
		
	// forward 로 object를 전송한 경우
		HumanDto dto = (HumanDto)req.getAttribute(&quot;human&quot;);
				
		resp.setContentType(&quot;text/html; charset=utf-8&quot;);
		PrintWriter pw = resp.getWriter();
		pw.println(&quot;&amp;lt;html&amp;gt;&quot;);
		
		pw.println(&quot;&amp;lt;head&amp;gt;&quot;);
		pw.println(&quot;&amp;lt;title&amp;gt;Sample Servlet&amp;lt;/title&amp;gt;&quot;);
		pw.println(&quot;&amp;lt;/head&amp;gt;&quot;);
		
		pw.println(&quot;&amp;lt;body&amp;gt;&quot;);	
		
		pw.println(&quot;&amp;lt;h1&amp;gt;Sample Servlet&amp;lt;/h1&amp;gt;&quot;);
		
		// forward 로 object를 전송한 경우
		pw.println(&quot;&amp;lt;p&amp;gt;&quot; + dto.getName() + &quot;&amp;lt;/p&amp;gt;&quot;);
		pw.println(&quot;&amp;lt;p&amp;gt;&quot; + dto.getAge() + &quot;&amp;lt;/p&amp;gt;&quot;);
		pw.println(&quot;&amp;lt;p&amp;gt;&quot; + dto.getHeight() + &quot;&amp;lt;/p&amp;gt;&quot;);
		
		pw.println(&quot;&amp;lt;/body&amp;gt;&quot;);		
		pw.println(&quot;&amp;lt;/html&amp;gt;&quot;);
		
		pw.close();
	}	
}&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-path-to-node=&quot;3&quot; data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;HumanDto (포워드 일 때만 사용)&lt;/blockquote&gt;
&lt;pre id=&quot;code_1783416867500&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;package sample3;

public class HumanDto {
	private String name;
	private int age;
	private double height;
	
	public HumanDto() {
	}

	public HumanDto(String name, int age, double height) {
		super();
		this.name = name;
		this.age = age;
		this.height = height;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public double getHeight() {
		return height;
	}

	public void setHeight(double height) {
		this.height = height;
	}

	@Override
	public String toString() {
		return &quot;HumanDto [name=&quot; + name + &quot;, age=&quot; + age + &quot;, height=&quot; + height + &quot;]&quot;;
	}	
}&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-path-to-node=&quot;3&quot; data-ke-size=&quot;size26&quot;&gt;포워드(Forward) vs 리다이렉트(Redirect) 완벽 비교&lt;/h2&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-path-to-node=&quot;4&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;비교 항목&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;포워드 (Forward)&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;리다이렉트 (Redirect)&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;4,1,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;4,1,0,0&quot;&gt;개념 비유&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;4,1,1,0&quot;&gt;서버 내부에서 조용히 옆 부서로 바통 터치&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;4,1,2,0&quot;&gt;브라우저에게 주소창 바꿔서 새로 접속하라고 튕겨내기&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;4,2,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;4,2,0,0&quot;&gt;주소창 변화&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;4,2,1,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;4,2,1,0&quot;&gt;변하지 않음&lt;/b&gt; (처음 주소 그대로 유지)&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;4,2,2,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;4,2,2,0&quot;&gt;새 주소로 변경됨&lt;/b&gt; (최종 목적지 주소로 바뀜)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;4,3,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;4,3,0,0&quot;&gt;주체&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;4,3,1,0&quot;&gt;**서버(톰캣)**가 내부에서 알아서 이동시킴&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;4,3,2,0&quot;&gt;**브라우저(클라이언트)**가 명령을 받고 직접 이동함&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;4,4,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;4,4,0,0&quot;&gt;통신 횟수&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;4,4,1,0&quot;&gt;요청 1번, 응답 1번 (기존 요청 상자 유지)&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;4,4,2,0&quot;&gt;요청 2번, 응답 2번 (기존 상자 버리고 새로 요청)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;4,5,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;4,5,0,0&quot;&gt;서블릿 메서드&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;4,5,1,0&quot;&gt;처음 출발한 방식 유지 (예: doPost ➔ doPost)&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;4,5,2,0&quot;&gt;무조건 새롭게 접속하므로 &lt;b data-index-in-node=&quot;14&quot; data-path-to-node=&quot;4,5,2,0&quot;&gt;doGet() 실행&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;4,6,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;4,6,0,0&quot;&gt;데이터 전달 방법&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;4,6,1,0&quot;&gt;req.setAttribute(&quot;key&quot;, Object)&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;4,6,2,0&quot;&gt;주소창 뒤에 매달기 ?name=값&amp;amp;age=값&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;4,7,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;4,7,0,0&quot;&gt;데이터 종류&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;4,7,1,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;4,7,1,0&quot;&gt;자바 객체(DTO, List 등) 통째로 가능&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;4,7,2,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;4,7,2,0&quot;&gt;오직 텍스트(문자열)만 가능&lt;/b&gt; (한글 인코딩 필수)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;4,8,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;4,8,0,0&quot;&gt;데이터 꺼내는 법&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;4,8,1,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;4,8,1,0&quot;&gt;req.getAttribute(&quot;key&quot;)&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;4,8,2,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;4,8,2,0&quot;&gt;req.getParameter(&quot;key&quot;)&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;4,9,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;4,9,0,0&quot;&gt;주요 용도&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;4,9,1,0&quot;&gt;단순 데이터 조회, 검색 결과 화면 출력 (80%)&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;4,9,2,0&quot;&gt;글쓰기, 결제 완료 후 새로고침(F5) 방지, 로그인 체크 (20%)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-path-to-node=&quot;3&quot; data-ke-size=&quot;size26&quot;&gt; ️ 포워드 사용 시 필요한 3대 클래스&lt;/h2&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-path-to-node=&quot;4&quot; data-ke-size=&quot;size23&quot;&gt;1. HttpServletRequest (데이터 주머니 및 패스포트)&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-path-to-node=&quot;5&quot;&gt;
&lt;li&gt;&lt;b data-path-to-node=&quot;5,0,0&quot; data-index-in-node=&quot;0&quot;&gt;어디서 봤지?&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;➔ doPost(HttpServletRequest req, ...) 메서드의 매개변수(req)입니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-path-to-node=&quot;5,1,0&quot; data-index-in-node=&quot;0&quot;&gt;무슨 역할이야?&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;➔ 포워드를 할 수 있는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b data-path-to-node=&quot;5,1,0&quot; data-index-in-node=&quot;23&quot;&gt;비밀 통로 티켓을 발행&lt;/b&gt;해주고, 다음 서블릿으로 넘길&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b data-path-to-node=&quot;5,1,0&quot; data-index-in-node=&quot;52&quot;&gt;택배 상자(DTO)를 보관&lt;/b&gt;하는 창고 역할을 합니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-path-to-node=&quot;5,2,0&quot; data-index-in-node=&quot;0&quot;&gt;핵심 메서드:&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-path-to-node=&quot;5,2,1&quot;&gt;
&lt;li&gt;req.getRequestDispatcher(&quot;sample&quot;) : &quot;sample 부서로 가는 비밀 통로(Dispatcher)를 만들어줘!&quot; 라고 요청하는 메서드입니다.&lt;/li&gt;
&lt;li&gt;req.setAttribute(&quot;human&quot;, human) : 다음 부서로 보낼 DTO 객체 상자를 req 안의 창고에 저장하는 메서드입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-path-to-node=&quot;6&quot; data-ke-size=&quot;size23&quot;&gt;2. RequestDispatcher (비밀 통로 안내원)&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-path-to-node=&quot;7&quot;&gt;
&lt;li&gt;&lt;b data-path-to-node=&quot;7,0,0&quot; data-index-in-node=&quot;0&quot;&gt;어디서 봤지?&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;➔ RequestDispatcher rd = req.getRequestDispatcher(&quot;sample&quot;);&lt;/li&gt;
&lt;li&gt;&lt;b data-path-to-node=&quot;7,1,0&quot; data-index-in-node=&quot;0&quot;&gt;무슨 역할이야?&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;➔ 톰캣 서버 내부에서 다른 서블릿(옆 부서)으로&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b data-path-to-node=&quot;7,1,0&quot; data-index-in-node=&quot;37&quot;&gt;요청을 슥 밀어주고 이동시켜주는 진짜 '이동 제어 스위치'&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;역할을 하는 인터페이스입니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-path-to-node=&quot;7,2,0&quot; data-index-in-node=&quot;0&quot;&gt;핵심 메서드:&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-path-to-node=&quot;7,2,1&quot;&gt;
&lt;li&gt;rd.forward(req, resp) : 이 명령어를 내리는 순간, 내가 들고 있던 데이터 상자(req)와 응답 장부(resp)를 다음 부서로 던지면서 화면이 전환됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-path-to-node=&quot;8&quot; data-ke-size=&quot;size23&quot;&gt;3. HumanDto (내가 만든 데이터 택배 상자)&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-path-to-node=&quot;9&quot;&gt;
&lt;li&gt;&lt;b data-path-to-node=&quot;9,0,0&quot; data-index-in-node=&quot;0&quot;&gt;어디서 봤지?&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;➔ HumanDto human = new HumanDto(name, age, height);&lt;/li&gt;
&lt;li&gt;&lt;b data-path-to-node=&quot;9,1,0&quot; data-index-in-node=&quot;0&quot;&gt;무슨 역할이야?&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;➔ 리다이렉트처럼 글자를 쪼개 보내지 않고, 포워드의 장점을 살려 데이터를 한 덩어리로 예쁘게 포장하는 '규격 상자'입니다. 이 클래스는 자바가 기본으로 주는 게 아니라, 우리가 직접 데이터 모양을 설계해서 만든 클래스(DTO)입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-path-to-node=&quot;12&quot; data-ke-size=&quot;size26&quot;&gt;전체 흐름 최종 한눈에 보기&lt;/h2&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-path-to-node=&quot;13&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;특징&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;포워드 (Forward)&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;리다이렉트 (Redirect)&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;13,1,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13,1,0,0&quot;&gt;핵심 도구&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;13,1,1,0&quot;&gt;RequestDispatcher, Dto 객체&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;13,1,2,0&quot;&gt;URLEncoder, 주소창 텍스트 결합&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;13,2,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13,2,0,0&quot;&gt;데이터 형태&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;13,2,1,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13,2,1,0&quot;&gt;오브젝트(객체) 통째로&lt;/b&gt; (Attribute)&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;13,2,2,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13,2,2,0&quot;&gt;오직 문자열(텍스트)만&lt;/b&gt; (Parameter)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;13,3,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13,3,0,0&quot;&gt;실무 점유율&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;13,3,1,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13,3,1,0&quot;&gt;약 80%&lt;/b&gt; (단순 조회, 화면 출력 시 대세)&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;13,3,2,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13,3,2,0&quot;&gt;약 20%&lt;/b&gt; (글쓰기/결제 완료 후 안전 방어벽)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;work&lt;/blockquote&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;index&lt;/blockquote&gt;
&lt;pre id=&quot;code_1783417051442&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;title&amp;gt;Insert title here&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;

&amp;lt;a href=&quot;Sample&quot;&amp;gt;SampleServlet이동&amp;lt;/a&amp;gt;

&amp;lt;br/&amp;gt;

&amp;lt;form action=&quot;Sample&quot; method=&quot;get&quot;&amp;gt;
&amp;lt;h1&amp;gt;설문조사&amp;lt;/h1&amp;gt; &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;


&amp;lt;h2&amp;gt;이름: &amp;lt;input type=&quot;text&quot; width=&quot;25px&quot; placeholder=&quot;이름을 기입&quot; name=&quot;name&quot;&amp;gt;&amp;lt;/h2&amp;gt;  &amp;lt;br/&amp;gt;

&amp;lt;hr/&amp;gt;

&amp;lt;h2&amp;gt;질문(1)&amp;lt;/h2&amp;gt;  &amp;lt;br/&amp;gt;
&amp;lt;h3&amp;gt;영어 이외에 관심이 있는 어학이 있으면 선택해 주세요 (복수 답변가능 )&amp;lt;/h3&amp;gt;  &amp;lt;br/&amp;gt;
&amp;lt;div&amp;gt;
&amp;lt;span&amp;gt;&amp;lt;input type=&quot;checkbox&quot; value=&quot;G&quot; name=&quot;la&quot;&amp;gt;독일어&amp;lt;/span&amp;gt;
&amp;lt;span&amp;gt;&amp;lt;input type=&quot;checkbox&quot; value=&quot;F&quot; name=&quot;la&quot;&amp;gt;프랑스어&amp;lt;/span&amp;gt;
&amp;lt;span&amp;gt;&amp;lt;input type=&quot;checkbox&quot; value=&quot;I&quot; name=&quot;la&quot;&amp;gt;이탈리아어&amp;lt;/span&amp;gt;
&amp;lt;span&amp;gt;&amp;lt;input type=&quot;checkbox&quot; value=&quot;S&quot; name=&quot;la&quot;&amp;gt;스페인어&amp;lt;/span&amp;gt;
&amp;lt;span&amp;gt;&amp;lt;input type=&quot;checkbox&quot; value=&quot;J&quot; name=&quot;la&quot;&amp;gt;일본어&amp;lt;/span&amp;gt;
&amp;lt;/div&amp;gt;


&amp;lt;hr/&amp;gt;


&amp;lt;h2&amp;gt;질문(3)&amp;lt;/h2&amp;gt;  &amp;lt;br/&amp;gt;
&amp;lt;h3&amp;gt;영어 수업에 대한 의견&amp;lt;/h3&amp;gt;
&amp;lt;textarea rows=&quot;10&quot; cols=&quot;25&quot; placeholder=&quot;의견을 기입&quot; name=&quot;op&quot;&amp;gt;&amp;lt;/textarea&amp;gt;


&amp;lt;hr/&amp;gt;

&amp;lt;h2&amp;gt;질문(4)&amp;lt;/h2&amp;gt;  &amp;lt;br/&amp;gt;
&amp;lt;h3&amp;gt;나이를 선택하세요&amp;lt;/h3&amp;gt;
&amp;lt;select name=&quot;age&quot;&amp;gt;  &amp;lt;!-- 셀렉트 구문 사용시에는 name 셀렉트 태그에 쓰기 --&amp;gt;
	&amp;lt;option&amp;gt;아래에서 선택&amp;lt;/option&amp;gt;
	&amp;lt;option &amp;gt;0~9&amp;lt;/option&amp;gt;
	&amp;lt;option &amp;gt;10~19&amp;lt;/option&amp;gt;
	&amp;lt;option &amp;gt;20~29&amp;lt;/option&amp;gt;
	&amp;lt;option &amp;gt;30~39&amp;lt;/option&amp;gt;
	&amp;lt;option &amp;gt;40~49&amp;lt;/option&amp;gt;
&amp;lt;/select&amp;gt;

&amp;lt;hr/&amp;gt;

&amp;lt;button type=&quot;submit&quot;&amp;gt;제출&amp;lt;/button&amp;gt;
&amp;lt;button type=&quot;reset&quot;&amp;gt;초기화&amp;lt;/button&amp;gt;
&amp;lt;/form&amp;gt;



&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;web.xml&lt;/blockquote&gt;
&lt;pre id=&quot;code_1783417072931&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;
&amp;lt;web-app xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xmlns=&quot;http://xmlns.jcp.org/xml/ns/javaee&quot; xsi:schemaLocation=&quot;http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd&quot; version=&quot;4.0&quot;&amp;gt;
 
 	&amp;lt;servlet&amp;gt;
 		&amp;lt;servlet-name&amp;gt;Sample&amp;lt;/servlet-name&amp;gt;
 		&amp;lt;servlet-class&amp;gt;SampleWork.SampleServlet&amp;lt;/servlet-class&amp;gt;
 	&amp;lt;/servlet&amp;gt;
 	
 	&amp;lt;servlet-mapping&amp;gt;
 		&amp;lt;servlet-name&amp;gt;Sample&amp;lt;/servlet-name&amp;gt;
 		&amp;lt;url-pattern&amp;gt;/Sample&amp;lt;/url-pattern&amp;gt;
 	&amp;lt;/servlet-mapping&amp;gt;
&amp;lt;/web-app&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;SampleServelet&lt;/blockquote&gt;
&lt;pre id=&quot;code_1783417109858&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;package SampleWork;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class SampleServlet extends HttpServlet{

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		String name = req.getParameter(&quot;name&quot;);
		String la []= req.getParameterValues(&quot;la&quot;);
		String op = req.getParameter(&quot;op&quot;);
		String age= req.getParameter(&quot;age&quot;);
		
		System.out.println(&quot;name:&quot; +name);
		System.out.println(&quot;la:&quot; +la);
		System.out.println(&quot;op:&quot; +op);
		System.out.println(&quot;age:&quot; +age);
		
		
		humanDto human = new humanDto(name, la, op, age);
		req.setAttribute(&quot;human&quot;, human);
		
		
		
		resp.setContentType(&quot;text/html; charset=utf-8&quot;);
		PrintWriter pw = resp.getWriter();
		pw.println(&quot;&amp;lt;html&amp;gt;&quot;);
		
		pw.println(&quot;&amp;lt;head&amp;gt;&quot;);
		pw.println(&quot;&amp;lt;title&amp;gt;SampleServlet&amp;lt;/title&amp;gt;&quot;);
		pw.println(&quot;&amp;lt;/head&amp;gt;&quot;);
		
		pw.println(&quot;&amp;lt;body&amp;gt;&quot;);
		
		
		pw.println(&quot;&amp;lt;p&amp;gt;이름:&quot; +name + &quot;&amp;lt;/p&amp;gt;&quot;);
		pw.println(&quot;&amp;lt;p&amp;gt;관심언어: &quot;);
		if (la != null) { //   사용자가 아무것도 체크 안 했을 때를 대비한 안전장치!
		    for (String lang : la) {
		        pw.println(lang + &quot; &quot;); // 선택한 언어들을 한 칸씩 띄워서 출력
		    }
		} else {
		    pw.println(&quot;선택 안 함&quot;);
		}
		pw.println(&quot;&amp;lt;/p&amp;gt;&quot;);
		pw.println(&quot;&amp;lt;/p&amp;gt;&quot;);
		pw.println(&quot;&amp;lt;p&amp;gt;의견:&quot; +op + &quot;&amp;lt;/p&amp;gt;&quot;);
		pw.println(&quot;&amp;lt;p&amp;gt;나이대:&quot; +age + &quot;&amp;lt;/p&amp;gt;&quot;);
		
		
		pw.println(&quot;&amp;lt;/body&amp;gt;&quot;);
		pw.println(&quot;&amp;lt;/html&amp;gt;&quot;);
		
		pw.close();
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		
		
	}

}&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;human Dto&lt;/blockquote&gt;
&lt;pre id=&quot;code_1783417134617&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;package SampleWork;

import java.util.Arrays;

public class humanDto {

		private String name; //이름
		private String []la; //언어
		private String op; //의견 
		private String age; //나이대
		
		public humanDto() {
			// TODO Auto-generated constructor stub
		}

		public humanDto(String name, String[] la, String op, String age) {
			super();
			this.name = name;
			this.la = la;
			this.op = op;
			this.age = age;
		}

		public String getName() {
			return name;
		}

		public void setName(String name) {
			this.name = name;
		}

		public String[] getLa() {
			return la;
		}

		public void setLa(String[] la) {
			this.la = la;
		}

		public String getOp() {
			return op;
		}

		public void setOp(String op) {
			this.op = op;
		}

		public String getAge() {
			return age;
		}

		public void setAge(String age) {
			this.age = age;
		}

		@Override
		public String toString() {
			return &quot;humanDto [name=&quot; + name + &quot;, la=&quot; + Arrays.toString(la) + &quot;, op=&quot; + op + &quot;, age=&quot; + age + &quot;]&quot;;
		}

		
		
		
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <author>jamk-diary</author>
      <guid isPermaLink="true">https://jamk-diary.tistory.com/87</guid>
      <comments>https://jamk-diary.tistory.com/87#entry87comment</comments>
      <pubDate>Tue, 7 Jul 2026 18:51:19 +0900</pubDate>
    </item>
    <item>
      <title>[수강일지 39] jquery</title>
      <link>https://jamk-diary.tistory.com/86</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[원본 ]&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.js&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.js&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[경량화]&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-min 이 붙어있다&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style=&quot;background-color: #ffffff;&quot;&gt;
&lt;div style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;Jquery 사용을 위해 파일을 불러오는 방법&amp;nbsp;&lt;/blockquote&gt;
&lt;pre id=&quot;code_1783300500521&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!-- 꼭 head에 해야 되는 건 아니지만  여기다 하면 편함 . 기본으로 깔고 가기 --&amp;gt;
&amp;lt;!--  웹사이트로 바로 연결해서 불러오는 방법 --&amp;gt;
&amp;lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;

&amp;lt;!--  파일 저장 후 이클립스 내부에서 불러오는 방법 --&amp;gt; 
&amp;lt;script src=&quot;./jqurey.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;Jquery 회사&amp;nbsp; -&amp;gt; 사용 가능한 함수들 확인 가능&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #008080;&quot;&gt;&lt;a href=&quot;https://jquery.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://jquery.com/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;figure id=&quot;og_1783300469851&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;jQuery&quot; data-og-description=&quot;What is jQuery? jQuery is a fast, small, and feature-rich JavaScript library. It makes things like HTML document traversal and manipulation, event handling, animation, and Ajax much simpler with an easy-to-use API that works across a multitude of browsers.&quot; data-og-host=&quot;jquery.com&quot; data-og-source-url=&quot;https://jquery.com/&quot; data-og-url=&quot;https://jquery.com/&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://jquery.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://jquery.com/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;jQuery&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;What is jQuery? jQuery is a fast, small, and feature-rich JavaScript library. It makes things like HTML document traversal and manipulation, event handling, animation, and Ajax much simpler with an easy-to-use API that works across a multitude of browsers.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;jquery.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://jqueryui.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://jqueryui.com/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1783300631388&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;jQuery UI&quot; data-og-description=&quot;jQuery UI is a curated set of user interface interactions, effects, widgets, and themes built on top of the jQuery JavaScript Library. Whether you're building highly interactive web applications or you just need to add a date picker to a form control, jQue&quot; data-og-host=&quot;jqueryui.com&quot; data-og-source-url=&quot;https://jqueryui.com/&quot; data-og-url=&quot;https://jqueryui.com/&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://jqueryui.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://jqueryui.com/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;jQuery UI&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;jQuery UI is a curated set of user interface interactions, effects, widgets, and themes built on top of the jQuery JavaScript Library. Whether you're building highly interactive web applications or you just need to add a date picker to a form control, jQue&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;jqueryui.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;Sample 1&amp;nbsp;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;index : 자바스크립트(JavaScript)와 제이쿼리(jQuery)의 핵심 차이점&lt;/blockquote&gt;
&lt;pre id=&quot;code_1783311220926&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;title&amp;gt;Insert title here&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;


&amp;lt;!--  
 	java script : client(front - end) 
 				view (화면)의 resurece의 값을 취득 , 설정 
 				Dom(getElementByID, getElementByTahName...등등등)
 				
 				-&amp;gt; angular &amp;gt; react &amp;gt; vue &amp;gt; next.js
 				
 				
 	JQuery : java script 를 경량화하려고 만들었다 -&amp;gt; (근데 좀 실패함 무겁게 만들어졌다)
 		     ajax(비동기 통신) -&amp;gt; framework
 		     
	JQuery-UI : resource(button, input....)

 	형식 : $( 태그명 , #id , .class, tag[name] ).함수명(매개변수) 
 	
 	
 	[setter 형식 비교 ] 
 	    이전에 자바 스크립트의 경우 doucument.getElementID(&quot;id&quot;).value = &quot;hello&quot;;
 	    JQuery 는 이렇게 쓴다  $(&quot;#id&quot;).val(&quot;hello&quot;);

	[getter 형식 비교]
	let v = doucument.getElementID(&quot;id&quot;).value ;
	let v = $(&quot;#id&quot;).val();
	
	[java script vs JQuery 같은 기능, 다른 형식비교 ]
	innerHTML = html()
	value=val()

 --&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 1.16279%;&quot; colspan=&quot;2&quot;&gt;
&lt;h3 data-path-to-node=&quot;4&quot; data-ke-size=&quot;size23&quot;&gt;  이 노트가 담고 있는 핵심 내용 3가지&lt;/h3&gt;
&lt;h4 data-path-to-node=&quot;5&quot; data-ke-size=&quot;size20&quot;&gt;1. 프론트엔드 생태계에서의 역사와 위치&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;6&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,0,0&quot;&gt;자바스크립트:&lt;/b&gt; 웹 화면(View)에서 데이터를 가져오고(getter) 설정하는(setter) 가장 기본이 되는 프로그래밍 언어입니다. (이후에 발전해서 Angular, React, Vue, Next.js 같은 거대한 프레임워크들이 등장하게 됩니다.)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,1,0&quot;&gt;jQuery:&lt;/b&gt; 순수 자바스크립트는 코드가 너무 길고 복잡하니까, 그걸 &lt;b data-index-in-node=&quot;39&quot; data-path-to-node=&quot;6,1,0&quot;&gt;쉽고 짧게(경량화) 쓰려고 만들어진 라이브러리&lt;/b&gt;입니다. (특히 페이지 새로고침 없이 데이터를 주고받는 ajax 비동기 통신에서 엄청나게 활약했습니다.)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-path-to-node=&quot;7&quot; data-ke-size=&quot;size20&quot;&gt;2. jQuery의 기본 공식 (형식)&lt;/h4&gt;
&lt;span&gt;jQuery를 쓸 때는 무조건 이 공식 하나만 기억하면 된다는 뜻입니다.&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;10&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;태그 이름으로 찾을 때: $(&quot;p&quot;)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;아이디 이름으로 찾을 때: $(&quot;#demo&quot;)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;클래스 이름으로 찾을 때: $(&quot;.cls&quot;)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-path-to-node=&quot;11&quot; data-ke-size=&quot;size20&quot;&gt;3.   이 노트의 하이라이트: 자바스크립트 vs jQuery 문법 비교 (Getter / Setter)&lt;/h4&gt;
&lt;span&gt;데이터를 집어넣을 때(Setter)와 데이터를 꺼내올 때 (Getter) 코드가 얼마나 짧아지는지 기가 막히게 비교해 둔 부분입니다.&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;13&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13,0,0&quot;&gt;값을 세팅할 때 (Setter):&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;13,0,1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;JS: document.getElementById(&quot;id&quot;).value = &quot;hello&quot;; (길다!)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;jQuery: $(&quot;#id&quot;).val(&quot;hello&quot;); (짧고 간결!)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13,1,0&quot;&gt;값을 가져올 때 (Getter):&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;13,1,1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;JS: let v = document.getElementById(&quot;id&quot;).value;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;jQuery: let v = $(&quot;#id&quot;).val();&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13,2,0&quot;&gt;쌍을 이루는 똑같은 기능의 명령어:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;13,2,1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;태그 사이의 글자나 HTML을 다룰 때: JS의 innerHTML = jQuery의 html()&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;input 상자 같은 곳의 입력값을 다룰 때: JS의 value = jQuery의 val()&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;index 2 : 원하는 데이터에 접근해서 데이터를 꺼내오는 방식&amp;nbsp;&lt;/blockquote&gt;
&lt;pre id=&quot;code_1783311423583&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;title&amp;gt;Insert title here&amp;lt;/title&amp;gt;
&amp;lt;!-- 꼭 head에 해야 되는 건 아니지만  여기다 하면 편함 . 기본으로 깔고 가기 --&amp;gt;
&amp;lt;!-- 웹사이트로 바로 연결해서 불러오는 방법  --&amp;gt;
&amp;lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;

&amp;lt;/head&amp;gt; 
&amp;lt;body&amp;gt;

 &amp;lt;!-- 파일 저장 후 이클립스 내부에서 불러오는 방법 
&amp;lt;script src=&quot;./jquery.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt; --&amp;gt;

&amp;lt;p&amp;gt;일반 p tag&amp;lt;/p&amp;gt;

&amp;lt;p id =&quot;demo&quot;&amp;gt;p tag id = demo &amp;lt;/p&amp;gt;

&amp;lt;p class = &quot;cls&quot;&amp;gt; p tag class = cls &amp;lt;/p&amp;gt;

&amp;lt;h3 class = &quot;cls&quot;&amp;gt;h3 tag class = cls&amp;lt;/h3&amp;gt;

&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
//java script 

//setter 

//에러 발생, 아래 구문처럼 적용시 p tag를 사용한 것들이 변하지 않는다 
//let ptag = document.getElementsByTagName(&quot;p&quot;).innerHTML = &quot;hello p tag&quot;; 

/*
//java script를 활용한 해결 방법 
let ptags = document.getElementsByTagName(&quot;p&quot;);
for (var i = 0; i &amp;lt; ptags.length; i++) {
	ptags[i].innerHTML = &quot;hellp p tag&quot;;
}
*/


//jQuery 활용한 해결 방법 
//$(&quot;p&quot;).html(&quot;안녕 p tag&quot;);
//$(&quot;p&quot;).text(&quot;안녕 p tag&quot;); // =innerText


/*java script 문법 

let demo = document.getElementById(&quot;demo&quot;).innerHTML;
console.log(demo);
*/

	//원하는 특정 태그로 가져오기 
let demo = $(&quot;#demo&quot;).html();
console.log(demo);


let cls = $(&quot;.cls&quot;).html();
console.log(cls);

cls = $(&quot;h3.cls&quot;).html();
console.log(cls);

ㅁ
// .eq()로 번찌에서 꺼내오기 
//클래스 이름 하나로 묶인 여러 개를 순서대로 가져오는 방법
let cls0 = $(&quot;.cls&quot;).eq(0).html(); // 첫 번째 .cls (p 태그)
let cls1 = $(&quot;.cls&quot;).eq(1).html(); // 두 번째 .cls (h3 태그)
console.log(cls0);
console.log(cls1);


//   위에서 이미 선언했던 clsH3 변수가 아래에 중복으로 깔끔하게 들어있어 그대로 유지했습니다.
let clsH3 = $(&quot;h3.cls&quot;).html();
console.log(clsH3);

&amp;lt;/script&amp;gt;

&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;index 3: 이벤트 발생&lt;/blockquote&gt;
&lt;pre id=&quot;code_1783314661538&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;title&amp;gt;이벤트 설정&amp;lt;/title&amp;gt;
&amp;lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;


&amp;lt;!--  자바 스크립트 방식 
&amp;lt;p id = &quot;demo&quot;&amp;gt;hello jquery&amp;lt;/p&amp;gt;

&amp;lt;p_onclick=&quot;p_click()&quot;&amp;gt;click&amp;lt;/p&amp;gt;

&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;

function p_click() {
	alert('p_click()');
}

&amp;lt;/script&amp;gt;

--&amp;gt;

&amp;lt;!-- 제이 쿼리 방식 
&amp;lt;p id = &quot;demo&quot;&amp;gt;hello Jquery&amp;lt;/p&amp;gt;

&amp;lt;p id = &quot; p_click&quot;&amp;gt;click&amp;lt;/p&amp;gt;


&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
$(&quot;#p_click&quot;).click(function () {
	alert('p_click');
	
});

&amp;lt;/script&amp;gt;
 --&amp;gt;
 
 
 &amp;lt;input type=&quot;text&quot; id= &quot;text&quot;  size=&quot;20&quot;/&amp;gt;
 &amp;lt;button type=&quot;button&quot; id= &quot;btn&quot;&amp;gt;버튼&amp;lt;/button&amp;gt;

&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;

&amp;lt;p id = &quot;demo&quot;&amp;gt;&amp;lt;/p&amp;gt;

&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
$(document).ready(function () { //화면 구성이 끝난 후에 실행 된다 
	
/* 방식 1 	
	$(&quot;#btn&quot;).click(function () {
		//alert('click')
		let input = $(&quot;#text&quot;).val();  //getter
		$(&quot;#demo&quot;).html(input);		//setter
	});

*/

/* 방식 2 
$(&quot;#btn&quot;).on(&quot;click&quot;, function () {
	alert('on click');
});
*/

//자바스크립트, 제이 쿼리 혼용 
$(&quot;#btn&quot;).on(&quot;click&quot;,btnFunc );

});


function btnFunc() {
	alert('btnFunc()');
}
&amp;lt;/script&amp;gt;


&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;Sample 2&lt;/blockquote&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;index&amp;nbsp;&lt;br /&gt;: &quot;태그에 CSS 스타일을 직접 넣는 방식(css() )&quot;과 &quot;이미 만들어둔 CSS 클래스를 넣고 빼는 방식(attr(),addClass()&lt;br /&gt;,prop(),removeClass())&quot;의 차이점&lt;/blockquote&gt;
&lt;pre id=&quot;code_1783322147755&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;title&amp;gt;Insert title here&amp;lt;/title&amp;gt;
&amp;lt;style type=&quot;text/css&quot;&amp;gt;

	.style{
		color: blue; 
	}

&amp;lt;/style&amp;gt;
&amp;lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;

&amp;lt;p&amp;gt;hello &amp;lt;/p&amp;gt;
&amp;lt;p id=&quot;demo&quot;&amp;gt;world &amp;lt;/p&amp;gt;

&amp;lt;button  type=&quot;button&quot;&amp;gt;button&amp;lt;/button&amp;gt;

&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;

$(&quot;button&quot;).click(function () {
	
	//css 설정해보기 
	$(&quot;p&quot;).css(&quot;background&quot;, &quot;#00ff00&quot;); //setter
	
	
	let color = $(&quot;p&quot;).css(&quot;background&quot;); //getter
	//alert(color); //경고창에서 컬러값 확인 가능 
	
	//$(&quot;p&quot;).attr(&quot;id&quot;,&quot;p_id&quot;); //setter
	//let id = $(&quot;p&quot;).attr(&quot;id&quot;); //getter
	
	
	//스타일css 생성 후 작업하는 방식 
	//$(&quot;#demo&quot;).attr(&quot;class&quot;,&quot;style&quot;); //스타일 추가가 됨 
	//$(&quot;#demo&quot;).addClass(&quot;style&quot;); 
	
	$(&quot;#demo&quot;).prop(&quot;class&quot;,&quot;style&quot;); //이렇게 작성해도 $(&quot;#demo&quot;).attr(&quot;class&quot;,&quot;style&quot;); 와 같은 방식 사용 가능 
	
	//$(&quot;#demo&quot;).removeClass(&quot;style&quot;); //위에서 적용한  $(&quot;#demo&quot;).addClass(&quot;style&quot;);  설정을 사라지게 만듬 
	
	//html() text() val() css() arrt() prop()
});



&amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;


&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;
&lt;h3 data-path-to-node=&quot;5&quot; data-ke-size=&quot;size23&quot;&gt;이 코드의 핵심 포인트 3가지&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-path-to-node=&quot;6&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,0,0&quot;&gt;prop(&quot;class&quot;, &quot;style&quot;) (가장 중요)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;6,0,1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;기존에 쓰던 $(&quot;#demo&quot;).attr(&quot;class&quot;, &quot;style&quot;)와 &lt;b data-index-in-node=&quot;42&quot; data-path-to-node=&quot;6,0,1,0,0&quot;&gt;완전히 똑같이 동작&lt;/b&gt;한다는 점을 배우는 게 핵심입니다. 태그의 속성(Attribute/Property)을 제이쿼리로 어떻게 제어하는지 보여주는 핵심 Setter 문법이에요.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,1,0&quot;&gt;$(&quot;p&quot;).css(&quot;background&quot;, &quot;#00ff00&quot;);&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;6,1,1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;클래스를 넣고 빼는 것 외에, 태그에 직접적으로 디자인을 먹이는 기본 스타일링 속성(css())의 사용법을 보여줍니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,2,0&quot;&gt;addClass()와 removeClass()의 빌드업&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;6,2,1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;아래 주석 처리된 addClass()와 removeClass()는 실무에서 스타일을 줬다 뺐다 할 때 가장 많이 쓰는 콤보 메뉴입니다. prop()을 이해한 뒤 이 메서드들로 넘어가는 징검다리 역할을 하는 코드입니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 data-path-to-node=&quot;8&quot; data-ke-size=&quot;size23&quot;&gt;  한 줄 요약&lt;br /&gt;&quot;jQuery로 화면의 특정 요소(#demo)를 붙잡아서, 내가 원하는 스타일 클래스(style)를 동적으로 입히는 문법(prop 또는 attr)을 다룰 수 있는가!&quot;&lt;/h3&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;index1 : table 접근 방법&amp;nbsp;&lt;br /&gt;&lt;br /&gt;마우스 움직임에 따라 표(&amp;lt;tr&amp;gt;)의 배경색을 실시간으로 바꾸고, 클릭한 칸(&lt;br /&gt;&amp;lt;td&amp;gt;)의 글자 데이터를 쏙 뽑아내는(Getter) 방법&lt;/blockquote&gt;
&lt;pre id=&quot;code_1783322982810&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;title&amp;gt;table 접근 방법&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;


&amp;lt;table border = &quot;1&quot;&amp;gt;
 &amp;lt;colgroup&amp;gt;
	&amp;lt;col width=&quot;50&quot;/&amp;gt;&amp;lt;col width=&quot;150&quot;/&amp;gt;&amp;lt;col width=&quot;150&quot;/&amp;gt;
 &amp;lt;/colgroup&amp;gt;	
	&amp;lt;thead&amp;gt;
		&amp;lt;tr&amp;gt;
		 	&amp;lt;th&amp;gt;number&amp;lt;/th&amp;gt; &amp;lt;th&amp;gt;name&amp;lt;/th&amp;gt; &amp;lt;th&amp;gt;age&amp;lt;/th&amp;gt;
		&amp;lt;/tr&amp;gt;	
	&amp;lt;/thead&amp;gt;
		
	&amp;lt;tbody&amp;gt;
		&amp;lt;tr&amp;gt;
		 	&amp;lt;th&amp;gt;1&amp;lt;/th&amp;gt; &amp;lt;td&amp;gt;홍길동&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;28&amp;lt;/td&amp;gt;
		&amp;lt;/tr&amp;gt;
		&amp;lt;tr&amp;gt;
		 	&amp;lt;th&amp;gt;2&amp;lt;/th&amp;gt; &amp;lt;td&amp;gt;뽀로로&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;35&amp;lt;/td&amp;gt;
		&amp;lt;/tr&amp;gt;
		&amp;lt;tr&amp;gt;
		 	&amp;lt;th&amp;gt;3&amp;lt;/th&amp;gt; &amp;lt;td&amp;gt;둘리&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;2&amp;lt;/td&amp;gt;
		&amp;lt;/tr&amp;gt;
	&amp;lt;/tbody&amp;gt;

&amp;lt;/table&amp;gt;

&amp;lt;!-- table 접근 위해 스크립트 생성 --&amp;gt;
&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
//테이블에 마우스 올리면white 마우스 떠나면 gray로 색상 변화 
//주의 하기 : 마우스 올리면 색변하고 떠나면 색 변하는 작업 할 때는 색상 코드 표기법을 한 가지로 일치시켜야 한다 
//#과 영어 단어를 섞어 쓰면 인식이 안 돼요!
	$(document).ready(function () {
		$(&quot;tr&quot;).mouseover(function () {
			$(this).css(&quot;background&quot; , &quot;#eeeeee&quot;);
		});															//mouseover=onmouseover 과 동일 
		$(&quot;tr&quot;).mouseout(function () {
			$(this).css(&quot;background&quot; , &quot;#808080&quot;);
		});
	});

	//td태그로 클릭한 것의 값을 경고창으로 확인 가능 
	//괄호 안의 내용이 바뀌면 table 값, tr값, tbody 값 등 다양하게 가져오기 가능 
 $(&quot;td&quot;).click(function () {
	alert($(this).text());
});


&amp;lt;/script&amp;gt;



&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;index 2&amp;nbsp;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1783325683816&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;title&amp;gt; radio , checkbox&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;

&amp;lt;!-- radio --&amp;gt;
&amp;lt;ul type = &quot;none&quot;&amp;gt;
	&amp;lt;li&amp;gt;&amp;lt;input type=&quot;radio&quot;  name=&quot;fruit&quot; value = &quot;사과&quot; checked=&quot;checked&quot;/&amp;gt;사과&amp;lt;/li&amp;gt;
	&amp;lt;li&amp;gt;&amp;lt;input type=&quot;radio&quot;  name=&quot;fruit&quot; value = &quot;배&quot;/&amp;gt;배&amp;lt;/li&amp;gt;
	&amp;lt;li&amp;gt;&amp;lt;input type=&quot;radio&quot;  name=&quot;fruit&quot; value = &quot;바나나&quot;/&amp;gt;바나나&amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;


&amp;lt;button type = &quot;button&quot; id=&quot;choice&quot;&amp;gt;선택&amp;lt;/button&amp;gt;

&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
$(&quot;#choice&quot;).click(function () {
	
	//getter
	let fruit= $(&quot;input[name='fruit']:checked&quot;).val();
	alert(fruit);
	
	//setter
	//처음 초기 선택 사과에 가있는데 버튼 클릭하면 바나나로 바뀜, 경고창 바나나 확인 가능 
	$(&quot;input[name='fruit']&quot;).val(['바나나']);
	
});



&amp;lt;/script&amp;gt;

&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;


&amp;lt;input type= &quot;checkbox&quot; id = &quot;picture&quot; name=&quot;picture&quot;/&amp;gt; 그림그리기 
&amp;lt;input type= &quot;checkbox&quot; id = &quot;movie&quot; name=&quot;movie&quot;/&amp;gt; 영화감상 

&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;

&amp;lt;button type =&quot;button&quot; id =&quot;select&quot;&amp;gt;첵크&amp;lt;/button&amp;gt;


&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;

$(&quot;#select&quot;).click(function() {
		//getter
		//let check = $(&quot;picture&quot;).is (&quot;:checkbox&quot;);
		//alert(check);
		
		let check = $(&quot;input:checkbox[id='movie']&quot;).is(&quot;:checked&quot;);
		//let check = $(&quot;input:checkbox[name='movie']&quot;).is(&quot;:checked&quot;); -&amp;gt;id 대신name 도 사용 가능 
		//alert(check);
		
		
		//setter
		$(&quot;#picture&quot;).prop (&quot;checked&quot;,true);
		
});



&amp;lt;/script&amp;gt;


&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;
&lt;h4 data-path-to-node=&quot;6&quot; data-ke-size=&quot;size20&quot;&gt;  사용 목적&lt;/h4&gt;
&lt;h4 data-path-to-node=&quot;8&quot; data-ke-size=&quot;size20&quot;&gt;  이 예제의 핵심 포인트 2가지&lt;/h4&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-path-to-node=&quot;9&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,0,0&quot;&gt;라디오 버튼(radio) 제어&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;9,0,1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,0,1,0,0&quot;&gt;Getter:&lt;/b&gt; $(&quot;input[name='fruit']:checked&quot;).val(); ➔ 사용자가 선택한 과일이 무엇인지 정확히 판별해 냅니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,0,1,1,0&quot;&gt;Setter:&lt;/b&gt; $(&quot;input[name='fruit']&quot;).val(['바나나']); ➔ 대괄호([]) 배열 형식을 사용해 특정 라디오 항목을 동적으로 체크하는 독특한 대입 방식을 보여줍니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,1,0&quot;&gt;체크박스(checkbox) 제어&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;9,1,1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,1,1,0,0&quot;&gt;Getter:&lt;/b&gt; $(&quot;input:checkbox[id='movie']&quot;).is(&quot;:checked&quot;); ➔ 영화감상 칸이 체크되어 있는지 확인하여 true/false 상태를 반환합니다. is() 메서드의 활용법이 핵심입니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,1,1,1,0&quot;&gt;Setter:&lt;/b&gt; $(&quot;#picture&quot;).prop(&quot;checked&quot;, true); ➔ prop() 메서드를 사용해 그림그리기 체크박스를 강제로 체크(true) 상태로 만드는 실무 핵심 문법입니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;index3&lt;/blockquote&gt;
&lt;pre id=&quot;code_1783325821327&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;title&amp;gt;load함수&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;


&amp;lt;div id = &quot;news&quot;&amp;gt;loading...&amp;lt;/div&amp;gt;

&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
//load 함수로 불러오기 
$(&quot;#news&quot;).load(&quot;news.txt&quot;, function(txt,status){
	//alert(txt); //txt파일 잘 넘어왔는지 확인하기 
	$(&quot;#news&quot;).text(txt);
});

&amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 17px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 100%; height: 17px;&quot;&gt;text.txt&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;pre id=&quot;code_1783325845639&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;한국 축구의 2026 국제축구연맹(FIFA) 북중미 월드컵 도전은 처참한 실패로 끝났다. A조 조별리그에서 1승 2패 승점 3으로 3위에 그치면서 32강에도 오르지 못했다. 예견된 참사였다. 홍명보 축구 대표팀 감독의 선임부터가 제대로 된 절차 없이 이뤄졌기 때문이다.

사실 2021년이 한국 축구 인사 시스템 붕괴의 커다란 변곡점이 됐다고 해도 과언이 아니다. 정몽규 대한축구협회(KFA) 회장이 3연임에 성공한 그해 1월 이후부터 축구협회는 더욱 비정상적인 행보를 보였다. 축구협회는 1월27일과 7월13일 각각 정관을 개정했다. 여기서부터 커다란 문제가 시작됐다.&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;index 5&amp;nbsp;&lt;/blockquote&gt;
&lt;pre id=&quot;code_1783325881391&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;title&amp;gt;load 함수 &amp;lt;/title&amp;gt;
&amp;lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;

&amp;lt;div id = &quot;header&quot;&amp;gt;
&amp;lt;/div&amp;gt;

&amp;lt;div id = &quot;main&quot;&amp;gt;
&amp;lt;/div&amp;gt;

&amp;lt;!-- 대용태그 jsp,ajax --&amp;gt;

&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
	$(document).ready(function () {
		
			$(&quot;#header&quot;).load(&quot;header.html&quot;);
			
			$(&quot;#main&quot;).load(&quot;main.html&quot;);
		
	});



&amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;
&lt;h3 data-path-to-node=&quot;4&quot; data-ke-size=&quot;size23&quot;&gt;  이 코드의 핵심 관전 포인트 (블로그 정리용)&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;5&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5,0,0&quot;&gt;&amp;lt;!-- 대용태그 jsp,ajax --&amp;gt; (주석의 의미)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;5,0,1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;적어두신 주석이 아주 정확합니다! 과거에는 서버 사이드 기술인 JSP의 &amp;lt;jsp:include&amp;gt; 태그를 사용해 화면을 조립하곤 했습니다. 하지만 이 코드는 &lt;b data-index-in-node=&quot;87&quot; data-path-to-node=&quot;5,0,1,0,0&quot;&gt;백엔드(JSP)의 도움 없이도 순수 프론트엔드 영역(jQuery AJAX)만으로 화면을 깔끔하게 조립해 낼 수 있다&lt;/b&gt;는 엄청난 장점을 보여주는 대목입니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5,1,0&quot;&gt;실행 시 체크리스트 (기억나시죠?  )&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;5,1,1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;이 예제 역시 브라우저 보안 정책(CORS)의 영향을 받으므로, 이클립스 내부에 header.html 파일과 main.html 파일이 같은 경로에 예쁘게 만들어져 있어야 합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;실행할 때는 반드시 &lt;b data-index-in-node=&quot;11&quot; data-path-to-node=&quot;5,1,1,1,0&quot;&gt;이클립스 내장 서버(Tomcat 등)를 구동하여 http://localhost:... 주소로 실행&lt;/b&gt;해야 조각 파일들이 톱니바퀴처럼 딱 맞아떨어지며 화면에 로드됩니다.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;핵심 코드&amp;nbsp;&lt;br /&gt;&lt;br /&gt;$(&quot;#header&quot;).load(&quot;header.html&quot;);&amp;nbsp;//&amp;nbsp;상단&amp;nbsp;바&amp;nbsp;조립 &lt;br /&gt;$(&quot;#main&quot;).load(&quot;main.html&quot;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;메인&amp;nbsp;콘텐츠&amp;nbsp;조립&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;work&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cFYnV9/dJMcadCvTHQ/OV5KnRMtgeDEzeAqJayYok/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cFYnV9/dJMcadCvTHQ/OV5KnRMtgeDEzeAqJayYok/img.png&quot; data-origin-width=&quot;871&quot; data-origin-height=&quot;622&quot; data-is-animation=&quot;false&quot; style=&quot;width: 26.5187%; margin-right: 10px;&quot; data-widthpercent=&quot;27.15&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cFYnV9/dJMcadCvTHQ/OV5KnRMtgeDEzeAqJayYok/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcFYnV9%2FdJMcadCvTHQ%2FOV5KnRMtgeDEzeAqJayYok%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;871&quot; height=&quot;622&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cleeNQ/dJMb99Uwv1q/ZjkrJK4swDVnbu6PcjDj31/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cleeNQ/dJMb99Uwv1q/ZjkrJK4swDVnbu6PcjDj31/img.png&quot; data-origin-width=&quot;885&quot; data-origin-height=&quot;430&quot; data-is-animation=&quot;false&quot; style=&quot;width: 38.9762%; margin-right: 10px;&quot; data-widthpercent=&quot;39.9&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cleeNQ/dJMb99Uwv1q/ZjkrJK4swDVnbu6PcjDj31/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcleeNQ%2FdJMb99Uwv1q%2FZjkrJK4swDVnbu6PcjDj31%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;885&quot; height=&quot;430&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bg90Vl/dJMcado2iTf/DnZnTx90O2Z6Pw6SRLW2fK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bg90Vl/dJMcado2iTf/DnZnTx90O2Z6Pw6SRLW2fK/img.png&quot; data-origin-width=&quot;887&quot; data-origin-height=&quot;522&quot; data-is-animation=&quot;false&quot; style=&quot;width: 32.1794%;&quot; data-widthpercent=&quot;32.95&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bg90Vl/dJMcado2iTf/DnZnTx90O2Z6Pw6SRLW2fK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbg90Vl%2FdJMcado2iTf%2FDnZnTx90O2Z6Pw6SRLW2fK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;887&quot; height=&quot;522&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;work1&lt;/blockquote&gt;
&lt;pre id=&quot;code_1783326354080&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;title&amp;gt;Insert title here&amp;lt;/title&amp;gt;
&amp;lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;style type=&quot;text/css&quot;&amp;gt;

	.style{
		border: 4px;
		border-style: solid;
		border-color: green;
	}
	.style1{
		border: 4px;
		border-style: solid;
		border-color: red;
	}
	&amp;lt;/style&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;

&amp;lt;h1&amp;gt;photo Library&amp;lt;/h1&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;
기본 라인처리 color : green
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;

&amp;lt;img alt=&quot;&quot; src=&quot;./images/p01.jpg&quot; id=&quot;photo&quot;/&amp;gt;


&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;


	$(&quot;#photo&quot;).attr(&quot;class&quot;,&quot;style&quot;);
	
&amp;lt;/script&amp;gt;

&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;
&amp;lt;h1&amp;gt;life on the water&amp;lt;/h1&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;
이미지 클릭시 라인 처리 &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;

&amp;lt;!-- &amp;lt;img alt=&quot;&quot; src=&quot;./images/photo1.jpg&quot; align=&quot;left&quot; /&amp;gt;
&amp;lt;img alt=&quot;&quot; src=&quot;./images/photo2.jpg&quot;  id=&quot;photo2&quot;/&amp;gt; --&amp;gt;

&amp;lt;input type=&quot;image&quot; id=&quot;photo1&quot; alt=&quot;&quot; src=&quot;./images/photo1.jpg&quot;  /&amp;gt;
&amp;lt;input type=&quot;image&quot; id=&quot;photo2&quot; alt=&quot;&quot; src=&quot;./images/photo2.jpg&quot;  /&amp;gt;
&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;

 $(&quot;#photo1&quot;).click(function(){
	 //alert('on click');
	$(&quot;#photo1&quot;).attr(&quot;class&quot;,&quot;style1&quot;);
 });
 

 $(&quot;#photo2&quot;).click(function(){
	 //alert('on click');
	$(&quot;#photo2&quot;).attr(&quot;class&quot;,&quot;style1&quot;);
 });
&amp;lt;/script&amp;gt;


&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;
&amp;lt;h1&amp;gt;Room image&amp;lt;/h1&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;
마우스 커서가 이미지 위로 이동하면, 이미지 변경 &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;

&amp;lt;img alt=&quot;&quot; src=&quot;./images/b_pic1.jpg&quot; id=&quot;photo4&quot;/&amp;gt;

&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;

$(&quot;#photo4&quot;).ready(function () {
	//alert('photo4');
	$(&quot;#photo4&quot;).mouseover(function () {
		$(this).attr(&quot;src&quot;,&quot;./images/b_pic2.jpg&quot;);
	});
	
	$(&quot;#photo4&quot;).mouseout(function () {
		$(this).attr(&quot;src&quot;,&quot;./images/b_pic1.jpg&quot;);
	});
	
});


&amp;lt;/script&amp;gt;



&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;work2&lt;/blockquote&gt;
&lt;pre id=&quot;code_1783326371687&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;title&amp;gt;Insert title here&amp;lt;/title&amp;gt;

&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;

&amp;lt;img alt=&quot;성 자비에르 성당(외관)&quot; src=&quot;./images/img01.jpg&quot; id=&quot;photo1&quot;&amp;gt;
&amp;lt;img alt=&quot;성 자비에르 성당(내관)&quot; src=&quot;./images/img02.jpg&quot; id=&quot;photo2&quot;&amp;gt;
&amp;lt;img alt=&quot;낡은 건물&quot; src=&quot;./images/img03.jpg&quot; id=&quot;photo3&quot;&amp;gt;
&amp;lt;img alt=&quot;가로등&quot; src=&quot;./images/img04.jpg&quot; id=&quot;photo4&quot;&amp;gt;

&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;

//이렇게 쓰는 방법 알아오기 
$(&quot;img&quot;).click(function(){
	let picture_name = $(this).attr(&quot;picname&quot;);
	alert(picture_name);
});

/*
$(&quot;#photo1&quot;).click(function(){
	 alert('성 자비에르 성당(외관)');
});

$(&quot;#photo2&quot;).click(function(){
	 alert('성 자비에르 성당(내관)');
});

$(&quot;#photo3&quot;).click(function(){
	 alert('낡은 건물');
});

$(&quot;#photo4&quot;).click(function(){
	 alert('가로등');
});
*/

&amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;work3&lt;/blockquote&gt;
&lt;pre id=&quot;code_1783326388351&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;title&amp;gt;Insert title here&amp;lt;/title&amp;gt;
&amp;lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;

&amp;lt;h1&amp;gt; image insert/remover&amp;lt;/h1&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;

&amp;lt;img alt=&quot;&quot; src=&quot;./images/photo_1.jpg&quot; class=&quot;photo1&quot;&amp;gt;
&amp;lt;img alt=&quot;&quot; src=&quot;./images/photo_2.jpg&quot; class=&quot;photo1&quot;&amp;gt;
&amp;lt;img alt=&quot;&quot; src=&quot;./images/photo_3.jpg&quot; class=&quot;photo1&quot;&amp;gt;
&amp;lt;img alt=&quot;&quot; src=&quot;./images/photo_4.jpg&quot; class=&quot;photo1&quot;&amp;gt;
&amp;lt;img alt=&quot;&quot; src=&quot;./images/photo_5.jpg&quot; class=&quot;photo1&quot;&amp;gt;
&amp;lt;img alt=&quot;&quot; src=&quot;./images/photo_6.jpg&quot; class=&quot;photo1&quot;&amp;gt;
&amp;lt;img alt=&quot;&quot; src=&quot;./images/photo_7.jpg&quot; class=&quot;photo1&quot;&amp;gt;
&amp;lt;img alt=&quot;&quot; src=&quot;./images/photo_8.jpg&quot; class=&quot;photo1&quot;&amp;gt;
&amp;lt;img alt=&quot;&quot; src=&quot;./images/photo_9.jpg&quot; class=&quot;photo1&quot;&amp;gt;


&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;

$(&quot;img&quot;).click(function () {
	$(this).remove();
});

&amp;lt;/script&amp;gt;

&amp;lt;!-- 이미지를 추가하고 숨기는 또다른 방법 --&amp;gt;
&amp;lt;div class = &quot;pic&quot;&amp;gt;&amp;lt;/div&amp;gt;

&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
$(document).ready(function () {
	
  for (var i = 1; i &amp;lt; 10; i++) {
	

	let image = $(&quot;&amp;lt;img&amp;gt;&quot;).attr(&quot;src&quot;, &quot;./images/photo_&quot; +i +&quot;.jpg&quot;);
	$(&quot;.pic&quot;).append(image); //이미지 추가 
  }
  $(&quot;img&quot;).click(function () {
	$(this).hide();
})
});

&amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;실무 사용 우편 번호 취득 사이트&amp;nbsp;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;http://postcode.map.daum.net/guide&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;http://postcode.map.daum.net/guide&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1783324457776&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Kakao 우편번호 서비스&quot; data-og-description=&quot;우편번호 검색과 도로명 주소 입력 기능을 너무 간단하게 적용할 수 있는 방법. Kakao 우편번호 서비스를 이용해보세요. 어느 사이트에서나 무료로 제약없이 사용 가능하답니다.&quot; data-og-host=&quot;postcode.map.kakao.com&quot; data-og-source-url=&quot;http://postcode.map.daum.net/guide&quot; data-og-url=&quot;https://postcode.map.kakao.com/guide&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/GtCDb/dJMb86Pdb2O/0hlOXbuYMNDGfQlMi4ikJ0/img.png?width=402&amp;amp;height=219&amp;amp;face=0_0_402_219&quot;&gt;&lt;a href=&quot;http://postcode.map.daum.net/guide&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;http://postcode.map.daum.net/guide&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/GtCDb/dJMb86Pdb2O/0hlOXbuYMNDGfQlMi4ikJ0/img.png?width=402&amp;amp;height=219&amp;amp;face=0_0_402_219');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Kakao 우편번호 서비스&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;우편번호 검색과 도로명 주소 입력 기능을 너무 간단하게 적용할 수 있는 방법. Kakao 우편번호 서비스를 이용해보세요. 어느 사이트에서나 무료로 제약없이 사용 가능하답니다.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;postcode.map.kakao.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.poesis.dev/postcodify/&quot;&gt;오픈소스 도로명주소 검색 API - Postcodify&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1783323796381&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;오픈소스 도로명주소 검색 API - Postcodify&quot; data-og-description=&quot;Postcodify는 도로명주소 우편번호 검색 기능을 제공하는 오픈소스 라이브러리입니다. 어느 웹사이트에나 간단하게 적용할 수 있는 무료 API를 제공합니다.&quot; data-og-host=&quot;www.poesis.dev&quot; data-og-source-url=&quot;https://www.poesis.dev/postcodify/&quot; data-og-url=&quot;https://www.poesis.dev/postcodify/&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://www.poesis.dev/postcodify/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.poesis.dev/postcodify/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;오픈소스 도로명주소 검색 API - Postcodify&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Postcodify는 도로명주소 우편번호 검색 기능을 제공하는 오픈소스 라이브러리입니다. 어느 웹사이트에나 간단하게 적용할 수 있는 무료 API를 제공합니다.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.poesis.dev&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <author>jamk-diary</author>
      <guid isPermaLink="true">https://jamk-diary.tistory.com/86</guid>
      <comments>https://jamk-diary.tistory.com/86#entry86comment</comments>
      <pubDate>Mon, 6 Jul 2026 17:20:16 +0900</pubDate>
    </item>
    <item>
      <title>[수강일지 38] view</title>
      <link>https://jamk-diary.tistory.com/82</link>
      <description>&lt;blockquote data-ke-style=&quot;style3&quot;&gt;Sample 3&lt;/blockquote&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;view one 으로 이동해서 버튼들 클릭하면 기능 실행되게 만들수 있다&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;viewOne&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1135&quot; data-origin-height=&quot;322&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Igj5f/dJMcaccBlt5/VVkQAdCP4SDFcggCck2T2K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Igj5f/dJMcaccBlt5/VVkQAdCP4SDFcggCck2T2K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Igj5f/dJMcaccBlt5/VVkQAdCP4SDFcggCck2T2K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIgj5f%2FdJMcaccBlt5%2FVVkQAdCP4SDFcggCck2T2K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1135&quot; height=&quot;322&quot; data-origin-width=&quot;1135&quot; data-origin-height=&quot;322&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1782958574754&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;title&amp;gt;viewOne&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body &amp;gt;

&amp;lt;h1&amp;gt;viewOne&amp;lt;/h1&amp;gt;

&amp;lt;a href=&quot;./viewTwo.html&quot;&amp;gt;view two로 이동&amp;lt;/a&amp;gt;


&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;

	document.bgColor=&quot;#ff0000&quot;; //배경변경

	
	
&amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;viewTwo&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;283&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bODAGR/dJMcage0y1D/5wq3j2u0ovfkOzNrVfCsk0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bODAGR/dJMcage0y1D/5wq3j2u0ovfkOzNrVfCsk0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bODAGR/dJMcage0y1D/5wq3j2u0ovfkOzNrVfCsk0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbODAGR%2FdJMcage0y1D%2F5wq3j2u0ovfkOzNrVfCsk0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1232&quot; height=&quot;283&quot; data-origin-width=&quot;1232&quot; data-origin-height=&quot;283&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1782958600337&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;title&amp;gt;Insert title here&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body bgcolor=&quot;green&quot;&amp;gt;
&amp;lt;h1&amp;gt;viewTwo&amp;lt;/h1&amp;gt;

&amp;lt;input type=&quot;button&quot; value=&quot;이전으로&quot; onclick=&quot;history.back()&quot;/&amp;gt;

&amp;lt;input type=&quot;button&quot; value=&quot;페이지 갱신&quot; onclick=&quot;location.reload()&quot;&amp;gt;

&amp;lt;input type=&quot;button&quot; value=&quot;(이동했던 페이지)진행&quot; onclick=&quot;history.forward()&quot; &amp;gt;

&amp;lt;input type=&quot;button&quot; value=&quot;view three로 이동&quot; onclick=&quot;goPage()&quot;/&amp;gt;  &amp;lt;!-- 함수사용 --&amp;gt;

&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
function goPage() {
	location.href = &quot;viewThree.html&quot;;
}

&amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;viewThree&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1296&quot; data-origin-height=&quot;333&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2wZdt/dJMcabEKbIb/ZuEueqk1Fdef5FZwckiUwk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2wZdt/dJMcabEKbIb/ZuEueqk1Fdef5FZwckiUwk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2wZdt/dJMcabEKbIb/ZuEueqk1Fdef5FZwckiUwk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2wZdt%2FdJMcabEKbIb%2FZuEueqk1Fdef5FZwckiUwk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1296&quot; height=&quot;333&quot; data-origin-width=&quot;1296&quot; data-origin-height=&quot;333&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1782958612513&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;title&amp;gt;Insert title here&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;

&amp;lt;h1&amp;gt;viewThree&amp;lt;/h1&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;sample 4&lt;/blockquote&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;웹페이지에서 사용자한테 입력받기&amp;nbsp;&lt;br /&gt;제대로 된 값 입력 안 하면 경고창 띄우기&amp;nbsp;&lt;br /&gt;입력 받은 값 콘솔창으로 가져 오기&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1427&quot; data-origin-height=&quot;574&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/R3kxf/dJMb99NFiY7/OYTTUIxVP0c5hyyzsroD1K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/R3kxf/dJMb99NFiY7/OYTTUIxVP0c5hyyzsroD1K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/R3kxf/dJMb99NFiY7/OYTTUIxVP0c5hyyzsroD1K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FR3kxf%2FdJMb99NFiY7%2FOYTTUIxVP0c5hyyzsroD1K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1427&quot; height=&quot;574&quot; data-origin-width=&quot;1427&quot; data-origin-height=&quot;574&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;deafultmove 누르면 페이지 이동하면서 콘솔창에 기본 값 가져온다&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이유 : &lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt; &lt;span style=&quot;color: #008080;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f;&quot;&gt;a&lt;/span&gt; &lt;span style=&quot;color: #7f007f;&quot;&gt;href&lt;/span&gt;=&lt;span style=&quot;color: #2a00ff;&quot;&gt;&quot;default.jsp?name=홍길동&amp;amp;age=24&quot;&lt;/span&gt;&lt;span style=&quot;color: #008080;&quot;&gt;&amp;gt;&lt;/span&gt; default move&lt;span style=&quot;color: #008080;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: #3f7f7f;&quot;&gt;a&lt;/span&gt;&lt;span style=&quot;color: #008080;&quot;&gt;&amp;gt; 코드 작동&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;192&quot; data-origin-height=&quot;45&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cfhtdk/dJMcaglKWJC/SCO6OUSoP6ojKkB9FD1gX1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cfhtdk/dJMcaglKWJC/SCO6OUSoP6ojKkB9FD1gX1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cfhtdk/dJMcaglKWJC/SCO6OUSoP6ojKkB9FD1gX1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcfhtdk%2FdJMcaglKWJC%2FSCO6OUSoP6ojKkB9FD1gX1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;192&quot; height=&quot;45&quot; data-origin-width=&quot;192&quot; data-origin-height=&quot;45&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;빈칸에 입력하면&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;411&quot; data-origin-height=&quot;143&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/4wV8B/dJMcaiRq7Mt/NYgJuzdbpFlwSMFiRXlGnK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/4wV8B/dJMcaiRq7Mt/NYgJuzdbpFlwSMFiRXlGnK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/4wV8B/dJMcaiRq7Mt/NYgJuzdbpFlwSMFiRXlGnK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4wV8B%2FdJMcaiRq7Mt%2FNYgJuzdbpFlwSMFiRXlGnK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;411&quot; height=&quot;143&quot; data-origin-width=&quot;411&quot; data-origin-height=&quot;143&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이동하면서 콘솔창에 입력한 값이 뜬다&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;세번째 내용&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이름 입력 안 하면 경고창 뜨게 만들기&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;698&quot; data-origin-height=&quot;218&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vGj4M/dJMcahSs8BI/lIaco89s0hU6pVhwzQLPxK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vGj4M/dJMcahSs8BI/lIaco89s0hU6pVhwzQLPxK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vGj4M/dJMcahSs8BI/lIaco89s0hU6pVhwzQLPxK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvGj4M%2FdJMcahSs8BI%2FlIaco89s0hU6pVhwzQLPxK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;698&quot; height=&quot;218&quot; data-origin-width=&quot;698&quot; data-origin-height=&quot;218&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이름 제대로 입력 안하면 경고창&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;723&quot; data-origin-height=&quot;223&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lWcMG/dJMcaasmSYp/pJ1qTV1bOndaFM3AkT3lv0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lWcMG/dJMcaasmSYp/pJ1qTV1bOndaFM3AkT3lv0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lWcMG/dJMcaasmSYp/pJ1qTV1bOndaFM3AkT3lv0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlWcMG%2FdJMcaasmSYp%2FpJ1qTV1bOndaFM3AkT3lv0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;723&quot; height=&quot;223&quot; data-origin-width=&quot;723&quot; data-origin-height=&quot;223&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이름 나이 정확하게 입력해야 콘솔창 에 값을 가져올 수 있다&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;213&quot; data-origin-height=&quot;56&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bEJUbi/dJMcaiDUHLi/TevadABsC4yq10KeACb60k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bEJUbi/dJMcaiDUHLi/TevadABsC4yq10KeACb60k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bEJUbi/dJMcaiDUHLi/TevadABsC4yq10KeACb60k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbEJUbi%2FdJMcaiDUHLi%2FTevadABsC4yq10KeACb60k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;213&quot; height=&quot;56&quot; data-origin-width=&quot;213&quot; data-origin-height=&quot;56&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;default.jsp&lt;/blockquote&gt;
&lt;pre id=&quot;code_1782958800577&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;%@ page language=&quot;java&quot; contentType=&quot;text/html; charset=UTF-8&quot;
    pageEncoding=&quot;UTF-8&quot;%&amp;gt;

    &amp;lt;%
    //이름 나이 넘겨줄 수 있게 만들기 
    	String name = request.getParameter(&quot;name&quot;);
    
    	int age = Integer.parseInt(request.getParameter(&quot;age&quot;));
    
    
    	System.out.println(&quot;이름 : &quot; +name);
    	System.out.println(&quot;나이 : &quot; +age);
    %&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;index&lt;/blockquote&gt;
&lt;pre id=&quot;code_1782959426093&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;title&amp;gt;Insert title here&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;

&amp;lt;!-- 

	link 
	
	Html
	
	//차이점 
	&amp;lt;a href= &quot;Url&quot;		-&amp;gt;  단독 사용 묶을 수 없음
	&amp;lt;form action=&quot;&quot;     -&amp;gt; &amp;lt;form&amp;gt;&amp;lt;/form&amp;gt;으로 묶어 줄 수 있다 
	
	java Script
	location.href = &quot;&quot;
	

 --&amp;gt;
 
 &amp;lt;a href=&quot;default.jsp?name=홍길동&amp;amp;age=24&quot;&amp;gt; default move&amp;lt;/a&amp;gt;
 &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;
 
 &amp;lt;hr/&amp;gt;
 
 &amp;lt;form action =&quot;default.jsp&quot;&amp;gt;
 	&amp;lt;input type=&quot;text&quot; name=&quot;name&quot; placeholder=&quot;이름&quot;/&amp;gt;&amp;lt;br/&amp;gt;
 	&amp;lt;input type=&quot;text&quot; name=&quot;age&quot; placeholder=&quot;나이&quot;/&amp;gt;&amp;lt;br/&amp;gt;
 	&amp;lt;input type=&quot;submit&quot; value=&quot;default move&quot;/&amp;gt;
 &amp;lt;/form&amp;gt;
 
  &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;
 
 
  &amp;lt;hr/&amp;gt;
 자바 스크립트 방식
 &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;
 &amp;lt;input type=&quot;text&quot; id=&quot;name&quot; placeholder=&quot;이름&quot;/&amp;gt;&amp;lt;br/&amp;gt;
 &amp;lt;input type=&quot;text&quot; id=&quot;age&quot; placeholder=&quot;나이&quot;/&amp;gt;&amp;lt;br/&amp;gt;
 &amp;lt;button type=&quot;button&quot; onclick=&quot;move()&quot;&amp;gt;default move&amp;lt;/button&amp;gt;
 
 &amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
 function move() {
	let name=document.getElementById(&quot;name&quot;).value;
	let age=document.getElementById(&quot;age&quot;).value;
	
	//검사하게 만들 수 있음 = 빈칸일 때 진행 못하게 
	//자바 스크립트는 제대로 된 값을 (사용자가 원하는 값을 유저한테 받아서 콘솔로 가져올 수 있게 해 준다 
	if(name.trim() ===''){
		alert('이름을 입력해 주십시오');
		return;
	}
	if(name.trim().length &amp;lt;2){
		alert('이름을 정확히 입력해 주세요');
		return;
		
	}
	location.href = &quot;default.jsp?name=&quot; + name + &quot;&amp;amp;age=&quot; +age;
 }
 
 &amp;lt;/script&amp;gt;

&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;Sample5&lt;/blockquote&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;마우스 동작에 따른 이벤트 발생하게 만들기&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;497&quot; data-origin-height=&quot;612&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/k7840/dJMcaftCXUV/zRwLMdM3qCviq4A5xkhONk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/k7840/dJMcaftCXUV/zRwLMdM3qCviq4A5xkhONk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/k7840/dJMcaftCXUV/zRwLMdM3qCviq4A5xkhONk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fk7840%2FdJMcaftCXUV%2FzRwLMdM3qCviq4A5xkhONk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;497&quot; height=&quot;612&quot; data-origin-width=&quot;497&quot; data-origin-height=&quot;612&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;index&lt;/blockquote&gt;
&lt;pre id=&quot;code_1782972800639&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!-- onxxx --&amp;gt;
&amp;lt;!-- 							handle 처리 --&amp;gt;
&amp;lt;!--  
&amp;lt;button type=&quot;button&quot; onclick=&quot;func()&quot;&amp;gt;button&amp;lt;/button&amp;gt;

&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
function fun() {
	//핸들링 -&amp;gt; event 에 대한 처리 
}

&amp;lt;/script&amp;gt;
--&amp;gt;


&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;title&amp;gt;Insert title here&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body onload=&quot;load()&quot;&amp;gt;

&amp;lt;!-- 
	onload (초기값 설정할 때 사용)
 	개발자 도구 콘솔창 가면 확인 가능 
 --&amp;gt;
 
&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
	function load() {
	console.log('onload 실행');
	}	
&amp;lt;/script&amp;gt;



&amp;lt;!-- 
	onclick
	버튼 클릭하면 console.log('button click'); 문구 개발자 도구 콘솔 확인 가능
	
 --&amp;gt;
 
 
&amp;lt;button type=&quot;button&quot; onclick=&quot;func()&quot;&amp;gt;button&amp;lt;/button&amp;gt;
 
 &amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
 function func() {
	console.log('button click');
}
 
 &amp;lt;/script&amp;gt;
 
 &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;
 
 &amp;lt;!-- 
 	onblur:커서의 포커스가 이동 
 	 빈칸에 커서 올렸다가 다른데 누르면 콘솔창 console.log('onblur실행');   출력
 
 --&amp;gt;
 name: &amp;lt;input type=&quot;text&quot; onblur=&quot;isRegName()&quot; size = &quot;10&quot;/&amp;gt;&amp;lt;br/&amp;gt;
  &amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
  function isRegName() {
	console.log('onblur실행');
}
  &amp;lt;/script&amp;gt;
  
  
   
 &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;
  
 
 
 &amp;lt;!--
  onchange:입력된 값이나 선택된 값이 변경되었을 때 실행 되는 것
  (=valueChange)라고 아이폰 쪽에서는 부른다
 
 
  --&amp;gt;
 
 우편 번호 만들기 
 T: &amp;lt;input type=&quot;text&quot; size=&quot;5&quot; maxlength=&quot;3&quot; onchange=&quot;isPostNum(this)&quot;&amp;gt;
 -&amp;lt;input type=&quot;text&quot; size=&quot;5&quot; maxlength=&quot;3&quot; onchange=&quot;isPostNum(this)&quot;&amp;gt;
 
 &amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
 
 //isPostNum 에는 인풋값이 들어오게 만들기  
 function isPostNum(input) {
	//let post = document.getElementById('post').value; - 방법 1 
	let value = input.value;   //-&amp;gt; 객체를 통으로 가져와서 넣는 방법 2
	//alert(value);
	//alert(input.type);  -&amp;gt; 경고창에 input type 값 가져온다
	
	//숫자가 아닌 문자가 포함되어 있을 경우 
	if(value.match(/[^0-9]/g)){
		alert('숫자가 아닌 문자가 포함되어 있습니다');
	}
}
 &amp;lt;/script&amp;gt;
 
 
  &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;
  
  
  &amp;lt;select onchange=&quot;valueChange()&quot;&amp;gt;
 
  	&amp;lt;option&amp;gt;영화보기&amp;lt;/option&amp;gt;
  	&amp;lt;option&amp;gt;그림그리기&amp;lt;/option&amp;gt;
  	&amp;lt;option&amp;gt;게임하기&amp;lt;/option&amp;gt;
  &amp;lt;/select&amp;gt;
  
  &amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
  function valueChange() {
	alert('valueChange()');
}
  
  &amp;lt;/script&amp;gt;
  
    &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;
  
  &amp;lt;!-- onKeydown. onkeypress 
  텍스트창에 문자 입력하고 빈곳 누르면 콘솔창에 키코드 넘어온다 --&amp;gt;
  &amp;lt;input type = &quot;text&quot; name=&quot;title&quot;/&amp;gt;
  
  &amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
 
  /*
  document.getElementsByName(&quot;title&quot;)[0].onkeydown = function (event) {
		console.log(&quot;keycode:&quot; +event.keyCode);} */
  
		//onkeypress를 써서 다른 키 코드 값이 나온다 
  document.getElementsByName(&quot;title&quot;)[0].onkeypress = function (event) {
		console.log(&quot;keycode:&quot; +event.keyCode);}
  
  &amp;lt;/script&amp;gt;
  
  &amp;lt;!-- onMouseDown, onMouseup, onMouseOver, onMouseOut --&amp;gt;
  &amp;lt;input type=&quot;image&quot; src=&quot;./images/san0.gif&quot; 
   onmousedown=&quot;mousedown(this)&quot;
   onmouseup=&quot;mouseup(this)&quot;
   onmouseover=&quot;mouseover(this)&quot;
   onmouseout=&quot;mouseout(this)&quot;/&amp;gt;
   
   
   &amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
   function mousedown(input) {
	input.src = &quot;./images/san1.gif&quot;;
}
   
   function mouseup(input) {
	   input.src = &quot;./images/san0.gif&quot;
}
   
   function mouseover(input) {
	   input.src = &quot;./images/san2.gif&quot;
}
   
   function mouseoutin(put) {
	   input.src = &quot;./images/san0.gif&quot;
}
   
 
   &amp;lt;/script&amp;gt;
   
   
     &amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;
   
   &amp;lt;a href = &quot;#&quot; onmouseover=&quot;document.box.src='./images/surprise.gif'&quot;  
   			     onmouseout=&quot;document.box.src='./images/box.gif'&quot;&amp;gt; &amp;lt;!-- 마우스가 떠나면 박스 이미지 보이게 만들기 마우스가 올라오면 gif 이미지 보이게 만들기   --&amp;gt;    
   		&amp;lt;img alt=&quot;&quot; src=&quot;./images/box.gif&quot; name=&quot;box&quot; /&amp;gt;		&amp;lt;!-- 사용자한테 가장먼저 기본으로 보이는 이미지 --&amp;gt;     
   			     
  &amp;lt;/a&amp;gt;
 
 
 
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;sample 6&lt;/blockquote&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;유저가 버튼을 누르면 경고창에 문장입니다 출력하게 만들기&amp;nbsp;&lt;br /&gt;&lt;br /&gt;유저가 셀렉트로 선택한 걸 콘솔창에 띄우기&amp;nbsp;&lt;br /&gt;&lt;br /&gt;유저가&amp;nbsp; 추가 버튼 누르고 누른 걸 웹페이지에 출력해주기&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1700&quot; data-origin-height=&quot;715&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bhZYkE/dJMcafmVuVK/mf1cdluFK67uYBklxXauK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhZYkE/dJMcafmVuVK/mf1cdluFK67uYBklxXauK0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhZYkE/dJMcafmVuVK/mf1cdluFK67uYBklxXauK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbhZYkE%2FdJMcafmVuVK%2Fmf1cdluFK67uYBklxXauK0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1700&quot; height=&quot;715&quot; data-origin-width=&quot;1700&quot; data-origin-height=&quot;715&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1782972887678&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt; &amp;lt;!-- root tag --&amp;gt;

	&amp;lt;head&amp;gt; &amp;lt;!-- html child node --&amp;gt;
		&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
		&amp;lt;title&amp;gt;Insert title here&amp;lt;/title&amp;gt;
	&amp;lt;/head&amp;gt;

	&amp;lt;body&amp;gt;&amp;lt;!-- html child node --&amp;gt;
		
		&amp;lt;!-- body child node --&amp;gt;
		&amp;lt;h3 id =&quot;intro&quot;&amp;gt;제목입니다&amp;lt;/h3&amp;gt;
		
		&amp;lt;p id =&quot;demo&quot;&amp;gt; 단락입니다&amp;lt;/p&amp;gt;
		
		&amp;lt;button type=&quot;button&quot; onclick=&quot;func()&quot;&amp;gt;버튼 &amp;lt;/button&amp;gt;
		
		&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
			function func() {
				//let intro = document.getElementById('intro').innerHTML;
				let intro = document.getElementById('intro').childNodes[0].nodeValue;
				alert(intro);
			}
		
			
		
		&amp;lt;/script&amp;gt;
		
		&amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;
		
		&amp;lt;select id=&quot;car&quot;&amp;gt; &amp;lt;!-- 0번찌 --&amp;gt;
		 &amp;lt;option value=&quot;&quot;&amp;gt;&amp;lt;!-- 1번찌 --&amp;gt;벤츠&amp;lt;/option&amp;gt;  &amp;lt;!-- 4번찌 --&amp;gt;
		 &amp;lt;option&amp;gt;아우디&amp;lt;/option&amp;gt;
		 &amp;lt;option&amp;gt;현대&amp;lt;/option&amp;gt;
		&amp;lt;/select&amp;gt;
			
			
			&amp;lt;button  type = &quot;button&quot; onclick=&quot;car()&quot;&amp;gt;선택&amp;lt;/button&amp;gt;
			
			
			&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
				function car() {
					let mycar=document.getElementById(&quot;car&quot;).childNodes
					//alert(mycar.length);
					alert(mycar[4].text);
				}
			
			&amp;lt;/script&amp;gt;
			
			&amp;lt;pre&amp;gt;
			엉뚱하게 7이 나오는 이유 
			
			
			제공해주신 코드에서 
			document.getElementById(&quot;car&quot;).childNodes를 통해 가져오는 
			childNodes는 HTML 태그(요소)뿐만 아니라 태그 사이의 공백, 줄바꿈(텍스트 노드), 
			그리고 주석까지 모두 포함합니다.
			&amp;lt;/pre&amp;gt;
			
			&amp;lt;!-- 추가 버튼 누르면  
				let textNode = document.createTextNode(&quot;welcome&quot;); 출력 되게 만들기 
			--&amp;gt;
			
			&amp;lt;div id=&quot;div1&quot;&amp;gt;
				&amp;lt;p id=&quot;p1&quot;&amp;gt;Hello&amp;lt;/p&amp;gt;
				&amp;lt;p id=&quot;p2&amp;gt;&quot;&amp;gt;World&amp;lt;/p&amp;gt;
			&amp;lt;/div&amp;gt;
			
			
			&amp;lt;button type=&quot;button&quot; onclick=&quot;append()&quot;&amp;gt;추가&amp;lt;/button&amp;gt;
			
			&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
			
				function append() {
					let p_tag = document.createElement(&quot;p&quot;);
					//p_tag.innerHTML = &quot;WELCOME&quot;;
					let textNode = document.createTextNode(&quot;welcome&quot;);
					p_tag.appendChild(textNode);
					
					let div1 = document.getElementById(&quot;div1&quot;);
					div1.appendChild(p_tag);
				}
			
			&amp;lt;/script&amp;gt;
			
			
			
			
			
			
			
			
	&amp;lt;/body&amp;gt;

&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;work&amp;nbsp;&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bYQ1zG/dJMcad3BynL/vtMjcCYvivyagCpQLmfTM0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bYQ1zG/dJMcad3BynL/vtMjcCYvivyagCpQLmfTM0/img.png&quot; data-is-animation=&quot;false&quot; data-origin-height=&quot;290&quot; data-origin-width=&quot;641&quot; style=&quot;width: 38.5969%; margin-right: 10px;&quot; data-widthpercent=&quot;39.52&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bYQ1zG/dJMcad3BynL/vtMjcCYvivyagCpQLmfTM0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbYQ1zG%2FdJMcad3BynL%2FvtMjcCYvivyagCpQLmfTM0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;641&quot; height=&quot;290&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bIK4ST/dJMcabLC0va/UdagLLusy9ivH7i97S7AW1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bIK4ST/dJMcabLC0va/UdagLLusy9ivH7i97S7AW1/img.png&quot; data-origin-width=&quot;637&quot; data-origin-height=&quot;386&quot; data-is-animation=&quot;false&quot; style=&quot;width: 28.8167%; margin-right: 10px;&quot; data-widthpercent=&quot;29.5&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bIK4ST/dJMcabLC0va/UdagLLusy9ivH7i97S7AW1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbIK4ST%2FdJMcabLC0va%2FUdagLLusy9ivH7i97S7AW1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;637&quot; height=&quot;386&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/repdC/dJMcabxYyEs/TWeYvI9t8F8F6KDukBEoG0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/repdC/dJMcabxYyEs/TWeYvI9t8F8F6KDukBEoG0/img.png&quot; data-origin-width=&quot;610&quot; data-origin-height=&quot;352&quot; data-is-animation=&quot;false&quot; style=&quot;width: 30.2608%;&quot; data-widthpercent=&quot;30.98&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/repdC/dJMcabxYyEs/TWeYvI9t8F8F6KDukBEoG0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrepdC%2FdJMcabxYyEs%2FTWeYvI9t8F8F6KDukBEoG0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;610&quot; height=&quot;352&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qqttN/dJMcafHd1YR/fyHRo3B7Q0LedzXUHVYz61/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qqttN/dJMcafHd1YR/fyHRo3B7Q0LedzXUHVYz61/img.png&quot; data-origin-width=&quot;605&quot; data-origin-height=&quot;396&quot; data-is-animation=&quot;false&quot; data-widthpercent=&quot;36.25&quot; style=&quot;width: 35.4065%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qqttN/dJMcafHd1YR/fyHRo3B7Q0LedzXUHVYz61/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqqttN%2FdJMcafHd1YR%2FfyHRo3B7Q0LedzXUHVYz61%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;605&quot; height=&quot;396&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qLkoa/dJMcahdXfZN/JTBK6pKZUTU6JpjwzkQAk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qLkoa/dJMcahdXfZN/JTBK6pKZUTU6JpjwzkQAk1/img.png&quot; data-origin-width=&quot;601&quot; data-origin-height=&quot;457&quot; data-is-animation=&quot;false&quot; style=&quot;width: 30.4776%; margin-right: 10px;&quot; data-widthpercent=&quot;31.2&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qLkoa/dJMcahdXfZN/JTBK6pKZUTU6JpjwzkQAk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqLkoa%2FdJMcahdXfZN%2FJTBK6pKZUTU6JpjwzkQAk1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;601&quot; height=&quot;457&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LTTU6/dJMcah57FFP/GGS9O6Acn4qnoipaFeJJGk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LTTU6/dJMcah57FFP/GGS9O6Acn4qnoipaFeJJGk/img.png&quot; data-origin-width=&quot;631&quot; data-origin-height=&quot;460&quot; data-is-animation=&quot;false&quot; data-widthpercent=&quot;32.55&quot; style=&quot;width: 31.7903%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LTTU6/dJMcah57FFP/GGS9O6Acn4qnoipaFeJJGk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLTTU6%2FdJMcah57FFP%2FGGS9O6Acn4qnoipaFeJJGk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;631&quot; height=&quot;460&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;work 1&amp;nbsp;&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1083&quot; data-origin-height=&quot;371&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bFduqp/dJMcacDKt9Y/srCCjdA7GC5TA2FLmPA9Hk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bFduqp/dJMcacDKt9Y/srCCjdA7GC5TA2FLmPA9Hk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bFduqp/dJMcacDKt9Y/srCCjdA7GC5TA2FLmPA9Hk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbFduqp%2FdJMcacDKt9Y%2FsrCCjdA7GC5TA2FLmPA9Hk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1083&quot; height=&quot;371&quot; data-origin-width=&quot;1083&quot; data-origin-height=&quot;371&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;787&quot; data-origin-height=&quot;313&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Zrmu0/dJMcaiDUOCA/oahbYVyXmIrEbzhg45xabK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Zrmu0/dJMcaiDUOCA/oahbYVyXmIrEbzhg45xabK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Zrmu0/dJMcaiDUOCA/oahbYVyXmIrEbzhg45xabK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZrmu0%2FdJMcaiDUOCA%2FoahbYVyXmIrEbzhg45xabK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;787&quot; height=&quot;313&quot; data-origin-width=&quot;787&quot; data-origin-height=&quot;313&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1782977446996&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;title&amp;gt;Insert title here&amp;lt;/title&amp;gt;
&amp;lt;style type=&quot;text/css&quot;&amp;gt;
	table { border: 2px;
			border-style: solid;
				
}

table, th, td{
		border-style: solid;
		border-width: 3px;
		border-color: purple;	
		
	}
&amp;lt;/style&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;

&amp;lt;h1&amp;gt;배열의 연산&amp;lt;/h1&amp;gt;
&amp;lt;table&amp;gt;
	&amp;lt;thead&amp;gt;
	 	&amp;lt;tr&amp;gt;
	 		&amp;lt;th&amp;gt;첨자&amp;lt;/th&amp;gt; &amp;lt;th&amp;gt;a&amp;lt;/th&amp;gt; &amp;lt;th&amp;gt;b&amp;lt;/th&amp;gt; &amp;lt;th&amp;gt;a*b을 계산&amp;lt;/th&amp;gt;
	 	&amp;lt;/tr&amp;gt;
	&amp;lt;/thead&amp;gt;
	
	&amp;lt;tbody&amp;gt;
		&amp;lt;tr&amp;gt;
			&amp;lt;th&amp;gt;0&amp;lt;/th&amp;gt; 
			&amp;lt;td&amp;gt;5&amp;lt;/td&amp;gt; &amp;lt;td &amp;gt;33&amp;lt;/td&amp;gt; 
			&amp;lt;td&amp;gt; &amp;lt;input type=&quot;button&quot; value=&quot;계산결과&quot;  onclick=&quot;one()&quot;&amp;gt; &amp;lt;/td&amp;gt;
		&amp;lt;/tr&amp;gt;
		
		&amp;lt;tr&amp;gt;
			&amp;lt;th&amp;gt;1&amp;lt;/th&amp;gt; 
			&amp;lt;td&amp;gt;12&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;14&amp;lt;/td&amp;gt; 
			&amp;lt;td&amp;gt;&amp;lt;input type=&quot;button&quot; value=&quot;계산결과&quot;  onclick=&quot;two()&quot;&amp;gt;&amp;lt;/td&amp;gt;
		&amp;lt;/tr&amp;gt;
		
		&amp;lt;tr&amp;gt;
			&amp;lt;th&amp;gt;2&amp;lt;/th&amp;gt; 
			&amp;lt;td&amp;gt;18&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;65&amp;lt;/td&amp;gt; 
			&amp;lt;td&amp;gt;&amp;lt;input type=&quot;button&quot; value=&quot;계산결과&quot;  onclick=&quot;three()&quot;&amp;gt;&amp;lt;/td&amp;gt;
		&amp;lt;/tr&amp;gt;
		
	&amp;lt;/tbody&amp;gt;
&amp;lt;/table&amp;gt;

	&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
		
	function one() {
		let a = document.getElementsByTagName(&quot;td&quot;)[0].innerHTML;
		let b = document.getElementsByTagName(&quot;td&quot;)[1].innerHTML;
		
		let result= a*b;
		
		alert(result);		
			
		}
	function two() {
		let a = document.getElementsByTagName(&quot;td&quot;)[3].innerHTML;
		let b = document.getElementsByTagName(&quot;td&quot;)[4].innerHTML;
		
		let result= a*b;
		
		alert(result);
		
			
		}
	function three() {
		let a = document.getElementsByTagName(&quot;td&quot;)[6].innerHTML;
		let b = document.getElementsByTagName(&quot;td&quot;)[7].innerHTML;
		
		let result= a*b;
		
		alert(result);
		
			
		}
	
	&amp;lt;/script&amp;gt;




&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;work 2&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1375&quot; data-origin-height=&quot;530&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bMneAH/dJMcacXZiBV/8nFgzmaONLLIrQUUf6OUwK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bMneAH/dJMcacXZiBV/8nFgzmaONLLIrQUUf6OUwK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bMneAH/dJMcacXZiBV/8nFgzmaONLLIrQUUf6OUwK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbMneAH%2FdJMcacXZiBV%2F8nFgzmaONLLIrQUUf6OUwK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1375&quot; height=&quot;530&quot; data-origin-width=&quot;1375&quot; data-origin-height=&quot;530&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1782979569858&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;title&amp;gt;Insert title here&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;

&amp;lt;h1&amp;gt; 단가 * 수량 알람표&amp;lt;/h1&amp;gt;
&amp;lt;table border = &quot;1&quot; &amp;gt;
    &amp;lt;thead&amp;gt;
        &amp;lt;tr&amp;gt;
            &amp;lt;th&amp;gt;갯수 &amp;lt;/th&amp;gt;  &amp;lt;th&amp;gt;제품a&amp;lt;/th&amp;gt;  &amp;lt;th&amp;gt;제품 b&amp;lt;/th&amp;gt; &amp;lt;th&amp;gt; 제품 c&amp;lt;/th&amp;gt;
        &amp;lt;/tr&amp;gt;
    &amp;lt;/thead&amp;gt;
    &amp;lt;tbody id =&quot;tbody&quot;&amp;gt;&amp;lt;/tbody&amp;gt;
&amp;lt;/table&amp;gt;

&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
// 1. 단가 변수들을 스크립트 태그 안으로 이동시켰습니다.
let a = 300;
let b = 450;
let c = 520;

let tbody = document.getElementById(&quot;tbody&quot;);


//       &amp;lt;반복문을 통한 tr , th 만들기&amp;gt;
// 2. array.length 대신 갯수를 몇 번 반복할지 숫자를 지정해줍니다. (예: 1개부터 5개까지)
// 변수 i가 곧 '갯수'가 됩니다.
for (let i = 1; i &amp;lt;= 10; i++) {
    
    let tr = document.createElement(&quot;tr&quot;); // tr 태그 블록 생성
                                           //let tr 이라는 변수를 만들어 = 여기에 요소를 넣을 건데 html 에서 tr 태그 블록과 같은 형식으로 만들어 라는 뜻

    // 3. &amp;lt;th&amp;gt; 태그에 현재 갯수(i)를 넣어줍니다.
    let th = document.createElement(&quot;th&quot;);  
    th.innerHTML = i;                      //우리가 10전까지만 만들게 했으니까 i 가 포문 통해서 10전까지 반복하는 동안 t h 태그 블록을 계속 생성하게 만든것 
    
    // 4. 각 제품별로 [단가 * 갯수]를 계산하여 원을 붙여줍니다.
    //createTextNode 공장 자체는 수학 계산을 할 줄 모릅니다. (글자만 다루는 공장이에요!)
	//자바스크립트라는 똑똑한 비서가 공장에 재료를 넘겨주기 전에 괄호 안을 미리 싹 계산해서 완성품으로 전달해 주기 때문에 코드 안에서 저런 계산이 가능했던 거랍니다!

    let td1 = document.createElement(&quot;td&quot;);
    td1.appendChild(document.createTextNode((a * i) + &quot;원&quot;));  

    let td2 = document.createElement(&quot;td&quot;); 
    td2.appendChild(document.createTextNode((b * i) + &quot;원&quot;));  

    let td3 = document.createElement(&quot;td&quot;);
    td3.appendChild(document.createTextNode((c * i) + &quot;원&quot;)); 

    // 5. 생성한 태그들을 조립하여 표(tbody)에 넣습니다.
    //내가 만든 HTML 부품을 어딘가에 집어넣고 싶을 때는 언제나 appendChild를 사용하시면 됩니다.
    //나는 th 부품을 tr 에 넣을 거야 
    //tr 은 자바 스크립트 안에서 선언한 let tr이야 
    
    tr.appendChild(th);
    tr.appendChild(td1);
    tr.appendChild(td2);
    tr.appendChild(td3);

    //html에서 사용한 id는 어디로든 문이야 그래서 서로 연결되어 있어 
    //let tbody 쓰고 도큐먼트.겟일러먼트파이 아이디로 html id 가져와서 사용할 수 있었어 이제 선언 안해도 사용할 수 있게 된거야 
    tbody.appendChild(tr);
}
&amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;work3&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1842&quot; data-origin-height=&quot;367&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c2dL9o/dJMcabdDClo/Yc7xwYxX5QuxRRgtB2KijK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c2dL9o/dJMcabdDClo/Yc7xwYxX5QuxRRgtB2KijK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c2dL9o/dJMcabdDClo/Yc7xwYxX5QuxRRgtB2KijK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc2dL9o%2FdJMcabdDClo%2FYc7xwYxX5QuxRRgtB2KijK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1842&quot; height=&quot;367&quot; data-origin-width=&quot;1842&quot; data-origin-height=&quot;367&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;945&quot; data-origin-height=&quot;262&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sbbiE/dJMcacRaQNh/6keV847M46bqoPAyA2twoK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sbbiE/dJMcacRaQNh/6keV847M46bqoPAyA2twoK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sbbiE/dJMcacRaQNh/6keV847M46bqoPAyA2twoK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsbbiE%2FdJMcacRaQNh%2F6keV847M46bqoPAyA2twoK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;945&quot; height=&quot;262&quot; data-origin-width=&quot;945&quot; data-origin-height=&quot;262&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;932&quot; data-origin-height=&quot;291&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/R25sL/dJMcab5QUhc/tzKUlpIO8YspSLEkFnHkfK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/R25sL/dJMcab5QUhc/tzKUlpIO8YspSLEkFnHkfK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/R25sL/dJMcab5QUhc/tzKUlpIO8YspSLEkFnHkfK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FR25sL%2FdJMcab5QUhc%2FtzKUlpIO8YspSLEkFnHkfK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;932&quot; height=&quot;291&quot; data-origin-width=&quot;932&quot; data-origin-height=&quot;291&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1782980308904&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;title&amp;gt;Insert title here&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;

&amp;lt;h2&amp;gt;(문제)&amp;lt;/h2&amp;gt;

&amp;lt;h2&amp;gt;사나이들의 영화인 탑건은 군인 영화입니다. 그러면 육군, 해군, 공군 중 어느 군의 영화일까요? &amp;lt;/h2&amp;gt;

&amp;lt;br/&amp;gt;

&amp;lt;input type=&quot;button&quot; value=&quot;답을보다&quot; onclick=&quot;btnclick()&quot;  &amp;gt;

&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;


 * 버튼을 한 번 클릭하면 힌트가 표시됩니다. 
 * 버튼을 두 번 클릭하면 답이 표시됩니다. 
 
 
 
&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
 let loop=0; //변수 선언  -&amp;gt; &quot;컴퓨터에게 '지금 버튼을 몇 번째 누른 상태인지' 기억하게 만들려고&quot;
 //온클릭을 할 때마다 컴퓨터는 계속해서 자꾸 까먹으니까 변수 상자를 만들어서 몇 번 클릭 했는지 인식하게 만들려고 하는 거

 	function btnclick() {
 		
 		if(loop ==0){
 			alert('힌트');
 		    loop = 1 ;
 		}
 		
 		else if (loop ==1) {
 			alert('해군이지롱');
 		    loop = 2;
		}
 	
 		/*
 		아 위에서부터 실행해서 힌트 경고창으로 띄워주고 루프를 1로 바꾼 것

1. 웹페이지에서 클릭하고 경고창으로 힌트 뜬다
2. 다시 돌아오면 거기다가 1을 더해서 2번째인 정답이 출력되게 만든거지?		
 		
 		
		lf 랑 else if 사용 
		
		 클릭 한 번 했을 때는 조건문으로 들어와서 힌트 경고창 띄우기 실행하고 그 다음 준비 상태가 되는데 else if로 두 번째 클릭을 만들게 되니까
 		*/
	}

&amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;work 4&amp;nbsp;&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1675&quot; data-origin-height=&quot;547&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KETgP/dJMcaglK32A/C3PG2j13DkNtn8CEtXS0s1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KETgP/dJMcaglK32A/C3PG2j13DkNtn8CEtXS0s1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KETgP/dJMcaglK32A/C3PG2j13DkNtn8CEtXS0s1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKETgP%2FdJMcaglK32A%2FC3PG2j13DkNtn8CEtXS0s1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1675&quot; height=&quot;547&quot; data-origin-width=&quot;1675&quot; data-origin-height=&quot;547&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;813&quot; data-origin-height=&quot;238&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/blCvQh/dJMcabkw84v/RnkKgFkqiywK57kjn8qIoK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/blCvQh/dJMcabkw84v/RnkKgFkqiywK57kjn8qIoK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/blCvQh/dJMcabkw84v/RnkKgFkqiywK57kjn8qIoK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FblCvQh%2FdJMcabkw84v%2FRnkKgFkqiywK57kjn8qIoK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;813&quot; height=&quot;238&quot; data-origin-width=&quot;813&quot; data-origin-height=&quot;238&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1782980335902&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;title&amp;gt;Insert title here&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
&amp;lt;h1&amp;gt; 문제 &amp;lt;/h1&amp;gt;
&amp;lt;h1&amp;gt; 다음 이차 방정식을 해를 구하고 , 그 버튼을 클릭하십시오  &amp;lt;/h1&amp;gt;

&amp;lt;br/&amp;gt; 

&amp;lt;h1&amp;gt; x&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; -5x =-6&amp;lt;/h1&amp;gt; &amp;lt;!-- 제곱 사용법 x^2 쓰고 싶으면 &amp;lt;sup&amp;gt; 태그 사용하기  --&amp;gt;

&amp;lt;br/&amp;gt;
 
&amp;lt;button type=&quot;button&quot; onclick=&quot;result(1)&quot;&amp;gt;x=1&amp;lt;/button&amp;gt;
&amp;lt;button type=&quot;button&quot;  onclick=&quot;result(2)&quot;&amp;gt;x=2&amp;lt;/button&amp;gt;
&amp;lt;button type=&quot;button&quot;  onclick=&quot;result(3)&quot;&amp;gt;x=3&amp;lt;/button&amp;gt;
&amp;lt;button type=&quot;button&quot;  onclick=&quot;result(4)&quot;&amp;gt;x=4&amp;lt;/button&amp;gt;
&amp;lt;button type=&quot;button&quot;  onclick=&quot;result(5)&quot;&amp;gt;x=5&amp;lt;/button&amp;gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;
답은 두 개얌 
&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;

	
	//Math -&amp;gt; java 내장 함수 : 수학 전용 계산기 객체 : 야 계산기 불러와 하고 입력하는 명령 
	//어떤 숫자의 제곱근을 구해야 한다 -&amp;gt; 자바스크립트에서는 Math.sqrt() 사용하기 
	//let answer1 = (-b +Math.sqrt(b * b -4 *a*c))
	
	//하지만 나는 구냥 답 선택하게 할 거지롱 -2 랑 -3이 정답이양
	
 function result(x) {
	
		let re = Math.pow(x,2) - (5*x);
		if(re === -6){
			
			 alert(&quot;정답&quot;);
		}
		else{
			alert(&quot;오답&quot;);
		}
}
	

&amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;work 5&amp;nbsp;&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1500&quot; data-origin-height=&quot;365&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KqSqL/dJMb99UtV2V/KA4TZXOsCoodDa3xj0CKW1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KqSqL/dJMb99UtV2V/KA4TZXOsCoodDa3xj0CKW1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KqSqL/dJMb99UtV2V/KA4TZXOsCoodDa3xj0CKW1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKqSqL%2FdJMb99UtV2V%2FKA4TZXOsCoodDa3xj0CKW1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1500&quot; height=&quot;365&quot; data-origin-width=&quot;1500&quot; data-origin-height=&quot;365&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1782980405975&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;title&amp;gt;Insert title here&amp;lt;/title&amp;gt;
&amp;lt;style type=&quot;text/css&quot;&amp;gt;
 table { border: 2px;
 	     border-style:solid;
	
}

table, th, td{
		border-style: solid;
		border-width: 3px;
		border-color: purple;	
		
	}
&amp;lt;/style&amp;gt;
&amp;lt;/head&amp;gt;

&amp;lt;body&amp;gt;
&amp;lt;h1&amp;gt;포털 사이트 &amp;lt;/h1&amp;gt;
&quot;열기 &quot;버튼 클릭하면 홈페이지 새창 열기 
&amp;lt;table&amp;gt;
 	&amp;lt;tr&amp;gt;
 		&amp;lt;th&amp;gt;네이버&amp;lt;/th&amp;gt; 
 		&amp;lt;td&amp;gt;https://www.naver.com/&amp;lt;/td&amp;gt; 
 		&amp;lt;td&amp;gt;&amp;lt;input type=&quot;button&quot; value=&quot;열기 &quot; onclick=&quot;naver()&quot;&amp;gt;&amp;lt;/td&amp;gt;
 	&amp;lt;/tr&amp;gt;
 	
 	&amp;lt;tr&amp;gt;
 		&amp;lt;th&amp;gt;다음&amp;lt;/th&amp;gt; 
 		&amp;lt;td&amp;gt;https://www.daum.net/&amp;lt;/td&amp;gt; 
 		&amp;lt;td&amp;gt;&amp;lt;input type=&quot;button&quot; value=&quot;열기 &quot; onclick=&quot;daum()&quot;&amp;gt;&amp;lt;/td&amp;gt;
 	&amp;lt;/tr&amp;gt;
 	
 	&amp;lt;tr&amp;gt;
 		&amp;lt;th&amp;gt;줌&amp;lt;/th&amp;gt; 
 		&amp;lt;td&amp;gt;https://zum.com/&amp;lt;/td&amp;gt; 
 		&amp;lt;td&amp;gt;&amp;lt;input type=&quot;button&quot; value=&quot;열기 &quot; onclick=&quot;zum()&quot;&amp;gt;&amp;lt;/td&amp;gt;
 	&amp;lt;/tr&amp;gt;
 	
 	
&amp;lt;/table&amp;gt;



&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;

function naver() {
	 location.href=&quot;https://www.naver.com&quot;;
	
}

function daum() {
	 location.href=&quot;https://www.daum.net/&quot;;
	
}

function zum() {
	 location.href=&quot;https://zum.com/&quot;;
	
}

&amp;lt;/script&amp;gt;








&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;work 6&amp;nbsp;&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1020&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dfd4Be/dJMcaiX7Q2k/V0FKzNNWAKxymLHktwO200/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dfd4Be/dJMcaiX7Q2k/V0FKzNNWAKxymLHktwO200/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dfd4Be/dJMcaiX7Q2k/V0FKzNNWAKxymLHktwO200/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdfd4Be%2FdJMcaiX7Q2k%2FV0FKzNNWAKxymLHktwO200%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1020&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1020&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1782980443718&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;title&amp;gt;Insert title here&amp;lt;/title&amp;gt;

&amp;lt;style type=&quot;text/css&quot;&amp;gt;
body{
	background-color: #000;
	color: #fff;
}
&amp;lt;/style&amp;gt;

&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;

&amp;lt;h1&amp;gt;사진들&amp;lt;/h1&amp;gt;

&amp;lt;div align=&quot;center&quot;&amp;gt;
&amp;lt;table&amp;gt;
&amp;lt;tr&amp;gt;
	&amp;lt;td&amp;gt;
		&amp;lt;img alt=&quot;&quot; name=&quot;out&quot; src=&quot;./img/c.jpg&quot; width=&quot;260&quot; height=&quot;440&quot; border=&quot;5&quot;/&amp;gt;
	&amp;lt;/td&amp;gt;
	&amp;lt;td valign=&quot;top&quot; style=&quot;padding-left: 20px&quot;&amp;gt;
		사진의 선택&amp;lt;br/&amp;gt;
		&amp;lt;form name=&quot;frm&quot;&amp;gt;
			&amp;lt;select name=&quot;picture&quot; onchange=&quot;pictureChange()&quot;&amp;gt;
				&amp;lt;option&amp;gt;사진의 선택&amp;lt;/option&amp;gt;
				&amp;lt;option value=&quot;./img/c.jpg&quot;&amp;gt;건물복도&amp;lt;/option&amp;gt;
				&amp;lt;option value=&quot;./img/d.jpg&quot;&amp;gt;성당안&amp;lt;/option&amp;gt;
				&amp;lt;option value=&quot;./img/e.jpg&quot;&amp;gt;성당밖&amp;lt;/option&amp;gt;
				&amp;lt;option value=&quot;./img/a.jpg&quot;&amp;gt;메이지건물&amp;lt;/option&amp;gt;
			&amp;lt;/select&amp;gt;
		&amp;lt;/form&amp;gt;
	&amp;lt;/td&amp;gt;
&amp;lt;/tr&amp;gt;
&amp;lt;/table&amp;gt;
&amp;lt;/div&amp;gt;

&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
function pictureChange() {
	let index = document.frm.picture.selectedIndex;
	//alert(index);
	
	if(index !== 0){
		document.out.src = document.frm.picture.options[index].value;
	}
}

&amp;lt;/script&amp;gt;

&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Java Script/Java Script 수강일지</category>
      <author>jamk-diary</author>
      <guid isPermaLink="true">https://jamk-diary.tistory.com/82</guid>
      <comments>https://jamk-diary.tistory.com/82#entry82comment</comments>
      <pubDate>Thu, 2 Jul 2026 17:52:15 +0900</pubDate>
    </item>
    <item>
      <title>부트스트랩, w3</title>
      <link>https://jamk-diary.tistory.com/81</link>
      <description>&lt;div style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;a href=&quot;https://www.w3schools.com/bootstrap/bootstrap_ver.asp&quot;&gt;https://www.w3schools.com/bootstrap/bootstrap_ver.asp&lt;/a&gt;
&lt;figure id=&quot;og_1782902240565&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;W3Schools.com&quot; data-og-description=&quot;W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.&quot; data-og-host=&quot;www.w3schools.com&quot; data-og-source-url=&quot;https://www.w3schools.com/bootstrap/bootstrap_ver.asp&quot; data-og-url=&quot;https://www.w3schools.com/bootstrap/bootstrap_ver.asp&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/fjhQp/dJMb8QMm73v/g9kos7pKWzReKHoWKDo7kk/img.png?width=436&amp;amp;height=228&amp;amp;face=0_0_436_228,https://scrap.kakaocdn.net/dn/yElHN/dJMb9hDbZPb/NQ7SDdQi3klJ7ObuKZy2Sk/img.png?width=436&amp;amp;height=228&amp;amp;face=0_0_436_228&quot;&gt;&lt;a href=&quot;https://www.w3schools.com/bootstrap/bootstrap_ver.asp&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.w3schools.com/bootstrap/bootstrap_ver.asp&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/fjhQp/dJMb8QMm73v/g9kos7pKWzReKHoWKDo7kk/img.png?width=436&amp;amp;height=228&amp;amp;face=0_0_436_228,https://scrap.kakaocdn.net/dn/yElHN/dJMb9hDbZPb/NQ7SDdQi3klJ7ObuKZy2Sk/img.png?width=436&amp;amp;height=228&amp;amp;face=0_0_436_228');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;W3Schools.com&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.w3schools.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;br /&gt;
&lt;p style=&quot;color: #222222;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #222222;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://getbootstrap.com/&quot;&gt;https://getbootstrap.com/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1782902243471&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Bootstrap&quot; data-og-description=&quot;Powerful, extensible, and feature-packed frontend toolkit. Build and customize with Sass, utilize prebuilt grid system and components, and bring projects to life with powerful JavaScript plugins.&quot; data-og-host=&quot;getbootstrap.com&quot; data-og-source-url=&quot;https://getbootstrap.com/&quot; data-og-url=&quot;https://getbootstrap.com/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cYLh7l/dJMb9b32QRX/sQUCvruDfHkky5G8wfoDLK/img.png?width=2000&amp;amp;height=1000&amp;amp;face=0_0_2000_1000&quot;&gt;&lt;a href=&quot;https://getbootstrap.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://getbootstrap.com/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cYLh7l/dJMb9b32QRX/sQUCvruDfHkky5G8wfoDLK/img.png?width=2000&amp;amp;height=1000&amp;amp;face=0_0_2000_1000');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Bootstrap&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Powerful, extensible, and feature-packed frontend toolkit. Build and customize with Sass, utilize prebuilt grid system and components, and bring projects to life with powerful JavaScript plugins.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;getbootstrap.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #222222;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;div style=&quot;color: #333333; text-align: start;&quot;&gt;
&lt;div&gt;
&lt;div id=&quot;reaction-77&quot; data-tistory-react-app=&quot;Reaction&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>유용한 사이트</category>
      <author>jamk-diary</author>
      <guid isPermaLink="true">https://jamk-diary.tistory.com/81</guid>
      <comments>https://jamk-diary.tistory.com/81#entry81comment</comments>
      <pubDate>Wed, 1 Jul 2026 19:37:38 +0900</pubDate>
    </item>
    <item>
      <title>javascript 과제</title>
      <link>https://jamk-diary.tistory.com/79</link>
      <description>&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;
&lt;h3 data-path-to-node=&quot;3&quot; data-ke-size=&quot;size23&quot;&gt;  과제: &quot;나만의 미니 주소록&quot; 만들기&lt;/h3&gt;
&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;4&quot;&gt;목표:&lt;/b&gt; HTML 화면에 입력창을 만들고, 자바스크립트로 데이터를 관리하여 화면에 보여주는 프로그램을 작성해 보세요.&lt;/span&gt;&lt;br /&gt;
&lt;h4 data-path-to-node=&quot;5&quot; data-ke-size=&quot;size20&quot;&gt;[단계별 힌트]&lt;/h4&gt;
&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6&quot;&gt;1단계: HTML 구성하기&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;7&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;이름을 입력할 수 있는 &amp;lt;input&amp;gt; 태그와 '추가하기' &amp;lt;button&amp;gt; 태그를 만드세요.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;결과가 출력될 빈 &amp;lt;ul id=&quot;addressList&quot;&amp;gt; 태그를 하나 만들어 두세요.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;8&quot;&gt;2단계: 데이터 저장하기 (배열)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;9&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;전역 변수로 빈 배열 let myAddressBook = [];을 하나 선언하세요.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;버튼을 클릭했을 때 실행될 함수를 만들고, 그 안에서 input에 적힌 값을 가져와 배열에 추가해 보세요.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10&quot;&gt;3단계: 화면에 그리기 (DOM)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;11&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;배열에 데이터가 추가될 때마다, document.createElement(&quot;li&quot;)를 사용해서 새로운 목록 태그를 만드세요.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;만들어진 li 태그의 innerHTML에 배열의 값을 넣고, addressList의 자식 요소로 붙여보세요 (appendChild 사용).&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;12&quot;&gt;4단계: 객체로 업그레이드 (클래스/JSON)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;13&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;단순히 '이름'만 넣지 말고, name과 age를 묶어서 하나의 객체(또는 클래스)로 배열에 저장해 보세요.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;화면에 출력할 때도 &quot;이름: 00, 나이: 00&quot; 형태로 예쁘게 나오게 해보세요.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;pre id=&quot;code_1782811418369&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;title&amp;gt;Insert title here&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
	&amp;lt;input type=&quot;text&quot; id=&quot;name&quot; placeholder=&quot;이름 입력&quot; size=&quot;20&quot;&amp;gt;
	&amp;lt;input type=&quot;number&quot; id=&quot;age&quot; placeholder=&quot;나이 입력&quot; size=&quot;20&quot;&amp;gt;
	
	&amp;lt;button type=&quot;submit&quot; onclick=&quot;btclik()&quot;&amp;gt;제출&amp;lt;/button&amp;gt;

&amp;lt;!-- 결과 쌓기 --&amp;gt;
 	&amp;lt;ul id=&quot;listArea&quot;&amp;gt;&amp;lt;/ul&amp;gt;
 	
 &amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
 let address =[];
 
 function btclik() {
	 let name=document.getElementById(&quot;name&quot;).value;
	 let age=document.getElementById(&quot;age&quot;).value;
	console.log('name');
 	

	let human ={
			&quot;humanname&quot;:name,
			&quot;humanage&quot; :age		
	}
	
	address.push(human);
	
	let li = document.createElement(&quot;li&quot;);
	li.innerHTML = &quot;이름: &quot; + name + &quot;, 나이: &quot; + age;
	document.getElementById(&quot;listArea&quot;).appendChild(li);
 };
	
	
	
 
 function push() {
	
}
 &amp;lt;/script&amp;gt;

&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Java Script/Java Script 복습</category>
      <author>jamk-diary</author>
      <guid isPermaLink="true">https://jamk-diary.tistory.com/79</guid>
      <comments>https://jamk-diary.tistory.com/79#entry79comment</comments>
      <pubDate>Tue, 30 Jun 2026 18:27:03 +0900</pubDate>
    </item>
    <item>
      <title>[수강일지36] 자바 스크립트</title>
      <link>https://jamk-diary.tistory.com/78</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;Javascript 서버 설정&amp;nbsp;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dynB1n/dJMcaftAM4t/kubbDUkUS8RjYDhDuyCKv0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dynB1n/dJMcaftAM4t/kubbDUkUS8RjYDhDuyCKv0/img.png&quot; data-origin-width=&quot;537&quot; data-origin-height=&quot;564&quot; data-is-animation=&quot;false&quot; style=&quot;width: 48.2067%; margin-right: 10px;&quot; data-widthpercent=&quot;48.77&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dynB1n/dJMcaftAM4t/kubbDUkUS8RjYDhDuyCKv0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdynB1n%2FdJMcaftAM4t%2FkubbDUkUS8RjYDhDuyCKv0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;537&quot; height=&quot;564&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zrUmA/dJMcaalt0qA/IDgccYKvyviZ4GB8R0k5Tk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zrUmA/dJMcaalt0qA/IDgccYKvyviZ4GB8R0k5Tk/img.png&quot; data-origin-width=&quot;477&quot; data-origin-height=&quot;477&quot; data-is-animation=&quot;false&quot; style=&quot;width: 50.6305%;&quot; data-widthpercent=&quot;51.23&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zrUmA/dJMcaalt0qA/IDgccYKvyviZ4GB8R0k5Tk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzrUmA%2FdJMcaalt0qA%2FIDgccYKvyviZ4GB8R0k5Tk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;477&quot; height=&quot;477&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;Sample1 &amp;lt;internal , external&amp;gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1020&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b2MfBm/dJMcadvHbwP/ykTke3LpKweg13E3gpFzK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b2MfBm/dJMcadvHbwP/ykTke3LpKweg13E3gpFzK1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b2MfBm/dJMcadvHbwP/ykTke3LpKweg13E3gpFzK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb2MfBm%2FdJMcadvHbwP%2FykTke3LpKweg13E3gpFzK1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1020&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1020&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;index&lt;/blockquote&gt;
&lt;pre id=&quot;code_1782788110784&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;title&amp;gt;Insert title here&amp;lt;/title&amp;gt;

&amp;lt;!-- internal --&amp;gt;
&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
&amp;lt;/script&amp;gt;

&amp;lt;!-- external --&amp;gt;
&amp;lt;script type=&quot;text/javascript&quot; src=&quot;&quot;&amp;gt;&amp;lt;/script&amp;gt;

&amp;lt;/head&amp;gt;

&amp;lt;body&amp;gt;

&amp;lt;!-- 
		Java Script 
		Script(대본) 란 실행되는 명령어들의 모음 
		-&amp;gt; 다른 프로그램이나 환경 위에서 실행되는 코드
		
		운영체제(Windows, 리눅스, iOS) 위에서 실행되는 shell script
		웹 브라우저에서 실행되는 Java script
		응용 프로그램에서 실행되는 macro script  
		
		Client 언어. front-end
		목적: html 상에 tag 에 접근하기 위한 스크립트
			 보조 프로그래밍적인 요소이다
			 화면을 제어하기 위한 스크립트이다
			 compile을 하지 않는다 -&amp;gt; 가볍다 -&amp;gt; 속도가 빠르다	
			 
		ex) 회원가입 -&amp;gt; 	id가 빈칸?
						id의 문자수 제한	
						link를 제어할 수 있다
						
		JavaScript 간략화 -&amp;gt; Jquery -&amp;gt; angler -&amp;gt; node.js -&amp;gt; react -&amp;gt; vue
		
		Animation 처리, Timer, Camera 연결		
		STT(Speech To Text), TTS(Text To Speech)
		
		tag(input, button..) 접근 -&amp;gt; property(속성) == attribute
		id		-&amp;gt; javascript -&amp;gt; 1개 유효
		class	-&amp;gt; 다수
		name	-&amp;gt; 다수 -&amp;gt; link로 이동 시에 값을 전달
		
		각 태그에 접근하기 위한 객체
		DOM(Document Object Model)
		해당 문서(html document)에 접근해서 읽고 조작할 수 있는 API(Application Programming Interface) 
		getElementById
		getElementsByClass
		getElementsByName
		getElementsByTagName
				
		internal : 내부구현 &amp;lt;head&amp;gt; &amp;lt;body&amp;gt;
		
		external : 외부파일		
 --&amp;gt;

&amp;lt;!-- internal --&amp;gt;
&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
// java script 영역(area)

/*
	범위 주석문
*/

// 콘솔 출력
console.log('Java Script 실행');

// 경계창
//alert(&quot;경계창 실행&quot;);
//window.alert('')

// 입력창
//var v = prompt(&quot;문자열 입력&quot;);
//console.log(v);

&amp;lt;/script&amp;gt;


&amp;lt;p id=&quot;demo&quot;&amp;gt;안녕하세요 &amp;lt;b&amp;gt;반갑습니다&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt;

&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
// DOM 을 이용해서 태그 접근

var v = document.getElementById(&quot;demo&quot;).innerHTML;  // getter
console.log(v);

document.getElementById(&quot;demo&quot;).innerHTML = &quot;Hello JS&quot;; // setter

&amp;lt;/script&amp;gt;



&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 1.16279%;&quot; colspan=&quot;2&quot;&gt;
&lt;h3 data-path-to-node=&quot;3&quot; data-ke-size=&quot;size23&quot;&gt;1. 자바스크립트(JavaScript)란 무엇일까?&lt;/h3&gt;
&lt;span&gt;우리가 웹 페이지를 만들 때, &lt;b data-index-in-node=&quot;17&quot; data-path-to-node=&quot;4&quot;&gt;HTML&lt;/b&gt;이 건물의 '뼈대'라면 &lt;b data-index-in-node=&quot;34&quot; data-path-to-node=&quot;4&quot;&gt;자바스크립트&lt;/b&gt;는 건물에 생명을 불어넣는 '전기나 수도 시스템' 같은 존재예요.&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;5&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5,0,0&quot;&gt;웹 브라우저에서 실행:&lt;/b&gt; 우리가 흔히 쓰는 크롬(Chrome) 같은 브라우저 안에서 움직여요.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5,1,0&quot;&gt;화면 제어:&lt;/b&gt; 사용자가 버튼을 눌렀을 때 반응하게 하거나, 글자를 바꾸는 등 화면을 살아 움직이게 만들죠.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5,2,0&quot;&gt;가볍고 빠름:&lt;/b&gt; 코드를 미리 복잡하게 변환(컴파일)할 필요가 없어서 아주 빠르고 효율적이에요.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;
&lt;h3 data-path-to-node=&quot;6&quot; data-ke-size=&quot;size23&quot;&gt;2. HTML과 대화하는 방법: DOM&lt;/h3&gt;
&lt;span&gt;자바스크립트는 브라우저에 있는 HTML 태그들을 직접 다룰 수 있어요. 이걸 DOM(Document Object Model)이라고 부릅니다.&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;8&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;8,0,0&quot;&gt;Getter(가져오기):&lt;/b&gt; document.getElementById(&quot;demo&quot;).innerHTML처럼 사용하면, &quot;demo라는 아이디를 가진 태그의 내용을 가져와!&quot;라는 뜻이에요.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;8,1,0&quot;&gt;Setter(설정하기):&lt;/b&gt; 가져온 자리에 새로운 값을 넣으면 화면에 보이는 내용이 즉시 바뀝니다. 마치 마법 지팡이로 화면의 글자를 슥삭 바꾸는 것과 같죠!&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;
&lt;h3 data-path-to-node=&quot;9&quot; data-ke-size=&quot;size23&quot;&gt;3. 데이터를 담는 그릇: 변수(Variable)&lt;/h3&gt;
&lt;span&gt;프로그래밍에서 가장 중요한 것 중 하나가 바로 '데이터를 저장하는 것'이에요. 이를 &lt;b data-index-in-node=&quot;47&quot; data-path-to-node=&quot;10&quot;&gt;변수&lt;/b&gt;라고 합니다.&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;11&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;11,0,0&quot;&gt;var / let:&lt;/b&gt; 데이터를 담는 상자예요. 예를 들어 let age = 22;라고 하면 &quot;age라는 상자에 22라는 숫자를 담을게!&quot;라는 뜻입니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;11,1,0&quot;&gt;const:&lt;/b&gt; 이건 '상수'라고 해요. 한 번 값을 넣으면 절대 바꿀 수 없는 강력한 상자죠. (예: const address = &quot;제주시&quot;;)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;11,2,0&quot;&gt;배열(Array):&lt;/b&gt; 여러 개의 데이터를 한 줄로 세워두고 싶을 때 사용해요. [ ] 대괄호를 이용해 cars = [&quot;benz&quot;, &quot;bmw&quot;, &quot;audi&quot;]처럼 표현합니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;index1 ( 자바스크립트가 데이터를 다루는 방식과 객체 지향적인 요소들을 어떻게 사용하는지 보여주는 예제)&lt;/blockquote&gt;
&lt;pre id=&quot;code_1782788137407&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;title&amp;gt;Insert title here&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;

&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
// variable(변수)
/*
	integer, String, Character, MyClass, HumanDto
	
	MyClass cls = new MyClass();
	String str = new String(&quot;Hello&quot;);
	
	Object cls = new MyClass();
	Object str = new String(&quot;Hello&quot;);	
	
	Object == var -&amp;gt; let
*/

	var number = 123;	// int
	var pi = 3.141592;	// double
	var name = &quot;홍길동&quot;;	// string
	var answer = true;	// boolean
	
	var num = &quot;성춘향&quot;;
	console.log(num);
	
	num = 1024;
	console.log(num);	
	
	myname = &quot;일지매&quot;;
	console.log(myname);
	
	var myname = &quot;&quot;;

	let youname;	
	youname = &quot;성춘향&quot;;
	
	var myname = &quot;홍두께&quot;;
//	let youname = &quot;&quot;;

	// Array : 배열
	// Array == Object
	
//	String cars = new String[3];	
	let cars = new Array(3);
	cars[0] = &quot;benz&quot;;
	cars[1] = &quot;bmw&quot;;
	cars[2] = &quot;audi&quot;;	
	console.log(cars);
	
//	String mycars[] = { &quot;benz&quot;, &quot;bmw&quot;, &quot;audi&quot; };
	let mycars = [&quot;benz&quot;, &quot;bmw&quot;, &quot;audi&quot;];	
	console.log(mycars);
	
	for (i = 0; i &amp;lt; mycars.length; i++) {
		console.log(mycars[i]);
	}
	
	for (let i in mycars) {
		console.log(mycars[i]);
	}
	
	for (var i = 0; i &amp;lt; cars.length; i++) {
		if(cars[i] === &quot;bmw&quot;){	// == :reference  === :value
			console.log(i + &quot;:&quot; + cars[i]);
		}
	}
	
	let cars2 = [	[&quot;saab&quot;, 1],
					[&quot;bmw&quot;, 2],
					[&quot;benz&quot;, 3]	];
	console.log(cars2[2][1]);
	
	/*
	Java
	class Human{
		String name;
		int age;
		
		public Human(String name, int age){
			this.name= name;
			this.age = age;
		}
		public print(){
			System.out.println(name + &quot; &quot; + age);			
		}		
	} 	
	*/
	
	// Java Script
	class Human{
		constructor(name, age){
			this.name = name;
			this.age= age;
		}
		print(){
			this.address = &quot;부산시&quot;;
			console.log(this.name + &quot; &quot; + this.age);
		}		
	}
	
	let human = new Human(&quot;홍길동&quot;, 22);
	console.log(human.name);
	human.print();
	console.log(human.address);
	
	// eg6
	let obj = {
			&quot;firstname&quot;:&quot;춘향&quot;,		// key:value  -&amp;gt; hashmap =&amp;gt; JSON
			&quot;lastname&quot;:&quot;성&quot;,
			&quot;age&quot;:15,
			methodName:function(){
				console.log(this.lastname + this.firstname + &quot; &quot; + this.age);
			}			
	};
	
	console.log(obj.firstname);
	console.log(obj.lastname);
	obj.methodName();
	
	//let address;    // &amp;lt;- 변수
	
	const address = &quot;제주시&quot;;		// &amp;lt;- 상수 == final String ADDRESS = &quot;제주시&quot;;
	// address = &quot;울산시&quot;;		// &amp;lt;- error
	
	

&amp;lt;/script&amp;gt;

&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;
&lt;h3 data-path-to-node=&quot;3&quot; data-ke-size=&quot;size23&quot;&gt;var vs let&lt;/h3&gt;
&lt;span&gt;자바스크립트에서 변수는 자바(Java)처럼 타입을 딱 정하지 않아도 돼요.&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;5&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5,0,0&quot;&gt;유연함:&lt;/b&gt; var num = &quot;성춘향&quot;(문자열)이었다가, 바로 다음 줄에 num = 1024;(숫자)라고 넣어도 전혀 문제없어요.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5,1,0&quot;&gt;var vs let:&lt;/b&gt; var는 예전 방식이고, 요즘은 더 안전한 let을 주로 써요. let은 똑같은 이름의 변수를 다시 만드는 실수를 방지해주거든요.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;
&lt;h3 data-path-to-node=&quot;6&quot; data-ke-size=&quot;size23&quot;&gt;2. 배열(Array): 데이터를 한 줄로 세우기&lt;/h3&gt;
&lt;span&gt;배열은 연관된 데이터들을 한 곳에 모아두는 '기차 칸' 같은 거예요.&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;8&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;8,0,0&quot;&gt;사용법:&lt;/b&gt; cars = [&quot;benz&quot;, &quot;bmw&quot;, &quot;audi&quot;]처럼 대괄호 [] 안에 쉼표로 구분해서 넣으면 끝!&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;8,1,0&quot;&gt;반복문:&lt;/b&gt; for문을 사용하면 기차 칸에 들어있는 데이터를 하나씩 꺼내서 출력할 수 있어요. for (let i in mycars) 같은 방식은 &quot;배열에 있는 모든 걸 하나씩 꺼내줘&quot;라는 아주 편리한 문법입니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;
&lt;h3 data-path-to-node=&quot;9&quot; data-ke-size=&quot;size23&quot;&gt;3. 클래스(Class): 설계도면 만들기&lt;/h3&gt;
&lt;span&gt;Human 클래스를 만든 부분은 &quot;사람이라는 객체는 이런 정보(이름, 나이)를 가져야 해!&quot;라고 &lt;b data-index-in-node=&quot;54&quot; data-path-to-node=&quot;10&quot;&gt;설계도&lt;/b&gt;를 그리는 작업이에요.&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;11&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;11,0,0&quot;&gt;constructor (생성자):&lt;/b&gt; 사람을 새로 만들 때(예: new Human(&quot;홍길동&quot;, 22)) 기본 정보를 쏙 집어넣는 초기화 작업을 담당해요.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;11,1,0&quot;&gt;메서드(Method):&lt;/b&gt; print()처럼 사람이 할 수 있는 행동을 미리 정의해두고, 필요할 때마다 human.print()라고 불러서 실행하는 거죠.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;
&lt;h3 data-path-to-node=&quot;12&quot; data-ke-size=&quot;size23&quot;&gt;4. JSON: 데이터를 깔끔하게 묶기&lt;/h3&gt;
&lt;span&gt;let obj = {&quot;firstname&quot;: &quot;춘향&quot;, &quot;lastname&quot;: &quot;성&quot;, &quot;age&quot;: 15} 부분은 JSON(JavaScript Object Notation)이라고 해요.&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;14&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;데이터를 키(Key):값(Value) 쌍으로 저장해서, 나중에 obj.firstname처럼 아주 직관적으로 데이터를 꺼내 쓸 수 있게 해줍니다. 요즘 웹 통신에서 가장 많이 쓰는 방식이에요!&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;
&lt;h3 data-path-to-node=&quot;15&quot; data-ke-size=&quot;size23&quot;&gt;5. 상수(const): 변하지 않는 약속&lt;/h3&gt;
&lt;span&gt;마지막에 const address = &quot;제주시&quot;;라고 했죠?&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;17&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;const는 한 번 정하면 절대로 바꿀 수 없는 &lt;b data-index-in-node=&quot;27&quot; data-path-to-node=&quot;17,0,0&quot;&gt;상수&lt;/b&gt;예요. 만약 누군가 address = &quot;울산시&quot;라고 코드를 바꾸려 하면, 브라우저가 &quot;안 돼! 이건 바꿀 수 없는 값이야!&quot;라고 에러를 띄워줍니다. 중요한 정보를 보호할 때 꼭 필요하겠죠?&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;index2&lt;/blockquote&gt;
&lt;pre id=&quot;code_1782804997536&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;title&amp;gt;Insert title here&amp;lt;/title&amp;gt;

&amp;lt;style type=&quot;text/css&quot;&amp;gt;
#demo{
	background-color: red;
}
&amp;lt;/style&amp;gt;

&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;

&amp;lt;!-- id, class, name --&amp;gt;
&amp;lt;!-- 
		getElementById
		getElementsByTagName
		getElementsByClass
		getElementsByName
 --&amp;gt;

&amp;lt;!-- getElementsByTagName --&amp;gt; 

&amp;lt;p&amp;gt;안녕하세요&amp;lt;/p&amp;gt;

&amp;lt;p&amp;gt;반갑습니다&amp;lt;/p&amp;gt;

&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;건강하세요&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt;

&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
let str = document.getElementsByTagName(&quot;p&quot;)[0].innerHTML;
console.log(str);

document.getElementsByTagName(&quot;p&quot;)[0].innerHTML = &quot;나는 문제 없어&quot;;

let pTagArr = document.getElementsByTagName(&quot;p&quot;);
console.log(pTagArr[2].innerHTML);
console.log(pTagArr[2].innerText);

for (var i = 0; i &amp;lt; pTagArr.length; i++) {
	console.log(pTagArr[i].innerText);
}
&amp;lt;/script&amp;gt;

&amp;lt;!-- getElementById --&amp;gt;
&amp;lt;!-- 일반 == 출력태그 == label --&amp;gt;
&amp;lt;p id=&quot;demo&quot;&amp;gt;나는 반드시 성공합니다&amp;lt;/p&amp;gt;

&amp;lt;h3 id=&quot;demo&quot;&amp;gt;나의 장래는 밝습니다&amp;lt;/h3&amp;gt;

&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
let demo = document.getElementById(&quot;demo&quot;).innerHTML;
console.log(demo);

document.getElementById(&quot;demo&quot;).innerHTML = &quot;Never Change My Mind&quot;;
&amp;lt;/script&amp;gt; 

&amp;lt;!-- 입(출)력태그 --&amp;gt;
&amp;lt;input type=&quot;text&quot; id=&quot;text&quot; size=&quot;20&quot; placeholder=&quot;입력&quot; value=&quot;초기값&quot;/&amp;gt;&amp;lt;br/&amp;gt;

&amp;lt;select id=&quot;fruit&quot;&amp;gt;
	&amp;lt;option value=&quot;apple&quot;&amp;gt;사과&amp;lt;/option&amp;gt;
	&amp;lt;option value=&quot;pear&quot; selected=&quot;selected&quot;&amp;gt;배&amp;lt;/option&amp;gt;
	&amp;lt;option value=&quot;banana&quot;&amp;gt;바나나&amp;lt;/option&amp;gt;
&amp;lt;/select&amp;gt;

&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;

&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;

let text = document.getElementById(&quot;text&quot;).value;
console.log(text);

let fruit = document.getElementById(&quot;fruit&quot;).value;
console.log(fruit);

&amp;lt;/script&amp;gt;

&amp;lt;!-- 
	getElementsByClassName
 --&amp;gt;
&amp;lt;input type=&quot;text&quot; class=&quot;cls&quot; placeholder=&quot;이름&quot; value=&quot;홍길동&quot;/&amp;gt;&amp;lt;br/&amp;gt;

&amp;lt;input type=&quot;text&quot; class=&quot;cls&quot; placeholder=&quot;주소&quot; value=&quot;인천시&quot;/&amp;gt;&amp;lt;br/&amp;gt;

&amp;lt;input type=&quot;email&quot; class=&quot;cls&quot; placeholder=&quot;이메일&quot; value=&quot;hgd@nate.com&quot;/&amp;gt;&amp;lt;br/&amp;gt;

&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
let address = document.getElementsByClassName(&quot;cls&quot;)[1].value;
console.log(address);

let human = document.getElementsByClassName(&quot;cls&quot;);
console.log(human.length);

for (var i in human) {
	console.log(human[i].value);
}
&amp;lt;/script&amp;gt;

&amp;lt;!-- name -&amp;gt; checkbox, radio --&amp;gt;
&amp;lt;input type=&quot;checkbox&quot; name=&quot;hobby&quot; checked=&quot;checked&quot;/&amp;gt;picture
&amp;lt;input type=&quot;checkbox&quot; name=&quot;hobby&quot; checked=&quot;checked&quot;/&amp;gt;movie
&amp;lt;input type=&quot;checkbox&quot; name=&quot;hobby&quot; /&amp;gt;game

&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
let hobby = document.getElementsByName(&quot;hobby&quot;);

for (var i = 0; i &amp;lt; hobby.length; i++) {
	console.log(i + &quot; &quot; + hobby[i].checked);
}
&amp;lt;/script&amp;gt;

&amp;lt;br/&amp;gt;

좋아하는 과목은?&amp;lt;br/&amp;gt;
&amp;lt;input type=&quot;radio&quot; name=&quot;lang&quot; value=&quot;국어&quot;&amp;gt;국어&amp;lt;br/&amp;gt;
&amp;lt;input type=&quot;radio&quot; name=&quot;lang&quot; value=&quot;영어&quot; checked=&quot;checked&quot;&amp;gt;영어&amp;lt;br/&amp;gt;
&amp;lt;input type=&quot;radio&quot; name=&quot;lang&quot; value=&quot;수학&quot;&amp;gt;수학&amp;lt;br/&amp;gt;

&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;

let value = document.querySelector('input[name=&quot;lang&quot;]:checked').value;
console.log(value);

&amp;lt;/script&amp;gt;










 






&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;
&lt;h3 data-path-to-node=&quot;3&quot; data-ke-size=&quot;size23&quot;&gt;1. 태그를 찾는 4가지 방법&lt;/h3&gt;
&lt;span&gt;자바스크립트가 HTML의 어떤 부분을 고칠지 정하려면 먼저 '찾아야'겠죠?&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;5&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5,0,0&quot;&gt;getElementById&lt;/b&gt;: id는 한 문서에 하나만 존재하므로, 딱 하나를 정확히 콕 집어 가져올 때 써요.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5,1,0&quot;&gt;getElementsByTagName&lt;/b&gt;: &amp;lt;p&amp;gt;나 &amp;lt;div&amp;gt; 같은 태그 이름을 기준으로 다 가져와요. 여러 개가 나오니까 [0]처럼 순번(인덱스)을 붙여서 구체적으로 지정해야 합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5,2,0&quot;&gt;getElementsByClassName&lt;/b&gt;: 같은 클래스 이름을 가진 애들을 묶음으로 가져와요. 여러 개가 있을 때 자주 쓰이죠.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5,3,0&quot;&gt;getElementsByName&lt;/b&gt;: 주로 입력 폼(checkbox, radio)에서 같은 이름을 가진 애들을 관리할 때 사용합니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;
&lt;h3 data-path-to-node=&quot;6&quot; data-ke-size=&quot;size23&quot;&gt;2. 읽고 쓰기 (innerHTML vs value)&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;7&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;7,0,0&quot;&gt;innerHTML&lt;/b&gt;: &amp;lt;p&amp;gt;내용&amp;lt;/p&amp;gt;처럼 태그와 태그 사이에 있는 글자를 가져오거나 수정할 때 씁니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;7,1,0&quot;&gt;value&lt;/b&gt;: &amp;lt;input type=&quot;text&quot;&amp;gt;처럼 사용자가 입력창에 적은 값을 가져오거나 수정할 때 씁니다. (이거 정말 자주 쓰이니 꼭 기억하세요!)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;
&lt;h3 data-path-to-node=&quot;8&quot; data-ke-size=&quot;size23&quot;&gt;3. 반복문으로 묶음 관리&lt;/h3&gt;
&lt;span&gt;getElementsByTagName이나 ClassName으로 가져오면 여러 개가 한꺼번에 담긴 &lt;b data-index-in-node=&quot;54&quot; data-path-to-node=&quot;9&quot;&gt;'배열'&lt;/b&gt; 형태가 됩니다. 이때 for문을 사용하면 모든 태그를 하나씩 꺼내서 내용을 확인하거나 일괄적으로 변경할 수 있어요.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;
&lt;h3 data-path-to-node=&quot;10&quot; data-ke-size=&quot;size23&quot;&gt;4. querySelector (고급 팁)&lt;/h3&gt;
&lt;span&gt;코드 마지막에 보면 document.querySelector('input[name=&quot;lang&quot;]:checked')라는 게 있죠? 이건 CSS 선택자처럼 문법을 써서 &quot;특정 조건을 만족하는 딱 하나&quot;를 아주 똑똑하게 찾아내는 방법이에요. 요즘 실무에서는 이 방법을 가장 많이 씁니다!&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;index3&lt;/blockquote&gt;
&lt;pre id=&quot;code_1782805019334&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;title&amp;gt;Insert title here&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;

&amp;lt;!-- event --&amp;gt;

&amp;lt;p onclick=&quot;alert('p click')&quot;&amp;gt;여기가 p 태그입니다&amp;lt;/p&amp;gt;

&amp;lt;!-- 버튼을 클릭했을 때 입력된 값을 가져 오고 싶은 경우 --&amp;gt;
&amp;lt;input type=&quot;text&quot; id=&quot;memo&quot; placeholder=&quot;입력&quot;/&amp;gt;

&amp;lt;button type=&quot;button&quot; onclick=&quot;buttonClick()&quot;&amp;gt;버튼&amp;lt;/button&amp;gt;

&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
function buttonClick() {
	// alert('buttonClick() 호출');
	
	let memo = document.getElementById(&quot;memo&quot;).value;
	
	document.getElementsByTagName(&quot;p&quot;)[0].innerHTML = memo;
}
&amp;lt;/script&amp;gt;



&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;
&lt;h3 data-path-to-node=&quot;3&quot; data-ke-size=&quot;size23&quot;&gt;1. 이벤트(Event): &quot;무언가 일어났을 때!&quot;&lt;/h3&gt;
&lt;span&gt;웹 페이지에서 사용자가 하는 모든 행동(클릭, 마우스 올리기 등)을 &lt;b data-index-in-node=&quot;38&quot; data-path-to-node=&quot;4&quot;&gt;이벤트&lt;/b&gt;라고 불러요.&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;5&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5,0,0&quot;&gt;onclick&lt;/b&gt;: HTML 태그에 직접 &quot;이걸 클릭하면~&quot;이라는 명령을 심는 방식입니다. 예제에 있는 &amp;lt;p onclick=&quot;alert('p click')&quot;&amp;gt;은 사용자가 그 문구를 클릭하는 순간 브라우저가 'p click'이라는 경고창을 띄우게 하죠.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 1.16279%;&quot; colspan=&quot;2&quot;&gt;
&lt;h3 data-path-to-node=&quot;6&quot; data-ke-size=&quot;size23&quot;&gt;2. 함수(Function): &quot;명령어 묶음&quot;&lt;/h3&gt;
&lt;span&gt;코드가 길어지면 하나하나 실행하기 번거롭겠죠? 그래서 자주 쓰는 코드들을 상자에 담아두고 이름을 붙여놓은 것이 바로 &lt;b data-index-in-node=&quot;65&quot; data-path-to-node=&quot;7&quot;&gt;함수&lt;/b&gt;입니다.&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;8&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;8,0,0&quot;&gt;function buttonClick() { ... }&lt;/b&gt;: 여기서는 buttonClick이라는 이름의 상자를 만들고, 그 안에 &quot;입력창의 값을 가져와서 글자를 바꿔라&quot;는 명령어를 담아둔 거예요.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;8,1,0&quot;&gt;효과:&lt;/b&gt; 버튼을 누를 때마다 일일이 복잡한 코드를 적을 필요 없이, &quot;클릭되면 buttonClick() 함수를 실행해!&quot;라고 한마디만 하면 됩니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;
&lt;h3 data-path-to-node=&quot;9&quot; data-ke-size=&quot;size23&quot;&gt;3. 실시간 화면 제어&lt;/h3&gt;
&lt;span&gt;이 예제의 핵심은 &lt;b data-index-in-node=&quot;10&quot; data-path-to-node=&quot;10&quot;&gt;사용자의 입력을 화면에 반영하는 과정&lt;/b&gt;이에요.&lt;/span&gt;&lt;br /&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-path-to-node=&quot;11&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;11,0,0&quot;&gt;가져오기 (Getter):&lt;/b&gt; let memo = document.getElementById(&quot;memo&quot;).value;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;11,0,1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;id가 &quot;memo&quot;인 입력창을 찾아서, 그 안에 적힌 값(value)을 memo라는 변수에 저장합니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;11,1,0&quot;&gt;보내기/수정 (Setter):&lt;/b&gt; document.getElementsByTagName(&quot;p&quot;)[0].innerHTML = memo;&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;11,1,1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;화면에 있는 첫 번째 &amp;lt;p&amp;gt; 태그([0])를 찾아서, 그 안의 내용을 방금 저장한 memo 값으로 싹 바꿔버리는 거죠!&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;WORK 1&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1020&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kYPkm/dJMcabdBYFB/EmF8KnNzIF7IwUNDnrhmP1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kYPkm/dJMcabdBYFB/EmF8KnNzIF7IwUNDnrhmP1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kYPkm/dJMcabdBYFB/EmF8KnNzIF7IwUNDnrhmP1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkYPkm%2FdJMcabdBYFB%2FEmF8KnNzIF7IwUNDnrhmP1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1020&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1020&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1782806231854&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;title&amp;gt;Insert title here&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;

&amp;lt;div align=&quot;center&quot;&amp;gt;
&amp;lt;!-- &amp;lt;img alt=&quot;taiti&quot; src=&quot;./images/tahiti01.jpg&quot; onclick=&quot;alert('타히티 사진입니다')&quot;/&amp;gt; --&amp;gt;
&amp;lt;img alt=&quot;taiti&quot; src=&quot;./images/tahiti01.jpg&quot; onclick=&quot;btnClick()&quot;/&amp;gt;
&amp;lt;/div&amp;gt;

&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
function btnClick() {
	alert('tahiti 사진입니다');	
}

&amp;lt;/script&amp;gt;


&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;WORK2&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1020&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/t2rHK/dJMcaay6MMN/tGTKIGZ9XO1DvOhiFNKJU1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/t2rHK/dJMcaay6MMN/tGTKIGZ9XO1DvOhiFNKJU1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/t2rHK/dJMcaay6MMN/tGTKIGZ9XO1DvOhiFNKJU1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Ft2rHK%2FdJMcaay6MMN%2FtGTKIGZ9XO1DvOhiFNKJU1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1020&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1020&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1782806368406&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;title&amp;gt;Insert title here&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;

&amp;lt;h3&amp;gt;한국에서 제일 높은 산은?&amp;lt;/h3&amp;gt;
답:&amp;lt;input type=&quot;text&quot; id=&quot;answer&quot; placeholder=&quot;정답입력&quot; size=&quot;20&quot;/&amp;gt;

&amp;lt;button type=&quot;button&quot; onclick=&quot;btnClick()&quot;&amp;gt;답하다&amp;lt;/button&amp;gt;
&amp;lt;input type=&quot;button&quot; onclick=&quot;btnClick()&quot; value=&quot;답하다&quot; /&amp;gt;
    
&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
function btnClick() {
	let answer = document.getElementById(&quot;answer&quot;).value;
	if(answer === &quot;&quot;){
		alert(&quot;정답을 기입해 주십시오&quot;);
	}else if(answer === '한라산'){
		alert('정답입니다');
	}else{
		alert('정답이 아닙니다');
	}
}

&amp;lt;/script&amp;gt;

&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;WORK3&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1020&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bEb7N0/dJMcaaFUc7Y/VBYHh3tK9a3choKkajkH30/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bEb7N0/dJMcaaFUc7Y/VBYHh3tK9a3choKkajkH30/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bEb7N0/dJMcaaFUc7Y/VBYHh3tK9a3choKkajkH30/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbEb7N0%2FdJMcaaFUc7Y%2FVBYHh3tK9a3choKkajkH30%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1020&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1020&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1782806380765&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;title&amp;gt;Insert title here&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;

&amp;lt;h3&amp;gt;변수의 연산&amp;lt;/h3&amp;gt;
a, b에 대해서 변수 a와 b의 계산 결과를 표시합니다.
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;
&amp;lt;button type=&quot;button&quot; onclick=&quot;plus()&quot;&amp;gt;덧셈&amp;lt;/button&amp;gt;
&amp;lt;button type=&quot;button&quot; onclick=&quot;minus()&quot;&amp;gt;뺄셈&amp;lt;/button&amp;gt;
&amp;lt;button type=&quot;button&quot; onclick=&quot;multi()&quot;&amp;gt;곱셈&amp;lt;/button&amp;gt;
&amp;lt;button type=&quot;button&quot; onclick=&quot;div()&quot;&amp;gt;나눗셈&amp;lt;/button&amp;gt;
&amp;lt;button type=&quot;button&quot; onclick=&quot;rest()&quot;&amp;gt;나머지&amp;lt;/button&amp;gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;

&amp;lt;input type=&quot;text&quot; id=&quot;a&quot; size=&quot;10&quot; placeholder=&quot;a&quot;/&amp;gt;
&amp;lt;input type=&quot;text&quot; id=&quot;oper&quot; size=&quot;5&quot; disabled=&quot;disabled&quot;/&amp;gt;
&amp;lt;input type=&quot;text&quot; id=&quot;b&quot; size=&quot;10&quot; placeholder=&quot;b&quot;/&amp;gt;
=
&amp;lt;input type=&quot;text&quot; id=&quot;result&quot; size=&quot;10&quot; disabled=&quot;disabled&quot;/&amp;gt;

&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
let a, b;

function getValue() {	
	let val = document.getElementById(&quot;a&quot;).value.trim(); 	
	// 빈칸인지 조사
	if(val === ''){
		alert('값을 입력해 주십시오');
		return;
	}	
	// 숫자인지 조사
	if(isNaN(val) === true){	// Not A Number
		alert('숫자를 입력해 주십시오');
		return;
	}
	
//	a = parseInt(document.getElementById(&quot;a&quot;).value);
//	b = parseInt(document.getElementById(&quot;b&quot;).value);
	
	// 소수점 수까지 가능
	a = Number(document.getElementById(&quot;a&quot;).value);
	b = Number(document.getElementById(&quot;b&quot;).value);	
}

function plus() {
	getValue();	
	document.getElementById(&quot;oper&quot;).value = &quot;+&quot;;
	document.getElementById(&quot;result&quot;).value = a + b;
}

function multi() {
	getValue();	
	document.getElementById(&quot;oper&quot;).value = &quot;x&quot;;
	document.getElementById(&quot;result&quot;).value = a * b;
}

function div() {
	getValue();	
	
	if(b === 0){
		alert('0으로 나눌 수 없습니다');
		return;
	}
	document.getElementById(&quot;oper&quot;).value = &quot;/&quot;;
	document.getElementById(&quot;result&quot;).value = a / b;
}

&amp;lt;/script&amp;gt;

&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;WORK4&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1020&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FibOD/dJMcaiqkcJf/arTJchfr9OeKvVWGaKBkW0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FibOD/dJMcaiqkcJf/arTJchfr9OeKvVWGaKBkW0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FibOD/dJMcaiqkcJf/arTJchfr9OeKvVWGaKBkW0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFibOD%2FdJMcaiqkcJf%2FarTJchfr9OeKvVWGaKBkW0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1020&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1020&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1782806395933&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;title&amp;gt;Insert title here&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;

&amp;lt;h1&amp;gt;체육관 이용 요금&amp;lt;/h1&amp;gt;
기본 사용료(4시간) 40,800원
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;

&amp;lt;input type=&quot;checkbox&quot; id=&quot;ch1&quot; onclick=&quot;sum(0)&quot; value=&quot;20000&quot;&amp;gt;야간조명(20,000원)
&amp;lt;br/&amp;gt;
&amp;lt;input type=&quot;checkbox&quot; id=&quot;ch2&quot; onclick=&quot;sum(1)&quot; value=&quot;4000&quot;&amp;gt;배구네트 x 2장(4,000원)
&amp;lt;br/&amp;gt;
&amp;lt;input type=&quot;checkbox&quot; id=&quot;ch3&quot; onclick=&quot;sum(2)&quot; value=&quot;5000&quot;&amp;gt;배구공 x 10(5,000원)
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;
합계금액:&amp;lt;input type=&quot;text&quot; id=&quot;total&quot; value=&quot;40800&quot;&amp;gt;원정

&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
let total = parseInt(document.getElementById(&quot;total&quot;).value);

function sum( n ) {
	
	let ch;
	if(n == 0) 		ch = 'ch1';
	else if(n == 1) ch = 'ch2';
	else if(n == 2) ch = 'ch3';
	
	let value = parseInt( document.getElementById(ch).value );
	// alert(value);
	
	// checked
	let state = document.getElementById(ch).checked;
	//alert(state);
	
	if(state == true){
		total = total + value;
	} else{
		total = total - value;
	}
	
	document.getElementById(&quot;total&quot;).value = total;
}


&amp;lt;/script&amp;gt;


&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Java Script/Java Script 수강일지</category>
      <author>jamk-diary</author>
      <guid isPermaLink="true">https://jamk-diary.tistory.com/78</guid>
      <comments>https://jamk-diary.tistory.com/78#entry78comment</comments>
      <pubDate>Tue, 30 Jun 2026 18:23:26 +0900</pubDate>
    </item>
    <item>
      <title>[수강일지33] css</title>
      <link>https://jamk-diary.tistory.com/74</link>
      <description>&lt;blockquote data-ke-style=&quot;style3&quot;&gt;index&lt;/blockquote&gt;
&lt;pre id=&quot;code_1782351127895&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;title&amp;gt;Insert title here&amp;lt;/title&amp;gt;


&amp;lt;h2&amp;gt;in-ternal 방식 &amp;lt;br/&amp;gt;
 :head 안에 적는 방식 st 만 치고 컨+스 하면 자동 완성 &amp;lt;/h2&amp;gt;
&amp;lt;style type=&quot;text/css&quot;&amp;gt;
p{
	background-color: red;

}



&amp;lt;/style&amp;gt;

&amp;lt;!-- external : css 파일 만든 다음에 입력함 : 외부파일에서 스타일을 불러오기  --&amp;gt;
&amp;lt;link rel=&quot;stylesheet&quot; href=&quot;style.css&quot;/&amp;gt;


&amp;lt;/head&amp;gt;


&amp;lt;body&amp;gt;
&amp;lt;pre&amp;gt;
	CSS(cascading Style sheet )
	:tag 에 디자인을 입히는 것 = 디자인

	문자의 컬러 , 종류, 배경
	배경화면을 설정 (layout:화면구성) -&amp;gt; 시멘틱 tag
	이미지 load, 테두리(border) 설정
	
	attribute(속성= 주제) -&amp;gt; property(상세설정)
	       style 		   background-color
	       
	      방식 
	      inline :  tag 안에 기입 -&amp;gt;  &amp;lt;p style=&quot;background-color: white&quot;&amp;gt;
	      internal: head 안에 기입 
	      external: 외부 파일로 저장하고 불러오기 
	    
&amp;lt;/pre&amp;gt;	      


&amp;lt;h3&amp;gt;in-line 방식&amp;lt;/h3&amp;gt;
&amp;lt;h3 style=&quot;background-color: blue&quot;&amp;gt;welcome to my world&amp;lt;/h3&amp;gt;

&amp;lt;p style=&quot;background-color: #00ff00&quot;&amp;gt;i can do it&amp;lt;/p&amp;gt;

&amp;lt;h3&amp;gt;in-ternal 방식  사용 후 p 태그 사용해서 적어보기 &amp;lt;/h3&amp;gt;
&amp;lt;p&amp;gt;hello css&amp;lt;p&amp;gt;
&amp;lt;h3&amp;gt;위를 통해 알 수 있는 것 : title 쪽에 인터널 방식을 사용해도 나중에 적은 인라인 방식이 먼저 적용된다&amp;lt;/h3&amp;gt;

&amp;lt;h3&amp;gt; external 방식 사용 후 외부파일에서 스타일 불러와서 적용해보기 &amp;lt;/h3&amp;gt;
&amp;lt;h1&amp;gt; 안녕하세요 반갑습니다&amp;lt;/h1&amp;gt;





 
 &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1020&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/RoPUe/dJMcadieAng/5yFZ79Tb9QwV2RSsyIQOM0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/RoPUe/dJMcadieAng/5yFZ79Tb9QwV2RSsyIQOM0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/RoPUe/dJMcadieAng/5yFZ79Tb9QwV2RSsyIQOM0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRoPUe%2FdJMcadieAng%2F5yFZ79Tb9QwV2RSsyIQOM0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1020&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1020&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;style.css&lt;/blockquote&gt;
&lt;pre id=&quot;code_1782354360446&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@charset &quot;UTF-8&quot;;

h1{
	background-color: #ffff00;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;index1&lt;/blockquote&gt;
&lt;pre id=&quot;code_1782354397710&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;title&amp;gt;Insert title here&amp;lt;/title&amp;gt;
  &amp;lt;style type=&quot;text/css&quot;&amp;gt;
	
	 /* 모두 같은 값으로 적용하고 싶을 떄는 *를 사용한다 */
	*{ 
	 /* background-color: green; */ /*컬러를 아예 적어주는 방법*/
	 /* background-color: #00ff00;*/ /*16진수  이용방법*/
	  background-color: rgb(0,255,0); /*rgb 이용방법''*/
	 
	 
	 /* text-align: center;*/
	}
	
	 /* p태그를 사용한 모든 문장  #ff0000 으로 변경 */
		p{
		color: #ff0000;
		}
	
	 /* h3태그를 사용한 모든 문장  오른쪽으로 정렬  */
		h3{
		color:rgb(0,0,255);
		text-align: right;
		}
		
	 /* id를 work 로 사용한 것은 배경색 분홍색으로 변경  */	
		#work{
		background-color: pink
		}
	 
	 /* p태그에 id를 work 로 사용한 것은 글자색 노란색으로 변경   */		
		p#work{
			color: yellow;
		}
	 
	 /* cls 사용한 것은 배경색 노랑, 글자 검정, 사이즈 24로 변경   */		
		.cls{
			background-color: yellow;
			color: black;
			font-size:24px
		}
	 
	 /* cls를 사용하는 것중에서  div 태그 단 것만 따로 변경할 수 있을 떄    */			
		div.cls{
			font-size:18px;
			color: red;
		}
	
  &amp;lt;/style&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
&amp;lt;pre&amp;gt;
		id: JavaScript 에서 접근가능/ css 에서도 접근이 가능하고 사용할 수 있다 / 앞에 #을 붙여서 사용 	/id 는 하나만 가능
	 Class: JavaScript 에서 접근가능/ css에서 적용이 가능하다				/ 앞에 .을 붙여서 사용 	/다중 사용 가능 
	  name: JavaScript 에서 접근가능/ css에서 사용하지 않는다				/link 시에 값을 전송한다
	  
	  [문법]
	  		태그명 / #id  / .calls {
	  		property명 : value(값)
	  				  :
	  				  :
	 		 }
	  
	  
	  
&amp;lt;/pre&amp;gt;
&amp;lt;br/&amp;gt;
	&amp;lt;p&amp;gt;잠실 아파트 매각 시세차익 30억 논란&amp;hellip;가족 간 편법 증여 의혹도&amp;lt;/p&amp;gt;
	&amp;lt;h3&amp;gt;한 후보자 인사청문회의 핵심 쟁점은 부동산 문제다. &amp;lt;/h3&amp;gt;

	id 명은 원하는대로 설정 가능 
	&amp;lt;p id=&quot;work&quot;&amp;gt;국민의힘은 한 후보자의 부동산 보유 및 처분 과정 등을 검증할 예정이다.&amp;lt;/p&amp;gt;

	&amp;lt;h3 id=&quot;work&quot;&amp;gt;한 후보자가 가족 간 부동산 임대 과정에서 헐값 임대&amp;middot;편법 증여를 했다는 의혹도 제기됐다.&amp;lt;/h3&amp;gt;

	cls 사용시 전부 같은 값으로 적용된 걸 확인 할 수 있다 
	&amp;lt;h2 class=&quot;cls&quot;&amp;gt;연건동 건물은 단독 주택 2채를 연결 통로로 이어 하나로 사용했다는 불법 증축 의혹도 제기된 바 있다.&amp;lt;/h2&amp;gt;
	
	&amp;lt;h4 class=&quot;cls&quot;&amp;gt;한 후보자 측은 다주택&amp;middot;시세차익 논란 등과 관련해서는 인사청문회에서 답하겠다고 밝혔다 &amp;lt;/h4&amp;gt;
	
	div 태그 안에 cls 로 잡아서 같은  cls 임에도 다른 게 적용된 걸 확인 할 수 있다 
	&amp;lt;div class=&quot;cls&quot;&amp;gt;한 후보자는 공식 사과하며 재발 방지 대책 마련을 약속한 바 있다.&amp;lt;/div&amp;gt;



&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1020&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bqCVWk/dJMcabLw2HH/8yoSfxOybY2Thtjs7nR0bK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bqCVWk/dJMcabLw2HH/8yoSfxOybY2Thtjs7nR0bK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bqCVWk/dJMcabLw2HH/8yoSfxOybY2Thtjs7nR0bK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbqCVWk%2FdJMcabLw2HH%2F8yoSfxOybY2Thtjs7nR0bK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1020&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1020&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;index.2&lt;/blockquote&gt;
&lt;pre id=&quot;code_1782354486894&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;title&amp;gt;Insert title here&amp;lt;/title&amp;gt;
 
 &amp;lt;style type=&quot;text/css&quot;&amp;gt;
 body {
 /*
	background-color: rgb(108,161,251);
	background-image: url(&quot;./images/background.jpg&quot;);
	background-repeat: no-repeat;
	background-position: center top;

	background:rgb(108,161,251) url(&quot;./images/background.jpg&quot;) no-repeat center top;
*/	
	background-image:url(&quot;./images/icon.jpg&quot;);
	
}
 
 	
 
 &amp;lt;/style&amp;gt;
 
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
 
 &amp;lt;table style=&quot;border:1; text-align: center; background-color:rgb(105,131,201); &quot;  &amp;gt;
 	&amp;lt;tbody&amp;gt;
 		&amp;lt;tr&amp;gt;
			&amp;lt;td style=&quot;font-size: 200%&quot;&amp;gt;&amp;lt;pre&amp;gt;
				배경 이미지 삽입 	background-image: url(&quot;./images/background.jpg&quot;);
				배경 이미지 가로축 삽입	background-repeat: repeat-x;
				배경 이미지 세로축 삽입	background-repeat: repeat-y;
				배경 이미지 한장만 삽입	background-repeat: no-repeat; 
				배경 이미지 포지션 상단	background-position: top;

				단축 문장 : background:rgb(108,161,251) url(&quot;./images/background.jpg&quot;) no-repeat center top;

				아이콘으로 만들어서 삽입 background-image:url(&quot;./images/icon.jpg&quot;);
  			&amp;lt;/pre&amp;gt;&amp;lt;/td&amp;gt;
  		&amp;lt;/tr&amp;gt;
  &amp;lt;/tbody&amp;gt;	
&amp;lt;/table&amp;gt;

&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1020&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/I6gW8/dJMcadJbIuR/Mn0uk19NivO23kFlc84l71/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/I6gW8/dJMcadJbIuR/Mn0uk19NivO23kFlc84l71/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/I6gW8/dJMcadJbIuR/Mn0uk19NivO23kFlc84l71/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FI6gW8%2FdJMcadJbIuR%2FMn0uk19NivO23kFlc84l71%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1020&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1020&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;index3&lt;/blockquote&gt;
&lt;pre id=&quot;code_1782380380137&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;title&amp;gt;Insert title here&amp;lt;/title&amp;gt;
&amp;lt;style type=&quot;text/css&quot;&amp;gt;
	body{
	color: green;
	text-align: center;
	}
	h3{
	color: rgb(255,0,0);
	text-decoration: overline;
	}
	P{
	color:blue;
	}
	
	/*transform :변환*/
	.upper{
	text-transform: uppercase;
	}
	
	.lower{
	text-transform: lowercase;
	}
	
	.cap{
	text-transform: capitalize;
	}
	
	.setif{
	font-family:&quot;Times New Roman&quot;;
	font-style:italic;
	font-size: 1.5em;
	color: rfb(255,255,0);
	font-stretch: wider;
	background-color: pink;

	}
	
	a{
	text-decoration: none; /* 위에서 설정했던 디폴트 값 제거 */
	}
	
	a:link{
	color: pink;
	text-shadow: black;
	}
	
	a:visited {
	color: purple;
	text-decoration: underline;
	}
	
	a:hover {
	color: green;
	background-color: yellow;
	text-decoration: underline;
	}

&amp;lt;/style&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;

&amp;lt;h3&amp;gt;b1a4팬카페&amp;lt;/h3&amp;gt;

&amp;lt;p&amp;gt;진영신우산들바로공찬대박b1a4&amp;lt;/p&amp;gt;


&amp;lt;p class=&quot;upper&quot;&amp;gt;we are one&amp;lt;/p&amp;gt;
&amp;lt;p class=&quot;lower&quot;&amp;gt;we are one&amp;lt;/p&amp;gt;
&amp;lt;p class=&quot;cap&quot;&amp;gt;we are one&amp;lt;/p&amp;gt;

&amp;lt;p class=&quot;setif&quot;&amp;gt;welcome to bana world&amp;lt;/p&amp;gt;

&amp;lt;a href=&quot;http://www.google.com&quot;&amp;gt;환영합니다 b1a4 팬카페입니다 &amp;lt;/a&amp;gt;










&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1020&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bVYc1H/dJMb99UoL9N/CxDQu1V0GRXcg1z0KnoN5K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bVYc1H/dJMb99UoL9N/CxDQu1V0GRXcg1z0KnoN5K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bVYc1H/dJMb99UoL9N/CxDQu1V0GRXcg1z0KnoN5K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbVYc1H%2FdJMb99UoL9N%2FCxDQu1V0GRXcg1z0KnoN5K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1020&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1020&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;index 4&lt;/blockquote&gt;
&lt;pre id=&quot;code_1782380426904&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;title&amp;gt;Insert title here&amp;lt;/title&amp;gt;

	&amp;lt;style type=&quot;text/css&quot;&amp;gt;
	.message{
	/*	바깥 여백 설정 방법 
	
		margin-top: 10px;
		margin-right: 20px;
		margin-bottom: 10px;
		margin-left: 20px;
	
		
		 바깥 여백 단축키 */ 
	margin: 10px 20px 10px 20px; 
		 
		
		
	/*	 테두리 설정 방법 
		border-style:dotted; 
		border-color: blue;
	
	
		 테두리 설정 단축키*/ 
	border: solid blue 3px; 
		
	/* 안쪽 여백 단축키 */	
	
	padding-left: 15px 20px 30px 40px;
		
	}
	
	&amp;lt;/style&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;

	&amp;lt;div class=&quot;message&quot;&amp;gt;welcome to my world&amp;lt;/div&amp;gt;

&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1020&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/beCuWy/dJMcabLxDhe/S6l65FdvGsbc0LgDnkGm00/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/beCuWy/dJMcabLxDhe/S6l65FdvGsbc0LgDnkGm00/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/beCuWy/dJMcabLxDhe/S6l65FdvGsbc0LgDnkGm00/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbeCuWy%2FdJMcabLxDhe%2FS6l65FdvGsbc0LgDnkGm00%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1020&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1020&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;index5&lt;/blockquote&gt;
&lt;div style=&quot;background-color: #ffffff;&quot;&gt;
&lt;div style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;
&lt;pre id=&quot;code_1782380505928&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;

&amp;lt;html&amp;gt;

&amp;lt;head&amp;gt;

&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;

&amp;lt;title&amp;gt;Insert title here&amp;lt;/title&amp;gt;

&amp;lt;style type=&quot;text/css&quot;&amp;gt;

.ul{

/*list-style-type:circle;*/

list-style-image: url(&quot;./images/icon.jpg&quot;);

font-family:&quot;Times New Roman&quot;;

padding-left:34px;

}

.ol{

/* list-style-type: upper-roman;*/

list-style-type: lower-alpha;

}





&amp;lt;/style&amp;gt;

&amp;lt;/head&amp;gt;

&amp;lt;body&amp;gt;



&amp;lt;ul class=&quot;ul&quot;&amp;gt;

&amp;lt;li&amp;gt;&amp;lt;a href=&quot;https://www.ediya.com/&quot;&amp;gt;coffe &amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;

&amp;lt;li&amp;gt;&amp;lt;a href=&quot;https://www.coca-cola.com/kr/ko&quot;&amp;gt;soda&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;

&amp;lt;li&amp;gt;&amp;lt;a href=&quot;https://www.maeil.com/&quot;&amp;gt;milk&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;

&amp;lt;/ul&amp;gt;



&amp;lt;ol class=&quot;ol&quot;&amp;gt;

&amp;lt;li&amp;gt;Apple&amp;lt;/li&amp;gt;

&amp;lt;li&amp;gt;pear&amp;lt;/li&amp;gt;

&amp;lt;li&amp;gt;Banana&amp;lt;/li&amp;gt;

&amp;lt;/ol&amp;gt;

&amp;lt;/body&amp;gt;

&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1020&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NUoqD/dJMcaaZ4Juo/8meOPt4dkxA77P8Nvmu6fK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NUoqD/dJMcaaZ4Juo/8meOPt4dkxA77P8Nvmu6fK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NUoqD/dJMcaaZ4Juo/8meOPt4dkxA77P8Nvmu6fK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNUoqD%2FdJMcaaZ4Juo%2F8meOPt4dkxA77P8Nvmu6fK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1020&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1020&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1020&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bDKK8B/dJMcag63cXP/gJ53UfHQ7jBVPDk2ugGKkK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bDKK8B/dJMcag63cXP/gJ53UfHQ7jBVPDk2ugGKkK/img.png&quot; data-alt=&quot;커피 누르면 해당 페이지로 이동하게 연결해둠&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bDKK8B/dJMcag63cXP/gJ53UfHQ7jBVPDk2ugGKkK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbDKK8B%2FdJMcag63cXP%2FgJ53UfHQ7jBVPDk2ugGKkK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1020&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1020&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;커피 누르면 해당 페이지로 이동하게 연결해둠&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;index6&lt;/blockquote&gt;
&lt;pre id=&quot;code_1782380568743&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;title&amp;gt;Insert title here&amp;lt;/title&amp;gt;
 &amp;lt;style type=&quot;text/css&quot;&amp;gt;
 	
	table{
		width:100%;
		border-collapse: collapse; /*라인 하나로 설정해라*/
		text-align:center;
	}
	
	/*&amp;gt; 를 사용하면 어디어디 안에 ,를 사용하면 동등하게 모두 */
	table, th, td{
		border-style: solid;
		border-width: 3px;
		border-color: purple;	
		
	}
	
	/*th태그만 따로 설정하기  */
	th{
		height: 50px;
		background-color: pink;
		color:white;
		
	}
	
	td{
		text-align:center;
		height: 30px;
	}
	.left{
		text-align: left;
		padding-left: 15px;
	}
 &amp;lt;/style&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;



&amp;lt;table&amp;gt;
	&amp;lt;thead&amp;gt;
		&amp;lt;tr&amp;gt;
			&amp;lt;th&amp;gt;번호&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;이름&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;나이&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;신장&amp;lt;/th&amp;gt;
		&amp;lt;/tr&amp;gt;
	&amp;lt;/thead&amp;gt;
	&amp;lt;tbody&amp;gt;
		&amp;lt;tr&amp;gt;
			&amp;lt;th&amp;gt;1&amp;lt;/th&amp;gt;&amp;lt;td class=&quot;left&quot;&amp;gt;홍길동&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;17&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;186.2&amp;lt;/td&amp;gt;
		&amp;lt;/tr&amp;gt;
		&amp;lt;tr&amp;gt;
			&amp;lt;th&amp;gt;2&amp;lt;/th&amp;gt;&amp;lt;td  class=&quot;left&quot;&amp;gt;성춘향&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;14&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;164.3&amp;lt;/td&amp;gt;
		&amp;lt;/tr&amp;gt;
		&amp;lt;tr&amp;gt;
			&amp;lt;th&amp;gt;3&amp;lt;/th&amp;gt;&amp;lt;td  class=&quot;left&quot;&amp;gt;일지매&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;21&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;172.5&amp;lt;/td&amp;gt;
		&amp;lt;/tr&amp;gt;
	&amp;lt;/tbody&amp;gt;	
&amp;lt;/table&amp;gt;










&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1020&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bq8YnE/dJMcajo5K3I/XgcV9otKSrzkkTHegK1L80/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bq8YnE/dJMcajo5K3I/XgcV9otKSrzkkTHegK1L80/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bq8YnE/dJMcajo5K3I/XgcV9otKSrzkkTHegK1L80/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbq8YnE%2FdJMcajo5K3I%2FXgcV9otKSrzkkTHegK1L80%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1020&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1020&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;index7&lt;/blockquote&gt;
&lt;pre id=&quot;code_1782380604167&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;title&amp;gt;Insert title here&amp;lt;/title&amp;gt;

&amp;lt;style type=&quot;text/css&quot;&amp;gt;
.cm{
	font-size: 1mm;
}

.inch{
	font-size: 1in;
}


.pt{
	font-size: 1pt;
}

.pc{
	font-size: 1pc;
}

.px{
	font-size: 1px;
}


.em{
	font-size: 1em;
}

.per{
	font-size: 100%;
}

&amp;lt;/style&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;

&amp;lt;h2&amp;gt;font size&amp;lt;/h2&amp;gt;

	&amp;lt;p class=&quot;cm&quot;&amp;gt; font size 1 cm&amp;lt;/p&amp;gt;
	&amp;lt;p class=&quot;mm&quot;&amp;gt; font size 1 mm&amp;lt;/p&amp;gt;
	&amp;lt;p class=&quot;inch&quot;&amp;gt; font size 1 inch&amp;lt;/p&amp;gt; &amp;lt;!-- 1 inch = 2.54cm --&amp;gt;
	&amp;lt;p class=&quot;pt&quot;&amp;gt; font size 1 pt&amp;lt;/p&amp;gt;	  &amp;lt;!--  point  --&amp;gt;
	&amp;lt;p class=&quot;pc&quot;&amp;gt; font size 1 pc&amp;lt;/p&amp;gt;	  &amp;lt;!--  파이카 == 12pt  --&amp;gt;
	&amp;lt;p class=&quot;px&quot;&amp;gt; font size 18 px&amp;lt;/p&amp;gt;
	&amp;lt;p class=&quot;em&quot;&amp;gt; font size 20 em&amp;lt;/p&amp;gt;
	&amp;lt;p class=&quot;per&quot;&amp;gt; font size 100% &amp;lt;/p&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1020&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QS4dL/dJMcadifbN0/CBbIDjKvOdUJGCwl2EQdeK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QS4dL/dJMcadifbN0/CBbIDjKvOdUJGCwl2EQdeK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QS4dL/dJMcadifbN0/CBbIDjKvOdUJGCwl2EQdeK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQS4dL%2FdJMcadifbN0%2FCBbIDjKvOdUJGCwl2EQdeK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1020&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1020&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;work&amp;nbsp;&lt;/blockquote&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;work 1&lt;/blockquote&gt;
&lt;pre id=&quot;code_1782380671303&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;title&amp;gt;Insert title here&amp;lt;/title&amp;gt;
	&amp;lt;style type=&quot;text/css&quot;&amp;gt;
	.c{
	 	padding-left:50px;
	}
	.cl{ 
		padding-left: 120px;
		padding-top: 50px;
	}
	.cls{
		padding: 50px 100px  50px 100px;
	}
	&amp;lt;/style&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
&amp;lt;h1 class=&quot;c&quot;&amp;gt;명언&amp;lt;/h1&amp;gt;

&amp;lt;p class=&quot;cl&quot;&amp;gt; 징키스칸 어룩 &amp;lt;/p&amp;gt;

&amp;lt;p class=&quot;cls&quot;&amp;gt;

집안이 나쁘다고 탓하지 말라.
나는 아홉 살 때 아버지를 잃고 마을에서 쫓겨났다.

가난하다고 말하지 말라.
나는 들쥐를 잡아먹으며 연명했고,
목숨을 건 전쟁이 내 직업이고 내 일이었다.

작은 나라에서 태어났다고 말하지 말라.
그림자 말고는 친구도 없고 병사로만 10만.
백성은 어린애, 노인까지 합쳐 2백만도 되지 않았다.

배운게 없다고 힘이 없다고 탓하지 말라.
나는 내 이름도 쓸 줄 몰랐으나 남의 말에 귀 기울이면서
현명해지는 법을 배웠다.

너무 막막하다고, 그래서 포기해야겠다고 말하지 말라.
나는 목에 칼을 쓰고도 탈출했고,
뺨에 화살을 맞고 죽었다 살아나기도 했다.

적은 밖에 있는 것이 아니라 내 안에 있었다.
나는 내게 거추장스러운 것은 깡그리 쓸어버렸다.

나를 극복하는 그순간 나는 징기스칸이 되었다. &amp;lt;/p&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1020&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bzr5uo/dJMcacwQJX8/2lVV1oiSO7yKMbMe2Cr4jK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bzr5uo/dJMcacwQJX8/2lVV1oiSO7yKMbMe2Cr4jK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bzr5uo/dJMcacwQJX8/2lVV1oiSO7yKMbMe2Cr4jK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbzr5uo%2FdJMcacwQJX8%2F2lVV1oiSO7yKMbMe2Cr4jK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1020&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1020&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;work2&lt;/blockquote&gt;
&lt;pre id=&quot;code_1782380707038&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;title&amp;gt;Insert title here&amp;lt;/title&amp;gt;
	&amp;lt;style type=&quot;text/css&quot;&amp;gt;
	
	.ul{
		list-style-image:url(&quot;./images%20(4)/star.gif&quot;);
	}
		
	
	&amp;lt;/style&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;

&amp;lt;ul  class=&quot;ul&quot; &amp;gt;
	&amp;lt;li  &amp;gt;&amp;lt;pre&amp;gt;
	목록 항목 A
	그 상세한 설명. 
	&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;
	
	&amp;lt;li &amp;gt;&amp;lt;pre&amp;gt;
	목록 항목 B
	그 상세한 설명. 
	&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;
	
	&amp;lt;li &amp;gt;&amp;lt;pre&amp;gt;
	목록 항목 B
	그 상세한 설명. 
	&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;

&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1020&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vvnFA/dJMb997VX86/DN3hGYaTcdETUh4zTOGmdk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vvnFA/dJMb997VX86/DN3hGYaTcdETUh4zTOGmdk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vvnFA/dJMb997VX86/DN3hGYaTcdETUh4zTOGmdk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvvnFA%2FdJMb997VX86%2FDN3hGYaTcdETUh4zTOGmdk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1020&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1020&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;work3&lt;/blockquote&gt;
&lt;pre id=&quot;code_1782380730718&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;title&amp;gt;Insert title here&amp;lt;/title&amp;gt;
&amp;lt;style type=&quot;text/css&quot;&amp;gt;
	
	.ul{
		list-style-image: url(&quot;./images%20(4)/exq.gif&quot;);
		border: 2px;
		border-style: solid;
		border-color: gray;
		background-color: orange;
		padding: 30px;
		}
		


&amp;lt;/style&amp;gt;


&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;

&amp;lt;ul class=&quot;ul&quot;&amp;gt;
	&amp;lt;li&amp;gt; 참고 이 메시지에 주의하세요!&amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;

&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1020&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bCcR6J/dJMcahkFLIa/l6sHxKd75UAXzkjsiPXKVk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bCcR6J/dJMcahkFLIa/l6sHxKd75UAXzkjsiPXKVk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bCcR6J/dJMcahkFLIa/l6sHxKd75UAXzkjsiPXKVk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbCcR6J%2FdJMcahkFLIa%2Fl6sHxKd75UAXzkjsiPXKVk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1020&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1020&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;work 4&lt;/blockquote&gt;
&lt;pre id=&quot;code_1782380761686&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;title&amp;gt;Insert title here&amp;lt;/title&amp;gt;
&amp;lt;style type=&quot;text/css&quot;&amp;gt;
	p{	
	 	border: 1px;
		border-style: none;
		border-radius: 5px;
		box-shadow: 2px 2px 5px gray;
		background-image: linear-gradient(to bottom, #b6fbff, #83a4d4);
		padding: 15px;
		margin: 10px;
		}
		
		
	body { 
		 background-color: gray;
	}

&amp;lt;/style&amp;gt;


&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;

&amp;lt;p &amp;gt;
	CSS를 사용한 장식 테두리&amp;lt;br/&amp;gt;
	좋아하는 메시지를 작성합니다. 
&amp;lt;/p&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1020&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kL7Pe/dJMcadifbRk/37rj9EUDyK660grGxrDas0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kL7Pe/dJMcadifbRk/37rj9EUDyK660grGxrDas0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kL7Pe/dJMcadifbRk/37rj9EUDyK660grGxrDas0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkL7Pe%2FdJMcadifbRk%2F37rj9EUDyK660grGxrDas0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1020&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1020&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;work5&lt;/blockquote&gt;
&lt;pre id=&quot;code_1782380789006&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;title&amp;gt;Insert title here&amp;lt;/title&amp;gt;
&amp;lt;style type=&quot;text/css&quot;&amp;gt;
body {
	background-image:url(&quot;./images%20(4)/red.png&quot;);
	background-repeat: no-repeat;
	background-size: cover;
}

.d {
	padding-top: 300px;
	padding-top: inherit;

	}



&amp;lt;/style&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;

&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;

&amp;lt;div class=&quot;d&quot;&amp;gt;
&amp;lt;h1&amp;gt;징기스칸 어록&amp;lt;/h1&amp;gt;


	&amp;lt;pre&amp;gt;
집안이 나쁘다고 탓하지 말라.
나는 아홉 살 때 아버지를 잃고 마을에서 쫓겨났다.

가난하다고 말하지 말라.
나는 들쥐를 잡아먹으며 연명했고,
목숨을 건 전쟁이 내 직업이고 내 일이었다.

작은 나라에서 태어났다고 말하지 말라.
그림자 말고는 친구도 없고 병사로만 10만.
백성은 어린애, 노인까지 합쳐 2백만도 되지 않았다.

배운게 없다고 힘이 없다고 탓하지 말라.
나는 내 이름도 쓸 줄 몰랐으나 남의 말에 귀 기울이면서
현명해지는 법을 배웠다.

너무 막막하다고, 그래서 포기해야겠다고 말하지 말라.
나는 목에 칼을 쓰고도 탈출했고,
뺨에 화살을 맞고 죽었다 살아나기도 했다.

적은 밖에 있는 것이 아니라 내 안에 있었다.
나는 내게 거추장스러운 것은 깡그리 쓸어버렸다.

나를 극복하는 그순간 나는 징기스칸이 되었다.

	&amp;lt;/pre&amp;gt;
&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1020&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bISQKo/dJMcai4OBOm/KFSXIQjc9mlOoTWXnM64Q0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bISQKo/dJMcai4OBOm/KFSXIQjc9mlOoTWXnM64Q0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bISQKo/dJMcai4OBOm/KFSXIQjc9mlOoTWXnM64Q0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbISQKo%2FdJMcai4OBOm%2FKFSXIQjc9mlOoTWXnM64Q0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1020&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1020&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;work7&lt;/blockquote&gt;
&lt;pre id=&quot;code_1782380841550&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;title&amp;gt;Insert title here&amp;lt;/title&amp;gt;
&amp;lt;style type=&quot;text/css&quot;&amp;gt;
table{	border-width:3px;
		border-style:solid;
		border-color:gray;
		border-collapse: collapse; /*라인 하나로 설정해라*/
	}
	
th, tb,td {
	border-width:1px;	
	border-style:solid;	
	}	

&amp;lt;/style&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;

	&amp;lt;table &amp;gt;
		&amp;lt;thead &amp;gt; 
			&amp;lt;tr&amp;gt;
				&amp;lt;th&amp;gt;분류&amp;lt;/th&amp;gt; &amp;lt;th&amp;gt;제품&amp;lt;/th&amp;gt; &amp;lt;th&amp;gt;설명&amp;lt;/th&amp;gt;
			&amp;lt;/tr&amp;gt;
		&amp;lt;/thead&amp;gt;
		&amp;lt;tbody&amp;gt;
			&amp;lt;tr&amp;gt;
				&amp;lt;td rowspan=&quot;2&quot;&amp;gt;과일&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;사과&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;햇사과&amp;lt;/td&amp;gt;
			&amp;lt;/tr&amp;gt;
			&amp;lt;tr&amp;gt;
				&amp;lt;td&amp;gt;배&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;싱싱함&amp;lt;/td&amp;gt;
			&amp;lt;/tr&amp;gt;
		&amp;lt;/tbody&amp;gt;
		
	
	&amp;lt;/table&amp;gt;




&amp;lt;/body&amp;gt;


&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1020&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qcbJG/dJMcabraSwc/kKmgTnOUve8wZKRQg5Ae0k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qcbJG/dJMcabraSwc/kKmgTnOUve8wZKRQg5Ae0k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qcbJG/dJMcabraSwc/kKmgTnOUve8wZKRQg5Ae0k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqcbJG%2FdJMcabraSwc%2FkKmgTnOUve8wZKRQg5Ae0k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1020&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1020&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;work8&lt;/blockquote&gt;
&lt;pre id=&quot;code_1782380863958&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;title&amp;gt;Insert title here&amp;lt;/title&amp;gt;
&amp;lt;style type=&quot;text/css&quot;&amp;gt;
	a:hover{
		color: green;
		background-color: yellow;
		text-decoration: underline;
	}

&amp;lt;/style&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
&amp;lt;a href=&quot;https://www.google.co.kr/index.html&quot;&amp;gt;구글홈페이지link&amp;lt;/a&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1020&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bFQR6s/dJMcad3wsxy/nJnH04fn3QkpiT74biKjYk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bFQR6s/dJMcad3wsxy/nJnH04fn3QkpiT74biKjYk/img.png&quot; data-alt=&quot;마우스 올리면 색 변화된다&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bFQR6s/dJMcad3wsxy/nJnH04fn3QkpiT74biKjYk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbFQR6s%2FdJMcad3wsxy%2FnJnH04fn3QkpiT74biKjYk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1020&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1020&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;마우스 올리면 색 변화된다&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;work9&lt;/blockquote&gt;
&lt;pre id=&quot;code_1782380915197&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;title&amp;gt;Insert title here&amp;lt;/title&amp;gt;
&amp;lt;style type=&quot;text/css&quot;&amp;gt;

	body {
	background-image: url(&quot;./images%20(4)/back.jpg&quot;);
	background-repeat: no-repeat;
	background-size: cover inherit;
	
	}

	p{ font-size: 20px;
		background-color: rgb(255,255,255,0.3);
		padding: 10px 20px 10px 25px;
		margin: 15px 20px 15px 40px;
	}



&amp;lt;/style&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;

&amp;lt;p&amp;gt;여기는 산이야!&amp;lt;/p&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1020&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OXVoM/dJMcaglFZgf/gYwCg4Rm4lO0enJidwgKQ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OXVoM/dJMcaglFZgf/gYwCg4Rm4lO0enJidwgKQ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OXVoM/dJMcaglFZgf/gYwCg4Rm4lO0enJidwgKQ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOXVoM%2FdJMcaglFZgf%2FgYwCg4Rm4lO0enJidwgKQ0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1020&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1020&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;해보고 싶었던 것 해보기&amp;nbsp;&lt;/blockquote&gt;
&lt;pre id=&quot;code_1782381075917&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;title&amp;gt;Insert title here&amp;lt;/title&amp;gt;
&amp;lt;style type=&quot;text/css&quot;&amp;gt;
	.to { 
		border: 2px solid transparent;
		
		
		background-image: url(&quot;./images%20(4)/tomato.png&quot;) , linear-gradient(#fff, #fff), linear-gradient(to right, tomato, orange, pink);
		/* 3. 각 배경 레이어의 범위를 지정 (이미지는 테두리 안쪽 패딩 영역까지만 나오도록 설정) */
		background-origin: padding-box, content-box, border-box;
		background-clip: padding-box, content-box, border-box;
		background-repeat: no-repeat,no-repeat,no-repeat;
		background-size: 50px 50px, auto, auto;
		border-radius: 30px 10px 40px 0px;
		padding: 10px 10px 10px 40px;
						} 


&amp;lt;/style&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;

&amp;lt;h3 class=&quot;to&quot;&amp;gt; 나는 작은 토마토야 방울 토마토랑 헷갈리면 안 돼 알았지?&amp;lt;/h3&amp;gt;

&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1020&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b3p2QX/dJMcaaTkamD/NGLCikEXPAmnonNXr6jwPk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b3p2QX/dJMcaaTkamD/NGLCikEXPAmnonNXr6jwPk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b3p2QX/dJMcaaTkamD/NGLCikEXPAmnonNXr6jwPk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb3p2QX%2FdJMcaaTkamD%2FNGLCikEXPAmnonNXr6jwPk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1020&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1020&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>HTML/Html 수강일지</category>
      <author>jamk-diary</author>
      <guid isPermaLink="true">https://jamk-diary.tistory.com/74</guid>
      <comments>https://jamk-diary.tistory.com/74#entry74comment</comments>
      <pubDate>Thu, 25 Jun 2026 18:51:37 +0900</pubDate>
    </item>
    <item>
      <title>[2026-06-24]</title>
      <link>https://jamk-diary.tistory.com/73</link>
      <description>&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;
&lt;h2 style=&quot;background-color: #fdfcfc; color: #1f1f1f; text-align: start;&quot; data-path-to-node=&quot;3&quot; data-ke-size=&quot;size26&quot;&gt;  실습 과제 1: 자기소개 출력하기 (변수와 출력)&lt;/h2&gt;
&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;4&quot;&gt;목표:&lt;/b&gt; 다양한 자료형의 변수를 선언하고, 문자열 더하기 연산자(+)를 사용해 한 문장으로 출력합니다.&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #fdfcfc; color: #1f1f1f; text-align: start;&quot; data-path-to-node=&quot;5&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5,0,0&quot;&gt;요구사항:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-path-to-node=&quot;5,0,1&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;span&gt;이름(String), 나이(int), 키(double)를 저장하는 변수를 각각 만드세요.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;변수에 본인의 데이터를 할당하세요.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;System.out.println을 한 번만 사용하여 아래와 같이 출력하세요.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5,1,0&quot;&gt;출력 예시:&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;pre id=&quot;code_1782281670224&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;package work1;

public class work1 {
public static void main(String[] args) {
	String na=&quot;홍길동&quot;; //이름
	int ag=18; //나이
	double cm=182.2; //키
	
	System.out.println(&quot;안녕하세요 제 이름은 &quot; + na +&quot;이고, 나이는 &quot; +ag + &quot;살 , 키는 &quot; +cm +&quot;cm입니다&quot;);
	
	
	
}
}&lt;/code&gt;&lt;/pre&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;
&lt;h2 style=&quot;background-color: #fdfcfc; color: #1f1f1f; text-align: start;&quot; data-path-to-node=&quot;7&quot; data-ke-size=&quot;size26&quot;&gt;  실습 과제 2: 편의점 영수증 계산기 (산술 연산자)&lt;/h2&gt;
&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;8&quot;&gt;목표:&lt;/b&gt; 여러 물건의 가격을 합산하고 나머지를 구하는 과정을 통해 산술 연산자에 익숙해집니다.&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #fdfcfc; color: #1f1f1f; text-align: start;&quot; data-path-to-node=&quot;9&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,0,0&quot;&gt;요구사항:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-path-to-node=&quot;9,0,1&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;span&gt;콜라 가격(coke)은 1,500원, 과자 가격(snack)은 2,000원입니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;콜라 3개와 과자 2개를 샀을 때의 &lt;b data-index-in-node=&quot;20&quot; data-path-to-node=&quot;9,0,1,1,0&quot;&gt;총 금액&lt;/b&gt;을 계산하여 변수 total에 저장하세요.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;만 원(10,000원)을 냈을 때 받을 &lt;b data-index-in-node=&quot;22&quot; data-path-to-node=&quot;9,0,1,2,0&quot;&gt;거스름돈&lt;/b&gt;을 계산하여 출력하세요.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,1,0&quot;&gt;힌트:&lt;/b&gt; total = (coke * 개수) + (snack * 개수);&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;pre id=&quot;code_1782281682520&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;package work1;

public class work2 { 
	public static void main(String[] args) {
		int coke = 1500;
		int snack= 2000;

		int total=(coke *3) +(snack *2);

		System.out.println(total);
	}



}&lt;/code&gt;&lt;/pre&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;
&lt;h2 style=&quot;background-color: #fdfcfc; color: #1f1f1f; text-align: start;&quot; data-path-to-node=&quot;11&quot; data-ke-size=&quot;size26&quot;&gt;⚖️ 실습 과제 3: 홀짝 및 성인 인증기 (비교 및 논리 연산자)&lt;/h2&gt;
&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;12&quot;&gt;목표:&lt;/b&gt; 비교 연산자와 논리 연산자의 결과값(boolean)이 어떻게 나오는지 확인합니다.&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #fdfcfc; color: #1f1f1f; text-align: start;&quot; data-path-to-node=&quot;13&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13,0,0&quot;&gt;요구사항:&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-path-to-node=&quot;13,0,1&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;span&gt;어떤 숫자 num이 10일 때, 이 숫자가 &lt;b data-index-in-node=&quot;24&quot; data-path-to-node=&quot;13,0,1,0,0&quot;&gt;짝수&lt;/b&gt;인지 확인하여 true/false를 출력하세요. (힌트: 2로 나눈 나머지가 0인지 확인)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;본인의 나이를 변수 myAge에 저장하고, 이 값이 &lt;b data-index-in-node=&quot;29&quot; data-path-to-node=&quot;13,0,1,1,0&quot;&gt;19세 이상&lt;/b&gt;인지 확인하여 출력하세요.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;isAdult라는 변수에 (나이가 19세 이상) &lt;b data-index-in-node=&quot;27&quot; data-path-to-node=&quot;13,0,1,2,0&quot;&gt;이면서&lt;/b&gt; (민증을 가지고 있음 - boolean hasID = true;) 두 조건이 모두 참일 때만 true가 나오도록 코드를 짜보세요.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;pre id=&quot;code_1782380217657&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;package work1;

import java.util.Scanner;

public class work3 {
public static void main(String[] args) {


//홀수 인지 짝수인지 확인하기 
	int num = 10;		
	if(num % 2 == 0) {
		System.out.println(&quot;true&quot;);
	}
	else {
		System.out.println(&quot;false&quot;);
	}
	 
	//미성년자 식별 
	int age;
	Scanner sc = new Scanner(System.in);
	System.out.print(&quot;나이를 입력해 주세요 : &quot;);
	age=sc.nextInt();
	
	System.out.println(&quot;-----------검사중입니다-----------&quot;);

	boolean hasID = true;

	boolean isAdult = (age &amp;gt;= 19) &amp;amp;&amp;amp; hasID;

	
	//출력 

	if (isAdult) {
        // 나이도 19세 이상이고, 민증도 참(true)일 때만 실행
        System.out.println(&quot;성인 인증 성공! 어른입니다.&quot;);
    } else {
        // 나이가 19세 미만이거나, 나이는 맞는데 민증이 없는(false) 모든 거짓 상황을 처리
        System.out.println(&quot;인증 실패: 미성년자이거나 신분증이 없습니다.&quot;);
    }

	
}
}&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Java/Java 복습</category>
      <author>jamk-diary</author>
      <guid isPermaLink="true">https://jamk-diary.tistory.com/73</guid>
      <comments>https://jamk-diary.tistory.com/73#entry73comment</comments>
      <pubDate>Thu, 25 Jun 2026 18:37:31 +0900</pubDate>
    </item>
  </channel>
</rss>