<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>.java의 개발일기</title>
    <link>https://java119.tistory.com/</link>
    <description>하도 까먹어서 쓰는 개발일기</description>
    <language>ko</language>
    <pubDate>Tue, 14 Apr 2026 02:55:10 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>.java</managingEditor>
    <image>
      <title>.java의 개발일기</title>
      <url>https://tistory1.daumcdn.net/tistory/3257215/attach/177144f5dbf84ac886920791e85ed347</url>
      <link>https://java119.tistory.com</link>
    </image>
    <item>
      <title>[JSTL] &amp;quot;value&amp;quot; does not support runtime expressions 원인과 해결</title>
      <link>https://java119.tistory.com/108</link>
      <description>&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;잘못된 예&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1593606248471&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;%@ taglib uri=&quot;http://java.sun.com/jstl/fmt&quot; prefix=&quot;fmt&quot;%&amp;gt; X


&amp;lt;fmt:formatNumber type=&quot;number&quot; maxFractionDigits=&quot;2&quot; value=&quot;${maxAllowableAmount}&quot; /&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;올바른 예&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1593606284298&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;%@ taglib uri=&quot;http://java.sun.com/jsp/jstl/fmt&quot; prefix=&quot;fmt&quot;%&amp;gt; O


&amp;lt;fmt:formatNumber type=&quot;number&quot; maxFractionDigits=&quot;2&quot; value=&quot;${maxAllowableAmount}&quot; /&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;예시 출처 : stackoverrun.com&lt;/span&gt;&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&quot;value&quot; does not support runtime expressions 메시지에 대한 70% 이상의 원인은 &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;위에 태그라이브러리의 표기를 잘못 작성해서 그렇습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;위에 태그라이브러리(taglib)를 확인해주세요.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;JSP - taglib 종류와 설명&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;a href=&quot;http://www.w3big.com/ko/jsp/jsp-jstl.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;http://www.w3big.com/ko/jsp/jsp-jstl.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>JSP</category>
      <category>&amp;lt;%@ taglib uri=&amp;quot;http://java.sun.com/jsp/jstl/fmt&amp;quot; prefix=&amp;quot;fmt&amp;quot;%&amp;gt;</category>
      <category>JSP does not support runtime expressions</category>
      <category>JSTL does not support runtime expressions</category>
      <category>runtime expressions 원인</category>
      <category>taglib 설명</category>
      <category>taglib 종류</category>
      <category>런타임 노란줄 해결</category>
      <category>런타임 오류</category>
      <author>.java</author>
      <guid isPermaLink="true">https://java119.tistory.com/108</guid>
      <comments>https://java119.tistory.com/108#entry108comment</comments>
      <pubDate>Wed, 1 Jul 2020 21:31:56 +0900</pubDate>
    </item>
    <item>
      <title>[Java] 향상된,개선된 for 문 개념,문법 총 정리</title>
      <link>https://java119.tistory.com/107</link>
      <description>&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;for each문 , 개선된 for문 , 향상된 for문 다양하게 부르지만 &lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;본문에선&amp;nbsp;개선된&amp;nbsp;for문이라&amp;nbsp;명칭&amp;nbsp;하겠습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;&lt;b&gt;개선된 for 문&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;조건&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;1.JDK 1.5 이상&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;2.사용할 변수는 지역변수로 인식된다. (For문 안에서 사용되기 때문)&lt;br /&gt;3. 대상은 배열 or 여러 원소를 포함한 자료형이어야 한다.&lt;/span&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;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;장점&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;1.간편한,가독성&amp;nbsp;좋은&amp;nbsp;코드&lt;br /&gt;2. 배열&amp;nbsp;인덱스&amp;nbsp;문제&amp;nbsp;해결&amp;nbsp;(ArrayIndexOutOfBoundsException&amp;nbsp;예외를&amp;nbsp;피할&amp;nbsp;수&amp;nbsp;있다.)&lt;/span&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;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;단점&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;1.인덱스를&amp;nbsp;사용하지&amp;nbsp;못한다.(일반&amp;nbsp;for문의&amp;nbsp;(int&amp;nbsp;i=0;)&amp;nbsp;할&amp;nbsp;때&amp;nbsp;i 같은&amp;nbsp;인덱스를&amp;nbsp;말하는&amp;nbsp;것)&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;하지만 방법이 있다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #009a87;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;★ 중요 ★&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;2.배열이나&amp;nbsp;ArrayList&amp;nbsp;값을&amp;nbsp;사용할&amp;nbsp;순&amp;nbsp;있지만&amp;nbsp;절대&amp;nbsp;수정할&amp;nbsp;수는&amp;nbsp;없다.&lt;/span&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;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;사용&amp;nbsp;이유&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;배열처럼 여러 원소로 이루어진 집합의 모든 원소에 대해 특정 작업을 반복하기 위해 사용&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;자주 사용되는 상황&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;1.ArrayList&amp;nbsp;원소&amp;nbsp;출력&lt;br /&gt;2.배열&amp;nbsp;원소&amp;nbsp;출력&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;속도&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;일반 for문이 더 빠르다는 소문이 있어서 테스트해봤는데, 제가 해본 결과는 일단 같았습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;일반 for문 == 개선된 for문&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #7e98b1; font-family: 'Noto Serif KR';&quot;&gt;이 부분에 있어서 정확하게 아시는 분은 덧글좀 남겨주세요.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;문법&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;pre id=&quot;code_1593518710348&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;for(자료형 변수명 : 배열명){
	문장
}&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;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;쉽게 설명하면&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1593518793442&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;for(자료형 한 단계 아래의 자료형의 변수명 : 배열명){

}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;정확히 말하면 아래의 자료형이 아니지만 이렇게 생각하면 이해가 쉽더라고요.&lt;/span&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;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;실전 예제 - 일반 배열 원소 추출&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1593519779739&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;String[] arr = {&quot;1-1&quot;,&quot;1-2&quot;,&quot;1-3&quot;,&quot;1-4&quot;,&quot;1-5&quot;};
 		
for(String s : arr) {
		  
 System.out.println(s);
		  
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;결과&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;K-020.png&quot; data-origin-width=&quot;30&quot; data-origin-height=&quot;80&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/D5YUP/btqFgwr8weD/oucVJ9Sp4Hhb5QKTby37gk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/D5YUP/btqFgwr8weD/oucVJ9Sp4Hhb5QKTby37gk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/D5YUP/btqFgwr8weD/oucVJ9Sp4Hhb5QKTby37gk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FD5YUP%2FbtqFgwr8weD%2FoucVJ9Sp4Hhb5QKTby37gk%2Fimg.png&quot; data-filename=&quot;K-020.png&quot; data-origin-width=&quot;30&quot; data-origin-height=&quot;80&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;실전 예제 2 - 이차원 배열 원소 추출&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1593520137619&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;String[][] arr = {{&quot;1-1&quot;,&quot;1-2&quot;,&quot;1-3&quot;,&quot;1-4&quot;,&quot;1-5&quot;},{&quot;2-1&quot;,&quot;2-2&quot;,&quot;2-3&quot;,&quot;2-4&quot;,&quot;2-5&quot;}};
 		
for(String[] arrs : arr) {
	for(String s : arrs) {
		System.out.println(s);
	}
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;결과&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;K-021.png&quot; data-origin-width=&quot;30&quot; data-origin-height=&quot;151&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ekfnhU/btqFfs4P5Zf/CSugiRFBvTno7iGBz9LRWk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ekfnhU/btqFfs4P5Zf/CSugiRFBvTno7iGBz9LRWk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ekfnhU/btqFfs4P5Zf/CSugiRFBvTno7iGBz9LRWk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FekfnhU%2FbtqFfs4P5Zf%2FCSugiRFBvTno7iGBz9LRWk%2Fimg.png&quot; data-filename=&quot;K-021.png&quot; data-origin-width=&quot;30&quot; data-origin-height=&quot;151&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;실전 예제 3 - 삼차원 배열 원소 추출&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1593520430530&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;String[][][] arr = {{{&quot;1-1&quot;,&quot;1-2&quot;,&quot;1-3&quot;,&quot;1-4&quot;,&quot;1-5&quot;},{&quot;2-1&quot;,&quot;2-2&quot;,&quot;2-3&quot;,&quot;2-4&quot;,&quot;2-5&quot;}},
					{{&quot;3-1&quot;,&quot;3-2&quot;,&quot;3-3&quot;,&quot;3-4&quot;,&quot;3-5&quot;},{&quot;4-1&quot;,&quot;4-2&quot;,&quot;4-3&quot;,&quot;4-4&quot;,&quot;4-5&quot;}}};
 		
for(String[][] arrtop : arr) {
	for(String[] arrs : arrtop) {
		for(String s : arrs) {
			System.out.println(s);
		}
	}
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;결과&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;K-022.png&quot; data-origin-width=&quot;25&quot; data-origin-height=&quot;301&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cGX9ij/btqFhmh1oAH/fLcYbeQxzSzf72dwGUHvK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cGX9ij/btqFhmh1oAH/fLcYbeQxzSzf72dwGUHvK1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cGX9ij/btqFhmh1oAH/fLcYbeQxzSzf72dwGUHvK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcGX9ij%2FbtqFhmh1oAH%2FfLcYbeQxzSzf72dwGUHvK1%2Fimg.png&quot; data-filename=&quot;K-022.png&quot; data-origin-width=&quot;25&quot; data-origin-height=&quot;301&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;실전 예제 4 - ArrayList&amp;lt;String&amp;gt; 원소 추출&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1593520711443&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ArrayList&amp;lt;String&amp;gt; arrlist = new ArrayList&amp;lt;String&amp;gt;();
arrlist.add(&quot;1-1&quot;);
arrlist.add(&quot;1-2&quot;);
arrlist.add(&quot;1-3&quot;);
		
for(String s : arrlist) {
			  
  System.out.println(s);
			  
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;결과&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;K-018.png&quot; data-origin-width=&quot;24&quot; data-origin-height=&quot;43&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dNat4A/btqFe2FjGmO/ApxKWv8MSKkcSy7l2SIXPK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dNat4A/btqFe2FjGmO/ApxKWv8MSKkcSy7l2SIXPK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dNat4A/btqFe2FjGmO/ApxKWv8MSKkcSy7l2SIXPK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdNat4A%2FbtqFe2FjGmO%2FApxKWv8MSKkcSy7l2SIXPK%2Fimg.png&quot; data-filename=&quot;K-018.png&quot; data-origin-width=&quot;24&quot; data-origin-height=&quot;43&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;실전 예제 5 - ArrayList&amp;lt;Class&amp;gt; 원소 추출&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1593521159802&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public class Ex001 {

	private String a;
	private int b;
	private int c;
	
	public String getA() {
		return a;
	}
	public void setA(String a) {
		this.a = a;
	}
	public int getB() {
		return b;
	}
	public void setB(int b) {
		this.b = b;
	}
	public int getC() {
		return c;
	}
	public void setC(int c) {
		this.c = c;
	}
}
&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1593521134308&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ArrayList&amp;lt;Ex001&amp;gt; arrlist = new ArrayList&amp;lt;Ex001&amp;gt;();

Ex001 ex01 = new Ex001();
ex01.setA(&quot;a&quot;);
ex01.setB(1);
ex01.setC(2);
arrlist.add(ex01);
		
 for(Ex001 s : arrlist) {
			  
 System.out.println(s.getA());
 System.out.println(s.getB());
 System.out.println(s.getC());
			  
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;결과&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;K-023.png&quot; data-origin-width=&quot;21&quot; data-origin-height=&quot;43&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cey2Ki/btqFfuBz336/F8jK9JuQ2b5fWWBaClnbw0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cey2Ki/btqFfuBz336/F8jK9JuQ2b5fWWBaClnbw0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cey2Ki/btqFfuBz336/F8jK9JuQ2b5fWWBaClnbw0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcey2Ki%2FbtqFfuBz336%2FF8jK9JuQ2b5fWWBaClnbw0%2Fimg.png&quot; data-filename=&quot;K-023.png&quot; data-origin-width=&quot;21&quot; data-origin-height=&quot;43&quot; data-ke-mobilestyle=&quot;widthContent&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;/&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;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>java</category>
      <category>123 배열 원소 추출</category>
      <category>arraylist 배열 문법</category>
      <category>arraylist 원소 추출</category>
      <category>java for each</category>
      <category>개선된 for문</category>
      <category>개선된 for문 문법 개념</category>
      <category>삼차원 배열 for</category>
      <category>이차원 배열 for</category>
      <category>일반 for문과 개선된 for의 차이점</category>
      <category>향상된 for문</category>
      <author>.java</author>
      <guid isPermaLink="true">https://java119.tistory.com/107</guid>
      <comments>https://java119.tistory.com/107#entry107comment</comments>
      <pubDate>Tue, 30 Jun 2020 21:55:02 +0900</pubDate>
    </item>
    <item>
      <title>[Java] String &amp;lt; - &amp;gt; char 변환 총 정리</title>
      <link>https://java119.tistory.com/106</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;1.String&amp;nbsp;to&amp;nbsp;char&amp;nbsp;(String&amp;nbsp;-&amp;gt;&amp;nbsp;char)&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;1-1.charAt() 이용하기&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;문법&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1593431185039&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;String input = &quot;안녕하세요&quot;;
char c = input.charAt(인덱스);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;실전 예시&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1593431277383&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;String krstr = &quot;안녕하세요&quot;;

char c = krstr.charAt(0);

System.out.println(c);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;결과 : 안&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;실전 예시 2&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1593431407542&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;String enstr = &quot;abcdef&quot;;

char c = enstr.charAt(3);

System.out.println(c);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;결과 : d&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;실전 예시 3 - for문을&amp;nbsp;이용하여&amp;nbsp;하나&amp;nbsp;씩&amp;nbsp;반복하며&amp;nbsp;뽑기&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1593431481174&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;String input = &quot;자바킹&quot;;

for(int i=0; i&amp;lt;input.length(); i++) {
System.out.println(input.charAt(i));}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;결과 :&amp;nbsp; 자&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;바&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;킹&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;처음부터 char형으로 쪼개서 넣을 순 없을까?&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;1-2.toCharArray()&amp;nbsp;이용하기&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&lt;b&gt;문법&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1593431717038&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;String input = &quot;안녕하세요&quot;;
char[] arrCh = input.toCharArray();&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;실전 예시 - 개선된 for문을 이용하여 하나 씩 반복하며 뽑기&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1593431852454&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;String input = &quot;안녕하세요&quot;;
char[] arrCh = input.toCharArray();

for(char c : arrCh) {
System.out.println(c);}
&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;※ 공통 주의할 점&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;1.특수문자, 공백도 인덱스에 포함된다는 점&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;예시 : &lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1593432038064&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;String input = &quot;안녕 하세요&quot;;

char c = input.charAt(2);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;결과 : (공백)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;2. 인덱스가 0부터 시작한다는 점&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;예시 :&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1593432141510&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;String input = &quot;안녕하세요&quot;;

char c = input.charAt(0);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;결과 : 안&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;2.char&amp;nbsp;to&amp;nbsp;String&amp;nbsp;(char&amp;nbsp;-&amp;gt;&amp;nbsp;String)&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;2-1.valueOf()&amp;nbsp;이용하기&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;문법&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1593432294046&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;char c = 'a';

String str = String.valueOf(c);
System.out.println(str);&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;결과 : a (type : String)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;실전 예시 - char [] array to String&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1593432614726&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;char[] arrCh = {'a', 'b', 'c' };

String str = String.valueOf(arrCh);
System.out.println(str);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;결과 : abc (type : String)&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;2-2.toString()&amp;nbsp;이용하기&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;문법&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1593432738105&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;char c = 'a';

String str = Character.toString(c);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;결과 : a (type : String)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;※ 주의할 점: Character.toString() 사용 시 char [] 배열은 변환이 불가능합니다.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1593432898287&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;char c = 'a'
char[] arrCh = {'a', 'b', 'c' }; 

Character.toString(c) O
Character.toString(arrCh) X
&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;2-3.&quot;&quot;&amp;nbsp;이용하기&amp;nbsp;(야매식&amp;nbsp;변환)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;문법&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1593433146415&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;char c = 'a';

String str = ch + &quot;&quot;;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #333333; font-family: 'Noto Serif KR';&quot;&gt;결과 : a (type : String)&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;마지막으로..&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;[2-3.&quot;&quot; 이용하기]&lt;/b&gt; 방법이 가장 편해서 저도 많이 쓰고 있는데요.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;실행 속도는 어떨까요? 한번 비교해봤습니다.&lt;/span&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;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;[2-1.valueOf()] vs [&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;2-3.&quot;&quot; 이용하기]&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&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;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;실행 속도 비교 코드&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1593433509984&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public class Ex006 {

	public static void main(String[] args) throws NumberFormatException, IOException {
		
		char ch = 'a';
		
		long startNanoTime = System.nanoTime(); 
        
		int i = 1000000000;
		while(i --&amp;gt; 0) {
        
			String str = String.valueOf(ch); //2-1
			String str = ch+&quot;&quot;; //2-3
            //하나씩 넣고 컴파일을 진행하였습니다.
			
		}
		
		long secDiffTime = (System.nanoTime() - startNanoTime) / 1000000000;
		System.out.println(secDiffTime);
		
	}
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;[2-1.valueOf()] 속도&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&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;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;일반 결과 : 0초&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;배열 결과 : 5초&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&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;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;[&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;2-3.&quot;&quot; 이용하기] 속도&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&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;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;일반 결과 : 20초&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;배열 결과 : 74초&lt;/b&gt;&lt;/span&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;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;간단한 코드에 이런 차이면 좀 더 복잡할수록 많이 차이 날 거 같습니다. &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;되도록이면 valueOf()를 사용하시는 걸 추천드립니다.&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&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;&amp;nbsp;&lt;/p&gt;</description>
      <category>java</category>
      <category>char to String</category>
      <category>char 문자열로 변환</category>
      <category>char 변환</category>
      <category>Convert character to string</category>
      <category>Convert string to character</category>
      <category>String to char</category>
      <category>String 변환</category>
      <category>String 캐릭터형으로 변환</category>
      <category>valueOf &amp;quot;&amp;quot; 속도 비교</category>
      <category>문자열 메서드</category>
      <author>.java</author>
      <guid isPermaLink="true">https://java119.tistory.com/106</guid>
      <comments>https://java119.tistory.com/106#entry106comment</comments>
      <pubDate>Mon, 29 Jun 2020 21:34:38 +0900</pubDate>
    </item>
    <item>
      <title>[Java] while(variable-- &amp;gt; 0) 개념 및 문법 정리</title>
      <link>https://java119.tistory.com/105</link>
      <description>&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;개념&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;주로 알고리듬이나 어떠한 기능을 만들 때, while문을 쓰게 되는데요.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;while문 조건에 자주 나오게 되는 녀석이 바로 while(variable-- &amp;gt; 0)입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;여기서 '-- &amp;gt;'가 헷갈릴 수도 있는데요. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;variable--; &lt;span style=&quot;color: #333333;&quot;&gt;variable &amp;gt; 0; 이 두 가지를&amp;nbsp;합쳐놓은 것입니다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;0 보다 &lt;span style=&quot;color: #333333;&quot;&gt;조건 값을 뺀 값이 클 경우, 즉 -- (증감 연산자)와&lt;span style=&quot;color: #333333;&quot;&gt; &amp;gt; (꺾쇠괄호)를 합쳐 놓은 형태인 거죠.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;예시&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;pre id=&quot;code_1588765256961&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;int T = 3;
int cnt = 10;
		
while(T-- &amp;gt; 0) {
	System.out.println(cnt--+&quot; 루프 : &quot;+T);
			
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;결과&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;1.PNG&quot; data-origin-width=&quot;215&quot; data-origin-height=&quot;93&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bqG1pb/btqDVdBFuSd/SajQJze6ahXJYh9nBE4sQ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bqG1pb/btqDVdBFuSd/SajQJze6ahXJYh9nBE4sQ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bqG1pb/btqDVdBFuSd/SajQJze6ahXJYh9nBE4sQ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbqG1pb%2FbtqDVdBFuSd%2FSajQJze6ahXJYh9nBE4sQ1%2Fimg.png&quot; data-filename=&quot;1.PNG&quot; data-origin-width=&quot;215&quot; data-origin-height=&quot;93&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;설명&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;1. 해당 루프에서 T를 1 씩 줄입니다. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp; &amp;nbsp; 즉, 루프가 돌 때마다 T가 1씩 줄게 되고 줄은 값이 0보다 클 경우에만 돌게 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp; &amp;nbsp; 그러니 T 변수의 값이 3이니 3번 돌고 끝나게 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;실전 예제&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;입력 값에 따른 라인 출력&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1588766437439&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		
		int tcode = Integer.parseInt(bf.readLine()); 

		while (tcode-- &amp;gt; 0) {
			String testStr = bf.readLine() + &quot;\n&quot;;
		}&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #009a87;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;마지막으로 while 문을 사용할 땐 항상 무한루프에 주의합시다.&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>java</category>
      <category>BufferedReader</category>
      <category>loop</category>
      <category>While</category>
      <category>while expression</category>
      <category>while 알고리즘 알고리듬</category>
      <category>while 예제</category>
      <category>while 조건</category>
      <category>while 표현식</category>
      <category>while(var-- &amp;gt; 0)</category>
      <category>증감 연산자</category>
      <author>.java</author>
      <guid isPermaLink="true">https://java119.tistory.com/105</guid>
      <comments>https://java119.tistory.com/105#entry105comment</comments>
      <pubDate>Wed, 6 May 2020 21:22:13 +0900</pubDate>
    </item>
    <item>
      <title>[Java] MD5,SHA-256,AES-128,3DES (4가지 암호화) 문법 총 정리</title>
      <link>https://java119.tistory.com/104</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;MD5 (Message-Digest algorithm 5)&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;코드&lt;span style=&quot;color: #333333;&quot;&gt;(소스)&lt;/span&gt; 보기&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;pre id=&quot;code_1588254831908&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class MD5Util {

		public static String encrypt(String str){

			String MD5 = &quot;&quot;; 

			try{

				MessageDigest md = MessageDigest.getInstance(&quot;MD5&quot;); 

				md.update(str.getBytes()); 

				byte byteData[] = md.digest();

				StringBuffer sb = new StringBuffer(); 

				for(int i = 0 ; i &amp;lt; byteData.length ; i++){

					sb.append(Integer.toString((byteData[i]&amp;amp;0xff) + 0x100, 16).substring(1));

				}

				MD5 = sb.toString();

				

			}catch(NoSuchAlgorithmException e){

				e.printStackTrace(); 

				MD5 = null; 

			}

			return MD5;

		}

}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;사용법&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1588255095415&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public String util() {
		String str = &quot;자바킹&quot;;
		String md5_en = MD5Util.encrypt(str);

		System.out.println(&quot;MD 5 암호화 : &quot;+md5_en);//MD5 암호화
		return str;
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;SHA-256 &lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;(&lt;/span&gt;Secure Hash Algorithm 256)&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;코드(소스) 보기&lt;/span&gt;&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;pre id=&quot;code_1588254884078&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import java.security.MessageDigest;

public class SHA256Util {

	public static String encrypt(String planText) {
		try {
			MessageDigest md = MessageDigest.getInstance(&quot;SHA-256&quot;);
			md.update(planText.getBytes());
			byte byteData[] = md.digest();
			StringBuffer sb = new StringBuffer();
			for (int i = 0; i &amp;lt; byteData.length; i++) {
				sb.append(Integer.toString((byteData[i] &amp;amp; 0xff) + 0x100, 16).substring(1));
			}
			StringBuffer hexString = new StringBuffer();
			for (int i = 0; i &amp;lt; byteData.length; i++) {
				String hex = Integer.toHexString(0xff &amp;amp; byteData[i]);
				if (hex.length() == 1) {
					hexString.append('0');
				}
				hexString.append(hex);
			}
			return hexString.toString();
		} catch (Exception e) {
			e.printStackTrace();
			throw new RuntimeException();
		}
	}
	
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333; font-family: 'Noto Serif KR';&quot;&gt;사용법&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1588255210845&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public String util() {
		String str = &quot;자바킹&quot;;
		String sha256_en = SHA256Util.encrypt(str);

		System.out.println(&quot;SHA 256 암호화 : &quot;+sha256_en);
		return str;
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;AES-128 (Advanced Encryption Standard 128)&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;코드(소스) 보기&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;pre id=&quot;code_1588255382133&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;

import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;

public class AES128Util {

    public static String encrypt(String input, String key) {
        byte[] crypted = null;
        try {
 
            SecretKeySpec skey = new SecretKeySpec(key.getBytes(), &quot;AES&quot;);
 
            Cipher cipher = Cipher.getInstance(&quot;AES/ECB/PKCS5Padding&quot;);
            cipher.init(Cipher.ENCRYPT_MODE, skey);
            crypted = cipher.doFinal(input.getBytes());
        } catch(Exception e) {
            System.out.println(e.toString());
        }
 
        BASE64Encoder encoder = new BASE64Encoder();
 
        String str = encoder.encode(crypted);
 
        return new String(str);
    }
 
    public static String decrypt(String input, String key) {
        byte[] output = null;
        try {
            BASE64Decoder decoder = new BASE64Decoder();
 
            SecretKeySpec skey = new SecretKeySpec(key.getBytes(), &quot;AES&quot;);
 
            Cipher cipher = Cipher.getInstance(&quot;AES/ECB/PKCS5Padding&quot;);
            cipher.init(Cipher.DECRYPT_MODE, skey);
            output = cipher.doFinal(decoder.decodeBuffer(input));
 
        } catch(Exception e) {
            System.out.println(e.toString());
        }
        return new String(output);
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333; font-family: 'Noto Serif KR';&quot;&gt;사용법&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1588255498605&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public String util() {
		String str = &quot;자바킹&quot;;
		String aes128key = &quot;123456789abcdefg&quot;; //사용자 지정 생성
		
		String aes_en = AES128Util.encrypt(str,aes128key);
		String aes_de = AES128Util.decrypt(aes_en,aes128key);

		System.out.println(&quot;AES 128 암호화 : &quot;+aes_en);//AES128 암호화
		System.out.println(&quot;AES 128 복호화 : &quot;+aes_de);//AES128 복호화
		return str;
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;3 DES (&lt;span style=&quot;color: #000000;&quot;&gt;Triple Data Encryption Algorithm)&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;코드(소스) 보기&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;pre id=&quot;code_1588255645429&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import java.security.Key;
import java.security.NoSuchAlgorithmException;
 
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
 
public class DES3Util {
   
   
   private static Key key = null;
     
    static {
     if(key == null) {
      // Key 초기화
     KeyGenerator keyGenerator;
      try {
       keyGenerator = KeyGenerator.getInstance(&quot;TripleDES&quot;);
       keyGenerator.init(168);
       key = keyGenerator.generateKey();
      } catch (NoSuchAlgorithmException e) {
       e.printStackTrace();
      }
     }
    }
     
    public static String encrypt(String inStr) {
     StringBuffer sb = null;
     try {
      Cipher cipher = Cipher.getInstance(&quot;TripleDES/ECB/PKCS5Padding&quot;);
      cipher.init(Cipher.ENCRYPT_MODE, key);
      byte[] plaintext = inStr.getBytes(&quot;UTF8&quot;);
      byte[] ciphertext = cipher.doFinal(plaintext);
       
      sb = new StringBuffer(ciphertext.length * 2);
      for(int i = 0; i &amp;lt; ciphertext.length; i++) {
       String hex = &quot;0&quot; + Integer.toHexString(0xff &amp;amp; ciphertext[i]);
       sb.append(hex.substring(hex.length()-2));
      }
     }catch(Exception e) {
      e.printStackTrace();
     }
     return sb.toString();
    }
     
    public static String decrypt(String inStr) {
     String text = null;
     try {
      byte[] b = new byte[inStr.length()/2];
      Cipher cipher = Cipher.getInstance(&quot;TripleDES/ECB/PKCS5Padding&quot;);
      cipher.init(Cipher.DECRYPT_MODE, key);
      for(int i = 0; i &amp;lt; b.length; i++) {
       b[i] = (byte)Integer.parseInt(inStr.substring(2*i, 2*i+2), 16);
      }
      byte[] decryptedText = cipher.doFinal(b);
      text = new String(decryptedText,&quot;UTF8&quot;);
     }catch(Exception e) {
      e.printStackTrace();
     }
     return text;
    }
   
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333; font-family: 'Noto Serif KR';&quot;&gt;사용법&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1588255733220&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public String util() {
		String str = &quot;자바킹&quot;;
		
        	String des3_en = DES3Util.encrypt(str);
		String des3_de = DES3Util.decrypt(des3_en);

		System.out.println(&quot;3DES 암호화 : &quot;+des3_en); //DES3 암호화
		System.out.println(&quot;3DES 복호화 : &quot;+des3_de); //DES3 복호화
		return str;
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&quot;자바킹&quot; 문자열 암호화 종류별 결과&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;55.PNG&quot; data-origin-width=&quot;590&quot; data-origin-height=&quot;93&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c21wHz/btqDQ86Cl5Z/rRhoa2atyMf6wA2yy9uzsk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c21wHz/btqDQ86Cl5Z/rRhoa2atyMf6wA2yy9uzsk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c21wHz/btqDQ86Cl5Z/rRhoa2atyMf6wA2yy9uzsk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc21wHz%2FbtqDQ86Cl5Z%2FrRhoa2atyMf6wA2yy9uzsk%2Fimg.png&quot; data-filename=&quot;55.PNG&quot; data-origin-width=&quot;590&quot; data-origin-height=&quot;93&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>java</category>
      <category>AES128</category>
      <category>Encryption Decrypt</category>
      <category>Java Encryption Decrypt</category>
      <category>Java encryption list</category>
      <category>Java encryption syntax</category>
      <category>JAVA MD5 3DES</category>
      <category>Java 암호화 decrypt</category>
      <category>Java 암호화 encrypt</category>
      <category>Java 암호화 종류별</category>
      <category>SHA256</category>
      <author>.java</author>
      <guid isPermaLink="true">https://java119.tistory.com/104</guid>
      <comments>https://java119.tistory.com/104#entry104comment</comments>
      <pubDate>Thu, 30 Apr 2020 23:15:59 +0900</pubDate>
    </item>
    <item>
      <title>[MyBatis] 동적 쿼리 &amp;lt;trim&amp;gt; 개념 및 문법 총 정리</title>
      <link>https://java119.tistory.com/103</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&amp;lt;trim&amp;gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;속성&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;prefix : 실행될 쿼리의 &lt;b&gt;&amp;lt;trim&amp;gt; &lt;/b&gt;문 안에 쿼리 가장 앞에 붙여준다.&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1588234734702&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;UPDATE board &amp;lt;trim prefix=&quot;SET&quot;&amp;gt; username=#{username},password=#{password}&amp;lt;/trim&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;prefixOverrides : 실행될 쿼리의 &amp;lt;trim&amp;gt; 문 안에 쿼리 가장 앞에 해당하는 문자들이 있으면 자동으로 지워준다.&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1588234850653&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM board WHERE id = #{id} 
&amp;lt;trim prefixOverrides=&quot;OR&quot;&amp;gt;OR TT LIKE '%' || #{searchContent} || '%' &amp;lt;/if&amp;gt; &lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;suffix : 실행 될 쿼리의 &lt;b&gt;&amp;lt;trim&amp;gt; &lt;/b&gt;문 안에 쿼리 가장 뒤에 붙여준다.&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1588234874133&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;trim suffix=&quot;)&quot;&amp;gt;&amp;lt;/trim&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;suffixOverrides : 실행될 쿼리의 &lt;b&gt;&amp;lt;trim&amp;gt; &lt;/b&gt;문 안에 쿼리 가장 뒤에 해당하는 문자들이 있으면 자동으로 지워준다.&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1588234889797&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;trim suffixOverrides=&quot;,&quot;&amp;gt;&amp;lt;/trim&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;문법&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;pre id=&quot;code_1588234961837&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;select id=&quot;test&quot; resultType=&quot;user&quot;&amp;gt;
SELECT * FROM user WHERE id = #{id}  
&amp;lt;trim prefix=&quot;AND (&quot; prefixOverrides=&quot;OR&quot; suffix=&quot;)&quot;&amp;gt;
        &amp;lt;if test=&quot;para1 != null&quot;&amp;gt;
        OR para1 = #{data1}
        &amp;lt;/if&amp;gt;
        &amp;lt;if test=&quot;para2 != null&quot;&amp;gt;
        OR para2 = #{data2}
        &amp;lt;/if&amp;gt;
&amp;lt;/trim&amp;gt;
&amp;lt;/select&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;설명&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;0.&amp;lt;trim prefix=&quot;AND (&quot; prefixOverrides=&quot;OR&quot; suffix=&quot;)&quot;&amp;gt; 이 부분을 해석하자면&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;1. 먼저 prefix 속성이 'AND'로 돼있기 때문에 맨 앞에 'AND'가 붙습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;2.prefixOverrides 속성이 쿼리 중에 'OR' 텍스트를 찾고, 찾게 되면 'OR' 텍스트를 제거합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;3. 그리고 suffix 속성이 &amp;lt;trim&amp;gt; 문 맨 마지막에 ')'를 닫아줍니다.&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&lt;b&gt;실행될 쿼리 (para1, para2 값이 들어올 경우)&lt;br /&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1588236825411&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM user WHERE id = '119'
AND para1 = 'java119' OR para2 = 'java119' &lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;실전&amp;nbsp;예제&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;prefix, suffixOverrides 사용 예시&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;1. 맨 앞에 'SET' 붙이고 맨 끝에 있는 콤마(,)를 제거하기&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1588235038677&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;update id=&quot;updateUser&quot;&amp;gt;
UPDATE user
	&amp;lt;trim prefix=&quot;SET&quot; suffixOverrides=&quot;,&quot;&amp;gt;
		&amp;lt;if test=&quot;username != null&quot;&amp;gt;username=#{username},&amp;lt;/if&amp;gt;
		&amp;lt;if test=&quot;password != null&quot;&amp;gt;password=#{password},&amp;lt;/if&amp;gt;
		&amp;lt;if test=&quot;email != null&quot;&amp;gt;email=#{email},&amp;lt;/if&amp;gt;
		&amp;lt;if test=&quot;bio != null&quot;&amp;gt;bio=#{bio},&amp;lt;/if&amp;gt;
	&amp;lt;/trim&amp;gt;
WHERE id=#{id}
&amp;lt;/update&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;prefix, prefixOverrides&amp;nbsp;사용&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;2.&amp;nbsp;맨&amp;nbsp;앞에&amp;nbsp;있는&amp;nbsp;연산자를(AND&amp;nbsp;또는&amp;nbsp;OR)&amp;nbsp;제거하는&amp;nbsp;경우&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1588235784763&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;select id=&quot;selectInfo&quot; resultType=&quot;user&quot;&amp;gt;
	 SELECT * FROM USER
	 &amp;lt;trim prefix=&quot;WHERE&quot; prefixOverrides=&quot;AND |OR&quot;&amp;gt;
		&amp;lt;if test=&quot;username != null&quot;&amp;gt;AND username=#{username}&amp;lt;/if&amp;gt;
		&amp;lt;if test=&quot;password != null&quot;&amp;gt;OR password=#{password}&amp;lt;/if&amp;gt;
		&amp;lt;if test=&quot;email != null&quot;&amp;gt;AND email=#{email}&amp;lt;/if&amp;gt;
	&amp;lt;/trim&amp;gt;
&amp;lt;/select&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;prefix, prefixOverrides, suffixOverrides 사용&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;3. 맨 앞에 'SET' 붙이고 맨 앞, 맨&lt;span style=&quot;color: #333333;&quot;&gt; 끝에 있는 콤마(,)를 제거하기&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1588235352588&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;update id=&quot;updateTable&quot;&amp;gt;
	UPDATE TABLE
	&amp;lt;trim prefix=&quot;SET&quot; prefixOverrides=&quot;,&quot; suffixOverrides=&quot;,&quot; &amp;gt;
		&amp;lt;if test=&quot;aFlag != null&quot;&amp;gt;
			, A_FLAG = #{aFlag}
		&amp;lt;/if&amp;gt;

		&amp;lt;if test=&quot;bFlag != null&quot;&amp;gt;
			, B_FLAG = #{bFlag}
		&amp;lt;/if&amp;gt;

		&amp;lt;if test=&quot;cFlag != null&quot;&amp;gt;
			, C_FLAG = #{cFlag} ,
		&amp;lt;/if&amp;gt;
	&amp;lt;/trim&amp;gt;
	WHERE KEY = #{key}
&amp;lt;/update&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;prefix, prefixOverrides, suffix&amp;nbsp;사용&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;4. 맨 앞에 'AND (' 붙이고 맨 앞 'OR' 제거하고 맨 끝에 ')' 붙이기&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1588235597012&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;select id=&quot;searchUser&quot;&amp;gt;

&amp;lt;trim prefix=&quot;AND (&quot; prefixOverrides=&quot;OR&quot; suffix=&quot;)&quot;&amp;gt;
 &amp;lt;if test=&quot;searchCategory0 != null&quot;&amp;gt; 
  OR TT LIKE '%' || #{searchContent} || '%' 
 &amp;lt;/if&amp;gt;  
 &amp;lt;if test=&quot;searchCategory1 != null&quot;&amp;gt; 
  OR DS LIKE '%' || #{searchContent} || '%' 
  &amp;lt;/if&amp;gt;
  &amp;lt;if test=&quot;searchCategory2 != null&quot;&amp;gt; 
   OR WRT_MPR_NM LIKE '%' || #{searchContent} || '%' 
  &amp;lt;/if&amp;gt;
&amp;lt;/trim&amp;gt;
&amp;lt;/select&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Spring/MyBatis</category>
      <category>MyBatis trim</category>
      <category>MyBatis trim prefix</category>
      <category>MyBatis trim prefixOverrides</category>
      <category>MyBatis trim suffix</category>
      <category>MyBatis trim suffixOverrides</category>
      <category>MyBatis trim 속성</category>
      <category>MyBatis 개념 trim</category>
      <category>trim</category>
      <category>trim 개념</category>
      <category>trim 사용법 문법</category>
      <author>.java</author>
      <guid isPermaLink="true">https://java119.tistory.com/103</guid>
      <comments>https://java119.tistory.com/103#entry103comment</comments>
      <pubDate>Thu, 30 Apr 2020 18:03:21 +0900</pubDate>
    </item>
    <item>
      <title>[MyBatis] 개발 생산성 향상,중복 쿼리 줄이기 &amp;lt;sql&amp;gt;,&amp;lt;include&amp;gt; 개념 및 문법 총 정리</title>
      <link>https://java119.tistory.com/102</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&amp;lt;sql&amp;gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;개념&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;다른&amp;nbsp;구문에서&amp;nbsp;재사용하기&amp;nbsp;위한&amp;nbsp;SQL&amp;nbsp;조각&lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;출처&amp;nbsp;:&amp;nbsp;mybatis&amp;nbsp;공식&amp;nbsp;사이트&lt;/span&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;말&amp;nbsp;그대롭니다.&amp;nbsp;&quot;재사용성을&amp;nbsp;높이기 위한&amp;nbsp;SQL&amp;nbsp;조각&quot;&amp;nbsp;아주&amp;nbsp;정확한&amp;nbsp;표현입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;조건&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;1.id 속성 값이 필수입니다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;2.사용하려는 태그보다 먼저 선언되어야 합니다.(위에 존재해야 합니다.)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;문법&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;pre id=&quot;code_1588158911431&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;sql id=&quot;userColumns&quot;&amp;gt; ${alias}.id,${alias}.username,${alias}.password &amp;lt;/sql&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&amp;lt;include&amp;gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;lt;property&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;개념&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;lt;sql&amp;gt; 문을 DML(&lt;span style=&quot;color: #333333;&quot;&gt;Data Manipulation Language)&lt;/span&gt; 태그에 삽입하는 기술&lt;/span&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;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;문법&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;pre id=&quot;code_1588159989502&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;select,insert,update,delete&amp;gt;

&amp;lt;include refid=&quot;&amp;lt;sql&amp;gt; id&quot;&amp;gt;&amp;lt;property name=&quot;&amp;lt;sql&amp;gt; property&quot; value=&quot;&quot;/&amp;gt;&amp;lt;/include&amp;gt;

&amp;lt;/select,insert,update,delete&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&amp;lt;sql&amp;gt; + &amp;lt;include&amp;gt;&amp;lt;property&amp;gt; 설명&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1588166569398&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//no property 
&amp;lt;sql id=&quot;example01&quot;&amp;gt;
  FROM
&amp;lt;/sql&amp;gt;

//property 한개 작성
&amp;lt;sql id=&quot;example02&quot;&amp;gt;
  FROM ${alias(별칭)}
&amp;lt;/sql&amp;gt;

//property 여러 개 작성
&amp;lt;sql id=&quot;example03&quot;&amp;gt;
  FROM ${alias(별칭)} WHERE id = ${alias02(별칭)}
&amp;lt;/sql&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1588166695198&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;select id=&quot;selectUser&quot; resultType=&quot;User&quot;&amp;gt;
SELECT id,name
&amp;lt;include refid=&quot;example03&quot;&amp;gt;
  &amp;lt;property name=&quot;alias&quot; value=&quot;tablename&quot;/&amp;gt;
  &amp;lt;property name=&quot;alias02&quot; value=&quot;119&quot;/&amp;gt;
&amp;lt;/include&amp;gt;
&amp;lt;/select&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;실행될 쿼리&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1588167775116&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT id,name FROM tablename WHERE id = 119&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;설명&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;0.&amp;lt;sql&amp;gt; 문에는 parameter를 넘길 수 없으므로 property를 사용한다. ex) ${alias},${tablename}..&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;1. &amp;lt;sql&amp;gt; id 속성 == &amp;lt;include&amp;gt; refid 속성&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;2. &amp;lt;sql&amp;gt; ${alias(별칭)} == &amp;lt;property&amp;gt; name 속성&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;3. &amp;lt;property&amp;gt; value 속성 : ${alias}에 들어갈 값&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;이 네가지만 기억하시면 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&amp;lt;sql&amp;gt; + &amp;lt;include&amp;gt; 실전 예제&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;☞ 참고 : &amp;lt;sql&amp;gt; property는 꼭 $로 작성하셔야 합니다.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;☞ 참고 02 : &amp;lt;sql&amp;gt; 문에선 property 를 &amp;lt;if&amp;gt; , &amp;lt;bind&amp;gt; 태그에 변수로 인식하지 못합니다.&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;1.Table 문법 &lt;b&gt;재사용&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1588161556234&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;sql id=&quot;returnTable&quot;&amp;gt;
  from ${tableproperty}
&amp;lt;/sql&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1588161576336&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;include refid=&quot;returnTable&quot;&amp;gt;
  &amp;lt;property name=&quot;tableproperty&quot; value=&quot;tablename&quot;/&amp;gt;
&amp;lt;/include&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;2.&lt;b&gt;JOIN문 활용 (&lt;/b&gt;MyBatis 공식 사이트 예제)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1588161684544&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;sql id=&quot;userColumns&quot;&amp;gt; ${alias}.id,${alias}.username,${alias}.password &amp;lt;/sql&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1588161699935&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;select id=&quot;selectUsers&quot; resultType=&quot;map&quot;&amp;gt;
  select
    &amp;lt;include refid=&quot;userColumns&quot;&amp;gt;&amp;lt;property name=&quot;alias&quot; value=&quot;t1&quot;/&amp;gt;&amp;lt;/include&amp;gt;,
    &amp;lt;include refid=&quot;userColumns&quot;&amp;gt;&amp;lt;property name=&quot;alias&quot; value=&quot;t2&quot;/&amp;gt;&amp;lt;/include&amp;gt;
  from some_table t1
    cross join some_table t2
&amp;lt;/select&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;3.SELECT 칼럼 문법 재사용&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1588161955545&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;sql id=&quot;common_select_table&quot;&amp;gt;id, name, age&amp;lt;/sql&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1588161995360&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;select id=&quot;getMemberInfo&quot;&amp;gt;
    SELECT
        &amp;lt;include refid=&quot;common_select_table&quot; /&amp;gt;
    FROM
        TABLE
&amp;lt;/select&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;4.INSERT 문 활용&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1588168434241&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;sql id=&quot;board_columns&quot;&amp;gt;
    ${alias}id,
    ${alias}subject,
    ${alias}context,
    ${alias}attachments,
    ${alias}likes,
    ${alias}views,
    ${alias}create_time,
    ${alias}update_time,
    ${alias}writer
&amp;lt;/sql&amp;gt;

&amp;lt;insert id=&quot;insertBoard&quot;&amp;gt;
    INSERT INTO BOARD (
           &amp;lt;include refid=&quot;board_columns&quot;&amp;gt;&amp;lt;property name=&quot;alias&quot; value=&quot;&quot;/&amp;gt;&amp;lt;/include&amp;gt;
         ) VALUES (
          #{id},
          #{subject},
          #{context},
          #{attachments},
          #{likes},
          #{views},
          now(),
          null,
          #{writer} )
&amp;lt;/insert&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;외부 SQL-Mapper.xml + &amp;lt;include&amp;gt; 사용하기&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;span&gt;&lt;b&gt;board-Mapper.xml 에서 common-Mapper.xml &amp;lt;sql&amp;gt; 사용(접근) 하기&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;common-Mapper.xml&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1588165582697&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;mapper namespace=&quot;mapper.common-Mapper&quot;&amp;gt;

&amp;lt;sql id=&quot;board_col&quot;&amp;gt;
${alias}id,
${alias}subject,
${alias}context
&amp;lt;/sql&amp;gt;

&amp;lt;/mapper&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;board-Mapper.xml&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1588165599505&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;select id=&quot;selectUser&quot;&amp;gt;
    SELECT &amp;lt;include refid=&quot;mapper.common-Mapper.board_col&quot;&amp;gt;
    &amp;lt;property name=&quot;alias&quot; value=&quot;b.&quot;/&amp;gt;&amp;lt;/include&amp;gt;
      FROM board b
&amp;lt;/select&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;설명&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;사용 할 외부 Mapper.xml에 namespace.&amp;lt;sql&amp;gt; id로 가져오면 됩니다.&lt;/span&gt;&lt;/p&gt;</description>
      <category>Spring/MyBatis</category>
      <category>include 개념</category>
      <category>include 사용법 문법</category>
      <category>MyBatis include property 사용법</category>
      <category>MyBatis include 사용법 문법</category>
      <category>MyBatis sql include if bind 태그</category>
      <category>MyBatis sql include property 사용법</category>
      <category>MyBatis sql 문법 사용법</category>
      <category>sql 개념</category>
      <category>sql 사용법 문법</category>
      <category>외부 SQL.xml 사용법</category>
      <author>.java</author>
      <guid isPermaLink="true">https://java119.tistory.com/102</guid>
      <comments>https://java119.tistory.com/102#entry102comment</comments>
      <pubDate>Wed, 29 Apr 2020 23:02:34 +0900</pubDate>
    </item>
    <item>
      <title>[Spring] 절대경로와 상대경로(feat.${pageContext.request.contextPath})</title>
      <link>https://java119.tistory.com/101</link>
      <description>&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;먼저&amp;nbsp;절대&amp;nbsp;경로, 상대&amp;nbsp;경로를&amp;nbsp;설명하기&amp;nbsp;전&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;학창 시절로 가서 절대 평가, 상대 평가를 생각하면서 이 글을 보면 이해가 쉽습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;절대 경로&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;개념&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;최초의 시작점으로 경유한 경로를 전부 기입하는 방식&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333; font-family: 'Noto Serif KR';&quot;&gt;경로의&amp;nbsp;처음부터&amp;nbsp;마지막까지&amp;nbsp;완전히&amp;nbsp;적힌&amp;nbsp;경로&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;어떠한 웹페이지나 파일이 가지고 있는 고유한 경로&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;최상위&amp;nbsp;디렉토리가&amp;nbsp;반드시&amp;nbsp;포함된&amp;nbsp;경로&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;실전&amp;nbsp;예시&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333; font-family: 'Noto Serif KR';&quot;&gt;Browser&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;http://www.google.com&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;Windows&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;C:\chrome\chrome_shutdown_ms.txt&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;Linux&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;cd&amp;nbsp;$CATALINA_HOME/bin/&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;윈도(Windows) 절대 경로&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333; font-family: 'Noto Serif KR';&quot;&gt;C:\chrome\&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;22.PNG&quot; data-origin-width=&quot;877&quot; data-origin-height=&quot;536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dfeWFn/btqDO10Du3x/lFHkHKHHa6L8pVB1NuB9rK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dfeWFn/btqDO10Du3x/lFHkHKHHa6L8pVB1NuB9rK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dfeWFn/btqDO10Du3x/lFHkHKHHa6L8pVB1NuB9rK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdfeWFn%2FbtqDO10Du3x%2FlFHkHKHHa6L8pVB1NuB9rK%2Fimg.png&quot; data-filename=&quot;22.PNG&quot; data-origin-width=&quot;877&quot; data-origin-height=&quot;536&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;/&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;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;Spring 절대 경로&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&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 alignLeft&quot; data-filename=&quot;11.PNG&quot; data-origin-width=&quot;257&quot; data-origin-height=&quot;309&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bY9Gxg/btqDNooIyWo/UT80kphe65tREDbDOWJM41/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bY9Gxg/btqDNooIyWo/UT80kphe65tREDbDOWJM41/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bY9Gxg/btqDNooIyWo/UT80kphe65tREDbDOWJM41/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbY9Gxg%2FbtqDNooIyWo%2FUT80kphe65tREDbDOWJM41%2Fimg.png&quot; data-filename=&quot;11.PNG&quot; data-origin-width=&quot;257&quot; data-origin-height=&quot;309&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;servlet-context.xml&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1588080500885&quot; class=&quot;html xml&quot; style=&quot;display: block; overflow: auto; padding: 15px; color: #383a42; background: #f6f7f8; font-size: 14px; border-radius: 3px; font-family: Menlo, Consolas, Monaco, monospace; border: 1px solid #dddddd; margin: 20px auto 0px; cursor: default; z-index: 1; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;resources mapping=&quot;/resources/**&quot; location=&quot;/resources/&quot; /&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;JSP&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1588080486292&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;img alt=&quot;Cat pictures&quot; src=&quot;/resources/img/cat01.jpg&quot;&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;결과&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;33.PNG&quot; data-origin-width=&quot;437&quot; data-origin-height=&quot;355&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eshCqS/btqDKpo46VY/7h1Do1uuhgNhMgbJToPNP1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eshCqS/btqDKpo46VY/7h1Do1uuhgNhMgbJToPNP1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eshCqS/btqDKpo46VY/7h1Do1uuhgNhMgbJToPNP1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeshCqS%2FbtqDKpo46VY%2F7h1Do1uuhgNhMgbJToPNP1%2Fimg.png&quot; data-filename=&quot;33.PNG&quot; data-origin-width=&quot;437&quot; data-origin-height=&quot;355&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;상대&amp;nbsp;경로&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;개념&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;현재 위치한 곳을 기준&lt;/b&gt;으로 해서 &lt;b&gt;목표로 하는&lt;/b&gt; &lt;b&gt;(파일이 있는 곳) 위치&lt;/b&gt;이다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;상대 경로는 항상 비교할 대상이 있어야 합니다. &lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;결국 내가 어디있냐에 따라 경로가 달라지는 것!&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;내 위치와 파일 경로를 비교하는 것! (상대평가처럼)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;현재&amp;nbsp;디렉터리(비교&amp;nbsp;대상)를&amp;nbsp;기준으로&amp;nbsp;작성된&amp;nbsp;경로&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;실전 예시&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;예시 URL : http://localhost:8080/project 01/abc.jsp&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;Spring 상대 경로&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;servlet-context.xml&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1588082022537&quot; class=&quot;html xml&quot; style=&quot;display: block; overflow: auto; padding: 15px; color: #383a42; background: #f6f7f8; font-size: 14px; border-radius: 3px; font-family: Menlo, Consolas, Monaco, monospace; border: 1px solid #dddddd; margin: 20px auto 0px; cursor: default; z-index: 1; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;resources mapping=&quot;/resources/**&quot; location=&quot;/resources/&quot; /&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;JSP&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;${pageContext.request.contextPath} : 내 현재 위치 ( EL(Expression Language) 사용 )&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587996958509&quot; class=&quot;html xml&quot; style=&quot;display: block; overflow: auto; padding: 15px; color: #383a42; background: #f6f7f8; font-size: 14px; border-radius: 3px; font-family: Menlo, Consolas, Monaco, monospace; border: 1px solid #dddddd; margin: 20px auto 0px; cursor: default; z-index: 1; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;img src=&quot;${pageContext.request.contextPath}/resources/img/cat01.png&quot; /&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;결과&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;437&quot; data-origin-height=&quot;355&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eshCqS/btqDKpo46VY/7h1Do1uuhgNhMgbJToPNP1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eshCqS/btqDKpo46VY/7h1Do1uuhgNhMgbJToPNP1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eshCqS/btqDKpo46VY/7h1Do1uuhgNhMgbJToPNP1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeshCqS%2FbtqDKpo46VY%2F7h1Do1uuhgNhMgbJToPNP1%2Fimg.png&quot; data-origin-width=&quot;437&quot; data-origin-height=&quot;355&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;설명&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;${pageContext.request.contextPath} 사용함으로 써 상대 경로 즉, 내 위치에 따라 값이 변하던 게 고정이 된다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;정확히 말하면 고정이 아니라 알아서 위치를 찾아서 맞춰주는 겁니다.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;예를 들면 부모 폴더에 접근하려면 ../resources/img/cat01.png 이런 식으로 쓰고&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;소속 폴더에 접근하려면 .&lt;span style=&quot;color: #333333;&quot;&gt;/resources/img/&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;cat01.png 써야 하는 걸 알아서 맞춰주는 겁니다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;그 외 표현식&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;${pageContext.request.requestURL} : http://localhost:8080/project01/abc.jsp&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;${pageContext.request.scheme} : http&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;${pageContext.request.serverName} : localhost&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;${pageContext.request.serverPort} : 8080&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;${pageContext.request.requestURI} : /project01/abc.jsp&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;${pageContext.request.servletPath} : /&lt;span style=&quot;color: #333333;&quot;&gt;abc.jsp&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;Java&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;HttpServletRequest request&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587995800387&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;String root = request.getContextPath(); // return 프로젝트 Path&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;결과 : /project01&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587995973840&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;String uri = request.getRequestURI(); // return 프로젝트+파일경로&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;결과 : /project01/abc.jsp&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587996131519&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;String servlet = request.getServletPath(); // return 파일명&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;결과 : &lt;span style=&quot;color: #000000;&quot;&gt;/abc.jsp&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587996228952&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;StringBuffer url = request.getRequestURL(); // return 전체 경로&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;결과 : http://localhost:8080/project01/abc.jsp&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;경로 표기법&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;상대&amp;nbsp;경로&lt;/b&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;.&amp;nbsp;:&amp;nbsp;현재&amp;nbsp;웹페이지가&amp;nbsp;소속된&amp;nbsp;폴더 &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;..&amp;nbsp;:&amp;nbsp;현재&amp;nbsp;웹페이지의&amp;nbsp;부모&amp;nbsp;폴더&lt;/span&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;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;절대 경로&lt;/span&gt;&lt;/b&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;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;/ : 루트(root)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;./ : 현재 위치&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;../ : 현재 위치의 상단 폴더&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Spring</category>
      <category>${pageContext.request.contextPath}</category>
      <category>Spring img 이미지 파일</category>
      <category>Spring resources</category>
      <category>Spring 경로 example</category>
      <category>Spring 경로 표기법</category>
      <category>Spring 상대 경로</category>
      <category>Spring 상대경로 예시</category>
      <category>Spring 절대 경로</category>
      <category>Spring 절대경로 예시</category>
      <category>절대경로와 상대경로</category>
      <author>.java</author>
      <guid isPermaLink="true">https://java119.tistory.com/101</guid>
      <comments>https://java119.tistory.com/101#entry101comment</comments>
      <pubDate>Tue, 28 Apr 2020 23:06:21 +0900</pubDate>
    </item>
    <item>
      <title>[T-Rex Runner] 크롬(Chrome) 인터넷 연결 끊김 시 나오는 공룡 게임</title>
      <link>https://java119.tistory.com/100</link>
      <description>&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;혹시 평범한 이 인터넷 연결 끊김 화면에 &lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;게임이 숨겨져 있단 사실 알고 계셨나요?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;아 모르셨다고요?! 알고 계셨는데 정식 명칭이 &lt;b&gt;T-Rex Runner&lt;/b&gt; 라는걸 모르셨다고요?!&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;3.PNG&quot; data-origin-width=&quot;292&quot; data-origin-height=&quot;220&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/da8hNi/btqDJgqLmLS/MJjoKD0Y3E5k9qMZybLoU1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/da8hNi/btqDJgqLmLS/MJjoKD0Y3E5k9qMZybLoU1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/da8hNi/btqDJgqLmLS/MJjoKD0Y3E5k9qMZybLoU1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fda8hNi%2FbtqDJgqLmLS%2FMJjoKD0Y3E5k9qMZybLoU1%2Fimg.png&quot; data-filename=&quot;3.PNG&quot; data-origin-width=&quot;292&quot; data-origin-height=&quot;220&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;그래서 준비했습니다. T-Rex Runner 게임! (부제 : 크롬(&lt;span style=&quot;color: #333333;&quot;&gt;C&lt;/span&gt;hrome) 인터넷 연결 끊김 시 나오는 공룡 게임)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;조건&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;인터넷 연결 끊김시에는 Chrome 브라우저에서만 나오고 검색하면 모든 브라우저에서 즐길 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;게임 설명&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;게임&amp;nbsp;시작&amp;nbsp;키&amp;nbsp;:&amp;nbsp;Space&amp;nbsp;bar&amp;nbsp;(스페이스&amp;nbsp;바)&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;게임 조작 키 : &amp;uarr; (점프 키, jump) , &amp;darr; (숙이기, down)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;게임을 시작하게되면 갑자기 공룡이 사하라 사막 같은 곳을 막 달리기 시작합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;그러다 선인장,새,기타 방해꾼들이 등장해 공룡의 달리기를 방해하는 그런 게임입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;공룡은 선인장,새,기타 방해꾼에 닿게 되면 공룡이 사망하면서 게임이 끝납니다.&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;4.PNG&quot; data-origin-width=&quot;467&quot; data-origin-height=&quot;217&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bsBebN/btqDISRcsCY/gMGwvGXfAaQm7cS2VsDti1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bsBebN/btqDISRcsCY/gMGwvGXfAaQm7cS2VsDti1/img.png&quot; data-alt=&quot;공룡이 선인장에 죽은 모습&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bsBebN/btqDISRcsCY/gMGwvGXfAaQm7cS2VsDti1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbsBebN%2FbtqDISRcsCY%2FgMGwvGXfAaQm7cS2VsDti1%2Fimg.png&quot; data-filename=&quot;4.PNG&quot; data-origin-width=&quot;467&quot; data-origin-height=&quot;217&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;/&gt;&lt;/span&gt;&lt;figcaption&gt;공룡이 선인장에 죽은 모습&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;공룡이 달리는 동안 우측 상단에 점수가 쌓이게 됩니다. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;이걸로 실력을 볼 수 있겠죠~&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;한 땐, 이 게임이 너무 재밌어서 인터넷을 일부러 끊고 즐기고 했는데요.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;멍청한 짓이였습니다. 왜냐하면 &lt;b&gt;&quot; &lt;/b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;T-Rex Runner &quot;라는&lt;/b&gt; 정식 명칭에 게임이 있었습니다.&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;인터넷 연결한 상태에서 T-Rex Runner 공룡 게임하기&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;1. 구글에 &lt;b&gt;T-Rex Runner&lt;/b&gt; 검색 &amp;rarr; 제일 상단에 &lt;b&gt;T-Rex Game.&lt;/b&gt; 클릭&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;1.PNG&quot; data-origin-width=&quot;878&quot; data-origin-height=&quot;250&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/74oJq/btqDHsZ4wS3/3Ey26Hv40lMwAb4UWONVh1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/74oJq/btqDHsZ4wS3/3Ey26Hv40lMwAb4UWONVh1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/74oJq/btqDHsZ4wS3/3Ey26Hv40lMwAb4UWONVh1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F74oJq%2FbtqDHsZ4wS3%2F3Ey26Hv40lMwAb4UWONVh1%2Fimg.png&quot; data-filename=&quot;1.PNG&quot; data-origin-width=&quot;878&quot; data-origin-height=&quot;250&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;2. 게임 즐기기&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;2.PNG&quot; data-origin-width=&quot;689&quot; data-origin-height=&quot;391&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/U0yq4/btqDJMC1Cvw/DSotaM4ZqwrUdE1rmOJb91/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/U0yq4/btqDJMC1Cvw/DSotaM4ZqwrUdE1rmOJb91/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/U0yq4/btqDJMC1Cvw/DSotaM4ZqwrUdE1rmOJb91/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FU0yq4%2FbtqDJMC1Cvw%2FDSotaM4ZqwrUdE1rmOJb91%2Fimg.png&quot; data-filename=&quot;2.PNG&quot; data-origin-width=&quot;689&quot; data-origin-height=&quot;391&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;주로&amp;nbsp;이&amp;nbsp;게임을&amp;nbsp;하는&amp;nbsp;이유&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;1. 인터넷&amp;nbsp;연결&amp;nbsp;끊겼을&amp;nbsp;때&amp;nbsp;,&amp;nbsp;기다리는&amp;nbsp;용도&lt;br /&gt;2. 친구&amp;nbsp;1:1&amp;nbsp;밥&amp;nbsp;내기&amp;nbsp;(스코어&amp;nbsp;기준)&lt;br /&gt;3. 퇴근 10분 전 재미로&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;4. 귀여운 공룡이 보고 싶을 때&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;s&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;제 최고 기록은 2356점인데 1등이 99888점이네요...&lt;/span&gt;&lt;/s&gt;&lt;/p&gt;</description>
      <category>소개</category>
      <category>T-Rex game</category>
      <category>T-Rex Runner 점수</category>
      <category>T-Rex?</category>
      <category>공룡 게임</category>
      <category>공룡 게임 조작 키</category>
      <category>공룡 게임 후기</category>
      <category>공룡 달리는 게임</category>
      <category>공룡이 사막 달리는 게임</category>
      <category>인터넷 공룡</category>
      <category>인터넷 연결 끊김시 나오는 공룡 게임 하기</category>
      <author>.java</author>
      <guid isPermaLink="true">https://java119.tistory.com/100</guid>
      <comments>https://java119.tistory.com/100#entry100comment</comments>
      <pubDate>Sun, 26 Apr 2020 20:10:57 +0900</pubDate>
    </item>
    <item>
      <title>[MyBatis] 동적 쿼리 &amp;lt;bind&amp;gt; 문법 총 정리</title>
      <link>https://java119.tistory.com/99</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;new111.png&quot; data-origin-width=&quot;319&quot; data-origin-height=&quot;160&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bz2EQ8/btqDKpAJxKm/Ugp65Pf7ht3YB0JYt628qk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bz2EQ8/btqDKpAJxKm/Ugp65Pf7ht3YB0JYt628qk/img.png&quot; data-alt=&quot;MyBatis 속성&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bz2EQ8/btqDKpAJxKm/Ugp65Pf7ht3YB0JYt628qk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbz2EQ8%2FbtqDKpAJxKm%2FUgp65Pf7ht3YB0JYt628qk%2Fimg.png&quot; data-filename=&quot;new111.png&quot; data-origin-width=&quot;319&quot; data-origin-height=&quot;160&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;/&gt;&lt;/span&gt;&lt;figcaption&gt;MyBatis 속성&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;&lt;span style=&quot;color: #333333; font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&amp;lt;bind&amp;gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #333333; font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&lt;b&gt;개념&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;외부에서&amp;nbsp;전달된&amp;nbsp;파라미터를&amp;nbsp;이용하여&amp;nbsp;변수&amp;nbsp;생성하는&amp;nbsp;엘리먼트&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;동적 쿼리 변수를 생성할 때 사용한다.&lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;조건&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;MyBatis version 3.2.3 이상&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;문법&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;동적 쿼리문 안에 작성&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587893147714&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;select | insert | update | delete&amp;gt;

&amp;lt;bind name=&quot;지정할 변수이름&quot; value=&quot;파라미터 값+부가 옵션&quot;/&amp;gt;

&amp;lt;/select | insert | update | delete&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;name 속성 : 자기가 지정할 변수 이름&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;value 속성 : 받아오는 파라미터 값 + 추가 문법 (이때 문법은 OGNL(Object Graph Navigation Language) 표현식을 사용한다.)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;실전 예시 1. Like 문 &lt;b&gt;문법&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;Parameter 01 : id&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;Parameter 02 : subject&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587893883564&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;select id=&quot;getTest&quot; resultType=&quot;board&quot;&amp;gt;

SELECT * FROM board

&amp;lt;bind name=&quot;ids&quot; value=&quot;'%'+id+'%'&quot;/&amp;gt;
&amp;lt;bind name=&quot;subjects&quot; value=&quot;'%'+subject+'%'&quot;/&amp;gt;
&amp;lt;where&amp;gt;
&amp;lt;if test=&quot;id != null&quot;&amp;gt; AND id like #{ids}&amp;lt;/if&amp;gt;
&amp;lt;if test=&quot;subject != null&quot;&amp;gt; AND subject like #{subjects} &amp;lt;/if&amp;gt;
&amp;lt;/where&amp;gt;

&amp;lt;/select&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;이런식으로 value 속성에 받아온 파라미터를 작성하고 추가 문법을 덧붙이면 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;실제 실행된 쿼리&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587894755745&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM board WHERE id like '%2%' AND subject like '%test%'&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;실전 예시 2. Map 사용 문법&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587895091441&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;bind name=&quot;a&quot; value=&quot;hMap.get('a'.toString())&quot;/&amp;gt;

&amp;lt;bind name=&quot;b&quot; value=&quot;hMap.get('b'.toString())&quot;/&amp;gt;

&amp;lt;bind name=&quot;c&quot; value=&quot;hMap.get('c'.toString())&quot;/&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;실전 예시 3. 메서드(Method) 사용 문법&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;bind 사용 전&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587895332978&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;select id=&quot;selectPerson&quot; parameterType=&quot;String&quot; resultType=&quot;hashmap&quot;&amp;gt;
  SELECT * FROM PERSON WHERE FIRST_NAME like #{name.upperCase() + '%'} 
&amp;lt;/select&amp;gt; &lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;bind 사용 후&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587895348552&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;select id=&quot;selectPerson&quot; parameterType=&quot;String&quot; resultType=&quot;hashmap&quot;&amp;gt;
  &amp;lt;bind name=&quot;nameStartsWith&quot; value=&quot;_parameter.getName().upperCase() + '%'&quot;/&amp;gt;
  SELECT * FROM PERSON WHERE FIRST_NAME like #{nameStartsWith} 
&amp;lt;/select&amp;gt;&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Spring/MyBatis</category>
      <category>bind example</category>
      <category>bind like 문</category>
      <category>bind Map</category>
      <category>bind syntax example</category>
      <category>bind 사용법</category>
      <category>MyBatis bind 문법</category>
      <category>MyBatis bind 문법 예제</category>
      <category>MyBatis 동적 쿼리 bind</category>
      <category>MyBatis 문법 예시</category>
      <category>마이바티스 바인드</category>
      <author>.java</author>
      <guid isPermaLink="true">https://java119.tistory.com/99</guid>
      <comments>https://java119.tistory.com/99#entry99comment</comments>
      <pubDate>Sun, 26 Apr 2020 19:08:41 +0900</pubDate>
    </item>
    <item>
      <title>[Eclipse] 프로젝트에 X,! 표시 원인 및 해결 총 정리(feat.Problems)</title>
      <link>https://java119.tistory.com/98</link>
      <description>&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;0.Window&amp;nbsp;-&amp;gt;&amp;nbsp;Show&amp;nbsp;view&amp;nbsp;-&amp;gt;&amp;nbsp;Other...&amp;nbsp;-&amp;gt;&amp;nbsp;General&amp;nbsp;-&amp;gt;&amp;nbsp;Problems&amp;nbsp;탭&amp;nbsp;추가&amp;nbsp;-&amp;gt;&amp;nbsp;errors&amp;nbsp;내용&amp;nbsp;확인&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;1111.png&quot; data-origin-width=&quot;740&quot; data-origin-height=&quot;101&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qTuFR/btqDIm5GX3F/Ka3EkvJNnlXjcPJduIfOR1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qTuFR/btqDIm5GX3F/Ka3EkvJNnlXjcPJduIfOR1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qTuFR/btqDIm5GX3F/Ka3EkvJNnlXjcPJduIfOR1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqTuFR%2FbtqDIm5GX3F%2FKa3EkvJNnlXjcPJduIfOR1%2Fimg.png&quot; data-filename=&quot;1111.png&quot; data-origin-width=&quot;740&quot; data-origin-height=&quot;101&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;/&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;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;내용에 따른 해결법&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;1.Java version 불일치&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587817498820&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Java compiler level does not match the version of the installed Java project facet.&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;2.Tomcat&amp;nbsp;version&amp;nbsp;불일치&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587817825715&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;apache tomcat 8.5 does not match the version of the installed Java project facet.&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;공통 해결&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;1. 해당 프로젝트 우 클릭 &amp;rarr; Java Build Path &lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;rarr; Libraries 탭 &lt;/span&gt;&lt;/b&gt;확인&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;00_2.PNG&quot; data-origin-width=&quot;1008&quot; data-origin-height=&quot;694&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/PECyF/btqDFoYbElT/uCU5k8R54385wXBRyCElAk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/PECyF/btqDFoYbElT/uCU5k8R54385wXBRyCElAk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/PECyF/btqDFoYbElT/uCU5k8R54385wXBRyCElAk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPECyF%2FbtqDFoYbElT%2FuCU5k8R54385wXBRyCElAk%2Fimg.png&quot; data-filename=&quot;00_2.PNG&quot; data-origin-width=&quot;1008&quot; data-origin-height=&quot;694&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;2.해당 프로젝트 우 클릭 &amp;rarr; Project Facets 확인&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;2-1.Java version 확인(맞추기)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;2-2.Runtimes 탭 Tomcat version 확인&lt;b&gt;(맞추기)&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;00_1.PNG&quot; data-origin-width=&quot;1007&quot; data-origin-height=&quot;693&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/P1wez/btqDJLKsnkC/lg2PazFVmnS1WWnDTonkO1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/P1wez/btqDJLKsnkC/lg2PazFVmnS1WWnDTonkO1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/P1wez/btqDJLKsnkC/lg2PazFVmnS1WWnDTonkO1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FP1wez%2FbtqDJLKsnkC%2Flg2PazFVmnS1WWnDTonkO1%2Fimg.png&quot; data-filename=&quot;00_1.PNG&quot; data-origin-width=&quot;1007&quot; data-origin-height=&quot;693&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;/&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;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;3.Maven Update 하기&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587818889926&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;An error occurred while filtering resources &quot;ProjectName&quot; line 1 Maven Java EE Configuration Problem&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;해결 : &lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&lt;b&gt;해당 프로젝트 우 클릭 &lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;rarr; Maven &lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;rarr;&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt; Update Project...&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&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;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;X가&amp;nbsp;아니라&amp;nbsp;!&amp;nbsp;가&amp;nbsp;떠&amp;nbsp;있다면?&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;1.&lt;span style=&quot;color: #333333;&quot;&gt;import 한 jar 파일의 경로 문제&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;2. 유효하지&lt;span style=&quot;color: #333333;&quot;&gt; 않은 파일이나 디렉터리를 참조하고 있는 경우&lt;/span&gt;&lt;/span&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;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;해결 : &lt;a href=&quot;https://java119.tistory.com/17?category=812265&quot;&gt;https://java119.tistory.com/17?category=812265&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1587819444255&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[Eclipse] 잘되던 프로젝트가 갑자기 안될때(feat.HTTP 404)&quot; data-og-description=&quot;이 글은 이클립스(IDE) 기반으로 설명합니다. 어제까지 잘되던 프로젝트가 내일 출근하고 보니 맛(?)이 갈 때가 있습니다. 바아로 따라해봅시다 1.Project 2.Clean&amp;hellip; 1.Servers 탭 2.Tomcat version Server..&quot; data-og-host=&quot;java119.tistory.com&quot; data-og-source-url=&quot;https://java119.tistory.com/17?category=812265&quot; data-og-url=&quot;https://java119.tistory.com/17&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bLMhW3/hyFNP4vGaa/gAZ3FvgaXAzEgibi7J9FMK/img.png?width=232&amp;amp;height=252&amp;amp;face=0_0_232_252,https://scrap.kakaocdn.net/dn/8borX/hyFNNMnyVf/4JEA1Wd6ijPoB27pqNtkKK/img.png?width=232&amp;amp;height=252&amp;amp;face=0_0_232_252,https://scrap.kakaocdn.net/dn/bjN0y5/hyFNVcAtCn/ubqwckCekVFMy68hVraVNk/img.png?width=464&amp;amp;height=458&amp;amp;face=0_0_464_458&quot;&gt;&lt;a href=&quot;https://java119.tistory.com/17?category=812265&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://java119.tistory.com/17?category=812265&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bLMhW3/hyFNP4vGaa/gAZ3FvgaXAzEgibi7J9FMK/img.png?width=232&amp;amp;height=252&amp;amp;face=0_0_232_252,https://scrap.kakaocdn.net/dn/8borX/hyFNNMnyVf/4JEA1Wd6ijPoB27pqNtkKK/img.png?width=232&amp;amp;height=252&amp;amp;face=0_0_232_252,https://scrap.kakaocdn.net/dn/bjN0y5/hyFNVcAtCn/ubqwckCekVFMy68hVraVNk/img.png?width=464&amp;amp;height=458&amp;amp;face=0_0_464_458');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;[Eclipse] 잘되던 프로젝트가 갑자기 안될때(feat.HTTP 404)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;이 글은 이클립스(IDE) 기반으로 설명합니다. 어제까지 잘되던 프로젝트가 내일 출근하고 보니 맛(?)이 갈 때가 있습니다. 바아로 따라해봅시다 1.Project 2.Clean&amp;hellip; 1.Servers 탭 2.Tomcat version Server..&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;java119.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;그럼에도 해결 되지 않는다면, &lt;b&gt;Problems&lt;/b&gt; 탭에 에러 내용을 가지고 검색하셔서 해결하시면 됩니다.&lt;/span&gt;&lt;/p&gt;</description>
      <category>IDE</category>
      <category>Java Build Path</category>
      <category>Java Tomcat version</category>
      <category>PROBLEMS</category>
      <category>Problems errors</category>
      <category>Project ! 표시</category>
      <category>Project Facets</category>
      <category>Project X 표시</category>
      <category>X 표시 해결하기</category>
      <category>이클립스 X 표시 해결</category>
      <category>이클립스 프로젝트 X</category>
      <author>.java</author>
      <guid isPermaLink="true">https://java119.tistory.com/98</guid>
      <comments>https://java119.tistory.com/98#entry98comment</comments>
      <pubDate>Sat, 25 Apr 2020 22:10:19 +0900</pubDate>
    </item>
    <item>
      <title>[jQuery || JavaScript] &amp;lt;select&amp;gt;box change 강제 선택하기 총 정리</title>
      <link>https://java119.tistory.com/97</link>
      <description>&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;JSP&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;pre id=&quot;code_1587814391908&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;select id=&quot;dynamicId&quot;&amp;gt;
&amp;lt;option value=&quot;apple&quot;&amp;gt;사과&amp;lt;/option&amp;gt;
&amp;lt;option value=&quot;kiwifruit&quot;&amp;gt;키위&amp;lt;/option&amp;gt;
&amp;lt;option value=&quot;Korean melon&quot;&amp;gt;참외&amp;lt;/option&amp;gt;
&amp;lt;/select&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;JavaScript&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;pre id=&quot;code_1587814457499&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$(target).val(option value).trigger('change');

$('#dynamicId').val('kiwifruit').trigger('change');&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;실전 예제&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;목표 : 페이지 진입 시 셀렉트 박스에 두 번째, 세 번째 값을 선택되어 있게 만드는 것.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;JSP&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587814664458&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;select id=&quot;dynamicId&quot;&amp;gt;
&amp;lt;option value=&quot;apple&quot;&amp;gt;사과&amp;lt;/option&amp;gt;
&amp;lt;option value=&quot;kiwifruit&quot;&amp;gt;키위&amp;lt;/option&amp;gt;
&amp;lt;option value=&quot;Korean melon&quot;&amp;gt;참외&amp;lt;/option&amp;gt;
&amp;lt;/select&amp;gt;

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

&amp;lt;select class=&quot;dynamicClass&quot;&amp;gt;
&amp;lt;option value=&quot;apple&quot;&amp;gt;사과&amp;lt;/option&amp;gt;
&amp;lt;option value=&quot;kiwifruit&quot;&amp;gt;키위&amp;lt;/option&amp;gt;
&amp;lt;option value=&quot;Korean melon&quot;&amp;gt;참외&amp;lt;/option&amp;gt;
&amp;lt;/select&amp;gt;

&amp;lt;p id=&quot;resultClass&quot;&amp;gt;&amp;lt;/p&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;b&gt;JavaScript&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587814622666&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;setTimeout(function(){
test();
},0)

function test(){
	
	var html = '';
	
	$('#dynamicId').val('kiwifruit').trigger('change');
	
	html = $('#dynamicId').val();
	
	$('#resultId').append(html);

	$('.dynamicClass').val('Korean melon').trigger('change');
	
	html = $('.dynamicClass').val();
	
	$('#resultClass').append(html);
	
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;View&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;111.PNG&quot; data-origin-width=&quot;145&quot; data-origin-height=&quot;146&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bIeTy8/btqDH02QiCm/096LnWA34RkDDfZ0l4UVV0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bIeTy8/btqDH02QiCm/096LnWA34RkDDfZ0l4UVV0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bIeTy8/btqDH02QiCm/096LnWA34RkDDfZ0l4UVV0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbIeTy8%2FbtqDH02QiCm%2F096LnWA34RkDDfZ0l4UVV0%2Fimg.png&quot; data-filename=&quot;111.PNG&quot; data-origin-width=&quot;145&quot; data-origin-height=&quot;146&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;※ 주의 : test() 메소드를 그냥 실행하면 적용되지 않습니다. setTimeout으로 감싸줘야 합니다.&lt;/span&gt;&lt;/p&gt;</description>
      <category>JavaScript</category>
      <category>html select 값 강제 선택하기</category>
      <category>html selectBox 기본 값 변경 선택</category>
      <category>select</category>
      <category>select ready 값 선택</category>
      <category>select val로 값 선택</category>
      <category>select 두번 째 값 선택</category>
      <category>selectBox change</category>
      <category>selectBox default value change</category>
      <category>selectBox function</category>
      <category>selectBox 강제 선택</category>
      <author>.java</author>
      <guid isPermaLink="true">https://java119.tistory.com/97</guid>
      <comments>https://java119.tistory.com/97#entry97comment</comments>
      <pubDate>Sat, 25 Apr 2020 20:48:17 +0900</pubDate>
    </item>
    <item>
      <title>[Tomcat] 아파치 톰캣(Apache Tomcat) Several ports (8080, 8009) required by Tomcat v8.5 Server at localhost are already in use. 오류 해결 총 정리</title>
      <link>https://java119.tistory.com/96</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;오류 내용&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587810758243&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Several ports (8080, 8009) required by Tomcat v8.5 Server at localhost are already in use. 
The server may already be running in another process, or a system process may be using the port. 
To start this server you will need to stop the other process or change the port number(s).&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;주요 원인&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;원인 01 : 톰캣이 실행하려고 할 때 이를 무시하고, 다시 Run (톰캣 재시작)을 눌렀을 때&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;자세한 원인 : 톰캣을 실행 하려고 준비 중이었는데 무시하고 바로 또 Run를 할 경우 포트가 제대로 꺼지지 않았기 때문에 오류가 뜬다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;원래는&amp;nbsp;톰캣&amp;nbsp;실행이&amp;nbsp;다&amp;nbsp;끝나고&amp;nbsp;또&amp;nbsp;실행하면&amp;nbsp;겹치지않고&amp;nbsp;기존에&amp;nbsp;톰캣이&amp;nbsp;종료되고&amp;nbsp;새&amp;nbsp;프로세스를&amp;nbsp;가진&amp;nbsp;톰캣이&amp;nbsp;시작되는 게&amp;nbsp;정상이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;원인 02 : 또 다른 프로그램이 8080 or 8009 등 톰캣에 필요한 포트를 점유하고 있기 때문입니다.&lt;/span&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;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;원인 03 : 이클립스(혹은 다른 IDE) 프로그램 강제종료 후 톰캣 재실행했을 때 좀비 프로세스가 남아있는 경우.&lt;/span&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;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;해결 &lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;(&lt;span style=&quot;color: #333333;&quot;&gt;윈도우(Windows GUI))&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;GUI&amp;nbsp;(Graphical&amp;nbsp;User&amp;nbsp;Interface)로&amp;nbsp;해당&amp;nbsp;프로세스&amp;nbsp;끄기&lt;/b&gt;&lt;br /&gt;&lt;/span&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;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;작업 관리자 창 실행&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;0.Windows 키 + R &amp;rarr; 실행창에 &lt;b&gt;taskmgr&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;7004_3.PNG&quot; data-origin-width=&quot;404&quot; data-origin-height=&quot;210&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TUia3/btqDHrzHFiD/qRLmACaRoAk7PrrxvUGs60/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TUia3/btqDHrzHFiD/qRLmACaRoAk7PrrxvUGs60/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TUia3/btqDHrzHFiD/qRLmACaRoAk7PrrxvUGs60/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTUia3%2FbtqDHrzHFiD%2FqRLmACaRoAk7PrrxvUGs60%2Fimg.png&quot; data-filename=&quot;7004_3.PNG&quot; data-origin-width=&quot;404&quot; data-origin-height=&quot;210&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;javaw.exe 프로세스 종료&lt;/b&gt;&lt;br /&gt;1. 작업 관리자 &lt;span style=&quot;color: #333333;&quot;&gt;&amp;rarr;&lt;/span&gt; 세부 정보 &lt;span style=&quot;color: #333333;&quot;&gt;&amp;rarr;&lt;/span&gt; javaw.exe 작업 끝내기(강제 종료)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;7004_1.PNG&quot; data-origin-width=&quot;911&quot; data-origin-height=&quot;690&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2XIav/btqDGfTWAKD/xYRmf3cCjJYRjr09i9juw1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2XIav/btqDGfTWAKD/xYRmf3cCjJYRjr09i9juw1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2XIav/btqDGfTWAKD/xYRmf3cCjJYRjr09i9juw1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2XIav%2FbtqDGfTWAKD%2FxYRmf3cCjJYRjr09i9juw1%2Fimg.png&quot; data-filename=&quot;7004_1.PNG&quot; data-origin-width=&quot;911&quot; data-origin-height=&quot;690&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;/&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;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;해결 &lt;b&gt;(&lt;span style=&quot;color: #333333;&quot;&gt;윈도우(Windows CLI))&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;CLI&amp;nbsp;(Command&amp;nbsp;Line&amp;nbsp;Interface)로&amp;nbsp;해당&amp;nbsp;프로세스&amp;nbsp;끄기&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;명령 프롬프트 실행&lt;/b&gt;&lt;br /&gt;0.Windows 키 + R &lt;span style=&quot;color: #333333;&quot;&gt;&amp;rarr;&lt;/span&gt; 실행창에 &lt;b&gt;cmd&lt;/b&gt;&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;7004_4.PNG&quot; data-origin-width=&quot;404&quot; data-origin-height=&quot;210&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ci2RPO/btqDJeTDvCo/fWQJHiKLNlpo4YPjXIZ0K0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ci2RPO/btqDJeTDvCo/fWQJHiKLNlpo4YPjXIZ0K0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ci2RPO/btqDJeTDvCo/fWQJHiKLNlpo4YPjXIZ0K0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fci2RPO%2FbtqDJeTDvCo%2FfWQJHiKLNlpo4YPjXIZ0K0%2Fimg.png&quot; data-filename=&quot;7004_4.PNG&quot; data-origin-width=&quot;404&quot; data-origin-height=&quot;210&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;포트 찾기 명령어&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;br /&gt;&lt;b&gt;특정 포트가 열려 있는지 확인&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;1.&lt;/span&gt;netstat -na | findstr 8009&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;열려 있는 포트의 PID 확인&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;2.&lt;/span&gt;netstat&amp;nbsp;-nao&amp;nbsp;|&amp;nbsp;findstr&amp;nbsp;8009&lt;br /&gt;&lt;br /&gt;&lt;b&gt;PID(&lt;span style=&quot;color: #333333;&quot;&gt;Process&amp;nbsp;IDentifier&lt;/span&gt;) 찾기&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;3.&lt;/span&gt;tasklist&amp;nbsp;|findstr&amp;nbsp;&quot;PID&quot;&lt;br /&gt;&lt;/span&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;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;PID 프로세스 종료 (죽이기)&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;4.&lt;/span&gt;taskkill&amp;nbsp;/f&amp;nbsp;/pid&amp;nbsp;&quot;PID&quot;&lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;7004_2.PNG&quot; data-origin-width=&quot;620&quot; data-origin-height=&quot;298&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bU7DNS/btqDIRdgQZa/eAsEf9VKHQBWDDkbsitkYK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bU7DNS/btqDIRdgQZa/eAsEf9VKHQBWDDkbsitkYK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bU7DNS/btqDIRdgQZa/eAsEf9VKHQBWDDkbsitkYK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbU7DNS%2FbtqDIRdgQZa%2FeAsEf9VKHQBWDDkbsitkYK%2Fimg.png&quot; data-filename=&quot;7004_2.PNG&quot; data-origin-width=&quot;620&quot; data-origin-height=&quot;298&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;★ 참고 : &quot;PID&quot; 부분에 PID를 적으시고 명령어를 실행하면 됩니다. PID는 계속 변경됩니다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;해결 (&lt;span style=&quot;color: #333333;&quot;&gt;리눅스(linux))&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;리눅스 (linux) &lt;b&gt;해당&amp;nbsp;프로세스&amp;nbsp;끄기&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;열려있는 포트 확인&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;1.netstat -tnlp&lt;/span&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;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;특정 포트(8080) 상태 확인&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;2.netstat -nap | grep 8080&lt;/span&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;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;특정 포트(8080) 종료&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;3.fuser -k -n tcp 8080&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;※ 주의 : &lt;span style=&quot;color: #333333;&quot;&gt;리눅스는&lt;/span&gt;&amp;nbsp;윈도우랑 다르게 PID가 아닌 port로 명령어를 실행합니다.&lt;/span&gt;&lt;/p&gt;</description>
      <category>Tomcat</category>
      <category>Apache Tomcat 오류</category>
      <category>javaw.exe tomcat</category>
      <category>Tomcat port</category>
      <category>tomcat port error</category>
      <category>tomcat 오류 해결</category>
      <category>tomcat 포트 겹침</category>
      <category>톰캣 8009 오류</category>
      <category>톰캣 8080 오류</category>
      <category>톰캣 오류 해결법</category>
      <category>톰캣 포트 겹침</category>
      <author>.java</author>
      <guid isPermaLink="true">https://java119.tistory.com/96</guid>
      <comments>https://java119.tistory.com/96#entry96comment</comments>
      <pubDate>Sat, 25 Apr 2020 20:01:34 +0900</pubDate>
    </item>
    <item>
      <title>[MySQL || MariaDB] System,SQL ERROR 모음 원인 및 해결 총 정리</title>
      <link>https://java119.tistory.com/95</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span&gt;&lt;b&gt;System 오류&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;1. ERROR 2002 : can't connect to local mysql server through socket '/var/lib/mysql/mysql.sock' (2) (13) (111)&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;이&amp;nbsp;문제는&amp;nbsp;메시지&amp;nbsp;내용은&amp;nbsp;같으나,&amp;nbsp;뒤에&amp;nbsp;숫자에&amp;nbsp;따라&amp;nbsp;해결법이&amp;nbsp;다릅니다.&lt;br /&gt;오류&amp;nbsp;메시지를&amp;nbsp;정확히&amp;nbsp;보셔야&amp;nbsp;합니다.&amp;nbsp;(2)&amp;nbsp;(13)&amp;nbsp;(111)&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;※ 주의 : &lt;b&gt;mysql.sock &lt;/b&gt;관련 에러가 뜨는 원인은 굉~장히 다양하므로 명확한 해결책을 제시하기 어렵습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;최선책을 올립니다.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;ERROR 2002 : can't connect to local mysql server through socket '/var/lib/mysql/mysql.sock' (2)&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;원인&amp;nbsp;:&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;1.&amp;nbsp;MySQL&amp;nbsp;데몬이&amp;nbsp;기동이&amp;nbsp;되어&amp;nbsp;있지&amp;nbsp;않은&amp;nbsp;경우&amp;nbsp;(MySQL&amp;nbsp;서버가&amp;nbsp;실행되지&amp;nbsp;않은&amp;nbsp;것)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;2.&amp;nbsp;my.cnf&amp;nbsp;파일&amp;nbsp;자체가&amp;nbsp;깨졌을&amp;nbsp;경우&amp;nbsp;해당&amp;nbsp;메시지를&amp;nbsp;만난다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;3.&amp;nbsp;mysql.sock를 시스템이&amp;nbsp;못&amp;nbsp;찾거나&amp;nbsp;경로가&amp;nbsp;정확하지&amp;nbsp;않아서&amp;nbsp;발생하는&amp;nbsp;오류&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;해결 :&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587458474829&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;mysql.sock 위치 찾기
find / -name mysql.sock

/usr/local/mysql/bin/mysql -u root -p mysql -S /var/lib/mysql/mysql.sock
or 둘 중 택 1
cd /usr/local/mysql 
./bin/mysql -u root -p mysql -S /var/lib/mysql/mysql.sock&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;원인02 :&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;MySQL&amp;nbsp;유저로&amp;nbsp;접근했을&amp;nbsp;경우&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;mysql.sock&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt; 파일이 있는 디렉토리에 &lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;접근을 할 수 없어서 나오는 오류&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;해결 02 :&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587458482459&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;service mysqld stop
chmod 755 -R /var/lib/mysql/
chown mysql:mysql -R /var/lib/mysql/
service mysqld start&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;ERROR 2002 : can't connect to local mysql server through socket '/var/lib/mysql/mysql.sock' (13)&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;원인&amp;nbsp;:&amp;nbsp;/usr/local/mysql&amp;nbsp;디렉터리&amp;nbsp;권한&amp;nbsp;문제&lt;br /&gt;&lt;br /&gt;해결&amp;nbsp;:&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587458543756&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;chmod 777 /usr/local/mysql&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;ERROR 2002 : can't connect to local mysql server through socket '/var/lib/mysql/mysql.sock' (111)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;원인&amp;nbsp;:&amp;nbsp;심볼릭&amp;nbsp;링크가&amp;nbsp;잘못&amp;nbsp;됐을&amp;nbsp;경우&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;해결&amp;nbsp;:&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587458615117&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;그&amp;nbsp;외 mysql.sock 문제 관련 해결책&amp;nbsp;:&amp;nbsp;my.cnf&amp;nbsp;파일에&amp;nbsp;mysql.sock&amp;nbsp;경로&amp;nbsp;지정하기&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587458685653&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;vi /etc/my.cnf
## /etc/my.cnf
[client]
socket = /var/lib/mysql/mysql.sock
[mysqld]
socket = /var/lib/mysql/mysql.sock
&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;ERROR&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&amp;nbsp;access&amp;nbsp;to&amp;nbsp;database&amp;nbsp;denied&amp;nbsp;(using&amp;nbsp;password:&amp;nbsp;YES)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;원인&amp;nbsp;:&amp;nbsp;데이터베이스에&amp;nbsp;접근할&amp;nbsp;수&amp;nbsp;없는&amp;nbsp;권한을&amp;nbsp;가진&amp;nbsp;user&amp;nbsp;가&amp;nbsp;접속한&amp;nbsp;경우.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;해결&amp;nbsp;:&amp;nbsp;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587645843675&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;GRANT ALL PRIVILEGES ON *.*TO '권한 허용할 유저 아이디'@'%' IDENTIFIED BY 'password' with GRANT OPTION;
FLUSH PRIVILEGES;&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;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;원인02 : 데이터베이스 로그인 시도에 접속 비밀번호가 틀린 경우&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;해결 02 : 비밀번호를 올바르게 입력한다.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&lt;b&gt;ERROR 1044 : access denied for user : 'abc@ localhost' to database 'abcdb'&amp;nbsp;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/b&gt;원인 :&amp;nbsp;&lt;br /&gt;'abc'&amp;nbsp;유저에&amp;nbsp;대해서&amp;nbsp;'abcdb'라는&amp;nbsp;이름의&amp;nbsp;데이터베이스에&amp;nbsp;접근할&amp;nbsp;수&amp;nbsp;없기&amp;nbsp;때문에&amp;nbsp;발생하는&amp;nbsp;에러.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587646064292&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;원인 발생 예시 : mysql&amp;gt; use abcdb&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;br /&gt;해결 : 'abc'라는 유저가 'abcdb'에 접근할 수 있도록 접근 허용 SQL 문법을 실행한다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587645953530&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;grant all privileges on userdb.* to 'abc'@'localhost' identified by '패스워드' with grant option;&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;ERROR&amp;nbsp;1045&amp;nbsp;:&amp;nbsp;access&amp;nbsp;denied&amp;nbsp;for&amp;nbsp;user&amp;nbsp;:&amp;nbsp;'root@localhost';&amp;nbsp;(using&amp;nbsp;password:&amp;nbsp;no)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;원인&amp;nbsp;:&amp;nbsp;root&amp;nbsp;패스워드가&amp;nbsp;설정되어&amp;nbsp;있는데,&amp;nbsp;root&amp;nbsp;패스워드&amp;nbsp;없이&amp;nbsp;접근을&amp;nbsp;시도했을&amp;nbsp;때&amp;nbsp;나타나는&amp;nbsp;오류입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;해결 : 패스워드를 올바르게 입력해서 접속한다.&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587645886226&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;mysql -u root (X) mysql -u root -p (O) 패스워드 입력 후 접근&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;ERROR 1006 : Can't create database 'abcdb'. (errno: 28)&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;원인&amp;nbsp;:&amp;nbsp;하드디스크&amp;nbsp;파티션&amp;nbsp;용량이&amp;nbsp;꽉&amp;nbsp;참.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;해결&amp;nbsp;:&amp;nbsp;하드디스크&amp;nbsp;용량&amp;nbsp;정리&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587646722713&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;하드 디스크 용량 정리 팁
우선 순위인 /tmp 디렉토리 안에 데이터 먼저 제거 한다.
cd /tmp
rm -rf *
service mysqld restart&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;ERROR 1175 : You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;원인 : Safe Update&amp;nbsp;모드 상태로 설정되어 있어서 UPDATE시 KEY 칼럼을 이용하지 않을 경우 업데이트할 수 없음.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;해결 : &lt;span style=&quot;color: #333333;&quot;&gt;Safe Update 모드 해제 명령어 실행&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587737274107&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;해결 예시 :  SET SQL_SAFE_UPDATES =0; &lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;위에&amp;nbsp;해당&amp;nbsp;사항이&amp;nbsp;없는&amp;nbsp;경우&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;MySQL&amp;nbsp;시스템&amp;nbsp;문제&amp;nbsp;에러&amp;nbsp;로그&amp;nbsp;보는&amp;nbsp;법&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587735659030&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;(tail or more or vi) /etc/log/mysqld.log 혹은 /var/log/mysqld.log&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;SQL&amp;nbsp;오류&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;SQL 오류 (&lt;/span&gt;1054) : &lt;span style=&quot;color: #333333;&quot;&gt;Unknown column 'sss' in 'where clause'&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;원인 : where 문에 문법이 잘못됐을 때&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587734080993&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;원인 발생 예시 : select * from table where col1 = sss&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;해결 : &lt;span style=&quot;color: #333333;&quot;&gt;where&amp;nbsp;절에&amp;nbsp;문자열&amp;nbsp;일&amp;nbsp;경우에&amp;nbsp;따옴표로&amp;nbsp;비교해야&amp;nbsp;합니다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587734086457&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;해결 예시 select * from table where col1 = 'sss'&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;SQL 오류 (&lt;/span&gt;&lt;/b&gt;1061) : Duplicate key name 'abcidx'&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;br /&gt;원인&amp;nbsp;:&amp;nbsp;'abcidx'&amp;nbsp;인덱스&amp;nbsp;이름이&amp;nbsp;중복될&amp;nbsp;경우&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;br /&gt;해결&amp;nbsp;:&amp;nbsp;인덱스&amp;nbsp;이름을&amp;nbsp;변경해준다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;SQL 오류 (&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;1062) : Duplicate entry '1' for key 1&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;br /&gt;원인&amp;nbsp;:&amp;nbsp;PK(Primary&amp;nbsp;key)가&amp;nbsp;걸려있는&amp;nbsp;칼럼에&amp;nbsp;이미&amp;nbsp;있는&amp;nbsp;데이터를&amp;nbsp;동일하게&amp;nbsp;넣을&amp;nbsp;경우&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587734243720&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;원인 발생 예시 : '1'이라는 숫자 데이터가 있는데 또 '1' 을 넣을 경우&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;해결 : 이미 있는 데이터를 피해서 다른 값의 데이터를 넣는다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;SQL 오류 (1064) : You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'card_company WHERE amount_of_payment = ss' at line 1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;원인 : SQL 문법이 틀렸을 경우 (진짜 많이 보는 오류 내용)&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;해결 : 틀린 SQL 문법을 찾는다. 끝에 line n번째라고 적혀있는데 이 라인을 잘 봐야 합니다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;SQL 오류 (1&lt;/span&gt;072) : Key column 'abc' doesn't exist in table&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;원인&amp;nbsp;:&amp;nbsp;'abc'&amp;nbsp;란&amp;nbsp;칼럼이&amp;nbsp;존재하지&amp;nbsp;않는데,&amp;nbsp;'abc'로&amp;nbsp;인덱스를&amp;nbsp;생성할&amp;nbsp;경우&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;해결&amp;nbsp;:&amp;nbsp;존재하는&amp;nbsp;칼럼에&amp;nbsp;인덱스를&amp;nbsp;부여한다.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;SQL 오류 (1093) : Table 'TESTNAME' is specified twice, both as a target for 'INSERT' and as a separate source for data&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;원인&amp;nbsp;:&amp;nbsp;하나의&amp;nbsp;SQL&amp;nbsp;구문에&amp;nbsp;같은&amp;nbsp;테이블&amp;nbsp;명을&amp;nbsp;사용할&amp;nbsp;경우.&amp;nbsp;(INSERT,&amp;nbsp;UPDATE,&amp;nbsp;DELETE)&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587736100302&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;원인 발생 예시 : INSERT INTO TESTNAME (ID,NAME,ORDER_NO)
VALUES (1,'Java119',( SELECT IFNULL(MAX(ORDER_NO), 0) + 1 FROM TESTNAME WHERE ID = 1))&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;해결 : 서브 쿼리 부분에 별칭(alias)을 설정해준다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587736171109&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;해결 예시 : INSERT INTO TESTNAME (ID,NAME,ORDER_NO) 
VALUES (1,'Java119',( SELECT IFNULL(MAX(ORDER_NO), 0) + 1 FROM TESTNAME AS tableAlias WHERE ID = 1))
&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;SQL 오류 (1136) : Column count doesn't match value count at row 1&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;원인 : INSERT문이 테이블 열의 수와 값의 수가 일치하지 않을 경우&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587734927944&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;원인 발생 예시 : INSERT INTO people (id,NAME,age) VALUES(1,'java119');&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;해결 : &lt;span style=&quot;color: #333333;&quot;&gt;INSERT&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;문 사용 시 테이블 열의 수와 값의 수를 일치시킨다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587735009319&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;해결 예시 : INSERT INTO people (id,NAME,age) VALUES(1,'java119',24);&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;SQL 오류 (1222) : The used SELECT statements have a different number of columns&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;원인 : &lt;b&gt;union&lt;/b&gt; 사용 시 각 테이블의 칼럼이 서로 일치하지 않는 경우&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587737609451&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;원인 발생 예시 :

SELECT id,name FROM people 
UNION  
SELECT id FROM people2&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;해결 : &lt;b&gt;union&lt;/b&gt; 사용 테이블들의 칼럼 수를 맞춰준다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587737642529&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;해결 예시 :

SELECT id FROM people  
UNION   
SELECT id FROM people2&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;SQL 오류 (1242) : Subquery returns more than 1 row&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;원인&amp;nbsp;:&amp;nbsp;서브 쿼리가&amp;nbsp;하나&amp;nbsp;이상의&amp;nbsp;레코드를&amp;nbsp;리턴하는&amp;nbsp;문장들에&amp;nbsp;대해&amp;nbsp;발생하는&amp;nbsp;에러&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;해결 : 서브 쿼리의 결과가 하나의 레코드를 반환하도록 문법 수정&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;해결 02 : ANY 사용해 해결한 케이스 &lt;a href=&quot;https://ra2kstar.tistory.com/52&quot;&gt;https://ra2kstar.tistory.com/52&amp;nbsp;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;이 글은 계속 업데이트됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;해결법이 올바르지 않거나, 다른 방법으로 해결하신 분들은 피드백 남겨주시면 정말 감사하겠습니다.^^&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;그 외 오류 참고 자료&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;MariaDB 오류 코드&amp;nbsp;&lt;a href=&quot;https://mariadb.com/kb/en/mariadb-error-codes/&quot;&gt;https://mariadb.com/kb/en/mariadb-error-codes/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;그 외 오류들 (스왑)&lt;/span&gt;&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p&gt;MySQL&amp;nbsp;Error&amp;nbsp;Codes &lt;br /&gt;Error&amp;nbsp;1000&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_HASHCHK)&amp;nbsp;hashchk &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1001&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_NISAMCHK)&amp;nbsp;isamchk &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1002&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_NO)&amp;nbsp;NO &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1003&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_YES)&amp;nbsp;YES &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1004&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_CANT_CREATE_FILE)&amp;nbsp;Can't&amp;nbsp;create&amp;nbsp;file&amp;nbsp;'%s'&amp;nbsp;(errno:&amp;nbsp;%d) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1005&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_CANT_CREATE_TABLE)&amp;nbsp;Can't&amp;nbsp;create&amp;nbsp;table&amp;nbsp;'%s'&amp;nbsp;(errno:&amp;nbsp;%d) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1006&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_CANT_CREATE_DB)&amp;nbsp;Can't&amp;nbsp;create&amp;nbsp;database&amp;nbsp;'%s'&amp;nbsp;(errno:&amp;nbsp;%d) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1007&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_DB_CREATE_EXISTS)&amp;nbsp;Can't&amp;nbsp;create&amp;nbsp;database&amp;nbsp;'%s';&amp;nbsp;database&amp;nbsp;exists &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1008&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_DB_DROP_EXISTS)&amp;nbsp;Can't&amp;nbsp;drop&amp;nbsp;database&amp;nbsp;'%s';&amp;nbsp;database&amp;nbsp;doesn't&amp;nbsp;exist &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1009&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_DB_DROP_DELETE)&amp;nbsp;Error&amp;nbsp;dropping&amp;nbsp;database&amp;nbsp;(can't&amp;nbsp;delete&amp;nbsp;'%s',&amp;nbsp;errno:&amp;nbsp;%d) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1010&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_DB_DROP_RMDIR)&amp;nbsp;Error&amp;nbsp;dropping&amp;nbsp;database&amp;nbsp;(can't&amp;nbsp;rmdir&amp;nbsp;'%s',&amp;nbsp;errno:&amp;nbsp;%d) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1011&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_CANT_DELETE_FILE)&amp;nbsp;Error&amp;nbsp;on&amp;nbsp;delete&amp;nbsp;of&amp;nbsp;'%s'&amp;nbsp;(errno:&amp;nbsp;%d) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1012&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_CANT_FIND_SYSTEM_REC)&amp;nbsp;Can't&amp;nbsp;read&amp;nbsp;record&amp;nbsp;in&amp;nbsp;system&amp;nbsp;table &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1013&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_CANT_GET_STAT)&amp;nbsp;Can't&amp;nbsp;get&amp;nbsp;status&amp;nbsp;of&amp;nbsp;'%s'&amp;nbsp;(errno:&amp;nbsp;%d) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1014&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_CANT_GET_WD)&amp;nbsp;Can't&amp;nbsp;get&amp;nbsp;working&amp;nbsp;directory&amp;nbsp;(errno:&amp;nbsp;%d) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1015&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_CANT_LOCK)&amp;nbsp;Can't&amp;nbsp;lock&amp;nbsp;file&amp;nbsp;(errno:&amp;nbsp;%d) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1016&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_CANT_OPEN_FILE)&amp;nbsp;Can't&amp;nbsp;open&amp;nbsp;file:&amp;nbsp;'%s'&amp;nbsp;(errno:&amp;nbsp;%d) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1017&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_FILE_NOT_FOUND)&amp;nbsp;Can't&amp;nbsp;find&amp;nbsp;file:&amp;nbsp;'%s'&amp;nbsp;(errno:&amp;nbsp;%d) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1018&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_CANT_READ_DIR)&amp;nbsp;Can't&amp;nbsp;read&amp;nbsp;dir&amp;nbsp;of&amp;nbsp;'%s'&amp;nbsp;(errno:&amp;nbsp;%d) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1019&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_CANT_SET_WD)&amp;nbsp;Can't&amp;nbsp;change&amp;nbsp;dir&amp;nbsp;to&amp;nbsp;'%s'&amp;nbsp;(errno:&amp;nbsp;%d) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1020&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_CHECKREAD)&amp;nbsp;Record&amp;nbsp;has&amp;nbsp;changed&amp;nbsp;since&amp;nbsp;last&amp;nbsp;read&amp;nbsp;in&amp;nbsp;table&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1021&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_DISK_FULL)&amp;nbsp;Disk&amp;nbsp;full&amp;nbsp;(%s);&amp;nbsp;waiting&amp;nbsp;for&amp;nbsp;someone&amp;nbsp;to&amp;nbsp;free&amp;nbsp;some&amp;nbsp;space... &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1022&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;23000&amp;nbsp;(ER_DUP_KEY)&amp;nbsp;Can't&amp;nbsp;write;&amp;nbsp;duplicate&amp;nbsp;key&amp;nbsp;in&amp;nbsp;table&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1023&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_ERROR_ON_CLOSE)&amp;nbsp;Error&amp;nbsp;on&amp;nbsp;close&amp;nbsp;of&amp;nbsp;'%s'&amp;nbsp;(errno:&amp;nbsp;%d) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1024&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_ERROR_ON_READ)&amp;nbsp;Error&amp;nbsp;reading&amp;nbsp;file&amp;nbsp;'%s'&amp;nbsp;(errno:&amp;nbsp;%d) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1025&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_ERROR_ON_RENAME)&amp;nbsp;Error&amp;nbsp;on&amp;nbsp;rename&amp;nbsp;of&amp;nbsp;'%s'&amp;nbsp;to&amp;nbsp;'%s'&amp;nbsp;(errno:&amp;nbsp;%d) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1026&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_ERROR_ON_WRITE)&amp;nbsp;Error&amp;nbsp;writing&amp;nbsp;file&amp;nbsp;'%s'&amp;nbsp;(errno:&amp;nbsp;%d) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1027&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_FILE_USED)&amp;nbsp;'%s'&amp;nbsp;is&amp;nbsp;locked&amp;nbsp;against&amp;nbsp;change &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1028&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_FILSORT_ABORT)&amp;nbsp;Sort&amp;nbsp;aborted &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1029&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_FORM_NOT_FOUND)&amp;nbsp;View&amp;nbsp;'%s'&amp;nbsp;doesn't&amp;nbsp;exist&amp;nbsp;for&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1030&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_GET_ERRNO)&amp;nbsp;Got&amp;nbsp;error&amp;nbsp;%d&amp;nbsp;from&amp;nbsp;storage&amp;nbsp;engine &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1031&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_ILLEGAL_HA)&amp;nbsp;Table&amp;nbsp;storage&amp;nbsp;engine&amp;nbsp;for&amp;nbsp;'%s'&amp;nbsp;doesn't&amp;nbsp;have&amp;nbsp;this&amp;nbsp;option &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1032&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_KEY_NOT_FOUND)&amp;nbsp;Can't&amp;nbsp;find&amp;nbsp;record&amp;nbsp;in&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1033&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_NOT_FORM_FILE)&amp;nbsp;Incorrect&amp;nbsp;information&amp;nbsp;in&amp;nbsp;file:&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1034&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_NOT_KEYFILE)&amp;nbsp;Incorrect&amp;nbsp;key&amp;nbsp;file&amp;nbsp;for&amp;nbsp;table&amp;nbsp;'%s';&amp;nbsp;try&amp;nbsp;to&amp;nbsp;repair&amp;nbsp;it &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1035&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_OLD_KEYFILE)&amp;nbsp;Old&amp;nbsp;key&amp;nbsp;file&amp;nbsp;for&amp;nbsp;table&amp;nbsp;'%s';&amp;nbsp;repair&amp;nbsp;it! &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1036&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_OPEN_AS_READONLY)&amp;nbsp;Table&amp;nbsp;'%s'&amp;nbsp;is&amp;nbsp;read&amp;nbsp;only &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1037&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY001&amp;nbsp;(ER_OUTOFMEMORY)&amp;nbsp;Out&amp;nbsp;of&amp;nbsp;memory;&amp;nbsp;restart&amp;nbsp;server&amp;nbsp;and&amp;nbsp;try&amp;nbsp;again&amp;nbsp;(needed&amp;nbsp;%d&amp;nbsp;bytes) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1038&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY001&amp;nbsp;(ER_OUT_OF_SORTMEMORY)&amp;nbsp;Out&amp;nbsp;of&amp;nbsp;sort&amp;nbsp;memory;&amp;nbsp;increase&amp;nbsp;server&amp;nbsp;sort&amp;nbsp;buffer&amp;nbsp;size &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1039&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_UNEXPECTED_EOF)&amp;nbsp;Unexpected&amp;nbsp;EOF&amp;nbsp;found&amp;nbsp;when&amp;nbsp;reading&amp;nbsp;file&amp;nbsp;'%s'&amp;nbsp;(errno:&amp;nbsp;%d) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1040&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;08004&amp;nbsp;(ER_CON_COUNT_ERROR)&amp;nbsp;Too&amp;nbsp;many&amp;nbsp;connections &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1041&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_OUT_OF_RESOURCES)&amp;nbsp;Out&amp;nbsp;of&amp;nbsp;memory;&amp;nbsp;check&amp;nbsp;if&amp;nbsp;mysqld&amp;nbsp;or&amp;nbsp;some&amp;nbsp;other&amp;nbsp;process&amp;nbsp;uses&amp;nbsp;all&amp;nbsp;available&amp;nbsp;memory;&amp;nbsp;if&amp;nbsp;not,&amp;nbsp;you&amp;nbsp;may&amp;nbsp;have&amp;nbsp;to&amp;nbsp;use&amp;nbsp;'ulimit'&amp;nbsp;to&amp;nbsp;allow&amp;nbsp;mysqld&amp;nbsp;to&amp;nbsp;use&amp;nbsp;more&amp;nbsp;memory&amp;nbsp;or&amp;nbsp;you&amp;nbsp;can&amp;nbsp;add&amp;nbsp;more&amp;nbsp;swap&amp;nbsp;space &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1042&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;08S01&amp;nbsp;(ER_BAD_HOST_ERROR)&amp;nbsp;Can't&amp;nbsp;get&amp;nbsp;hostname&amp;nbsp;for&amp;nbsp;your&amp;nbsp;address &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1043&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;08S01&amp;nbsp;(ER_HANDSHAKE_ERROR)&amp;nbsp;Bad&amp;nbsp;handshake &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1044&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_DBACCESS_DENIED_ERROR)&amp;nbsp;Access&amp;nbsp;denied&amp;nbsp;for&amp;nbsp;user&amp;nbsp;'%s'@'%s'&amp;nbsp;to&amp;nbsp;database&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1045&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;28000&amp;nbsp;(ER_ACCESS_DENIED_ERROR)&amp;nbsp;Access&amp;nbsp;denied&amp;nbsp;for&amp;nbsp;user&amp;nbsp;'%s'@'%s'&amp;nbsp;(using&amp;nbsp;password:&amp;nbsp;%s) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1046&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;3D000&amp;nbsp;(ER_NO_DB_ERROR)&amp;nbsp;No&amp;nbsp;database&amp;nbsp;selected &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1047&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;08S01&amp;nbsp;(ER_UNKNOWN_COM_ERROR)&amp;nbsp;Unknown&amp;nbsp;command &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1048&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;23000&amp;nbsp;(ER_BAD_NULL_ERROR)&amp;nbsp;Column&amp;nbsp;'%s'&amp;nbsp;cannot&amp;nbsp;be&amp;nbsp;null &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1049&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_BAD_DB_ERROR)&amp;nbsp;Unknown&amp;nbsp;database&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1050&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42S01&amp;nbsp;(ER_TABLE_EXISTS_ERROR)&amp;nbsp;Table&amp;nbsp;'%s'&amp;nbsp;already&amp;nbsp;exists &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1051&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42S02&amp;nbsp;(ER_BAD_TABLE_ERROR)&amp;nbsp;Unknown&amp;nbsp;table&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1052&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;23000&amp;nbsp;(ER_NON_UNIQ_ERROR)&amp;nbsp;Column&amp;nbsp;'%s'&amp;nbsp;in&amp;nbsp;%s&amp;nbsp;is&amp;nbsp;ambiguous &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1053&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;08S01&amp;nbsp;(ER_SERVER_SHUTDOWN)&amp;nbsp;Server&amp;nbsp;shutdown&amp;nbsp;in&amp;nbsp;progress &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1054&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42S22&amp;nbsp;(ER_BAD_FIELD_ERROR)&amp;nbsp;Unknown&amp;nbsp;column&amp;nbsp;'%s'&amp;nbsp;in&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1055&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_WRONG_FIELD_WITH_GROUP)&amp;nbsp;'%s'&amp;nbsp;isn't&amp;nbsp;in&amp;nbsp;GROUP&amp;nbsp;BY &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1056&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_WRONG_GROUP_FIELD)&amp;nbsp;Can't&amp;nbsp;group&amp;nbsp;on&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1057&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_WRONG_SUM_SELECT)&amp;nbsp;Statement&amp;nbsp;has&amp;nbsp;sum&amp;nbsp;functions&amp;nbsp;and&amp;nbsp;columns&amp;nbsp;in&amp;nbsp;same&amp;nbsp;statement &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1058&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;21S01&amp;nbsp;(ER_WRONG_VALUE_COUNT)&amp;nbsp;Column&amp;nbsp;count&amp;nbsp;doesn't&amp;nbsp;match&amp;nbsp;value&amp;nbsp;count &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1059&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_TOO_LONG_IDENT)&amp;nbsp;Identifier&amp;nbsp;name&amp;nbsp;'%s'&amp;nbsp;is&amp;nbsp;too&amp;nbsp;long &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1060&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42S21&amp;nbsp;(ER_DUP_FIELDNAME)&amp;nbsp;Duplicate&amp;nbsp;column&amp;nbsp;name&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1061&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_DUP_KEYNAME)&amp;nbsp;Duplicate&amp;nbsp;key&amp;nbsp;name&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1062&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;23000&amp;nbsp;(ER_DUP_ENTRY)&amp;nbsp;Duplicate&amp;nbsp;entry&amp;nbsp;'%s'&amp;nbsp;for&amp;nbsp;key&amp;nbsp;%d &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1063&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_WRONG_FIELD_SPEC)&amp;nbsp;Incorrect&amp;nbsp;column&amp;nbsp;specifier&amp;nbsp;for&amp;nbsp;column&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1064&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_PARSE_ERROR)&amp;nbsp;%s&amp;nbsp;near&amp;nbsp;'%s'&amp;nbsp;at&amp;nbsp;line&amp;nbsp;%d &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1065&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_EMPTY_QUERY)&amp;nbsp;Query&amp;nbsp;was&amp;nbsp;empty &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1066&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_NONUNIQ_TABLE)&amp;nbsp;Not&amp;nbsp;unique&amp;nbsp;table/alias:&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1067&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_INVALID_DEFAULT)&amp;nbsp;Invalid&amp;nbsp;default&amp;nbsp;value&amp;nbsp;for&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1068&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_MULTIPLE_PRI_KEY)&amp;nbsp;Multiple&amp;nbsp;primary&amp;nbsp;key&amp;nbsp;defined &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1069&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_TOO_MANY_KEYS)&amp;nbsp;Too&amp;nbsp;many&amp;nbsp;keys&amp;nbsp;specified;&amp;nbsp;max&amp;nbsp;%d&amp;nbsp;keys&amp;nbsp;allowed &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1070&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_TOO_MANY_KEY_PARTS)&amp;nbsp;Too&amp;nbsp;many&amp;nbsp;key&amp;nbsp;parts&amp;nbsp;specified;&amp;nbsp;max&amp;nbsp;%d&amp;nbsp;parts&amp;nbsp;allowed &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1071&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_TOO_LONG_KEY)&amp;nbsp;Specified&amp;nbsp;key&amp;nbsp;was&amp;nbsp;too&amp;nbsp;long;&amp;nbsp;max&amp;nbsp;key&amp;nbsp;length&amp;nbsp;is&amp;nbsp;%d&amp;nbsp;bytes &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1072&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_KEY_COLUMN_DOES_NOT_EXITS)&amp;nbsp;Key&amp;nbsp;column&amp;nbsp;'%s'&amp;nbsp;doesn't&amp;nbsp;exist&amp;nbsp;in&amp;nbsp;table &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1073&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_BLOB_USED_AS_KEY)&amp;nbsp;BLOB&amp;nbsp;column&amp;nbsp;'%s'&amp;nbsp;can't&amp;nbsp;be&amp;nbsp;used&amp;nbsp;in&amp;nbsp;key&amp;nbsp;specification&amp;nbsp;with&amp;nbsp;the&amp;nbsp;used&amp;nbsp;table&amp;nbsp;type &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1074&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_TOO_BIG_FIELDLENGTH)&amp;nbsp;Column&amp;nbsp;length&amp;nbsp;too&amp;nbsp;big&amp;nbsp;for&amp;nbsp;column&amp;nbsp;'%s'&amp;nbsp;(max&amp;nbsp;=&amp;nbsp;%d);&amp;nbsp;use&amp;nbsp;BLOB&amp;nbsp;instead &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1075&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_WRONG_AUTO_KEY)&amp;nbsp;Incorrect&amp;nbsp;table&amp;nbsp;definition;&amp;nbsp;there&amp;nbsp;can&amp;nbsp;be&amp;nbsp;only&amp;nbsp;one&amp;nbsp;auto&amp;nbsp;column&amp;nbsp;and&amp;nbsp;it&amp;nbsp;must&amp;nbsp;be&amp;nbsp;defined&amp;nbsp;as&amp;nbsp;a&amp;nbsp;key &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1076&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_READY)&amp;nbsp;%s:&amp;nbsp;ready&amp;nbsp;for&amp;nbsp;connections.&amp;nbsp;Version:&amp;nbsp;'%s'&amp;nbsp;socket:&amp;nbsp;'%s'&amp;nbsp;port:&amp;nbsp;%d &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1077&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_NORMAL_SHUTDOWN)&amp;nbsp;%s:&amp;nbsp;Normal&amp;nbsp;shutdown &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1078&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_GOT_SIGNAL)&amp;nbsp;%s:&amp;nbsp;Got&amp;nbsp;signal&amp;nbsp;%d.&amp;nbsp;Aborting! &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1079&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_SHUTDOWN_COMPLETE)&amp;nbsp;%s:&amp;nbsp;Shutdown&amp;nbsp;complete &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1080&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;08S01&amp;nbsp;(ER_FORCING_CLOSE)&amp;nbsp;%s:&amp;nbsp;Forcing&amp;nbsp;close&amp;nbsp;of&amp;nbsp;thread&amp;nbsp;%ld&amp;nbsp;user:&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1081&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;08S01&amp;nbsp;(ER_IPSOCK_ERROR)&amp;nbsp;Can't&amp;nbsp;create&amp;nbsp;IP&amp;nbsp;socket &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1082&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42S12&amp;nbsp;(ER_NO_SUCH_INDEX)&amp;nbsp;Table&amp;nbsp;'%s'&amp;nbsp;has&amp;nbsp;no&amp;nbsp;index&amp;nbsp;like&amp;nbsp;the&amp;nbsp;one&amp;nbsp;used&amp;nbsp;in&amp;nbsp;CREATE&amp;nbsp;INDEX;&amp;nbsp;recreate&amp;nbsp;the&amp;nbsp;table &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1083&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_WRONG_FIELD_TERMINATORS)&amp;nbsp;Field&amp;nbsp;separator&amp;nbsp;argument&amp;nbsp;is&amp;nbsp;not&amp;nbsp;what&amp;nbsp;is&amp;nbsp;expected;&amp;nbsp;check&amp;nbsp;the&amp;nbsp;manual &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1084&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_BLOBS_AND_NO_TERMINATED)&amp;nbsp;You&amp;nbsp;can't&amp;nbsp;use&amp;nbsp;fixed&amp;nbsp;rowlength&amp;nbsp;with&amp;nbsp;BLOBs;&amp;nbsp;please&amp;nbsp;use&amp;nbsp;'fields&amp;nbsp;terminated&amp;nbsp;by' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1085&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_TEXTFILE_NOT_READABLE)&amp;nbsp;The&amp;nbsp;file&amp;nbsp;'%s'&amp;nbsp;must&amp;nbsp;be&amp;nbsp;in&amp;nbsp;the&amp;nbsp;database&amp;nbsp;directory&amp;nbsp;or&amp;nbsp;be&amp;nbsp;readable&amp;nbsp;by&amp;nbsp;all &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1086&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_FILE_EXISTS_ERROR)&amp;nbsp;File&amp;nbsp;'%s'&amp;nbsp;already&amp;nbsp;exists &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1087&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_LOAD_INFO)&amp;nbsp;Records:&amp;nbsp;%ld&amp;nbsp;Deleted:&amp;nbsp;%ld&amp;nbsp;Skipped:&amp;nbsp;%ld&amp;nbsp;Warnings:&amp;nbsp;%ld &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1088&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_ALTER_INFO)&amp;nbsp;Records:&amp;nbsp;%ld&amp;nbsp;Duplicates:&amp;nbsp;%ld &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1089&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_WRONG_SUB_KEY)&amp;nbsp;Incorrect&amp;nbsp;sub&amp;nbsp;part&amp;nbsp;key;&amp;nbsp;the&amp;nbsp;used&amp;nbsp;key&amp;nbsp;part&amp;nbsp;isn't&amp;nbsp;a&amp;nbsp;string,&amp;nbsp;the&amp;nbsp;used&amp;nbsp;length&amp;nbsp;is&amp;nbsp;longer&amp;nbsp;than&amp;nbsp;the&amp;nbsp;key&amp;nbsp;part,&amp;nbsp;or&amp;nbsp;the&amp;nbsp;storage&amp;nbsp;engine&amp;nbsp;doesn't&amp;nbsp;support&amp;nbsp;unique&amp;nbsp;sub&amp;nbsp;keys &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1090&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_CANT_REMOVE_ALL_FIELDS)&amp;nbsp;You&amp;nbsp;can't&amp;nbsp;delete&amp;nbsp;all&amp;nbsp;columns&amp;nbsp;with&amp;nbsp;ALTER&amp;nbsp;TABLE;&amp;nbsp;use&amp;nbsp;DROP&amp;nbsp;TABLE&amp;nbsp;instead &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1091&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_CANT_DROP_FIELD_OR_KEY)&amp;nbsp;Can't&amp;nbsp;DROP&amp;nbsp;'%s';&amp;nbsp;check&amp;nbsp;that&amp;nbsp;column/key&amp;nbsp;exists &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1092&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_INSERT_INFO)&amp;nbsp;Records:&amp;nbsp;%ld&amp;nbsp;Duplicates:&amp;nbsp;%ld&amp;nbsp;Warnings:&amp;nbsp;%ld &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1093&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_UPDATE_TABLE_USED)&amp;nbsp;You&amp;nbsp;can't&amp;nbsp;specify&amp;nbsp;target&amp;nbsp;table&amp;nbsp;'%s'&amp;nbsp;for&amp;nbsp;update&amp;nbsp;in&amp;nbsp;FROM&amp;nbsp;clause &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1094&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_NO_SUCH_THREAD)&amp;nbsp;Unknown&amp;nbsp;thread&amp;nbsp;id:&amp;nbsp;%lu &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1095&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_KILL_DENIED_ERROR)&amp;nbsp;You&amp;nbsp;are&amp;nbsp;not&amp;nbsp;owner&amp;nbsp;of&amp;nbsp;thread&amp;nbsp;%lu &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1096&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_NO_TABLES_USED)&amp;nbsp;No&amp;nbsp;tables&amp;nbsp;used &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1097&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_TOO_BIG_SET)&amp;nbsp;Too&amp;nbsp;many&amp;nbsp;strings&amp;nbsp;for&amp;nbsp;column&amp;nbsp;%s&amp;nbsp;and&amp;nbsp;SET &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1098&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_NO_UNIQUE_LOGFILE)&amp;nbsp;Can't&amp;nbsp;generate&amp;nbsp;a&amp;nbsp;unique&amp;nbsp;log-filename&amp;nbsp;%s.(1-999) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1099&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_TABLE_NOT_LOCKED_FOR_WRITE)&amp;nbsp;Table&amp;nbsp;'%s'&amp;nbsp;was&amp;nbsp;locked&amp;nbsp;with&amp;nbsp;a&amp;nbsp;READ&amp;nbsp;lock&amp;nbsp;and&amp;nbsp;can't&amp;nbsp;be&amp;nbsp;updated &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1100&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_TABLE_NOT_LOCKED)&amp;nbsp;Table&amp;nbsp;'%s'&amp;nbsp;was&amp;nbsp;not&amp;nbsp;locked&amp;nbsp;with&amp;nbsp;LOCK&amp;nbsp;TABLES &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1101&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_BLOB_CANT_HAVE_DEFAULT)&amp;nbsp;BLOB/TEXT&amp;nbsp;column&amp;nbsp;'%s'&amp;nbsp;can't&amp;nbsp;have&amp;nbsp;a&amp;nbsp;default&amp;nbsp;value &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1102&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_WRONG_DB_NAME)&amp;nbsp;Incorrect&amp;nbsp;database&amp;nbsp;name&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1103&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_WRONG_TABLE_NAME)&amp;nbsp;Incorrect&amp;nbsp;table&amp;nbsp;name&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1104&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_TOO_BIG_SELECT)&amp;nbsp;The&amp;nbsp;SELECT&amp;nbsp;would&amp;nbsp;examine&amp;nbsp;more&amp;nbsp;than&amp;nbsp;MAX_JOIN_SIZE&amp;nbsp;rows;&amp;nbsp;check&amp;nbsp;your&amp;nbsp;WHERE&amp;nbsp;and&amp;nbsp;use&amp;nbsp;SET&amp;nbsp;SQL_BIG_SELECTS=1&amp;nbsp;or&amp;nbsp;SET&amp;nbsp;SQL_MAX_JOIN_SIZE=#&amp;nbsp;if&amp;nbsp;the&amp;nbsp;SELECT&amp;nbsp;is&amp;nbsp;okay &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1105&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_UNKNOWN_ERROR)&amp;nbsp;Unknown&amp;nbsp;error &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1106&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_UNKNOWN_PROCEDURE)&amp;nbsp;Unknown&amp;nbsp;procedure&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1107&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_WRONG_PARAMCOUNT_TO_PROCEDURE)&amp;nbsp;Incorrect&amp;nbsp;parameter&amp;nbsp;count&amp;nbsp;to&amp;nbsp;procedure&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1108&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_WRONG_PARAMETERS_TO_PROCEDURE)&amp;nbsp;Incorrect&amp;nbsp;parameters&amp;nbsp;to&amp;nbsp;procedure&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1109&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42S02&amp;nbsp;(ER_UNKNOWN_TABLE)&amp;nbsp;Unknown&amp;nbsp;table&amp;nbsp;'%s'&amp;nbsp;in&amp;nbsp;%s &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1110&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_FIELD_SPECIFIED_TWICE)&amp;nbsp;Column&amp;nbsp;'%s'&amp;nbsp;specified&amp;nbsp;twice &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1111&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_INVALID_GROUP_FUNC_USE)&amp;nbsp;Invalid&amp;nbsp;use&amp;nbsp;of&amp;nbsp;group&amp;nbsp;function &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1112&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_UNSUPPORTED_EXTENSION)&amp;nbsp;Table&amp;nbsp;'%s'&amp;nbsp;uses&amp;nbsp;an&amp;nbsp;extension&amp;nbsp;that&amp;nbsp;doesn't&amp;nbsp;exist&amp;nbsp;in&amp;nbsp;this&amp;nbsp;MySQL&amp;nbsp;version &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1113&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_TABLE_MUST_HAVE_COLUMNS)&amp;nbsp;A&amp;nbsp;table&amp;nbsp;must&amp;nbsp;have&amp;nbsp;at&amp;nbsp;least&amp;nbsp;1&amp;nbsp;column &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1114&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_RECORD_FILE_FULL)&amp;nbsp;The&amp;nbsp;table&amp;nbsp;'%s'&amp;nbsp;is&amp;nbsp;full &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1115&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_UNKNOWN_CHARACTER_SET)&amp;nbsp;Unknown&amp;nbsp;character&amp;nbsp;set:&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1116&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_TOO_MANY_TABLES)&amp;nbsp;Too&amp;nbsp;many&amp;nbsp;tables;&amp;nbsp;MySQL&amp;nbsp;can&amp;nbsp;only&amp;nbsp;use&amp;nbsp;%d&amp;nbsp;tables&amp;nbsp;in&amp;nbsp;a&amp;nbsp;join &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1117&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_TOO_MANY_FIELDS)&amp;nbsp;Too&amp;nbsp;many&amp;nbsp;columns &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1118&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_TOO_BIG_ROWSIZE)&amp;nbsp;Row&amp;nbsp;size&amp;nbsp;too&amp;nbsp;large.&amp;nbsp;The&amp;nbsp;maximum&amp;nbsp;row&amp;nbsp;size&amp;nbsp;for&amp;nbsp;the&amp;nbsp;used&amp;nbsp;table&amp;nbsp;type,&amp;nbsp;not&amp;nbsp;counting&amp;nbsp;BLOBs,&amp;nbsp;is&amp;nbsp;%ld.&amp;nbsp;You&amp;nbsp;have&amp;nbsp;to&amp;nbsp;change&amp;nbsp;some&amp;nbsp;columns&amp;nbsp;to&amp;nbsp;TEXT&amp;nbsp;or&amp;nbsp;BLOBs &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1119&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_STACK_OVERRUN)&amp;nbsp;Thread&amp;nbsp;stack&amp;nbsp;overrun:&amp;nbsp;Used:&amp;nbsp;%ld&amp;nbsp;of&amp;nbsp;a&amp;nbsp;%ld&amp;nbsp;stack.&amp;nbsp;Use&amp;nbsp;'mysqld&amp;nbsp;-O&amp;nbsp;thread_stack=#'&amp;nbsp;to&amp;nbsp;specify&amp;nbsp;a&amp;nbsp;bigger&amp;nbsp;stack&amp;nbsp;if&amp;nbsp;needed &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1120&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_WRONG_OUTER_JOIN)&amp;nbsp;Cross&amp;nbsp;dependency&amp;nbsp;found&amp;nbsp;in&amp;nbsp;OUTER&amp;nbsp;JOIN;&amp;nbsp;examine&amp;nbsp;your&amp;nbsp;ON&amp;nbsp;conditions &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1121&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_NULL_COLUMN_IN_INDEX)&amp;nbsp;Column&amp;nbsp;'%s'&amp;nbsp;is&amp;nbsp;used&amp;nbsp;with&amp;nbsp;UNIQUE&amp;nbsp;or&amp;nbsp;INDEX&amp;nbsp;but&amp;nbsp;is&amp;nbsp;not&amp;nbsp;defined&amp;nbsp;as&amp;nbsp;NOT&amp;nbsp;NULL &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1122&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_CANT_FIND_UDF)&amp;nbsp;Can't&amp;nbsp;load&amp;nbsp;function&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1123&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_CANT_INITIALIZE_UDF)&amp;nbsp;Can't&amp;nbsp;initialize&amp;nbsp;function&amp;nbsp;'%s';&amp;nbsp;%s &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1124&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_UDF_NO_PATHS)&amp;nbsp;No&amp;nbsp;paths&amp;nbsp;allowed&amp;nbsp;for&amp;nbsp;shared&amp;nbsp;library &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1125&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_UDF_EXISTS)&amp;nbsp;Function&amp;nbsp;'%s'&amp;nbsp;already&amp;nbsp;exists &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1126&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_CANT_OPEN_LIBRARY)&amp;nbsp;Can't&amp;nbsp;open&amp;nbsp;shared&amp;nbsp;library&amp;nbsp;'%s'&amp;nbsp;(errno:&amp;nbsp;%d&amp;nbsp;%s) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1127&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_CANT_FIND_DL_ENTRY)&amp;nbsp;Can't&amp;nbsp;find&amp;nbsp;function&amp;nbsp;'%s'&amp;nbsp;in&amp;nbsp;library' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1128&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_FUNCTION_NOT_DEFINED)&amp;nbsp;Function&amp;nbsp;'%s'&amp;nbsp;is&amp;nbsp;not&amp;nbsp;defined &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1129&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_HOST_IS_BLOCKED)&amp;nbsp;Host&amp;nbsp;'%s'&amp;nbsp;is&amp;nbsp;blocked&amp;nbsp;because&amp;nbsp;of&amp;nbsp;many&amp;nbsp;connection&amp;nbsp;errors;&amp;nbsp;unblock&amp;nbsp;with&amp;nbsp;'mysqladmin&amp;nbsp;flush-hosts' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1130&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_HOST_NOT_PRIVILEGED)&amp;nbsp;Host&amp;nbsp;'%s'&amp;nbsp;is&amp;nbsp;not&amp;nbsp;allowed&amp;nbsp;to&amp;nbsp;connect&amp;nbsp;to&amp;nbsp;this&amp;nbsp;MySQL&amp;nbsp;server &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1131&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_PASSWORD_ANONYMOUS_USER)&amp;nbsp;You&amp;nbsp;are&amp;nbsp;using&amp;nbsp;MySQL&amp;nbsp;as&amp;nbsp;an&amp;nbsp;anonymous&amp;nbsp;user&amp;nbsp;and&amp;nbsp;anonymous&amp;nbsp;users&amp;nbsp;are&amp;nbsp;not&amp;nbsp;allowed&amp;nbsp;to&amp;nbsp;change&amp;nbsp;passwords &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1132&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_PASSWORD_NOT_ALLOWED)&amp;nbsp;You&amp;nbsp;must&amp;nbsp;have&amp;nbsp;privileges&amp;nbsp;to&amp;nbsp;update&amp;nbsp;tables&amp;nbsp;in&amp;nbsp;the&amp;nbsp;mysql&amp;nbsp;database&amp;nbsp;to&amp;nbsp;be&amp;nbsp;able&amp;nbsp;to&amp;nbsp;change&amp;nbsp;passwords&amp;nbsp;for&amp;nbsp;others &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1133&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_PASSWORD_NO_MATCH)&amp;nbsp;Can't&amp;nbsp;find&amp;nbsp;any&amp;nbsp;matching&amp;nbsp;row&amp;nbsp;in&amp;nbsp;the&amp;nbsp;user&amp;nbsp;table &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1134&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_UPDATE_INFO)&amp;nbsp;Rows&amp;nbsp;matched:&amp;nbsp;%ld&amp;nbsp;Changed:&amp;nbsp;%ld&amp;nbsp;Warnings:&amp;nbsp;%ld &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1135&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_CANT_CREATE_THREAD)&amp;nbsp;Can't&amp;nbsp;create&amp;nbsp;a&amp;nbsp;new&amp;nbsp;thread&amp;nbsp;(errno&amp;nbsp;%d);&amp;nbsp;if&amp;nbsp;you&amp;nbsp;are&amp;nbsp;not&amp;nbsp;out&amp;nbsp;of&amp;nbsp;available&amp;nbsp;memory,&amp;nbsp;you&amp;nbsp;can&amp;nbsp;consult&amp;nbsp;the&amp;nbsp;manual&amp;nbsp;for&amp;nbsp;a&amp;nbsp;possible&amp;nbsp;OS-dependent&amp;nbsp;bug &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1136&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;21S01&amp;nbsp;(ER_WRONG_VALUE_COUNT_ON_ROW)&amp;nbsp;Column&amp;nbsp;count&amp;nbsp;doesn't&amp;nbsp;match&amp;nbsp;value&amp;nbsp;count&amp;nbsp;at&amp;nbsp;row&amp;nbsp;%ld &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1137&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_CANT_REOPEN_TABLE)&amp;nbsp;Can't&amp;nbsp;reopen&amp;nbsp;table:&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1138&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_INVALID_USE_OF_NULL)&amp;nbsp;Invalid&amp;nbsp;use&amp;nbsp;of&amp;nbsp;NULL&amp;nbsp;value &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1139&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_REGEXP_ERROR)&amp;nbsp;Got&amp;nbsp;error&amp;nbsp;'%s'&amp;nbsp;from&amp;nbsp;regexp &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1140&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_MIX_OF_GROUP_FUNC_AND_FIELDS)&amp;nbsp;Mixing&amp;nbsp;of&amp;nbsp;GROUP&amp;nbsp;columns&amp;nbsp;(MIN(),MAX(),COUNT(),...)&amp;nbsp;with&amp;nbsp;no&amp;nbsp;GROUP&amp;nbsp;columns&amp;nbsp;is&amp;nbsp;illegal&amp;nbsp;if&amp;nbsp;there&amp;nbsp;is&amp;nbsp;no&amp;nbsp;GROUP&amp;nbsp;BY&amp;nbsp;clause &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1141&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_NONEXISTING_GRANT)&amp;nbsp;There&amp;nbsp;is&amp;nbsp;no&amp;nbsp;such&amp;nbsp;grant&amp;nbsp;defined&amp;nbsp;for&amp;nbsp;user&amp;nbsp;'%s'&amp;nbsp;on&amp;nbsp;host&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1142&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_TABLEACCESS_DENIED_ERROR)&amp;nbsp;%s&amp;nbsp;command&amp;nbsp;denied&amp;nbsp;to&amp;nbsp;user&amp;nbsp;'%s'@'%s'&amp;nbsp;for&amp;nbsp;table&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1143&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_COLUMNACCESS_DENIED_ERROR)&amp;nbsp;%s&amp;nbsp;command&amp;nbsp;denied&amp;nbsp;to&amp;nbsp;user&amp;nbsp;'%s'@'%s'&amp;nbsp;for&amp;nbsp;column&amp;nbsp;'%s'&amp;nbsp;in&amp;nbsp;table&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1144&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_ILLEGAL_GRANT_FOR_TABLE)&amp;nbsp;Illegal&amp;nbsp;GRANT/REVOKE&amp;nbsp;command;&amp;nbsp;please&amp;nbsp;consult&amp;nbsp;the&amp;nbsp;manual&amp;nbsp;to&amp;nbsp;see&amp;nbsp;which&amp;nbsp;privileges&amp;nbsp;can&amp;nbsp;be&amp;nbsp;used &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1145&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_GRANT_WRONG_HOST_OR_USER)&amp;nbsp;The&amp;nbsp;host&amp;nbsp;or&amp;nbsp;user&amp;nbsp;argument&amp;nbsp;to&amp;nbsp;GRANT&amp;nbsp;is&amp;nbsp;too&amp;nbsp;long &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1146&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42S02&amp;nbsp;(ER_NO_SUCH_TABLE)&amp;nbsp;Table&amp;nbsp;'%s.%s'&amp;nbsp;doesn't&amp;nbsp;exist &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1147&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_NONEXISTING_TABLE_GRANT)&amp;nbsp;There&amp;nbsp;is&amp;nbsp;no&amp;nbsp;such&amp;nbsp;grant&amp;nbsp;defined&amp;nbsp;for&amp;nbsp;user&amp;nbsp;'%s'&amp;nbsp;on&amp;nbsp;host&amp;nbsp;'%s'&amp;nbsp;on&amp;nbsp;table&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1148&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_NOT_ALLOWED_COMMAND)&amp;nbsp;The&amp;nbsp;used&amp;nbsp;command&amp;nbsp;is&amp;nbsp;not&amp;nbsp;allowed&amp;nbsp;with&amp;nbsp;this&amp;nbsp;MySQL&amp;nbsp;version &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1149&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_SYNTAX_ERROR)&amp;nbsp;You&amp;nbsp;have&amp;nbsp;an&amp;nbsp;error&amp;nbsp;in&amp;nbsp;your&amp;nbsp;SQL&amp;nbsp;syntax;&amp;nbsp;check&amp;nbsp;the&amp;nbsp;manual&amp;nbsp;that&amp;nbsp;corresponds&amp;nbsp;to&amp;nbsp;your&amp;nbsp;MySQL&amp;nbsp;server&amp;nbsp;version&amp;nbsp;for&amp;nbsp;the&amp;nbsp;right&amp;nbsp;syntax&amp;nbsp;to&amp;nbsp;use &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1150&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_DELAYED_CANT_CHANGE_LOCK)&amp;nbsp;Delayed&amp;nbsp;insert&amp;nbsp;thread&amp;nbsp;couldn't&amp;nbsp;get&amp;nbsp;requested&amp;nbsp;lock&amp;nbsp;for&amp;nbsp;table&amp;nbsp;%s &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1151&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_TOO_MANY_DELAYED_THREADS)&amp;nbsp;Too&amp;nbsp;many&amp;nbsp;delayed&amp;nbsp;threads&amp;nbsp;in&amp;nbsp;use &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1152&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;08S01&amp;nbsp;(ER_ABORTING_CONNECTION)&amp;nbsp;Aborted&amp;nbsp;connection&amp;nbsp;%ld&amp;nbsp;to&amp;nbsp;db:&amp;nbsp;'%s'&amp;nbsp;user:&amp;nbsp;'%s'&amp;nbsp;(%s) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1153&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;08S01&amp;nbsp;(ER_NET_PACKET_TOO_LARGE)&amp;nbsp;Got&amp;nbsp;a&amp;nbsp;packet&amp;nbsp;bigger&amp;nbsp;than&amp;nbsp;'max_allowed_packet'&amp;nbsp;bytes &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1154&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;08S01&amp;nbsp;(ER_NET_READ_ERROR_FROM_PIPE)&amp;nbsp;Got&amp;nbsp;a&amp;nbsp;read&amp;nbsp;error&amp;nbsp;from&amp;nbsp;the&amp;nbsp;connection&amp;nbsp;pipe &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1155&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;08S01&amp;nbsp;(ER_NET_FCNTL_ERROR)&amp;nbsp;Got&amp;nbsp;an&amp;nbsp;error&amp;nbsp;from&amp;nbsp;fcntl() &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1156&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;08S01&amp;nbsp;(ER_NET_PACKETS_OUT_OF_ORDER)&amp;nbsp;Got&amp;nbsp;packets&amp;nbsp;out&amp;nbsp;of&amp;nbsp;order &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1157&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;08S01&amp;nbsp;(ER_NET_UNCOMPRESS_ERROR)&amp;nbsp;Couldn't&amp;nbsp;uncompress&amp;nbsp;communication&amp;nbsp;packet &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1158&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;08S01&amp;nbsp;(ER_NET_READ_ERROR)&amp;nbsp;Got&amp;nbsp;an&amp;nbsp;error&amp;nbsp;reading&amp;nbsp;communication&amp;nbsp;packets &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1159&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;08S01&amp;nbsp;(ER_NET_READ_INTERRUPTED)&amp;nbsp;Got&amp;nbsp;timeout&amp;nbsp;reading&amp;nbsp;communication&amp;nbsp;packets &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1160&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;08S01&amp;nbsp;(ER_NET_ERROR_ON_WRITE)&amp;nbsp;Got&amp;nbsp;an&amp;nbsp;error&amp;nbsp;writing&amp;nbsp;communication&amp;nbsp;packets &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1161&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;08S01&amp;nbsp;(ER_NET_WRITE_INTERRUPTED)&amp;nbsp;Got&amp;nbsp;timeout&amp;nbsp;writing&amp;nbsp;communication&amp;nbsp;packets &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1162&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_TOO_LONG_STRING)&amp;nbsp;Result&amp;nbsp;string&amp;nbsp;is&amp;nbsp;longer&amp;nbsp;than&amp;nbsp;'max_allowed_packet'&amp;nbsp;bytes &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1163&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_TABLE_CANT_HANDLE_BLOB)&amp;nbsp;The&amp;nbsp;used&amp;nbsp;table&amp;nbsp;type&amp;nbsp;doesn't&amp;nbsp;support&amp;nbsp;BLOB/TEXT&amp;nbsp;columns &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1164&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_TABLE_CANT_HANDLE_AUTO_INCREMENT)&amp;nbsp;The&amp;nbsp;used&amp;nbsp;table&amp;nbsp;type&amp;nbsp;doesn't&amp;nbsp;support&amp;nbsp;AUTO_INCREMENT&amp;nbsp;columns &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1165&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_DELAYED_INSERT_TABLE_LOCKED)&amp;nbsp;INSERT&amp;nbsp;DELAYED&amp;nbsp;can't&amp;nbsp;be&amp;nbsp;used&amp;nbsp;with&amp;nbsp;table&amp;nbsp;'%s'&amp;nbsp;because&amp;nbsp;it&amp;nbsp;is&amp;nbsp;locked&amp;nbsp;with&amp;nbsp;LOCK&amp;nbsp;TABLES &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1166&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_WRONG_COLUMN_NAME)&amp;nbsp;Incorrect&amp;nbsp;column&amp;nbsp;name&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1167&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_WRONG_KEY_COLUMN)&amp;nbsp;The&amp;nbsp;used&amp;nbsp;storage&amp;nbsp;engine&amp;nbsp;can't&amp;nbsp;index&amp;nbsp;column&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1168&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_WRONG_MRG_TABLE)&amp;nbsp;All&amp;nbsp;tables&amp;nbsp;in&amp;nbsp;the&amp;nbsp;MERGE&amp;nbsp;table&amp;nbsp;are&amp;nbsp;not&amp;nbsp;identically&amp;nbsp;defined &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1169&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;23000&amp;nbsp;(ER_DUP_UNIQUE)&amp;nbsp;Can't&amp;nbsp;write,&amp;nbsp;because&amp;nbsp;of&amp;nbsp;unique&amp;nbsp;constraint,&amp;nbsp;to&amp;nbsp;table&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1170&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_BLOB_KEY_WITHOUT_LENGTH)&amp;nbsp;BLOB/TEXT&amp;nbsp;column&amp;nbsp;'%s'&amp;nbsp;used&amp;nbsp;in&amp;nbsp;key&amp;nbsp;specification&amp;nbsp;without&amp;nbsp;a&amp;nbsp;key&amp;nbsp;length &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1171&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_PRIMARY_CANT_HAVE_NULL)&amp;nbsp;All&amp;nbsp;parts&amp;nbsp;of&amp;nbsp;a&amp;nbsp;PRIMARY&amp;nbsp;KEY&amp;nbsp;must&amp;nbsp;be&amp;nbsp;NOT&amp;nbsp;NULL;&amp;nbsp;if&amp;nbsp;you&amp;nbsp;need&amp;nbsp;NULL&amp;nbsp;in&amp;nbsp;a&amp;nbsp;key,&amp;nbsp;use&amp;nbsp;UNIQUE&amp;nbsp;instead &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1172&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_TOO_MANY_ROWS)&amp;nbsp;Result&amp;nbsp;consisted&amp;nbsp;of&amp;nbsp;more&amp;nbsp;than&amp;nbsp;one&amp;nbsp;row &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1173&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_REQUIRES_PRIMARY_KEY)&amp;nbsp;This&amp;nbsp;table&amp;nbsp;type&amp;nbsp;requires&amp;nbsp;a&amp;nbsp;primary&amp;nbsp;key &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1174&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_NO_RAID_COMPILED)&amp;nbsp;This&amp;nbsp;version&amp;nbsp;of&amp;nbsp;MySQL&amp;nbsp;is&amp;nbsp;not&amp;nbsp;compiled&amp;nbsp;with&amp;nbsp;RAID&amp;nbsp;support &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1175&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE)&amp;nbsp;You&amp;nbsp;are&amp;nbsp;using&amp;nbsp;safe&amp;nbsp;update&amp;nbsp;mode&amp;nbsp;and&amp;nbsp;you&amp;nbsp;tried&amp;nbsp;to&amp;nbsp;update&amp;nbsp;a&amp;nbsp;table&amp;nbsp;without&amp;nbsp;a&amp;nbsp;WHERE&amp;nbsp;that&amp;nbsp;uses&amp;nbsp;a&amp;nbsp;KEY&amp;nbsp;column &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1176&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_KEY_DOES_NOT_EXITS)&amp;nbsp;Key&amp;nbsp;'%s'&amp;nbsp;doesn't&amp;nbsp;exist&amp;nbsp;in&amp;nbsp;table&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1177&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_CHECK_NO_SUCH_TABLE)&amp;nbsp;Can't&amp;nbsp;open&amp;nbsp;table &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1178&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_CHECK_NOT_IMPLEMENTED)&amp;nbsp;The&amp;nbsp;storage&amp;nbsp;engine&amp;nbsp;for&amp;nbsp;the&amp;nbsp;table&amp;nbsp;doesn't&amp;nbsp;support&amp;nbsp;%s &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1179&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;25000&amp;nbsp;(ER_CANT_DO_THIS_DURING_AN_TRANSACTION)&amp;nbsp;You&amp;nbsp;are&amp;nbsp;not&amp;nbsp;allowed&amp;nbsp;to&amp;nbsp;execute&amp;nbsp;this&amp;nbsp;command&amp;nbsp;in&amp;nbsp;a&amp;nbsp;transaction &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1180&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_ERROR_DURING_COMMIT)&amp;nbsp;Got&amp;nbsp;error&amp;nbsp;%d&amp;nbsp;during&amp;nbsp;COMMIT &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1181&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_ERROR_DURING_ROLLBACK)&amp;nbsp;Got&amp;nbsp;error&amp;nbsp;%d&amp;nbsp;during&amp;nbsp;ROLLBACK &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1182&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_ERROR_DURING_FLUSH_LOGS)&amp;nbsp;Got&amp;nbsp;error&amp;nbsp;%d&amp;nbsp;during&amp;nbsp;FLUSH_LOGS &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1183&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_ERROR_DURING_CHECKPOINT)&amp;nbsp;Got&amp;nbsp;error&amp;nbsp;%d&amp;nbsp;during&amp;nbsp;CHECKPOINT &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1184&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;08S01&amp;nbsp;(ER_NEW_ABORTING_CONNECTION)&amp;nbsp;Aborted&amp;nbsp;connection&amp;nbsp;%ld&amp;nbsp;to&amp;nbsp;db:&amp;nbsp;'%s'&amp;nbsp;user:&amp;nbsp;'%s'&amp;nbsp;host:&amp;nbsp;`%s'&amp;nbsp;(%s) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1185&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_DUMP_NOT_IMPLEMENTED)&amp;nbsp;The&amp;nbsp;storage&amp;nbsp;engine&amp;nbsp;for&amp;nbsp;the&amp;nbsp;table&amp;nbsp;does&amp;nbsp;not&amp;nbsp;support&amp;nbsp;binary&amp;nbsp;table&amp;nbsp;dump &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1186&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_FLUSH_MASTER_BINLOG_CLOSED)&amp;nbsp;Binlog&amp;nbsp;closed,&amp;nbsp;cannot&amp;nbsp;RESET&amp;nbsp;MASTER &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1187&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_INDEX_REBUILD)&amp;nbsp;Failed&amp;nbsp;rebuilding&amp;nbsp;the&amp;nbsp;index&amp;nbsp;of&amp;nbsp;dumped&amp;nbsp;table&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1188&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_MASTER)&amp;nbsp;Error&amp;nbsp;from&amp;nbsp;master:&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1189&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;08S01&amp;nbsp;(ER_MASTER_NET_READ)&amp;nbsp;Net&amp;nbsp;error&amp;nbsp;reading&amp;nbsp;from&amp;nbsp;master &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1190&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;08S01&amp;nbsp;(ER_MASTER_NET_WRITE)&amp;nbsp;Net&amp;nbsp;error&amp;nbsp;writing&amp;nbsp;to&amp;nbsp;master &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1191&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_FT_MATCHING_KEY_NOT_FOUND)&amp;nbsp;Can't&amp;nbsp;find&amp;nbsp;FULLTEXT&amp;nbsp;index&amp;nbsp;matching&amp;nbsp;the&amp;nbsp;column&amp;nbsp;list &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1192&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_LOCK_OR_ACTIVE_TRANSACTION)&amp;nbsp;Can't&amp;nbsp;execute&amp;nbsp;the&amp;nbsp;given&amp;nbsp;command&amp;nbsp;because&amp;nbsp;you&amp;nbsp;have&amp;nbsp;active&amp;nbsp;locked&amp;nbsp;tables&amp;nbsp;or&amp;nbsp;an&amp;nbsp;active&amp;nbsp;transaction &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1193&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_UNKNOWN_SYSTEM_VARIABLE)&amp;nbsp;Unknown&amp;nbsp;system&amp;nbsp;variable&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1194&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_CRASHED_ON_USAGE)&amp;nbsp;Table&amp;nbsp;'%s'&amp;nbsp;is&amp;nbsp;marked&amp;nbsp;as&amp;nbsp;crashed&amp;nbsp;and&amp;nbsp;should&amp;nbsp;be&amp;nbsp;repaired &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1195&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_CRASHED_ON_REPAIR)&amp;nbsp;Table&amp;nbsp;'%s'&amp;nbsp;is&amp;nbsp;marked&amp;nbsp;as&amp;nbsp;crashed&amp;nbsp;and&amp;nbsp;last&amp;nbsp;(automatic?)&amp;nbsp;repair&amp;nbsp;failed &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1196&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_WARNING_NOT_COMPLETE_ROLLBACK)&amp;nbsp;Some&amp;nbsp;non-transactional&amp;nbsp;changed&amp;nbsp;tables&amp;nbsp;couldn't&amp;nbsp;be&amp;nbsp;rolled&amp;nbsp;back &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1197&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_TRANS_CACHE_FULL)&amp;nbsp;Multi-statement&amp;nbsp;transaction&amp;nbsp;required&amp;nbsp;more&amp;nbsp;than&amp;nbsp;'max_binlog_cache_size'&amp;nbsp;bytes&amp;nbsp;of&amp;nbsp;storage;&amp;nbsp;increase&amp;nbsp;this&amp;nbsp;mysqld&amp;nbsp;variable&amp;nbsp;and&amp;nbsp;try&amp;nbsp;again &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1198&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_SLAVE_MUST_STOP)&amp;nbsp;This&amp;nbsp;operation&amp;nbsp;cannot&amp;nbsp;be&amp;nbsp;performed&amp;nbsp;with&amp;nbsp;a&amp;nbsp;running&amp;nbsp;slave;&amp;nbsp;run&amp;nbsp;STOP&amp;nbsp;SLAVE&amp;nbsp;first &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1199&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_SLAVE_NOT_RUNNING)&amp;nbsp;This&amp;nbsp;operation&amp;nbsp;requires&amp;nbsp;a&amp;nbsp;running&amp;nbsp;slave;&amp;nbsp;configure&amp;nbsp;slave&amp;nbsp;and&amp;nbsp;do&amp;nbsp;START&amp;nbsp;SLAVE &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1200&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_BAD_SLAVE)&amp;nbsp;The&amp;nbsp;server&amp;nbsp;is&amp;nbsp;not&amp;nbsp;configured&amp;nbsp;as&amp;nbsp;slave;&amp;nbsp;fix&amp;nbsp;in&amp;nbsp;config&amp;nbsp;file&amp;nbsp;or&amp;nbsp;with&amp;nbsp;CHANGE&amp;nbsp;MASTER&amp;nbsp;TO &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1201&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_MASTER_INFO)&amp;nbsp;Could&amp;nbsp;not&amp;nbsp;initialize&amp;nbsp;master&amp;nbsp;info&amp;nbsp;structure;&amp;nbsp;more&amp;nbsp;error&amp;nbsp;messages&amp;nbsp;can&amp;nbsp;be&amp;nbsp;found&amp;nbsp;in&amp;nbsp;the&amp;nbsp;MySQL&amp;nbsp;error&amp;nbsp;log &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1202&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_SLAVE_THREAD)&amp;nbsp;Could&amp;nbsp;not&amp;nbsp;create&amp;nbsp;slave&amp;nbsp;thread;&amp;nbsp;check&amp;nbsp;system&amp;nbsp;resources &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1203&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_TOO_MANY_USER_CONNECTIONS)&amp;nbsp;User&amp;nbsp;%s&amp;nbsp;has&amp;nbsp;already&amp;nbsp;more&amp;nbsp;than&amp;nbsp;'max_user_connections'&amp;nbsp;active&amp;nbsp;connections &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1204&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_SET_CONSTANTS_ONLY)&amp;nbsp;You&amp;nbsp;may&amp;nbsp;only&amp;nbsp;use&amp;nbsp;constant&amp;nbsp;expressions&amp;nbsp;with&amp;nbsp;SET &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1205&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_LOCK_WAIT_TIMEOUT)&amp;nbsp;Lock&amp;nbsp;wait&amp;nbsp;timeout&amp;nbsp;exceeded;&amp;nbsp;try&amp;nbsp;restarting&amp;nbsp;transaction &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1206&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_LOCK_TABLE_FULL)&amp;nbsp;The&amp;nbsp;total&amp;nbsp;number&amp;nbsp;of&amp;nbsp;locks&amp;nbsp;exceeds&amp;nbsp;the&amp;nbsp;lock&amp;nbsp;table&amp;nbsp;size &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1207&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;25000&amp;nbsp;(ER_READ_ONLY_TRANSACTION)&amp;nbsp;Update&amp;nbsp;locks&amp;nbsp;cannot&amp;nbsp;be&amp;nbsp;acquired&amp;nbsp;during&amp;nbsp;a&amp;nbsp;READ&amp;nbsp;UNCOMMITTED&amp;nbsp;transaction &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1208&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_DROP_DB_WITH_READ_LOCK)&amp;nbsp;DROP&amp;nbsp;DATABASE&amp;nbsp;not&amp;nbsp;allowed&amp;nbsp;while&amp;nbsp;thread&amp;nbsp;is&amp;nbsp;holding&amp;nbsp;global&amp;nbsp;read&amp;nbsp;lock &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1209&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_CREATE_DB_WITH_READ_LOCK)&amp;nbsp;CREATE&amp;nbsp;DATABASE&amp;nbsp;not&amp;nbsp;allowed&amp;nbsp;while&amp;nbsp;thread&amp;nbsp;is&amp;nbsp;holding&amp;nbsp;global&amp;nbsp;read&amp;nbsp;lock &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1210&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_WRONG_ARGUMENTS)&amp;nbsp;Incorrect&amp;nbsp;arguments&amp;nbsp;to&amp;nbsp;%s &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1211&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_NO_PERMISSION_TO_CREATE_USER)&amp;nbsp;'%s'@'%s'&amp;nbsp;is&amp;nbsp;not&amp;nbsp;allowed&amp;nbsp;to&amp;nbsp;create&amp;nbsp;new&amp;nbsp;users &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1212&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_UNION_TABLES_IN_DIFFERENT_DIR)&amp;nbsp;Incorrect&amp;nbsp;table&amp;nbsp;definition;&amp;nbsp;all&amp;nbsp;MERGE&amp;nbsp;tables&amp;nbsp;must&amp;nbsp;be&amp;nbsp;in&amp;nbsp;the&amp;nbsp;same&amp;nbsp;database &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1213&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;40001&amp;nbsp;(ER_LOCK_DEADLOCK)&amp;nbsp;Deadlock&amp;nbsp;found&amp;nbsp;when&amp;nbsp;trying&amp;nbsp;to&amp;nbsp;get&amp;nbsp;lock;&amp;nbsp;try&amp;nbsp;restarting&amp;nbsp;transaction &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1214&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_TABLE_CANT_HANDLE_FT)&amp;nbsp;The&amp;nbsp;used&amp;nbsp;table&amp;nbsp;type&amp;nbsp;doesn't&amp;nbsp;support&amp;nbsp;FULLTEXT&amp;nbsp;indexes &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1215&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_CANNOT_ADD_FOREIGN)&amp;nbsp;Cannot&amp;nbsp;add&amp;nbsp;foreign&amp;nbsp;key&amp;nbsp;constraint &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1216&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;23000&amp;nbsp;(ER_NO_REFERENCED_ROW)&amp;nbsp;Cannot&amp;nbsp;add&amp;nbsp;or&amp;nbsp;update&amp;nbsp;a&amp;nbsp;child&amp;nbsp;row:&amp;nbsp;a&amp;nbsp;foreign&amp;nbsp;key&amp;nbsp;constraint&amp;nbsp;fails &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1217&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;23000&amp;nbsp;(ER_ROW_IS_REFERENCED)&amp;nbsp;Cannot&amp;nbsp;delete&amp;nbsp;or&amp;nbsp;update&amp;nbsp;a&amp;nbsp;parent&amp;nbsp;row:&amp;nbsp;a&amp;nbsp;foreign&amp;nbsp;key&amp;nbsp;constraint&amp;nbsp;fails &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1218&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;08S01&amp;nbsp;(ER_CONNECT_TO_MASTER)&amp;nbsp;Error&amp;nbsp;connecting&amp;nbsp;to&amp;nbsp;master:&amp;nbsp;%s &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1219&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_QUERY_ON_MASTER)&amp;nbsp;Error&amp;nbsp;running&amp;nbsp;query&amp;nbsp;on&amp;nbsp;master:&amp;nbsp;%s &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1220&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_ERROR_WHEN_EXECUTING_COMMAND)&amp;nbsp;Error&amp;nbsp;when&amp;nbsp;executing&amp;nbsp;command&amp;nbsp;%s:&amp;nbsp;%s &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1221&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_WRONG_USAGE)&amp;nbsp;Incorrect&amp;nbsp;usage&amp;nbsp;of&amp;nbsp;%s&amp;nbsp;and&amp;nbsp;%s &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1222&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;21000&amp;nbsp;(ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT)&amp;nbsp;The&amp;nbsp;used&amp;nbsp;SELECT&amp;nbsp;statements&amp;nbsp;have&amp;nbsp;a&amp;nbsp;different&amp;nbsp;number&amp;nbsp;of&amp;nbsp;columns &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1223&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_CANT_UPDATE_WITH_READLOCK)&amp;nbsp;Can't&amp;nbsp;execute&amp;nbsp;the&amp;nbsp;query&amp;nbsp;because&amp;nbsp;you&amp;nbsp;have&amp;nbsp;a&amp;nbsp;conflicting&amp;nbsp;read&amp;nbsp;lock &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1224&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_MIXING_NOT_ALLOWED)&amp;nbsp;Mixing&amp;nbsp;of&amp;nbsp;transactional&amp;nbsp;and&amp;nbsp;non-transactional&amp;nbsp;tables&amp;nbsp;is&amp;nbsp;disabled &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1225&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_DUP_ARGUMENT)&amp;nbsp;Option&amp;nbsp;'%s'&amp;nbsp;used&amp;nbsp;twice&amp;nbsp;in&amp;nbsp;statement &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1226&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_USER_LIMIT_REACHED)&amp;nbsp;User&amp;nbsp;'%s'&amp;nbsp;has&amp;nbsp;exceeded&amp;nbsp;the&amp;nbsp;'%s'&amp;nbsp;resource&amp;nbsp;(current&amp;nbsp;value:&amp;nbsp;%ld) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1227&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_SPECIFIC_ACCESS_DENIED_ERROR)&amp;nbsp;Access&amp;nbsp;denied;&amp;nbsp;you&amp;nbsp;need&amp;nbsp;the&amp;nbsp;%s&amp;nbsp;privilege&amp;nbsp;for&amp;nbsp;this&amp;nbsp;operation &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1228&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_LOCAL_VARIABLE)&amp;nbsp;Variable&amp;nbsp;'%s'&amp;nbsp;is&amp;nbsp;a&amp;nbsp;SESSION&amp;nbsp;variable&amp;nbsp;and&amp;nbsp;can't&amp;nbsp;be&amp;nbsp;used&amp;nbsp;with&amp;nbsp;SET&amp;nbsp;GLOBAL &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1229&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_GLOBAL_VARIABLE)&amp;nbsp;Variable&amp;nbsp;'%s'&amp;nbsp;is&amp;nbsp;a&amp;nbsp;GLOBAL&amp;nbsp;variable&amp;nbsp;and&amp;nbsp;should&amp;nbsp;be&amp;nbsp;set&amp;nbsp;with&amp;nbsp;SET&amp;nbsp;GLOBAL &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1230&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_NO_DEFAULT)&amp;nbsp;Variable&amp;nbsp;'%s'&amp;nbsp;doesn't&amp;nbsp;have&amp;nbsp;a&amp;nbsp;default&amp;nbsp;value &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1231&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_WRONG_VALUE_FOR_VAR)&amp;nbsp;Variable&amp;nbsp;'%s'&amp;nbsp;can't&amp;nbsp;be&amp;nbsp;set&amp;nbsp;to&amp;nbsp;the&amp;nbsp;value&amp;nbsp;of&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1232&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_WRONG_TYPE_FOR_VAR)&amp;nbsp;Incorrect&amp;nbsp;argument&amp;nbsp;type&amp;nbsp;to&amp;nbsp;variable&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1233&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_VAR_CANT_BE_READ)&amp;nbsp;Variable&amp;nbsp;'%s'&amp;nbsp;can&amp;nbsp;only&amp;nbsp;be&amp;nbsp;set,&amp;nbsp;not&amp;nbsp;read &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1234&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_CANT_USE_OPTION_HERE)&amp;nbsp;Incorrect&amp;nbsp;usage/placement&amp;nbsp;of&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1235&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_NOT_SUPPORTED_YET)&amp;nbsp;This&amp;nbsp;version&amp;nbsp;of&amp;nbsp;MySQL&amp;nbsp;doesn't&amp;nbsp;yet&amp;nbsp;support&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1236&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_MASTER_FATAL_ERROR_READING_BINLOG)&amp;nbsp;Got&amp;nbsp;fatal&amp;nbsp;error&amp;nbsp;%d:&amp;nbsp;'%s'&amp;nbsp;from&amp;nbsp;master&amp;nbsp;when&amp;nbsp;reading&amp;nbsp;data&amp;nbsp;from&amp;nbsp;binary&amp;nbsp;log &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1237&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_SLAVE_IGNORED_TABLE)&amp;nbsp;Slave&amp;nbsp;SQL&amp;nbsp;thread&amp;nbsp;ignored&amp;nbsp;the&amp;nbsp;query&amp;nbsp;because&amp;nbsp;of&amp;nbsp;replicate-*-table&amp;nbsp;rules &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1238&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_INCORRECT_GLOBAL_LOCAL_VAR)&amp;nbsp;Variable&amp;nbsp;'%s'&amp;nbsp;is&amp;nbsp;a&amp;nbsp;%s&amp;nbsp;variable &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1239&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_WRONG_FK_DEF)&amp;nbsp;Incorrect&amp;nbsp;foreign&amp;nbsp;key&amp;nbsp;definition&amp;nbsp;for&amp;nbsp;'%s':&amp;nbsp;%s &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1240&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_KEY_REF_DO_NOT_MATCH_TABLE_REF)&amp;nbsp;Key&amp;nbsp;reference&amp;nbsp;and&amp;nbsp;table&amp;nbsp;reference&amp;nbsp;don't&amp;nbsp;match &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1241&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;21000&amp;nbsp;(ER_OPERAND_COLUMNS)&amp;nbsp;Operand&amp;nbsp;should&amp;nbsp;contain&amp;nbsp;%d&amp;nbsp;column(s) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1242&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;21000&amp;nbsp;(ER_SUBQUERY_NO_1_ROW)&amp;nbsp;Subquery&amp;nbsp;returns&amp;nbsp;more&amp;nbsp;than&amp;nbsp;1&amp;nbsp;row &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1243&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_UNKNOWN_STMT_HANDLER)&amp;nbsp;Unknown&amp;nbsp;prepared&amp;nbsp;statement&amp;nbsp;handler&amp;nbsp;(%.*s)&amp;nbsp;given&amp;nbsp;to&amp;nbsp;%s &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1244&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_CORRUPT_HELP_DB)&amp;nbsp;Help&amp;nbsp;database&amp;nbsp;is&amp;nbsp;corrupt&amp;nbsp;or&amp;nbsp;does&amp;nbsp;not&amp;nbsp;exist &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1245&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_CYCLIC_REFERENCE)&amp;nbsp;Cyclic&amp;nbsp;reference&amp;nbsp;on&amp;nbsp;subqueries &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1246&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_AUTO_CONVERT)&amp;nbsp;Converting&amp;nbsp;column&amp;nbsp;'%s'&amp;nbsp;from&amp;nbsp;%s&amp;nbsp;to&amp;nbsp;%s &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1247&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42S22&amp;nbsp;(ER_ILLEGAL_REFERENCE)&amp;nbsp;Reference&amp;nbsp;'%s'&amp;nbsp;not&amp;nbsp;supported&amp;nbsp;(%s) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1248&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_DERIVED_MUST_HAVE_ALIAS)&amp;nbsp;Every&amp;nbsp;derived&amp;nbsp;table&amp;nbsp;must&amp;nbsp;have&amp;nbsp;its&amp;nbsp;own&amp;nbsp;alias &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1249&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;01000&amp;nbsp;(ER_SELECT_REDUCED)&amp;nbsp;Select&amp;nbsp;%u&amp;nbsp;was&amp;nbsp;reduced&amp;nbsp;during&amp;nbsp;optimization &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1250&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_TABLENAME_NOT_ALLOWED_HERE)&amp;nbsp;Table&amp;nbsp;'%s'&amp;nbsp;from&amp;nbsp;one&amp;nbsp;of&amp;nbsp;the&amp;nbsp;SELECTs&amp;nbsp;cannot&amp;nbsp;be&amp;nbsp;used&amp;nbsp;in&amp;nbsp;%s &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1251&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;08004&amp;nbsp;(ER_NOT_SUPPORTED_AUTH_MODE)&amp;nbsp;Client&amp;nbsp;does&amp;nbsp;not&amp;nbsp;support&amp;nbsp;authentication&amp;nbsp;protocol&amp;nbsp;requested&amp;nbsp;by&amp;nbsp;server;&amp;nbsp;consider&amp;nbsp;upgrading&amp;nbsp;MySQL&amp;nbsp;client &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1252&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_SPATIAL_CANT_HAVE_NULL)&amp;nbsp;All&amp;nbsp;parts&amp;nbsp;of&amp;nbsp;a&amp;nbsp;SPATIAL&amp;nbsp;index&amp;nbsp;must&amp;nbsp;be&amp;nbsp;NOT&amp;nbsp;NULL &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1253&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_COLLATION_CHARSET_MISMATCH)&amp;nbsp;COLLATION&amp;nbsp;'%s'&amp;nbsp;is&amp;nbsp;not&amp;nbsp;valid&amp;nbsp;for&amp;nbsp;CHARACTER&amp;nbsp;SET&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1254&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_SLAVE_WAS_RUNNING)&amp;nbsp;Slave&amp;nbsp;is&amp;nbsp;already&amp;nbsp;running &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1255&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_SLAVE_WAS_NOT_RUNNING)&amp;nbsp;Slave&amp;nbsp;has&amp;nbsp;already&amp;nbsp;been&amp;nbsp;stopped &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1256&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_TOO_BIG_FOR_UNCOMPRESS)&amp;nbsp;Uncompressed&amp;nbsp;data&amp;nbsp;size&amp;nbsp;too&amp;nbsp;large;&amp;nbsp;the&amp;nbsp;maximum&amp;nbsp;size&amp;nbsp;is&amp;nbsp;%d&amp;nbsp;(probably,&amp;nbsp;length&amp;nbsp;of&amp;nbsp;uncompressed&amp;nbsp;data&amp;nbsp;was&amp;nbsp;corrupted) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1257&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_ZLIB_Z_MEM_ERROR)&amp;nbsp;ZLIB:&amp;nbsp;Not&amp;nbsp;enough&amp;nbsp;memory &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1258&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_ZLIB_Z_BUF_ERROR)&amp;nbsp;ZLIB:&amp;nbsp;Not&amp;nbsp;enough&amp;nbsp;room&amp;nbsp;in&amp;nbsp;the&amp;nbsp;output&amp;nbsp;buffer&amp;nbsp;(probably,&amp;nbsp;length&amp;nbsp;of&amp;nbsp;uncompressed&amp;nbsp;data&amp;nbsp;was&amp;nbsp;corrupted) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1259&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_ZLIB_Z_DATA_ERROR)&amp;nbsp;ZLIB:&amp;nbsp;Input&amp;nbsp;data&amp;nbsp;corrupted &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1260&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_CUT_VALUE_GROUP_CONCAT)&amp;nbsp;%d&amp;nbsp;line(s)&amp;nbsp;were&amp;nbsp;cut&amp;nbsp;by&amp;nbsp;GROUP_CONCAT() &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1261&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;01000&amp;nbsp;(ER_WARN_TOO_FEW_RECORDS)&amp;nbsp;Row&amp;nbsp;%ld&amp;nbsp;doesn't&amp;nbsp;contain&amp;nbsp;data&amp;nbsp;for&amp;nbsp;all&amp;nbsp;columns &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1262&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;01000&amp;nbsp;(ER_WARN_TOO_MANY_RECORDS)&amp;nbsp;Row&amp;nbsp;%ld&amp;nbsp;was&amp;nbsp;truncated;&amp;nbsp;it&amp;nbsp;contained&amp;nbsp;more&amp;nbsp;data&amp;nbsp;than&amp;nbsp;there&amp;nbsp;were&amp;nbsp;input&amp;nbsp;columns &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1263&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;01000&amp;nbsp;(ER_WARN_NULL_TO_NOTNULL)&amp;nbsp;Data&amp;nbsp;truncated;&amp;nbsp;NULL&amp;nbsp;supplied&amp;nbsp;to&amp;nbsp;NOT&amp;nbsp;NULL&amp;nbsp;column&amp;nbsp;'%s'&amp;nbsp;at&amp;nbsp;row&amp;nbsp;%ld &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1264&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;01000&amp;nbsp;(ER_WARN_DATA_OUT_OF_RANGE)&amp;nbsp;Data&amp;nbsp;truncated;&amp;nbsp;out&amp;nbsp;of&amp;nbsp;range&amp;nbsp;for&amp;nbsp;column&amp;nbsp;'%s'&amp;nbsp;at&amp;nbsp;row&amp;nbsp;%ld &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1265&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;01000&amp;nbsp;(ER_WARN_DATA_TRUNCATED)&amp;nbsp;Data&amp;nbsp;truncated&amp;nbsp;for&amp;nbsp;column&amp;nbsp;'%s'&amp;nbsp;at&amp;nbsp;row&amp;nbsp;%ld &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1266&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_WARN_USING_OTHER_HANDLER)&amp;nbsp;Using&amp;nbsp;storage&amp;nbsp;engine&amp;nbsp;%s&amp;nbsp;for&amp;nbsp;table&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1267&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_CANT_AGGREGATE_2COLLATIONS)&amp;nbsp;Illegal&amp;nbsp;mix&amp;nbsp;of&amp;nbsp;collations&amp;nbsp;(%s,%s)&amp;nbsp;and&amp;nbsp;(%s,%s)&amp;nbsp;for&amp;nbsp;operation&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1268&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_DROP_USER)&amp;nbsp;Can't&amp;nbsp;drop&amp;nbsp;one&amp;nbsp;or&amp;nbsp;more&amp;nbsp;of&amp;nbsp;the&amp;nbsp;requested&amp;nbsp;users &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1269&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_REVOKE_GRANTS)&amp;nbsp;Can't&amp;nbsp;revoke&amp;nbsp;all&amp;nbsp;privileges,&amp;nbsp;grant&amp;nbsp;for&amp;nbsp;one&amp;nbsp;or&amp;nbsp;more&amp;nbsp;of&amp;nbsp;the&amp;nbsp;requested&amp;nbsp;users &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1270&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_CANT_AGGREGATE_3COLLATIONS)&amp;nbsp;Illegal&amp;nbsp;mix&amp;nbsp;of&amp;nbsp;collations&amp;nbsp;(%s,%s),&amp;nbsp;(%s,%s),&amp;nbsp;(%s,%s)&amp;nbsp;for&amp;nbsp;operation&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1271&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_CANT_AGGREGATE_NCOLLATIONS)&amp;nbsp;Illegal&amp;nbsp;mix&amp;nbsp;of&amp;nbsp;collations&amp;nbsp;for&amp;nbsp;operation&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1272&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_VARIABLE_IS_NOT_STRUCT)&amp;nbsp;Variable&amp;nbsp;'%s'&amp;nbsp;is&amp;nbsp;not&amp;nbsp;a&amp;nbsp;variable&amp;nbsp;component&amp;nbsp;(can't&amp;nbsp;be&amp;nbsp;used&amp;nbsp;as&amp;nbsp;XXXX.variable_name) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1273&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_UNKNOWN_COLLATION)&amp;nbsp;Unknown&amp;nbsp;collation:&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1274&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_SLAVE_IGNORED_SSL_PARAMS)&amp;nbsp;SSL&amp;nbsp;parameters&amp;nbsp;in&amp;nbsp;CHANGE&amp;nbsp;MASTER&amp;nbsp;are&amp;nbsp;ignored&amp;nbsp;because&amp;nbsp;this&amp;nbsp;MySQL&amp;nbsp;slave&amp;nbsp;was&amp;nbsp;compiled&amp;nbsp;without&amp;nbsp;SSL&amp;nbsp;support;&amp;nbsp;they&amp;nbsp;can&amp;nbsp;be&amp;nbsp;used&amp;nbsp;later&amp;nbsp;if&amp;nbsp;MySQL&amp;nbsp;slave&amp;nbsp;with&amp;nbsp;SSL&amp;nbsp;is&amp;nbsp;started &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1275&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_SERVER_IS_IN_SECURE_AUTH_MODE)&amp;nbsp;Server&amp;nbsp;is&amp;nbsp;running&amp;nbsp;in&amp;nbsp;--secure-auth&amp;nbsp;mode,&amp;nbsp;but&amp;nbsp;'%s'@'%s'&amp;nbsp;has&amp;nbsp;a&amp;nbsp;password&amp;nbsp;in&amp;nbsp;the&amp;nbsp;old&amp;nbsp;format;&amp;nbsp;please&amp;nbsp;change&amp;nbsp;the&amp;nbsp;password&amp;nbsp;to&amp;nbsp;the&amp;nbsp;new&amp;nbsp;format &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1276&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_WARN_FIELD_RESOLVED)&amp;nbsp;Field&amp;nbsp;or&amp;nbsp;reference&amp;nbsp;'%s%s%s%s%s'&amp;nbsp;of&amp;nbsp;SELECT&amp;nbsp;#%d&amp;nbsp;was&amp;nbsp;resolved&amp;nbsp;in&amp;nbsp;SELECT&amp;nbsp;#%d &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1277&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_BAD_SLAVE_UNTIL_COND)&amp;nbsp;Incorrect&amp;nbsp;parameter&amp;nbsp;or&amp;nbsp;combination&amp;nbsp;of&amp;nbsp;parameters&amp;nbsp;for&amp;nbsp;START&amp;nbsp;SLAVE&amp;nbsp;UNTIL &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1278&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_MISSING_SKIP_SLAVE)&amp;nbsp;It&amp;nbsp;is&amp;nbsp;recommended&amp;nbsp;to&amp;nbsp;use&amp;nbsp;--skip-slave-start&amp;nbsp;when&amp;nbsp;doing&amp;nbsp;step-by-step&amp;nbsp;replication&amp;nbsp;with&amp;nbsp;START&amp;nbsp;SLAVE&amp;nbsp;UNTIL;&amp;nbsp;otherwise,&amp;nbsp;you&amp;nbsp;will&amp;nbsp;get&amp;nbsp;problems&amp;nbsp;if&amp;nbsp;you&amp;nbsp;get&amp;nbsp;an&amp;nbsp;unexpected&amp;nbsp;slave's&amp;nbsp;mysqld&amp;nbsp;restart &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1279&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_UNTIL_COND_IGNORED)&amp;nbsp;SQL&amp;nbsp;thread&amp;nbsp;is&amp;nbsp;not&amp;nbsp;to&amp;nbsp;be&amp;nbsp;started&amp;nbsp;so&amp;nbsp;UNTIL&amp;nbsp;options&amp;nbsp;are&amp;nbsp;ignored &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1280&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_WRONG_NAME_FOR_INDEX)&amp;nbsp;Incorrect&amp;nbsp;index&amp;nbsp;name&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1281&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_WRONG_NAME_FOR_CATALOG)&amp;nbsp;Incorrect&amp;nbsp;catalog&amp;nbsp;name&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1282&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_WARN_QC_RESIZE)&amp;nbsp;Query&amp;nbsp;cache&amp;nbsp;failed&amp;nbsp;to&amp;nbsp;set&amp;nbsp;size&amp;nbsp;%lu;&amp;nbsp;new&amp;nbsp;query&amp;nbsp;cache&amp;nbsp;size&amp;nbsp;is&amp;nbsp;%lu &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1283&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_BAD_FT_COLUMN)&amp;nbsp;Column&amp;nbsp;'%s'&amp;nbsp;cannot&amp;nbsp;be&amp;nbsp;part&amp;nbsp;of&amp;nbsp;FULLTEXT&amp;nbsp;index &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1284&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_UNKNOWN_KEY_CACHE)&amp;nbsp;Unknown&amp;nbsp;key&amp;nbsp;cache&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1285&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_WARN_HOSTNAME_WONT_WORK)&amp;nbsp;MySQL&amp;nbsp;is&amp;nbsp;started&amp;nbsp;in&amp;nbsp;--skip-name-resolve&amp;nbsp;mode;&amp;nbsp;you&amp;nbsp;must&amp;nbsp;restart&amp;nbsp;it&amp;nbsp;without&amp;nbsp;this&amp;nbsp;switch&amp;nbsp;for&amp;nbsp;this&amp;nbsp;grant&amp;nbsp;to&amp;nbsp;work &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1286&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_UNKNOWN_STORAGE_ENGINE)&amp;nbsp;Unknown&amp;nbsp;table&amp;nbsp;engine&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1287&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_WARN_DEPRECATED_SYNTAX)&amp;nbsp;'%s'&amp;nbsp;is&amp;nbsp;deprecated;&amp;nbsp;use&amp;nbsp;'%s'&amp;nbsp;instead &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1288&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_NON_UPDATABLE_TABLE)&amp;nbsp;The&amp;nbsp;target&amp;nbsp;table&amp;nbsp;%s&amp;nbsp;of&amp;nbsp;the&amp;nbsp;%s&amp;nbsp;is&amp;nbsp;not&amp;nbsp;updatable &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1289&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_FEATURE_DISABLED)&amp;nbsp;The&amp;nbsp;'%s'&amp;nbsp;feature&amp;nbsp;is&amp;nbsp;disabled;&amp;nbsp;you&amp;nbsp;need&amp;nbsp;MySQL&amp;nbsp;built&amp;nbsp;with&amp;nbsp;'%s'&amp;nbsp;to&amp;nbsp;have&amp;nbsp;it&amp;nbsp;working &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1290&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_OPTION_PREVENTS_STATEMENT)&amp;nbsp;The&amp;nbsp;MySQL&amp;nbsp;server&amp;nbsp;is&amp;nbsp;running&amp;nbsp;with&amp;nbsp;the&amp;nbsp;%s&amp;nbsp;option&amp;nbsp;so&amp;nbsp;it&amp;nbsp;cannot&amp;nbsp;execute&amp;nbsp;this&amp;nbsp;statement &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1291&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_DUPLICATED_VALUE_IN_TYPE)&amp;nbsp;Column&amp;nbsp;'%s'&amp;nbsp;has&amp;nbsp;duplicated&amp;nbsp;value&amp;nbsp;'%s'&amp;nbsp;in&amp;nbsp;%s &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1292&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_TRUNCATED_WRONG_VALUE)&amp;nbsp;Truncated&amp;nbsp;incorrect&amp;nbsp;%s&amp;nbsp;value:&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1293&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_TOO_MUCH_AUTO_TIMESTAMP_COLS)&amp;nbsp;Incorrect&amp;nbsp;table&amp;nbsp;definition;&amp;nbsp;there&amp;nbsp;can&amp;nbsp;be&amp;nbsp;only&amp;nbsp;one&amp;nbsp;TIMESTAMP&amp;nbsp;column&amp;nbsp;with&amp;nbsp;CURRENT_TIMESTAMP&amp;nbsp;in&amp;nbsp;DEFAULT&amp;nbsp;or&amp;nbsp;ON&amp;nbsp;UPDATE&amp;nbsp;clause &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1294&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_INVALID_ON_UPDATE)&amp;nbsp;Invalid&amp;nbsp;ON&amp;nbsp;UPDATE&amp;nbsp;clause&amp;nbsp;for&amp;nbsp;'%s'&amp;nbsp;column &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1295&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_UNSUPPORTED_PS)&amp;nbsp;This&amp;nbsp;command&amp;nbsp;is&amp;nbsp;not&amp;nbsp;supported&amp;nbsp;in&amp;nbsp;the&amp;nbsp;prepared&amp;nbsp;statement&amp;nbsp;protocol&amp;nbsp;yet &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1296&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_GET_ERRMSG)&amp;nbsp;Got&amp;nbsp;error&amp;nbsp;%d&amp;nbsp;'%s'&amp;nbsp;from&amp;nbsp;%s &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1297&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_GET_TEMPORARY_ERRMSG)&amp;nbsp;Got&amp;nbsp;temporary&amp;nbsp;error&amp;nbsp;%d&amp;nbsp;'%s'&amp;nbsp;from&amp;nbsp;%s &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1298&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_UNKNOWN_TIME_ZONE)&amp;nbsp;Unknown&amp;nbsp;or&amp;nbsp;incorrect&amp;nbsp;time&amp;nbsp;zone:&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1299&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_WARN_INVALID_TIMESTAMP)&amp;nbsp;Invalid&amp;nbsp;TIMESTAMP&amp;nbsp;value&amp;nbsp;in&amp;nbsp;column&amp;nbsp;'%s'&amp;nbsp;at&amp;nbsp;row&amp;nbsp;%ld &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1300&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_INVALID_CHARACTER_STRING)&amp;nbsp;Invalid&amp;nbsp;%s&amp;nbsp;character&amp;nbsp;string:&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1301&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_WARN_ALLOWED_PACKET_OVERFLOWED)&amp;nbsp;Result&amp;nbsp;of&amp;nbsp;%s()&amp;nbsp;was&amp;nbsp;larger&amp;nbsp;than&amp;nbsp;max_allowed_packet&amp;nbsp;(%d)&amp;nbsp;-&amp;nbsp;truncated &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1302&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;2F003&amp;nbsp;(ER_SP_NO_RECURSIVE_CREATE)&amp;nbsp;Can't&amp;nbsp;create&amp;nbsp;a&amp;nbsp;%s&amp;nbsp;from&amp;nbsp;within&amp;nbsp;another&amp;nbsp;stored&amp;nbsp;routine &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1303&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_SP_ALREADY_EXISTS)&amp;nbsp;%s&amp;nbsp;%s&amp;nbsp;already&amp;nbsp;exists &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1304&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_SP_DOES_NOT_EXIST)&amp;nbsp;%s&amp;nbsp;%s&amp;nbsp;does&amp;nbsp;not&amp;nbsp;exist &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1305&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_SP_DROP_FAILED)&amp;nbsp;Failed&amp;nbsp;to&amp;nbsp;DROP&amp;nbsp;%s&amp;nbsp;%s &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1306&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_SP_STORE_FAILED)&amp;nbsp;Failed&amp;nbsp;to&amp;nbsp;CREATE&amp;nbsp;%s&amp;nbsp;%s &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1307&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_SP_LILABEL_MISMATCH)&amp;nbsp;%s&amp;nbsp;with&amp;nbsp;no&amp;nbsp;matching&amp;nbsp;label:&amp;nbsp;%s &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1308&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_SP_LABEL_REDEFINE)&amp;nbsp;Redefining&amp;nbsp;label&amp;nbsp;%s &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1309&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_SP_LABEL_MISMATCH)&amp;nbsp;End-label&amp;nbsp;%s&amp;nbsp;without&amp;nbsp;match &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1310&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;01000&amp;nbsp;(ER_SP_UNINIT_VAR)&amp;nbsp;Referring&amp;nbsp;to&amp;nbsp;uninitialized&amp;nbsp;variable&amp;nbsp;%s &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1311&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;0A000&amp;nbsp;(ER_SP_BADSELECT)&amp;nbsp;SELECT&amp;nbsp;in&amp;nbsp;a&amp;nbsp;stored&amp;nbsp;procedure&amp;nbsp;must&amp;nbsp;have&amp;nbsp;INTO &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1312&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_SP_BADRETURN)&amp;nbsp;RETURN&amp;nbsp;is&amp;nbsp;only&amp;nbsp;allowed&amp;nbsp;in&amp;nbsp;a&amp;nbsp;FUNCTION &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1313&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;0A000&amp;nbsp;(ER_SP_BADSTATEMENT)&amp;nbsp;Statements&amp;nbsp;like&amp;nbsp;SELECT,&amp;nbsp;INSERT,&amp;nbsp;UPDATE&amp;nbsp;(and&amp;nbsp;others)&amp;nbsp;are&amp;nbsp;not&amp;nbsp;allowed&amp;nbsp;in&amp;nbsp;a&amp;nbsp;FUNCTION &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1314&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_UPDATE_LOG_DEPRECATED_IGNORED)&amp;nbsp;The&amp;nbsp;update&amp;nbsp;log&amp;nbsp;is&amp;nbsp;deprecated&amp;nbsp;and&amp;nbsp;replaced&amp;nbsp;by&amp;nbsp;the&amp;nbsp;binary&amp;nbsp;log;&amp;nbsp;SET&amp;nbsp;SQL_LOG_UPDATE&amp;nbsp;has&amp;nbsp;been&amp;nbsp;ignored &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1315&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_UPDATE_LOG_DEPRECATED_TRANSLATED)&amp;nbsp;The&amp;nbsp;update&amp;nbsp;log&amp;nbsp;is&amp;nbsp;deprecated&amp;nbsp;and&amp;nbsp;replaced&amp;nbsp;by&amp;nbsp;the&amp;nbsp;binary&amp;nbsp;log;&amp;nbsp;SET&amp;nbsp;SQL_LOG_UPDATE&amp;nbsp;has&amp;nbsp;been&amp;nbsp;translated&amp;nbsp;to&amp;nbsp;SET&amp;nbsp;SQL_LOG_BIN &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1316&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;70100&amp;nbsp;(ER_QUERY_INTERRUPTED)&amp;nbsp;Query&amp;nbsp;execution&amp;nbsp;was&amp;nbsp;interrupted &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1317&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_SP_WRONG_NO_OF_ARGS)&amp;nbsp;Incorrect&amp;nbsp;number&amp;nbsp;of&amp;nbsp;arguments&amp;nbsp;for&amp;nbsp;%s&amp;nbsp;%s;&amp;nbsp;expected&amp;nbsp;%u,&amp;nbsp;got&amp;nbsp;%u &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1318&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_SP_COND_MISMATCH)&amp;nbsp;Undefined&amp;nbsp;CONDITION:&amp;nbsp;%s &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1319&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_SP_NORETURN)&amp;nbsp;No&amp;nbsp;RETURN&amp;nbsp;found&amp;nbsp;in&amp;nbsp;FUNCTION&amp;nbsp;%s &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1320&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;2F005&amp;nbsp;(ER_SP_NORETURNEND)&amp;nbsp;FUNCTION&amp;nbsp;%s&amp;nbsp;ended&amp;nbsp;without&amp;nbsp;RETURN &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1321&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_SP_BAD_CURSOR_QUERY)&amp;nbsp;Cursor&amp;nbsp;statement&amp;nbsp;must&amp;nbsp;be&amp;nbsp;a&amp;nbsp;SELECT &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1322&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_SP_BAD_CURSOR_SELECT)&amp;nbsp;Cursor&amp;nbsp;SELECT&amp;nbsp;must&amp;nbsp;not&amp;nbsp;have&amp;nbsp;INTO &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1323&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_SP_CURSOR_MISMATCH)&amp;nbsp;Undefined&amp;nbsp;CURSOR:&amp;nbsp;%s &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1324&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;24000&amp;nbsp;(ER_SP_CURSOR_ALREADY_OPEN)&amp;nbsp;Cursor&amp;nbsp;is&amp;nbsp;already&amp;nbsp;open &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1325&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;24000&amp;nbsp;(ER_SP_CURSOR_NOT_OPEN)&amp;nbsp;Cursor&amp;nbsp;is&amp;nbsp;not&amp;nbsp;open &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1326&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_SP_UNDECLARED_VAR)&amp;nbsp;Undeclared&amp;nbsp;variable:&amp;nbsp;%s &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1327&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_SP_WRONG_NO_OF_FETCH_ARGS)&amp;nbsp;Incorrect&amp;nbsp;number&amp;nbsp;of&amp;nbsp;FETCH&amp;nbsp;variables &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1328&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;02000&amp;nbsp;(ER_SP_FETCH_NO_DATA)&amp;nbsp;No&amp;nbsp;data&amp;nbsp;to&amp;nbsp;FETCH &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1329&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_SP_DUP_PARAM)&amp;nbsp;Duplicate&amp;nbsp;parameter:&amp;nbsp;%s &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1330&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_SP_DUP_VAR)&amp;nbsp;Duplicate&amp;nbsp;variable:&amp;nbsp;%s &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1331&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_SP_DUP_COND)&amp;nbsp;Duplicate&amp;nbsp;condition:&amp;nbsp;%s &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1332&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_SP_DUP_CURS)&amp;nbsp;Duplicate&amp;nbsp;cursor:&amp;nbsp;%s &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1333&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_SP_CANT_ALTER)&amp;nbsp;Failed&amp;nbsp;to&amp;nbsp;ALTER&amp;nbsp;%s&amp;nbsp;%s &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1334&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;0A000&amp;nbsp;(ER_SP_SUBSELECT_NYI)&amp;nbsp;Subselect&amp;nbsp;value&amp;nbsp;not&amp;nbsp;supported &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1335&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_SP_NO_USE)&amp;nbsp;USE&amp;nbsp;is&amp;nbsp;not&amp;nbsp;allowed&amp;nbsp;in&amp;nbsp;a&amp;nbsp;stored&amp;nbsp;procedure &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1336&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_SP_VARCOND_AFTER_CURSHNDLR)&amp;nbsp;Variable&amp;nbsp;or&amp;nbsp;condition&amp;nbsp;declaration&amp;nbsp;after&amp;nbsp;cursor&amp;nbsp;or&amp;nbsp;handler&amp;nbsp;declaration &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1337&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;42000&amp;nbsp;(ER_SP_CURSOR_AFTER_HANDLER)&amp;nbsp;Cursor&amp;nbsp;declaration&amp;nbsp;after&amp;nbsp;handler&amp;nbsp;declaration &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1338&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;20000&amp;nbsp;(ER_SP_CASE_NOT_FOUND)&amp;nbsp;Case&amp;nbsp;not&amp;nbsp;found&amp;nbsp;for&amp;nbsp;CASE&amp;nbsp;statement &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1339&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_FPARSER_TOO_BIG_FILE)&amp;nbsp;Configuration&amp;nbsp;file&amp;nbsp;'%s'&amp;nbsp;is&amp;nbsp;too&amp;nbsp;big &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1340&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_FPARSER_BAD_HEADER)&amp;nbsp;Malformed&amp;nbsp;file&amp;nbsp;type&amp;nbsp;header&amp;nbsp;in&amp;nbsp;file&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1341&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_FPARSER_EOF_IN_COMMENT)&amp;nbsp;Unexpected&amp;nbsp;end&amp;nbsp;of&amp;nbsp;file&amp;nbsp;while&amp;nbsp;parsing&amp;nbsp;comment&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1342&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_FPARSER_ERROR_IN_PARAMETER)&amp;nbsp;Error&amp;nbsp;while&amp;nbsp;parsing&amp;nbsp;parameter&amp;nbsp;'%s'&amp;nbsp;(line:&amp;nbsp;'%s') &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1343&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_FPARSER_EOF_IN_UNKNOWN_PARAMETER)&amp;nbsp;Unexpected&amp;nbsp;end&amp;nbsp;of&amp;nbsp;file&amp;nbsp;while&amp;nbsp;skipping&amp;nbsp;unknown&amp;nbsp;parameter&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1344&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_VIEW_NO_EXPLAIN)&amp;nbsp;EXPLAIN/SHOW&amp;nbsp;can&amp;nbsp;not&amp;nbsp;be&amp;nbsp;issued;&amp;nbsp;lacking&amp;nbsp;privileges&amp;nbsp;for&amp;nbsp;underlying&amp;nbsp;table &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1345&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_FRM_UNKNOWN_TYPE)&amp;nbsp;File&amp;nbsp;'%s'&amp;nbsp;has&amp;nbsp;unknown&amp;nbsp;type&amp;nbsp;'%s'&amp;nbsp;in&amp;nbsp;its&amp;nbsp;header &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1346&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_WRONG_OBJECT)&amp;nbsp;'%s.%s'&amp;nbsp;is&amp;nbsp;not&amp;nbsp;%s &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1347&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_NONUPDATEABLE_COLUMN)&amp;nbsp;Column&amp;nbsp;'%s'&amp;nbsp;is&amp;nbsp;not&amp;nbsp;updatable &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1348&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_VIEW_SELECT_DERIVED)&amp;nbsp;View's&amp;nbsp;SELECT&amp;nbsp;contains&amp;nbsp;a&amp;nbsp;subquery&amp;nbsp;in&amp;nbsp;the&amp;nbsp;FROM&amp;nbsp;clause &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1349&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_VIEW_SELECT_PROCEDURE)&amp;nbsp;View's&amp;nbsp;SELECT&amp;nbsp;contains&amp;nbsp;a&amp;nbsp;PROCEDURE&amp;nbsp;clause &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1350&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_VIEW_SELECT_VARIABLE)&amp;nbsp;View's&amp;nbsp;SELECT&amp;nbsp;contains&amp;nbsp;a&amp;nbsp;variable&amp;nbsp;or&amp;nbsp;parameter &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1351&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_VIEW_SELECT_TMPTABLE)&amp;nbsp;View's&amp;nbsp;SELECT&amp;nbsp;contains&amp;nbsp;a&amp;nbsp;temporary&amp;nbsp;table&amp;nbsp;'%s' &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1352&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_VIEW_WRONG_LIST)&amp;nbsp;View's&amp;nbsp;SELECT&amp;nbsp;and&amp;nbsp;view's&amp;nbsp;field&amp;nbsp;list&amp;nbsp;have&amp;nbsp;different&amp;nbsp;column&amp;nbsp;counts &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1353&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_WARN_VIEW_MERGE)&amp;nbsp;View&amp;nbsp;merge&amp;nbsp;algorithm&amp;nbsp;can't&amp;nbsp;be&amp;nbsp;used&amp;nbsp;here&amp;nbsp;for&amp;nbsp;now&amp;nbsp;(assumed&amp;nbsp;undefined&amp;nbsp;algorithm) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1354&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_WARN_VIEW_WITHOUT_KEY)&amp;nbsp;View&amp;nbsp;being&amp;nbsp;updated&amp;nbsp;does&amp;nbsp;not&amp;nbsp;have&amp;nbsp;complete&amp;nbsp;key&amp;nbsp;of&amp;nbsp;underlying&amp;nbsp;table&amp;nbsp;in&amp;nbsp;it &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1355&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_VIEW_INVALID)&amp;nbsp;View&amp;nbsp;'%s.%s'&amp;nbsp;references&amp;nbsp;invalid&amp;nbsp;table(s)&amp;nbsp;or&amp;nbsp;column(s) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1356&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_SP_NO_DROP_SP)&amp;nbsp;Can't&amp;nbsp;drop&amp;nbsp;a&amp;nbsp;%s&amp;nbsp;from&amp;nbsp;within&amp;nbsp;another&amp;nbsp;stored&amp;nbsp;routine &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;1357&amp;nbsp;-&amp;nbsp;SQLSTATE:&amp;nbsp;HY000&amp;nbsp;(ER_SP_GOTO_IN_HNDLR)&amp;nbsp;GOTO&amp;nbsp;is&amp;nbsp;not&amp;nbsp;allowed&amp;nbsp;in&amp;nbsp;a&amp;nbsp;stored&amp;nbsp;procedure&amp;nbsp;handler &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;2000&amp;nbsp;-&amp;nbsp;(CR_UNKNOWN_ERROR)&amp;nbsp;Unknown&amp;nbsp;MySQL&amp;nbsp;error &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;2001&amp;nbsp;-&amp;nbsp;(CR_SOCKET_CREATE_ERROR)&amp;nbsp;Can't&amp;nbsp;create&amp;nbsp;UNIX&amp;nbsp;socket&amp;nbsp;(%d) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;2002&amp;nbsp;-&amp;nbsp;(CR_CONNECTION_ERROR)&amp;nbsp;Can't&amp;nbsp;connect&amp;nbsp;to&amp;nbsp;local&amp;nbsp;MySQL&amp;nbsp;server&amp;nbsp;through&amp;nbsp;socket&amp;nbsp;'%s'&amp;nbsp;(%d) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;2003&amp;nbsp;-&amp;nbsp;(CR_CONN_HOST_ERROR)&amp;nbsp;Can't&amp;nbsp;connect&amp;nbsp;to&amp;nbsp;MySQL&amp;nbsp;server&amp;nbsp;on&amp;nbsp;'%s'&amp;nbsp;(%d) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;2004&amp;nbsp;-&amp;nbsp;(CR_IPSOCK_ERROR)&amp;nbsp;Can't&amp;nbsp;create&amp;nbsp;TCP/IP&amp;nbsp;socket&amp;nbsp;(%d) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;2005&amp;nbsp;-&amp;nbsp;(CR_UNKNOWN_HOST)&amp;nbsp;Unknown&amp;nbsp;MySQL&amp;nbsp;server&amp;nbsp;host&amp;nbsp;'%s'&amp;nbsp;(%d) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;2006&amp;nbsp;-&amp;nbsp;(CR_SERVER_GONE_ERROR)&amp;nbsp;MySQL&amp;nbsp;server&amp;nbsp;has&amp;nbsp;gone&amp;nbsp;away &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;2007&amp;nbsp;-&amp;nbsp;(CR_VERSION_ERROR)&amp;nbsp;Protocol&amp;nbsp;mismatch;&amp;nbsp;server&amp;nbsp;version&amp;nbsp;=&amp;nbsp;%d,&amp;nbsp;client&amp;nbsp;version&amp;nbsp;=&amp;nbsp;%d &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;2008&amp;nbsp;-&amp;nbsp;(CR_OUT_OF_MEMORY)&amp;nbsp;MySQL&amp;nbsp;client&amp;nbsp;ran&amp;nbsp;out&amp;nbsp;of&amp;nbsp;memory &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;2009&amp;nbsp;-&amp;nbsp;(CR_WRONG_HOST_INFO)&amp;nbsp;Wrong&amp;nbsp;host&amp;nbsp;info &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;2010&amp;nbsp;-&amp;nbsp;(CR_LOCALHOST_CONNECTION)&amp;nbsp;Localhost&amp;nbsp;via&amp;nbsp;UNIX&amp;nbsp;socket &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;2011&amp;nbsp;-&amp;nbsp;(CR_TCP_CONNECTION)&amp;nbsp;%s&amp;nbsp;via&amp;nbsp;TCP/IP &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;2012&amp;nbsp;-&amp;nbsp;(CR_SERVER_HANDSHAKE_ERR)&amp;nbsp;Error&amp;nbsp;in&amp;nbsp;server&amp;nbsp;handshake &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;2013&amp;nbsp;-&amp;nbsp;(CR_SERVER_LOST)&amp;nbsp;Lost&amp;nbsp;connection&amp;nbsp;to&amp;nbsp;MySQL&amp;nbsp;server&amp;nbsp;during&amp;nbsp;query &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;2014&amp;nbsp;-&amp;nbsp;(CR_COMMANDS_OUT_OF_SYNC)&amp;nbsp;Commands&amp;nbsp;out&amp;nbsp;of&amp;nbsp;sync;&amp;nbsp;you&amp;nbsp;can't&amp;nbsp;run&amp;nbsp;this&amp;nbsp;command&amp;nbsp;now &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;2015&amp;nbsp;-&amp;nbsp;(CR_NAMEDPIPE_CONNECTION)&amp;nbsp;%s&amp;nbsp;via&amp;nbsp;named&amp;nbsp;pipe &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;2016&amp;nbsp;-&amp;nbsp;(CR_NAMEDPIPEWAIT_ERROR)&amp;nbsp;Can't&amp;nbsp;wait&amp;nbsp;for&amp;nbsp;named&amp;nbsp;pipe&amp;nbsp;to&amp;nbsp;host:&amp;nbsp;%s&amp;nbsp;pipe:&amp;nbsp;%s&amp;nbsp;(%lu) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;2017&amp;nbsp;-&amp;nbsp;(CR_NAMEDPIPEOPEN_ERROR)&amp;nbsp;Can't&amp;nbsp;open&amp;nbsp;named&amp;nbsp;pipe&amp;nbsp;to&amp;nbsp;host:&amp;nbsp;%s&amp;nbsp;pipe:&amp;nbsp;%s&amp;nbsp;(%lu) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;2018&amp;nbsp;-&amp;nbsp;(CR_NAMEDPIPESETSTATE_ERROR)&amp;nbsp;Can't&amp;nbsp;set&amp;nbsp;state&amp;nbsp;of&amp;nbsp;named&amp;nbsp;pipe&amp;nbsp;to&amp;nbsp;host:&amp;nbsp;%s&amp;nbsp;pipe:&amp;nbsp;%s&amp;nbsp;(%lu) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;2019&amp;nbsp;-&amp;nbsp;(CR_CANT_READ_CHARSET)&amp;nbsp;Can't&amp;nbsp;initialize&amp;nbsp;character&amp;nbsp;set&amp;nbsp;%s&amp;nbsp;(path:&amp;nbsp;%s) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;2020&amp;nbsp;-&amp;nbsp;(CR_NET_PACKET_TOO_LARGE)&amp;nbsp;Got&amp;nbsp;packet&amp;nbsp;bigger&amp;nbsp;than&amp;nbsp;'max_allowed_packet'&amp;nbsp;bytes &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;2021&amp;nbsp;-&amp;nbsp;(CR_EMBEDDED_CONNECTION)&amp;nbsp;Embedded&amp;nbsp;server &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;2022&amp;nbsp;-&amp;nbsp;(CR_PROBE_SLAVE_STATUS)&amp;nbsp;Error&amp;nbsp;on&amp;nbsp;SHOW&amp;nbsp;SLAVE&amp;nbsp;STATUS: &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;2023&amp;nbsp;-&amp;nbsp;(CR_PROBE_SLAVE_HOSTS)&amp;nbsp;Error&amp;nbsp;on&amp;nbsp;SHOW&amp;nbsp;SLAVE&amp;nbsp;HOSTS: &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;2024&amp;nbsp;-&amp;nbsp;(CR_PROBE_SLAVE_CONNECT)&amp;nbsp;Error&amp;nbsp;connecting&amp;nbsp;to&amp;nbsp;slave: &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;2025&amp;nbsp;-&amp;nbsp;(CR_PROBE_MASTER_CONNECT)&amp;nbsp;Error&amp;nbsp;connecting&amp;nbsp;to&amp;nbsp;master: &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;2026&amp;nbsp;-&amp;nbsp;(CR_SSL_CONNECTION_ERROR)&amp;nbsp;SSL&amp;nbsp;connection&amp;nbsp;error &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;2027&amp;nbsp;-&amp;nbsp;(CR_MALFORMED_PACKET)&amp;nbsp;Malformed&amp;nbsp;packet &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;2028&amp;nbsp;-&amp;nbsp;(CR_WRONG_LICENSE)&amp;nbsp;This&amp;nbsp;client&amp;nbsp;library&amp;nbsp;is&amp;nbsp;licensed&amp;nbsp;only&amp;nbsp;for&amp;nbsp;use&amp;nbsp;with&amp;nbsp;MySQL&amp;nbsp;servers&amp;nbsp;having&amp;nbsp;'%s'&amp;nbsp;license &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;2029&amp;nbsp;-&amp;nbsp;(CR_NULL_POINTER)&amp;nbsp;Invalid&amp;nbsp;use&amp;nbsp;of&amp;nbsp;null&amp;nbsp;pointer &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;2030&amp;nbsp;-&amp;nbsp;(CR_NO_PREPARE_STMT)&amp;nbsp;Statement&amp;nbsp;not&amp;nbsp;prepared &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;2031&amp;nbsp;-&amp;nbsp;(CR_PARAMS_NOT_BOUND)&amp;nbsp;No&amp;nbsp;data&amp;nbsp;supplied&amp;nbsp;for&amp;nbsp;parameters&amp;nbsp;in&amp;nbsp;prepared&amp;nbsp;statement &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;2032&amp;nbsp;-&amp;nbsp;(CR_DATA_TRUNCATED)&amp;nbsp;Data&amp;nbsp;truncated &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;2033&amp;nbsp;-&amp;nbsp;(CR_NO_PARAMETERS_EXISTS)&amp;nbsp;No&amp;nbsp;parameters&amp;nbsp;exist&amp;nbsp;in&amp;nbsp;the&amp;nbsp;statement &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;2034&amp;nbsp;-&amp;nbsp;(CR_INVALID_PARAMETER_NO)&amp;nbsp;Invalid&amp;nbsp;parameter&amp;nbsp;number &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;2035&amp;nbsp;-&amp;nbsp;(CR_INVALID_BUFFER_USE)&amp;nbsp;Can't&amp;nbsp;send&amp;nbsp;long&amp;nbsp;data&amp;nbsp;for&amp;nbsp;non-string/non-binary&amp;nbsp;data&amp;nbsp;types&amp;nbsp;(parameter:&amp;nbsp;%d) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;2036&amp;nbsp;-&amp;nbsp;(CR_UNSUPPORTED_PARAM_TYPE)&amp;nbsp;Using&amp;nbsp;unsupported&amp;nbsp;buffer&amp;nbsp;type:&amp;nbsp;%d&amp;nbsp;(parameter:&amp;nbsp;%d) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;2037&amp;nbsp;-&amp;nbsp;(CR_SHARED_MEMORY_CONNECTION)&amp;nbsp;Shared&amp;nbsp;memory&amp;nbsp;(%lu) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;2038&amp;nbsp;-&amp;nbsp;(CR_SHARED_MEMORY_CONNECT_REQUEST_ERROR)&amp;nbsp;Can't&amp;nbsp;open&amp;nbsp;shared&amp;nbsp;memory;&amp;nbsp;client&amp;nbsp;could&amp;nbsp;not&amp;nbsp;create&amp;nbsp;request&amp;nbsp;event&amp;nbsp;(%lu) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;2039&amp;nbsp;-&amp;nbsp;(CR_SHARED_MEMORY_CONNECT_ANSWER_ERROR)&amp;nbsp;Can't&amp;nbsp;open&amp;nbsp;shared&amp;nbsp;memory;&amp;nbsp;no&amp;nbsp;answer&amp;nbsp;event&amp;nbsp;received&amp;nbsp;from&amp;nbsp;server&amp;nbsp;(%lu) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;2040&amp;nbsp;-&amp;nbsp;(CR_SHARED_MEMORY_CONNECT_FILE_MAP_ERROR)&amp;nbsp;Can't&amp;nbsp;open&amp;nbsp;shared&amp;nbsp;memory;&amp;nbsp;server&amp;nbsp;could&amp;nbsp;not&amp;nbsp;allocate&amp;nbsp;file&amp;nbsp;mapping&amp;nbsp;(%lu) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;2041&amp;nbsp;-&amp;nbsp;(CR_SHARED_MEMORY_CONNECT_MAP_ERROR)&amp;nbsp;Can't&amp;nbsp;open&amp;nbsp;shared&amp;nbsp;memory;&amp;nbsp;server&amp;nbsp;could&amp;nbsp;not&amp;nbsp;get&amp;nbsp;pointer&amp;nbsp;to&amp;nbsp;file&amp;nbsp;mapping&amp;nbsp;(%lu) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;2042&amp;nbsp;-&amp;nbsp;(CR_SHARED_MEMORY_FILE_MAP_ERROR)&amp;nbsp;Can't&amp;nbsp;open&amp;nbsp;shared&amp;nbsp;memory;&amp;nbsp;client&amp;nbsp;could&amp;nbsp;not&amp;nbsp;allocate&amp;nbsp;file&amp;nbsp;mapping&amp;nbsp;(%lu) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;2043&amp;nbsp;-&amp;nbsp;(CR_SHARED_MEMORY_MAP_ERROR)&amp;nbsp;Can't&amp;nbsp;open&amp;nbsp;shared&amp;nbsp;memory;&amp;nbsp;client&amp;nbsp;could&amp;nbsp;not&amp;nbsp;get&amp;nbsp;pointer&amp;nbsp;to&amp;nbsp;file&amp;nbsp;mapping&amp;nbsp;(%lu) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;2044&amp;nbsp;-&amp;nbsp;(CR_SHARED_MEMORY_EVENT_ERROR)&amp;nbsp;Can't&amp;nbsp;open&amp;nbsp;shared&amp;nbsp;memory;&amp;nbsp;client&amp;nbsp;could&amp;nbsp;not&amp;nbsp;create&amp;nbsp;%s&amp;nbsp;event&amp;nbsp;(%lu) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;2045&amp;nbsp;-&amp;nbsp;(CR_SHARED_MEMORY_CONNECT_ABANDONED_ERROR)&amp;nbsp;Can't&amp;nbsp;open&amp;nbsp;shared&amp;nbsp;memory;&amp;nbsp;no&amp;nbsp;answer&amp;nbsp;from&amp;nbsp;server&amp;nbsp;(%lu) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;2046&amp;nbsp;-&amp;nbsp;(CR_SHARED_MEMORY_CONNECT_SET_ERROR)&amp;nbsp;Can't&amp;nbsp;open&amp;nbsp;shared&amp;nbsp;memory;&amp;nbsp;cannot&amp;nbsp;send&amp;nbsp;request&amp;nbsp;event&amp;nbsp;to&amp;nbsp;server&amp;nbsp;(%lu) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;2047&amp;nbsp;-&amp;nbsp;(CR_CONN_UNKNOW_PROTOCOL)&amp;nbsp;Wrong&amp;nbsp;or&amp;nbsp;unknown&amp;nbsp;protocol &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;2048&amp;nbsp;-&amp;nbsp;(CR_INVALID_CONN_HANDLE)&amp;nbsp;Invalid&amp;nbsp;connection&amp;nbsp;handle &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;2049&amp;nbsp;-&amp;nbsp;(CR_SECURE_AUTH)&amp;nbsp;Connection&amp;nbsp;using&amp;nbsp;old&amp;nbsp;(pre-4.1.1)&amp;nbsp;authentication&amp;nbsp;protocol&amp;nbsp;refused&amp;nbsp;(client&amp;nbsp;option&amp;nbsp;'secure_auth'&amp;nbsp;enabled) &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;2050&amp;nbsp;-&amp;nbsp;(CR_FETCH_CANCELED)&amp;nbsp;Row&amp;nbsp;retrieval&amp;nbsp;was&amp;nbsp;canceled&amp;nbsp;by&amp;nbsp;mysql_stmt_close()&amp;nbsp;call &lt;br /&gt;&lt;br /&gt;Error&amp;nbsp;2051&amp;nbsp;-&amp;nbsp;(CR_NO_DATA)&amp;nbsp;Attempt&amp;nbsp;to&amp;nbsp;read&amp;nbsp;column&amp;nbsp;without&amp;nbsp;prior&amp;nbsp;row&amp;nbsp;fetch&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>MariaDB</category>
      <category>mariadb system error</category>
      <category>mariadb 오류 해결법</category>
      <category>mysql mariadb 자주 뜨는 에러 오류</category>
      <category>mysql system error</category>
      <category>mysql 오류 해결법</category>
      <category>mysql 자주 뜨는 에러 오류 모음</category>
      <category>mysql.sock</category>
      <category>sql 문법</category>
      <category>sql 문법 에러</category>
      <category>syntax</category>
      <author>.java</author>
      <guid isPermaLink="true">https://java119.tistory.com/95</guid>
      <comments>https://java119.tistory.com/95#entry95comment</comments>
      <pubDate>Fri, 24 Apr 2020 23:27:05 +0900</pubDate>
    </item>
    <item>
      <title>[Tomcat] JNDI(Java Naming and Directory Interface) 설정 총 정리</title>
      <link>https://java119.tistory.com/94</link>
      <description>&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;JNDI&lt;/b&gt;(Java Naming and Directory Interface)는&amp;nbsp;디렉터리 서비스에서 &lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;제공하는 &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;데이터 및 객체를 발견(discover)하고 참고(lookup) 하기 위한&amp;nbsp;자바 API다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;blockquote data-ke-size=&quot;size14&quot; data-ke-style=&quot;style2&quot;&gt;&lt;span&gt;출처 : 위키백과&lt;/span&gt;&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #666666;&quot;&gt;JNDI는 DB C&lt;span&gt;onnection&lt;/span&gt;을 WAS에서 제어하면서 서버에서 하나의 커넥션 풀을 가진다.&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;u&gt;(중요하니까 본명 조 폰트)&lt;/u&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span&gt;이 글에서 설명하는 JNDI 예시 환경 &lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587449557873&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;JNDI를 설정하기전에 체크

1.자기 환경의 WAS
2.자기 환경의 JDBC 방식
3.자기 환경의 Spring framework 버전 혹은 MVC / Boot

WAS : tomcat 8.5

Spring framework MVC Project : 5.0.3

jdbc 방식 : dbcp

DB : MariaDB 10.2&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span&gt;JNDI (Java Naming and Directory Interface) 사용 이유&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;span&gt;1. 여러&lt;span style=&quot;color: #000000;&quot;&gt; 프로젝트에서 하나의 datasource를 공유해서 사용할 때&lt;/span&gt;&lt;br /&gt;2. 실제 프로젝트는 WAS에 올라가 운영되는데 &lt;/span&gt;&lt;span&gt;개발/소스를 잘 모르는 운영자가 이해하기 쉽게 하기 위함&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;3.WAS의 교체에도 신속한 대응이 가능하다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1.Spring 프로젝트 내부 설정&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;1-1.root-context.xml 상단 내용 추가 ( jee를 쓰기 위함 )&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587305260757&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;xmlns:jee=&quot;http://www.springframework.org/schema/jee&quot;
xsi:schemaLocation=&quot;http://www.springframework.org/schema/jee 
                    http://www.springframework.org/schema/jee/spring-jee.xsd&quot;&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;1-1.root-context.xml 하단 내용 추가&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;기존 JDBC 방식 (변경 전)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587449926675&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;bean id=&quot;dataSource&quot; class=&quot;org.apache.commons.dbcp2.BasicDataSource&quot; destroy-method=&quot;close&quot;&amp;gt;
      &amp;lt;property name=&quot;driverClassName&quot; value=&quot;com.mariadb.jdbc.Driver&quot; /&amp;gt;
      &amp;lt;property name=&quot;url&quot; value=&quot;jdbc:mariadb//localhost:3306/databaseName&quot; /&amp;gt;
      &amp;lt;property name=&quot;username&quot; value=&quot;dkanro&quot; /&amp;gt;
      &amp;lt;property name=&quot;password&quot; value=&quot;dkanro1&quot; /&amp;gt;
&amp;lt;/bean&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;JDNI 방식 (변경 후)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587305506884&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;jee:jndi-lookup id=&quot;dbDataSource&quot;
 jndi-name=&quot;jdbc/projectName&quot;
 expected-type=&quot;javax.sql.DataSource&quot; /&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;jndi-name : 자기가 설정하고 싶은 별칭 (하지만 이 이름이 설정 페이지와 동일해야 된다.)&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;1-2.web.xml&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587306192564&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;resource-ref&amp;gt;
&amp;lt;description&amp;gt;jndiprojectName&amp;lt;/description&amp;gt;
	&amp;lt;res-ref-name&amp;gt;jdbc/projectName&amp;lt;/res-ref-name&amp;gt;
	&amp;lt;res-type&amp;gt;javax.sql.DataSource&amp;lt;/res-type&amp;gt;
	&amp;lt;res-auth&amp;gt;Container&amp;lt;/res-auth&amp;gt;
&amp;lt;/resource-ref&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2.Tomcat 설정&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587454155759&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$CATALINA_HOME == 톰캣이 위치한 경로&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;2-1.server.xml 설정하기&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;$CATALINA_HOME/conf/server.xml 내용 추가&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587304504633&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;GlobalNamingResources&amp;gt;
  &amp;lt;Resource auth=&quot;Container&quot; driverClassName=&quot;org.mariadb.jdbc.Driver&quot; 
  factory=&quot;org.apache.tomcat.dbcp.dbcp2.BasicDataSourceFactory&quot; 
  name=&quot;jdbc/projectName&quot;  
  type=&quot;javax.sql.DataSource&quot; 
  url=&quot;jdbc:mariadb://172.10.0.10:3306/databaseName&quot; 
  username=&quot;dkanro1&quot; password=&quot;dkanro1&quot;/&amp;gt; 
&amp;lt;/GlobalNamingResources&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;톰캣 안에 &lt;span style=&quot;color: #333333;&quot;&gt;&amp;lt;GlobalNamingResources&amp;gt; &lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;lt;/GlobalNamingResources&amp;gt; 태그는 원래 존재합니다. &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;직접 만드는 것이 아닙니다.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;안에 내용 &amp;lt;Resource ~~..&amp;gt;만 기술하는 것입니다.&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;2-2.context.xml 설정하기&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;$CATALINA_HOME/conf/&lt;span style=&quot;color: #000000;&quot;&gt;context.xml &lt;span style=&quot;color: #000000;&quot;&gt;내용 추가&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587304629407&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;Context&amp;gt;
   &amp;lt;ResourceLink name=&quot;jdbc/projectName&quot; global=&quot;jdbc/projectName&quot; type=&quot;javax.sql.DataSource&quot;/&amp;gt;
&amp;lt;/Context&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;2-3.mariaDB JDBC.jar &lt;span style=&quot;color: #333333;&quot;&gt;드라이버&lt;/span&gt; 파일 추가&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;$CATALINA_HOME/lib 폴더에 &lt;span style=&quot;color: #333333;&quot;&gt;mariadb-java-client-1.5.9.jar &lt;/span&gt;파일 추가 ( 버전은 꼭 1.5.9가 아니어도 됩니다. )&lt;/p&gt;
&lt;pre id=&quot;code_1587452036416&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;mariadb-java-client-1.5.9.jar&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;b&gt;3.Tomcat&lt;span&gt; 서비스 재시작&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587452250755&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;systemctl restart tomcat (서비스 이름은 다 다릅니다.)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;b&gt;추가 참고사항&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;※ 자주 뜨는 오류&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;원인 : &lt;span style=&quot;color: #333333;&quot;&gt;mariadb-java-client-1.5.9.jar 파일이 $CATALINA_HOME/lib 폴더에 존재하지 않는 경우.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;해결 : &lt;span style=&quot;color: #333333;&quot;&gt;mariadb-java-client-1.5.9.jar를 다운받아 $CATALINA_HOME/lib에 넣은 후 서비스 재시작&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587453931049&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;The web application [] registered the JDBC driver [org.mariadb.jdbc.Driver] 
but failed to unregister it when the web application was stopped. To prevent a memory leak, 
the JDBC Driver has been forcibly unregistered.&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;※ mariadb-java-client-1.5.9.jar 드라이버 다운로드 주소&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;a href=&quot;https://mvnrepository.com/artifact/org.mariadb.jdbc/mariadb-java-client/1.5.9&quot;&gt;https://mvnrepository.com/artifact/org.mariadb.jdbc/mariadb-java-client/1.5.9&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;링크 들어가셔서 상단 Files에 jar 버튼 누르시면 다운로드됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;※ DB가 다를 경우&lt;/p&gt;
&lt;pre id=&quot;code_1587450529955&quot; class=&quot;html xml&quot; style=&quot;margin: 20px auto 0px; display: block; overflow: auto; padding: 15px; color: #383a42; background: #f6f7f8; font-size: 14px; border-radius: 3px; font-family: Menlo, Consolas, Monaco, monospace; border: 1px solid #dddddd; cursor: default; z-index: 1;&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;driverClass와 url을 변경하시면 됩니다.

//예시 Oracle일 경우
driverClassName=&quot;oracle.jdbc.OracleDriver&quot;
url=&quot;jdbc:oracle:thin:@172.10.0.10:1521:SID&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;※ JDBC 방식이 다를 경우&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587450529956&quot; class=&quot;html xml&quot; style=&quot;margin: 20px auto 0px; display: block; overflow: auto; padding: 15px; color: #383a42; background: #f6f7f8; font-size: 14px; border-radius: 3px; font-family: Menlo, Consolas, Monaco, monospace; border: 1px solid #dddddd; cursor: default; z-index: 1;&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;이 부분을 원하는 JDBC 방식 문법에 맞게 변경하면 됩니다.

&amp;lt;Resource auth=&quot;Container&quot; driverClassName=&quot;org.mariadb.jdbc.Driver&quot; 
  factory=&quot;org.apache.tomcat.dbcp.dbcp2.BasicDataSourceFactory&quot; 
  name=&quot;jdbc/projectName&quot;  
  type=&quot;javax.sql.DataSource&quot; 
  url=&quot;jdbc:mariadb://172.10.0.10:3306/databaseName&quot; 
  username=&quot;dkanro1&quot; password=&quot;dkanro1&quot;/&amp;gt; &lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Tomcat</category>
      <category>GlobalNamingResources</category>
      <category>JNDI dbcp 문법</category>
      <category>JNDI 톰캣 마리아디비 문법</category>
      <category>root-context JDBC</category>
      <category>server.xml context.xml</category>
      <category>Spring WAS에서 db jdbc 설정</category>
      <category>Spring 외부에서 DB 설정하기</category>
      <category>Tomcat DB 설정</category>
      <category>Tomcat JDBC 설정</category>
      <category>tomcat에서 DB 설정 하기</category>
      <author>.java</author>
      <guid isPermaLink="true">https://java119.tistory.com/94</guid>
      <comments>https://java119.tistory.com/94#entry94comment</comments>
      <pubDate>Sun, 19 Apr 2020 23:24:13 +0900</pubDate>
    </item>
    <item>
      <title>[MySQL || MariaDB] TIMESTAMP와 DATETIME 차이점 총 정리</title>
      <link>https://java119.tistory.com/93</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;DATETIME&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;index : 불가능&lt;/p&gt;
&lt;p&gt;time zone : 영향 없음&lt;/p&gt;
&lt;p&gt;타입 : 문자형&lt;/p&gt;
&lt;p&gt;용량 : 8 byte&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;지원 범위 :&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;1000-01-01&amp;nbsp;00:00:00&amp;nbsp;~&amp;nbsp;9999-12-31&amp;nbsp;23:59:59&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;ON UPDATE 구문 : 사용 가능 (사용 불가로 알고 있었는데 테스트해보니 잘 되네요.)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;TIMESTAMP&lt;/b&gt;&lt;/h3&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;index : 가능&lt;/p&gt;
&lt;p&gt;time zone : 영향 있음&lt;/p&gt;
&lt;p&gt;타입 : 숫자형&lt;/p&gt;
&lt;p&gt;용량 : 4 byte&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;지원 범위 :&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;1970-01-01 00:00:00&amp;nbsp;&amp;nbsp;~ 2038-01-19 &lt;span&gt;03:14:07&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;ON UPDATE 구문 : 사용 가능&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;※ 주의 : 마이크로 초까지 얻으려면 timestamp( 1~6의 값 )을 설정 해줘야 합니다.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;설정하지 않을 경우 기본값 0&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;DATETIME과&amp;nbsp;TIMESTAMP의&amp;nbsp;차이점&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;DATETIME은 입력된 날짜와 시간 그대로 데이터를 저장하지만&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;TIMESTAMP는 time_zone 시스템 변수로 값을 지정한다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;TIMESTAMP는 데이터 입출력시 time_zone 시스템 변수 값을 체크해 그 기반으로 변환하여 처리한다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;한마디로 &lt;span&gt;가장 큰 차이점은 DATETIME은 일정하며 TIMESTAMP는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;time_zone&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;설정의 영향을 받습니다.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;아주 대표적인 예로 보자면&lt;/p&gt;
&lt;pre id=&quot;code_1587302486556&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;mysql&amp;gt; show variables like '%time_zone%';
+------------------+---------------------+
| Variable_name    | Value               |
+------------------+---------------------+
| system_time_zone | India Standard Time |
| time_zone        | Asia/Calcutta       |
+------------------+---------------------+

mysql&amp;gt; create table datedemo(
    -&amp;gt; mydatetime datetime,
    -&amp;gt; mytimestamp timestamp
    -&amp;gt; );

mysql&amp;gt; insert into datedemo values ((now()),(now()));

mysql&amp;gt; select * from datedemo;
+---------------------+---------------------+
| mydatetime          | mytimestamp         |
+---------------------+---------------------+
| 2011-08-21 14:11:09 | 2011-08-21 14:11:09 |
+---------------------+---------------------+

mysql&amp;gt; set time_zone=&quot;america/new_york&quot;;

mysql&amp;gt; select * from datedemo;
+---------------------+---------------------+
| mydatetime          | mytimestamp         |
+---------------------+---------------------+
| 2011-08-21 14:11:09 | 2011-08-21 04:41:09 |
+---------------------+---------------------+&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-size=&quot;size14&quot; data-ke-style=&quot;style2&quot;&gt;출처 : tech-recipes&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;결론은 TIMESTAMP는 time_zone 시스템 변수에 따른 값 변화가 크다는 것이다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;그럼 변수가 많으니 무조건 DATETIME을 써야 할까요? 그렇지 않습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;해외에 나가는 사이트라면 TIMESTAMP와 DATETIME을 적절히 잘 사용하여야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;더욱 자세한 걸 원하시는 분은&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;TIMESTAMP&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;a href=&quot;https://mariadb.com/kb/en/timestamp/&quot;&gt;https://mariadb.com/kb/en/timestamp/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;DATETIME&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;a href=&quot;https://mariadb.com/kb/en/datetime/&quot;&gt;https://mariadb.com/kb/en/datetime/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>MariaDB</category>
      <category>datetime timestamp difference</category>
      <category>DATETIME vs TIMESTAMP</category>
      <category>DATETIME 장점 단점</category>
      <category>MySQL MariaDB datetime timestamp</category>
      <category>TIMESTAMP 장점 단점</category>
      <category>데이트타임</category>
      <category>데이트타임 타임스탬프 차이점</category>
      <category>차이점</category>
      <category>타임스탬프</category>
      <author>.java</author>
      <guid isPermaLink="true">https://java119.tistory.com/93</guid>
      <comments>https://java119.tistory.com/93#entry93comment</comments>
      <pubDate>Sun, 19 Apr 2020 22:34:00 +0900</pubDate>
    </item>
    <item>
      <title>[Microsoft Edge] 새롭게 태어난 Microsoft Edge (feat.검색만 해도 포인트를 준다고?)</title>
      <link>https://java119.tistory.com/92</link>
      <description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;어느 날 Windows 10 사용 중에 갑자기 Edge 업데이트를 할 거냐는 문구가 나왔다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;그래서 준비 했습니다. 새롭게 태어난 Edge 업데이트 (조금 늦은 감이 있지만)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;지금 시작합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Microsoft Edge 81.0.461.58&lt;/h2&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;소개&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;2018년 12월 6일, Microsoft는&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Chrome&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;과 동일한 렌더링 엔진을 사용&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;하지만 Microsoft가 개선 한 기능을&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;사용하여&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Chromium&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;소스 코드를&amp;nbsp; 기반으로 하겠다고 발표했었죠&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;그것이 드디어 나왔습니다 !!!&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;지금 소개하는 2020 New Edge는 &lt;span&gt;2020년 01월 15일에 릴리스 되었습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;그 이름도 유명한 Microsoft (마소)가 만든 브라우저&lt;span&gt;(Browser)&lt;/span&gt;입니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;Windows 8 이후부터 OS를 설치하기만 해도 자동으로 깔리는 녀석이었죠 (인기는 없지만...)&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Microsoft 브라우저&lt;span&gt;(Browser)&lt;/span&gt; &lt;/span&gt;연대기&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;Internet Explorer ( 1995 ~ 2014 )&amp;nbsp; 1,2,3,4,5,6,7,8,9,10,11 &amp;rarr; &lt;span&gt;Legacy &lt;/span&gt;Edge ( 2014 ~ 2019 ) &lt;span style=&quot;color: #333333;&quot;&gt;&amp;rarr; New Edge ( 2020~)&lt;/span&gt;&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;비교&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;b&gt;1.Google Trends - &lt;span style=&quot;color: #333333;&quot;&gt;대한민국 기준&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;newbrower10.PNG&quot; data-origin-width=&quot;1153&quot; data-origin-height=&quot;582&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GgVPL/btqDyMXnSkq/qlBp2bIEqSbkB6vpXYYJw0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GgVPL/btqDyMXnSkq/qlBp2bIEqSbkB6vpXYYJw0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GgVPL/btqDyMXnSkq/qlBp2bIEqSbkB6vpXYYJw0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGgVPL%2FbtqDyMXnSkq%2FqlBp2bIEqSbkB6vpXYYJw0%2Fimg.png&quot; data-filename=&quot;newbrower10.PNG&quot; data-origin-width=&quot;1153&quot; data-origin-height=&quot;582&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;크롬이 압도하는 모습을 볼 수 있습니다. 물론 이게 전부는 아니지만요..&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;2020 업데이트가 됐으니 내년 그래프를 기대해 볼 수 있겠네요.&lt;/p&gt;
&lt;blockquote data-ke-size=&quot;size14&quot; data-ke-style=&quot;style2&quot;&gt;출처 : Google Trends&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;2.statcounter - &lt;span style=&quot;color: #333333;&quot;&gt;대한민국 기준&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;StatCounter-browser-KR-monthly-201903-202003-bar.png&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bmN9Q8/btqDyFKXvwu/4kWcuYKca6Ir22vOq92AGk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bmN9Q8/btqDyFKXvwu/4kWcuYKca6Ir22vOq92AGk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bmN9Q8/btqDyFKXvwu/4kWcuYKca6Ir22vOq92AGk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbmN9Q8%2FbtqDyFKXvwu%2F4kWcuYKca6Ir22vOq92AGk%2Fimg.png&quot; data-filename=&quot;StatCounter-browser-KR-monthly-201903-202003-bar.png&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;점유율 또한... 압 도 적&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1587298543853&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;삼성 인터넷은 뭐지? 하시는 분들이 계신데,
갤럭시 폰 사면 자동으로 인터넷 아이콘이 있는데 그 인터넷이 삼성 인터넷 입니다.&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-size=&quot;size14&quot; data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;출처 :&lt;span&gt; statcounter&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;크롬과 동일한 *&lt;/span&gt;&lt;span&gt;크로미움&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;기반으로 만들어졌습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이건 보통 일이 아닙니다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;그 거대한 MS가 구글에게 &quot;너네 크로미움 우리도 좀 빌릴게;;&quot;라고 하는 것과 마찬가지입니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;newbrower0.PNG&quot; data-origin-width=&quot;559&quot; data-origin-height=&quot;225&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/VGluV/btqDvZYys0z/woJC1irUj9ayGt3PQM3lC0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/VGluV/btqDvZYys0z/woJC1irUj9ayGt3PQM3lC0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/VGluV/btqDvZYys0z/woJC1irUj9ayGt3PQM3lC0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVGluV%2FbtqDvZYys0z%2FwoJC1irUj9ayGt3PQM3lC0%2Fimg.png&quot; data-filename=&quot;newbrower0.PNG&quot; data-origin-width=&quot;559&quot; data-origin-height=&quot;225&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;&lt;span&gt;*&lt;/span&gt;&lt;span&gt;크로미움&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr style=&quot;box-sizing: border-box; margin: 20px auto; padding: 0px; border: none; height: 20px; overflow: hidden; font-size: 0px; line-height: 0; background: url('https://t1.daumcdn.net/keditor/dist/0.4.0/image/divider-line.svg') 0px -120px / 200px 200px #ffffff; cursor: pointer !important; color: #000000; font-family: 'Noto Sans KR', 'Apple SD 산돌고딕 Neo', AppleSDGothicNeo, sans-serif; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span&gt;&lt;b&gt;크로미움이라는&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;오픈소스 프로젝트에서 만든 브라우저 이름이 바로&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;크로미움&lt;/b&gt;입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span&gt;&lt;b&gt;구글에서 2008년 9월 시작한 프로젝트인 크로미움은 오픈소스 프로젝트&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;이기 때문에 구글 직원이 아닌 사람들도 참가할 수 있으며, 이 프로젝트를 통해 만들어진 소스코드에서 컴파일된 브라우저가 바로&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;크로미움&lt;/b&gt;인 것입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span&gt;크로미움의 소스 코드는 다양한 브라우저들의 기반 엔진이 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span&gt;크롬의&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;뼈대이죠&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;b&gt;호환성&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;pre id=&quot;code_1587295370427&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;환경 : Windows / macOS / Linux / iOS , android&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;시작하기&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;소개 및 장점&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;b&gt;엣지 다운로드 경로&lt;/b&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1587295443772&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;website&quot; data-og-title=&quot;새 Microsoft Edge 브라우저 다운로드 | Microsoft&quot; data-og-description=&quot;최신 버전 Microsoft Edge 브라우저의 새로운 기능을 확인해 보세요. 새 브라우저를 다운로드하기 전에 새로운 기능과 보너스 제도 등에 대해 알아보세요.&quot; data-og-host=&quot;www.microsoft.com&quot; data-og-source-url=&quot;https://www.microsoft.com/ko-kr/edge&quot; data-og-url=&quot;https://www.microsoft.com/ko-kr/edge&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/GC269/hyFI6TokAB/417uvUJHKnvq5NgG8i8W4K/img.jpg?width=2120&amp;amp;height=1192&amp;amp;face=0_0_2120_1192,https://scrap.kakaocdn.net/dn/N9KS0/hyFI8RdOap/Bj6I42fknana20kkeRWdk0/img.jpg?width=2120&amp;amp;height=1192&amp;amp;face=0_0_2120_1192,https://scrap.kakaocdn.net/dn/8aKZG/hyFIZfFwqZ/R9NtRAetChYFrMd8orNHh0/img.jpg?width=1040&amp;amp;height=585&amp;amp;face=0_0_1040_585&quot;&gt;&lt;a href=&quot;https://www.microsoft.com/ko-kr/edge&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.microsoft.com/ko-kr/edge&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/GC269/hyFI6TokAB/417uvUJHKnvq5NgG8i8W4K/img.jpg?width=2120&amp;amp;height=1192&amp;amp;face=0_0_2120_1192,https://scrap.kakaocdn.net/dn/N9KS0/hyFI8RdOap/Bj6I42fknana20kkeRWdk0/img.jpg?width=2120&amp;amp;height=1192&amp;amp;face=0_0_2120_1192,https://scrap.kakaocdn.net/dn/8aKZG/hyFIZfFwqZ/R9NtRAetChYFrMd8orNHh0/img.jpg?width=1040&amp;amp;height=585&amp;amp;face=0_0_1040_585');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;새 Microsoft Edge 브라우저 다운로드 | Microsoft&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;최신 버전 Microsoft Edge 브라우저의 새로운 기능을 확인해 보세요. 새 브라우저를 다운로드하기 전에 새로운 기능과 보너스 제도 등에 대해 알아보세요.&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;www.microsoft.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;파일을 받아 다운로드를 시작한 모습&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;음.. 엄청 진지 근엄이 느껴지는 다운로드 창이네요..&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;newbrower1.PNG&quot; data-origin-width=&quot;920&quot; data-origin-height=&quot;690&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dGZy5S/btqDxupQ8df/RgJAat0iSpZM81Kr9CYK6K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dGZy5S/btqDxupQ8df/RgJAat0iSpZM81Kr9CYK6K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dGZy5S/btqDxupQ8df/RgJAat0iSpZM81Kr9CYK6K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdGZy5S%2FbtqDxupQ8df%2FRgJAat0iSpZM81Kr9CYK6K%2Fimg.png&quot; data-filename=&quot;newbrower1.PNG&quot; data-origin-width=&quot;920&quot; data-origin-height=&quot;690&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;/&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;style6&quot; /&gt;
&lt;p&gt;아이콘은 이쁘게 변경되었죠 &lt;u&gt;&lt;s&gt;(히오스 세계로??..)&lt;/s&gt;&lt;/u&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;newbrower3.PNG&quot; data-origin-width=&quot;591&quot; data-origin-height=&quot;568&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cvO957/btqDwEGr1nn/RR1XKqADNk6KcyCMKOb330/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cvO957/btqDwEGr1nn/RR1XKqADNk6KcyCMKOb330/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cvO957/btqDwEGr1nn/RR1XKqADNk6KcyCMKOb330/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcvO957%2FbtqDwEGr1nn%2FRR1XKqADNk6KcyCMKOb330%2Fimg.png&quot; data-filename=&quot;newbrower3.PNG&quot; data-origin-width=&quot;591&quot; data-origin-height=&quot;568&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;/&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;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;이미지형 : 엣지를 딱 들어갔을 때 배경화면을 설정하는 것&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;콘텐츠형 : 기존 레거시 방식 엣지의 그 자극적인 기사들 쫙~ 뜨는 것&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;심플 : 구글처럼 즐겨찾기 방식+검색 창 하나 있는 것&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;newbrower4.PNG&quot; data-origin-width=&quot;584&quot; data-origin-height=&quot;565&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QjLcu/btqDx5JTfeu/2W7W8ZUNkES1W4vSnxRwGk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QjLcu/btqDx5JTfeu/2W7W8ZUNkES1W4vSnxRwGk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QjLcu/btqDx5JTfeu/2W7W8ZUNkES1W4vSnxRwGk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQjLcu%2FbtqDx5JTfeu%2F2W7W8ZUNkES1W4vSnxRwGk%2Fimg.png&quot; data-filename=&quot;newbrower4.PNG&quot; data-origin-width=&quot;584&quot; data-origin-height=&quot;565&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;저는 이미지형을 선택했습니다. UI는 좋은 거 같습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;newbrower11.PNG&quot; data-origin-width=&quot;1904&quot; data-origin-height=&quot;823&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bP1MMD/btqDwFegiX1/D7uwnbmtLEVeBWkesaNAFK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bP1MMD/btqDwFegiX1/D7uwnbmtLEVeBWkesaNAFK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bP1MMD/btqDwFegiX1/D7uwnbmtLEVeBWkesaNAFK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbP1MMD%2FbtqDwFegiX1%2FD7uwnbmtLEVeBWkesaNAFK%2Fimg.png&quot; data-filename=&quot;newbrower11.PNG&quot; data-origin-width=&quot;1904&quot; data-origin-height=&quot;823&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;/&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;style6&quot; /&gt;
&lt;p&gt;일단 홍보하는 장점을 소개하겠습니다.&lt;br /&gt;&lt;br /&gt;첫 소개할 장점은 바로 제가 제목에도 적어놓은 &lt;b&gt;&quot;검색만 해도 포인트을 준다고?&quot;입니다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;가치&lt;/b&gt;&lt;/h4&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;b&gt;1. 상술&amp;nbsp;없는&amp;nbsp;실제&amp;nbsp;보상&amp;nbsp;제공&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587296146515&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;보상받기
Bing에서 Microsoft Rewards를 통해 포인트를 기프트 카드로 교환하거나 
가장 중요하게 생각하는 자선 단체를 지원하기 위해 포인트를 기부할 수 있습니다.&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;엣지로 들어간 후 Bing 검색 엔진으로 들어가 검색만 해도 &lt;span style=&quot;color: #333333;&quot;&gt;Microsoft Rewards 포인트를 준다고 하네요.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;오!&amp;nbsp;검색으로&amp;nbsp;포인트를&amp;nbsp;쌓다니&amp;nbsp;대박인데&amp;nbsp;하고&amp;nbsp;자세히&amp;nbsp;알아보러&amp;nbsp;갔더니&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;newbrower7.PNG&quot; data-origin-width=&quot;1592&quot; data-origin-height=&quot;123&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/twC2V/btqDxK62cN6/D5SAxikZS1gPllZm7K4nY0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/twC2V/btqDxK62cN6/D5SAxikZS1gPllZm7K4nY0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/twC2V/btqDxK62cN6/D5SAxikZS1gPllZm7K4nY0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtwC2V%2FbtqDxK62cN6%2FD5SAxikZS1gPllZm7K4nY0%2Fimg.png&quot; data-filename=&quot;newbrower7.PNG&quot; data-origin-width=&quot;1592&quot; data-origin-height=&quot;123&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;... 그렇답니다 &lt;b&gt;대한민국은 안된답니다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1587298696140&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;만약 한국이 아니라면

Microsoft Rewards 회원 가입
https://www.microsoft.com/en-us/rewards

Microsoft Rewards 설명
https://www.microsoft.com/en-us/rewards/windows-search-box

bing 검색,게임,퀴즈로 포인트를 얻을 수 있다고 합니다.&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;다시 한번 말하지만 한국은 안됩니다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;개인&amp;nbsp;정보&amp;nbsp;보호정책&lt;/b&gt;&lt;/h4&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;b&gt;1. 웹&amp;nbsp;추적&amp;nbsp;방법&amp;nbsp;제어&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587298778596&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;'웹 추적 방법 제어' 자세히 보기
https://support.microsoft.com/ko-kr/help/4533959/microsoft-edge-learn-about-tracking-prevention?ocid=EdgePrivacySettings-TrackingPrevention&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;2. 검색&amp;nbsp;활동을&amp;nbsp;비공개로&amp;nbsp;유지&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587298788635&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;크롬의 시크릿 창과 동일한 기능입니다.&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;&lt;b&gt;3. 악성&amp;nbsp;사이트&amp;nbsp;및&amp;nbsp;다운로드로부터&amp;nbsp;보호하도록&amp;nbsp;설계&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587298804164&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;물론 internet explorer에서도 8 버전부터 있던 기능인데요.
과거 .js 파일을 잘못다운 받아 랜섬웨어에 걸린적이 있기 때문에 그나마 안심이 되는 문구입니다.
(.js 파일은 어쩔수 없지만...)
'Microsoft Defender SmartScreen'이 내장되어 있답니다.


그런데 엄한 다운로드 파일까지 모조리 잡아버리는 일이 안 생겼으면 좋겠네요 ㄷㄷ..&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;만약 그런 일이 있을 경우는 참고하시면 되겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;newbrower6.PNG&quot; data-origin-width=&quot;1065&quot; data-origin-height=&quot;163&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OcBVT/btqDx6Px7Wc/cnxQy9BK4k8NZKQtSADWkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OcBVT/btqDx6Px7Wc/cnxQy9BK4k8NZKQtSADWkk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OcBVT/btqDx6Px7Wc/cnxQy9BK4k8NZKQtSADWkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOcBVT%2FbtqDx6Px7Wc%2FcnxQy9BK4k8NZKQtSADWkk%2Fimg.png&quot; data-filename=&quot;newbrower6.PNG&quot; data-origin-width=&quot;1065&quot; data-origin-height=&quot;163&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;'&lt;b&gt;Microsoft&amp;nbsp;Defender&amp;nbsp;SmartScreen&lt;/b&gt;'&amp;nbsp;자세히&amp;nbsp;보기&lt;br /&gt;&lt;a href=&quot;https://support.microsoft.com/ko-kr/help/17443/microsoft-edge-smartscreen-faq?ocid=EdgeWelcome-Smartscreen&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://support.microsoft.com/ko-kr/help/17443/microsoft-edge-smartscreen-faq?ocid=EdgeWelcome-Smartscreen&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;성능&lt;/b&gt;&lt;/h4&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;b&gt;1. 어느&amp;nbsp;것도&amp;nbsp;포기하지&amp;nbsp;않은&amp;nbsp;속도,&amp;nbsp;성능&amp;nbsp;및&amp;nbsp;호환성&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587296608568&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;완전히 새롭게 재구성되었으며 Windows 10에 최적화된 유일한 브라우저입니다.&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;크으~&amp;nbsp;자기 강점인&amp;nbsp;Windows&amp;nbsp;10을&amp;nbsp;이렇게&amp;nbsp;부각하네요.&amp;nbsp;멋있네요&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2. 어디서나&amp;nbsp;다양한&amp;nbsp;작업&amp;nbsp;가능&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587296674665&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;모든 장치에서 사용 가능.&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;3. 추가&amp;nbsp;기능으로&amp;nbsp;사용자&amp;nbsp;지정&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587296639465&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Microsoft Edge Addons 스토어 또는 Chrome 웹 스토어와 같은 타사 Chromium 확장 스토어에서 
즐겨 찾는 확장 기능을 다운로드하여 검색 환경을 맞춤 설정&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;4.&amp;nbsp;4K&amp;nbsp;스트리밍&amp;nbsp;체험&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587296653144&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Windows 10에서 4K Ultra, Dolby Audio 및 Dolby Vision으로 Netflix 스트리밍을 
지원하는 고화질 미디어를 위한 최고의 브라우저를 사용해보세요.&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;b&gt;마치며...&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;많은&amp;nbsp;장점이&amp;nbsp;있고&amp;nbsp;외국&amp;nbsp;커뮤니티에&amp;nbsp;가도&amp;nbsp;크롬보다&amp;nbsp;빠르다,&amp;nbsp;괜찮다&amp;nbsp;하는&amp;nbsp;글이&amp;nbsp;종종&amp;nbsp;보이네요.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;일단&amp;nbsp;제가&amp;nbsp;써보고&amp;nbsp;느낀&amp;nbsp;점은&lt;br /&gt;&lt;br /&gt;&lt;b&gt;장점&lt;/b&gt;&lt;br /&gt;1. 확실히&amp;nbsp;속도가&amp;nbsp;빠르다.&lt;br /&gt;2. 기존에&amp;nbsp;쓰던&amp;nbsp;크롬의&amp;nbsp;즐겨찾기, 확장&amp;nbsp;프로그램, 기타&amp;nbsp;데이터를&amp;nbsp;동기화해서&amp;nbsp;가져올&amp;nbsp;수&amp;nbsp;있다.&lt;br /&gt;3. 깔끔한&amp;nbsp;UI&lt;br /&gt;4.Windows&amp;nbsp;10&amp;nbsp;맞춤&amp;nbsp;웹&amp;nbsp;검색&amp;nbsp;엔진&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;단점&lt;/b&gt;&lt;br /&gt;1. 기본&amp;nbsp;검색이&amp;nbsp;bing&amp;nbsp;(웨일에서도&amp;nbsp;언급했지만&amp;nbsp;정말&amp;nbsp;불편)&lt;br /&gt;2.'Microsoft&amp;nbsp;Rewards'가&amp;nbsp;안됨&amp;nbsp;그것도&amp;nbsp;특정&amp;nbsp;나라만&amp;nbsp;매우&amp;nbsp;기분&amp;nbsp;상함&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;마지막으로&amp;nbsp;앞으로&amp;nbsp;나올&amp;nbsp;기능을&amp;nbsp;먼저&amp;nbsp;체험하고&amp;nbsp;싶으시면&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;newbrower9.PNG&quot; data-origin-width=&quot;827&quot; data-origin-height=&quot;265&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bH0KaW/btqDyFjRYeK/14kXD0F5gdAbsEYmu0JY41/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bH0KaW/btqDyFjRYeK/14kXD0F5gdAbsEYmu0JY41/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bH0KaW/btqDyFjRYeK/14kXD0F5gdAbsEYmu0JY41/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbH0KaW%2FbtqDyFjRYeK%2F14kXD0F5gdAbsEYmu0JY41%2Fimg.png&quot; data-filename=&quot;newbrower9.PNG&quot; data-origin-width=&quot;827&quot; data-origin-height=&quot;265&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;figure id=&quot;og_1587296807990&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Microsoft Edge Insider&quot; data-og-description=&quot;Microsoft Edge Insider channels 확인 베타, 개발 및 카나리아라는 세 가지 미리 보기 채널이 있습니다. 이러한 채널은 macOS뿐만 아니라 지원되는 모든 버전의 Windows 및 Windows Server에서 사용할 수 있습니다. 베타 채널은 가장 안정적인 미리 보기 환경이며, 6주마다 업데이트됩니다. 개발 채널은 매주 업데이트되며, 베타보다 덜 안정적이지만 카나리아보다는 안정적입니다. 비교적 안정적인 빌드 내에서 최신 업데이트를&quot; data-og-host=&quot;www.microsoftedgeinsider.com&quot; data-og-source-url=&quot;https://www.microsoftedgeinsider.com/ko-kr/&quot; data-og-url=&quot;https://www.microsoftedgeinsider.com/ko-kr/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/ftTe5/hyFI06Uvdp/pjLy9CSC7bHNlUKXVh6CTK/img.png?width=2814&amp;amp;height=1396&amp;amp;face=0_0_2814_1396,https://scrap.kakaocdn.net/dn/bZk0J1/hyFKrBOJzp/z8VJXK733bWuvfL8Ww3Cs1/img.png?width=1555&amp;amp;height=891&amp;amp;face=0_0_1555_891,https://scrap.kakaocdn.net/dn/bBjPnw/hyFI7yb37m/ZTtRmfAI3pPJ6VzeFtjidK/img.png?width=1555&amp;amp;height=891&amp;amp;face=0_0_1555_891&quot;&gt;&lt;a href=&quot;https://www.microsoftedgeinsider.com/ko-kr/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.microsoftedgeinsider.com/ko-kr/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/ftTe5/hyFI06Uvdp/pjLy9CSC7bHNlUKXVh6CTK/img.png?width=2814&amp;amp;height=1396&amp;amp;face=0_0_2814_1396,https://scrap.kakaocdn.net/dn/bZk0J1/hyFKrBOJzp/z8VJXK733bWuvfL8Ww3Cs1/img.png?width=1555&amp;amp;height=891&amp;amp;face=0_0_1555_891,https://scrap.kakaocdn.net/dn/bBjPnw/hyFI7yb37m/ZTtRmfAI3pPJ6VzeFtjidK/img.png?width=1555&amp;amp;height=891&amp;amp;face=0_0_1555_891');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;Microsoft Edge Insider&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;Microsoft Edge Insider channels 확인 베타, 개발 및 카나리아라는 세 가지 미리 보기 채널이 있습니다. 이러한 채널은 macOS뿐만 아니라 지원되는 모든 버전의 Windows 및 Windows Server에서 사용할 수 있습니다. 베타 채널은 가장 안정적인 미리 보기 환경이며, 6주마다 업데이트됩니다. 개발 채널은 매주 업데이트되며, 베타보다 덜 안정적이지만 카나리아보다는 안정적입니다. 비교적 안정적인 빌드 내에서 최신 업데이트를&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;www.microsoftedgeinsider.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>소개</category>
      <category>Bing Edge</category>
      <category>Edge Chrome</category>
      <category>Edge Chromium</category>
      <category>Microsoft Edge</category>
      <category>Microsoft Rewards</category>
      <category>MS Edge</category>
      <category>마소 엣지</category>
      <category>새로운 엣지</category>
      <category>엣지 크로미움</category>
      <category>엣지 크롬 확장 프로그램</category>
      <author>.java</author>
      <guid isPermaLink="true">https://java119.tistory.com/92</guid>
      <comments>https://java119.tistory.com/92#entry92comment</comments>
      <pubDate>Sun, 19 Apr 2020 21:25:04 +0900</pubDate>
    </item>
    <item>
      <title>[DB] 유명 DB 기본 포트 및 JDBC 문법 총 정리</title>
      <link>https://java119.tistory.com/91</link>
      <description>&lt;pre id=&quot;code_1586956125020&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;JDBC(Java Database Connectivity) 연결 문법 
-로컬에서 연결 시 : localhost or 127.0.0.1
-외부 연결 시 : 해당 외부 아이피&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;참고 : 172.10.0.10 아이피로 예를 들었습니다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;관계형&amp;nbsp;데이터베이스(Relational&amp;nbsp;database, RDB)&lt;/b&gt;&lt;/h4&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;MySQL&amp;nbsp;,&amp;nbsp;MariaDB&amp;nbsp;:&amp;nbsp;3306&lt;/b&gt;&lt;br /&gt;JDBC&amp;nbsp;연결&amp;nbsp;문법&amp;nbsp;:&amp;nbsp;jdbc:mysql://172.10.0.10:3306/[database&amp;nbsp;name]&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Oracle&amp;nbsp;:&amp;nbsp;1521&lt;/b&gt;&lt;br /&gt;JDBC&amp;nbsp;연결&amp;nbsp;문법&amp;nbsp;:&amp;nbsp;jdbc:oracle:thin:@172.10.0.10:1521:[database&amp;nbsp;name]&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;b&gt;MS-SQL&amp;nbsp;:&amp;nbsp;1433&lt;/b&gt;&lt;br /&gt;JDBC&amp;nbsp;연결&amp;nbsp;문법&amp;nbsp;:&amp;nbsp;&amp;nbsp;jdbc:sqlserver://172.10.0.10:1433;database=[database&amp;nbsp;name];&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;b&gt;PostgreSQL&amp;nbsp;:&amp;nbsp;5432&lt;/b&gt;&lt;br /&gt;JDBC&amp;nbsp;연결&amp;nbsp;문법&amp;nbsp;:&amp;nbsp;jdbc:postgresql://172.10.0.10:5432/[database&amp;nbsp;name]&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;b&gt;DB2&amp;nbsp;:&amp;nbsp;&amp;nbsp;50000&lt;/b&gt;&lt;br /&gt;JDBC&amp;nbsp;연결&amp;nbsp;문법&amp;nbsp;:&amp;nbsp;jdbc:db2://172.10.0.10:50000/[database&amp;nbsp;name]&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;b&gt;Infomix&amp;nbsp;:&amp;nbsp;1526&lt;/b&gt;&lt;br /&gt;JDBC&amp;nbsp;연결&amp;nbsp;문법&amp;nbsp;:&amp;nbsp;jdbc:informix-sqli://172.10.0.10:50000/[database&amp;nbsp;name]:INFORMIXSERVER=[server&amp;nbsp;name]&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;b&gt;Sybase&amp;nbsp;:&amp;nbsp;5000&lt;/b&gt;&lt;br /&gt;JDBC&amp;nbsp;연결&amp;nbsp;문법&amp;nbsp;:&amp;nbsp;jdbc:jtds:sybase://172.10.0.10:5000/[database&amp;nbsp;name]&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;b&gt;Derby&amp;nbsp;:&amp;nbsp;&amp;nbsp;1527&lt;/b&gt;&lt;br /&gt;JDBC 연결 문법 : jdbc:derby://172.10.0.10:1527/[database name]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;NoSQL(Not&amp;nbsp;Only&amp;nbsp;SQL)&lt;/b&gt;&lt;/h4&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;CouchDB:&amp;nbsp;&amp;nbsp;5984&lt;br /&gt;&lt;br /&gt;MongoDB&amp;nbsp;:&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;기본&amp;nbsp;포트&amp;nbsp;:&amp;nbsp;27017&lt;br /&gt;shardsvr&amp;nbsp;:&amp;nbsp;27018&lt;br /&gt;configsvr&amp;nbsp;:&amp;nbsp;27019&lt;br /&gt;웹&amp;nbsp;상태&amp;nbsp;페이지&amp;nbsp;기본&amp;nbsp;포트&amp;nbsp;:&amp;nbsp;28017&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;참고&amp;nbsp;-&amp;nbsp;MongoDB&amp;nbsp;docs&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;Hadoop/Hbase&amp;nbsp;:&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;ZooKeeper(hbase.zookeeper.property.clientPort)&amp;nbsp;:&amp;nbsp;&amp;nbsp;2181&lt;br /&gt;Master(hbase.master.port)&amp;nbsp;:&amp;nbsp;60000&lt;br /&gt;Master(hbase.master.info.port)&amp;nbsp;:&amp;nbsp;60010&lt;br /&gt;Region&amp;nbsp;server(hbase.regionserver.port)&amp;nbsp;:&amp;nbsp;60020&lt;br /&gt;Region&amp;nbsp;server(hbase.regionserver.info.port)&amp;nbsp;:&amp;nbsp;60030&lt;br /&gt;REST&amp;nbsp;server(hbase.rest.port**)&amp;nbsp;:&amp;nbsp;8080&lt;br /&gt;REST&amp;nbsp;server(hbase.rest.info.port*)&amp;nbsp;:&amp;nbsp;8085&lt;br /&gt;Thrift&amp;nbsp;server(hbase.regionserver.thrift.port**)&amp;nbsp;:&amp;nbsp;9090&lt;br /&gt;Thrift&amp;nbsp;server(hbase.thrift.info.port*)&amp;nbsp;:&amp;nbsp;9095&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;참고&amp;nbsp;-&amp;nbsp;Guide&amp;nbsp;to&amp;nbsp;Using&amp;nbsp;Apache&amp;nbsp;HBase&amp;nbsp;Ports&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;Cassandra&amp;nbsp;:&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;기본&amp;nbsp;포트&amp;nbsp;:&amp;nbsp;7000&lt;br /&gt;TLS&amp;nbsp;사용&amp;nbsp;:&amp;nbsp;7001&lt;br /&gt;기본&amp;nbsp;프로토콜&amp;nbsp;클라이언트&amp;nbsp;:&amp;nbsp;9042&lt;br /&gt;JMX&amp;nbsp;:&amp;nbsp;7199&lt;br /&gt;CQL&amp;nbsp;기본&amp;nbsp;전송&amp;nbsp;포트&amp;nbsp;:&amp;nbsp;9160&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;DataStax&amp;nbsp;OpsCenter&lt;br /&gt;opscenterd&amp;nbsp;daemon&amp;nbsp;:&amp;nbsp;61620&amp;nbsp;&lt;br /&gt;Agent&amp;nbsp;:&amp;nbsp;61621&amp;nbsp;&lt;br /&gt;Website&amp;nbsp;:&amp;nbsp;8888&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;참고 - docs, stackoverflow&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>DB</category>
      <category>DataBase Port</category>
      <category>DataBase 포트</category>
      <category>db별 포트 정리</category>
      <category>jdbc syntax</category>
      <category>jdbc 문법</category>
      <category>MariaDB 포트</category>
      <category>MySQL 포트</category>
      <category>관계형 데이터베이스 NoSQL</category>
      <category>다른 DB 포트</category>
      <category>포트 및 jdbc 문법</category>
      <author>.java</author>
      <guid isPermaLink="true">https://java119.tistory.com/91</guid>
      <comments>https://java119.tistory.com/91#entry91comment</comments>
      <pubDate>Wed, 15 Apr 2020 22:25:36 +0900</pubDate>
    </item>
    <item>
      <title>[MyBatis] 동적 쿼리 &amp;lt;where&amp;gt; 문법 총 정리</title>
      <link>https://java119.tistory.com/90</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;319&quot; data-origin-height=&quot;160&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bkHVlL/btqDcylDmZp/J7SOMigsvMDgAzdHxfKd1k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bkHVlL/btqDcylDmZp/J7SOMigsvMDgAzdHxfKd1k/img.png&quot; data-alt=&quot;MyBatis 속성&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bkHVlL/btqDcylDmZp/J7SOMigsvMDgAzdHxfKd1k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbkHVlL%2FbtqDcylDmZp%2FJ7SOMigsvMDgAzdHxfKd1k%2Fimg.png&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;319&quot; data-origin-height=&quot;160&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;/&gt;&lt;/span&gt;&lt;figcaption&gt;MyBatis 속성&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;&lt;span style=&quot;color: #333333; font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&amp;lt;where&amp;gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #000000; font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;개념&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;추가 쿼리 문의 내용을 &amp;lt;where&amp;gt; 문 안에 작성하면 첫 조건이 AND로 시작할지라도 WHERE로 치환해준다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;조건&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;MyBatis version 3.2.3 이상&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;문법&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;pre id=&quot;code_1586088334768&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;select id=&quot;id&quot;&amp;gt;

SELECT * FROM table

&amp;lt;where&amp;gt;
추가 SQL
&amp;lt;/where&amp;gt;

&amp;lt;/select&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;잘못된 문법 예시 1.&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1586095009600&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;select id=&quot;getTest&quot; resultType=&quot;board&quot;&amp;gt;

SELECT * FROM board

&amp;lt;if test=&quot;id != null&quot;&amp;gt;WHERE id = #{id} &amp;lt;/if&amp;gt;
&amp;lt;if test=&quot;subject != null&quot;&amp;gt;AND subject = #{subject} &amp;lt;/if&amp;gt;

&amp;lt;/select&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000; font-family: 'Noto Serif KR';&quot;&gt;만약 이런 식으로 작성하면&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000; font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000; font-family: 'Noto Serif KR';&quot;&gt;1-1.&lt;span style=&quot;color: #000000;&quot;&gt;&quot;subject&quot; 칼럼이 먼저 올 경우&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1586095245591&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM board AND subject = #{subject}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000; font-family: 'Noto Serif KR';&quot;&gt;문법 에러가 나게 된다. 이때 &amp;lt;where&amp;gt; 문을 써주면 된다.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;실전 예시 1.&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1586093968776&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;select id=&quot;getTest&quot; resultType=&quot;board&quot;&amp;gt;

SELECT * FROM board

&amp;lt;where&amp;gt;
&amp;lt;if test=&quot;id != null&quot;&amp;gt;AND id = #{id} &amp;lt;/if&amp;gt;
&amp;lt;if test=&quot;subject != null&quot;&amp;gt;AND subject = #{subject} &amp;lt;/if&amp;gt;
&amp;lt;/where&amp;gt;

&amp;lt;/select&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000; font-family: 'Noto Serif KR';&quot;&gt;이런식으로 작성하게 되면 &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000; font-family: 'Noto Serif KR';&quot;&gt;실제 쿼리는 이런 식으로 작성된다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000; font-family: 'Noto Serif KR';&quot;&gt;1-1.&quot;id&quot; &lt;span style=&quot;color: #333333;&quot;&gt;칼럼 값만 있을 경우&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1586094019432&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM board WHERE id = #{id}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;1-2.&quot;subject&quot; 칼럼 값만 있을 경우&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1586094468031&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM board WHERE subject = #{subject}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;1-3. 두 컬럼 모두 값이 있을 경우&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1586094497807&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM board WHERE id = #{id} AND subject = #{subject}

#WHERE AND가 되지 않고 알아서 문법에 맞게 치환 해줍니다.&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;그냥 (AND || OR ) 뭐가 먼저 들어올지 모르는 매개변수 값에 &amp;lt;where&amp;gt; 문을 쓰면 됩니다.&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>Spring/MyBatis</category>
      <category>And</category>
      <category>MyBatis where</category>
      <category>MyBatis 속성 where</category>
      <category>MyBatis 속성들</category>
      <category>where</category>
      <category>where 문</category>
      <category>where 문 문법</category>
      <category>마이바티스 where</category>
      <category>마이바티스 속성들</category>
      <category>마이바티스 웨얼</category>
      <author>.java</author>
      <guid isPermaLink="true">https://java119.tistory.com/90</guid>
      <comments>https://java119.tistory.com/90#entry90comment</comments>
      <pubDate>Sun, 5 Apr 2020 23:06:03 +0900</pubDate>
    </item>
    <item>
      <title>[Eclipse] 새로운 글꼴 적용하기,글꼴 변경하기</title>
      <link>https://java119.tistory.com/89</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1. 원하는 폰트 구하기&lt;/b&gt;&lt;/h4&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;저는 네이버 개발자 선배 형님들이 만든 D2 Coding을 구했습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;다운로드 주소 : &lt;a href=&quot;https://github.com/naver/d2codingfont/blob/master/D2Coding-Ver1.3.2-20180524.zip&quot;&gt;https://github.com/naver/d2codingfont/blob/master/D2Coding-Ver1.3.2-20180524.zip&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1586080532444&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;object&quot; data-og-title=&quot;naver/d2codingfont&quot; data-og-description=&quot;D2 Coding 글꼴. Contribute to naver/d2codingfont development by creating an account on GitHub.&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/naver/d2codingfont/blob/master/D2Coding-Ver1.3.2-20180524.zip&quot; data-og-url=&quot;https://github.com/naver/d2codingfont&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/Dtdhp/hyFyqjkoQ7/1UKkasDtUA2yWtC3Vt1sQk/img.png?width=150&amp;amp;height=150&amp;amp;face=0_0_150_150,https://scrap.kakaocdn.net/dn/ccsp1q/hyFyoshAoU/MTSzljJDXJPynZSFFzymYk/img.png?width=1878&amp;amp;height=666&amp;amp;face=0_0_1878_666,https://scrap.kakaocdn.net/dn/duPnBu/hyFyyBE7he/1OIMAkOO7ljOMrWxKQwKZ1/img.png?width=888&amp;amp;height=350&amp;amp;face=0_0_888_350&quot;&gt;&lt;a href=&quot;https://github.com/naver/d2codingfont/blob/master/D2Coding-Ver1.3.2-20180524.zip&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/naver/d2codingfont/blob/master/D2Coding-Ver1.3.2-20180524.zip&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/Dtdhp/hyFyqjkoQ7/1UKkasDtUA2yWtC3Vt1sQk/img.png?width=150&amp;amp;height=150&amp;amp;face=0_0_150_150,https://scrap.kakaocdn.net/dn/ccsp1q/hyFyoshAoU/MTSzljJDXJPynZSFFzymYk/img.png?width=1878&amp;amp;height=666&amp;amp;face=0_0_1878_666,https://scrap.kakaocdn.net/dn/duPnBu/hyFyyBE7he/1OIMAkOO7ljOMrWxKQwKZ1/img.png?width=888&amp;amp;height=350&amp;amp;face=0_0_888_350');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;naver/d2codingfont&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;D2 Coding 글꼴. Contribute to naver/d2codingfont development by creating an account on GitHub.&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;혹시 git 사용법을 잘 모르시는 분들은 링크에 들어가서&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;1-1.PNG&quot; data-origin-width=&quot;986&quot; data-origin-height=&quot;277&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dkIqye/btqDbENkfbe/dFoGJWXIv8P4w4gD5PJzIk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dkIqye/btqDbENkfbe/dFoGJWXIv8P4w4gD5PJzIk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dkIqye/btqDbENkfbe/dFoGJWXIv8P4w4gD5PJzIk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdkIqye%2FbtqDbENkfbe%2FdFoGJWXIv8P4w4gD5PJzIk%2Fimg.png&quot; data-filename=&quot;1-1.PNG&quot; data-origin-width=&quot;986&quot; data-origin-height=&quot;277&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Download 버튼을 눌러줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;1-2.PNG&quot; data-origin-width=&quot;605&quot; data-origin-height=&quot;27&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yaUpb/btqDaiYv8gx/9PLKqbHRLt65cWuMgOq4l1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yaUpb/btqDaiYv8gx/9PLKqbHRLt65cWuMgOq4l1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yaUpb/btqDaiYv8gx/9PLKqbHRLt65cWuMgOq4l1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyaUpb%2FbtqDaiYv8gx%2F9PLKqbHRLt65cWuMgOq4l1%2Fimg.png&quot; data-filename=&quot;1-2.PNG&quot; data-origin-width=&quot;605&quot; data-origin-height=&quot;27&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;압축을 풀어주게 되면&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;이 세 개의 폴더가 존재하는데&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;D2Coding (기본 폰트 문자만 변경)&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;D2CodingAll (전체 폰트 문자 숫자 기호 전체 변경)&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;D2CodingLigature (합자 폰트 기호만 변경)&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;원하는 대로 설치하시면 됩니다. 저는 코딩용으로 쓸 것이니 전체 폰트를 다 설치하겠습니다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;※ 주의 : 기본 폰트만 설치하게 되면 &amp;gt;= , != 같은 기호를 사용할 때 D2 Coding으로 적용되지 않습니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;1-1.D2CodingAll 폴더의 D2Coding-Ver1.3.2-20180524-all.ttc 마우스 우클릭 후 &amp;rarr; 모든 사용자용으로 설치(A) 클릭&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;K-013.png&quot; data-origin-width=&quot;930&quot; data-origin-height=&quot;356&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sM5uj/btqDbET79Hr/kiri3g90WDfKkzfdtelCIk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sM5uj/btqDbET79Hr/kiri3g90WDfKkzfdtelCIk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sM5uj/btqDbET79Hr/kiri3g90WDfKkzfdtelCIk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsM5uj%2FbtqDbET79Hr%2Fkiri3g90WDfKkzfdtelCIk%2Fimg.png&quot; data-filename=&quot;K-013.png&quot; data-origin-width=&quot;930&quot; data-origin-height=&quot;356&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;/&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;style6&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2.Eclipse 글꼴 설치하기&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;환경&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1586081455687&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Eclipse Version: 2019-09 R (4.13.0)&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2-1.&lt;span style=&quot;color: #333333;&quot;&gt;Window &amp;rarr; Preferences&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;K-003.png&quot; data-origin-width=&quot;164&quot; data-origin-height=&quot;202&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cJYrLi/btqDdGQ1Vtv/C80VZZUHZhA8joSmC1OAD0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cJYrLi/btqDdGQ1Vtv/C80VZZUHZhA8joSmC1OAD0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cJYrLi/btqDdGQ1Vtv/C80VZZUHZhA8joSmC1OAD0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcJYrLi%2FbtqDdGQ1Vtv%2FC80VZZUHZhA8joSmC1OAD0%2Fimg.png&quot; data-filename=&quot;K-003.png&quot; data-origin-width=&quot;164&quot; data-origin-height=&quot;202&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;2-2.&lt;span style=&quot;color: #333333;&quot;&gt;General &lt;span style=&quot;color: #333333;&quot;&gt;&amp;rarr;&lt;/span&gt; Appearance &lt;span style=&quot;color: #333333;&quot;&gt;&amp;rarr;&lt;/span&gt; Colors and Fonts &lt;span style=&quot;color: #333333;&quot;&gt;&amp;rarr; Basic&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;rarr; &lt;/span&gt;Text Font 클릭 &lt;span style=&quot;color: #333333;&quot;&gt;&amp;rarr;&lt;/span&gt; Edit... 클릭&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;K-008.png&quot; data-origin-width=&quot;808&quot; data-origin-height=&quot;683&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bA14lb/btqDcwVBgGf/YxnW2NYbtguQGZdY7HF2G1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bA14lb/btqDcwVBgGf/YxnW2NYbtguQGZdY7HF2G1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bA14lb/btqDcwVBgGf/YxnW2NYbtguQGZdY7HF2G1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbA14lb%2FbtqDcwVBgGf%2FYxnW2NYbtguQGZdY7HF2G1%2Fimg.png&quot; data-filename=&quot;K-008.png&quot; data-origin-width=&quot;808&quot; data-origin-height=&quot;683&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;2-3.글꼴(F) 바로 밑에 검색 창에 D2Coding ligature 입력 &lt;span style=&quot;color: #333333;&quot;&gt;&amp;rarr; 선택 &lt;span style=&quot;color: #333333;&quot;&gt;&amp;rarr; 확인&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;K-016.png&quot; data-origin-width=&quot;624&quot; data-origin-height=&quot;675&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bTSwJl/btqDdHWGGl7/4wffZgQzkQ20muWOEvgaEk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bTSwJl/btqDdHWGGl7/4wffZgQzkQ20muWOEvgaEk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bTSwJl/btqDdHWGGl7/4wffZgQzkQ20muWOEvgaEk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbTSwJl%2FbtqDdHWGGl7%2F4wffZgQzkQ20muWOEvgaEk%2Fimg.png&quot; data-filename=&quot;K-016.png&quot; data-origin-width=&quot;624&quot; data-origin-height=&quot;675&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;2-4.Apply 또는 Apply and Close 클릭 &lt;span style=&quot;color: #333333;&quot;&gt;&amp;rarr; 적용 완료&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;결과&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Consolas (기본 폰트)&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;K-010.png&quot; data-origin-width=&quot;488&quot; data-origin-height=&quot;226&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QCLmO/btqDc3TdJhc/WfnGP4mb78DaJrHSZN0UO0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QCLmO/btqDc3TdJhc/WfnGP4mb78DaJrHSZN0UO0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QCLmO/btqDc3TdJhc/WfnGP4mb78DaJrHSZN0UO0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQCLmO%2FbtqDc3TdJhc%2FWfnGP4mb78DaJrHSZN0UO0%2Fimg.png&quot; data-filename=&quot;K-010.png&quot; data-origin-width=&quot;488&quot; data-origin-height=&quot;226&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;D2Coding ligature&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;K-014.png&quot; data-origin-width=&quot;432&quot; data-origin-height=&quot;226&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bDDOlR/btqDaWnrz2x/206YtOo0BdKJOvYyKrMlE0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bDDOlR/btqDaWnrz2x/206YtOo0BdKJOvYyKrMlE0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bDDOlR/btqDaWnrz2x/206YtOo0BdKJOvYyKrMlE0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbDDOlR%2FbtqDaWnrz2x%2F206YtOo0BdKJOvYyKrMlE0%2Fimg.png&quot; data-filename=&quot;K-014.png&quot; data-origin-width=&quot;432&quot; data-origin-height=&quot;226&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;참고&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;특수기호까지 &lt;b&gt;D2Coding &lt;/b&gt;스타일로 쓰고 싶지 않으시다면 그냥 &lt;b&gt;D2Coding&lt;/b&gt;을 쓰시고&lt;/p&gt;
&lt;p&gt;저처럼 특수기호도 &lt;b&gt;D2Coding&lt;/b&gt; 스타일로 적용하고 싶으시면 &lt;b&gt;D2Coding ligature&lt;/b&gt;을 선택하시면 됩니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;나머지 가독성 좋은 폰트&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1586085422031&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;IBM Plex Mono 
Hack 
DejaVu Sans Mono&lt;/code&gt;&lt;/pre&gt;</description>
      <category>IDE</category>
      <category>D2Coding</category>
      <category>D2Coding 기호 안먹는 현상</category>
      <category>eclipse 글꼴 변경</category>
      <category>IDE 글꼴 바꾸기</category>
      <category>Naver D2Coding</category>
      <category>가독성 있는 글꼴</category>
      <category>깔끔한 글꼴</category>
      <category>이클립스 글꼴 바꾸기</category>
      <category>이클립스 글꼴 변경하기</category>
      <category>코드 글꼴 추천</category>
      <author>.java</author>
      <guid isPermaLink="true">https://java119.tistory.com/89</guid>
      <comments>https://java119.tistory.com/89#entry89comment</comments>
      <pubDate>Sun, 5 Apr 2020 19:59:20 +0900</pubDate>
    </item>
    <item>
      <title>[Java] 숫자 양수&amp;lt; - &amp;gt;음수 변환 총 정리</title>
      <link>https://java119.tistory.com/88</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1번째 방법 (n * -1)&lt;/b&gt;&lt;/h4&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;양수 -&amp;gt; 음수&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1586065061558&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;int a = 119; 

System.out.println(a * -1 );&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;결과&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1586065114350&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;-119&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;음수 -&amp;gt; 양수&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1586065171934&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;int b = -119;
		
System.out.println(b * -1 );&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;결과&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1586065196046&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;119&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;참고&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;정수형이 아닌 실수형도 다 됩니다.&lt;/p&gt;
&lt;pre id=&quot;code_1586065329550&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;double c = 3.14;
		
System.out.println(c * -1 );&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;결과&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1586065344190&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;-3.14&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2번째 방법 Math.abs(n)&lt;/b&gt;&lt;/h4&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;※ 주의&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;2번째 방법은 음수-&amp;gt; 양수로만 변환이 가능합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;음수 -&amp;gt; 양수&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1586065588487&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;int a2 = -119; 

System.out.println(Math.abs(a2));&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;결과&lt;/p&gt;
&lt;pre id=&quot;code_1586065623366&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;119&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;양수를 Math.abs에 사용한다면?&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1586065691606&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;int b2 = 119;

System.out.println(Math.abs(b2));&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;결과&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1586065705920&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;119&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;참고&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;정수형이 아닌 실수형도 다 됩니다.&lt;/p&gt;
&lt;pre id=&quot;code_1586065729074&quot; class=&quot;java&quot; style=&quot;margin: 20px auto 0px; display: block; overflow: auto; padding: 15px; color: #383a42; background: #f6f7f8; font-size: 14px; border-radius: 3px; font-family: Menlo, Consolas, Monaco, monospace; border: 1px solid #dddddd; cursor: default; z-index: 1;&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;double c2 = -3.14;
		
System.out.println(Math.abs(c2));&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;결과&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1586065729076&quot; class=&quot;java&quot; style=&quot;margin: 20px auto 0px; display: block; overflow: auto; padding: 15px; color: #383a42; background: #f6f7f8; font-size: 14px; border-radius: 3px; font-family: Menlo, Consolas, Monaco, monospace; border: 1px solid #dddddd; cursor: default; z-index: 1;&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;3.14&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;기타 (주의 할 점)&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1586065915590&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;int test = -2147483648;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;만약 이와 같은 값이 있다고 하면&lt;/p&gt;
&lt;pre id=&quot;code_1586065942358&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;System.out.println(test * -1 );
System.out.println(Math.abs(test));&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;이 두가지 방법을 사용하더라도 양수로 변하지 않습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이유는 int형 범위가 &lt;b&gt;-2147483648에서&lt;/b&gt; &lt;b&gt;2147483647&lt;/b&gt;이기 때문입니다.&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;양수는 &lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;2147483647&lt;/b&gt;까지인데 &lt;b&gt;2147483648&lt;/b&gt;의 값을 뱉으라고 하니 뱉을 수 없는 거죠.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;사실 당연한 건데 오류를 뱉지 않고 그냥 &lt;b&gt;-2147483648 &lt;/b&gt;값을 뱉기 때문에 &lt;s&gt;밤샘 코딩을&lt;/s&gt; 하신 분들은&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;뇌가 파업하기 때문에 멘붕 올 수도 있습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;해결&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;방법 1.&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1586066072318&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;long test = -2147483648;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;int -&amp;gt; long 타입으로 변경해준다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;방법 2.&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1586066242470&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;int test = -2147483647;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;-2147483648에서 1을 뺀 -2147483647로 변경해준다.&lt;/p&gt;</description>
      <category>java</category>
      <category>int 양수-&amp;gt;음수</category>
      <category>int 음수-&amp;gt;양수</category>
      <category>Java int 양수로 변환하는법</category>
      <category>Java 양수</category>
      <category>Java 음수</category>
      <category>Math</category>
      <category>Math.abs()</category>
      <category>더하기</category>
      <category>빼기</category>
      <category>빼기값으로 변환</category>
      <author>.java</author>
      <guid isPermaLink="true">https://java119.tistory.com/88</guid>
      <comments>https://java119.tistory.com/88#entry88comment</comments>
      <pubDate>Sun, 5 Apr 2020 15:05:30 +0900</pubDate>
    </item>
    <item>
      <title>[jQuery || JavaScript] 동적 생성된 태그에 이벤트 주기(feat.append)</title>
      <link>https://java119.tistory.com/87</link>
      <description>&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;동적으로 생성된 태그의 이벤트를 걸면 뜻대로 동작하지 않는다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;예를 들면&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;JSP&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1585652079022&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;

$(document).ready(function(){
	
	$(&quot;#staticSB&quot;).change(function() {
	      alert(&quot; 정적 변경 감지&quot;);
	   })
       
})

function appendTest(){
	
	var html = '';
	
	html += '&amp;lt;select id=&quot;staticSB&quot;&amp;gt;';
	html += '&amp;lt;option&amp;gt;dynamic1&amp;lt;/option&amp;gt;';
	html += '&amp;lt;option&amp;gt;dynamic2&amp;lt;/option&amp;gt;';
	html += '&amp;lt;option&amp;gt;dynamic3&amp;lt;/option&amp;gt;';
	html += '&amp;lt;option&amp;gt;dynamic4&amp;lt;/option&amp;gt;';
	html += '&amp;lt;option&amp;gt;dynamic5&amp;lt;/option&amp;gt;';
	html += '&amp;lt;/select&amp;gt;';
	
	$(&quot;#parent&quot;).empty();
	$(&quot;#parent&quot;).append(html);
	
}


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

&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
&amp;lt;button type=&quot;button&quot; onclick=&quot;appendTest()&quot;&amp;gt;append?&amp;lt;/button&amp;gt;
&amp;lt;div id=&quot;parent&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 style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;View&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;K-001.png&quot; data-origin-width=&quot;489&quot; data-origin-height=&quot;139&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bqN91G/btqC8HBVMRi/8tmYZ97spbfrpqTAmykkak/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bqN91G/btqC8HBVMRi/8tmYZ97spbfrpqTAmykkak/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bqN91G/btqC8HBVMRi/8tmYZ97spbfrpqTAmykkak/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbqN91G%2FbtqC8HBVMRi%2F8tmYZ97spbfrpqTAmykkak%2Fimg.png&quot; data-filename=&quot;K-001.png&quot; data-origin-width=&quot;489&quot; data-origin-height=&quot;139&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;이미 &lt;b&gt;'staticSB'&lt;/b&gt;라는 id을 가진 selectBox에 change 메서드를 걸어놨지만,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;동적으로 생성된 &lt;b&gt;'staticSB'&lt;/b&gt;라는 id를 가진 selectBox가 아무런 동작도 하지 않는다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;원인&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;1. 처음 페이지가 로드될 때 (클라이언트가 페이지에 접속할 때)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;2.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587739297390&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$(&quot;#staticSB&quot;).change(function() { alert(&quot; 정적 변경 감지&quot;); })&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #333333; font-family: 'Noto Serif KR';&quot;&gt;이 부분이 ready 함수 안에 있기 때문에 제일 먼저 실행하게 된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;2.&lt;b&gt;'staticSB'&lt;/b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;라는 id를 가진 태그를 찾는다.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #333333; font-family: 'Noto Serif KR';&quot;&gt;3.하지만 &lt;b&gt;'staticSB'&lt;/b&gt;라는 id는 아직 존재하지 않기 때문에 찾지 못한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #333333; font-family: 'Noto Serif KR';&quot;&gt;4. 결국 찾지 못한 JavaScript는 포기하고 이벤트를 연결하지 않는다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;해결&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2&gt;&lt;span style=&quot;color: #333333; font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;.on&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;.on : 간단하게 말해서 특정 이벤트를 실행할 때 그 실행하는 순간, 바로 그 자리에서 찾아 연결해주는 메서드&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&lt;b&gt;이벤트 바인딩 메서드 변화&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1585653282421&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;nbsp;.bind() -&amp;gt; .live() -&amp;gt; .delegate() -&amp;gt; .on()&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;&lt;b&gt;조건&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1585652492582&quot; class=&quot;javascript&quot; style=&quot;display: block; overflow: auto; padding: 15px; color: #383a42; background: #f6f7f8; font-size: 14px; border-radius: 3px; font-family: Menlo, Consolas, Monaco, monospace; border: 1px solid #dddddd; margin: 20px auto 0px; cursor: default; z-index: 1; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;jQuery 1.7 이상&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;문법&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1585652472149&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;.on (events [, selector] [, data], handler)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;문법 예시01&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1585652983509&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$(document).on('change','#staticSB',function(){
		alert(&quot; 동적 변경 감지&quot;);
	}) &lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;문법 예시02&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1585653010879&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$(&quot;#staticP&quot;).on({ &quot;click&quot;: function() { alert(&quot;click!&quot;); },
		&quot;mouseenter&quot;: function() { alert(&quot;mouseenter&quot;); }, 
		&quot;mouseleave&quot;: function() { alert(&quot;mouseleave&quot;); }, 
		&quot;copy&quot;: function() {alert(&quot;copy&quot;)},
		&quot;cut&quot;: function() {alert(&quot;cut&quot;)}
		});&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;실전 예시&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1585652548766&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;

$(document).ready(function(){

$(document).on('change','#staticSB',function(){
		alert(&quot; 동적 변경 감지&quot;);
	}) 

})

function appendTest(){
	
	var html = '';
	
	html += '&amp;lt;select id=&quot;staticSB&quot;&amp;gt;';
	html += '&amp;lt;option&amp;gt;dynamic1&amp;lt;/option&amp;gt;';
	html += '&amp;lt;option&amp;gt;dynamic2&amp;lt;/option&amp;gt;';
	html += '&amp;lt;option&amp;gt;dynamic3&amp;lt;/option&amp;gt;';
	html += '&amp;lt;option&amp;gt;dynamic4&amp;lt;/option&amp;gt;';
	html += '&amp;lt;option&amp;gt;dynamic5&amp;lt;/option&amp;gt;';
	html += '&amp;lt;/select&amp;gt;';
	
	$(&quot;#parent&quot;).empty();
	$(&quot;#parent&quot;).append(html);
	
}


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

&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
&amp;lt;button type=&quot;button&quot; onclick=&quot;appendTest()&quot;&amp;gt;append?&amp;lt;/button&amp;gt;
&amp;lt;div id=&quot;parent&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;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;View&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;K-002.png&quot; data-origin-width=&quot;453&quot; data-origin-height=&quot;135&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dJBmTy/btqC49Ucw5O/6S8qtkrZvFeKGlYDd1Ws50/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dJBmTy/btqC49Ucw5O/6S8qtkrZvFeKGlYDd1Ws50/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dJBmTy/btqC49Ucw5O/6S8qtkrZvFeKGlYDd1Ws50/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdJBmTy%2FbtqC49Ucw5O%2F6S8qtkrZvFeKGlYDd1Ws50%2Fimg.png&quot; data-filename=&quot;K-002.png&quot; data-origin-width=&quot;453&quot; data-origin-height=&quot;135&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;이렇게 잘 작동하는 것을 볼 수 있습니다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;.on 메소드엔 다양한 이벤트를 걸 수 있습니다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1585652798569&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[jQuery || JavaScript] HTML + jQuery Event 총 정리&quot; data-og-description=&quot;Event jQuery 홈페이지에 .on 메소드를 보던 중 .on (events [, selector] [, data], handler) 이런 식으로 나와있었다. 여기서 말하는 events 칸엔 뭘 적는 걸까? 그렇다 바로 그것을 알아보겠습니다. (무조건 .o..&quot; data-og-host=&quot;java119.tistory.com&quot; data-og-source-url=&quot;https://java119.tistory.com/86?category=809223&quot; data-og-url=&quot;https://java119.tistory.com/86&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/s44Zo/hyFuY1D9MP/JYJKF8dskLuMYnUJiyiW4k/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/cJmq1f/hyFuZsHuB8/pjvXLg4f17CuIL071DuuF0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800&quot;&gt;&lt;a href=&quot;https://java119.tistory.com/86?category=809223&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://java119.tistory.com/86?category=809223&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/s44Zo/hyFuY1D9MP/JYJKF8dskLuMYnUJiyiW4k/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/cJmq1f/hyFuZsHuB8/pjvXLg4f17CuIL071DuuF0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;[jQuery || JavaScript] HTML + jQuery Event 총 정리&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;Event jQuery 홈페이지에 .on 메소드를 보던 중 .on (events [, selector] [, data], handler) 이런 식으로 나와있었다. 여기서 말하는 events 칸엔 뭘 적는 걸까? 그렇다 바로 그것을 알아보겠습니다. (무조건 .o..&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;java119.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>JavaScript</category>
      <category>.on 메소드</category>
      <category>.on 메소드 문법</category>
      <category>append 후 이벤트</category>
      <category>append 후 이벤트 바인딩</category>
      <category>click 동작 안함</category>
      <category>click 연결</category>
      <category>onclick 동작 안함</category>
      <category>동적 태그 이벤트 바인딩</category>
      <category>동적 태그 이벤트 연결하기</category>
      <category>이벤트 동작 안함</category>
      <author>.java</author>
      <guid isPermaLink="true">https://java119.tistory.com/87</guid>
      <comments>https://java119.tistory.com/87#entry87comment</comments>
      <pubDate>Tue, 31 Mar 2020 20:16:12 +0900</pubDate>
    </item>
    <item>
      <title>[jQuery || JavaScript] HTML + jQuery Event 총 정리</title>
      <link>https://java119.tistory.com/86</link>
      <description>&lt;h2&gt;&lt;span&gt;&lt;b&gt;Event&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;jQuery 홈페이지에 &lt;b&gt;.on &lt;/b&gt;메소드를 보던 중&lt;/p&gt;
&lt;pre id=&quot;code_1585649271013&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;.on (events [, selector] [, data], handler)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;이런 식으로 나와있었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;여기서 말하는 events 칸엔 뭘 적는 걸까? 그렇다 바로 그것을 알아보겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;(무조건 .on 메소드만 이벤트를 쓸 수 있는 것이 아니라 이해를 돕기 위해 예시로 사용한 것입니다.)&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;자주 쓰는 jQuery Event&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;b&gt;예시&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;jQuery&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1585650622621&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;문법 1.$(&quot;#staticP&quot;).on({ &quot;click&quot;: function() { alert(&quot;click!&quot;); } });

문법 2.$(document).on('change','#staticSB',function(){ alert(&quot;change&quot;); })

문법 3.$('#staticP').click(function() { $('#staticP').mouseleave(); });&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;&lt;b&gt;jQuery &lt;/b&gt;한 태그의 여러 이벤트 걸기&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1585651649071&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$(&quot;#staticP&quot;).on({ &quot;click&quot;: function() { alert(&quot;click!&quot;); },
		&quot;mouseenter&quot;: function() { alert(&quot;mouseenter&quot;); }, 
		&quot;mouseleave&quot;: function() { alert(&quot;mouseleave&quot;); }, 
		&quot;copy&quot;: function() {alert(&quot;copy&quot;)},
		&quot;cut&quot;: function() {alert(&quot;cut&quot;)}
		});&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;※주의 : 한 이벤트 문법이 끝날 때마다 &quot;,&quot;(콤마)를 찍어야 한다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;마우스 관련&lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 91.6279%; height: 840px;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;이벤트&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;설명&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;click&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span&gt;노드&lt;/span&gt;&lt;span&gt;(elements)를 마우스&amp;nbsp;포인터로 눌렀다가 떼었을 때에 발생&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;dblclick&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;노드를 더블 클릭 했을 때에 발생&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;hover&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span&gt;mouseenter&lt;/span&gt;&lt;span&gt;와&amp;nbsp;mouseleave&amp;nbsp;이벤트를 한 번에&amp;nbsp;bind 한다.&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;mousedown&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;노드 영역에서 마우스를 눌렀다가 떼었을 때에 발생&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;mouseenter&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span&gt;노드에 마우스가 진입했을 때에 발생(자식 노드에서는&lt;/span&gt;&lt;span&gt; 이벤트를 감지 못함)&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;mouseleave&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;마우스가 노드에서 벗어났을 때에 발생&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;mousemove&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;노드 영역에서 마우스를 움직였을 때에 발생&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;mouseout&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;노드에서 마우스 포인터가 떠났을 때에 발생&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;mouseover&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span&gt;노드 영역에서 마우스를 올려놓았을&lt;/span&gt;&lt;span&gt;&amp;nbsp;때 발생&amp;nbsp;(내부 노드까지 이벤트를 감지)&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;mouseup&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span&gt;마우스 포인터를 노드에 올려놓고 마우스&lt;/span&gt;&lt;span&gt;&amp;nbsp;버튼을 눌렀다 떼었을 때에 발생&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;toggle&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span&gt;click&lt;/span&gt;&lt;span&gt;&amp;nbsp;이벤트에&amp;nbsp;핸들러를&amp;nbsp;바인딩하고 클릭할 때마다 실행될 함수들을 차례대로 실행&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;폼 관련&lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;이벤트&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;설명&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;blur&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;노드에서 포커스가 떠날 때에 발생&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;change&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;노드의 값이 변경될 때에 발생&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;focus&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;노드가 포커스를 획득했을 때에 발생&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;select&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;유저가 텍스트를 선택했을 때에 발생&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;submit&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;폼의 내용을 전송할 때에 발생&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;키보드 관련&lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;이벤트&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;설명&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;keydown&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;해당 영역에서 키보드를 눌렀을 때에 발생&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;keypress&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;해당 영역에서 키보드를 계속 누르고 있을 때에 발생&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;keyup&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;해당 영역에서 키보드를 눌렀다가 떼었을 때 발생&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;문서 로딩 관련&lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;이벤트&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;설명&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;ready&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span&gt;해당 페이지가 로딩되었을 때에&lt;/span&gt;&lt;span&gt;(처음 읽힐 때에)&amp;nbsp;발생&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;unload&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;해당 페이지를 빠져나갈 때에 발생&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;웹 브라우저&lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;이벤트&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;설명&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;resize&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span&gt;웹브라우저&lt;/span&gt;&lt;span&gt;&amp;nbsp;윈도 사이즈의 변화가 있을 때&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;scroll&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;스크롤이 움직일 때에 발생&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;- 출처 : 란쯔 스토리&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;HTML&lt;/b&gt;&amp;nbsp;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Event&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;b&gt;예시&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;jQuery&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1585650313965&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$(&quot;#staticP&quot;).on({
&quot;copy&quot;: function() {alert(&quot;복사를 금지 합니다.&quot;)}, 
&quot;cut&quot;: function() {alert(&quot;잘라내기를 금지 합니다.&quot;)} 
});&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;※주의 : jQuery로 사용 시 앞에 &quot;on&quot; 단어를 빼고 사용합니다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;HTML&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1585650443853&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;input type=&quot;text&quot; oncopy=&quot;myFunction()&quot; value=&quot;Try to copy this text&quot;&amp;gt;
&amp;lt;input type=&quot;text&quot; oncut=&quot;myFunction()&quot; value=&quot;Try to cut this text&quot;&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;HTML 한 태그의 &lt;span&gt;여러&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;개&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;함수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;걸기&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1585653873098&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;button type=&quot;button&quot; onclick=&quot;fun1(); fun2(); fun3();&quot;&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;&quot;;&quot;(세미콜론)으로&amp;nbsp;구분해서&amp;nbsp;함수를&amp;nbsp;여러개&amp;nbsp;연결&amp;nbsp;시킬&amp;nbsp;수&amp;nbsp;있다.&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; width=&quot;95%&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width=&quot;130&quot;&gt;onabort&lt;/td&gt;
&lt;td&gt;이미지의 다운로드를 중지할 때 (브라우저의 중지버튼)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onactivate&lt;/td&gt;
&lt;td&gt;개체가 활성화될 때 발생&lt;br /&gt;(태그의 기능이 작용할 때 발생하는 이벤트로 예를 들어 링크를 누를 경우 링크가 옮겨질때 발생하는 것을 감지하는 이벤트 핸들러)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onafterprint&lt;/td&gt;
&lt;td&gt;문서가 출력되거나 혹은 출력하기 위해 출력미리보기를 한 후에 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onafterupdate&lt;/td&gt;
&lt;td&gt;데이터영역 개체에서 발생하는 이벤트로 데이터 소스 오브젝트내의 데이터가 업데이트 되었을 때 발생(데이터 개체부분 참조)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onbeforeactivate&lt;/td&gt;
&lt;td&gt;개체가 활성화 상태로 되기 바로 직전에 발생 (onactivate 참고)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onbeforecopy&lt;/td&gt;
&lt;td&gt;선택 영역이 시스템의 클립보드로 복사되기 바로 직전에 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onbeforecut&lt;/td&gt;
&lt;td&gt;선택 영역이 지워지기 바로 직전에 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onbeforedeactivate&lt;/td&gt;
&lt;td&gt;부모 문서에서 현재 개체에서 다른 개체로 activeElement가 바뀔 때 발생&lt;br /&gt;(activeElement는 개체를 지칭하는 예약어로도 쓰임)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onbeforeeditfocus&lt;/td&gt;
&lt;td&gt;편집가능한 개체 내부에 포함된 개체가 편집활성화된 상태가 되거나 혹은 편집가능한 개체가 제어를 위해 선택될 때&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onbeforepaste&lt;/td&gt;
&lt;td&gt;시스템의 클립보드에서 문서로 붙여넣기 될 때 대상 개체에서 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onbeforeprint&lt;/td&gt;
&lt;td&gt;문서가 출력되거나 혹은 출력하기 위해 출력미리보기 직전에 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onbeforeunload&lt;/td&gt;
&lt;td&gt;페이지가 언로드되기 직전에 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onbeforeupdate&lt;/td&gt;
&lt;td&gt;데이터영역 개체에서 발생하는 이벤트로 데이터 소스 오브젝트내의 데이터가 업데이트 되기전에 발생 (데이터 개체부분 참조)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onblur&lt;/td&gt;
&lt;td&gt;개체가 포커스를 잃었을 때&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onbounce&lt;/td&gt;
&lt;td&gt;마퀴태그에서 alernate상태에서 스크롤이 양 사이드에서 바운드될 때 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;oncellchange&lt;/td&gt;
&lt;td&gt;데이터 제공 개체에서 데이터가 변화할 때 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onchange&lt;/td&gt;
&lt;td&gt;개체 혹은 선택영역의 내용이 바뀔 때 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onclick&lt;/td&gt;
&lt;td&gt;개체위에서 마우스의 왼쪽 버튼을 누를 때 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;oncontextmenu&lt;/td&gt;
&lt;td&gt;클라이언트 영역에서 사용자가 마우스 오른쪽 버튼을 눌러 콘텍스트 메뉴를 열 때 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;oncontrolselect&lt;/td&gt;
&lt;td&gt;사용자가 개체의 제어 영역을 만들 때 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;oncopy&lt;/td&gt;
&lt;td&gt;시스템의 클립보드에 선택영역 혹은 개체를 복사할 때 소스 개체로부터 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;oncut&lt;/td&gt;
&lt;td&gt;시스템의 클립보드에 선택영역 혹은 개체를 잘라낼때 소스 개체로부터 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ondataavailable&lt;/td&gt;
&lt;td&gt;비정기적으로 데이터를 전달하는 데이터 소스 개체로부터 데이터가 도착할 때마다 정기적으로 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ondatasetchanged&lt;/td&gt;
&lt;td&gt;데이터 소스개체의 변화에 의해 데이터가 노출된 상태로 될 때 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ondatasetcomplete&lt;/td&gt;
&lt;td&gt;데이터 소스 개체로부터 모든 데이터가 유용한 상태로 표시될 때 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ondblclick&lt;/td&gt;
&lt;td&gt;사용자가 개체에 더블클릭 할때 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ondeactivate&lt;/td&gt;
&lt;td&gt;모 문서에서 현재 개체에서 다른 개체로 activeElement가 변할 때 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ondrag&lt;/td&gt;
&lt;td&gt;드래그 상태가 지속되는 동안 소스 객체로부터 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ondragend&lt;/td&gt;
&lt;td&gt;드래그 상태가 끝날 때 소스 객체로부터 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ondragenter&lt;/td&gt;
&lt;td&gt;사용자가 개체를 드래그하여 드롭가능 위치로 지정된 영역으로 이동할 때 타갯 개체에서 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ondragleave&lt;/td&gt;
&lt;td&gt;사용자가 개체를 드래그하여 드롭가능 위치로 지정된 영역을 떠날 때 타갯 개체에서 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ondragover&lt;/td&gt;
&lt;td&gt;사용자가 개체를 드래그하여 드롭가능 위치로 지정된 영역내에서 드래그할 때 계속적으로 타갯 개체에서 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ondragstart&lt;/td&gt;
&lt;td&gt;선택된 개체 혹은 텍스트 영역에서 사용자가 드래그를 시작할 때 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ondrop&lt;/td&gt;
&lt;td&gt;드래그앤드롭 작용에서 상태가 진행되는 동안 개체가 타갯 개체에 드롭되었을 때 타갯 개체에서 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onerror&lt;/td&gt;
&lt;td&gt;개체가 로드되는 동안 발생하는 이벤트&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onerrorupdate&lt;/td&gt;
&lt;td&gt;데이터 소스 개체 내에 데이터가 없데이트 되는 동안 에러가 발생할 때 데이터 영역 개체에서 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onfilterchange&lt;/td&gt;
&lt;td&gt;비주얼 필터의 상태가 바뀌거나 트랜지션이 완료되었을 때 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onfinish&lt;/td&gt;
&lt;td&gt;마퀴개체의 loop가 완료되었을 때 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onfocus&lt;/td&gt;
&lt;td&gt;개체가 포커스를 받았을 때 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onfocusin&lt;/td&gt;
&lt;td&gt;개체에 포커스가 셋팅되기 바로 직전 개체에 대해 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onfocusout&lt;/td&gt;
&lt;td&gt;포커스가 다른 개체로 이동한 후에 포커스를 가고 있는 현재 개체에서 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onhelp&lt;/td&gt;
&lt;td&gt;브라우저가 활성화 되어 있는 동안 F1키를 눌렀을 때&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onkeydown&lt;/td&gt;
&lt;td&gt;사용자가 키를 눌렀을 때&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onkeypress&lt;/td&gt;
&lt;td&gt;기능키를 제외한 키를 눌렀을 때 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onkeyup&lt;/td&gt;
&lt;td&gt;사용자가 키를 놓았을 때 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onlayoutcomplete&lt;/td&gt;
&lt;td&gt;소스 문서로 부터 콘텐드를 가지는 객체가 미리보기나 출력을 할때 현제 LayoutRect 개체를 모두 채우는 것이 끝났을 때 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onload&lt;/td&gt;
&lt;td&gt;브라우저가 개체를 로드한 후에 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onlosecapture&lt;/td&gt;
&lt;td&gt;개체가 마우스 캡쳐를 잃었을 때 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onmousedown&lt;/td&gt;
&lt;td&gt;개체 위에 마우스 버튼을 누를 때 발생(좌우 어느 버튼이든)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onmouseenter&lt;/td&gt;
&lt;td&gt;개체 안으로 마우스 포인터가 들어올 때 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onmouseleave&lt;/td&gt;
&lt;td&gt;개체의 경계밖으로 마우스 포인터가 이동할 때 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onmousemove&lt;/td&gt;
&lt;td&gt;개체위에서 마우스가 움직일 때 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onmouseout&lt;/td&gt;
&lt;td&gt;개체밖으로 마우스 포인터가 빠져나갈 때 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onmouseover&lt;/td&gt;
&lt;td&gt;개체위로 마우스 포인터가 들어올 때 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onmouseup&lt;/td&gt;
&lt;td&gt;마우스가 개체위에 있는 동안 마우스를 누른 상태에서 해제될 때 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onmousewheel&lt;/td&gt;
&lt;td&gt;마우스 휠이 돌아갈 때 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onmove&lt;/td&gt;
&lt;td&gt;개체가 움직일 때 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onmoveend&lt;/td&gt;
&lt;td&gt;개체가 움직임이 끝날 때 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onmovestart&lt;/td&gt;
&lt;td&gt;개체가 움직이기 시작할 때 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onpaste&lt;/td&gt;
&lt;td&gt;문서에 클립보드로부터 데이터가 전송될 때 타겟 개체에서 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onpropertychange&lt;/td&gt;
&lt;td&gt;개체의 속성이 바뀔 때 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onreadystatechange&lt;/td&gt;
&lt;td&gt;개체의 상태가 변화할 때 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onreset&lt;/td&gt;
&lt;td&gt;Form 을 사용자가 리셋할 경우 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onresize&lt;/td&gt;
&lt;td&gt;개체의 크기가 바뀔 때 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onresizeend&lt;/td&gt;
&lt;td&gt;제어영역에서 개체의 크기가 사용자에 의해 변화가 끝날 때 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onresizestart&lt;/td&gt;
&lt;td&gt;제어영역에서 개체의 크기가 사용자에 의해 변화되기 시작할 때 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onrowenter&lt;/td&gt;
&lt;td&gt;데이터 소스 내에서 현재 열이 변화되거나 개체에 새로운 유용한 데이터가 입력될 때 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onrowexit&lt;/td&gt;
&lt;td&gt;데이터 소스 콘트롤이 개체 내의 현재 열을 변화시킬 때 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onrowsdelete&lt;/td&gt;
&lt;td&gt;레코드셋에서 열이 삭제될 때 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onrowsinserted&lt;/td&gt;
&lt;td&gt;현재 레코드셋에 새로운 열이 추가된 후에 발생 (데이터 개체에서)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onscroll&lt;/td&gt;
&lt;td&gt;사용자가 개체 내의 스크롤 바를 스크롤할 때 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onselect&lt;/td&gt;
&lt;td&gt;현재 선택된 영역이 바뀔 때 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onselectionchange&lt;/td&gt;
&lt;td&gt;문서의 선택 영역의 상태가 바뀔 때 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onselectstart&lt;/td&gt;
&lt;td&gt;개체가 선택되기 시작할 때 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onstart&lt;/td&gt;
&lt;td&gt;마퀴개체에서 루프가 매번 시작될 때 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onstop&lt;/td&gt;
&lt;td&gt;사용자가 stop 버튼을 눌렀을 경우 혹은 페이지를 떠날 때 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onsubmit&lt;/td&gt;
&lt;td&gt;폼이 전송되기 직전에 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;onunload&lt;/td&gt;
&lt;td&gt;개체가 언로드되기 직전에 발생&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</description>
      <category>JavaScript</category>
      <category>.on 이벤트 종류</category>
      <category>events syntax</category>
      <category>HTML 이벤트 총 정리</category>
      <category>javaScript 이벤트 총 정리</category>
      <category>jQuery 이벤트</category>
      <category>syntax event</category>
      <category>이벤트 문법 정리</category>
      <category>이벤트 바인딩</category>
      <category>이벤트 정리</category>
      <category>이벤트 핸들러</category>
      <author>.java</author>
      <guid isPermaLink="true">https://java119.tistory.com/86</guid>
      <comments>https://java119.tistory.com/86#entry86comment</comments>
      <pubDate>Tue, 31 Mar 2020 19:37:08 +0900</pubDate>
    </item>
    <item>
      <title>[MyBatis] 동적 쿼리 foreach문 문법 총 정리</title>
      <link>https://java119.tistory.com/85</link>
      <description>&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;시작하기에 앞서&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;참고&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;자료&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span&gt;*&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;ibatis&lt;/b&gt;&lt;span&gt; iterate문&lt;/span&gt;&amp;nbsp;지원 태그&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;property : 파라미터명&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;prepend : 쿼리로&amp;nbsp;쓰일&amp;nbsp;문자&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;open : &lt;span style=&quot;color: #333333;&quot;&gt;구문이 시작될때 삽입할 문자열&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;close : &lt;span style=&quot;color: #333333;&quot;&gt;구문이 종료될때 삽입할 문자열&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;conjunction : &lt;span style=&quot;color: #333333;&quot;&gt;반복되는 사이에 출력할 문자열&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;*&lt;/span&gt;&lt;span&gt;ibatis&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;MyBatis&lt;/span&gt;&lt;span&gt;의&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;옛&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;버전&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;b&gt;MyBatis&lt;/b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt; foreach&lt;/span&gt;문 지원 태그&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;collection : 전달받은 인자. List&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;or&lt;/span&gt;&lt;span&gt; Array 형태만 가능&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;item : 전달받은 인자 값을 alias 명으로 대체&lt;/p&gt;
&lt;p&gt;open : 구문이 시작될때 삽입할 문자열&lt;/p&gt;
&lt;p&gt;close : 구문이 종료될때 삽입할 문자열&lt;/p&gt;
&lt;p&gt;separator : 반복 되는 사이에 출력할 문자열&lt;/p&gt;
&lt;p&gt;index : 반복되는 구문 번호이다. 0부터 순차적으로 증가&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;즉, ibatis iterate -&amp;gt; MyBatis foreach로 변경됐습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;문법&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;pre id=&quot;code_1585400685204&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;foreach collection=&quot;List or Array&quot; item=&quot;alias&quot; &amp;gt;&amp;lt;/foreach&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;사용 예시&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1585400733411&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;select id=&quot;selectPostIn&quot; resultType=&quot;domain.blog.Post&quot;&amp;gt;
  SELECT *
  FROM POST P
  WHERE ID in
  &amp;lt;foreach item=&quot;item&quot; index=&quot;index&quot; collection=&quot;list&quot;
      open=&quot;(&quot; separator=&quot;,&quot; close=&quot;)&quot;&amp;gt;
        #{item}
  &amp;lt;/foreach&amp;gt;
&amp;lt;/select&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;-참고 자료 MyBatis 공식 사이트&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. 배열 예시&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;공통 배열 데이터&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1585404200556&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;String[] userArray = {&quot;1&quot;,&quot;2&quot;,&quot;3&quot;}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1-1. 배열 파라미터를 Map을 통해 넘겼을 경우&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;DAO&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1585404175829&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public List&amp;lt;Members&amp;gt; getAuthUserList(String[] userArray) {
		HashMap&amp;lt;String, Object&amp;gt; map = new HashMap&amp;lt;String, Object&amp;gt;();
		map.put(&quot;userArray&quot;,userArray);
		return sqlSession.selectList(&quot;getAuthUserList&quot;, map);
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;user-Mapper.xml&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1585403945929&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;select id=&quot;getAuthUserList&quot;  resultType=&quot;members&quot;&amp;gt;
SELECT m.*,a.name FROM members AS m 
JOIN authority AS a ON m.authority = a.authority
WHERE m.authority IN
&amp;lt;foreach collection=&quot;userArray&quot; item=&quot;arr&quot; open=&quot;(&quot; close=&quot;)&quot; separator=&quot;,&quot;&amp;gt;
 #{arr}
&amp;lt;/foreach&amp;gt;
ORDER BY m.authority;
&amp;lt;/select&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;※ 주의 : collection을 꼭! &lt;span style=&quot;color: #333333;&quot;&gt;넘겨주는 배열 변수 값과 동일하게&lt;/span&gt; 작성하셔야 합니다.&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1-2. 배열 &lt;span style=&quot;color: #333333;&quot;&gt;파라미터를&lt;/span&gt; 직접 넘겼을 경우&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;DAO&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1585404345716&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public List&amp;lt;Members&amp;gt; getAuthUserList(String[] userArray) {
		return sqlSession.selectList(&quot;getAuthUserList&quot;, userArray);
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;user-Mapper.xml&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1585404395412&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;select id=&quot;getAuthUserList&quot;  resultType=&quot;members&quot;&amp;gt;
SELECT m.*,a.name FROM members AS m 
JOIN authority AS a ON m.authority = a.authority
WHERE m.authority IN
&amp;lt;foreach collection=&quot;array&quot; item=&quot;arr&quot; open=&quot;(&quot; close=&quot;)&quot; separator=&quot;,&quot;&amp;gt;
 #{arr}
&amp;lt;/foreach&amp;gt;
ORDER BY m.authority;
&amp;lt;/select&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;※ 주의 : collection을 꼭! &quot;array&quot;로 작성하셔야 합니다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. 리스트 예시&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;공통 리스트 데이터&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1585405333972&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;List&amp;lt;Members&amp;gt; chkList = userService.getUserList(); //SELECT * FROM members 결과값&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;b&gt;2-1. 리스트 Map을 통해 넘겼을 경우&lt;/b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;DAO&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1585405410950&quot; class=&quot;java&quot; style=&quot;margin: 20px auto 0px; display: block; overflow: auto; padding: 15px; color: #383a42; background: #f6f7f8; font-size: 14px; border-radius: 3px; font-family: Menlo, Consolas, Monaco, monospace; border: 1px solid #dddddd; cursor: default; z-index: 1; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public List&amp;lt;Members&amp;gt; getListTest(List&amp;lt;Members&amp;gt; chkList) {
		HashMap&amp;lt;String, Object&amp;gt; map = new HashMap&amp;lt;String, Object&amp;gt;();
		map.put(&quot;chkList&quot;,chkList);
		return sqlSession.selectList(&quot;getListTest&quot;, map);
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;user-Mapper.xml&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1585405410950&quot; class=&quot;html xml&quot; style=&quot;margin: 20px auto 0px; display: block; overflow: auto; padding: 15px; color: #383a42; background: #f6f7f8; font-size: 14px; border-radius: 3px; font-family: Menlo, Consolas, Monaco, monospace; border: 1px solid #dddddd; cursor: default; z-index: 1; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;select id=&quot;getListTest&quot; resultType=&quot;members&quot;&amp;gt;
SELECT m.*,a.name FROM members AS m 
JOIN authority AS a ON m.authority = a.authority
WHERE m.authority IN
&amp;lt;foreach collection=&quot;chkList&quot; item=&quot;item&quot; open=&quot;(&quot; close=&quot;)&quot; separator=&quot;,&quot;&amp;gt;
 #{item.authority}
&amp;lt;/foreach&amp;gt;
ORDER BY m.authority;
&amp;lt;/select&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;리스트 안에 뽑고 싶은 결괏값을 {key.value} 형태로 뽑으시면 됩니다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;※ 주의 : collection을 꼭!&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;넘겨주는 리스트 변수 값과 동일하게&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;작성하셔야 합니다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;2-2. 리스트 &lt;b&gt;&lt;/b&gt;파라미터를 &lt;b&gt;직접 넘겼을 경우&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;&lt;b&gt;DAO&lt;/b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1585405661952&quot; class=&quot;java&quot; style=&quot;margin: 20px auto 0px; display: block; overflow: auto; padding: 15px; color: #383a42; background: #f6f7f8; font-size: 14px; border-radius: 3px; font-family: Menlo, Consolas, Monaco, monospace; border: 1px solid #dddddd; cursor: default; z-index: 1; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public List&amp;lt;Members&amp;gt; getListTest(List&amp;lt;Members&amp;gt; chkList) {
		return sqlSession.selectList(&quot;getListTest&quot;, chkList);
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;user-Mapper.xml&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1585405661952&quot; class=&quot;html xml&quot; style=&quot;margin: 20px auto 0px; display: block; overflow: auto; padding: 15px; color: #383a42; background: #f6f7f8; font-size: 14px; border-radius: 3px; font-family: Menlo, Consolas, Monaco, monospace; border: 1px solid #dddddd; cursor: default; z-index: 1; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;select id=&quot;getListTest&quot; resultType=&quot;members&quot;&amp;gt;
SELECT m.*,a.name FROM members AS m 
JOIN authority AS a ON m.authority = a.authority
WHERE m.authority IN
&amp;lt;foreach collection=&quot;list&quot; item=&quot;item&quot; open=&quot;(&quot; close=&quot;)&quot; separator=&quot;,&quot;&amp;gt;
 #{item.authority}
&amp;lt;/foreach&amp;gt;
ORDER BY m.authority;
&amp;lt;/select&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;리스트 안에 뽑고 싶은 결괏값을 {key.value} 형태로 뽑으시면 됩니다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;※ 주의 : collection을 꼭! &quot;list&quot;로 작성하셔야 합니다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;공통 설명&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;1. 먼저 리스트/배열 변수 값을 collection에 넣어주고, item이라는 설정으로 별칭 설정을 해준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;2. &lt;span style=&quot;color: #333333;&quot;&gt;리스트/배열&lt;/span&gt;의 값이 시작하기 전 open=&quot;(&quot; 이 설정돼있으므로&lt;span style=&quot;color: #333333;&quot;&gt;'(' (열린 괄호)가 열리게 되고&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;3. &lt;span style=&quot;color: #333333;&quot;&gt;리스트/배열&lt;/span&gt;의 값이 한 번씩 반복문을 거칠 때마다 separator 옵션에 있는 ', '(콤마)가 찍히게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;4. 반복이 끝나면&lt;span&gt;&amp;nbsp;&lt;/span&gt;close=&quot;)&quot; 설정이 있으므로 ')' (닫힌 괄호)가 쓰인다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;더욱 자세한 이해를 위해 실전 예시&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;문법에 들어가기 앞서,&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;공통 테이블 예시&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;예시 테이블&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;b2.PNG&quot; data-origin-width=&quot;947&quot; data-origin-height=&quot;231&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mVPDD/btqCZZK5bhR/DjMU8sKAnLwrP5tYLObtWk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mVPDD/btqCZZK5bhR/DjMU8sKAnLwrP5tYLObtWk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mVPDD/btqCZZK5bhR/DjMU8sKAnLwrP5tYLObtWk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmVPDD%2FbtqCZZK5bhR%2FDjMU8sKAnLwrP5tYLObtWk%2Fimg.png&quot; data-filename=&quot;b2.PNG&quot; data-origin-width=&quot;947&quot; data-origin-height=&quot;231&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;&lt;b&gt;예시 테이블 02&lt;/b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;b3.PNG&quot; data-origin-width=&quot;238&quot; data-origin-height=&quot;168&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dzeqvH/btqC3pIztk7/JOtDwqHMATwSU60qPwGEWk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dzeqvH/btqC3pIztk7/JOtDwqHMATwSU60qPwGEWk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dzeqvH/btqC3pIztk7/JOtDwqHMATwSU60qPwGEWk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdzeqvH%2FbtqC3pIztk7%2FJOtDwqHMATwSU60qPwGEWk%2Fimg.png&quot; data-filename=&quot;b3.PNG&quot; data-origin-width=&quot;238&quot; data-origin-height=&quot;168&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;[배열(array)] 예시 1. 멤버 테이블에서 체크박스에 따라 권한별 보여주는 기능 만들기&lt;/b&gt;&lt;/h4&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;[배열(array)] 예시 펼쳐보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p&gt;&lt;b&gt;JSP&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1585402341300&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&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;script src=&quot;https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt; 
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
var chkArray = new Array;
$(document).ready(function(){

	getAuthUserList($(&quot;input[name=chk_authority]:checked&quot;).val());
	
$(&quot;input[name=chk_authority]&quot;).change(function(){

	var chk = &quot;&quot;;
	chkArray = [];
	
	$(&quot;input[name=chk_authority]:checked&quot;).each(function() {
	
		chkArray.push($(this).val());

	});
	
		
	if(chkArray.length == 0){
		$(&quot;#userList&quot;).empty();
	} else {
		getAuthUserList(chkArray);
	}
	
	});

});

function getAuthUserList(chkArray){
	
$.ajax({
		
		url : &quot;/user/getAuthUserList&quot;,
		data : { chkArray : chkArray },
		traditional : true,
		async: true,
		success : function(data){
			var html = '';
			
			for(key in data){
			html += '&amp;lt;tr&amp;gt;';
			html += '&amp;lt;td&amp;gt;'+data[key].userId+'&amp;lt;/td&amp;gt;';
			html += '&amp;lt;td&amp;gt;'+data[key].nickname+'&amp;lt;/td&amp;gt;';
			html += '&amp;lt;td&amp;gt;'+data[key].name+'&amp;lt;/td&amp;gt;';
			html += '&amp;lt;/tr&amp;gt;';
			}
			
			
			$(&quot;#userList&quot;).empty().append(html);
			
		}
	})
	
}

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

&amp;lt;div&amp;gt;
유저 등급별 보기&amp;lt;br&amp;gt;
&amp;lt;input type=&quot;checkbox&quot; name=&quot;chk_authority&quot; value=&quot;0&quot; checked=&quot;checked&quot;&amp;gt;실버
&amp;lt;input type=&quot;checkbox&quot; name=&quot;chk_authority&quot; value=&quot;1&quot;&amp;gt;골드
&amp;lt;input type=&quot;checkbox&quot; name=&quot;chk_authority&quot; value=&quot;2&quot;&amp;gt;플래티넘
&amp;lt;input type=&quot;checkbox&quot; name=&quot;chk_authority&quot; value=&quot;3&quot;&amp;gt;다이아
&amp;lt;input type=&quot;checkbox&quot; name=&quot;chk_authority&quot; value=&quot;4&quot;&amp;gt;마스터
&amp;lt;input type=&quot;checkbox&quot; name=&quot;chk_authority&quot; value=&quot;5&quot;&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 id=&quot;userList&quot;&amp;gt;
&amp;lt;/tbody&amp;gt;
&amp;lt;/table&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;b&gt;Controller&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1585402369644&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@RequestMapping(&quot;user/getAuthUserList&quot;)
	public @ResponseBody List&amp;lt;Members&amp;gt; getAuthUserList(String[] chkArray) {
		List&amp;lt;Members&amp;gt; result = userService.getAuthUserList(chkArray);
		return result;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;Service&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1585402392964&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;List&amp;lt;Members&amp;gt; getAuthUserList(String[] chkArray);&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;Servicelmpl&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1585402410172&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@Override
public List&amp;lt;Members&amp;gt; getAuthUserList(String[] chkArray) {
		return userDAO.getAuthUserList(chkArray);
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;DAO&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1585402422588&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public List&amp;lt;Members&amp;gt; getAuthUserList(String[] chkArray) {
		HashMap&amp;lt;String, Object&amp;gt; map = new HashMap&amp;lt;String, Object&amp;gt;();
		map.put(&quot;chkArray&quot;,chkArray);
		return sqlSession.selectList(&quot;getAuthUserList&quot;, map);
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;user-Mapper.xml&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1585402435348&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;select id=&quot;getAuthUserList&quot;  resultType=&quot;members&quot;&amp;gt;
SELECT m.*,a.name FROM members AS m 
JOIN authority AS a ON m.authority = a.authority
WHERE m.authority IN
&amp;lt;foreach collection=&quot;chkArray&quot; item=&quot;item&quot; open=&quot;(&quot; close=&quot;)&quot; separator=&quot;,&quot;&amp;gt;
 #{item}
&amp;lt;/foreach&amp;gt;
ORDER BY m.authority;
&amp;lt;/select&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;쿼리 결과&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1585402459388&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT m.*,a.name FROM members AS m  
JOIN authority AS a ON m.authority = a.authority 
WHERE m.authority IN

(체크박스 수에 따른 값)
#('1','2','3')
#('2','3')
ORDER BY m.authority;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;쿼리 결과 설명&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;1. 먼저 배열 변수 값을 collection에 넣어주고, item이라는 설정으로 별칭 설정을 해준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;2. 배열의 값이 시작하기 전 open=&quot;(&quot; 이 설정돼있으므로&lt;span style=&quot;color: #333333;&quot;&gt;'(' (열린 괄호)가 열리게 되고&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;3. 배열의 값이 한 번씩 반복문을 거칠 때마다 separator 옵션에 있는 ', '(콤마)가 찍히게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;4. 반복이 끝나면&lt;span&gt;&amp;nbsp;&lt;/span&gt;close=&quot;)&quot; 설정이 있으므로 ')' (닫힌 괄호)가 쓰인다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;View&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;K-045.png&quot; data-origin-width=&quot;474&quot; data-origin-height=&quot;194&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Uiied/btqCYGeclmp/gUwjnkgpPkGHPLMB7FTE9k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Uiied/btqCYGeclmp/gUwjnkgpPkGHPLMB7FTE9k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Uiied/btqCYGeclmp/gUwjnkgpPkGHPLMB7FTE9k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUiied%2FbtqCYGeclmp%2FgUwjnkgpPkGHPLMB7FTE9k%2Fimg.png&quot; data-filename=&quot;K-045.png&quot; data-origin-width=&quot;474&quot; data-origin-height=&quot;194&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;K-044.png&quot; data-origin-width=&quot;474&quot; data-origin-height=&quot;145&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/IPMy1/btqC4uiluNo/aBnsMIcyOOxUqkfYxwBby1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/IPMy1/btqC4uiluNo/aBnsMIcyOOxUqkfYxwBby1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/IPMy1/btqC4uiluNo/aBnsMIcyOOxUqkfYxwBby1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIPMy1%2FbtqC4uiluNo%2FaBnsMIcyOOxUqkfYxwBby1%2Fimg.png&quot; data-filename=&quot;K-044.png&quot; data-origin-width=&quot;474&quot; data-origin-height=&quot;145&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;K-043.png&quot; data-origin-width=&quot;474&quot; data-origin-height=&quot;169&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yVZ4d/btqCZ1ITENk/nQkpsdfTdADuSR0pHgJOdk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yVZ4d/btqCZ1ITENk/nQkpsdfTdADuSR0pHgJOdk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yVZ4d/btqCZ1ITENk/nQkpsdfTdADuSR0pHgJOdk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyVZ4d%2FbtqCZ1ITENk%2FnQkpsdfTdADuSR0pHgJOdk%2Fimg.png&quot; data-filename=&quot;K-043.png&quot; data-origin-width=&quot;474&quot; data-origin-height=&quot;169&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;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;[리스트(List)] 예시 2. 멤버 테이블에서 데이터 넘겨받아 리스트로 반복문 돌리기&lt;/b&gt;&lt;/h4&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;[리스트(List)] 예시 펼쳐보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p&gt;&lt;b&gt;&lt;b&gt;Controller&lt;/b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1585407475644&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@RequestMapping(&quot;user/getUserList&quot;)
	public @ResponseBody List&amp;lt;Members&amp;gt; getUserList() {
		List&amp;lt;Members&amp;gt; result = userService.getUserOne();
		List&amp;lt;Members&amp;gt; foreachTest = userService.getListTest(result);
		System.out.println(foreachTest);
		return result;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;Service&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1585407489420&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;List&amp;lt;Members&amp;gt; getListTest(List&amp;lt;Members&amp;gt; result);&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;Servicelmpl&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1585407504548&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@Override
public List&amp;lt;Members&amp;gt; getListTest(List&amp;lt;Members&amp;gt; result) {
		return userDAO.getListTest(result);
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;DAO&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1585407515900&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public List&amp;lt;Members&amp;gt; getListTest(List&amp;lt;Members&amp;gt; chkList) {
		HashMap&amp;lt;String, Object&amp;gt; map = new HashMap&amp;lt;String, Object&amp;gt;();
		map.put(&quot;chkList&quot;,chkList);
		return sqlSession.selectList(&quot;getListTest&quot;, map);
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;user-Mapper.xml&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1585407530700&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;select id=&quot;getListTest&quot; resultType=&quot;members&quot;&amp;gt;
SELECT m.*,a.name FROM members AS m 
JOIN authority AS a ON m.authority = a.authority
WHERE m.authority IN
&amp;lt;foreach collection=&quot;chkList&quot; item=&quot;item&quot; open=&quot;(&quot; close=&quot;)&quot; separator=&quot;,&quot;&amp;gt;
 #{item.authority}
&amp;lt;/foreach&amp;gt;
ORDER BY m.authority;
&amp;lt;/select&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;쿼리 결과&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1585407546292&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT m.*,a.name FROM members AS m  
JOIN authority AS a ON m.authority = a.authority 
WHERE m.authority IN

(체크박스 수에 따른 값)
#('1','2','3')
#('2','3')
ORDER BY m.authority;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;쿼리 결과 설명&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;1. 먼저 리스트 변수 값을 collection에 넣어주고, item이라는 설정으로 별칭 설정을 해준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;2. 리스트의 값이 시작하기 전 open=&quot;(&quot; 이 설정돼있으므로&lt;span style=&quot;color: #333333;&quot;&gt;'(' (열린 괄호)가 열리게 되고&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;3. 리스트의 값이 한 번씩 반복문을 거칠 때마다 separator 옵션에 있는 ', '(콤마)가 찍히게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;4. 반복이 끝나면&lt;span&gt;&amp;nbsp;&lt;/span&gt;close=&quot;)&quot; 설정이 있으므로 ')' (닫힌 괄호)가 쓰인다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;예제 SQL 파일 제공&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/Be9fT/btqC3pBPSBQ/DqTPihnvLfx67sLbTmwZHk/%5BMyBatis%5D%20foreach%EB%AC%B8%20%EC%98%88%EC%A0%9C.sql?attach=1&amp;amp;knm=tfile.sql&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;[MyBatis] foreach문 예제.sql&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.00MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Spring/MyBatis</category>
      <category>collection</category>
      <category>foreach array 넘겨 받기</category>
      <category>foreach list 넘겨 받기</category>
      <category>foreach 문법 정리</category>
      <category>foreach문 문법 총 정리</category>
      <category>ibatis iterate</category>
      <category>MyBatis foreach</category>
      <category>mybatis foreach 데이터 넘겨받기</category>
      <category>마이바티스 포이치 문법</category>
      <category>포이치 문법</category>
      <author>.java</author>
      <guid isPermaLink="true">https://java119.tistory.com/85</guid>
      <comments>https://java119.tistory.com/85#entry85comment</comments>
      <pubDate>Sat, 28 Mar 2020 22:38:11 +0900</pubDate>
    </item>
    <item>
      <title>[jQuery || JavaScript] title 속성 다루기 정리 및 버그 해결</title>
      <link>https://java119.tistory.com/84</link>
      <description>&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;개념&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;title 속성이란?&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;a, link, img, blockquote 4가지 태그에서 많이 쓰이고, 앞에 태그에 따라 용도와 기능이 조금 달라집니다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;&lt;span&gt;title 속성의 값은&lt;span&gt; [&lt;/span&gt;&lt;/span&gt;&lt;span&gt;툴팁]&lt;/span&gt;&lt;span&gt;으로 표시할 때 가장 많이 쓰입니다.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;&lt;span&gt;예시&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1585145233157&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;p id=&quot;p_tag&quot; title=&quot;로그인 정보&quot;&amp;gt;환영합니다 ${sessionScope.loginInfo.nickname }님 
&amp;lt;a href=&quot;/jquery/logout&quot;&amp;gt;로그아웃&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;K-028.png&quot; data-origin-width=&quot;392&quot; data-origin-height=&quot;53&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8CKgw/btqCXuKpplM/J3xJdRPnzZ2aKWaGR0DXX0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8CKgw/btqCXuKpplM/J3xJdRPnzZ2aKWaGR0DXX0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8CKgw/btqCXuKpplM/J3xJdRPnzZ2aKWaGR0DXX0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8CKgw%2FbtqCXuKpplM%2FJ3xJdRPnzZ2aKWaGR0DXX0%2Fimg.png&quot; data-filename=&quot;K-028.png&quot; data-origin-width=&quot;392&quot; data-origin-height=&quot;53&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;이와 같이 마우스를 p 태그에 갖다대면 툴팁 같은 정보가 나온다.&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;이것이 바로 title 속성입니다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;u&gt;&lt;s&gt;&lt;b&gt;(심지어 속성이름이 title이 아니라 tooltip으로 알고 계시는 분들도 있다.)&lt;/b&gt;&lt;/s&gt;&lt;/u&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;문법&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;pre id=&quot;code_1585144901333&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;태그 title=&quot;들어갈 내용&quot;&amp;gt;&amp;lt;/태그&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;공통 예제 JavaScript 함수&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1585145578179&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function dynamictitleChange(index) {

		if (index == 1) {

			var titleValue = $(&quot;#titleValue&quot;).val();

			$(&quot;#p_tag&quot;).attr(&quot;title&quot;, titleValue);
			$(&quot;#titleValue&quot;).val('');

		} else if (index == 2) {

			$(&quot;#p_tag&quot;).attr(&quot;title&quot;, &quot;대한민국만세&quot;);

		} else if (index == 3) {
			var msg = &quot;dynamic? wow!&quot;;
			var html = '';

			html += '&amp;lt;p title='+day+'&amp;gt;move!&amp;lt;/p&amp;gt;';

			$(&quot;#dynamic_tag&quot;).append(html);

		}

	}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;공통 예제 HTML&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1585145647676&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;div id=&quot;dynamic_tag&quot;&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;p id=&quot;p_tag&quot; title=&quot;로그인 정보&quot;&amp;gt;환영합니다 ${sessionScope.loginInfo.nickname }님 
&amp;lt;a href=&quot;/jquery/logout&quot;&amp;gt;로그아웃&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;상황 1.input 창에 내용을 title 속성으로 적용하기&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;소스&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1585145528929&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;input type=&quot;text&quot; id=&quot;titleValue&quot;&amp;gt;
&amp;lt;button onclick=&quot;dynamictitleChange(1)&quot;&amp;gt;title input 값으로 변경하기&amp;lt;/button&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;결과&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;K-030.png&quot; data-origin-width=&quot;572&quot; data-origin-height=&quot;92&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cZ6U2J/btqCVENOurR/w4jyEv67kwVrvNw2wVSTcK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cZ6U2J/btqCVENOurR/w4jyEv67kwVrvNw2wVSTcK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cZ6U2J/btqCVENOurR/w4jyEv67kwVrvNw2wVSTcK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcZ6U2J%2FbtqCVENOurR%2Fw4jyEv67kwVrvNw2wVSTcK%2Fimg.png&quot; data-filename=&quot;K-030.png&quot; data-origin-width=&quot;572&quot; data-origin-height=&quot;92&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;K-035.png&quot; data-origin-width=&quot;571&quot; data-origin-height=&quot;92&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/WpMpF/btqCX9suc1t/k1az9taTDzk6dbaGsMwLvk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/WpMpF/btqCX9suc1t/k1az9taTDzk6dbaGsMwLvk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/WpMpF/btqCX9suc1t/k1az9taTDzk6dbaGsMwLvk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWpMpF%2FbtqCX9suc1t%2Fk1az9taTDzk6dbaGsMwLvk%2Fimg.png&quot; data-filename=&quot;K-035.png&quot; data-origin-width=&quot;571&quot; data-origin-height=&quot;92&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;상황 2.title 속성의 값을 대한민국만세로 변경하기&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;소스&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1585145880907&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;button onclick=&quot;dynamictitleChange(2)&quot;&amp;gt;title 값을 '대한민국만세'로 바꾸기&amp;lt;/button&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;결과&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;K-036.png&quot; data-origin-width=&quot;571&quot; data-origin-height=&quot;92&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ylslZ/btqCVDg2xrC/XW7NkTGNXqmpREhFa0X8PK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ylslZ/btqCVDg2xrC/XW7NkTGNXqmpREhFa0X8PK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ylslZ/btqCVDg2xrC/XW7NkTGNXqmpREhFa0X8PK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FylslZ%2FbtqCVDg2xrC%2FXW7NkTGNXqmpREhFa0X8PK%2Fimg.png&quot; data-filename=&quot;K-036.png&quot; data-origin-width=&quot;571&quot; data-origin-height=&quot;92&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;K-037.png&quot; data-origin-width=&quot;571&quot; data-origin-height=&quot;92&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2Jea6/btqCXwhdYMe/234MidOWcd799KZLiI0C41/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2Jea6/btqCXwhdYMe/234MidOWcd799KZLiI0C41/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2Jea6/btqCXwhdYMe/234MidOWcd799KZLiI0C41/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2Jea6%2FbtqCXwhdYMe%2F234MidOWcd799KZLiI0C41%2Fimg.png&quot; data-filename=&quot;K-037.png&quot; data-origin-width=&quot;571&quot; data-origin-height=&quot;92&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;상황 3.동적으로 title 속성이 담긴 태그 생성하기&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1585146063972&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;button onclick=&quot;dynamictitleChange(3)&quot;&amp;gt;동적 title 속성이 담긴 태그 생성하기&amp;lt;/button&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;결과&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;K-038.png&quot; data-origin-width=&quot;805&quot; data-origin-height=&quot;92&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bXY6Kg/btqCWLFEr5S/uK9UryRryrtbNNYiUoqhGK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bXY6Kg/btqCWLFEr5S/uK9UryRryrtbNNYiUoqhGK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bXY6Kg/btqCWLFEr5S/uK9UryRryrtbNNYiUoqhGK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbXY6Kg%2FbtqCWLFEr5S%2FuK9UryRryrtbNNYiUoqhGK%2Fimg.png&quot; data-filename=&quot;K-038.png&quot; data-origin-width=&quot;805&quot; data-origin-height=&quot;92&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;K-040.png&quot; data-origin-width=&quot;805&quot; data-origin-height=&quot;92&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dlbtJj/btqCU6js1ER/AGFjjWQa7xYvp6cBsknFvK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dlbtJj/btqCU6js1ER/AGFjjWQa7xYvp6cBsknFvK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dlbtJj/btqCU6js1ER/AGFjjWQa7xYvp6cBsknFvK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdlbtJj%2FbtqCU6js1ER%2FAGFjjWQa7xYvp6cBsknFvK%2Fimg.png&quot; data-filename=&quot;K-040.png&quot; data-origin-width=&quot;805&quot; data-origin-height=&quot;92&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;끝! 이 아니다. 상황 3의 결과가 조금 이상합니다. 저는 분명히 &quot;dynamic? wow!&quot;라고 했는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;띄어쓰기(공백) 부분부터는 잘려서 나오질 않습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;해결&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;b&gt;쌍&amp;nbsp;따옴표(더블&amp;nbsp;쿼테이션&amp;nbsp;Double&amp;nbsp;quotation)를&amp;nbsp;넣어줘야&amp;nbsp;합니다.&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1585146584945&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;html += '&amp;lt;p title='+day+'&amp;gt;move!&amp;lt;/p&amp;gt;'; (X)

//쌍 따옴표(더블 쿼테이션 Double quotation)를 넣어줘야 합니다.
html += '&amp;lt;p title=&quot;'+day+'&quot;&amp;gt;move!&amp;lt;/p&amp;gt;'; (O)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;결과&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;K-041.png&quot; data-origin-width=&quot;805&quot; data-origin-height=&quot;92&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/UDkY3/btqCXuDGibL/kc8zV9TpMG6dhQ5SwrayJ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/UDkY3/btqCXuDGibL/kc8zV9TpMG6dhQ5SwrayJ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/UDkY3/btqCXuDGibL/kc8zV9TpMG6dhQ5SwrayJ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUDkY3%2FbtqCXuDGibL%2Fkc8zV9TpMG6dhQ5SwrayJ1%2Fimg.png&quot; data-filename=&quot;K-041.png&quot; data-origin-width=&quot;805&quot; data-origin-height=&quot;92&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>JavaScript</category>
      <category>HTML title 속성 정리</category>
      <category>jQuery title 속성 내용 바꾸기</category>
      <category>title JavaScript로 다루는 법</category>
      <category>title 값 짤림</category>
      <category>title 내용 짤림</category>
      <category>title 속성</category>
      <category>title 속성 값 변경</category>
      <category>title 속성 총 정리</category>
      <category>title 태그 값 변경</category>
      <category>title 태그 버그</category>
      <author>.java</author>
      <guid isPermaLink="true">https://java119.tistory.com/84</guid>
      <comments>https://java119.tistory.com/84#entry84comment</comments>
      <pubDate>Wed, 25 Mar 2020 23:35:50 +0900</pubDate>
    </item>
    <item>
      <title>[MySQL || MariaDB] ALTER TABLE 문법 총 정리</title>
      <link>https://java119.tistory.com/83</link>
      <description>&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;문법&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;문법에 들어가기 앞서,&lt;span&gt;&amp;nbsp;&lt;/span&gt;공통 테이블 예시&lt;/p&gt;
&lt;pre id=&quot;code_1584855398123&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;CREATE TABLE ex_table (
id INT,
sFirst VARCHAR(32),
sThird VARCHAR(32),
nSecond INT,
sFifth VARCHAR(32)
)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;1.PNG&quot; data-origin-width=&quot;607&quot; data-origin-height=&quot;149&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bnm0y6/btqCQ3z1e7Y/88oAKCQAijQ59KS6k6qDI1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bnm0y6/btqCQ3z1e7Y/88oAKCQAijQ59KS6k6qDI1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bnm0y6/btqCQ3z1e7Y/88oAKCQAijQ59KS6k6qDI1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbnm0y6%2FbtqCQ3z1e7Y%2F88oAKCQAijQ59KS6k6qDI1%2Fimg.png&quot; data-filename=&quot;1.PNG&quot; data-origin-width=&quot;607&quot; data-origin-height=&quot;149&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;컬럼 추가 (Add)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;nSixth INT형 컬럼 추가&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1584855592409&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ALTER TABLE [테이블명] ADD [컬럼명] [타입]
ALTER TABLE ex_table ADD COLUMN nSixth INT;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;결과&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;2.PNG&quot; data-origin-width=&quot;601&quot; data-origin-height=&quot;147&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EucBV/btqCQoj2awF/10BubELeCwHVqqCnAEQcCK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EucBV/btqCQoj2awF/10BubELeCwHVqqCnAEQcCK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EucBV/btqCQoj2awF/10BubELeCwHVqqCnAEQcCK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEucBV%2FbtqCQoj2awF%2F10BubELeCwHVqqCnAEQcCK%2Fimg.png&quot; data-filename=&quot;2.PNG&quot; data-origin-width=&quot;601&quot; data-origin-height=&quot;147&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;특정&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;컬럼&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;뒤에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;추가 &lt;b&gt;&lt;span&gt;(Add)&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;sThird 컬럼 뒤에 sFourth &lt;span style=&quot;color: #333333;&quot;&gt;VARCHAR&lt;/span&gt;형 컬럼 추가&lt;/p&gt;
&lt;pre id=&quot;code_1584856501875&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ALTER TABLE [테이블명] ADD COLUMN [추가할컬럼명] [컬럼타입] DEFAULT [기본값] [컬럼위치]
ALTER TABLE ex_table ADD COLUMN sFourth varchar(32) DEFAULT NULL AFTER sThird;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;결과&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;K-011.png&quot; data-origin-width=&quot;611&quot; data-origin-height=&quot;165&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Kesnz/btqCTxfMfKR/tg7skX72f4JDEld5VwogCk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Kesnz/btqCTxfMfKR/tg7skX72f4JDEld5VwogCk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Kesnz/btqCTxfMfKR/tg7skX72f4JDEld5VwogCk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKesnz%2FbtqCTxfMfKR%2Ftg7skX72f4JDEld5VwogCk%2Fimg.png&quot; data-filename=&quot;K-011.png&quot; data-origin-width=&quot;611&quot; data-origin-height=&quot;165&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;/&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;style6&quot; /&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;컬럼 타입 변경 (Modify)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;sFifth 컬럼 VARCHAR(32) -&amp;gt; VARCHAR(55)로 변경&lt;/p&gt;
&lt;pre id=&quot;code_1584857083651&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ALTER TABLE [테이블명] MODIFY [컬럼명] [타입]
ALTER TABLE ex_table MODIFY COLUMN sFifth VARCHAR(55);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;결과&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;K-012.png&quot; data-origin-width=&quot;611&quot; data-origin-height=&quot;165&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ct9DQT/btqCTwHX3BH/ZkUV4MbgxLeTKO49oSJvk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ct9DQT/btqCTwHX3BH/ZkUV4MbgxLeTKO49oSJvk1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ct9DQT/btqCTwHX3BH/ZkUV4MbgxLeTKO49oSJvk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fct9DQT%2FbtqCTwHX3BH%2FZkUV4MbgxLeTKO49oSJvk1%2Fimg.png&quot; data-filename=&quot;K-012.png&quot; data-origin-width=&quot;611&quot; data-origin-height=&quot;165&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;여러&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;개&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;컬럼&lt;/span&gt;&lt;span&gt; 한번에 &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;변경&amp;nbsp;&lt;span&gt;(Modify)&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;nSixth 컬럼 INT(11) -&amp;gt; INT(6) , sFirst 컬럼 VARCHAR(32) -&amp;gt; VARCHAR(11)&lt;/p&gt;
&lt;pre id=&quot;code_1584857420449&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ALTER TABLE ex_table
MODIFY COLUMN nSixth INT(6),
MODIFY COLUMN sFirst VARCHAR(11);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;결과&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;K-013.png&quot; data-origin-width=&quot;611&quot; data-origin-height=&quot;165&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rEX1a/btqCU7m9FVM/d2MfvQipS3BlokMZJ4Dbsk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rEX1a/btqCU7m9FVM/d2MfvQipS3BlokMZJ4Dbsk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rEX1a/btqCU7m9FVM/d2MfvQipS3BlokMZJ4Dbsk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrEX1a%2FbtqCU7m9FVM%2Fd2MfvQipS3BlokMZJ4Dbsk%2Fimg.png&quot; data-filename=&quot;K-013.png&quot; data-origin-width=&quot;611&quot; data-origin-height=&quot;165&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;컬럼 순서변경&amp;nbsp;&lt;b&gt;&lt;span&gt;(Modify)&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;sFirst 컬럼 뒤에 &lt;/span&gt;nSecond 컬럼 배치 하기&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1584860082539&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ALTER TABLE [테이블명] MODIFY [순서변경 할 컬럼명] [컬럼타입] AFTER [컬럼위치];
ALTER TABLE ex_table MODIFY nSecond int AFTER sFirst;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;결과&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;K-018.png&quot; data-origin-width=&quot;611&quot; data-origin-height=&quot;165&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BV1dd/btqCQ3NuCNq/yUWMNPojptEAHHm9689U01/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BV1dd/btqCQ3NuCNq/yUWMNPojptEAHHm9689U01/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BV1dd/btqCQ3NuCNq/yUWMNPojptEAHHm9689U01/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBV1dd%2FbtqCQ3NuCNq%2FyUWMNPojptEAHHm9689U01%2Fimg.png&quot; data-filename=&quot;K-018.png&quot; data-origin-width=&quot;611&quot; data-origin-height=&quot;165&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;b&gt;컬럼 이름까지 변경&lt;/b&gt;&amp;nbsp;&lt;b&gt;(Change)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt; &lt;/span&gt;nSecond 컬럼 &lt;span style=&quot;color: #333333;&quot;&gt;이름 변경&lt;/span&gt; -&amp;gt; sSecond , &lt;span style=&quot;color: #333333;&quot;&gt;타입 변경 &lt;/span&gt;INT -&amp;gt; VARCHAR(22)&lt;/p&gt;
&lt;pre id=&quot;code_1584857877916&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ALTER TABLE [테이블명] CHANGE [변경 전 컬럼명] [변경 후 컬럼명] [컬럼타입]
ALTER TABLE ex_table CHANGE COLUMN nSecond sSecond VARCHAR(22);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;결과&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;K-019.png&quot; data-origin-width=&quot;611&quot; data-origin-height=&quot;165&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bgyVKQ/btqCSXFLLaN/WuZxbeVkG9ZRR0MRSXr1Mk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bgyVKQ/btqCSXFLLaN/WuZxbeVkG9ZRR0MRSXr1Mk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bgyVKQ/btqCSXFLLaN/WuZxbeVkG9ZRR0MRSXr1Mk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbgyVKQ%2FbtqCSXFLLaN%2FWuZxbeVkG9ZRR0MRSXr1Mk%2Fimg.png&quot; data-filename=&quot;K-019.png&quot; data-origin-width=&quot;611&quot; data-origin-height=&quot;165&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;&lt;b&gt;주의 :&lt;span&gt;&amp;nbsp;&lt;/span&gt;기존 데이터가 유실될수 있으므로, 컬럼의 크기는 늘릴수만 있습니다.&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;컬럼 삭제&amp;nbsp;(Drop)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;nSixth 컬럼 삭제&lt;/p&gt;
&lt;pre id=&quot;code_1584858155035&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ALTER TABLE [테이블명] DROP [컬럼명]
ALTER TABLE ex_table DROP COLUMN nSixth;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;결과&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;K-020.png&quot; data-origin-width=&quot;611&quot; data-origin-height=&quot;145&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bLcBsH/btqCUxGnUlx/Ss4vKPD9TMLIiKtZBwMpnk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bLcBsH/btqCUxGnUlx/Ss4vKPD9TMLIiKtZBwMpnk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bLcBsH/btqCUxGnUlx/Ss4vKPD9TMLIiKtZBwMpnk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbLcBsH%2FbtqCUxGnUlx%2FSs4vKPD9TMLIiKtZBwMpnk%2Fimg.png&quot; data-filename=&quot;K-020.png&quot; data-origin-width=&quot;611&quot; data-origin-height=&quot;145&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;/&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;style6&quot; /&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;Primary Key(PK) 설정&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span&gt;&lt;span&gt;id 컬럼 &lt;span&gt;&lt;span&gt;Primary Key(PK) 추가&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1584859285786&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ALTER TABLE [테이블명] ADD PRIMARY KEY (Key 설정 컬럼 명01, Key 설정 컬럼 명02) 
ALTER TABLE ex_table ADD PRIMARY KEY (id);&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span&gt;결과&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;K-021.png&quot; data-origin-width=&quot;611&quot; data-origin-height=&quot;145&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Xa3QZ/btqCTw82Xzl/Yg4A0hFD4375yzu5Swn2hK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Xa3QZ/btqCTw82Xzl/Yg4A0hFD4375yzu5Swn2hK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Xa3QZ/btqCTw82Xzl/Yg4A0hFD4375yzu5Swn2hK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXa3QZ%2FbtqCTw82Xzl%2FYg4A0hFD4375yzu5Swn2hK%2Fimg.png&quot; data-filename=&quot;K-021.png&quot; data-origin-width=&quot;611&quot; data-origin-height=&quot;145&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;Primary Key(PK) 삭제&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span&gt;모든 컬럼 &lt;span style=&quot;color: #333333;&quot;&gt;Primary Key(PK) 삭제&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1584859472627&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ALTER TABLE [테이블명] DROP PRIMARY KEY
ALTER TABLE ex_table DROP PRIMARY KEY;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;결과&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;K-020.png&quot; data-origin-width=&quot;611&quot; data-origin-height=&quot;145&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bsbmC8/btqCRyGxGxE/NWZuj5qlQtf7gIfMIN23k1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bsbmC8/btqCRyGxGxE/NWZuj5qlQtf7gIfMIN23k1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bsbmC8/btqCRyGxGxE/NWZuj5qlQtf7gIfMIN23k1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbsbmC8%2FbtqCRyGxGxE%2FNWZuj5qlQtf7gIfMIN23k1%2Fimg.png&quot; data-filename=&quot;K-020.png&quot; data-origin-width=&quot;611&quot; data-origin-height=&quot;145&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;/&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;style6&quot; /&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;컬럼 디폴트값 변경&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span&gt;sFirst 컬럼 기본 값을 '첫번째값'으로 설정&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1584860786075&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ALTER TABLE [테이블명] ALTER COLUMN [컬럼명] SET DEFAULT [기본값]
ALTER TABLE ex_table ALTER COLUMN sFirst SET DEFAULT '첫번째값';&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;결과&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;K-022.png&quot; data-origin-width=&quot;611&quot; data-origin-height=&quot;145&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vyFsC/btqCRy0NSlo/cKwZudGvxaAepGnlNtqTfK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vyFsC/btqCRy0NSlo/cKwZudGvxaAepGnlNtqTfK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vyFsC/btqCRy0NSlo/cKwZudGvxaAepGnlNtqTfK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvyFsC%2FbtqCRy0NSlo%2FcKwZudGvxaAepGnlNtqTfK%2Fimg.png&quot; data-filename=&quot;K-022.png&quot; data-origin-width=&quot;611&quot; data-origin-height=&quot;145&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;컬럼 디폴트값 &lt;span&gt;삭제&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;sFirst 컬럼 기본 값을 삭제&lt;/p&gt;
&lt;pre id=&quot;code_1584861092353&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ALTER TABLE [테이블명] ALTER [컬럼명] DROP DEFAULT
ALTER TABLE ex_table ALTER sFirst DROP DEFAULT;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;결과&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;K-024.png&quot; data-origin-width=&quot;624&quot; data-origin-height=&quot;145&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/da79HJ/btqCQnZHXk5/od8achiizIzLue09RJTUL0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/da79HJ/btqCQnZHXk5/od8achiizIzLue09RJTUL0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/da79HJ/btqCQnZHXk5/od8achiizIzLue09RJTUL0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fda79HJ%2FbtqCQnZHXk5%2Fod8achiizIzLue09RJTUL0%2Fimg.png&quot; data-filename=&quot;K-024.png&quot; data-origin-width=&quot;624&quot; data-origin-height=&quot;145&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;/&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;style6&quot; /&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;컬럼 인덱스 설정&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span&gt;&lt;span&gt;id 컬럼 `pkindex` 인덱스 설정&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1584861326348&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ALTER TABLE [테이블명] ADD INDEX 인덱스명(인덱스 설정 컬럼01, 인덱스 설정 컬럼02) 
ALTER TABLE ex_table ADD INDEX pkindex(id);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span&gt;결과&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;K-025.png&quot; data-origin-width=&quot;624&quot; data-origin-height=&quot;145&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yeJzK/btqCPArxxTS/w2hnbKL0t9YwqL1fEHz841/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yeJzK/btqCPArxxTS/w2hnbKL0t9YwqL1fEHz841/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yeJzK/btqCPArxxTS/w2hnbKL0t9YwqL1fEHz841/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyeJzK%2FbtqCPArxxTS%2Fw2hnbKL0t9YwqL1fEHz841%2Fimg.png&quot; data-filename=&quot;K-025.png&quot; data-origin-width=&quot;624&quot; data-origin-height=&quot;145&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;컬럼 인덱스 삭제&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;pkindex 인덱스 삭제&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1584861548562&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ALTER TABLE [테이블명] DROP INDEX [인덱스명]
ALTER TABLE ex_table DROP INDEX pkindex;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;결과&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;K-026.png&quot; data-origin-width=&quot;624&quot; data-origin-height=&quot;145&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3UDuI/btqCPzMTjd8/re3SaZEkS7KprtNKaIzpNK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3UDuI/btqCPzMTjd8/re3SaZEkS7KprtNKaIzpNK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3UDuI/btqCPzMTjd8/re3SaZEkS7KprtNKaIzpNK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3UDuI%2FbtqCPzMTjd8%2Fre3SaZEkS7KprtNKaIzpNK%2Fimg.png&quot; data-filename=&quot;K-026.png&quot; data-origin-width=&quot;624&quot; data-origin-height=&quot;145&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;테이블 이름 변경 (RENAME)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span&gt;테이블 이름 변경 ex_table -&amp;gt; ex_alterTable&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1584858385507&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ALTER TABLE [테이블명] RENAME [변경 후 테이블명]
ALTER TABLE ex_table RENAME ex_alterTable;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;결과&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;K-027.png&quot; data-origin-width=&quot;624&quot; data-origin-height=&quot;145&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BnxRs/btqCSYLs3fu/KlNUmfAk9TK6uR7qtR0QL0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BnxRs/btqCSYLs3fu/KlNUmfAk9TK6uR7qtR0QL0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BnxRs/btqCSYLs3fu/KlNUmfAk9TK6uR7qtR0QL0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBnxRs%2FbtqCSYLs3fu%2FKlNUmfAk9TK6uR7qtR0QL0%2Fimg.png&quot; data-filename=&quot;K-027.png&quot; data-origin-width=&quot;624&quot; data-origin-height=&quot;145&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;/&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;style6&quot; /&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;테이블 &lt;span style=&quot;color: #000000;&quot;&gt;스토리지 &lt;/span&gt;엔진(&lt;b&gt;Storage &lt;/b&gt;&lt;/span&gt;&lt;span&gt;Engine) 변경&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;스토리지 &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;엔진 종류&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;두&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가지&lt;/span&gt;&lt;span&gt; : [&lt;/span&gt;&lt;span&gt;InnoDB || MyISAM]&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;ex_alterTable&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt; 엔진을 INNODB로 변경&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1584862102122&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ALTER TABLE [테이블명] ENGINE = [형식]
ALTER TABLE ex_alterTable ENGINE = INNODB&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;현재 &lt;span style=&quot;color: #000000;&quot;&gt;스토리지 &lt;/span&gt;엔진 확인 방법&lt;/p&gt;
&lt;pre id=&quot;code_1584862017226&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT engine, support FROM information_schema.engines WHERE support='DEFAULT';&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;예제 파일 제공&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/c49PQ7/btqCPzMTHYq/CX1lwmNbY5VO0gwJEPsr71/%5BMariaDB%5D%20ALTER%20TABLE.sql?attach=1&amp;amp;knm=tfile.sql&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;[MariaDB] ALTER TABLE.sql&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.00MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>MariaDB</category>
      <category>DB 컬럼 추가 하기</category>
      <category>MariaDB alter table 문법 총 정리</category>
      <category>MySQL alter syntax</category>
      <category>MySQL alter table</category>
      <category>MySQL alter 테이블 총 정리</category>
      <category>Mysql 컬럼 변경</category>
      <category>PK 삭제</category>
      <category>PK 추가 하기</category>
      <category>디비 컬럼 변경 하기</category>
      <category>컬럼 순서 변경</category>
      <author>.java</author>
      <guid isPermaLink="true">https://java119.tistory.com/83</guid>
      <comments>https://java119.tistory.com/83#entry83comment</comments>
      <pubDate>Sun, 22 Mar 2020 16:32:17 +0900</pubDate>
    </item>
    <item>
      <title>[MySQL || MariaDB] 숫자형 문자 정렬 문제 및 해결(Feat.varchar)</title>
      <link>https://java119.tistory.com/82</link>
      <description>&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;개념&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;숫자(INT)형 문자(varchar)를 기준으로 정렬하게 되면 원하는 대로 되지 않는다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;바아로~ 해결 해봅시다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;문법&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;문법에 들어가기 앞서,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;공통 테이블 예시&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1584264770412&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;CREATE TABLE orderEx (

id INT PRIMARY KEY AUTO_INCREMENT,
varcharId VARCHAR(64),
textId TEXT(64)

)

INSERT INTO orderex VALUES(1,'col1','1');

INSERT INTO orderex (varcharId,textId) VALUES('col2','2');
INSERT INTO orderex (varcharId,textId) VALUES('col3','3');
INSERT INTO orderex (varcharId,textId) VALUES('col4','4');
INSERT INTO orderex (varcharId,textId) VALUES('col5','5');
INSERT INTO orderex (varcharId,textId) VALUES('col6','6');
INSERT INTO orderex (varcharId,textId) VALUES('col7','7');
INSERT INTO orderex (varcharId,textId) VALUES('col8','8');
INSERT INTO orderex (varcharId,textId) VALUES('col9','9');
INSERT INTO orderex (varcharId,textId) VALUES('col10','10');
INSERT INTO orderex (varcharId,textId) VALUES('col11','11');
INSERT INTO orderex (varcharId,textId) VALUES('col12','12');&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;예시 테이블 orderex&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;1.PNG&quot; data-origin-width=&quot;197&quot; data-origin-height=&quot;288&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cKcvXi/btqCF6KNo4k/KnzKz2dc8Ka1NMZPwGRSU0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cKcvXi/btqCF6KNo4k/KnzKz2dc8Ka1NMZPwGRSU0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cKcvXi/btqCF6KNo4k/KnzKz2dc8Ka1NMZPwGRSU0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcKcvXi%2FbtqCF6KNo4k%2FKnzKz2dc8Ka1NMZPwGRSU0%2Fimg.png&quot; data-filename=&quot;1.PNG&quot; data-origin-width=&quot;197&quot; data-origin-height=&quot;288&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;만약 &lt;b&gt;varcharId&lt;/b&gt; 컬럼 기준으로 ORDER BY를 하게 되면 결과는 이렇다.&lt;/p&gt;
&lt;pre id=&quot;code_1584264894708&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM orderex ORDER BY varcharId &lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;결과&lt;/b&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;2.PNG&quot; data-origin-width=&quot;199&quot; data-origin-height=&quot;289&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rElSn/btqCHvQTvFD/8zVLWRvDeAYTPVRiFI5Ey0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rElSn/btqCHvQTvFD/8zVLWRvDeAYTPVRiFI5Ey0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rElSn/btqCHvQTvFD/8zVLWRvDeAYTPVRiFI5Ey0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrElSn%2FbtqCHvQTvFD%2F8zVLWRvDeAYTPVRiFI5Ey0%2Fimg.png&quot; data-filename=&quot;2.PNG&quot; data-origin-width=&quot;199&quot; data-origin-height=&quot;289&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;이와 같이 &lt;span style=&quot;font-family: GungSeo, serif;&quot;&gt;&lt;i&gt;&lt;u&gt;&lt;s&gt;개 같은 결과&lt;/s&gt;&lt;/u&gt;&lt;/i&gt;&lt;/span&gt;가 나온다.(물론 textId의 ORDER BY 결과도 동일하다)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;해결&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;b&gt;정렬(오름차순)&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1584265113612&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM orderex ORDER BY varcharId*1&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;결과&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;2.PNG&quot; data-origin-width=&quot;198&quot; data-origin-height=&quot;286&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bakjcH/btqCHvXE2Rz/a9dCzzG9u0cXcNO7xkBLnK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bakjcH/btqCHvXE2Rz/a9dCzzG9u0cXcNO7xkBLnK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bakjcH/btqCHvXE2Rz/a9dCzzG9u0cXcNO7xkBLnK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbakjcH%2FbtqCHvXE2Rz%2Fa9dCzzG9u0cXcNO7xkBLnK%2Fimg.png&quot; data-filename=&quot;2.PNG&quot; data-origin-width=&quot;198&quot; data-origin-height=&quot;286&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;만약 역 정렬하고 싶다면?&lt;/p&gt;
&lt;p&gt;&lt;b&gt;역 정렬(내림차순)&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1584265436187&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM orderex ORDER BY length(varcharId) desc,varcharId desc&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;결과&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;3.PNG&quot; data-origin-width=&quot;196&quot; data-origin-height=&quot;288&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bhdfmU/btqCLdBsqpi/VsYacYCuyuutOKvLOTWEDK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhdfmU/btqCLdBsqpi/VsYacYCuyuutOKvLOTWEDK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhdfmU/btqCLdBsqpi/VsYacYCuyuutOKvLOTWEDK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbhdfmU%2FbtqCLdBsqpi%2FVsYacYCuyuutOKvLOTWEDK%2Fimg.png&quot; data-filename=&quot;3.PNG&quot; data-origin-width=&quot;196&quot; data-origin-height=&quot;288&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;예제 파일 제공&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/b2cKaX/btqCLcJkZrB/SKid0v8o1xkIaycfySR0F1/%5BMariaDB%5D%20varchar%20ORDER%20BY.sql?attach=1&amp;amp;knm=tfile.sql&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;[MariaDB] varchar ORDER BY.sql&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.00MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>MariaDB</category>
      <category>INT형 문자타입 정렬</category>
      <category>Inverse sorting of numeric characters</category>
      <category>MariaDB varchar ORDER BY</category>
      <category>MySQL varchar ORDER BY</category>
      <category>Sort numeric characters</category>
      <category>VARCHAR 숫자 정렬</category>
      <category>숫자형 문자 역정렬하기</category>
      <category>숫자형 문자 정렬하기</category>
      <category>정수형 문자 역정렬하기</category>
      <category>정수형 문자 정렬하기</category>
      <author>.java</author>
      <guid isPermaLink="true">https://java119.tistory.com/82</guid>
      <comments>https://java119.tistory.com/82#entry82comment</comments>
      <pubDate>Sun, 15 Mar 2020 18:53:37 +0900</pubDate>
    </item>
    <item>
      <title>[MySQL || MariaDB] 여러 테이블 한번에 카운터 하기</title>
      <link>https://java119.tistory.com/81</link>
      <description>&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;개념&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;한 번에 여러 테이블의 값을 추출할 수 있다.&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;문법&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;문법에 들어가기 앞서,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;공통 테이블 예시&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;1.PNG&quot; data-origin-width=&quot;608&quot; data-origin-height=&quot;188&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbnPEQ/btqCHvwzlf4/tKISW6DDPE9OODs1SdHZm0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbnPEQ/btqCHvwzlf4/tKISW6DDPE9OODs1SdHZm0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbnPEQ/btqCHvwzlf4/tKISW6DDPE9OODs1SdHZm0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbnPEQ%2FbtqCHvwzlf4%2FtKISW6DDPE9OODs1SdHZm0%2Fimg.png&quot; data-filename=&quot;1.PNG&quot; data-origin-width=&quot;608&quot; data-origin-height=&quot;188&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;2.PNG&quot; data-origin-width=&quot;860&quot; data-origin-height=&quot;68&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c4VJLL/btqCHwhVRXP/9OmAJwkCCNATusNok8FltK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c4VJLL/btqCHwhVRXP/9OmAJwkCCNATusNok8FltK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c4VJLL/btqCHwhVRXP/9OmAJwkCCNATusNok8FltK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc4VJLL%2FbtqCHwhVRXP%2F9OmAJwkCCNATusNok8FltK%2Fimg.png&quot; data-filename=&quot;2.PNG&quot; data-origin-width=&quot;860&quot; data-origin-height=&quot;68&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;기본 문법&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1584261791258&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT 테이블별칭.카운트별칭,테이블별칭.카운트별칭,테이블별칭.카운트별칭
&amp;nbsp; &amp;nbsp; &amp;nbsp;FROM
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;( select count(*) 카운트별칭 from 테이블명 조건(선택) ) 테이블별칭
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , &amp;nbsp;( select count(*) 카운트별칭 from 테이블명) 테이블별칭
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , &amp;nbsp;( select count(*) 카운트별칭 from 테이블명) 테이블별칭&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;예시 1.board 테이블 중 views(조회수)가 30 이상인 것, members 테이블 중 id가 1인 멤버를 카운트&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1584261521993&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT a.views, b.beu
FROM (SELECT COUNT(*) views FROM board WHERE views &amp;gt; 30) a , 
	 (SELECT COUNT(*) beu FROM members WHERE id = 1) b&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;결과&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;3.PNG&quot; data-origin-width=&quot;106&quot; data-origin-height=&quot;68&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lV0UR/btqCJmZ7Wxo/1b8mR97hMupsGIiBWI4GoK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lV0UR/btqCJmZ7Wxo/1b8mR97hMupsGIiBWI4GoK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lV0UR/btqCJmZ7Wxo/1b8mR97hMupsGIiBWI4GoK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlV0UR%2FbtqCJmZ7Wxo%2F1b8mR97hMupsGIiBWI4GoK%2Fimg.png&quot; data-filename=&quot;3.PNG&quot; data-origin-width=&quot;106&quot; data-origin-height=&quot;68&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;예시 2.board 테이블의 총 조회수, 총 좋아요 수, members 테이블의 총 유저수를 카운트&lt;/b&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1584262731230&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT a.views_length,a.likes_length, b.user_length
FROM (SELECT SUM(views) views_length,SUM(likes) likes_length FROM board) a , 
	  (SELECT COUNT(*) user_length FROM members) b&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;결과&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;5.PNG&quot; data-origin-width=&quot;267&quot; data-origin-height=&quot;69&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/trjMa/btqCGQARzzT/D69Fn0G2aPphrSmE6pQh31/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/trjMa/btqCGQARzzT/D69Fn0G2aPphrSmE6pQh31/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/trjMa/btqCGQARzzT/D69Fn0G2aPphrSmE6pQh31/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtrjMa%2FbtqCGQARzzT%2FD69Fn0G2aPphrSmE6pQh31%2Fimg.png&quot; data-filename=&quot;5.PNG&quot; data-origin-width=&quot;267&quot; data-origin-height=&quot;69&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;/&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;style6&quot; /&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;자주 나는 오류&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1584262255047&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;/* SQL 오류 (1060): Duplicate column name 'spaceAll' */&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;SELECT `storage`.storageAll, host.hostAll&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;FROM&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;( select sum(allca)&lt;span&gt;&amp;nbsp;&lt;b&gt;spaceAll&lt;/b&gt;,sum(useca)&amp;nbsp;&lt;b&gt;spaceAll&lt;/b&gt;,sum(space) &lt;/span&gt;&lt;b&gt;spaceAll&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;from storageInfo) `storage`&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;,&lt;span&gt;&amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;( select count(*) hostAll from hostInfo) host&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;이와&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;같이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;별칭을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;중복으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;쓰셔서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;그렇습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>MariaDB</category>
      <category>MariaDB Count multiple tables</category>
      <category>MySQL Count multiple tables</category>
      <category>MySQL 여러 테이블 카운트하기</category>
      <category>여러 테이블 COUNT 하기</category>
      <category>여러 테이블 한번에 조회하기</category>
      <category>여러 테이블 한번에 카운트하기</category>
      <author>.java</author>
      <guid isPermaLink="true">https://java119.tistory.com/81</guid>
      <comments>https://java119.tistory.com/81#entry81comment</comments>
      <pubDate>Sun, 15 Mar 2020 17:48:26 +0900</pubDate>
    </item>
    <item>
      <title>[Spring] GET URL 범위 초과 문제 및 해결(feat.HTTP)</title>
      <link>https://java119.tistory.com/80</link>
      <description>&lt;p style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;b&gt;원인&lt;/b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;통계 기능 개발 중 기간 범위를 넓게 잡으면 예외가 발생했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;브라우저(Chrome) Console Log&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1584250340378&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Failed to load resource: the server responded with a status of 400 ()&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Spring Log&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1584249848746&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;2월 21, 2020 3:32:40 오후 org.apache.coyote.http11.Http11Processor service

정보: Error parsing HTTP request header

 Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level.

java.lang.IllegalArgumentException: Request header is too large

at org.apache.coyote.http11.Http11InputBuffer.fill(Http11InputBuffer.java:718)

at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:462)

at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:684)

at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)

at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806)

at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)

at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

at java.lang.Thread.run(Thread.java:748)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;분석&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;RFC 2616 (하이퍼 텍스트 전송 프로토콜-HTTP / 1.1 &amp;ndash; 섹션 3.2.1)에 따라 HTTP Get Request의 최대 URL 크기에 대한 제한은&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;없지만&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;브라우저와&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;서버단에서&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;제한을&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;적용&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;시킵니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;제가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용했던&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;브라우저인&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;크롬의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;URL &lt;/span&gt;&lt;span&gt;제한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;범위&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;URL 길이&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;일반적으로&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;웹 플랫폼&lt;/span&gt;&lt;span&gt;&amp;nbsp;에는 URL 길이에 대한 제한이 없습니다 (2 ^ 31이 일반적인 제한 임).&amp;nbsp;&lt;/span&gt;&lt;span&gt;Chrome&lt;/span&gt;&lt;span&gt; 은 실제적인 이유로 프로세스 간 통신에서 서비스 거부 문제가 발생하지 않도록 URL을 최대 2MB로&amp;nbsp;제한합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;VR 플랫폼에서는&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;1kB&lt;/span&gt;&lt;span&gt;&amp;nbsp;제한이 사용되지만&amp;nbsp;대부분의 플랫폼에서 Chrome의 검색 주소창은 URL 표시를&amp;nbsp;&lt;/span&gt;&lt;span&gt;32kB&lt;/span&gt;&lt;span&gt;&amp;nbsp;(&amp;nbsp;&lt;/span&gt;&lt;span&gt;kMaxURLDisplayChars&lt;/span&gt;&lt;span&gt;)로&amp;nbsp;제한합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;URL 길이가 제한을 초과하면 클라이언트가 합리적으로 동작하는지 확인하십시오.&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span&gt;원점 정보는 URL의 시작 부분에 나타나므로 끝을 잘라내는 것은 일반적으로 무해합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;가장자리의 경우 URL을 빈 문자열로 렌더링 하는 것은 이상적이지 않지만 잘리지 않는 (또는 예기치 않게 불안정한 경우) 더 나빠질 수 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;공격자는 긴 URL을 사용하여 시스템의 다른 부분을 악용할 수 있습니다.&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;DNS 구문&lt;/span&gt;&lt;span&gt;&amp;nbsp;은 정규화된 호스트 이름을&amp;nbsp;&lt;/span&gt;&lt;span&gt;253 자로&lt;/span&gt;&lt;span&gt;&amp;nbsp;제한하고 호스트 이름의&amp;nbsp;각&amp;nbsp;레이블레이블을&amp;nbsp;&lt;/span&gt;&lt;span&gt;63 자로&lt;/span&gt;&lt;span&gt;&amp;nbsp;제한하지만 Chromium의 GURL 클래스는 이 제한을 적용하지 않습니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;크로미움&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;공식&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;사이트&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;제공&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;권장사항&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;URL을 2000 자 미만으로 유지하면 거의 모든 클라이언트 및 서버 소프트웨어 조합에서 작동합니다.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;그리고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;모든&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;클라이언트와&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;서버는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;URL&lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;작동하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;여부에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;관계없이&lt;/span&gt;&lt;span&gt; 2048&lt;/span&gt;&lt;span&gt;자&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;미만을&lt;/span&gt;&lt;span&gt; 유지해야합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;해결책&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;1.GET&lt;/span&gt;&lt;span&gt; URL&lt;/span&gt;&lt;span&gt;&amp;nbsp;parameter &lt;/span&gt;&lt;span&gt;줄이기&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;2.&lt;b&gt;&lt;span&gt;GET&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span&gt; -&amp;gt; POST &lt;/span&gt;&lt;span&gt;방식으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;</description>
      <category>Spring</category>
      <category>GET URL 권장사항</category>
      <category>GET URL 범위 초과</category>
      <category>GET URL 범위 초과 문제 및 해결</category>
      <category>GET-&amp;gt;POST 변경</category>
      <category>RFC 2616 (하이퍼 텍스트 전송 프로토콜-HTTP / 1.1 &amp;ndash; 섹션 3.2.1)</category>
      <category>URL 길이</category>
      <category>URL 범위 초과 해결</category>
      <category>브라우저 URL 초과 범위</category>
      <category>크롬 URL 초과 범위</category>
      <author>.java</author>
      <guid isPermaLink="true">https://java119.tistory.com/80</guid>
      <comments>https://java119.tistory.com/80#entry80comment</comments>
      <pubDate>Sun, 15 Mar 2020 14:38:28 +0900</pubDate>
    </item>
    <item>
      <title>[Spring] 갑자기 POST가 안되는 현상(feat.XSSFilter)</title>
      <link>https://java119.tistory.com/79</link>
      <description>&lt;p&gt;정말&amp;nbsp;문법을&amp;nbsp;확인하고&amp;nbsp;또&amp;nbsp;확인해도&amp;nbsp;정확히&amp;nbsp;썼는데&amp;nbsp;POST&amp;nbsp;통신이&amp;nbsp;되지&amp;nbsp;않는다면? &lt;br /&gt;&lt;br /&gt;설정한&amp;nbsp;XSS&amp;nbsp;공격&amp;nbsp;방어&amp;nbsp;또는&amp;nbsp;인터셉터를&amp;nbsp;의심하세요. &lt;br /&gt;&lt;br /&gt;네이버에서&amp;nbsp;만든&amp;nbsp;&lt;b&gt;lucy-xss-sax.xml&lt;/b&gt;&amp;nbsp;쓸&amp;nbsp;경우 &lt;br /&gt;&lt;br /&gt;HttpServletRequest를&amp;nbsp;가져가&amp;nbsp;먼저&amp;nbsp;작업을&amp;nbsp;하기&amp;nbsp;때문에&amp;nbsp;POST로&amp;nbsp;데이터를&amp;nbsp;못&amp;nbsp;받아온다. &lt;br /&gt;&lt;br /&gt;POST&amp;nbsp;방식으로&amp;nbsp;전달된&amp;nbsp;&quot;application/json&quot;&amp;nbsp;타입의&amp;nbsp;데이터를&amp;nbsp;Servlet의&amp;nbsp;Filter나&amp;nbsp;Spring의&amp;nbsp;Interceptor에서&amp;nbsp;모종의&amp;nbsp;처리를&amp;nbsp;하기&amp;nbsp;위해서는&amp;nbsp;HttpServletRequest의&amp;nbsp;InputStream을&amp;nbsp;읽어 들여야&amp;nbsp;합니다.&amp;nbsp; &lt;br /&gt;그러나&amp;nbsp;HttpServletRequest의&amp;nbsp;InputStream은&amp;nbsp;한&amp;nbsp;번&amp;nbsp;읽으면&amp;nbsp;다시&amp;nbsp;읽을&amp;nbsp;수&amp;nbsp;없습니다.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;왜냐하면&amp;nbsp;톰캣이&amp;nbsp;그걸&amp;nbsp;막습니다. &lt;br /&gt;&lt;br /&gt;만약&amp;nbsp;Interceptor나&amp;nbsp;Filter에서&amp;nbsp;InputStream을&amp;nbsp;읽게 되면,&amp;nbsp;이후&amp;nbsp;Spring이&amp;nbsp;Converter를&amp;nbsp;이용해&amp;nbsp;Json&amp;nbsp;데이터를&amp;nbsp;바인딩&amp;nbsp;처리할&amp;nbsp;때&amp;nbsp;아래와&amp;nbsp;같은&amp;nbsp;에러를&amp;nbsp;만날&amp;nbsp;수&amp;nbsp;있습니다.&amp;nbsp;Spring이&amp;nbsp;이미&amp;nbsp;읽어버린&amp;nbsp;InputStream을&amp;nbsp;다시&amp;nbsp;읽으려고&amp;nbsp;시도하다가&amp;nbsp;슬픈&amp;nbsp;에러를&amp;nbsp;뱉어내는 거죠. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;바인딩&amp;nbsp;예외 &lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;b&gt;1.JSON으로 던졌을 때&lt;/b&gt; &lt;/p&gt;
&lt;pre id=&quot;code_1584248640075&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;java.lang.IllegalStateException: getReader() has already been called for this request 
org.springframework.http.converter.HttpMessageNotReadableException: 
Could not read JSON: Stream closed; nested exception is java.io.IOException: Stream closed&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;&lt;b&gt;2.FORM으로 던졌을 때&lt;/b&gt; &lt;/p&gt;
&lt;pre id=&quot;code_1584248660724&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;14:46:39.691 [http-nio-80-exec-11] WARN  j.l.Exception line:23 method:handlerException  - 
org.springframework.validation.BindException: 
org.springframework.validation.BeanPropertyBindingResult: 1 errors &lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;br /&gt;&lt;b&gt;상황&amp;nbsp;발생&lt;/b&gt;&amp;nbsp; &lt;br /&gt;어느 날&amp;nbsp;갑자기&amp;nbsp;POST로&amp;nbsp;보내는&amp;nbsp;통신은&amp;nbsp;싹 다&amp;nbsp;null이&amp;nbsp;뜨기&amp;nbsp;시작함 &lt;br /&gt;데이터를 바인딩하지 못하는 현상 &lt;/p&gt;
&lt;pre id=&quot;code_1584248612948&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@RequestMapping(value=&quot;manage/postTest.do&quot;,method=RequestMethod.POST)   
public String signUp(HttpServletRequest request){ 
LOG.warn(request); 
LOG.warn(request.getParameter(&quot;id&quot;)); 
 return &quot;/java119.do&quot;; 
} &lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;로그 출력&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1584248717367&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;14:41:21.964 [http-nio-80-exec-1] WARN  c.k.P.o.c.Java119Controller line:39 method:signUp  

-com.pack.project.XSS.RequestWrapper@61d1d9fa 
14:41:21.965 [http-nio-80-exec-1] WARN  c.k.P.o.c.Java119Controller line:40 method:signUp  - null &lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;요청을&amp;nbsp;Java119Controller에&amp;nbsp;보냈는데&amp;nbsp;HttpServletRequest&amp;nbsp;객체는&amp;nbsp;뜬금없이&amp;nbsp;XSS&amp;nbsp;설정해둔&amp;nbsp;패키지를&amp;nbsp;바라보고&amp;nbsp;있음 &lt;br /&gt;&lt;br /&gt;&lt;b&gt;XSS&amp;nbsp;설정&amp;nbsp;의심&amp;nbsp;시작&lt;/b&gt; &lt;br /&gt;&lt;br /&gt;필자가&amp;nbsp;사용한&amp;nbsp;XSS는&amp;nbsp;네이버&amp;nbsp;선배 형님들이&amp;nbsp;만든&amp;nbsp;&lt;b&gt;lucy-xss-servlet-filter입니다.&lt;/b&gt; &lt;br /&gt;git&amp;nbsp;주소&amp;nbsp;:&amp;nbsp;&lt;a href=&quot;https://github.com/naver/lucy-xss-servlet-filter&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://github.com/naver/lucy-xss-servlet-filter&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;다시 보니 &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1584248286580&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Recommendation 

신규로 개발하는 서비스에는 lucy-xss-servlet-filter를 사용하는 것을 추천하지만, 
기존 잘 운영되는 시스템에 lucy-xss-servlet-filter를 사용하는 것은 추천하지 않습니다. 
입력 파라메터가 전부 필터링 되기 때문에 
서비스가 잘 동작하지 않는 의도치 않은 결과가 발생할 수 있기 때문입니다.  &lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;라고&amp;nbsp;써져있었네요..&amp;nbsp;죄송합니다&amp;nbsp;네이버&amp;nbsp;선배님들 &lt;br /&gt;&lt;br /&gt;web.xml에&amp;nbsp;설정해둔 XSS Filter 주석 처리 후 POST 테스트 부분 &lt;br /&gt;&lt;br /&gt;결과&amp;nbsp;:&amp;nbsp;아주&amp;nbsp;잘&amp;nbsp;됩니다. &lt;br /&gt;&lt;br /&gt;아무리&amp;nbsp;POST가&amp;nbsp;안 되는&amp;nbsp;이유, 갑자기&amp;nbsp;POST&amp;nbsp;안됨, POST&amp;nbsp;통신&amp;nbsp;먹통, POST&amp;nbsp;무조건&amp;nbsp;null&amp;nbsp;등등&amp;nbsp; &lt;br /&gt;검색해봐도&amp;nbsp;찾을&amp;nbsp;수가&amp;nbsp;없었는데&amp;nbsp; &lt;br /&gt;역시&amp;nbsp;검색에&amp;nbsp;너무&amp;nbsp;의존하는&amp;nbsp;것도&amp;nbsp;문제인 거&amp;nbsp;같습니다. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;꼭 XSSFilter 아니더라도 POST가 되지 않는다면 뭔가가 가로채고 있다는 뜻입니다.&lt;/p&gt;
&lt;p&gt;그런 것을 잘 확인해보시고 즐 코 하세요~&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;XSSFilter를 적용하면서 POST를 하시고 싶으신 분들은 참고 자료&lt;/b&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1584249112054&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;article&quot; data-og-title=&quot;Spring Interceptor(혹은 Servlet Filter)에서 POST 방식으로 전달된 JSON 데이터 처리하기 : TOAST Meetup&quot; data-og-description=&quot;Spring Interceptor(혹은 Servlet Filter)에서 POST 방식으로 전달된 JSON 데이터 처리하기&quot; data-og-host=&quot;meetup.toast.com&quot; data-og-source-url=&quot;https://meetup.toast.com/posts/44&quot; data-og-url=&quot;https://meetup.toast.com/posts/44&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/8spEC/hyFhSaoltF/t26m47Qp6JmJ8Wc6f7INS1/img.png?width=180&amp;amp;height=59&amp;amp;face=0_0_180_59,https://scrap.kakaocdn.net/dn/g5zXQ/hyFhKQXgkg/HOr08GU2kb18GuY51Lu7vk/img.png?width=180&amp;amp;height=59&amp;amp;face=0_0_180_59&quot;&gt;&lt;a href=&quot;https://meetup.toast.com/posts/44&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://meetup.toast.com/posts/44&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/8spEC/hyFhSaoltF/t26m47Qp6JmJ8Wc6f7INS1/img.png?width=180&amp;amp;height=59&amp;amp;face=0_0_180_59,https://scrap.kakaocdn.net/dn/g5zXQ/hyFhKQXgkg/HOr08GU2kb18GuY51Lu7vk/img.png?width=180&amp;amp;height=59&amp;amp;face=0_0_180_59');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;Spring Interceptor(혹은 Servlet Filter)에서 POST 방식으로 전달된 JSON 데이터 처리하기 : TOAST Meetup&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;Spring Interceptor(혹은 Servlet Filter)에서 POST 방식으로 전달된 JSON 데이터 처리하기&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;meetup.toast.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Spring</category>
      <category>HttpServletRequest</category>
      <category>lucy-xss-servlet-filter</category>
      <category>POST 안되는 현상</category>
      <category>POST 통신 먹통</category>
      <category>Spring POST null</category>
      <category>Spring POST 무조건 null</category>
      <category>Spring POST 안됨</category>
      <category>XSSFilter</category>
      <category>갑자기 POST 안됨</category>
      <category>갑자기 POST가 안되는 현상(feat.XSSFilter)</category>
      <author>.java</author>
      <guid isPermaLink="true">https://java119.tistory.com/79</guid>
      <comments>https://java119.tistory.com/79#entry79comment</comments>
      <pubDate>Sun, 15 Mar 2020 14:14:55 +0900</pubDate>
    </item>
    <item>
      <title>[MySQL || MariaDB] ORDER BY 특정 값 우선 정렬(feat.FIELD)</title>
      <link>https://java119.tistory.com/78</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;&lt;b&gt;FIELD&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;개념&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;FIELD 함수를 이용하여 특정한 값을 우선적으로 정렬할 수 있다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;K-009.png&quot; data-origin-width=&quot;332&quot; data-origin-height=&quot;120&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bL3hbw/btqCjdpWpCm/l4Nm4iXFFgrWQTgT8TFMn0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bL3hbw/btqCjdpWpCm/l4Nm4iXFFgrWQTgT8TFMn0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bL3hbw/btqCjdpWpCm/l4Nm4iXFFgrWQTgT8TFMn0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbL3hbw%2FbtqCjdpWpCm%2Fl4Nm4iXFFgrWQTgT8TFMn0%2Fimg.png&quot; data-filename=&quot;K-009.png&quot; data-origin-width=&quot;332&quot; data-origin-height=&quot;120&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;문법&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;문법에 들어가기 앞서,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;공통 테이블 예시&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;1.PNG&quot; data-origin-width=&quot;609&quot; data-origin-height=&quot;186&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zQiJW/btqCkQgG9rG/fImR3XeMNz576VSjIL8OKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zQiJW/btqCkQgG9rG/fImR3XeMNz576VSjIL8OKK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zQiJW/btqCkQgG9rG/fImR3XeMNz576VSjIL8OKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzQiJW%2FbtqCkQgG9rG%2FfImR3XeMNz576VSjIL8OKK%2Fimg.png&quot; data-filename=&quot;1.PNG&quot; data-origin-width=&quot;609&quot; data-origin-height=&quot;186&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;기본 문법&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1582968727685&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM 테이블명 ORDER BY FIELD(컬럼명,우선 정렬할 값,두번째 정렬할 값,세번째...);&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;예시 1.제목(subject) 컬럼에 값이 '제목3'이 제일 먼저,'제목5'가 그다음으로 들어간 row 먼저 정렬&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1582968850089&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT subject FROM board ORDER BY FIELD(subject,'제목3','제목5'),subject;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;결과&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;1결과.PNG&quot; data-origin-width=&quot;110&quot; data-origin-height=&quot;188&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rgmnf/btqCl8HXAGt/WwJ235DWi66YUQKCECvWzk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rgmnf/btqCl8HXAGt/WwJ235DWi66YUQKCECvWzk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rgmnf/btqCl8HXAGt/WwJ235DWi66YUQKCECvWzk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Frgmnf%2FbtqCl8HXAGt%2FWwJ235DWi66YUQKCECvWzk%2Fimg.png&quot; data-filename=&quot;1결과.PNG&quot; data-origin-width=&quot;110&quot; data-origin-height=&quot;188&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;'제목3' 값을 가진 row가 첫 번째, '제목5'을 가진 row가 두 번째로 정렬됐고 그다음 subject 컬럼이 정렬됐다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;예시 2.제목(subject) 컬럼에 값이 '제목4'이 들어간 row 먼저 정렬하고, 나머진 제목을 기준으로 역 정렬 하기&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1582969162471&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT subject FROM board ORDER BY FIELD(subject,'제목4'),subject DESC;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;결과&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;K-010.png&quot; data-origin-width=&quot;108&quot; data-origin-height=&quot;185&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bEESWT/btqCl9UnY9z/87hjsjsTm1JeNH9fEX50Lk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bEESWT/btqCl9UnY9z/87hjsjsTm1JeNH9fEX50Lk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bEESWT/btqCl9UnY9z/87hjsjsTm1JeNH9fEX50Lk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbEESWT%2FbtqCl9UnY9z%2F87hjsjsTm1JeNH9fEX50Lk%2Fimg.png&quot; data-filename=&quot;K-010.png&quot; data-origin-width=&quot;108&quot; data-origin-height=&quot;185&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;특별 예시. 값의 인덱스 찾기(해당 값이 없을 경우 0 반환)&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1582969570896&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT FIELD(subject,'제목1','제목2') FROM board;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;결과&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;2.PNG&quot; data-origin-width=&quot;181&quot; data-origin-height=&quot;186&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/S5mVE/btqCjebi0Qu/LtcIi8v1OWkSmxHi9sTKz0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/S5mVE/btqCjebi0Qu/LtcIi8v1OWkSmxHi9sTKz0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/S5mVE/btqCjebi0Qu/LtcIi8v1OWkSmxHi9sTKz0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FS5mVE%2FbtqCjebi0Qu%2FLtcIi8v1OWkSmxHi9sTKz0%2Fimg.png&quot; data-filename=&quot;2.PNG&quot; data-origin-width=&quot;181&quot; data-origin-height=&quot;186&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>MariaDB</category>
      <category>DB 특정 값 우선 정렬하기</category>
      <category>Field</category>
      <category>function FIELD</category>
      <category>mariadb order by field</category>
      <category>MariaDB 우선 정렬하기</category>
      <category>mysql order by field</category>
      <category>MySQL 우선 정렬하기</category>
      <category>ORDER BY 특정 값 우선 정렬</category>
      <category>ORDER BY 특정 값 우선 정렬하기</category>
      <category>특정 값 우선 정렬</category>
      <author>.java</author>
      <guid isPermaLink="true">https://java119.tistory.com/78</guid>
      <comments>https://java119.tistory.com/78#entry78comment</comments>
      <pubDate>Sat, 29 Feb 2020 18:54:24 +0900</pubDate>
    </item>
    <item>
      <title>[Java] split 특수문자 버그 해결,배열 원소 추출,숫자 비교 총 정리</title>
      <link>https://java119.tistory.com/77</link>
      <description>&lt;p style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span&gt;1. 거슬리는 &lt;span style=&quot;color: #333333;&quot;&gt;Enumeration&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt; W&lt;span style=&quot;color: #333333;&quot;&gt;arning&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;K-001.png&quot; data-origin-width=&quot;748&quot; data-origin-height=&quot;170&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tYxsH/btqBPXTJNCz/vLpogLknB0cJ5p3DHuKvb1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tYxsH/btqBPXTJNCz/vLpogLknB0cJ5p3DHuKvb1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tYxsH/btqBPXTJNCz/vLpogLknB0cJ5p3DHuKvb1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtYxsH%2FbtqBPXTJNCz%2FvLpogLknB0cJ5p3DHuKvb1%2Fimg.png&quot; data-filename=&quot;K-001.png&quot; data-origin-width=&quot;748&quot; data-origin-height=&quot;170&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Enumeration를 쓰다 보면 위 사진처럼 노란색 Warning 표시가 뜹니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;노란색&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Warning&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;표시가&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;거슬리시죠&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1581053417880&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Enumeration is a raw type. References to generic type Enumeration&amp;lt;E&amp;gt; should be parameterized&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;수정 전&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1581053434966&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Enumeration netInterfaces = null;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;수정 후&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1581053517511&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Enumeration&amp;lt;?&amp;gt; netInterfaces = null;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;span&gt;변경&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;해주면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;됩니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span&gt;2.J&lt;/span&gt;&lt;span&gt;ava split &lt;/span&gt;&lt;span&gt;특수문자&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;버그&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1581053646502&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;String str = &quot;172.10.0.100&quot; ;
String[] result = str.split(&quot;.&quot;);

String str = &quot;사성|엘취&quot; ;
String[] result = str.split(&quot;|&quot;);&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;위&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;예시대로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;코드를&lt;/span&gt;&lt;span&gt; 작성 할 &lt;/span&gt;&lt;span&gt;경우&lt;/span&gt;&lt;span&gt; split 함수가 작동하지 않습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;눈에&lt;/span&gt;&lt;span&gt; 안약넣고&amp;nbsp;찾아&lt;/span&gt;&lt;span&gt;봐도&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;틀린&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;코드가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;없습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;JDK 1.8 &lt;/span&gt;&lt;span&gt;기준&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;특수문자&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;스플릿&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;버그입니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;해결&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1581053765238&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;String str = &quot;172.10.0.100&quot; ;
String[] result = str.split(&quot;\\.&quot;);

String str = &quot;사성|엘취&quot; ;
String[] result = str.split(&quot;\\|&quot;);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;span&gt;split&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;함수 안에 \(역슬래쉬)를 &lt;/span&gt;&lt;span&gt;두&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;개&lt;/span&gt;&lt;span&gt; 추가 해주면 &lt;/span&gt;&lt;span&gt;됩니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span&gt;※헷갈림&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;주의&lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span&gt;Java&lt;/span&gt;&lt;span&gt;에서만&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;뜨는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;버그입니다&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;J&lt;/span&gt;avascript&lt;/span&gt;&lt;span&gt;는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;잘&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;됩니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;span&gt;3.J&lt;/span&gt;&lt;span&gt;ava &lt;span style=&quot;color: #333333;&quot;&gt;배열&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;원소&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;뽑기&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;위 &lt;span&gt;split 버그를 찾으려고 배열 안에 잘 들어갔나 안 들어갔나 디버깅 중 &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;java.lang.ArrayIndexOutOfBoundsException를 뱉어서 배열의 길이를 먼저 체크했는데&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;0이 나왔길래 원소를 보려 했더니&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;배열 원소 뽑는 게 순간 헷갈렸다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;그래서 준비했습니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1581054584782&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;String[] result = {&quot;arr1&quot;,&quot;arr2&quot;,&quot;arr3&quot;};
LOG.info(result);&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;결과 값 : &lt;/span&gt;&lt;/b&gt;[Ljava.lang.String;@주소값&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;&lt;span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;[Ljava.lang.String;@주소 값 말고 arr1, arr2, arr3 즉, 배열의 원소들을 뽑고 싶을 땐 이런 식으로 사용하면 안 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;해결&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1581054262737&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import java.util.Arrays;

int[] result = new int[] {1, 2, 3, 4, 5};
System.out.print(Arrays.deepToString(result));

String[] result = {&quot;arr1&quot;,&quot;arr2&quot;,&quot;arr3&quot;};
System.out.print(Arrays.toString(result));&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;깨알 정보&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span&gt;[Ljava.lang.String;@3 db386 ff 맨 앞에 L이 있으면&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;배열&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;주소&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span&gt;java.lang.String;@3db386ff 없으면&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;그냥&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;String &lt;/span&gt;&lt;span&gt;주소&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;4.&lt;/span&gt;&lt;/span&gt;Java의 Integer, int 숫자 비교의 주의사항&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;java에서 숫자 비교는 ==,!=,&amp;gt;, &amp;lt; 여러 연산자가 있는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;int와 int 끼리 비교할 땐 ==이 값을 비교 하지만&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Integer&lt;/span&gt;와 Integer를 비교 할 땐 ==는 개념이 조금 다르다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1581057673533&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Integer wr_i = new Integer(100); 
Integer wr_j= new Integer(100);

System.out.println(wr_i == wr_j); //false 
System.out.println(wr_i.equals(wr_j)); //true&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;위 코드를 보면 ==로 했을 땐 false가 나온다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;바로 Integer 객체에 &lt;b&gt;주소 값으로&lt;/b&gt; 비교했기 때문이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;해결&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1581057768920&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;System.out.println(wr_i.equals(wr_j)); //true&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;span&gt;String &lt;/span&gt;&lt;span&gt;타입도&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;마찬가지로&lt;/span&gt;&lt;span&gt; ==&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;비교하진 않잖아요&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;equals&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;비교하지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;똑같은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;원리입니다&lt;/span&gt;&lt;span&gt;. 자세한 건 이전에 글을 작성했습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;깨알 정보&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;1) int == Integer&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1581058017074&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;int i = 1;
Integer j = 1;

if (i == j)  //true&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;2) int == new Integer&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1581058081760&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;int i = 1;
Integer j = new Integer(1);

if (i == j)  //true&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;3) Integer == Integer&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1581058133416&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Integer i = 1;
Integer j = new Integer(1);

if (i == j) //false 
&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;참고 글&lt;/p&gt;
&lt;figure id=&quot;og_1581058204081&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[Java]기본형(primitive type)과 참조형(reference type) (feat.Integer와 int 차이점)&quot; data-og-description=&quot;오늘은 Java 기본형(primitive type)과 참조형(reference type) 종류 및 특징,사용 이유에 대해 시작하겠습니다. 자바는 크게 기본형(primitive type), Wrapper Class 참조형(reference type)으로 나눠진다. Primi..&quot; data-og-host=&quot;java119.tistory.com&quot; data-og-source-url=&quot;https://java119.tistory.com/41&quot; data-og-url=&quot;https://java119.tistory.com/41&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/oWAoB/hyERx4icUH/R8vmkuyK9dwK2oXAxmmRi1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/lnQBN/hyEQfjSEOR/OKWyWAdK8ZvfR7FQcnfQ90/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800&quot;&gt;&lt;a href=&quot;https://java119.tistory.com/41&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://java119.tistory.com/41&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/oWAoB/hyERx4icUH/R8vmkuyK9dwK2oXAxmmRi1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/lnQBN/hyEQfjSEOR/OKWyWAdK8ZvfR7FQcnfQ90/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;[Java]기본형(primitive type)과 참조형(reference type) (feat.Integer와 int 차이점)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;오늘은 Java 기본형(primitive type)과 참조형(reference type) 종류 및 특징,사용 이유에 대해 시작하겠습니다. 자바는 크게 기본형(primitive type), Wrapper Class 참조형(reference type)으로 나눠진다. Primi..&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;java119.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>java</category>
      <category>Java Enumeration</category>
      <category>Java int Integer</category>
      <category>Java Integer Integer 비교</category>
      <category>Java Split 버그</category>
      <category>Java split 특수문자</category>
      <category>Java 관련 유용 팁</category>
      <category>Java 배열 관련</category>
      <category>Java 배열 원소</category>
      <category>Java 예외 해결</category>
      <category>Java 팁</category>
      <author>.java</author>
      <guid isPermaLink="true">https://java119.tistory.com/77</guid>
      <comments>https://java119.tistory.com/77#entry77comment</comments>
      <pubDate>Fri, 7 Feb 2020 15:54:22 +0900</pubDate>
    </item>
    <item>
      <title>[JavaScript] 날짜 관련 유용 함수 총 정리(feat.String to Date)</title>
      <link>https://java119.tistory.com/76</link>
      <description>&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;입력한 날짜(yyyyMMdd)가 유효한 날짜인지 검사&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1577537268921&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function is_valid_date(date_str)
{
    var yyyyMMdd = String(date_str);
    var year = yyyyMMdd.substring(0,4);
    var month = yyyyMMdd.substring(4,6);
    var day = yyyyMMdd.substring(6,8);

    if (!is_number(date_str) || date_str.length!=8)
        return false;

    if (Number(month)&amp;gt;12 || Number(month)&amp;lt;1)
        return false;

    if (Number(last_day(date_str))&amp;lt;day)
        return false;

    return true;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;yyyy-MM-dd 날짜 문자열을 Date형으로 반환&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1577537289656&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function to_date2(date_str)
{
    var yyyyMMdd = String(date_str);
    var sYear = yyyyMMdd.substring(0,4);
    var sMonth = yyyyMMdd.substring(5,7);
    var sDate = yyyyMMdd.substring(8,10);

    //alert(&quot;sYear :&quot;+sYear +&quot;   sMonth :&quot;+sMonth + &quot;   sDate :&quot;+sDate);
    return new Date(Number(sYear), Number(sMonth)-1, Number(sDate));
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;일 차이 : date2(일) - date1(일)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1577537308264&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function between_date(date1, date2)
{   
    var y1970 = new Date(1970, 0, 1).getTime();
    var time1 = null;
    var time2 = null;

    if(date1.length &amp;gt; 8)
        time1 = to_date2(date1).getTime() - y1970;
    else
        time1 = to_date(date1).getTime() - y1970;
   
    if(date2.length &amp;gt; 8)
        time2 = to_date2(date2).getTime() - y1970;
    else
        time2 = to_date(date2).getTime() - y1970;

    var per_day = 1000 * 60 * 60 * 24;              // 1일 밀리초

    return Math.floor(time1/per_day) - Math.floor(time2/per_day);
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;b&gt;yyyyMMdd 날짜 문자열을 Date형으로 반환&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1577537334680&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function to_date(date_str)
{
    var yyyyMMdd = String(date_str);
    var sYear = yyyyMMdd.substring(0,4);
    var sMonth = yyyyMMdd.substring(4,6);
    var sDate = yyyyMMdd.substring(6,8);

    return new Date(Number(sYear), Number(sMonth)-1, Number(sDate));
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;yyyyMMdd 날짜문자열을 gubun으로 포맷을 변경&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1577537361512&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function to_date_format(date_str, gubun)
{
    var yyyyMMdd = String(date_str);
    var sYear = yyyyMMdd.substring(0,4);
    var sMonth = yyyyMMdd.substring(4,6);
    var sDate = yyyyMMdd.substring(6,8);

    return sYear + gubun + sMonth + gubun + sDate;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;Date형을 yyyyMMdd형의 문자열로 변환&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1577537376425&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function get_date_str(date)
{
    var sYear = date.getFullYear();
    var sMonth = date.getMonth() + 1;
    var sDate = date.getDate();

    sMonth = sMonth &amp;gt; 9 ? sMonth : &quot;0&quot; + sMonth;
    sDate  = sDate &amp;gt; 9 ? sDate : &quot;0&quot; + sDate;
    return sYear + sMonth + sDate;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;Date형을 구분자로 구분된 형식의 날짜 문자열 변환&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1577537390840&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function get_date_str_gubun(date, gubun)
{
    var sYear = date.getFullYear();
    var sMonth = date.getMonth() + 1;
    var sDate = date.getDate();

    sMonth = sMonth &amp;gt; 9 ? sMonth : &quot;0&quot; + sMonth;
    sDate  = sDate &amp;gt; 9 ? sDate : &quot;0&quot; + sDate;
    return sYear + gubun + sMonth + gubun + sDate;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;오늘 날짜를 yyyyMMdd형의 문자열로 변환&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1577537409848&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function get_today()
{
    return get_date_str(new Date());
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;주어진 날짜가 윤년인지를 검사&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1577537421825&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function is_leap_year(date_str)
{
    var year = date_str.substring(0,4);
    if (year%4 == 0)
    {
        if (year%100 == 0)
            return (year%400 == 0);
        else
            return true;
    }
    else
        return false;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;주어진 날짜(yyyyMMdd, yyyyMM) 그 달의 마지막 날짜를 반환&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1577537441490&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function last_day(date_str)
{
    var yyyyMMdd = String(date_str);
    var days = &quot;31&quot;;
    var year = yyyyMMdd.substring(0,4);
    var month = yyyyMMdd.substring(4,6);

    if (Number(month) == 2)
    {
        if (is_leap_year(year+month+&quot;01&quot;))
            days = &quot;29&quot;;
        else
            days = &quot;28&quot;;
    }
else if (Number(month) == 4 || Number(month) == 6 || Number(month) == 9 || Number(month) == 11)
        days = &quot;30&quot;;

    return days;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;오늘 날짜 중 연도 반환&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1577537460250&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function get_today_year()
{
    var today = new Date();
    return today.getYear();
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;오늘 날짜 중 Month반환. format: MM&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1577537482576&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function get_today_month()
{
    var today = new Date();
    return (today.getMonth()+1) &amp;gt; 9 ?  (today.getMonth()+1) : &quot;0&quot; + (today.getMonth()+1)
}&lt;/code&gt;&lt;/pre&gt;</description>
      <category>JavaScript</category>
      <category>JavaScript Date to String</category>
      <category>JavaScript Date 다루기</category>
      <category>JavaScript Date 제어</category>
      <category>JavaScript String to Date</category>
      <category>JavaScript 날짜 관련 함수</category>
      <category>JavaScript 날짜 함수 모음</category>
      <category>JavaScript 다양한 날짜 포맷</category>
      <category>JavaScript 일 차이 구하기</category>
      <category>JavaScript 포맷 변경</category>
      <author>.java</author>
      <guid isPermaLink="true">https://java119.tistory.com/76</guid>
      <comments>https://java119.tistory.com/76#entry76comment</comments>
      <pubDate>Sat, 28 Dec 2019 21:53:18 +0900</pubDate>
    </item>
    <item>
      <title>[MySQL || MariaDB] InnoDB 총 정리</title>
      <link>https://java119.tistory.com/75</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;&lt;b&gt;InnoDB&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;b&gt;개념&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;span&gt;Transaction-safe 한 &lt;b&gt;Storage Engine&lt;/b&gt;으로 2005년 Oracle이 Innobase를 인수한 후 Oracle의 일부가 되었으며, &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;b&gt;MySQL 5.5 이후 기본적으로 사용되고 있다.&lt;/b&gt; &lt;b&gt;MyISAM 보다 많은 기능을 제공한다.&lt;/b&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span&gt;(MVCC 지원, ACID Transaction 처리, FK 지원, row-level lock 등) &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;또한 Undo, Tablespace 등 Oracle의 개념을 많이 수용하고 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;사용 정책의 경우 듀얼 라이선스 정책을 취하고 있는데 GNU GPL이면서도 상업적인 용도로 판매 가능하다.&lt;/p&gt;
&lt;p&gt;MyISAM 대비 동시처리에 효과적인 구조로 되어 있다.&lt;/p&gt;
&lt;p&gt;예를 들어 MyISAM은 Table과 Index를 각각 다른 파일로 관리하는데 반해 InnoDB는 Tablespace 개념을 사용한다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;사용 이유&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;span&gt;대용량의 데이터를 컨트롤하는 경우&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;트랜잭션 관리가 필요한 경우&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;복구가 필요할 경우&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;정렬등의 구문이 들어가는 경우&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;IUD 등이 빈번하게 발생하는 경우&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;높은 퍼포먼스가 필요한 대용량 사이트에 적합&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;장점&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;span&gt;데이터 무결성이 보장&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;동시성 제어가 가능&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;제약조건, 외래 키 생성이 가능&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Row-level Lock (행 단위 Lock)을 사용하기 때문에 변경 작업(INSERT, UPDATE, DELETE)에 대한 속도가 빠름&lt;/p&gt;
&lt;p&gt;트랜잭션을 지원해 transaction-safe 테이블 관리&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;MyISAM과 비슷하지만 ORACLE처럼 많은 기능을 지원&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;(Commit, Rollback, 장애 복구, row-level locking, 외래 키 등 다양한 기능을 지원)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;단점&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;span&gt;복구 방법 어려움&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Dead lock 발생 가능성 있음&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;여러기능이 존재하므로 모델 디자인 시간&amp;uarr;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;시스템 자원을 많이 차지함&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Full-text 인덱싱이 불가능&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;생성 조건 및 지켜야 할 수칙&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;InnoDB table 생성시 &lt;/span&gt;&lt;span&gt;체크할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;항목&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;1. 테이블의 column은 1000개를 초과할 수 없다.&lt;/p&gt;
&lt;p&gt;2. 내부 최대 Key length는&amp;nbsp; 3500byte이지만, MySQL 자체는 1024byte로 제한한다&lt;/p&gt;
&lt;p&gt;3. LongBlob 및 LongText 칼럼은 4GB 이하여야 한다.&lt;/p&gt;
&lt;p&gt;4. Blob와 Text 칼럼을 포함한 총 length는 4G 이하여야 한다.&lt;/p&gt;
&lt;p&gt;5. InnoDB는 내부적으로 65,535byte row-size를 지원하지만, 65,535 이상의 varchar를&amp;nbsp;포함한 칼럼은 정의할 수 없다&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;b&gt;관련 에러&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;(ERROR 1114 (HY000): The table 'TBSOJM00' is full? )&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;원인&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;MySQL || MariaDB에서 &lt;/span&gt;&lt;span&gt;테이블&lt;/span&gt;&lt;span&gt;을 만들다 보면 4 G 이상의 크기가 되면 &lt;/span&gt;&lt;span&gt;이런 류의 에러를 발생하게 됩니다. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;이것은&amp;nbsp;&lt;/span&gt;&lt;span&gt;테이블&lt;/span&gt;&lt;span&gt;의 크기가 기본적으로 4GB로 되어 있기 때문에 발생하는 오류&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;해결 방법&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;a href=&quot;http://blog.daum.net/_blog/BlogTypeView.do?blogid=0FcAa&amp;amp;articleno=12414824&amp;amp;categoryId=548228&amp;amp;regdt=20150311175120&quot;&gt;http://blog.daum.net/_blog/BlogTypeView.do?blogid=0FcAa&amp;amp;articleno=12414824&amp;amp;categoryId=548228&amp;reg;dt=20150311175120&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;관련 에러 2&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;원인&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;varchar()의&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;MAX_ROWS&amp;nbsp;&lt;/span&gt;&lt;span&gt;설정값을 초과한 경우에 발생하는 경우가 많습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;저는 DB의 데이터를 다른 서버로 이전할 경우에 종종 발생합니다. 서버별로 DB의 설정이 달라서 발생하는 것 같습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;해결 방법&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;1.&lt;/span&gt;&lt;span&gt;MAX_ROWS 값을 늘린다.&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;해결 : &lt;a href=&quot;https://blog.lovetonight.net/tag/MAX_ROWS&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://blog.lovetonight.net/tag/MAX_ROWS&lt;/a&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;2.varchar로 &lt;span&gt;선언된 컬럼을 text 또는 blob 로 변경한다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;해결 : 말 그대로 컬럼 타입을 변경하시면 됩니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;varchar의 자리가 65,535가 안 되는 것 같은데 왜 에러가 났지? 하시는 분들도 있을 겁니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;그 이유는 바로 utf8 멀티 바이트를 쓰고 계시는 거죠&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;utf8는 3byte씩 차지하니까 &lt;/span&gt;&lt;span&gt;계산기에 65535/3 하시면 됩니다.&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;귀찮으시죠? 제가 대신했습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;b&gt;21,845&lt;/b&gt;가 나옵니다. &lt;b&gt;안전하게 utf8 멀티 바이트 테이블에 varchar는 21,800까지만 쓰시면 되겠습니다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>MariaDB</category>
      <category>InnoDB 개념</category>
      <category>InnoDB 단점</category>
      <category>InnoDB 사용 이유</category>
      <category>InnoDB 생성 조건</category>
      <category>InnoDB 장점</category>
      <category>InnoDB 지켜야 할 수칙</category>
      <category>InnoDB 총 정리</category>
      <category>InnoDB란?</category>
      <category>MariaDB InnoDB</category>
      <category>MySQL InnoDB</category>
      <author>.java</author>
      <guid isPermaLink="true">https://java119.tistory.com/75</guid>
      <comments>https://java119.tistory.com/75#entry75comment</comments>
      <pubDate>Sat, 28 Dec 2019 21:25:44 +0900</pubDate>
    </item>
    <item>
      <title>[Spring] GET 파라미터(parameter) 데이터 받기 총 정리</title>
      <link>https://java119.tistory.com/74</link>
      <description>&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;매우 간단하지만 의외로 문법적으로 까먹거나, 처음 하시는 분들은 헷갈리기 때문에 정리합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;Spring 4편에 나왔던 게시판 만들기 예제를 이용합니다. 참고 바랍니다.&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1576413487539&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[Spring] 프로젝트 커뮤니티,블로그 만들기(#4)-게시판 작성,수정,삭제(CRUD) 만들기&quot; data-og-description=&quot;안녕하세요 무작정 일단 따라 해 보는 Spring 커뮤니티 만들기 4탄 시작합니다. 환경 Eclipse 2019-9 Jee JDK 1.8_231 Apache Tomcat 8.5.47 MariaDB 10.4.10 MyBatis 3.2.2 + JSTL 1.2 + jackson 2.9.4 오늘의 할..&quot; data-og-host=&quot;java119.tistory.com&quot; data-og-source-url=&quot;https://java119.tistory.com/66&quot; data-og-url=&quot;https://java119.tistory.com/66&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bRiNvL/hyD8ifEqDb/N2pl8qTY7SyHUZihq3E0Uk/img.png?width=800&amp;amp;height=356&amp;amp;face=0_0_800_356,https://scrap.kakaocdn.net/dn/dV2o4k/hyD6qzCWeH/0UCAjDH2D4tT6iusjV7Mnk/img.png?width=800&amp;amp;height=356&amp;amp;face=0_0_800_356,https://scrap.kakaocdn.net/dn/G51Gg/hyD8dekq3x/RhP2BKkbmlsOMmsAlh5Jk0/img.png?width=1204&amp;amp;height=537&amp;amp;face=0_0_1204_537&quot;&gt;&lt;a href=&quot;https://java119.tistory.com/66&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://java119.tistory.com/66&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bRiNvL/hyD8ifEqDb/N2pl8qTY7SyHUZihq3E0Uk/img.png?width=800&amp;amp;height=356&amp;amp;face=0_0_800_356,https://scrap.kakaocdn.net/dn/dV2o4k/hyD6qzCWeH/0UCAjDH2D4tT6iusjV7Mnk/img.png?width=800&amp;amp;height=356&amp;amp;face=0_0_800_356,https://scrap.kakaocdn.net/dn/G51Gg/hyD8dekq3x/RhP2BKkbmlsOMmsAlh5Jk0/img.png?width=1204&amp;amp;height=537&amp;amp;face=0_0_1204_537');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;[Spring] 프로젝트 커뮤니티,블로그 만들기(#4)-게시판 작성,수정,삭제(CRUD) 만들기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;안녕하세요 무작정 일단 따라 해 보는 Spring 커뮤니티 만들기 4탄 시작합니다. 환경 Eclipse 2019-9 Jee JDK 1.8_231 Apache Tomcat 8.5.47 MariaDB 10.4.10 MyBatis 3.2.2 + JSTL 1.2 + jackson 2.9.4 오늘의 할..&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;java119.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;h2&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2&gt;&lt;span style=&quot;color: #333333; font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;1.GET 파라미터 받기&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;Client 코드(JSP)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1576413416530&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&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;%@ include file=&quot;/WEB-INF/views/jstlHeader.jsp&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;dashboard&amp;lt;/title&amp;gt;
&amp;lt;style&amp;gt;
  table {
    width: 100%;
    border: 1px solid #444444;
  }
  th, td {
    border: 1px solid #444444;
  }
&amp;lt;/style&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
&amp;lt;p&amp;gt;환영합니다 ${sessionScope.loginUser.nickname }님 &amp;lt;a href=&quot;/jquery/logout&quot;&amp;gt;로그아웃&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;dashboard&amp;lt;/p&amp;gt;
&amp;lt;div&amp;gt;게시글 리스트&amp;lt;/div&amp;gt;
&amp;lt;table&amp;gt;
&amp;lt;thead&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;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;/td&amp;gt;
&amp;lt;/tr&amp;gt;&amp;lt;/thead&amp;gt;

&amp;lt;c:forEach var=&quot;b&quot; items=&quot;${result }&quot;&amp;gt;
&amp;lt;fmt:formatDate value=&quot;${b.create_time}&quot; pattern=&quot;yyyy-MM-dd HH:MM:ss&quot; var=&quot;dateFormat_cr&quot;/&amp;gt;
&amp;lt;tr&amp;gt;
&amp;lt;td&amp;gt;&amp;lt;a href=&quot;/view/boardDetail?id=${b.id }&quot;&amp;gt;${b.subject }&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;
&amp;lt;td&amp;gt;${b.views }&amp;lt;/td&amp;gt;
&amp;lt;td&amp;gt;${b.likes }&amp;lt;/td&amp;gt;
&amp;lt;td&amp;gt;${b.attachments }&amp;lt;/td&amp;gt;
&amp;lt;td&amp;gt;${dateFormat_cr }&amp;lt;/td&amp;gt;
&amp;lt;/tr&amp;gt;
&amp;lt;/c:forEach&amp;gt;
&amp;lt;/table&amp;gt;
&amp;lt;div&amp;gt; &amp;lt;a href=&quot;/view/boardwrite&quot;&amp;gt;글 작성하기&amp;lt;/a&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;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;중점적으로 볼 것은 &lt;b&gt;&amp;lt;a href=&quot;/view/boardDetail?id=${b.id}&quot;&amp;gt;제목&amp;lt;/a&amp;gt;&lt;/b&gt; 이 부분이죠&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;boardDetail이라는 페이지에 id 값을 보낸 겁니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;Server(Java)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1576413667233&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@RequestMapping(value=&quot;view/boardDetail&quot;,method = RequestMethod.GET)
	public ModelAndView boardDetail(int id) {
		System.out.println(id);
		boardService.viewsUpdate(id);
		Board result = boardService.getBoardDetail(id);
		ModelAndView mav = new ModelAndView();
		mav.addObject(&quot;result&quot;,result);
		return mav;
	}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;그냥 이름에 맞게 받아주면 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;위에 보시면 id=${b.id} 부분에서 &quot;id=&quot;라고 보내줬습니다. 그래서 id로 받은 것입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;타입(Type)은 자기가 원하는 값으로 받으면 됩니다. 정수면 int, 문자열이면 String&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;결과&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;System.out.println(id); 출력 값입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;5.PNG&quot; data-origin-width=&quot;296&quot; data-origin-height=&quot;104&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bAzYXr/btqAuwwGEZj/1HatYpU5LKr3LjiXz2cvvk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bAzYXr/btqAuwwGEZj/1HatYpU5LKr3LjiXz2cvvk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bAzYXr/btqAuwwGEZj/1HatYpU5LKr3LjiXz2cvvk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbAzYXr%2FbtqAuwwGEZj%2F1HatYpU5LKr3LjiXz2cvvk%2Fimg.png&quot; data-filename=&quot;5.PNG&quot; data-origin-width=&quot;296&quot; data-origin-height=&quot;104&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;/&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;style6&quot; /&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;그렇다면 GET 파라미터를 여러 개 보낼 땐 어떻게 할까요?&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style=&quot;color: #333333; font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;2.GET 파라미터 여러 개 받기&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333; font-family: 'Noto Serif KR';&quot;&gt;두 번째 파라미터부턴 &lt;b&gt;&amp;amp;(ampersand) parameter='value'&lt;/b&gt;포맷으로 사용하면 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;Client 코드(JSP)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1576414441048&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;a href=&quot;/view/boardDetail?id=${b.id}&amp;amp;get2='stringvalue'&amp;amp;get3=3&quot;&amp;gt;제목&amp;lt;/a&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333; font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;이런 식으로 말이죠&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333; font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;parameter1 : id&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333; font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;parameter2 : get2&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333; font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;parameter3 : get3&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;Server(Java)&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1576414482751&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@RequestMapping(value=&quot;view/boardDetail&quot;,method = RequestMethod.GET)
	public ModelAndView boardDetail(int id,String get2,int get3) {
		System.out.println(id+&quot;,&quot;+get2+&quot;,&quot;+get3);
		boardService.viewsUpdate(id);
		Board result = boardService.getBoardDetail(id);
		ModelAndView mav = new ModelAndView();
		mav.addObject(&quot;result&quot;,result);
		return mav;
	}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;결과&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;6.PNG&quot; data-origin-width=&quot;372&quot; data-origin-height=&quot;107&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cl4r5E/btqAsTs52q7/6wZw44gqjYAJxP0ISYthu0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cl4r5E/btqAsTs52q7/6wZw44gqjYAJxP0ISYthu0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cl4r5E/btqAsTs52q7/6wZw44gqjYAJxP0ISYthu0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcl4r5E%2FbtqAsTs52q7%2F6wZw44gqjYAJxP0ISYthu0%2Fimg.png&quot; data-filename=&quot;6.PNG&quot; data-origin-width=&quot;372&quot; data-origin-height=&quot;107&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;/&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;style6&quot; /&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;만약 받아야 하는 파라미터가 더 많다면 관리가 필요하겠죠&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;DTO 객체를 만들어 받을 수도 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style=&quot;color: #333333; font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;3.DTO(Data Transfer Object) 객체로 GET 파라미터 받기&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;DTO 객체&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1576414722864&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public class GET1 {

	private int id;
	private String get2;
	private int get3;
	
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getGet2() {
		return get2;
	}
	public void setGet2(String get2) {
		this.get2 = get2;
	}
	public int getGet3() {
		return get3;
	}
	public void setGet3(int get3) {
		this.get3 = get3;
	}
	
	@Override
	public String toString() {
		return &quot;GET1 [id=&quot; + id + &quot;, get2=&quot; + get2 + &quot;, get3=&quot; + get3 + &quot;]&quot;;
	}
	
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;Server(Java)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1576414776384&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@RequestMapping(value=&quot;view/boardDetail&quot;,method = RequestMethod.GET)
	public ModelAndView boardDetail(GET1 getTest) {
		System.out.println(getTest);
		boardService.viewsUpdate(getTest.getId());
		Board result = boardService.getBoardDetail(getTest.getId());
		ModelAndView mav = new ModelAndView();
		mav.addObject(&quot;result&quot;,result);
		return mav;
	}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;b&gt;결과&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;7.PNG&quot; data-origin-width=&quot;333&quot; data-origin-height=&quot;105&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/WWeHS/btqAsR27y2o/FD9c1dSgvtJZEgK1cvkym0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/WWeHS/btqAsR27y2o/FD9c1dSgvtJZEgK1cvkym0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/WWeHS/btqAsR27y2o/FD9c1dSgvtJZEgK1cvkym0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWWeHS%2FbtqAsR27y2o%2FFD9c1dSgvtJZEgK1cvkym0%2Fimg.png&quot; data-filename=&quot;7.PNG&quot; data-origin-width=&quot;333&quot; data-origin-height=&quot;105&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Spring</category>
      <category>Controller에서 GET 파라미터 받기</category>
      <category>JSP-JAVA GET 파라미터</category>
      <category>JSP에서 GET 파라미터 받기</category>
      <category>spring get</category>
      <category>Spring get parameter</category>
      <category>Spring GET 파라미터 받기</category>
      <category>Spring GET 파라미터 여러개 받기 DTO 받기</category>
      <category>서버에서 GET 파라미터 받기</category>
      <category>스프링 GET 파라미터 받기</category>
      <category>스프링 겟 파라미터 받기</category>
      <author>.java</author>
      <guid isPermaLink="true">https://java119.tistory.com/74</guid>
      <comments>https://java119.tistory.com/74#entry74comment</comments>
      <pubDate>Sun, 15 Dec 2019 22:08:59 +0900</pubDate>
    </item>
    <item>
      <title>[Eclipse] 자주 쓰는 알짜배기 단축키 총 정리</title>
      <link>https://java119.tistory.com/73</link>
      <description>&lt;p&gt;&lt;b&gt;&lt;span&gt;환경&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1576409843966&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Eclipse Version: 2019-09 R (4.13.0)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;지극히&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;개인적인&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자주&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;쓰는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;단축키&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;모음&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;자동 완성 기능&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;span&gt;현재 사용할&lt;/span&gt;&lt;span&gt; 수 있는&lt;/span&gt;&lt;span&gt;&amp;nbsp;객체, 만들&lt;/span&gt;&lt;span&gt; 수 있는 객체&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;or Java에서 제공해주는 기본 객체&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Ctrl + spacebar&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;K-006.png&quot; data-origin-width=&quot;426&quot; data-origin-height=&quot;225&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oip2a/btqArUsqCDI/XKR8beMtyKZfhMI9Vc9u21/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oip2a/btqArUsqCDI/XKR8beMtyKZfhMI9Vc9u21/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oip2a/btqArUsqCDI/XKR8beMtyKZfhMI9Vc9u21/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Foip2a%2FbtqArUsqCDI%2FXKR8beMtyKZfhMI9Vc9u21%2Fimg.png&quot; data-filename=&quot;K-006.png&quot; data-origin-width=&quot;426&quot; data-origin-height=&quot;225&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;VS의 비주얼 어시스트와 동일한 기능&lt;/p&gt;
&lt;h2&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;주석 처리&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;(자바를 예로 들은 것이고 XML, JSP에서 진행하면 그에 맞는 주석이 달립니다.)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;한 줄 &lt;span&gt;주석&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;Ctrl + /&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1576409365416&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//		String col = null;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;span&gt;여러 줄 주석&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;Ctrl + Shift + /&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1576409537223&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;/*
* String col = null;
* 
* col = &quot;userId&quot;;
*/&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;여러 줄 주석 해제&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;Ctrl + Shift + \(역 슬래쉬)&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;특정 라인 코드 이동 및 복사, 삭제&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;특정 라인 한 줄 이동&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;b&gt;alt + 방향키(위, 아래)&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;특정 라인 코드 복사 (위 누르면 위로 복사 아래 누르면 아래로 복사)&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;Ctrl&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;+ &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;alt + 방향키(위, 아래)&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;특정 라인 한 줄 삭제&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;Ctrl&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;+ D&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;Undo(되돌리기) || Redo(앞으로)&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;되돌리기(Undo)&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;Ctrl&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;+ Z&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;앞으로(되돌리기를 취소)(&lt;span style=&quot;color: #000000;&quot;&gt;Redo&lt;/span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;Ctrl&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;+ Y&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;System.out.println() 자동 완성&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;pre id=&quot;code_1576410423607&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sysout + Ctrl+Spacebar&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;sysout 입력 후 &lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;Ctrl&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt; + spacebar&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;특정 문자열 찾기&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;특정 문자열 찾을 파일 클릭 후 &lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;Ctrl&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;+ F&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;b&gt;Find input 창 : 찾을 문자열 내용 &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;1.PNG&quot; data-origin-width=&quot;275&quot; data-origin-height=&quot;385&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/n6DDB/btqArSH71yt/L1NyVobY9WZvXroCyEJ6a1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/n6DDB/btqArSH71yt/L1NyVobY9WZvXroCyEJ6a1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/n6DDB/btqArSH71yt/L1NyVobY9WZvXroCyEJ6a1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fn6DDB%2FbtqArSH71yt%2FL1NyVobY9WZvXroCyEJ6a1%2Fimg.png&quot; data-filename=&quot;1.PNG&quot; data-origin-width=&quot;275&quot; data-origin-height=&quot;385&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;b&gt;입력 후 Enter or Find 버튼 클릭&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;특정 문자열을 다른 문자열로 변경하기&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;특정 문자열 찾을 파일 클릭 후&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;Ctrl&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;+ F&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;b&gt;Find input 창 : 찾을 문자열 내용&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Replace with : 찾은 문자열을 바꿀 내용(바꾸려는 문자열)&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;K-005.png&quot; data-origin-width=&quot;276&quot; data-origin-height=&quot;385&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/blmx63/btqAsTftfOo/YkIdjMUkBvhBAEy75nrEZK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/blmx63/btqAsTftfOo/YkIdjMUkBvhBAEy75nrEZK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/blmx63/btqAsTftfOo/YkIdjMUkBvhBAEy75nrEZK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fblmx63%2FbtqAsTftfOo%2FYkIdjMUkBvhBAEy75nrEZK%2Fimg.png&quot; data-filename=&quot;K-005.png&quot; data-origin-width=&quot;276&quot; data-origin-height=&quot;385&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;설명 : 해당 파일에 있는 userNicknameCheck 문자열을 userNick으로 바꾼다.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Replace :&lt;/b&gt; 제일 먼저 찾는 한 개의 문자열만&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Replace All :&lt;/b&gt; 이 파일에 있는 모든 특정 문자열을 변경한다.&lt;/p&gt;
&lt;h2&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;프로젝트 전체에서 특정 문구(텍스트) 포함 File 검색&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;검색할 프로젝트 클릭 후&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;단축키 사용 : &lt;/span&gt;&lt;/b&gt;Ctrl + H&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;OR&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;아이콘 클릭&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;2.PNG&quot; data-origin-width=&quot;722&quot; data-origin-height=&quot;51&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bAJz09/btqCEN3CzRM/N2qnZkJ2YUQ93dZRY4vy6k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bAJz09/btqCEN3CzRM/N2qnZkJ2YUQ93dZRY4vy6k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bAJz09/btqCEN3CzRM/N2qnZkJ2YUQ93dZRY4vy6k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbAJz09%2FbtqCEN3CzRM%2FN2qnZkJ2YUQ93dZRY4vy6k%2Fimg.png&quot; data-filename=&quot;2.PNG&quot; data-origin-width=&quot;722&quot; data-origin-height=&quot;51&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;File Search 탭 클릭&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;전체검색1.PNG&quot; data-origin-width=&quot;1018&quot; data-origin-height=&quot;464&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bIv0bB/btqCB7BLTvP/dK70kS28TrSZKBGOPkJkv0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bIv0bB/btqCB7BLTvP/dK70kS28TrSZKBGOPkJkv0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bIv0bB/btqCB7BLTvP/dK70kS28TrSZKBGOPkJkv0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbIv0bB%2FbtqCB7BLTvP%2FdK70kS28TrSZKBGOPkJkv0%2Fimg.png&quot; data-filename=&quot;전체검색1.PNG&quot; data-origin-width=&quot;1018&quot; data-origin-height=&quot;464&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Containing text : &lt;/b&gt;검색할 문구(텍스트) 입력&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;입력 후 Search 버튼 클릭&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;검색 옵션 살펴보기&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;전체검색1 하이라이트.PNG&quot; data-origin-width=&quot;1018&quot; data-origin-height=&quot;464&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tFVQF/btqCB88s9he/x0QZQscWR4bsts8az0td1k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tFVQF/btqCB88s9he/x0QZQscWR4bsts8az0td1k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tFVQF/btqCB88s9he/x0QZQscWR4bsts8az0td1k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtFVQF%2FbtqCB88s9he%2Fx0QZQscWR4bsts8az0td1k%2Fimg.png&quot; data-filename=&quot;전체검색1 하이라이트.PNG&quot; data-origin-width=&quot;1018&quot; data-origin-height=&quot;464&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Case&amp;nbsp;sensitive(체크박스)&amp;nbsp;:&amp;nbsp;대문자/소문자를&amp;nbsp;구분할&amp;nbsp;것인가?&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Regular&amp;nbsp;expression(체크박스)&amp;nbsp;:&amp;nbsp;정규식&amp;nbsp;확인할&amp;nbsp;것인가?&amp;nbsp;(정규식으로&amp;nbsp;검색할&amp;nbsp;것인가?)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;b&gt;Regular expression &lt;/b&gt;참고 블로그&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;a href=&quot;http://blog.naver.com/PostView.nhn?blogId=korhjkim&amp;amp;logNo=40179239376&amp;amp;redirect=Dlog&amp;amp;widgetTypeCall=true&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;http://blog.naver.com/PostView.nhn?blogId=korhjkim&amp;amp;logNo=40179239376&amp;amp;redirect=Dlog&amp;amp;widgetTypeCall=true&lt;/a&gt; &lt;br /&gt;&lt;a href=&quot;https://lng1982.tistory.com/159&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://lng1982.tistory.com/159&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Whole&amp;nbsp;word(체크박스)&amp;nbsp;:&amp;nbsp;특정&amp;nbsp;단어로&amp;nbsp;끝나는&amp;nbsp;것(잘리는&amp;nbsp;것)으로&amp;nbsp;검색할&amp;nbsp;것인가?&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;-예) &quot;Whole&quot; 단어를 검색했을 때&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;b&gt;Whole word 옵션을 체크 안 했을 경우 &lt;b&gt;&quot;Whole&quot; 단어를 포함한 전체로 검색됨 Whole word,Whole~&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;Whole word 옵션을 체크했을 경우 &quot;Whole&quot; 단어로 딱 잘린 것들만 검색됨 포함 X&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;원하는 라인 줄로 이동(Go to Line)&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;원하는 라인으로 이동&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;Ctrl&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;+ L&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;2.PNG&quot; data-origin-width=&quot;477&quot; data-origin-height=&quot;189&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cH0DAJ/btqAuwXKuT9/kKnbeuKPXk1DSkNCfkHnNk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cH0DAJ/btqAuwXKuT9/kKnbeuKPXk1DSkNCfkHnNk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cH0DAJ/btqAuwXKuT9/kKnbeuKPXk1DSkNCfkHnNk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcH0DAJ%2FbtqAuwXKuT9%2FkKnbeuKPXk1DSkNCfkHnNk%2Fimg.png&quot; data-filename=&quot;2.PNG&quot; data-origin-width=&quot;477&quot; data-origin-height=&quot;189&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;import 코드 정리&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;Ctrl&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;+&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;Shift + O&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;import 코드 정리 전 (쓰지 않는 import라 노란 줄이 떠 있다.)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;1.PNG&quot; data-origin-width=&quot;494&quot; data-origin-height=&quot;115&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cocphr/btqAsRB2SHz/wHhKRNrPukvlxfH7jhTmU1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cocphr/btqAsRB2SHz/wHhKRNrPukvlxfH7jhTmU1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cocphr/btqAsRB2SHz/wHhKRNrPukvlxfH7jhTmU1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcocphr%2FbtqAsRB2SHz%2FwHhKRNrPukvlxfH7jhTmU1%2Fimg.png&quot; data-filename=&quot;1.PNG&quot; data-origin-width=&quot;494&quot; data-origin-height=&quot;115&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;import 코드 정리 후&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;2.PNG&quot; data-origin-width=&quot;489&quot; data-origin-height=&quot;89&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tdwhI/btqAvkbr06u/WjuqASDhuDPWVZFw1frETK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tdwhI/btqAvkbr06u/WjuqASDhuDPWVZFw1frETK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tdwhI/btqAvkbr06u/WjuqASDhuDPWVZFw1frETK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtdwhI%2FbtqAvkbr06u%2FWjuqASDhuDPWVZFw1frETK%2Fimg.png&quot; data-filename=&quot;2.PNG&quot; data-origin-width=&quot;489&quot; data-origin-height=&quot;89&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;코드 들여 쓰기(정리하기)&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;Ctrl&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;+&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;Shift + F&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;들여 쓰기 전&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;3.PNG&quot; data-origin-width=&quot;549&quot; data-origin-height=&quot;459&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lrI5s/btqArT1pRDg/VmANPraOKSz3AprmPoMdtK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lrI5s/btqArT1pRDg/VmANPraOKSz3AprmPoMdtK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lrI5s/btqArT1pRDg/VmANPraOKSz3AprmPoMdtK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlrI5s%2FbtqArT1pRDg%2FVmANPraOKSz3AprmPoMdtK%2Fimg.png&quot; data-filename=&quot;3.PNG&quot; data-origin-width=&quot;549&quot; data-origin-height=&quot;459&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;들여 쓰기 후&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;4.PNG&quot; data-origin-width=&quot;556&quot; data-origin-height=&quot;454&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Ocjsw/btqAskYKKYE/yi0NG0HJq98ce5ZbCjulb0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Ocjsw/btqAskYKKYE/yi0NG0HJq98ce5ZbCjulb0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Ocjsw/btqAskYKKYE/yi0NG0HJq98ce5ZbCjulb0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOcjsw%2FbtqAskYKKYE%2Fyi0NG0HJq98ce5ZbCjulb0%2Fimg.png&quot; data-filename=&quot;4.PNG&quot; data-origin-width=&quot;556&quot; data-origin-height=&quot;454&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;/&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;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;단축키만 잘 써도 개발 시간을 확 줄일 수 있는데요, 자주 애용하셨으면 좋겠습니다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;아 인텔리제이 쓰신다고요? 죄송합니다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;일단 지금은 이 정도까지 생각이 나네요... 더 생각나면 추가하겠습니다.&lt;/b&gt;&lt;/p&gt;</description>
      <category>IDE</category>
      <category>Eclipse 단축키 모음</category>
      <category>Eclipse 많이 사용하는 단축키</category>
      <category>Eclipse 자주 쓰는 단축키</category>
      <category>Eclipse 주석 여러 줄 주석</category>
      <category>Eclipse 코드 정렬</category>
      <category>이클립스 단축키 모음</category>
      <category>이클립스 알짜배기 단축키</category>
      <category>이클립스 자주쓰는 단축키</category>
      <category>코드 삭제</category>
      <category>코드 정렬 단축키</category>
      <author>.java</author>
      <guid isPermaLink="true">https://java119.tistory.com/73</guid>
      <comments>https://java119.tistory.com/73#entry73comment</comments>
      <pubDate>Sun, 15 Dec 2019 21:16:34 +0900</pubDate>
    </item>
    <item>
      <title>[jQuery] Class 관련 함수,문법 총 정리</title>
      <link>https://java119.tistory.com/72</link>
      <description>&lt;p&gt;&lt;b&gt;&lt;span&gt;먼저 선행돼야 할 &lt;/span&gt;&lt;span&gt;가장&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본인&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;주&lt;/span&gt;&lt;span&gt;타깃(id, name, class) 접근&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;방법&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;id 접근 $(&amp;ldquo;#id&amp;rdquo;)&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1576407668161&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$(&quot;#notifi&quot;)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;class로 접근 $(&amp;ldquo;.class&amp;rdquo;)&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1576407683449&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$(&quot;.notifi&quot;)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;name으로 접근 $(tag_name[name=name])&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1576407697026&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt; $(&quot;input[name=notifi]&quot;)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;특정 아이디 기준으로 설명합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span&gt;특정&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;아이디&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;클래스&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;클래스 추가&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1576407816281&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$(&quot;#notifi&quot;).addClass('active');&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;여러&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;개&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;클래스&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;추가&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span&gt;스페이스&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;공백&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;구분&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1576407837233&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$(&quot;#notifi&quot;).addClass('active active2 active3');&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;변경&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1576407860257&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$(&quot;#notifi&quot;).attr('class','active');&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;삭제&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1576407872586&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$(&quot;#notifi&quot;).removeClass('active');&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Toggle&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;id&lt;/span&gt;&lt;span&gt;가&lt;/span&gt;&lt;span&gt; 'notif&lt;/span&gt;&lt;span&gt;i'&lt;/span&gt;&lt;span&gt;라는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;태그가&lt;/span&gt;&lt;span&gt; '&lt;/span&gt;&lt;span&gt;active'&lt;/span&gt;&lt;span&gt;라는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;클래스를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가지고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;없어지고&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;'active'&lt;/span&gt;&lt;span&gt;라는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;클래스가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;없다면&lt;/span&gt;&lt;span&gt; '&lt;/span&gt;&lt;span&gt;active'&lt;/span&gt;&lt;span&gt;라는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;클래스를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;해당&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;태그에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;만든다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1576407888273&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$(&quot;#notifi&quot;).toggleClass('active')&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span&gt;특정&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;아이디에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;특정 클래스이 존재하는지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;체크&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;id&lt;/span&gt;&lt;span&gt;가&lt;/span&gt;&lt;span&gt; 'n&lt;/span&gt;&lt;span&gt;otifi'&lt;/span&gt;&lt;span&gt;라는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;태그의&lt;/span&gt;&lt;span&gt; '&lt;/span&gt;&lt;span&gt;active'&lt;/span&gt;&lt;span&gt;라는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;클래스가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;존재하는가&lt;/span&gt;&lt;span&gt;?&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span&gt;3&lt;/span&gt;&lt;span&gt;가지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;방법&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;hasClass&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1576407951609&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;if($(&quot;#notifi&quot;).hasClass(&quot;active&quot;) === true) {
// Method 실행
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;is&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1576407967193&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;if($(&quot;#notifi&quot;).is(&quot;.active&quot;) === true) {
// Method 실행
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;length&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1576407980193&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;if($(&quot;#notifi.active&quot;).length) {
// Method 실행
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>JavaScript</category>
      <category>addClass 여러 개 추가</category>
      <category>jQuery class 관련 문법</category>
      <category>jQuery class 관련 함수</category>
      <category>jQuery class 다루기</category>
      <category>jQuery hasClass</category>
      <category>jQuery 클래스 변경</category>
      <category>jquery 클래스 삭제</category>
      <category>jquery 클래스 추가</category>
      <category>제이쿼리 클래스 관련</category>
      <category>제이쿼리 클래스 다루기</category>
      <author>.java</author>
      <guid isPermaLink="true">https://java119.tistory.com/72</guid>
      <comments>https://java119.tistory.com/72#entry72comment</comments>
      <pubDate>Sun, 15 Dec 2019 20:09:56 +0900</pubDate>
    </item>
    <item>
      <title>[jQuery || JavaScript] 비밀번호 유효성 검사 문법 총 정리(feat.정규식)</title>
      <link>https://java119.tistory.com/71</link>
      <description>&lt;p&gt;&lt;b&gt;먼저 사용할 방식은 jQuery를 이용한 val() 방식을 사용합니다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;조금 코드를 수정하셔서 매개변수로 password 값을 받으셔도 됩니다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;공통 HTML&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1576030288064&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;input type=&quot;text&quot; id=&quot;id&quot;&amp;gt;
&amp;lt;input type=&quot;password&quot; id=&quot;password&quot;&amp;gt;
&amp;lt;button onclick=&quot;chkPW()&quot;&amp;gt;signUp&amp;lt;/button&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1. &lt;b&gt;조건&lt;/b&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;필수 항목&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;b&gt;영문(대소문자) 포함&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;숫자 포함&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;특수 문자 포함&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;공백 X&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;비밀번호 자리 8~20자&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1576028596353&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function chkPW(){

 var pw = $(&quot;#password&quot;).val();
 var num = pw.search(/[0-9]/g);
 var eng = pw.search(/[a-z]/ig);
 var spe = pw.search(/[`~!@@#$%^&amp;amp;*|₩₩₩'₩&quot;;:₩/?]/gi);

 if(pw.length &amp;lt; 8 || pw.length &amp;gt; 20){

  alert(&quot;8자리 ~ 20자리 이내로 입력해주세요.&quot;);
  return false;
 }else if(pw.search(/\s/) != -1){
  alert(&quot;비밀번호는 공백 없이 입력해주세요.&quot;);
  return false;
 }else if(num &amp;lt; 0 || eng &amp;lt; 0 || spe &amp;lt; 0 ){
  alert(&quot;영문,숫자, 특수문자를 혼합하여 입력해주세요.&quot;);
  return false;
 }else {
	console.log(&quot;통과&quot;); 
    return true;
 }

}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;$(&quot;#password&quot;).val()을 사용하기 때문에 jQuery 라이브러리 필요&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2.조건&lt;/b&gt;&lt;/h3&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;b&gt;필수 항목&lt;/b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;b&gt;영문,숫자,특수문자 중 2가지 혼합 (영문,숫자 = 통과) (특문,숫자 = 통과)&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;비밀번호 10~20자리&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1576028860259&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function chkPW(){

 var pw = $(&quot;#password&quot;).val();
 var num = pw.search(/[0-9]/g);
 var eng = pw.search(/[a-z]/ig);
 var spe = pw.search(/[`~!@@#$%^&amp;amp;*|₩₩₩'₩&quot;;:₩/?]/gi);

 if(pw.length &amp;lt; 10 || pw.length &amp;gt; 20){
  alert(&quot;10자리 ~ 20자리 이내로 입력해주세요.&quot;);
  return false;
 }else if(pw.search(/\s/) != -1){
  alert(&quot;비밀번호는 공백 없이 입력해주세요.&quot;);
  return false;
 }else if( (num &amp;lt; 0 &amp;amp;&amp;amp; eng &amp;lt; 0) || (eng &amp;lt; 0 &amp;amp;&amp;amp; spe &amp;lt; 0) || (spe &amp;lt; 0 &amp;amp;&amp;amp; num &amp;lt; 0) ){
  alert(&quot;영문,숫자, 특수문자 중 2가지 이상을 혼합하여 입력해주세요.&quot;);
  return false;
 }else {
	console.log(&quot;통과&quot;);	 
 }

}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3.조건&lt;/b&gt;&lt;/h3&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;필수 항목&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;b&gt;비밀번호 8자리 이상&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;숫자 포함&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;영대 문자 포함&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;영소 문자 포함&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;특수문자 포함&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1576029282750&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function chkPW(){

var reg = /^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&amp;amp;*-]).{8,}$/;

var pw = $(&quot;#password&quot;).val();

if(false === reg.test(pw)) {
alert('비밀번호는 8자 이상이어야 하며, 숫자/대문자/소문자/특수문자를 모두 포함해야 합니다.');
}else {
console.log(&quot;통과&quot;);
}

}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;4.조건&lt;/b&gt;&lt;/h3&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;특수문자&lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt;영문&lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;span&gt;숫자 혼합&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;같은 문자 &lt;b&gt;&lt;b&gt;&lt;span&gt;4번&lt;/span&gt;&lt;/b&gt;&lt;/b&gt; 반복 X&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;아이디 포함 X&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1576029355706&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function chkPW(){

		var pw = $(&quot;#password&quot;).val();
		var id = $(&quot;#id&quot;).val();
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;checkNumber&amp;nbsp;=&amp;nbsp;pw.search(/[0-9]/g);
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;checkEnglish&amp;nbsp;=&amp;nbsp;pw.search(/[a-z]/ig);
	&amp;nbsp;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if(!/^(?=.*[a-zA-Z])(?=.*[!@#$%^*+=-])(?=.*[0-9]).{8,25}$/.test(pw)){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;alert('숫자+영문자+특수문자&amp;nbsp;조합으로&amp;nbsp;8자리&amp;nbsp;이상&amp;nbsp;사용해야&amp;nbsp;합니다.');
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;false;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}else if(checkNumber&amp;nbsp;&amp;lt;0&amp;nbsp;||&amp;nbsp;checkEnglish&amp;nbsp;&amp;lt;0){
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;alert(&quot;숫자와&amp;nbsp;영문자를&amp;nbsp;혼용하여야&amp;nbsp;합니다.&quot;);
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;false;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}else if(/(\w)\1\1\1/.test(pw)){
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;alert('같은&amp;nbsp;문자를&amp;nbsp;4번&amp;nbsp;이상&amp;nbsp;사용하실&amp;nbsp;수&amp;nbsp;없습니다.');
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;false;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}else if(pw.search(id)&amp;nbsp;&amp;gt;&amp;nbsp;-1){
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;alert(&quot;비밀번호에&amp;nbsp;아이디가&amp;nbsp;포함되었습니다.&quot;);
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;false;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}else {

		console.log(&quot;통과&quot;);
		
		}

}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;5.헬(끝판)&lt;/b&gt;&lt;/h3&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;b&gt;&lt;b&gt;비밀번호 8자리 이상&lt;/b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;숫자 포함&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;영대 문자 포함&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;영소 문자 포함&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;특수문자 포함&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;공백 X&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;b&gt;&lt;span&gt;같은 문자 4번 반복 X&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;아이디 포함 X&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;한글 X&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1576031880010&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function chkPW(){

	var pw = $(&quot;#password&quot;).val();
	var id = $(&quot;#id&quot;).val();
		
	var reg = /^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&amp;amp;*-]).{8,}$/;
	var hangulcheck = /[ㄱ-ㅎ|ㅏ-ㅣ|가-힣]/;
	&amp;nbsp;
	if(false === reg.test(pw)) {
	alert('비밀번호는 8자 이상이어야 하며, 숫자/대문자/소문자/특수문자를 모두 포함해야 합니다.');
	}else if(/(\w)\1\1\1/.test(pw)){
	&amp;nbsp;alert('같은&amp;nbsp;문자를&amp;nbsp;4번&amp;nbsp;이상&amp;nbsp;사용하실&amp;nbsp;수&amp;nbsp;없습니다.');
	&amp;nbsp;return&amp;nbsp;false;
	&amp;nbsp;}else if(pw.search(id)&amp;nbsp;&amp;gt;&amp;nbsp;-1){
	&amp;nbsp;alert(&quot;비밀번호에&amp;nbsp;아이디가&amp;nbsp;포함되었습니다.&quot;);
	&amp;nbsp;&amp;nbsp;return&amp;nbsp;false;
	&amp;nbsp;}else if(pw.search(/\s/) != -1){
	 alert(&quot;비밀번호는 공백 없이 입력해주세요.&quot;);
	 return false;
	 }else if(hangulcheck.test(pw)){
	 alert(&quot;비밀번호에 한글을 사용 할 수 없습니다.&quot;); 
	 }else {
	 console.log(&quot;통과&quot;);
	 }

}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;끝 마치며..&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;실컷 설명해놓고 찬 물 끼얹는 소리일 수 있지만 시간이 촉박한 SI가 아닌 이상 프런트인 JavaScript단에서&lt;/p&gt;
&lt;p&gt;유효성 검사를 하기보단 백 엔드단에서 하는 것이 바람직합니다.^^&lt;/p&gt;</description>
      <category>JavaScript</category>
      <category>javascript 비밀번호 유효성 검사</category>
      <category>javascript 유효성 검사</category>
      <category>javascript 정규식 유효성 검사하기</category>
      <category>javascript 회원가입 비밀번호 유효성 검사</category>
      <category>signup password Validation</category>
      <category>비밀번호 유효성 검사</category>
      <category>유효성 검사</category>
      <category>자바스크립트 비밀번호 유효성 검사</category>
      <category>자바스크립트 정규식 유효성 검사</category>
      <category>정규식 유효성 검사</category>
      <author>.java</author>
      <guid isPermaLink="true">https://java119.tistory.com/71</guid>
      <comments>https://java119.tistory.com/71#entry71comment</comments>
      <pubDate>Wed, 11 Dec 2019 11:47:37 +0900</pubDate>
    </item>
    <item>
      <title>[MyBatis] CDATA 사용하기(feat.&amp;lt;&amp;gt; 괄호,특수문자 문자열로 인식하기)</title>
      <link>https://java119.tistory.com/70</link>
      <description>&lt;h2&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;CDATA ( &amp;lt;![CDATA[..]]&amp;gt; )&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;개념&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;span&gt;쿼리를 작성할 때&lt;/span&gt;&lt;span&gt;, '&amp;lt;', '&amp;gt;', '&amp;amp;'&lt;/span&gt;&lt;span&gt;를 사용해야하는 경우가 생기는데&lt;/span&gt;&lt;span&gt;&amp;nbsp;xml&lt;/span&gt;&lt;span&gt;에서 그냥 사용할 경우 태그로 인식하는 경우가 종종 있다.. 이럴 경우 에러를 뱉어내기 때문에&lt;/span&gt;&lt;span&gt; '&lt;/span&gt;&lt;span&gt;태그가 아니라 실제 쿼리에 필요한 코드&lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;span&gt;라고 알려줘야 한다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;그때 사용하는 것이&lt;/span&gt;&lt;span&gt; &amp;lt;!&lt;/span&gt;&lt;span&gt;[&lt;/span&gt;&lt;span&gt;CDATA[...]]&amp;gt; &lt;/span&gt;&lt;span&gt;이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;한 마디로 &lt;/span&gt;&lt;span&gt;&amp;lt;&amp;gt;(&lt;/span&gt;&lt;span&gt;부등호&lt;/span&gt;&lt;span&gt;),&amp;amp;(&lt;/span&gt;&lt;span&gt;앤드&lt;/span&gt;&lt;span&gt;),||(&lt;/span&gt;&lt;span&gt;오아&lt;/span&gt;&lt;span&gt;) &lt;/span&gt;&lt;span&gt;등을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;닫는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;부등호가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;아니라&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문자열로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;처리하라는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;뜻입니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;어렵게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;말하자면&lt;/span&gt;&lt;span&gt; &quot;&lt;/span&gt;&lt;span&gt;XML parser&lt;/span&gt;&lt;span&gt;&quot;&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;하지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;말아라&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이겁니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;1.PNG&quot; data-origin-width=&quot;387&quot; data-origin-height=&quot;85&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bu7npN/btqAnX8rv4H/VrBuDl7bQMyrFcz7FWiGC0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bu7npN/btqAnX8rv4H/VrBuDl7bQMyrFcz7FWiGC0/img.png&quot; data-alt=&quot;XML parser로 인식한 괄호&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bu7npN/btqAnX8rv4H/VrBuDl7bQMyrFcz7FWiGC0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbu7npN%2FbtqAnX8rv4H%2FVrBuDl7bQMyrFcz7FWiGC0%2Fimg.png&quot; data-filename=&quot;1.PNG&quot; data-origin-width=&quot;387&quot; data-origin-height=&quot;85&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;/&gt;&lt;/span&gt;&lt;figcaption&gt;XML parser로 인식한 괄호&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;사진을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;보시면&lt;/span&gt;&lt;b&gt;&lt;span&gt; &quot;&amp;lt;&quot; &lt;/span&gt;&lt;span&gt;괄호가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;연녹색&lt;/b&gt;이네요&lt;/span&gt;&lt;span&gt;? &lt;/span&gt;&lt;span&gt;엥&lt;/span&gt;&lt;span&gt;? 에러가 떴네요?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;예&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;맞습니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;XML parser&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;로&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;인식했으니&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt; XML parser&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;에선&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt; &quot;&amp;lt;&quot;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;가&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt; 태그의 &lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;시작이거든요&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;다른&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설정들도&lt;/span&gt;&lt;span&gt; &amp;lt;&lt;/span&gt;&lt;span&gt;내용&lt;/span&gt;&lt;span&gt;&amp;gt; &lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;포맷이잖아요&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이해되셨지요?&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;그럼&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용해봅시다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;문법&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;pre id=&quot;code_1575972398819&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;![CDATA[

쿼리 내용

]]&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;CDATA&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;안에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;쿼리를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용하면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;쿼리&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;내용의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;괄호나&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;특수문자를&lt;/span&gt;&lt;span&gt; XML parser&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인식하지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;&quot;&lt;/span&gt;&lt;span&gt;문자열&lt;/span&gt;&lt;span&gt;&quot;&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인식한다&lt;/span&gt;&lt;span&gt; 이말입니다. 문자열로&lt;/span&gt;&lt;span&gt;!&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;다양한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;예시&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;전체&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;쿼리&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;CDATA&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;pre id=&quot;code_1575972619954&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;select id=&quot;getUserList&quot; resultMap=&quot;UserVO&quot;&amp;gt;
    &amp;lt;![CDATA[
    select *
    from user
    where id &amp;gt; 3
    ]]&amp;gt;
&amp;lt;/select&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;조건&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;중간에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;CDATA&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;if &lt;/span&gt;&lt;span&gt;문&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1575972812065&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;select id=&quot;getUser&quot; resultType=&quot;UserVO&quot;&amp;gt;
select * from user
&amp;lt;if test=&quot;id != null&quot;&amp;gt;
where id &amp;nbsp;&amp;lt;![CDATA[&amp;lt;]]&amp;gt; 3;
&amp;lt;/if&amp;gt;
&amp;lt;/select&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;choose &lt;/span&gt;&lt;span&gt;문&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1575972901305&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;select id=&quot;getUser&quot; resultMap=&quot;UserVO&quot;&amp;gt;
    &amp;lt;![CDATA[
    select *
    from user
    where  1=1
    ]]&amp;gt;
    &amp;lt;choose&amp;gt;
        &amp;lt;when test='id != null and user_type ==&quot;1&quot;'&amp;gt;
            &amp;lt;![CDATA[
                salary &amp;gt; 100
            ]]&amp;gt;
        &amp;lt;/when&amp;gt;
        &amp;lt;otherwise&amp;gt;
            &amp;lt;![CDATA[
                salary &amp;lt; 100
            ]]&amp;gt;
        &amp;lt;/otherwise&amp;gt;
    &amp;lt;/choose&amp;gt;
&amp;lt;/select&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;이런 것도&lt;span style=&quot;color: #333333;&quot;&gt;가능&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;pre id=&quot;code_1575972969303&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;select id=&quot;getUser&quot; resultType=&quot;UserVO&quot;&amp;gt;
SELECT *
FROM user
WHERE id &amp;lt;![CDATA[&amp;lt;]]&amp;gt; ;
&amp;lt;/select&amp;gt;&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Spring/MyBatis</category>
      <category>&amp;lt;![CDATA[...]]&amp;gt;</category>
      <category>CDATA 문법</category>
      <category>CDATA 사용하기</category>
      <category>MyBatis CDATA</category>
      <category>MyBatis 괄호 문자열 인식</category>
      <category>MyBatis 특수문자 문자열</category>
      <category>마이바티스 CDATA</category>
      <category>마이바티스 괄호 문자열</category>
      <category>마이바티스 특수문자 문자열</category>
      <author>.java</author>
      <guid isPermaLink="true">https://java119.tistory.com/70</guid>
      <comments>https://java119.tistory.com/70#entry70comment</comments>
      <pubDate>Tue, 10 Dec 2019 19:17:43 +0900</pubDate>
    </item>
    <item>
      <title>[Spring] 프로젝트 커뮤니티,블로그 만들기(#5)-회원가입,로그인,로그아웃 구현하기</title>
      <link>https://java119.tistory.com/69</link>
      <description>&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;안녕하세요 무작정 일단 따라 해 보는 Spring 커뮤니티 만들기&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;5&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;탄 시작합니다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;환경&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1575790238391&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Eclipse 2019-9 Jee
JDK 1.8_231
Apache Tomcat 8.5.47
MariaDB 10.4.10 
MyBatis 3.2.2
JSTL 1.2
jackson 2.9.4
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;오늘의 할&lt;span&gt;&amp;nbsp;&lt;/span&gt;일&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1575790312533&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;1.유저(user) 테이블 만들기
2.유저(user) 회원가입,로그인 view 만들기
3.유저(user) 회원가입,로그인 백 로직 만들기(값 req,res DB insert)&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;1.유저(members) 테이블 만들기&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;span&gt;제일&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;먼저&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;회원가입&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;기능을&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;만드려면&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;DB&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;테이블을&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;먼저&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;만들어야겠죠&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;저희는&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;MariaDB 10.4&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;버전을&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;사용하고&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;있기때문에&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;또&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;HeidiSQL&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;들어가줍니다들어가 줍니다.&lt;/span&gt;&lt;span&gt;이제&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;사용법&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;아시죠&lt;/span&gt;&lt;span&gt;?!&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1575790159335&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;CREATE TABLE `members` (
	`id` INT(11) NOT NULL AUTO_INCREMENT,
	`userId` VARCHAR(64) NULL DEFAULT NULL,
	`password` VARCHAR(256) NULL DEFAULT NULL,
	`nickname` VARCHAR(64) NULL DEFAULT NULL,
	`email` VARCHAR(64) NULL DEFAULT NULL,
	`authority` INT(11) NULL DEFAULT NULL,
	`declaration` INT(11) NULL DEFAULT NULL,
	`last_login` TIMESTAMP NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
	`create_time` TIMESTAMP NULL DEFAULT '0000-00-00 00:00:00',
	`update_time` TIMESTAMP NULL DEFAULT '0000-00-00 00:00:00',
	PRIMARY KEY (`id`)
    UNIQUE INDEX `userId` (`userId`)
)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;id :&lt;/b&gt; 절대 겹치지 않는 구분자 PK&lt;/p&gt;
&lt;p&gt;&lt;b&gt;userId :&lt;/b&gt; 유저 아이디&lt;/p&gt;
&lt;p&gt;&lt;b&gt;password :&lt;/b&gt; 유저 비밀번호&lt;/p&gt;
&lt;p&gt;&lt;b&gt;nickname :&lt;/b&gt; 유저 닉네임&lt;/p&gt;
&lt;p&gt;&lt;b&gt;email :&lt;/b&gt; 유저 이메일&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;authority :&lt;/b&gt; 권한(관리자, 사용자 등..)&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;declaration&lt;/b&gt;&lt;span&gt;&lt;b&gt; :&lt;/b&gt; 신고 횟수&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;last_login&lt;/b&gt;&lt;span&gt;&lt;b&gt; :&lt;/b&gt; 마지막 로그인 시간&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;create_time :&lt;/b&gt; 유저 생성한 시간(회원 가입한 시간)&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;update_time :&lt;/b&gt; 비밀번호 업데이트한 시간(n일마다 비밀번호 교체 요구 기능 만들 예정)&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;UNIQUE INDEX `userId` (`userId`)&lt;/b&gt; : 웹 로직을 피해 DB에 데이터를 넣을 경우라도 중복은 피할 수 있게 유니크 키를 넣어줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;최종 members 테이블&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;1.PNG&quot; data-origin-width=&quot;793&quot; data-origin-height=&quot;260&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QD9dv/btqAiyWBT41/6e2I4oKP8KjYfD6SCg8XcK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QD9dv/btqAiyWBT41/6e2I4oKP8KjYfD6SCg8XcK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QD9dv/btqAiyWBT41/6e2I4oKP8KjYfD6SCg8XcK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQD9dv%2FbtqAiyWBT41%2F6e2I4oKP8KjYfD6SCg8XcK%2Fimg.png&quot; data-filename=&quot;1.PNG&quot; data-origin-width=&quot;793&quot; data-origin-height=&quot;260&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;10.4 UI는 참 이쁘네요 10.2에 비해..&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;2.유저(members) 회원가입,로그인 view 만들기&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;views -&amp;gt; user &lt;/span&gt;&lt;span&gt;폴더&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;생성&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;views -&amp;gt; &lt;/span&gt;&lt;span&gt;user 폴더&amp;nbsp;&lt;/span&gt;&lt;span&gt;-&amp;gt; login.jsp 생성&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;2.PNG&quot; data-origin-width=&quot;157&quot; data-origin-height=&quot;55&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bjxHJn/btqAhVLg6NI/a3qeObrKcms5Wb8PHthXUK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bjxHJn/btqAhVLg6NI/a3qeObrKcms5Wb8PHthXUK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bjxHJn/btqAhVLg6NI/a3qeObrKcms5Wb8PHthXUK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbjxHJn%2FbtqAhVLg6NI%2Fa3qeObrKcms5Wb8PHthXUK%2Fimg.png&quot; data-filename=&quot;2.PNG&quot; data-origin-width=&quot;157&quot; data-origin-height=&quot;55&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;src/main/java -&amp;gt; controller -&amp;gt; UserController.java 생성&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1575790714301&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

@Controller
@RequestMapping(&quot;user/*&quot;)
public class UserController {

	
	@RequestMapping(value=&quot;user/login&quot;,method = RequestMethod.GET)
	public ModelAndView login() {
		ModelAndView mav = new ModelAndView();
		return mav;
	}
	
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;webapp -&amp;gt; index.jsp 수정&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1575790860180&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&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;jsp:forward page=&quot;/user/login&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;SpringEx01 커뮤니티&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;나중에 &lt;b&gt;sitemash&lt;/b&gt;를 사용할 때 index.jsp는 적용하기 어렵습니다. 그러므로 jsp:forward를 통해 진입하자마자&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;/user/login 페이지로 forward 해줍니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;login.jsp&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1575790581102&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&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;script src=&quot;https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt; 
&amp;lt;style&amp;gt;
body {
   font: 13px/20px 'Helvetica Neue', Helvetica, Arial, sans-serif;
   color: #333333;
   background: #596778;
}

.signUp {
   position: relative;
   margin: 50px auto;
   width: 280px;
   padding: 33px 25px 29px;
   background: #FFFFFF;
   border-bottom: 1px solid #C4C4C4;
   border-radius: 5px;
   -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.25);
   box-shadow: 0 1px 5px rgba(0, 0, 0, 0.25);
}

.signUp:before,
.signUp:after {
   content: '';
   position: absolute;
   bottom: 1px;
   left: 0;
   right: 0;
   height: 10px;
   background: inherit;
   border-bottom: 1px solid #D2D2D2;
   border-radius: 4px;
}

.signUp:after {
   bottom: 3px;
   border-color: #DCDCDC;
}

.signUpTitle {
   margin: -25px -25px 25px;
   padding: 15px 25px;
   line-height: 35px;
   font-size: 26px;
   font-weight: 300;
   color: #777;
   text-align: center;
   text-shadow: 0 1px rgba(255, 255, 255, 0.75);
   background: #F7F7F7;
}

.signUpTitle:before {
   content: '';
   position: absolute;
   top: 0;
   left: 0;
   right: 0;
   height: 8px;
   background: #C4E17F;
   border-radius: 5px 5px 0 0;
   background-image: -webkit-linear-gradient(left, #C4E17F, #C4E17F 12.5%, #F7FDCA 12.5%, #F7FDCA 25%, #FECF71 25%, #FECF71 37.5%, #F0776C 37.5%, #F0776C 50%, #DB9DBE 50%, #db9CBE 62.5%, #C49CDE 62.5%, #C49CDE 75%, #669AE1 75%, #669AE1 87.5%, #62C2E4 87.5%, #62C2E4);
   background-image: -moz-linear-gradient(left, #c4e17f, #C4E17F 12.5%, #F7FDCA 12.5%, #F7FDCA 25%, #FECF71 25%, #FECF71 37.5%, #F0776C 37.5%, #F0776C 50%, #DB9DBE 50%, #DB9CBE 62.5%, #C49CDE 62.5%, #C49CDE 75%, #669AE1 75%, #669AE1 87.5%, #62C2E4 87.5%, #62C2E4);
   background-image: -o-linear-gradient(left, #C4E17F, #C4E17F 12.5%, #F7FDCC 12.5%, #F7FDCA 25%, #FECF71 25%, #FECF71 37.5%, #F0776C 37.5%, #F0776C 50%, #DB9DBE 50%, #DB9DBE 62.5%, #C49CDE 62.5%, #C49CDE 75%, #669AE1 75%, #669AE1 87.5%, #62C2E4 87.5%, #62C2E4);
   background-image: linear-gradient(to right, #C4E17F, #C4E17F 12.5%, #F7FDCA 12.5%, #F7FDCA 25%, #FECF71 25%, #FECF71 37.5%, #F0776C 37.5%, #F0776C 50%, #DB9DBE 50%, #DB9CBE 62.5%, #c49cde 62.5%, #C49CDE 75%, #669AE1 75%, #669AE1 87.5%, #62c2e4 87.5%, #62C2E4);
}

input {
   font-family: inherit;
   color: inherit;
   -webkit-box-sizing: border-box;
   -moz-box-sizing: border-box;
   box-sizing: border-box;
}

.signUpInput {
   width: 100%;
   height: 50px;
   margin-bottom: 25px;
   padding: 0 15px 2px;
   font-size: 17px;
   background: white;
   border: 2px solid #EBEBEB;
   border-radius: 4px;
   -webkit-box-shadow: inset 0 -2px #EBEBEB;
   box-shadow: inset 0 -2px #EBEBEB;
}

.signUpInput:focus {
   border-color: #62C2E4;
   outline: none;
   -webkit-box-shadow: inset 0 -2px #62C2E4;
   box-shadow: inset 0 -2px #62C2E4;
}

.lt-ie9 .signUpInput {
   line-height: 48px;
}

.loginButton {
   position: relative;
   vertical-align: top;
   width: 100%;
   height: 54px;
   padding: 0;
   font-size: 22px;
   color: white;
   text-align: center;
   text-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
   background: #CCCCFF;
   border: 0;
   border-bottom: 2px solid #D76B60;
   border-radius: 5px;
   cursor: pointer;
   -webkit-box-shadow: inset 0 -2px #D76B60;
   box-shadow: inset 0 -2px #D76B60;
}

.loginButton:active {
   top: 1px;
   outline: none;
   -webkit-box-shadow: none;
   box-shadow: none;
}

.signUpButton {
   position: relative;
   vertical-align: top;
   width: 100%;
   height: 54px;
   padding: 0;
   font-size: 18px;
   color: white;
   text-align: center;
   text-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
   background: #F0776C;
   border: 0;
   border-bottom: 2px solid #D76B60;
   border-radius: 5px;
   cursor: pointer;
   -webkit-box-shadow: inset 0 -2px #D76B60;
   box-shadow: inset 0 -2px #D76B60;
}

.signUpButton:active {
   top: 1px;
   outline: none;
   -webkit-box-shadow: none;
   box-shadow: none;
}

:-moz-placeholder {
   color: #AAAAAA;
   font-weight: 300;
}

::-moz-placeholder {
   color: #AAAAAA;
   opacity: 1;
   font-weight: 300;
}

::-webkit-input-placeholder {
   color: #AAAAAA;
   font-weight: 300;
}

:-ms-input-placeholder {
   color: #AAAAAA;
   font-weight: 300;
}

::-moz-focus-inner {
   border: 0;
   padding: 0;
}
&amp;lt;/style&amp;gt;

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

function loginValidation(){
	
	var userId = $(&quot;#userId&quot;).val();
	var password = $(&quot;#password&quot;).val();
	
	if(!userId){
		alert(&quot;아이디를 입력하세요.&quot;);
		$(&quot;#userId&quot;).focus();
		return false;
	}else if(!password){
		alert(&quot;비밀번호를 입력하세요.&quot;);
		$(&quot;#password&quot;).focus();
		return false;
	}else {
		login(userId,password);
	}
	
}

function login(userId,password){
	
	$.ajax({
		
		url : &quot;/jquery/login&quot;,
		type : 'POST',
		data : { userId : userId, 
				password : password	
		},
		success:function(data){
			if(data == 2){
				alert(&quot;아이디 혹은 비밀번호가 맞지 않습니다.&quot;);
				return false;
			}else if(data == 3){
				location.href=&quot;/view/dashboard&quot;;
			}
		}
		
	})
	
}

function enterKeyCheck(){
	
 if(event.keyCode == 13)
	  {
	 loginValidation();
	  }
	
	
}

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

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

&amp;lt;form class=&quot;signUp&quot; id=&quot;signupForm&quot;&amp;gt;
   &amp;lt;h1 class=&quot;signUpTitle&quot;&amp;gt;로그인&amp;lt;/h1&amp;gt;
   &amp;lt;input type=&quot;text&quot; id=&quot;userId&quot; class=&quot;signUpInput&quot; placeholder=&quot;ID&quot; autofocus onkeyup=&quot;enterKeyCheck()&quot;&amp;gt;
   &amp;lt;input type=&quot;password&quot; id=&quot;password&quot; class=&quot;signUpInput&quot; placeholder=&quot;Password&quot; onkeyup=&quot;enterKeyCheck()&quot;&amp;gt;
   &amp;lt;input type=&quot;button&quot; value=&quot;로그인&quot; onclick=&quot;loginValidation()&quot; class=&quot;loginButton&quot;&amp;gt;
   &amp;lt;input type=&quot;button&quot; value=&quot;회원가입&quot; onclick=&quot;location.href='/user/signUp'&quot; class=&quot;signUpButton&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;p data-ke-size=&quot;size14&quot;&gt;UI 코드 출처 : 블루비 웹스토어&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;b&gt;&lt;span&gt;views -&amp;gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;user 폴더&amp;nbsp;&lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;span&gt; &lt;b&gt;signUp&lt;/b&gt;&lt;/span&gt;.jsp 생성&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;signUp.jsp&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1575802946142&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&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;script src=&quot;https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js&quot;&amp;gt;&amp;lt;/script&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 type=&quot;text/javascript&quot;&amp;gt;

function signUpValidation(){
	
	var userId = $(&quot;#userId&quot;).val();
	var userPw = $(&quot;#password&quot;).val();
	var userPwCheck = $(&quot;#passwordCheck&quot;).val();
	var nickName = $(&quot;#nickname&quot;).val();
	var email = $(&quot;#email&quot;).val();
	
	if(!userId){
		alert(&quot;아이디 입력은 필수입니다.&quot;);
		$(&quot;#userId&quot;).focus();
	}else if(!userPw){
		alert(&quot;비밀번호 입력은 필수입니다.&quot;);
		$(&quot;#password&quot;).focus();
	}else if(!userPwCheck){
		alert(&quot;비밀번호 확인 입력은 필수입니다.&quot;);
		$(&quot;#passwordCheck&quot;).focus();
	}else if(userPw != userPwCheck){
		alert(&quot;비밀번호가 맞지 않습니다.&quot;);
		$(&quot;#userPwCheck&quot;).focus();		
	}else if(!nickName){
		alert(&quot;닉네임 입력은 필수입니다.&quot;);
		$(&quot;#nickname&quot;).focus();
	}else if(!email){
		alert(&quot;이메일 입력은 필수입니다.&quot;);
		$(&quot;#email&quot;).focus();
	}else {
		signUp()
	}
	
}

function signUp(){
	
	$.ajax({
		
		url : &quot;/jquery/signUp&quot;,
		type:'POST',
		data :  $(&quot;#registerform&quot;).serialize(),
		success:function(data){
			if(data == 1){
				alert(&quot;회원가입이 완료됐습니다.^^&quot;);
				location.href = &quot;/user/login&quot;
			}else if(data == 2){
				alert(&quot;이미 존재하는 아이디입니다.&quot;);
				return false;
			}else if(data == 3){
				alert(&quot;이미 존재하는 닉네임입니다.&quot;);
				return false;
			}
		}
		
	})
}

&amp;lt;/script&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body style=&quot;background-color:#f0f5f3&quot;&amp;gt;
&amp;lt;form id=&quot;registerform&quot;&amp;gt;
        &amp;lt;div class=&quot;fieldlabel&quot;&amp;gt;&amp;lt;label for=&quot;userId&quot;&amp;gt;*아이디&amp;lt;/label&amp;gt;&amp;lt;/div&amp;gt;
        &amp;lt;div class=&quot;formfield&quot;&amp;gt;&amp;lt;input type=&quot;text&quot; id=&quot;userId&quot; name=&quot;userId&quot; maxlength=&quot;20&quot; value=&quot;&quot;&amp;gt;&amp;lt;/div&amp;gt;
        
        &amp;lt;div class=&quot;fieldlabel&quot;&amp;gt;&amp;lt;label for=&quot;password&quot;&amp;gt;*패스워드&amp;lt;/label&amp;gt;&amp;lt;/div&amp;gt;
        &amp;lt;div class=&quot;formfield&quot;&amp;gt;
&amp;lt;input type=&quot;password&quot; id=&quot;password&quot; name=&quot;password&quot; maxlength=&quot;20&quot; autocomplete=&quot;off&quot;&amp;gt;
&amp;lt;/div&amp;gt;

        &amp;lt;div class=&quot;fieldlabel&quot;&amp;gt;&amp;lt;label for=&quot;passwordCheck&quot;&amp;gt;패스워드확인&amp;lt;/label&amp;gt;&amp;lt;/div&amp;gt;
        &amp;lt;div class=&quot;formfield&quot;&amp;gt;
        
&amp;lt;input type=&quot;password&quot; id=&quot;passwordCheck&quot; name=&quot;passwordCheck&quot; maxlength=&quot;20&quot; autocomplete=&quot;off&quot;&amp;gt;
&amp;lt;/div&amp;gt;
       
        &amp;lt;div class=&quot;fieldlabel&quot;&amp;gt;&amp;lt;label for=&quot;nickname&quot;&amp;gt;*닉네임&amp;lt;/label&amp;gt;&amp;lt;/div&amp;gt;
        &amp;lt;div class=&quot;formfield&quot;&amp;gt;&amp;lt;input type=&quot;text&quot; id=&quot;nickname&quot; name=&quot;nickname&quot; maxlength=&quot;20&quot; value=&quot;&quot;&amp;gt;&amp;lt;/div&amp;gt;

        &amp;lt;div class=&quot;fieldlabel&quot;&amp;gt;&amp;lt;label for=&quot;email&quot;&amp;gt;*이메일&amp;lt;/label&amp;gt;&amp;lt;/div&amp;gt;
        &amp;lt;div class=&quot;formfield&quot;&amp;gt;&amp;lt;input type=&quot;text&quot; id=&quot;email&quot; name=&quot;email&quot; size=&quot;20&quot; maxlength=&quot;20&quot; 
             value=&quot;&quot; autocomplete=&quot;off&quot;&amp;gt;&amp;lt;span&amp;gt;@&amp;lt;/span&amp;gt;
            &amp;lt;input id=&quot;domain&quot; list=&quot;domains&quot; name=&quot;domain&quot; placeholder=&quot;도메인입력/선택&quot;&amp;gt;
            &amp;lt;datalist id=&quot;domains&quot;&amp;gt;
                &amp;lt;option value=&quot;naver.com&quot;&amp;gt;
                &amp;lt;option value=&quot;daum.net&quot;&amp;gt;
                &amp;lt;option value=&quot;gmail.com&quot;&amp;gt;
                &amp;lt;option value=&quot;yahoo.co.kr&quot;&amp;gt;
            &amp;lt;/datalist&amp;gt;
        &amp;lt;/div&amp;gt;
       
        &amp;lt;div class=&quot;btnfield&quot;&amp;gt;
            &amp;lt;input type=&quot;button&quot; onclick=&quot;signUpValidation()&quot; value=&quot;회원가입&quot;&amp;gt;
        &amp;lt;/div&amp;gt;
    &amp;lt;/form&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;3.유저(members) 회원가입,로그인 백 로직 만들기&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;b&gt;src/main/java -&amp;gt; controller -&amp;gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;UserController.java 수정&lt;/b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;UserController.java&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1575803054207&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;package com.company01.springEx01.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

@Controller
@RequestMapping(&quot;user/*&quot;)
public class UserController {

	
	@RequestMapping(value=&quot;user/login&quot;,method = RequestMethod.GET)
	public ModelAndView login() {
		ModelAndView mav = new ModelAndView();
		return mav;
	}
	
	@RequestMapping(value=&quot;user/signUp&quot;,method = RequestMethod.GET)
	public ModelAndView signUp() {
		ModelAndView mav = new ModelAndView();
		return mav;
	}
	
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;src/main/java -&amp;gt; controller -&amp;gt;&lt;span&gt; Jquery&lt;/span&gt;Controller.java 수정&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;span&gt;Jquery&lt;/span&gt;Controller.java&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1575804026772&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;package com.company01.springEx01.controller;

import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;

import com.company01.springEx01.logic.Board;
import com.company01.springEx01.logic.Members;
import com.company01.springEx01.service.BoardService;
import com.company01.springEx01.service.UserService;

@Controller
@RequestMapping(&quot;jquery/*&quot;)
public class JqueryController {

	@Autowired
	BoardService boardService;
	
	@Autowired
	UserService userService;
	
	@RequestMapping(value=&quot;jquery/boardwrite&quot;,method = RequestMethod.POST)
	@ResponseBody
	public int boardwrite(Board board) {
		int result = 0; 
		result = boardService.boardwrite(board); 
		return result;
	}
	
	@RequestMapping(&quot;jquery/logout&quot;)
	public String logout(HttpSession session) {
		session.removeAttribute(&quot;loginUser&quot;);
		return &quot;/user/login&quot;;
	}
	
	@RequestMapping(value=&quot;jquery/login&quot;,method = RequestMethod.POST)
	@ResponseBody
	public int login(Members members,HttpSession session) {
		int result = 0; 
		String col = null;
		col = &quot;userId&quot;;
		Members userIdCheck = userService.getUserOne(members.getUserId(),col);
		if(userIdCheck == null) {
			result = 2;
		}else {
		
		if(members.getUserId().equals(userIdCheck.getUserId())) {
			//ID OK
			if(members.getPassword().equals(userIdCheck.getPassword())) {
				//PW OK 
				session.setAttribute(&quot;loginUser&quot;, userIdCheck);

				result = 3;
			}else {
				result = 2;
			}
			
		}else {
			//ID not OK
			result = 2;
		}
		}
		
		return result;
	}
	
	@RequestMapping(value=&quot;jquery/signUp&quot;,method = RequestMethod.POST)
	@ResponseBody
	public int signUp(Members members) {
		int result = 0; 
		String col = null;
		
		col = &quot;userId&quot;;
		Members userIdCheck = userService.getUserOne(members.getUserId(),col);
		if(userIdCheck != null) {
		result = 2; 
		}
		
		col = &quot;nickname&quot;;
		Members userNicknameCheck = userService.getUserOne(members.getNickname(),col);
		if(userNicknameCheck != null) { result = 3; }	
		
		if(result &amp;lt; 2) {
		result = userService.userJoin(members);	
		}
		
		
		return result;
	}
	
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;&lt;b&gt;login method &lt;/b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Members userIdCheck = userService.getUserOne(members.getUserId(),col);&lt;/p&gt;
&lt;p&gt;아이디가 존재하는지 입력값을 보내 DB에서 검사합니다.&lt;/p&gt;
&lt;p&gt;존재할 경우&amp;nbsp;&lt;/p&gt;
&lt;p&gt;if(members.getUserId().equals(userIdCheck.getUserId())) { &lt;b&gt;아이디와 DB에 데이터 아이디와 같은지 확인&lt;/b&gt;&lt;br /&gt;//ID&amp;nbsp;OK &lt;br /&gt;if(members.getPassword().equals(userIdCheck.getPassword())) { &lt;b&gt;비밀번호와 DB에 데이터 비밀번호가 같은지 확인&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;b&gt;session.setAttribute(&quot;loginUser&quot;, userIdCheck); &quot;세션&quot;이라는 것에 로그인한 사용자의 정보를 담음&lt;/b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;b&gt;&lt;b&gt;src/main/java -&amp;gt; &lt;/b&gt;services -&amp;gt; UserService.java (interface) 생성&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;b&gt;UserService.java (interface)&lt;/b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1575803155677&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;package com.company01.springEx01.service;

import com.company01.springEx01.logic.Members;

public interface UserService {

	Members getUserOne(String common, String col);

	int userJoin(Members members);

}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;b&gt;src/main/java -&amp;gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;services -&amp;gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;UserServiceImpl.java 생성&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;b&gt;UserServiceImpl.java&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1575803190677&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;package com.company01.springEx01.service;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.company01.springEx01.dao.UserDAO;
import com.company01.springEx01.logic.Members;

@Service
public class UserServiceImpl implements UserService {

	@Autowired
	UserDAO userDAO;

	@Override
	public Members getUserOne(String common,String col) {
		return userDAO.getUserOne(common,col);
	}

	@Override
	public int userJoin(Members members) {
		return userDAO.userJoin(members);
	}
	
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;b&gt;src/main/java -&amp;gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;dao-&amp;gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;UserDAO.java&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;b&gt;UserDAO.java&lt;/b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1575803229070&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;package com.company01.springEx01.dao;

import java.util.HashMap;

import org.apache.ibatis.session.SqlSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import com.company01.springEx01.logic.Members;

@Repository
public class UserDAO {

	@Autowired
	public SqlSession sqlSession;

	public Members getUserOne(String common, String col) {
		HashMap&amp;lt;String, Object&amp;gt; map = new HashMap&amp;lt;String, Object&amp;gt;();
		if(col.equals(&quot;userId&quot;)) {
			map.put(&quot;userId&quot;,common);
		}else if(col.equals(&quot;nickname&quot;)) {
			map.put(&quot;nickname&quot;,common);
		}
		return sqlSession.selectOne(&quot;getUserOne&quot;,map);
	}

	public int userJoin(Members members) {
		return sqlSession.insert(&quot;userJoin&quot;,members);
	}
	
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;src/main/java -&amp;gt;&lt;span&gt; logic &lt;/span&gt;&lt;/b&gt;-&amp;gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Members.java&lt;/b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;Members.java&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;b&gt;&lt;b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1575803400926&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;package com.company01.springEx01.logic;

import java.util.Date;

public class Members {

	private int id;
	private String userId;
	private String password;
	private String nickname;
	private String email;
	private int authority;
	private int declaration;
	private Date last_login;
	private Date create_time;
	private Date update_time;
	
	private String domain;
	
	get../set..
	
	
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;혹시 get/set 설정 모르시는 분들을 위한 설명&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;get/set 만들 클래스를 열은 상태에서 -&amp;gt; 이클립스에서 상단 메뉴 Source -&amp;gt; Generate and Setters... 클릭&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;K-001.png&quot; data-origin-width=&quot;381&quot; data-origin-height=&quot;570&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Bf1GM/btqAjmgXXfG/Vk2b5MTQgclJONF1k8ANq0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Bf1GM/btqAjmgXXfG/Vk2b5MTQgclJONF1k8ANq0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Bf1GM/btqAjmgXXfG/Vk2b5MTQgclJONF1k8ANq0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBf1GM%2FbtqAjmgXXfG%2FVk2b5MTQgclJONF1k8ANq0%2Fimg.png&quot; data-filename=&quot;K-001.png&quot; data-origin-width=&quot;381&quot; data-origin-height=&quot;570&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Select All 버튼 클릭 -&amp;gt; Generate&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;K-003.png&quot; data-origin-width=&quot;527&quot; data-origin-height=&quot;685&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/RCUaI/btqAjMzHwPU/Fj8A1WSEOVBNN7oKORW3ik/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/RCUaI/btqAjMzHwPU/Fj8A1WSEOVBNN7oKORW3ik/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/RCUaI/btqAjMzHwPU/Fj8A1WSEOVBNN7oKORW3ik/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRCUaI%2FbtqAjMzHwPU%2FFj8A1WSEOVBNN7oKORW3ik%2Fimg.png&quot; data-filename=&quot;K-003.png&quot; data-origin-width=&quot;527&quot; data-origin-height=&quot;685&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;src/main/resources -&amp;gt; mapper 폴더 -&amp;gt; user-Mapper.xml 생성&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;b&gt;user-Mapper.xml&lt;/b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1575803326910&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&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;!DOCTYPE mapper PUBLIC &quot;-//mybatis.org//DTD Mapper 3.0//EN&quot; &quot;http://mybatis.org/dtd/mybatis-3-mapper.dtd&quot;&amp;gt;
&amp;lt;mapper namespace=&quot;mapper.user-Mapper&quot;&amp;gt;

&amp;lt;select id=&quot;getUserOne&quot; resultType=&quot;members&quot;&amp;gt;
SELECT * FROM members 
&amp;lt;if test=&quot;userId != null&quot;&amp;gt;
where userId = #{userId};
&amp;lt;/if&amp;gt;
&amp;lt;if test=&quot;nickname != null&quot;&amp;gt;
where nickname = #{nickname};
&amp;lt;/if&amp;gt;
&amp;lt;/select&amp;gt;

&amp;lt;insert id=&quot;userJoin&quot;&amp;gt;
insert into members (id,userId,password,nickname,email,authority,last_login,create_time,update_time)
values (#{id},#{userId},#{password},#{nickname},#{email},1,#{last_login},now(),#{update_time})
&amp;lt;/insert&amp;gt;

&amp;lt;/mapper&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;spring -&amp;gt; mybatis 폴더 -&amp;gt; mybatis-config.xml 수정&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;mybatis-config.xml&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1575803924903&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&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;!DOCTYPE configuration PUBLIC &quot;-//mybatis.org//DTD Config 3.0//EN&quot; &quot;http://mybatis.org/dtd/mybatis-3-config.dtd&quot;&amp;gt;
&amp;lt;configuration&amp;gt;
    &amp;lt;typeAliases&amp;gt;
        &amp;lt;typeAlias alias=&quot;board&quot; type=&quot;com.company01.springEx01.logic.Board&quot;/&amp;gt;
        &amp;lt;typeAlias alias=&quot;members&quot; type=&quot;com.company01.springEx01.logic.Members&quot;/&amp;gt;
    &amp;lt;/typeAliases&amp;gt;

    &amp;lt;mappers&amp;gt;
        &amp;lt;mapper resource=&quot;mapper/board-Mapper.xml&quot;/&amp;gt;
        &amp;lt;mapper resource=&quot;mapper/user-Mapper.xml&quot;/&amp;gt;
    &amp;lt;/mappers&amp;gt;
&amp;lt;/configuration&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;views -&amp;gt; view -&amp;gt; dashboard.jsp 수정&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;dashboard.jsp&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1575804243812&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&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;%@ include file=&quot;/WEB-INF/views/jstlHeader.jsp&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;dashboard&amp;lt;/title&amp;gt;
&amp;lt;style&amp;gt;
  table {
    width: 100%;
    border: 1px solid #444444;
  }
  th, td {
    border: 1px solid #444444;
  }
&amp;lt;/style&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
&amp;lt;p&amp;gt;환영합니다 ${sessionScope.loginUser.nickname }님 &amp;lt;a href=&quot;/jquery/logout&quot;&amp;gt;로그아웃&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;
&amp;lt;p&amp;gt;dashboard&amp;lt;/p&amp;gt;
&amp;lt;div&amp;gt;게시글 리스트&amp;lt;/div&amp;gt;
&amp;lt;table&amp;gt;
&amp;lt;thead&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;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;/td&amp;gt;
&amp;lt;/tr&amp;gt;&amp;lt;/thead&amp;gt;

&amp;lt;c:forEach var=&quot;b&quot; items=&quot;${result }&quot;&amp;gt;
&amp;lt;fmt:formatDate value=&quot;${b.create_time}&quot; pattern=&quot;yyyy-MM-dd HH:MM:ss&quot; var=&quot;dateFormat_cr&quot;/&amp;gt;
&amp;lt;tr&amp;gt;
&amp;lt;td&amp;gt;&amp;lt;a href=&quot;/view/boardDetail?id=${b.id }&quot;&amp;gt;${b.subject }&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;
&amp;lt;td&amp;gt;${b.views }&amp;lt;/td&amp;gt;
&amp;lt;td&amp;gt;${b.likes }&amp;lt;/td&amp;gt;
&amp;lt;td&amp;gt;${b.attachments }&amp;lt;/td&amp;gt;
&amp;lt;td&amp;gt;${dateFormat_cr }&amp;lt;/td&amp;gt;
&amp;lt;/tr&amp;gt;
&amp;lt;/c:forEach&amp;gt;
&amp;lt;/table&amp;gt;
&amp;lt;div&amp;gt; &amp;lt;a href=&quot;/view/boardwrite&quot;&amp;gt;글 작성하기&amp;lt;/a&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;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;${sessionScope.loginUser.nickname} &quot;세션&quot;에 담긴 닉네임 정보가 잘 나왔나 확인하는 작업&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;정리&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;1.signUp.jsp - 회원가입 페이지 뷰&lt;/p&gt;
&lt;p&gt;-signUp Method POST 회원가입 사용자 등록 메서드&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;2.login - 로그인 페이지 뷰&lt;/p&gt;
&lt;p&gt;-login Method POST 로그인 성공/실패 여부&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;3.logout Method - 세션에 담긴 로그인 정보를 삭제함으로써 로그아웃 기능을 제공함.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;이제 감 잡으신 분들도 있겠지만 이 방식만 외우세요!&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;1.jsp 데이터 넘기거나 조회 (request or response)&lt;/p&gt;
&lt;p&gt;2.Controller에서 받음&lt;/p&gt;
&lt;p&gt;3.Controller에서 Service에게 요청&lt;/p&gt;
&lt;p&gt;4.ServiceImpl이 받음&lt;/p&gt;
&lt;p&gt;5.DAO가 받음&lt;/p&gt;
&lt;p&gt;6.DAO가 DB에게 데이터 요청&lt;/p&gt;
&lt;p&gt;7. 다시 리턴~jsp까지 전달&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;8. 설정은 XML 파일이 한다. 인식해주는 것, 새로운 것을 등록하는 것, 뭔가 바꿔주는 것&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;어떠한 기능이든 이 방식을 따릅니다. 그 과정이 복잡해지는 거지 그 방식은 똑같습니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;b&gt;페이지 뷰&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;b&gt;로그인&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;4.PNG&quot; data-origin-width=&quot;1005&quot; data-origin-height=&quot;598&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bT52iQ/btqAjmgYnY4/hDzjk3SeXRn7r4dENPwy80/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bT52iQ/btqAjmgYnY4/hDzjk3SeXRn7r4dENPwy80/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bT52iQ/btqAjmgYnY4/hDzjk3SeXRn7r4dENPwy80/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbT52iQ%2FbtqAjmgYnY4%2FhDzjk3SeXRn7r4dENPwy80%2Fimg.png&quot; data-filename=&quot;4.PNG&quot; data-origin-width=&quot;1005&quot; data-origin-height=&quot;598&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;회원가입&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;5.PNG&quot; data-origin-width=&quot;409&quot; data-origin-height=&quot;293&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tuDf2/btqAjnGWlUv/hkwGAJrDGSW4VtiPZnNRuk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tuDf2/btqAjnGWlUv/hkwGAJrDGSW4VtiPZnNRuk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tuDf2/btqAjnGWlUv/hkwGAJrDGSW4VtiPZnNRuk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtuDf2%2FbtqAjnGWlUv%2FhkwGAJrDGSW4VtiPZnNRuk%2Fimg.png&quot; data-filename=&quot;5.PNG&quot; data-origin-width=&quot;409&quot; data-origin-height=&quot;293&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;대시보드(수정)&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;6.PNG&quot; data-origin-width=&quot;287&quot; data-origin-height=&quot;235&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/JPNVW/btqAiy3sIYJ/jawHlqY24CQZoWFMjavEM0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JPNVW/btqAiy3sIYJ/jawHlqY24CQZoWFMjavEM0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JPNVW/btqAiy3sIYJ/jawHlqY24CQZoWFMjavEM0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJPNVW%2FbtqAiy3sIYJ%2FjawHlqY24CQZoWFMjavEM0%2Fimg.png&quot; data-filename=&quot;6.PNG&quot; data-origin-width=&quot;287&quot; data-origin-height=&quot;235&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;UI가 뒤죽박죽인 건 나중에 부트스트랩+sitemash을 이용해 다시 작업할 것입니다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;다음 글은 로그인을 만들었으니 게시판 글쓴이,신고 등 유저+게시판을 이용한 작업을 진행하겠습니다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;최종 Project Explorer&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;7.PNG&quot; data-origin-width=&quot;357&quot; data-origin-height=&quot;890&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/psYdJ/btqAja8T7gr/3fKnONFpsWAJrJBhqbtDLk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/psYdJ/btqAja8T7gr/3fKnONFpsWAJrJBhqbtDLk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/psYdJ/btqAja8T7gr/3fKnONFpsWAJrJBhqbtDLk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpsYdJ%2FbtqAja8T7gr%2F3fKnONFpsWAJrJBhqbtDLk%2Fimg.png&quot; data-filename=&quot;7.PNG&quot; data-origin-width=&quot;357&quot; data-origin-height=&quot;890&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;8.PNG&quot; data-origin-width=&quot;283&quot; data-origin-height=&quot;331&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/F9ryv/btqAhWKjrqT/OD5ZUPRUkqvXG9rdjsgvv1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/F9ryv/btqAhWKjrqT/OD5ZUPRUkqvXG9rdjsgvv1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/F9ryv/btqAhWKjrqT/OD5ZUPRUkqvXG9rdjsgvv1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FF9ryv%2FbtqAhWKjrqT%2FOD5ZUPRUkqvXG9rdjsgvv1%2Fimg.png&quot; data-filename=&quot;8.PNG&quot; data-origin-width=&quot;283&quot; data-origin-height=&quot;331&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;이제 길어져서 한 번에 못 찍네요...&lt;/p&gt;</description>
      <category>Spring/커뮤니티(블로그) 프로젝트</category>
      <category>Spring DB insert</category>
      <category>Spring mvc 로그인 기능</category>
      <category>Spring mvc 회원가입</category>
      <category>Spring 로그인 구현</category>
      <category>Spring 로그인 로그아웃</category>
      <category>Spring 유효성 검사</category>
      <category>Spring 회원가입</category>
      <category>Spring 회원가입 로그인 로그아웃 구현하기</category>
      <author>.java</author>
      <guid isPermaLink="true">https://java119.tistory.com/69</guid>
      <comments>https://java119.tistory.com/69#entry69comment</comments>
      <pubDate>Sun, 8 Dec 2019 20:39:57 +0900</pubDate>
    </item>
    <item>
      <title>[Eclipse] Git(깃),GitLab(깃 랩),GitHub(깃허브) 연동,연결 하기</title>
      <link>https://java119.tistory.com/68</link>
      <description>&lt;p&gt;오늘은 이클립스(Eclipse) Git(깃),GitLab(깃 랩),GitHub(깃허브) 연동하기/프로젝트 내려받기를 해보겠습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;선행&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;1.&lt;/span&gt;&lt;span&gt;Gitlab or GitHub&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;repository &lt;/span&gt;&lt;span&gt;만들기&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;2.Gitlab or GitHub repository&lt;/span&gt;&lt;span&gt;에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프로젝트&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;import&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;해놓기&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;3.&lt;span style=&quot;color: #333333;&quot;&gt;Gitlab or GitHub URL 알아놓기&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;K-020.png&quot; data-origin-width=&quot;394&quot; data-origin-height=&quot;239&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/XkHzz/btqAhd5JXQ2/dzsXQqfkxYYvGqFSINW4O1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/XkHzz/btqAhd5JXQ2/dzsXQqfkxYYvGqFSINW4O1/img.png&quot; data-alt=&quot;gitlab URL Clone&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/XkHzz/btqAhd5JXQ2/dzsXQqfkxYYvGqFSINW4O1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXkHzz%2FbtqAhd5JXQ2%2FdzsXQqfkxYYvGqFSINW4O1%2Fimg.png&quot; data-filename=&quot;K-020.png&quot; data-origin-width=&quot;394&quot; data-origin-height=&quot;239&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;/&gt;&lt;/span&gt;&lt;figcaption&gt;gitlab URL Clone&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;환경&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1575619119262&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;OS : Windows 10 Home
Eclipse 4.10.0
EGit 5.5.1&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;자기 이클립스 버전(Version) 확인&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;&lt;b&gt;이클립스 상단 메뉴 -&amp;gt; &lt;/b&gt;Help -&amp;gt; About Eclipse&lt;/b&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;span&gt; -&lt;b&gt;&amp;gt; Version 확인&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;그럼 본격적으로 이클립스 깃 연동 시작합니다.&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;1.EGit 다운로드&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;b&gt;이클립스 상단 메뉴 -&amp;gt; Help -&amp;gt; Eclipse Markplace&amp;hellip; -&amp;gt; egit 검색 -&amp;gt; download&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;K-014.png&quot; data-origin-width=&quot;510&quot; data-origin-height=&quot;330&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/s65ZH/btqAhVKg995/6kggvpqHharMPSmpf2hBK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/s65ZH/btqAhVKg995/6kggvpqHharMPSmpf2hBK0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/s65ZH/btqAhVKg995/6kggvpqHharMPSmpf2hBK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fs65ZH%2FbtqAhVKg995%2F6kggvpqHharMPSmpf2hBK0%2Fimg.png&quot; data-filename=&quot;K-014.png&quot; data-origin-width=&quot;510&quot; data-origin-height=&quot;330&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;저는 이미 다운로드하여 Installed라고 뜹니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;span&gt;이제&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다운로드&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;받고나면&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;b&gt;이클립스 상단 메뉴 -&amp;gt; &lt;/b&gt;Window -&amp;gt; Show View -&amp;gt; Other.. -&amp;gt; Git -&amp;gt; Git Repositories&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;K-019.png&quot; data-origin-width=&quot;1372&quot; data-origin-height=&quot;30&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cfIHh1/btqAgFVUPSp/qXB9YYUQi50O7Qk9IgRw11/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cfIHh1/btqAgFVUPSp/qXB9YYUQi50O7Qk9IgRw11/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cfIHh1/btqAgFVUPSp/qXB9YYUQi50O7Qk9IgRw11/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcfIHh1%2FbtqAgFVUPSp%2FqXB9YYUQi50O7Qk9IgRw11%2Fimg.png&quot; data-filename=&quot;K-019.png&quot; data-origin-width=&quot;1372&quot; data-origin-height=&quot;30&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;즐겨찾기 하단 메뉴에 뜨게 하는 방법입니다.&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;2.GitLab or GitHub URL 등록하기&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;b&gt;이클립스 하단 즐겨찾기 메뉴 -&amp;gt; Git Repositories 탭 우측 -&amp;gt; 초록색 화살표 모양 아이콘 클릭(Clone Git Repository)&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-filename=&quot;K-015.png&quot; data-origin-width=&quot;181&quot; data-origin-height=&quot;52&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bswFc0/btqAhVcuDI6/mNos70QZuRuaJSKBb43RNK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bswFc0/btqAhVcuDI6/mNos70QZuRuaJSKBb43RNK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bswFc0/btqAhVcuDI6/mNos70QZuRuaJSKBb43RNK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbswFc0%2FbtqAhVcuDI6%2FmNos70QZuRuaJSKBb43RNK%2Fimg.png&quot; data-filename=&quot;K-015.png&quot; data-origin-width=&quot;181&quot; data-origin-height=&quot;52&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;/&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;style6&quot; /&gt;
&lt;p&gt;저 아이콘을 누르면 이 창이 뜨게 되는데요, 아까 복사해놨던 GitHub URL를 URL 칸에 넣어줍니다.&lt;/p&gt;
&lt;p&gt;그럼 다른 창들이 알아서 채워지게 됩니다. 그리고 Next &amp;gt; 클릭&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;K-021.png&quot; data-origin-width=&quot;515&quot; data-origin-height=&quot;539&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Fv3ZZ/btqAhd5K1TA/AFz7kZkcAKY4mwnT8PZnCK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Fv3ZZ/btqAhd5K1TA/AFz7kZkcAKY4mwnT8PZnCK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Fv3ZZ/btqAhd5K1TA/AFz7kZkcAKY4mwnT8PZnCK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFv3ZZ%2FbtqAhd5K1TA%2FAFz7kZkcAKY4mwnT8PZnCK%2Fimg.png&quot; data-filename=&quot;K-021.png&quot; data-origin-width=&quot;515&quot; data-origin-height=&quot;539&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;보통은 master만 존재할 겁니다.&lt;/b&gt; 저는 원래 진행하던 토이 프로젝트라 브랜치가 많습니다.&lt;/p&gt;
&lt;p&gt;자기가 가져올 브랜치들 체크 후 Next &amp;gt; 클릭&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;K-022.png&quot; data-origin-width=&quot;515&quot; data-origin-height=&quot;539&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/k6Mit/btqAfl4OVQe/sKnLtJFbupslZ8csYZPx4k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/k6Mit/btqAfl4OVQe/sKnLtJFbupslZ8csYZPx4k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/k6Mit/btqAfl4OVQe/sKnLtJFbupslZ8csYZPx4k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fk6Mit%2FbtqAfl4OVQe%2FsKnLtJFbupslZ8csYZPx4k%2Fimg.png&quot; data-filename=&quot;K-022.png&quot; data-origin-width=&quot;515&quot; data-origin-height=&quot;539&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;이제 Local에 Git 저장소를 만들어야 합니다. 개념은 다 아시겠죠?&lt;/p&gt;
&lt;p&gt;지금 만드는 건 Remote repo를 Local repo에 넣겠다는 거고, 넣을 곳을 지정해라 이겁니다.&lt;/p&gt;
&lt;p&gt;지정 후 Finish 버튼 클릭&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;K-023.png&quot; data-origin-width=&quot;515&quot; data-origin-height=&quot;539&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/daJfGZ/btqAhdLtbfR/FVGVHhm2Dnl9HHGUqhJzh1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/daJfGZ/btqAhdLtbfR/FVGVHhm2Dnl9HHGUqhJzh1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/daJfGZ/btqAhdLtbfR/FVGVHhm2Dnl9HHGUqhJzh1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdaJfGZ%2FbtqAhdLtbfR%2FFVGVHhm2Dnl9HHGUqhJzh1%2Fimg.png&quot; data-filename=&quot;K-023.png&quot; data-origin-width=&quot;515&quot; data-origin-height=&quot;539&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Finish 하고 Git Repositories 탭 선택 후 Local Git 확인&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;K-024.png&quot; data-origin-width=&quot;523&quot; data-origin-height=&quot;91&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/PzFuy/btqAgEit6nM/zk9z5TvrAdYpbUAMSk7dak/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/PzFuy/btqAgEit6nM/zk9z5TvrAdYpbUAMSk7dak/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/PzFuy/btqAgEit6nM/zk9z5TvrAdYpbUAMSk7dak/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPzFuy%2FbtqAgEit6nM%2Fzk9z5TvrAdYpbUAMSk7dak%2Fimg.png&quot; data-filename=&quot;K-024.png&quot; data-origin-width=&quot;523&quot; data-origin-height=&quot;91&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;파일이나 폴더 이름을 가려 가독성을 떨어뜨린 점 죄송합니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;3.GitLab or GitHub Repository 프로젝트와 연결하여 내려받기&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;b&gt;Local Git 선택 후 마우스 우클릭 -&amp;gt; Import Projects... 클릭&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;K-025.png&quot; data-origin-width=&quot;523&quot; data-origin-height=&quot;470&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CvEUk/btqAiWaWsmZ/piX1HkvDGwjp0wg31acaWK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CvEUk/btqAiWaWsmZ/piX1HkvDGwjp0wg31acaWK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CvEUk/btqAiWaWsmZ/piX1HkvDGwjp0wg31acaWK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCvEUk%2FbtqAiWaWsmZ%2FpiX1HkvDGwjp0wg31acaWK%2Fimg.png&quot; data-filename=&quot;K-025.png&quot; data-origin-width=&quot;523&quot; data-origin-height=&quot;470&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;바로 &lt;b&gt;Finish&lt;/b&gt; 눌러줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;1.PNG&quot; data-origin-width=&quot;878&quot; data-origin-height=&quot;625&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/AURlN/btqAhWCvZXo/Kip5VaXMn09Bq9jrk20jYK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/AURlN/btqAhWCvZXo/Kip5VaXMn09Bq9jrk20jYK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/AURlN/btqAhWCvZXo/Kip5VaXMn09Bq9jrk20jYK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAURlN%2FbtqAhWCvZXo%2FKip5VaXMn09Bq9jrk20jYK%2Fimg.png&quot; data-filename=&quot;1.PNG&quot; data-origin-width=&quot;878&quot; data-origin-height=&quot;625&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;최종 확인&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;이렇게 프로젝트에 조그마한 git 원통이 보이면 잘 내려받아진 겁니다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-filename=&quot;2.PNG&quot; data-origin-width=&quot;164&quot; data-origin-height=&quot;22&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sk2wH/btqAfSgYXt5/0sKA7JY06caSS4ktbYlOkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sk2wH/btqAfSgYXt5/0sKA7JY06caSS4ktbYlOkk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sk2wH/btqAfSgYXt5/0sKA7JY06caSS4ktbYlOkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fsk2wH%2FbtqAfSgYXt5%2F0sKA7JY06caSS4ktbYlOkk%2Fimg.png&quot; data-filename=&quot;2.PNG&quot; data-origin-width=&quot;164&quot; data-origin-height=&quot;22&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;/&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;style6&quot; /&gt;
&lt;p&gt;&lt;b&gt;다음부턴 Test Git으로 글 포스팅하겠습니다. 프로젝트 명을 다 가려서 정말 죄송하고, &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;다음 Eclipse로 Commit, Merge, Push 등을 다루겠습니다.&lt;/b&gt;&lt;/p&gt;</description>
      <category>IDE</category>
      <category>eclipse egit</category>
      <category>Eclipse git connect</category>
      <category>Eclipse git 연동</category>
      <category>eclipse github</category>
      <category>Eclipse github 내려받기 연결하기</category>
      <category>eclipse gitlab</category>
      <category>gitlab github</category>
      <category>이클립스 Git 연동</category>
      <category>이클립스 깃 연동하기</category>
      <category>이클립스 깃허브 내려받기</category>
      <author>.java</author>
      <guid isPermaLink="true">https://java119.tistory.com/68</guid>
      <comments>https://java119.tistory.com/68#entry68comment</comments>
      <pubDate>Fri, 6 Dec 2019 17:34:58 +0900</pubDate>
    </item>
    <item>
      <title>[IT용어] SOP(Same-Origin Policy),CORS(Cross Origin Resource Sharing)란?</title>
      <link>https://java119.tistory.com/67</link>
      <description>&lt;h2&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;SOP(동일 출처 정책(Same-Origin Policy))&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;개념&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;span&gt;개념을&lt;/span&gt;&lt;span&gt; 알기전 &lt;/span&gt;&lt;span&gt;먼저&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;ajax&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다른&lt;/span&gt;&lt;span&gt; 도메인서버의 &lt;/span&gt;&lt;span&gt;자원을&lt;/span&gt;&lt;span&gt; 요청 할 &lt;/span&gt;&lt;span&gt;경우&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이와&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;같은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;에러를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;만나게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;다른&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;페이지가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;아니라&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다른&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;도메인입니다&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;도메인&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;www.a.com&lt;/span&gt;&lt;span&gt; 자원요청 &lt;/span&gt;&lt;span&gt;-&amp;gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;www.b.com&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;chrome&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;크롬&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1575342145164&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;No 'Access-Control-Allow-Origin' header is present on the requested resource. 
Origin &amp;lsquo;www.b.com' is therefore not allowed access.&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;FireFox(&lt;/span&gt;&lt;span&gt;파이어폭스&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1575342164420&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;교차 원본 요청 차단: 동일 출처 정책으로 인해 'www.b.com'에 있는 원격 자원을 읽을 수 없습니다. 
자원을 같은 도메인으로 이동시키거나 CORS를 활성화하여 해결할 수 있습니다.&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;외부로 요청이 안 되는 것은 &lt;b&gt;자바스크립트 엔진 표준 스펙에 동일 출처 정책(same-origin policy)&lt;/b&gt;이라는 보안 규칙이 존재하기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때문이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;자바스크립트&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;엔진&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;표준&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;스펙&lt;/span&gt;&lt;span&gt;? &lt;/span&gt;&lt;span&gt;그럼&lt;/span&gt;&lt;span&gt; &amp;lt;&lt;/span&gt;&lt;span&gt;script&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;안에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있는&lt;/span&gt;&lt;span&gt; 것말고&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;다른&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;도메인&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;서버의&lt;/span&gt;&lt;span&gt; &amp;lt;&lt;/span&gt;&lt;span&gt;img&amp;gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;파일이나&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;css&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;파일을&lt;/span&gt;&lt;span&gt; 가져 올 &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것인가&lt;/span&gt;&lt;span&gt;?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;정답은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;맞습니다&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;lt;script&amp;gt;&amp;lt;/script&amp;gt; &lt;/span&gt;&lt;span&gt;안에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;스크립트로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;둘러&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;쌓인걸&lt;/span&gt;&lt;span&gt; &quot;&lt;/span&gt;&lt;b&gt;&lt;span&gt;C&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;ross-Site HTTP Requests&lt;/b&gt;&quot; 라고 &lt;/span&gt;&lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;바로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;그것이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자바스크립트&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;엔진&lt;/span&gt;&lt;span&gt; 표준스펙에 &lt;/span&gt;&lt;span&gt;존재하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;뭐다&lt;/span&gt;&lt;span&gt;?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;동일 출처 정책(same-origin policy)&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;우리에겐&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;아주&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;못된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;악역이지만&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;역시&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;탄생&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;배경이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;존재합니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;사용 이유&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;span&gt;예를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;들어&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정책이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;없다는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것은&lt;/span&gt;&lt;span&gt;? &lt;/span&gt;&lt;span&gt;그냥&lt;/span&gt;&lt;span&gt; 아무나,누구나 &lt;/span&gt;&lt;span&gt;내&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;도메인&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;서버에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;와서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자원을&lt;/span&gt;&lt;span&gt; 가져 갈 &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것이다&lt;/span&gt;&lt;span&gt;. 그렇다는건 &lt;/span&gt;&lt;span&gt;비밀번호를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가로채는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;스크립트를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;만들어 &lt;/span&gt;&lt;span&gt;자원을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;쉽게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;빼&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;갈&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;뜻이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;한마디로 보안에 취약하다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;조건&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;b&gt;프로토콜, 호스트명, 포트가&lt;/b&gt;&lt;span&gt;같아야만&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자원을&lt;/span&gt;&lt;span&gt; 주고 받을 &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1575342487268&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;www.a.com -&amp;gt; www.a.com/a1 O

www.a.com/a1 -&amp;gt; www.a.com/a2 O



www.a.com -&amp;gt; www.b.com X

www.a.com/a1 -&amp;gt; www.b.com X&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;하지만&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;우리는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;ajax&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이용한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;rest api&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;서비스를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;굉장히&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;많이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용하기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때문에&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;꼭&lt;/span&gt;&lt;span&gt; same-origin policy&lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;부시고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;CORS&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; 허용 해줘야한다.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;CORS(교차 출처 자원 공유(Cross Origin Resource Sharing))&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;개념&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;웹 브라우저에서 외부 도메인 서버와 통신하기 위한 방식을 표준화한 스펙이다. 서버와 클라이언트가 정해진 해더를 통해 서로 요청이나 응답에 반응할지 결정하는 방식으로 교차 출처 자원 공유(cross-origin resource sharing)라는 이름으로 표준화가 되었다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot;&gt;&lt;b&gt;&lt;span&gt;한마디로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Cross-Site Http Request를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가능하게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;해주는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;표준&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;규약&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;종류&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;&lt;span&gt;Simple Request&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;&lt;span&gt;Preflight Request&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;&lt;span&gt;Credential Request&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;&lt;span&gt;Non-Credential Request&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot;&gt;&lt;b&gt;&lt;span&gt;Simple Request&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;span&gt;이는 다음 3가지를 만족해야 &lt;/span&gt;&lt;span&gt;합니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;1. GET, HEAD, POST 중 한 가지 방식을 사용&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;2. POST일 경우 Content-type이 아래 셋 중 하나를 만족&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;- application/x-www-form-urlencoded&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;- multipart/form-data&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;- text/plain&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;3. 커스텀 헤더를 전송하지 않아야 함&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot;&gt;&lt;b&gt;&lt;span&gt;Preflight Request&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;span&gt;이름에서 볼 수 있는 것처럼&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;Preflight(예비)&lt;/span&gt;&lt;span&gt;&amp;nbsp;요청을 먼저 보내고 서버가 이에&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;응답이 가능한 지 확인합니다. 예비 요청은 OPTION메서드로 HTTP 요청을&amp;nbsp;전송합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;이후 실제&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;Actual(본)&lt;/span&gt;&lt;span&gt;&amp;nbsp;요청을 보냅니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;그리고 서버가 이에 응답하며 통신하는 형태이죠.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Preflight Request는 위의 Simple Request에 해당하는 조건에 만족하면 안돼요.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;그렇기에 GET, HEAD, POST 이외 메서드를 사용하는 경우에만 사용 가능한 요청입니다&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;만약 POST 요청을 사용할 경우에는 Content Type이 위의 3가지 경우가 아니거나&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;application/json&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;또는 커스텀 헤더를 사용할 경우에 사용할 수 있다는 점을 기억해야 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;예비 요청과 예비 응답, 본 요청과 본 응답 총 4번의 형태로 구성되어 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;순서&lt;/span&gt;&lt;/b&gt;&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Client &lt;/span&gt;&lt;span&gt;예비&lt;/span&gt;&lt;span&gt;(method = OPTIONS) &lt;/span&gt;&lt;span&gt;전송&lt;/span&gt;&lt;span&gt;-&amp;gt; &lt;/span&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;OPTIONS&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;확인하고&lt;/span&gt;&lt;span&gt; 서버쪽 &lt;/span&gt;&lt;span&gt;CORS&lt;/span&gt;&lt;span&gt;가&lt;/span&gt;&lt;span&gt; 허용 돼있으면 &lt;/span&gt;&lt;span&gt;요청에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;답함&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;(그렇지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않으면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;405 Method Not Allowed&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;HTTP&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;반환)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot;&gt;&lt;b&gt;&lt;span&gt;Credential&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;span&gt;HTTP Cookie와 HTTP Authentication 정보를 인식할 수 있게 해주는 요청&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;요청 시 xhr.withCredentials = true를 지정하는 것이 가장 큰 특징&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Access-Control-Allow-Credentials: true&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;만약 위의 설정이 false라면? 브라우저는 이 요청을 거부할 것입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot;&gt;&lt;b&gt;&lt;span&gt;Non-Credential&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;사실 withCredentials 플래그는 디폴트 값이 false입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;그러니 위의 Credential 요청에서와 같이 처리해주지 않는다면 모든 요청이 바로&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Non-Credential에 해당된다고 볼 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;방식&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;1.&lt;/span&gt;&lt;span&gt;jsonp&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;방식&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;위에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설명했듯이&lt;/span&gt;&lt;span&gt; css,img,js &lt;/span&gt;&lt;span&gt;파일은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;동일&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;출처&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정책에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;걸리지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않는다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;그러므로&lt;/span&gt;&lt;span&gt; &amp;lt;&lt;/span&gt;&lt;span&gt;script&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;스크립트를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;json&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;형식으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;후&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;읽어오는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;방법&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;하지만&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;GET&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;방식만&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;요청이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가능하다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;2. 웹&lt;span&gt;브라우저&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;외부&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;요청&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;허용&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;옵션&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;-disable-web-security 옵션을 추가하여 크롬 실행&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;1,2&lt;/span&gt;&lt;span&gt;번은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;추천하지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않습니다&lt;/span&gt;&lt;span&gt;. 2&lt;/span&gt;&lt;span&gt;번은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;더더욱&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;일반&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용자들에게&lt;/span&gt;&lt;span&gt; -disable-web-security &lt;/span&gt;&lt;span&gt;옵션을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;써서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;브라우저를&lt;/span&gt;&lt;span&gt; 실행 시키라고 &lt;/span&gt;&lt;span&gt;하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;말도&lt;/span&gt;&lt;span&gt; 안되죠&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot;&gt;&lt;b&gt;&lt;span&gt;3.&lt;/span&gt;&lt;span&gt;CORS &lt;span style=&quot;color: #333333;&quot;&gt;요청&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;핸들링&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1575342740761&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Access-Control-Allow-Origin: *

Access-Control-Allow-Methods: GET,POST,PUT,DELETE,OPTIONS

Access-Control-Max-Age: 3600

Access-Control-Allow-Headers: Origin,Accept,X-Requested-With,Content-Type,Access-Control-Request-Method,Access-Control-Request-Headers,Authorization&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;간단&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설명&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;&lt;span&gt;&lt;b&gt;Request headers&lt;/b&gt; (클라이언트의 요청 해더) &amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;&lt;b&gt;&lt;span&gt;Origin:&lt;/span&gt;&amp;nbsp;&lt;/b&gt;요청을 보내는 페이지의 출처(도메인)&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;&lt;b&gt;&lt;span&gt;Access-Control-Request-Method&lt;/span&gt;:&lt;/b&gt; 실제 요청하려는 메서드&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;&lt;b&gt;&lt;span&gt;Access-Control-Request-Headers&lt;/span&gt;:&lt;/b&gt; 실제 요청에 포함되어 있는 &amp;nbsp;해더 이름&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;&lt;span&gt;&lt;b&gt;Response headers&lt;/b&gt; (서버에서의 응답 해더)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;&lt;b&gt;&lt;span&gt;Access-Control-Allow-Origin:&lt;/span&gt;&lt;/b&gt;&amp;nbsp;요청을 허용하는 출처. * 이면 모든 곳에 공개되어 있음을 의미한다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;&lt;b&gt;&lt;span&gt;Access-Control-Allow-Credentials&lt;/span&gt;:&lt;/b&gt; 클라이언트 요청이 쿠키를 통해서 자격 증명을 해야 하는 경우에 true. true를 응답받은&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;클라이언트는 실제 요청 시 서버에서 정의된 규격의 인증값이 담긴 쿠키를 같이 보내야 한다.&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;&lt;b&gt;&lt;span&gt;Access-Control-Expose-Headers:&lt;/span&gt;&lt;/b&gt;&amp;nbsp;클라이언트 요청에 포함되어도 되는 사용자 정의 해더.&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;&lt;b&gt;&lt;span&gt;Access-Control-Max-Age:&lt;/span&gt;&amp;nbsp;&lt;/b&gt;클라이언트에서 preflight의 요청 결과를 저장할 기간을 지정.&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;클라이언트에서 preflight 요청의 결과를 저장하고 있을 시간이다. 해당 시간 동안은 preflight요청을 다시 하지 않게 된다.&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;&lt;b&gt;&lt;span&gt;Access-Control-Allow-Methods:&lt;/span&gt;&amp;nbsp;&lt;/b&gt;요청을 허용하는 메서드. 기본값은 GET, POST라고 보면 된다.&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;이 해더가 없으면 GET과 POST 요청만 가능하다. 만약 이&amp;nbsp;해더가 지정이 되어 있으면,&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;클라이언트에서는 해더 값에 해당하는 메서드일 경우에만 실제 요청을 시도하게 된다.&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;&lt;b&gt;&lt;span&gt;Access-Control-Allow-Headers:&lt;/span&gt;&amp;nbsp;&lt;/b&gt;요청을 허용하는 해더.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;&lt;span&gt;조건&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;span&gt;Client&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Access-Control-Allow-Origin 허용 해줘야하고,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Server&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Access-Control-Allow-Origin 허용 해줘한다&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;한마디로 Client-Server 양쪽 모두 허용해줘야 통신이 가능하다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.81em;&quot;&gt;&lt;span&gt;저는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Client&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;즉&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;웹에만&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;허용을&lt;/span&gt;&lt;span&gt; 주구장창하고 &lt;/span&gt;&lt;span&gt;API&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;서버에는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;허용을&lt;/span&gt;&lt;span&gt; 안했습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.81em;&quot;&gt;&lt;span&gt;그러고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;삽질을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;엄청했죠&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;지구의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;맨틀까지&lt;/span&gt;&lt;span&gt; 보일뻔 보일 뻔했습니다 너무 삽질해서&amp;hellip;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.81em;&quot;&gt;&lt;span&gt;아&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이런&lt;/span&gt;&lt;span&gt; 개념말고 &lt;/span&gt;&lt;span&gt;허용해주는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;코드를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;달라고요&lt;/span&gt;&lt;span&gt;??&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.81em;&quot;&gt;&lt;span&gt;그건&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;따로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Java&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;탭에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다루겠습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>IT 용어</category>
      <category>Access-Control-Allow-Origin</category>
      <category>ajax</category>
      <category>cors</category>
      <category>CORS 개념</category>
      <category>CORS란?</category>
      <category>CORS와 SOP</category>
      <category>disable-web-security</category>
      <category>jsonp</category>
      <category>sop</category>
      <author>.java</author>
      <guid isPermaLink="true">https://java119.tistory.com/67</guid>
      <comments>https://java119.tistory.com/67#entry67comment</comments>
      <pubDate>Tue, 3 Dec 2019 12:18:10 +0900</pubDate>
    </item>
    <item>
      <title>[Spring] 프로젝트 커뮤니티,블로그 만들기(#4)-게시판 작성,수정,삭제(CRUD) 만들기</title>
      <link>https://java119.tistory.com/66</link>
      <description>&lt;p&gt;&lt;span&gt;안녕하세요 무작정 일단 따라 해 보는 Spring 커뮤니티 만들기&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;4&lt;/span&gt;&lt;span&gt;탄 시작합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;환경&lt;/p&gt;
&lt;pre id=&quot;code_1575039746510&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Eclipse 2019-9 Jee
JDK 1.8_231
Apache Tomcat 8.5.47
MariaDB 10.4.10
MyBatis 3.2.2
+ JSTL 1.2
+ jackson 2.9.4&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;오늘의 할 일&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1575040053668&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;1.URL 8080,프로젝트 명 제거
2.JSTL,EL 설정
3.게시판 CRUD 기능 만들기&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;시작하기에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;앞서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;지금&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상태에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Run on Server&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;하시면&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://localhost:8080/springEx01/&quot;&gt;&lt;span&gt;http://localhost:8080/springEx01/ &lt;/span&gt;&lt;/a&gt;&lt;span&gt;이렇게&lt;/span&gt;&lt;span&gt; 8080&lt;/span&gt;&lt;span&gt;이랑&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;springEx01&lt;/span&gt;&lt;span&gt;이라는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프로젝트명이&lt;/span&gt;&lt;span&gt; 붙는걸 &lt;/span&gt;&lt;span&gt;보시게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;되는데요&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;이걸&lt;/span&gt;&lt;span&gt; 안보이게 &lt;/span&gt;&lt;span&gt;하려면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설정을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;조금&lt;/span&gt;&lt;span&gt; 해줘야합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;8080 &lt;/span&gt;&lt;span&gt;포트와&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프로젝트명&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;URL&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;없애기&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;이클립스&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;하단&lt;/span&gt;&lt;span&gt; Servers &lt;/span&gt;&lt;span&gt;탭&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;클릭&lt;/span&gt;&lt;span&gt; -&amp;gt; &lt;/span&gt;&lt;span&gt;Tomcat v8.5 Server at localhost &lt;/span&gt;&lt;span&gt;더블&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;클릭&lt;/span&gt;&lt;span&gt; -&amp;gt;&lt;/span&gt;&lt;span&gt; Overview&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;탭&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;클릭&lt;/span&gt;&lt;span&gt; -&amp;gt; &lt;/span&gt;&lt;span&gt;HTTP/1.1 PortNumber&lt;/span&gt;&lt;span&gt; 8080&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; 80&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;1.PNG&quot; data-origin-width=&quot;1204&quot; data-origin-height=&quot;537&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nYuhm/btqz6h9fGe2/2dgwfFiRLh4bfNLl5mFqH0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nYuhm/btqz6h9fGe2/2dgwfFiRLh4bfNLl5mFqH0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nYuhm/btqz6h9fGe2/2dgwfFiRLh4bfNLl5mFqH0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnYuhm%2Fbtqz6h9fGe2%2F2dgwfFiRLh4bfNLl5mFqH0%2Fimg.png&quot; data-filename=&quot;1.PNG&quot; data-origin-width=&quot;1204&quot; data-origin-height=&quot;537&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;/&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;style6&quot; /&gt;
&lt;p&gt;&lt;span&gt;그리고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;저장&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;후&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;바로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Modules&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;탭&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;클릭&lt;/span&gt;&lt;span&gt; -&amp;gt; &lt;/span&gt;&lt;span&gt;해당&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프로젝트&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;클릭&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;후&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Edit&amp;hellip;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;버튼&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;클릭&lt;/span&gt;&lt;span&gt; -&amp;gt; &lt;/span&gt;&lt;span&gt;Path&lt;/span&gt;&lt;span&gt;에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프로젝트명&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;지우고 &quot;/&quot; 만 &lt;/span&gt;&lt;span&gt;남기고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;저장&lt;/span&gt;&lt;span&gt; &quot;/&quot;&lt;/span&gt;&lt;span&gt;는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;남겨야&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;합니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;2.PNG&quot; data-origin-width=&quot;1336&quot; data-origin-height=&quot;683&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cq46d6/btqz7KoEBPM/kSLSR9NuGGQnq8mLFmnEqK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cq46d6/btqz7KoEBPM/kSLSR9NuGGQnq8mLFmnEqK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cq46d6/btqz7KoEBPM/kSLSR9NuGGQnq8mLFmnEqK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcq46d6%2Fbtqz7KoEBPM%2FkSLSR9NuGGQnq8mLFmnEqK%2Fimg.png&quot; data-filename=&quot;2.PNG&quot; data-origin-width=&quot;1336&quot; data-origin-height=&quot;683&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span&gt;짜잔&lt;/span&gt;&lt;span&gt;! &lt;/span&gt;&lt;span&gt;URL&lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;깔끔해진&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;모습&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;index.jsp&lt;/span&gt;&lt;span&gt;에&lt;/span&gt;&lt;span&gt; a &lt;/span&gt;&lt;span&gt;태그&lt;/span&gt;&lt;span&gt; href&lt;/span&gt;&lt;span&gt;도&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;lt;a href=&quot;/view/dashboard&quot;&amp;gt;대시보드 보러가기&amp;lt;/a&amp;gt; 이렇게 변경해줍니다.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;현재&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인덱스&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;페이지와&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대시보드&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;페이지만&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;존재하고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있는데요&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;일단&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대시보드&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;페이지에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;게시판&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;리스트를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;보여주고&lt;/span&gt;&lt;span&gt; 작성,수정,삭제는 &lt;/span&gt;&lt;span&gt;다른&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;페이지에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;진행하겠습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.81em;&quot;&gt;&lt;span&gt;로그인은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다음&lt;/span&gt;&lt;span&gt; 5&lt;/span&gt;&lt;span&gt;장에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다룹니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;먼저&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;JSP&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Java 코드&amp;lt;%= %&amp;gt;&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;쓴다면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가독성이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;매우&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;떨어지므로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;저희는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;JSTL&lt;/span&gt;&lt;span&gt; &amp;amp; &lt;/span&gt;&lt;span&gt;EL ${} 이라는걸 &lt;/span&gt;&lt;span&gt;사용하겠습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;새로운&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;라이브러리를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;추가할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;땐&lt;/span&gt;&lt;span&gt;? &lt;/span&gt;&lt;span&gt;정답&lt;/span&gt;&lt;span&gt;! &lt;/span&gt;&lt;span&gt;p&lt;/span&gt;&lt;span&gt;om.xml&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;pom.xml&lt;/span&gt;&lt;span&gt; 디펜던시&amp;lt;dependency&amp;gt; &lt;/span&gt;&lt;span&gt;추가&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1575040136860&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!-- jstl dependecy --&amp;gt;
&amp;lt;dependency&amp;gt;
&amp;lt;groupId&amp;gt;taglibs&amp;lt;/groupId&amp;gt;
&amp;lt;artifactId&amp;gt;standard&amp;lt;/artifactId&amp;gt;
&amp;lt;version&amp;gt;1.1.2&amp;lt;/version&amp;gt;
&amp;lt;/dependency&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;lt;dependency&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;gt; 추가 후&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;lt;%@ taglib prefix=&quot;c&quot; uri=&quot;&lt;a href=&quot;http://java.sun.com/jsp/jstl/core&quot;&gt;http://java.sun.com/jsp/jstl/core&lt;/a&gt;&quot;%&amp;gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문구를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;JSTL &amp;amp; EL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;태그를&lt;/span&gt;&lt;span&gt; 사용 할 &lt;/span&gt;&lt;span&gt;때&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;JSP 파일 최상단에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;넣어주면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;되는데요&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;Prefix=&quot;c&quot;&lt;/span&gt;&lt;span&gt;말고도&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;여러&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;개가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있으므로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;i&lt;/span&gt;&lt;span&gt;nclude&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;전용&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;JSP&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;만들어줍니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;views -&amp;gt; jstlHeader&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;jsp&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;생성&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;pre id=&quot;code_1575040201931&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&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;%@ taglib uri=&quot;http://java.sun.com/jsp/jstl/core&quot; prefix=&quot;c&quot;%&amp;gt;
&amp;lt;%@ taglib uri=&quot;http://java.sun.com/jsp/jstl/functions&quot; prefix=&quot;fn&quot; %&amp;gt;
&amp;lt;%@ taglib uri=&quot;http://java.sun.com/jsp/jstl/fmt&quot; prefix=&quot;fmt&quot; %&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;이제 JSTL,EL 태그를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;JSP&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;페이지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;lt;!DOCTYPE html&amp;gt; &lt;/span&gt;&lt;span&gt;위에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;넣어주시면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;됩니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1575040231403&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;%@ include file=&quot;/WEB-INF/views/jstlHeader.jsp&quot; %&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;자&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;그럼&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;준비가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;끝났으니&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;본격적으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;게시판&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;만들기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;CRUD&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시작합니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;먼저&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;CRUD&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;중&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;R(read)&lt;/span&gt;&lt;span&gt;부터&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;만들겠습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;대시보드에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;들어가면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제일&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;먼저&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;게시판&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;리스트가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;보이도록&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;만들&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;예정입니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;리스트를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;보여주려면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;먼저&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;DB&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;데이터를&lt;/span&gt;&lt;span&gt; Select&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;해와야겠죠&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;b&gt;ViewController.java&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1575040280691&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@RequestMapping(&quot;view/dashboard&quot;) 
public ModelAndView dashboard() { 
List result = boardService.getBoardList();  
ModelAndView mav = new ModelAndView(); 

mav.addObject(&quot;result&quot;,result); 

return mav; 
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;BoardService.java&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1575040359843&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;List getBoardList();&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;BoardServiceImpl.java&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1575040430298&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public List&amp;lt;Board&amp;gt; getBoardList() {
return boardDAO.getBoardList(); }&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;BoardDAO.java&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1575040458882&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public List&amp;lt;Board&amp;gt; getBoardList() {	
return sqlSession.selectList(&quot;getBoardList&quot;); }&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;board-Mapper.xml&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1575040495499&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;select id=&quot;getBoardList&quot; resultType=&quot;board&quot;&amp;gt;
SELECT * FROM board order BY id DESC;
&amp;lt;/select&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.87em;&quot;&gt;원래 작성 순서는 Mapper -&amp;gt; DAO -&amp;gt; Service -&amp;gt; Controller 순이지만 일단 익숙지 않은 분들을 위해 Controller부터 작성하였습니다.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;dashboard.jsp&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1575040699427&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&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;%@ include file=&quot;/WEB-INF/views/jstlHeader.jsp&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;dashboard&amp;lt;/title&amp;gt;
&amp;lt;style&amp;gt;
  table {
    width: 100%;
    border: 1px solid #444444;
  }
  th, td {
    border: 1px solid #444444;
  }
&amp;lt;/style&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
&amp;lt;p&amp;gt;dashboard&amp;lt;/p&amp;gt;
&amp;lt;div&amp;gt;게시글 리스트&amp;lt;/div&amp;gt;
&amp;lt;table&amp;gt;
&amp;lt;thead&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;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;/td&amp;gt;
&amp;lt;/tr&amp;gt;&amp;lt;/thead&amp;gt;

&amp;lt;c:forEach var=&quot;b&quot; items=&quot;${result }&quot;&amp;gt;
&amp;lt;fmt:formatDate value=&quot;${b.create_time}&quot; pattern=&quot;yyyy-MM-dd HH:MM:ss&quot; var=&quot;dateFormat_cr&quot;/&amp;gt;
&amp;lt;tr&amp;gt;
&amp;lt;td&amp;gt;${b.subject }&amp;lt;/td&amp;gt;
&amp;lt;td&amp;gt;${b.views }&amp;lt;/td&amp;gt;
&amp;lt;td&amp;gt;${b.likes }&amp;lt;/td&amp;gt;
&amp;lt;td&amp;gt;${b.attachments }&amp;lt;/td&amp;gt;
&amp;lt;td&amp;gt;${dateFormat_cr }&amp;lt;/td&amp;gt;
&amp;lt;/tr&amp;gt;
&amp;lt;/c:forEach&amp;gt;
&amp;lt;/table&amp;gt;
&amp;lt;div&amp;gt; &amp;lt;a href=&quot;/view/boardwrite&quot;&amp;gt;글 작성하기&amp;lt;/a&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 style=&quot;font-size: 0.94em;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;UI는 아직 허접하지만 일단 게시판 리스트가 잘 출력되는 모습입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;이제 글 작성하기 링크를 누르면 글을 작성할 수 있게 C(Create)를 만들어봅시다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;4.PNG&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;226&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bcvNyX/btqz8nNhUNF/QTO6TKGKrymDkrThCUVfKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bcvNyX/btqz8nNhUNF/QTO6TKGKrymDkrThCUVfKk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bcvNyX/btqz8nNhUNF/QTO6TKGKrymDkrThCUVfKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbcvNyX%2Fbtqz8nNhUNF%2FQTO6TKGKrymDkrThCUVfKk%2Fimg.png&quot; data-filename=&quot;4.PNG&quot; data-origin-width=&quot;1300&quot; data-origin-height=&quot;226&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;/&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;style6&quot; /&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;먼저 작성을 다 한 후 jQuery ajax를 이용한 POST 방식을 사용할 겁니다.&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;&lt;b&gt;views -&amp;gt; view -&amp;gt; boardwrite.jsp 생성&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1575186023812&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&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;script src=&quot;https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js&quot;&amp;gt;&amp;lt;/script&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 type=&quot;text/javascript&quot;&amp;gt;

function boardValidation(){
	
	var subject = $(&quot;#subject&quot;).val();
	var content = $(&quot;#content&quot;).val();
	
	if(!subject){
		alert(&quot;제목 입력은 필수입니다.&quot;);
		$(&quot;#subject&quot;).focus();
		return false;
	}else if(!content){
		alert(&quot;내용 입력은 필수 입니다.&quot;);
		$(&quot;#content&quot;).focus();
		return false;
	}else {
		boardWrite(subject,content);
	}
	
}

function boardWrite(sub,con){
	
	$.ajax({
		
		url : &quot;/jquery/boardwrite&quot;,
		type:'POST',
		data : {
			subject : sub,
			context : con
		},
		success:function(data){
			if(data == 1){
				alert(&quot;글 등록이 완료되었습니다.&quot;);
				location.href=&quot;/view/dashboard&quot;;
			}else {
				alert(&quot;글 등록 실패&quot;);
			}
		},error:function(){
			console.log(&quot;error&quot;);
		}
		
	})
	
}

&amp;lt;/script&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
&amp;lt;form&amp;gt;
&amp;lt;table&amp;gt;
        &amp;lt;caption&amp;gt;게시판 글쓰기 &amp;lt;/caption&amp;gt;
    &amp;lt;tbody&amp;gt;
            &amp;lt;tr&amp;gt;
                &amp;lt;th&amp;gt;제목: &amp;lt;/th&amp;gt;
                &amp;lt;td&amp;gt;&amp;lt;input type=&quot;text&quot; placeholder=&quot;제목을 입력하세요. &quot; id=&quot;subject&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;&amp;lt;textarea cols=&quot;30&quot; rows=&quot;10&quot; placeholder=&quot;내용을 입력하세요. &quot; id=&quot;content&quot;&amp;gt;&amp;lt;/textarea&amp;gt;&amp;lt;/td&amp;gt;
            &amp;lt;/tr&amp;gt;
           &amp;lt;!--  &amp;lt;tr&amp;gt;
                &amp;lt;th&amp;gt;첨부파일: &amp;lt;/th&amp;gt;
                &amp;lt;td&amp;gt;&amp;lt;input type=&quot;text&quot; placeholder=&quot;파일을 선택하세요. &quot; name=&quot;filename&quot;/&amp;gt;&amp;lt;/td&amp;gt;
            &amp;lt;/tr&amp;gt; --&amp;gt;
            &amp;lt;tr&amp;gt;
                &amp;lt;td colspan=&quot;2&quot;&amp;gt;
                    &amp;lt;input type=&quot;button&quot; value=&quot;등록&quot; onclick=&quot;boardValidation()&quot;/&amp;gt;
                    &amp;lt;input type=&quot;button&quot; value=&quot;뒤로&quot; onclick=&quot;javascript:location.href='dashboard'&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;/form&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;jQuery 플러그인이 필요하겠죠 저희는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;*CDN&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;방식으로 받겠습니다.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;boardwrite.jsp &amp;lt;head&amp;gt;&amp;lt;/head&amp;gt;안에 넣어줍니다.&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1575186198362&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;font-size: 0.81em;&quot;&gt;&lt;b&gt;*CDN&lt;/b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;:&lt;/span&gt;&lt;b&gt;콘텐츠 전송 네트워크&lt;/b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;(Content delivery network)는 콘텐츠를 효율적으로 전달하기 위해 여러 노드를 가진 네트워크에 데이터를 저장하여 제공하는 시스템을 말한다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;인터넷 서비스 제공자&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;에 직접 연결되어 데이터를 전송하므로, 콘텐츠 병목을 피할 수 있는 장점이 있다&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;하지만 Spring 입장에선 boardwrite.jsp를 못 찾겠죠?&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;무조건 jsp를 view로 등록할 땐 Controller에서 받아줘야 합니다.&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;ViewController.java&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1575186119371&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@RequestMapping(value=&quot;view/boardwrite&quot;,method = RequestMethod.GET)
	public ModelAndView boardwrite() {
		ModelAndView mav = new ModelAndView();
		return mav; }&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;font-size: 0.87em;&quot;&gt;그리고 위에 boardWrite() 메서드를 보시면 URL를 /jquery/boardwrite로 보내고 있죠&lt;/p&gt;
&lt;p style=&quot;font-size: 0.87em;&quot;&gt;저희는 Controller의 용도를 나눠서 가독성이 좋도록 할 겁니다.&lt;/p&gt;
&lt;p style=&quot;font-size: 0.87em;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.87em;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;ViewController.java :&lt;/b&gt; &lt;span style=&quot;color: #333333;&quot;&gt;View를 보여주는(연결해주는) Controller&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.87em;&quot;&gt;&lt;b&gt;JqueryController.java :&lt;/b&gt; jquery + ajax를 이용한 메서드들&lt;/p&gt;
&lt;p style=&quot;font-size: 0.81em;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.81em;&quot;&gt;자 그럼&lt;b&gt; JqueryController.java&lt;/b&gt;를 만들어야겠죠&lt;/p&gt;
&lt;p&gt;&lt;b&gt;src/main/java -&amp;gt; controller -&amp;gt; JqueryController.java 생성&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1575186562723&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import com.company01.springEx01.logic.Board;
import com.company01.springEx01.service.BoardService;

@Controller
@RequestMapping(&quot;jquery/*&quot;)
public class JqueryController {

	@Autowired
	BoardService boardService;
	
	@RequestMapping(value=&quot;jquery/boardwrite&quot;,method = RequestMethod.POST)
	@ResponseBody
	public int boardwrite(Board board) {
		int result = 0; 
		result = boardService.boardwrite(board); 
		return result;
	}
	
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;font-size: 0.87em;&quot;&gt;&lt;b&gt;@ResponseBody&lt;/b&gt; : json으로 응답해주는 어노테이션&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;여기서 보면 boardwrite 메서드의 리턴 타입이 int라고 돼있는데&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;어라? 저는 int로 리턴하면 String or Object로 리턴하라고 에러가 나던데요? 네 맞습니다.&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;원래 스프링은 Model 객체를 리턴해 &quot;view&quot;를 보여주려고 하는 성질이 존재하는데,&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;갑자기 int를 리턴해버리면 처음부터 형태가 맞지 않다며 예외를 뱉습니다.&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;그럼 아예 값을 리턴해주는 JSON 형태로 던져주면 어떨까요? 네 바로 그 작업을 하는 것입니다.&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;&lt;b&gt;pom.xml&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1575186844650&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;dependency&amp;gt;
&amp;lt;groupId&amp;gt;com.fasterxml.jackson.core&amp;lt;/groupId&amp;gt;
&amp;lt;artifactId&amp;gt;jackson-databind&amp;lt;/artifactId&amp;gt;
&amp;lt;version&amp;gt;2.9.4&amp;lt;/version&amp;gt;
&amp;lt;/dependency&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;BoardService.java&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1575186969610&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;int boardwrite(Board board);&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;BoardServiceImpl.java&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1575186992712&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@Override
public int boardwrite(Board board) {
return boardDAO.boardwrite(board);}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;BoardDAO.java&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1575187021922&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public int boardwrite(Board board) {
return sqlSession.insert(&quot;boardwrite&quot;,board);
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;board-Mapper.xml&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1575187050041&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;insert id=&quot;boardwrite&quot;&amp;gt;
insert into board (id,subject,context,attachments,likes,views,create_time,update_time) 
values(#{id},#{subject},#{context},#{attachments},#{likes},#{views},now(),null);
&amp;lt;/insert&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;만들었으니 한번 해볼까요?&lt;/p&gt;
&lt;p&gt;&lt;b&gt;대시보드에 있는 글 작성하기 버튼(링크)을 클릭합니다.&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;b&gt;글 작성 UI&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;5.PNG&quot; data-origin-width=&quot;308&quot; data-origin-height=&quot;253&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FSOEj/btqz6HmHSpl/WpSG6UlGZFaIdoGQLlwB1k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FSOEj/btqz6HmHSpl/WpSG6UlGZFaIdoGQLlwB1k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FSOEj/btqz6HmHSpl/WpSG6UlGZFaIdoGQLlwB1k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFSOEj%2Fbtqz6HmHSpl%2FWpSG6UlGZFaIdoGQLlwB1k%2Fimg.png&quot; data-filename=&quot;5.PNG&quot; data-origin-width=&quot;308&quot; data-origin-height=&quot;253&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;font-size: 0.81em;&quot;&gt;일단 첨부파일은 로직이 조금 필요하므로 나중에 하고 제목, 내용만 입력하도록 하였습니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;b&gt;글 작성 후 등록&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;6.PNG&quot; data-origin-width=&quot;715&quot; data-origin-height=&quot;251&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bj1EsA/btqz6WDWf7q/lM93wcKKWEk06cRdKewY50/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bj1EsA/btqz6WDWf7q/lM93wcKKWEk06cRdKewY50/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bj1EsA/btqz6WDWf7q/lM93wcKKWEk06cRdKewY50/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbj1EsA%2Fbtqz6WDWf7q%2FlM93wcKKWEk06cRdKewY50%2Fimg.png&quot; data-filename=&quot;6.PNG&quot; data-origin-width=&quot;715&quot; data-origin-height=&quot;251&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;/&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;style6&quot; /&gt;
&lt;p&gt;&lt;b&gt;대시보드&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;7.PNG&quot; data-origin-width=&quot;845&quot; data-origin-height=&quot;204&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/G51si/btqz7oUuFxU/fcyMG6MNb6HKRK06MxrIFK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/G51si/btqz7oUuFxU/fcyMG6MNb6HKRK06MxrIFK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/G51si/btqz7oUuFxU/fcyMG6MNb6HKRK06MxrIFK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FG51si%2Fbtqz7oUuFxU%2FfcyMG6MNb6HKRK06MxrIFK%2Fimg.png&quot; data-filename=&quot;7.PNG&quot; data-origin-width=&quot;845&quot; data-origin-height=&quot;204&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;짠! 잘 들어왔죠 이제 저 글 제목을 클릭하면 내용을 볼 수 있고, 조회수가 1씩 증가하도록 해보겠습니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;b&gt;dashboard.jsp&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;제목 부분에 a 태그 링크 추가&lt;/p&gt;
&lt;pre id=&quot;code_1575189744462&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;td&amp;gt;&amp;lt;a href=&quot;/view/boardDetail?id=${b.id }&quot;&amp;gt;${b.subject }&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;/view/boardDetail 페이지가 없죠? 새로운 페이지 추가 Controller는 뭐였죠??&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;네 맞습니다!!&lt;/p&gt;
&lt;p&gt;&lt;b&gt;ViewController.java&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1575189873164&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@RequestMapping(value=&quot;view/boardDetail&quot;,method = RequestMethod.GET)
	public ModelAndView boardDetail(int id) {
		boardService.viewsUpdate(id);
		Board result = boardService.getBoardDetail(id);
		ModelAndView mav = new ModelAndView();
		mav.addObject(&quot;result&quot;,result);
		return mav;
	}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;&lt;b&gt;매개변수 int id :&lt;/b&gt; get으로 넘어오는 &quot;id&quot; 매개변수를 받는다.&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;&lt;b&gt;viewUpdate :&lt;/b&gt; 조회수 추가 메서드&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;&lt;b&gt;getBoardDetail :&lt;/b&gt; 특정 글 하나의 데이터를 조회하는 메서드&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;views -&amp;gt; view -&amp;gt; boardDetail.jsp 생성&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1575190225805&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&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;%@ include file=&quot;/WEB-INF/views/jstlHeader.jsp&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;style&amp;gt;
  table {
    width: 100%;
    border: 1px solid #444444;
  }
  th, td {
    border: 1px solid #444444;
  }
&amp;lt;/style&amp;gt;
&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;
function boardDelete(){
	
	
}

function boardUpdate(){
	
	
}
&amp;lt;/script&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
&amp;lt;form&amp;gt;
&amp;lt;table&amp;gt;
        &amp;lt;caption&amp;gt;게시판 글 내용 &amp;lt;/caption&amp;gt;
    &amp;lt;tbody&amp;gt;
            &amp;lt;tr&amp;gt;
                &amp;lt;th&amp;gt;제목: &amp;lt;/th&amp;gt;
                &amp;lt;td&amp;gt;${result.subject}&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;${result.context}&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;${result.views}&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;${result.likes}&amp;lt;/td&amp;gt;
         	&amp;lt;/tr&amp;gt;
         	
            &amp;lt;tr&amp;gt;
                &amp;lt;td colspan=&quot;2&quot;&amp;gt;
                    &amp;lt;input type=&quot;button&quot; value=&quot;수정&quot; onclick=&quot;boardDelete()&quot;/&amp;gt;
                    &amp;lt;input type=&quot;button&quot; value=&quot;삭제&quot; onclick=&quot;boardUpdate()&quot;/&amp;gt;
                    &amp;lt;input type=&quot;button&quot; value=&quot;목록보기&quot; onclick=&quot;javascript:location.href='dashboard'&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;/form&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;BoardService.java&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1575189998075&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Board getBoardDetail(int id);
void viewsUpdate(int id);&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;BoardServiceImpl.java&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1575190034259&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@Override
public Board getBoardDetail(int id) {
return boardDAO.getBoardDetail(id);}

@Override
public void viewsUpdate(int id) {
boardDAO.viewUpdate(id);}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;BoardDAO.java&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1575190070261&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public Board getBoardDetail(int id) {
		HashMap&amp;lt;String, Object&amp;gt; map = new HashMap&amp;lt;String, Object&amp;gt;();
		map.put(&quot;id&quot;,id);
		return sqlSession.selectOne(&quot;getBoardDetail&quot;,map);
	}

public void viewUpdate(int id) {
		HashMap&amp;lt;String, Object&amp;gt; map = new HashMap&amp;lt;String, Object&amp;gt;();
		map.put(&quot;id&quot;,id);
		sqlSession.update(&quot;viewUpdate&quot;, map);
	}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;board-Mapper.xml&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1575190099643&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;select id=&quot;getBoardDetail&quot; resultType=&quot;board&quot;&amp;gt;
SELECT * FROM board where id = #{id};
&amp;lt;/select&amp;gt;

&amp;lt;!-- update --&amp;gt;
&amp;lt;update id=&quot;viewUpdate&quot;&amp;gt;
UPDATE board SET views = views+1 WHERE id = #{id}
&amp;lt;/update&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;대시보드&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;제목에 클릭할 수 있는 링크가 생겼습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;8.PNG&quot; data-origin-width=&quot;377&quot; data-origin-height=&quot;150&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rN3JA/btqz9tGCR3A/r5I4qJx9kCkZAP4sd5r9wk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rN3JA/btqz9tGCR3A/r5I4qJx9kCkZAP4sd5r9wk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rN3JA/btqz9tGCR3A/r5I4qJx9kCkZAP4sd5r9wk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrN3JA%2Fbtqz9tGCR3A%2Fr5I4qJx9kCkZAP4sd5r9wk%2Fimg.png&quot; data-filename=&quot;8.PNG&quot; data-origin-width=&quot;377&quot; data-origin-height=&quot;150&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;/&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;style6&quot; /&gt;
&lt;p&gt;&lt;b&gt;글 내용(boardDetail)&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;내용 페이지에서 새로고침을 하게 되면 조회수가 1씩 증가하는 걸 볼 수 있습니다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;9.PNG&quot; data-origin-width=&quot;869&quot; data-origin-height=&quot;169&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bLg941/btqz7LBGOrR/pDpeGBbhKPDiXjZ3nnUAp1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bLg941/btqz7LBGOrR/pDpeGBbhKPDiXjZ3nnUAp1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bLg941/btqz7LBGOrR/pDpeGBbhKPDiXjZ3nnUAp1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbLg941%2Fbtqz7LBGOrR%2FpDpeGBbhKPDiXjZ3nnUAp1%2Fimg.png&quot; data-filename=&quot;9.PNG&quot; data-origin-width=&quot;869&quot; data-origin-height=&quot;169&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;삭제와 수정은 아무나 하면 안 되기 때문에 다음 글인 로그인 구현하기를 하고 진행하도록 하겠습니다.&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.81em;&quot;&gt;&lt;s&gt;귀찮아서 그런 거 아닙니다.&lt;/s&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;그럼 다음은 회원가입 그리고 로그인 후 세션 저장까지 해보겠습니다.&lt;/b&gt;&lt;s&gt;&lt;/s&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;b&gt;최종 Project Explorer&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;10.PNG&quot; data-origin-width=&quot;253&quot; data-origin-height=&quot;869&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bjkbo8/btqz6V54OmE/nC52PNSb0zhvKAMUM96B4k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bjkbo8/btqz6V54OmE/nC52PNSb0zhvKAMUM96B4k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bjkbo8/btqz6V54OmE/nC52PNSb0zhvKAMUM96B4k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbjkbo8%2Fbtqz6V54OmE%2FnC52PNSb0zhvKAMUM96B4k%2Fimg.png&quot; data-filename=&quot;10.PNG&quot; data-origin-width=&quot;253&quot; data-origin-height=&quot;869&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Spring/커뮤니티(블로그) 프로젝트</category>
      <category>@ResponseBody</category>
      <category>JSON 데이터 반환</category>
      <category>JSTL EL</category>
      <category>jstl 사용하기</category>
      <category>Spring 게시판 CRUD 만들기</category>
      <category>Spring 게시판 글 보기</category>
      <category>Spring 게시판 글 쓰기</category>
      <category>Spring 게시판 다루기</category>
      <category>Spring 게시판 조회수 메소드</category>
      <category>게시판 글 내용</category>
      <author>.java</author>
      <guid isPermaLink="true">https://java119.tistory.com/66</guid>
      <comments>https://java119.tistory.com/66#entry66comment</comments>
      <pubDate>Sat, 30 Nov 2019 01:10:11 +0900</pubDate>
    </item>
    <item>
      <title>[IT용어] NameSpace(네임스페이스)란?</title>
      <link>https://java119.tistory.com/65</link>
      <description>&lt;p&gt;&lt;span&gt;먼저&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;IT&lt;/span&gt;&lt;span&gt;에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;일하시는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;분들은&lt;/span&gt;&lt;span&gt; 엔지니어,개발자 &lt;/span&gt;&lt;span&gt;등&lt;/span&gt;&lt;span&gt;.. &lt;/span&gt;&lt;span&gt;각&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;분야에서&lt;/span&gt;&lt;span&gt; Linux&lt;/span&gt;&lt;span&gt;나&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프로그래밍&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;언어를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다룰&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;Namespace(&lt;/span&gt;&lt;span&gt;이하&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;네임스페이스&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/b&gt;&lt;span&gt;라는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;말이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;굉장히&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;많이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;나온다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;대충&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;네임스페이스는&lt;/span&gt;&lt;b&gt;&lt;span&gt; &quot;&lt;/span&gt;&lt;span&gt;소속&lt;/span&gt;&lt;span&gt;&quot;&lt;/span&gt;&lt;/b&gt;&lt;span&gt;이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;까지만&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;알고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;넘어가는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;많은데&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정확히&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;알아보도록&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;하겠습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;개념&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;span&gt;네임스페이스&lt;/span&gt;&lt;span&gt;.. &lt;/span&gt;&lt;span&gt;직역해보면&lt;/span&gt;&lt;span&gt; 이름공간? 뭔가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이름과&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;관련된&lt;/span&gt;&lt;span&gt; 용어인건 &lt;/span&gt;&lt;span&gt;분명하다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;그럼&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이름은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;왜&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;지어지는가&lt;/span&gt;&lt;span&gt;? &lt;/span&gt;&lt;span&gt;바로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;구분&lt;/span&gt;&lt;span&gt;, 구분를 &lt;/span&gt;&lt;span&gt;하려고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이름을&lt;/span&gt;&lt;span&gt; 짓지않습니까?&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;제&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;블로그&lt;/span&gt;&lt;span&gt; 이름은? .java의 &lt;/span&gt;&lt;span&gt;개발일기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;다른 사람이&lt;span&gt;저에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다른&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;글을&lt;/span&gt;&lt;span&gt; 보더라도 .java의 &lt;/span&gt;&lt;span&gt;개발일기라는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이름을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;보고&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;아&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사람&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;글이구나&lt;/span&gt;&lt;span&gt; 싶을껍니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;물론&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Linux&lt;/span&gt;&lt;span&gt;에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다루는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;네임스페이스와&lt;/span&gt;&lt;span&gt; 프로그래밍 &lt;/span&gt;&lt;span&gt;언어에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다루는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;네임스페이스는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정확한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;뜻이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;조금&lt;/span&gt;&lt;span&gt; 다를수 &lt;/span&gt;&lt;span&gt;있으나&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;사용하는 목적은 같다&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;네임스페이스는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한마디로&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot;&gt;&lt;b&gt;한 덩어리의 데이터에 이름을 붙여 충돌 가능성을 줄이고, &lt;/b&gt;&lt;b&gt;쉽게 참조할 수 있게 하는 &lt;/b&gt;&lt;span&gt;&lt;b&gt;개념&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;예를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;들면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;A&lt;/span&gt;&lt;span&gt;라는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;네임스페이스의&lt;/span&gt;&lt;span&gt; 자원1,2,3&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;B&lt;/span&gt;&lt;span&gt;라는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;네임스페이스의&lt;/span&gt;&lt;span&gt; 자원1,2,3&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;여기서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자원&lt;/span&gt;&lt;span&gt; 1,2,3&lt;/span&gt;&lt;span&gt;은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;같으나&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;네임스페이스로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;구분을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것이죠&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;연관 키워드&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;Linux : &lt;/span&gt;&lt;/b&gt;&lt;span&gt;PID namespace&lt;/span&gt;&lt;span&gt;, network namespace, UID namespace&amp;hellip;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;P&lt;/span&gt;&lt;span&gt;rogramming&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;language&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;:&lt;/span&gt;&lt;/b&gt;&lt;span&gt; namespace A() {}, namespace B() {}&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;MyBatis : &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&amp;lt;mapper namespace=&quot;mapper.board-Mapper&quot;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>IT 용어</category>
      <category>namespace</category>
      <category>namespace 개념 정리</category>
      <category>namespace 총 정리</category>
      <category>namespaces</category>
      <category>네임스페이스</category>
      <category>네임스페이스 뜻</category>
      <category>네임스페이스란?</category>
      <author>.java</author>
      <guid isPermaLink="true">https://java119.tistory.com/65</guid>
      <comments>https://java119.tistory.com/65#entry65comment</comments>
      <pubDate>Fri, 29 Nov 2019 23:51:51 +0900</pubDate>
    </item>
    <item>
      <title>[Spring] 프로젝트 커뮤니티,블로그 만들기(#3)-DB 연결+MyBatis 설정하기</title>
      <link>https://java119.tistory.com/64</link>
      <description>&lt;p&gt;&lt;span&gt;안녕하세요 무작정 일단 따라 해 보는 Spring 커뮤니티 만들기 &lt;/span&gt;&lt;span&gt;3&lt;/span&gt;&lt;span&gt;탄 시작합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;환경&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1574582564490&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Eclipse 2019-9 Jee 
JDK 1.8_231 
Apache Tomcat 8.5.47
+ MariaDB 10.4.10
+ MyBatis 3.2.2&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;자&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;오늘은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제일&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;중요한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;DB&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;연결을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;해볼껀데요&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;DB&lt;/span&gt;&lt;span&gt;는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;MariaDB 10.4.10&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;version&lt;/span&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용합니다&lt;/span&gt;&lt;span&gt;. 참고 해주세요&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.87em;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Java&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;DB&lt;/span&gt;&lt;span&gt; 연결 할 &lt;/span&gt;&lt;span&gt;때&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;꼭&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;필요한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;준비물이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;무엇입니까&lt;/span&gt;&lt;span&gt;?&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.87em;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.81em;&quot;&gt;&lt;span&gt;네&lt;/span&gt;&lt;span&gt;? &lt;/span&gt;&lt;span&gt;DB&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;연결&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;코드&lt;/span&gt;&lt;span&gt;?&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.81em;&quot;&gt;&lt;span&gt;네&lt;/span&gt;&lt;span&gt;?? &lt;/span&gt;&lt;span&gt;하느님께&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기도하기&lt;/span&gt;&lt;span&gt;?&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.81em;&quot;&gt;&lt;span&gt;네&lt;/span&gt;&lt;span&gt;??? &lt;/span&gt;&lt;span&gt;MariaDB&lt;/span&gt;&lt;span&gt;는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;모르겠다는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;당신&lt;/span&gt;&lt;span&gt;! &lt;/span&gt;&lt;span&gt;반성하십시오&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;MSSQL, MySQL, MariaDB, PG&lt;span&gt;등&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;모든&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;DB&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;JAVA&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; 연결 할 &lt;/span&gt;&lt;span&gt;땐&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;DB&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;드라이버&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;라이브러리가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;필요합니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;&lt;span&gt;즉&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;jar 파일말입니다. Spring&lt;/span&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;아니라면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;jar&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;파일을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;홈페이지에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;구해서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;라이브러리&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;폴더에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;넣어줘야&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;하지만&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;&lt;span&gt;저희는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;b&gt;&lt;span&gt;*&lt;/span&gt;&lt;span&gt;Maven&lt;/span&gt;&lt;/b&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용하고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있습니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;b&gt;&lt;span&gt;*Maven&lt;/span&gt;&lt;/b&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정확히&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;무엇인지는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;모르겠지만&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;&lt;b&gt;&lt;span&gt;일단&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;라이브러리를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;쉽게&lt;/span&gt;&lt;span&gt; 다운받고 &lt;/span&gt;&lt;span&gt;자동으로&lt;/span&gt;&lt;span&gt; 등록 해주는 &lt;/span&gt;&lt;span&gt;빌드&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;툴이라고만&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;알고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있읍시다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.81em;&quot;&gt;&lt;span&gt;대표적인&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;빌드&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;툴&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.81em;&quot;&gt;&lt;b&gt;&lt;span&gt;*&lt;/span&gt;&lt;span&gt;Gradle&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt; :&lt;/b&gt; &lt;/span&gt;&lt;span&gt;자바&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프로젝트의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;빌드&lt;/span&gt;&lt;span&gt;(build)&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; 자동화 해주는 &lt;/span&gt;&lt;span&gt;빌드&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;툴&lt;/span&gt;&lt;span&gt;(build tool) (최신)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.81em;&quot;&gt;&lt;b&gt;&lt;span&gt;*Maven&lt;/span&gt;&lt;span&gt; : &lt;/span&gt;&lt;/b&gt;&lt;span&gt;자바 프로젝트의 빌드(build)를 자동화해주는 빌드 툴&lt;/span&gt;&lt;span&gt;(build tool)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot;&gt;&lt;b&gt;1.&lt;span&gt;Maven으로&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;MariaDB&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;라이브러리를&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;다운로드&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p style=&quot;font-size: 1.25em;&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;a href=&quot;https://mvnrepository.com/&quot;&gt;https://mvnrepository.com/&lt;/a&gt; &lt;span&gt;사이트&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;접속&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;검색&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;창에&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;mariadb&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;검색&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;2.PNG&quot; data-origin-width=&quot;963&quot; data-origin-height=&quot;361&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bgArpB/btqzYaWxVby/GfZuKw8qc4rNUeyidBsMO0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bgArpB/btqzYaWxVby/GfZuKw8qc4rNUeyidBsMO0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bgArpB/btqzYaWxVby/GfZuKw8qc4rNUeyidBsMO0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbgArpB%2FbtqzYaWxVby%2FGfZuKw8qc4rNUeyidBsMO0%2Fimg.png&quot; data-filename=&quot;2.PNG&quot; data-origin-width=&quot;963&quot; data-origin-height=&quot;361&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;1.&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;MariaDB Java Client&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;클릭&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Usages&lt;/span&gt;&lt;span&gt;가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가장&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;많은&lt;/span&gt;&lt;span&gt; 2.3.0 &lt;/span&gt;&lt;span&gt;버전을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;받겠습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;2.3.0 &lt;/span&gt;&lt;span&gt;클릭&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;3.PNG&quot; data-origin-width=&quot;649&quot; data-origin-height=&quot;605&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/HxTx1/btqz0A6Qgff/kqQ51yy0Uz3dUxzbBDS8dk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/HxTx1/btqz0A6Qgff/kqQ51yy0Uz3dUxzbBDS8dk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/HxTx1/btqz0A6Qgff/kqQ51yy0Uz3dUxzbBDS8dk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHxTx1%2Fbtqz0A6Qgff%2FkqQ51yy0Uz3dUxzbBDS8dk%2Fimg.png&quot; data-filename=&quot;3.PNG&quot; data-origin-width=&quot;649&quot; data-origin-height=&quot;605&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1574582776322&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;dependency&amp;gt;
    &amp;lt;groupId&amp;gt;org.mariadb.jdbc&amp;lt;/groupId&amp;gt;
    &amp;lt;artifactId&amp;gt;mariadb-java-client&amp;lt;/artifactId&amp;gt;
    &amp;lt;version&amp;gt;2.3.0&amp;lt;/version&amp;gt;
&amp;lt;/dependency&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;span&gt;코드&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;복사&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;프로젝트&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;돌아와&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;b&gt;&lt;span&gt;pom.xml&lt;/span&gt;&lt;/b&gt;&lt;span&gt;이라는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;파일에&lt;/span&gt;&lt;span&gt; 붙여넣기 &lt;/span&gt;&lt;span&gt;후&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;파일&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;저장&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot;&gt;&lt;b&gt;2.Spring version 및 서블릿(servlet) version 변경&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;pom.xml&lt;/span&gt;&lt;/b&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;파일을&lt;/span&gt;&lt;span&gt; 손 댄김에 &lt;/span&gt;&lt;span&gt;Spring &lt;/span&gt;&lt;span&gt;버전도&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;바꿔줍니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;Spring &lt;/span&gt;&lt;span&gt;프로젝트&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;버전&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1574582864474&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Spring Framework 3.1.1 
java version 1.6
Maven compiler
source 1.6
target 1.6
servlet-api 2.5
jsp-api 2.1&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;변경 후 &lt;/span&gt;&lt;span&gt;버전&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1574582890971&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Spring Framework 4.3.4
java version 1.8
Maven compiler
source 1.8
target 1.8
servlet-api 3.0
jsp-api 2.2&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;&lt;b&gt;&lt;span&gt;주의&lt;/span&gt;&lt;span&gt; : &lt;/span&gt;&lt;span&gt;Java version 1.8&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; 올릴땐 &lt;/span&gt;&lt;span&gt;로컬에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설치된&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Java&lt;/span&gt;&lt;span&gt;가 1.8이상이여야 &lt;/span&gt;&lt;span&gt;합니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot;&gt;&lt;b&gt;Before&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;pom.xml&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1574582950043&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;properties&amp;gt;
&amp;lt;java-version&amp;gt;1.6&amp;lt;/java-version&amp;gt;
&amp;lt;org.springframework-version&amp;gt;3.1.1.RELEASE&amp;lt;/org.springframework-version&amp;gt;
&amp;lt;org.aspectj-version&amp;gt;1.6.10&amp;lt;/org.aspectj-version&amp;gt;
&amp;lt;org.slf4j-version&amp;gt;1.6.6&amp;lt;/org.slf4j-version&amp;gt;
&amp;lt;/properties&amp;gt;


&amp;lt;dependency&amp;gt;
&amp;lt;groupId&amp;gt;javax.servlet&amp;lt;/groupId&amp;gt;
&amp;lt;artifactId&amp;gt;servlet-api&amp;lt;/artifactId&amp;gt;
&amp;lt;version&amp;gt;2.5&amp;lt;/version&amp;gt;
&amp;lt;scope&amp;gt;provided&amp;lt;/scope&amp;gt;
&amp;lt;/dependency&amp;gt;
&amp;lt;dependency&amp;gt;
&amp;lt;groupId&amp;gt;javax.servlet.jsp&amp;lt;/groupId&amp;gt;
&amp;lt;artifactId&amp;gt;jsp-api&amp;lt;/artifactId&amp;gt;
&amp;lt;version&amp;gt;2.1&amp;lt;/version&amp;gt;
&amp;lt;scope&amp;gt;provided&amp;lt;/scope&amp;gt;
&amp;lt;/dependency&amp;gt;


&amp;lt;plugin&amp;gt;
    &amp;lt;groupId&amp;gt;org.apache.maven.plugins&amp;lt;/groupId&amp;gt;
    &amp;lt;artifactId&amp;gt;maven-compiler-plugin&amp;lt;/artifactId&amp;gt;
    &amp;lt;version&amp;gt;2.5.1&amp;lt;/version&amp;gt;
    &amp;lt;configuration&amp;gt;
        &amp;lt;source&amp;gt;1.6&amp;lt;/source&amp;gt;
        &amp;lt;target&amp;gt;1.6&amp;lt;/target&amp;gt;

        &amp;lt;compilerArgument&amp;gt;-Xlint:all&amp;lt;/compilerArgument&amp;gt;
        &amp;lt;showWarnings&amp;gt;true&amp;lt;/showWarnings&amp;gt;
        &amp;lt;showDeprecation&amp;gt;true&amp;lt;/showDeprecation&amp;gt;
    &amp;lt;/configuration&amp;gt;
&amp;lt;/plugin&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;web.xml&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1574582976234&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
xsi:schemaLocation=&quot;http://java.sun.com/xml/ns/javaee https://java.sun.com/xml/ns/javaee/web-app_2_5.xsd&quot;&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot;&gt;&lt;b&gt;After&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;pom.xml&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1574583064297&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;properties&amp;gt;
&amp;lt;java-version&amp;gt;1.8&amp;lt;/java-version&amp;gt;
&amp;lt;org.springframework-version&amp;gt;4.3.2.RELEASE&amp;lt;/org.springframework-version&amp;gt;
&amp;lt;org.aspectj-version&amp;gt;1.6.10&amp;lt;/org.aspectj-version&amp;gt;
&amp;lt;org.slf4j-version&amp;gt;1.6.6&amp;lt;/org.slf4j-version&amp;gt;
&amp;lt;/properties&amp;gt;


&amp;lt;dependency&amp;gt;
&amp;lt;groupId&amp;gt;javax.servlet&amp;lt;/groupId&amp;gt;
&amp;lt;artifactId&amp;gt;javax.servlet-api&amp;lt;/artifactId&amp;gt;
&amp;lt;version&amp;gt;3.0.1&amp;lt;/version&amp;gt;
&amp;lt;scope&amp;gt;provided&amp;lt;/scope&amp;gt;
&amp;lt;/dependency&amp;gt;
&amp;lt;dependency&amp;gt;
&amp;lt;groupId&amp;gt;javax.servlet.jsp&amp;lt;/groupId&amp;gt;
&amp;lt;artifactId&amp;gt;jsp-api&amp;lt;/artifactId&amp;gt;
&amp;lt;version&amp;gt;2.2&amp;lt;/version&amp;gt;
&amp;lt;scope&amp;gt;provided&amp;lt;/scope&amp;gt;
&amp;lt;/dependency&amp;gt;


&amp;lt;plugin&amp;gt;
    &amp;lt;groupId&amp;gt;org.apache.maven.plugins&amp;lt;/groupId&amp;gt;
    &amp;lt;artifactId&amp;gt;maven-compiler-plugin&amp;lt;/artifactId&amp;gt;
    &amp;lt;version&amp;gt;2.5.1&amp;lt;/version&amp;gt;
    &amp;lt;configuration&amp;gt;
        &amp;lt;source&amp;gt;1.8&amp;lt;/source&amp;gt;
        &amp;lt;target&amp;gt;1.8&amp;lt;/target&amp;gt;

        &amp;lt;compilerArgument&amp;gt;-Xlint:all&amp;lt;/compilerArgument&amp;gt;
        &amp;lt;showWarnings&amp;gt;true&amp;lt;/showWarnings&amp;gt;
        &amp;lt;showDeprecation&amp;gt;true&amp;lt;/showDeprecation&amp;gt;
    &amp;lt;/configuration&amp;gt;
&amp;lt;/plugin&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.81em;&quot;&gt;&lt;b&gt;주의 : servlet-api는 artifactId도 변경해야 됩니다.&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;web.xml&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1574583174289&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
xsi:schemaLocation=&quot;http://java.sun.com/xml/ns/javaee https://java.sun.com/xml/ns/javaee/web-app_3_0.xsd&quot;&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;저장&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;후&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Building workspace(n%)&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;꼭&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기다려주세요&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;꼭&lt;/span&gt;&lt;span&gt;!&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;4.PNG&quot; data-origin-width=&quot;217&quot; data-origin-height=&quot;251&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/de3XIL/btqzYDDTOxl/SgZwBu8FDu3kKSVLBALPAK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/de3XIL/btqzYDDTOxl/SgZwBu8FDu3kKSVLBALPAK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/de3XIL/btqzYDDTOxl/SgZwBu8FDu3kKSVLBALPAK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fde3XIL%2FbtqzYDDTOxl%2FSgZwBu8FDu3kKSVLBALPAK%2Fimg.png&quot; data-filename=&quot;4.PNG&quot; data-origin-width=&quot;217&quot; data-origin-height=&quot;251&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;&lt;b&gt;spring version, mariadb-java 잘 받아졌는지 확인&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;다&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기다리셨으면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;또&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;남아있습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;&lt;span&gt;프로젝트&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;우&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;클릭&lt;/span&gt;&lt;span&gt; -&amp;gt; &lt;/span&gt;&lt;span&gt;Properties -&amp;gt; Java Build Path -&amp;gt; Libraries &lt;/span&gt;&lt;span&gt;탭&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;클릭&lt;/span&gt;&lt;span&gt; -&amp;gt; &lt;/span&gt;&lt;span&gt;JRE System Library &lt;/span&gt;&lt;span&gt;더블클릭&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;or Edit&amp;hellip;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;버튼&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;클릭&lt;/span&gt;&lt;span&gt; -&amp;gt; &lt;/span&gt;&lt;span&gt;Java 1.6&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt; 설정 돼있는걸 &lt;/span&gt;&lt;span&gt;로컬에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Java 1.8&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;파일&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;선택&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;후&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Finish&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;클릭&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;5.PNG&quot; data-origin-width=&quot;922&quot; data-origin-height=&quot;618&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mpVZc/btqzYD4YP6G/JFN9QwVKo1auS4nH6HLXz1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mpVZc/btqzYD4YP6G/JFN9QwVKo1auS4nH6HLXz1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mpVZc/btqzYD4YP6G/JFN9QwVKo1auS4nH6HLXz1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmpVZc%2FbtqzYD4YP6G%2FJFN9QwVKo1auS4nH6HLXz1%2Fimg.png&quot; data-filename=&quot;5.PNG&quot; data-origin-width=&quot;922&quot; data-origin-height=&quot;618&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;font-size: 0.81em;&quot;&gt;&lt;b&gt;주의 : jre 말고 꼭 jdk를 사용하셔야 나중에 불이익(?)이 없습니다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;바로&lt;/span&gt;&lt;span&gt; Properties &lt;/span&gt;&lt;span&gt;창&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Close&lt;/span&gt;&lt;span&gt; 하지마시고 &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;&lt;span&gt;Project Facets &lt;/span&gt;&lt;span&gt;선택&lt;/span&gt;&lt;span&gt; -&amp;gt; &lt;/span&gt;&lt;span&gt;Java &lt;/span&gt;&lt;span&gt;선택&lt;/span&gt;&lt;span&gt; -&amp;gt; 1.6 - 1.8&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변경&lt;/span&gt;&lt;span&gt; -&amp;gt; &lt;/span&gt;&lt;span&gt;Runtimes&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;탭&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;클릭&lt;/span&gt;&lt;span&gt; -&amp;gt; &lt;/span&gt;&lt;span&gt;Tomcat &lt;/span&gt;&lt;span&gt;체크&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;박스&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;체크&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;후&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;&lt;span&gt;Apply and Close&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;6.PNG&quot; data-origin-width=&quot;986&quot; data-origin-height=&quot;673&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bNKCbS/btqzXiHiphh/K6zFNlSd0HA1fRWLZ4Ij81/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bNKCbS/btqzXiHiphh/K6zFNlSd0HA1fRWLZ4Ij81/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bNKCbS/btqzXiHiphh/K6zFNlSd0HA1fRWLZ4Ij81/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbNKCbS%2FbtqzXiHiphh%2FK6zFNlSd0HA1fRWLZ4Ij81%2Fimg.png&quot; data-filename=&quot;6.PNG&quot; data-origin-width=&quot;986&quot; data-origin-height=&quot;673&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span&gt;또&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기다림&lt;/span&gt;&lt;span&gt;...&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;&lt;span&gt;스프링은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설정이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;반이라고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있는데요&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;프레임워크를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;쓰면&lt;/span&gt;&lt;span&gt; 어쩔수 &lt;/span&gt;&lt;span&gt;없이&lt;/span&gt;&lt;span&gt; 설정부분이 &lt;/span&gt;&lt;span&gt;많이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;들어갑니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot;&gt;&lt;b&gt;3.MyBatis 연결&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;span&gt;자&lt;/span&gt;&lt;span&gt;! &lt;/span&gt;&lt;span&gt;이제&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;DB&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;연결의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시작인데요&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Java&lt;/span&gt;&lt;span&gt;로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;커넥션을&lt;/span&gt;&lt;span&gt; 설정 할수도 &lt;/span&gt;&lt;span&gt;있지만&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;저희는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;바로&lt;/span&gt;&lt;b&gt;&lt;span&gt; *&lt;/span&gt;&lt;span&gt;MyBatis&lt;/span&gt;&lt;/b&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이용하여&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Spring + &lt;/span&gt;&lt;b&gt;&lt;span&gt;*&lt;/span&gt;&lt;span&gt;MyBatis&lt;/span&gt;&lt;/b&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사용합니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.87em;&quot;&gt;&lt;b&gt;&lt;span&gt;*MyBatis : &lt;/span&gt;&lt;span&gt;개발자가&lt;/span&gt;&lt;span&gt; 하드코딩하는 &lt;/span&gt;&lt;span&gt;걸&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;굉장히&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;줄여주는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;아주&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;고마운&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프레임워크&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;생산성&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;쑥쑥&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;설정&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;pom.xml&lt;/span&gt;&lt;/b&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;라이브러리&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;추가&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.81em;&quot;&gt;(이제 감 잡으신 분들도 있겠지만 라이브러리 추가는 항상 pom.xml)&lt;/p&gt;
&lt;pre id=&quot;code_1574583603906&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;dependency&amp;gt;
&amp;lt;groupId&amp;gt;org.mybatis&amp;lt;/groupId&amp;gt;
&amp;lt;artifactId&amp;gt;mybatis&amp;lt;/artifactId&amp;gt;
&amp;lt;version&amp;gt;3.2.2&amp;lt;/version&amp;gt;
&amp;lt;/dependency&amp;gt;

&amp;lt;dependency&amp;gt;&amp;lt;groupId&amp;gt;org.mybatis&amp;lt;/groupId&amp;gt;
&amp;lt;artifactId&amp;gt;mybatis-spring&amp;lt;/artifactId&amp;gt;
&amp;lt;version&amp;gt;1.2.0&amp;lt;/version&amp;gt;
&amp;lt;/dependency&amp;gt;

&amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.springframework&amp;lt;/groupId&amp;gt;
&amp;lt;artifactId&amp;gt;spring-jdbc&amp;lt;/artifactId&amp;gt;
&amp;lt;version&amp;gt;${org.springframework-version}&amp;lt;/version&amp;gt;
&amp;lt;/dependency&amp;gt;

&amp;lt;dependency&amp;gt;
&amp;lt;groupId&amp;gt;commons-dbcp&amp;lt;/groupId&amp;gt;
&amp;lt;artifactId&amp;gt;commons-dbcp&amp;lt;/artifactId&amp;gt;
&amp;lt;version&amp;gt;1.4&amp;lt;/version&amp;gt;
&amp;lt;/dependency&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;WEB-INF -&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;spring - root-context.xml&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;root-context.xml&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1574583680009&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&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;beans xmlns=&quot;http://www.springframework.org/schema/beans&quot;
	xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
	xsi:schemaLocation=&quot;http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd&quot;&amp;gt;
	
&amp;lt;!-- mariaDB와 연결을 담당하는 dataSource --&amp;gt; 
&amp;lt;bean id=&quot;dataSource&quot; class=&quot;org.springframework.jdbc.datasource.SimpleDriverDataSource&quot;&amp;gt;
&amp;lt;property name=&quot;driverClass&quot; value=&quot;org.mariadb.jdbc.Driver&quot;&amp;gt;&amp;lt;/property&amp;gt;
&amp;lt;property name=&quot;url&quot; value=&quot;jdbc:mariadb://127.0.0.1:3306/데이터베이스이름&quot;&amp;gt;&amp;lt;/property&amp;gt; 
&amp;lt;property name=&quot;username&quot; value=&quot;root&quot;&amp;gt;&amp;lt;/property&amp;gt; 
&amp;lt;property name=&quot;password&quot; value=&quot;password&quot;&amp;gt;&amp;lt;/property&amp;gt; 
&amp;lt;/bean&amp;gt; 
 
 &amp;lt;!-- SqlSessionFactory --&amp;gt; 
 &amp;lt;bean id=&quot;sqlSessionFactory&quot; class=&quot;org.mybatis.spring.SqlSessionFactoryBean&quot;&amp;gt; 
 &amp;lt;property name=&quot;dataSource&quot; ref=&quot;dataSource&quot;&amp;gt;&amp;lt;/property&amp;gt; 
 &amp;lt;property name=&quot;configLocation&quot; value=&quot;/WEB-INF/spring/mybatis/mybatis-config.xml&quot;&amp;gt;&amp;lt;/property&amp;gt;
 &amp;lt;/bean&amp;gt; 
 
 &amp;lt;!-- SqlSessionTemplate --&amp;gt; 
 &amp;lt;bean id=&quot;sqlSessoinTemplate&quot; class=&quot;org.mybatis.spring.SqlSessionTemplate&quot;&amp;gt; 
 &amp;lt;constructor-arg name=&quot;sqlSessionFactory&quot; ref=&quot;sqlSessionFactory&quot;&amp;gt;&amp;lt;/constructor-arg&amp;gt; 
 &amp;lt;/bean&amp;gt;

		
&amp;lt;/beans&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;WEB-INF -&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;spring - mybatis 폴더 생성 - mybatis-config.xml 파일 생성&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;mybatis-config.xml&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1574583807034&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&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;!DOCTYPE configuration PUBLIC &quot;-//mybatis.org//DTD Config 3.0//EN&quot; &quot;http://mybatis.org/dtd/mybatis-3-config.dtd&quot;&amp;gt;
&amp;lt;configuration&amp;gt;
&amp;lt;typeAliases&amp;gt;
&amp;lt;typeAlias alias=&quot;board&quot; type=&quot;com.company01.springEx01.logic.Board&quot;/&amp;gt;
&amp;lt;/typeAliases&amp;gt;

&amp;lt;mappers&amp;gt;
&amp;lt;mapper resource=&quot;mapper/board-Mapper.xml&quot;/&amp;gt;
&amp;lt;/mappers&amp;gt;
&amp;lt;/configuration&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;src/main/resources -&amp;gt; mapper 폴더 생성 -&amp;gt; board-Mapper.xml 생성&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;board-Mapper.xml&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1574584243866&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&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;!DOCTYPE mapper PUBLIC &quot;-//mybatis.org//DTD Mapper 3.0//EN&quot; &quot;http://mybatis.org/dtd/mybatis-3-mapper.dtd&quot;&amp;gt;
&amp;lt;mapper namespace=&quot;mapper.board-Mapper&quot;&amp;gt;

&amp;lt;select id=&quot;getBoardList&quot; resultType=&quot;board&quot;&amp;gt;
select * from board;
&amp;lt;/select&amp;gt;
&amp;lt;/mapper&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot;&gt;&lt;b&gt;4.MariaDB 만들기&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;b&gt;MariaDB 접속 (HeidiSQL 이용)&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;9.PNG&quot; data-origin-width=&quot;688&quot; data-origin-height=&quot;416&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BZs1H/btqzYL9y57p/TRZQsi9qxt4MaeqiHoYFOK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BZs1H/btqzYL9y57p/TRZQsi9qxt4MaeqiHoYFOK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BZs1H/btqzYL9y57p/TRZQsi9qxt4MaeqiHoYFOK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBZs1H%2FbtqzYL9y57p%2FTRZQsi9qxt4MaeqiHoYFOK%2Fimg.png&quot; data-filename=&quot;9.PNG&quot; data-origin-width=&quot;688&quot; data-origin-height=&quot;416&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;새 DB 만들기&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1574584772347&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;CREATE DATABASE toyblog;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;새 Table 만들기&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1574584802242&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;CREATE TABLE board (

id INT AUTO_INCREMENT PRIMARY KEY,
subject VARCHAR(64),
context VARCHAR(512),
attachments VARCHAR(64),
likes INT,
views INT,
create_time DATETIME,
update_time DATETIME
)

INSERT INTO board VALUES(1,'제목1','내용1','첨부없음',0,0,NOW(),NULL);&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;font-size: 0.81em;&quot;&gt;가짜 데이터도 하나 넣어주었습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;7.PNG&quot; data-origin-width=&quot;733&quot; data-origin-height=&quot;370&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lTTvN/btqzYDjBc73/oiGQbju3zwe1E0L3utcX41/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lTTvN/btqzYDjBc73/oiGQbju3zwe1E0L3utcX41/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lTTvN/btqzYDjBc73/oiGQbju3zwe1E0L3utcX41/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlTTvN%2FbtqzYDjBc73%2FoiGQbju3zwe1E0L3utcX41%2Fimg.png&quot; data-filename=&quot;7.PNG&quot; data-origin-width=&quot;733&quot; data-origin-height=&quot;370&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;font-size: 0.81em;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.81em;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.81em;&quot;&gt;파일 제공&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/bVlGil/btqzZcyQlOJ/ZoOi614J3V062V2e2TIu81/%5BSpring%5D%201%ED%8E%B8.sql?attach=1&amp;amp;knm=tfile.sql&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;[Spring] 1편.sql&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.00MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;font-size: 0.81em;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.81em;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot;&gt;&lt;b&gt;5.MyBatis를 이용한 DB 값 받아오기&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;b&gt;src/main/java -&amp;gt; com.company01.springEx01 -&amp;gt; logic -&amp;gt; Board(VO). java 생성&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;b&gt;&lt;b&gt;Board.java&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1574584009601&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public class Board { 

private int id; 
private String subject; 
private String context; 
private String attachments; 
private int likes; 
private int views; 
private Date create_time; 
private Date update_time;

//get and set ...

}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;&lt;b&gt;&lt;span&gt;여기까지 만드시고 &lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;b&gt;&lt;span&gt;Source 탭 -&amp;gt; Generate Getters and Setters 클릭 후 Select All -&amp;gt; Generate 버튼 클릭&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;b&gt;&lt;span&gt;&lt;b&gt;&lt;b&gt;&lt;span&gt;Source 탭 -&amp;gt; Generate toString().... 클릭&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;8.PNG&quot; data-origin-width=&quot;528&quot; data-origin-height=&quot;692&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8rdlX/btqzXhn3yMr/YTLmjWWwH0bmDkArxgN0M0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8rdlX/btqzXhn3yMr/YTLmjWWwH0bmDkArxgN0M0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8rdlX/btqzXhn3yMr/YTLmjWWwH0bmDkArxgN0M0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8rdlX%2FbtqzXhn3yMr%2FYTLmjWWwH0bmDkArxgN0M0%2Fimg.png&quot; data-filename=&quot;8.PNG&quot; data-origin-width=&quot;528&quot; data-origin-height=&quot;692&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;src/main/java -&amp;gt; com.company01.springEx01 -&amp;gt; service -&amp;gt; BoardService.java&lt;b&gt;(인터페이스)&lt;/b&gt; 생성&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;pre id=&quot;code_1574682211734&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import java.util.List;
import com.company01.springEx01.logic.Board;

public interface BoardService {
	List&amp;lt;Board&amp;gt; getBoardList();
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.87em;&quot;&gt;&lt;b&gt;주의 : &lt;b&gt;BoardService &lt;/b&gt;class를 만드는게 아니고 interface를 만드는 겁니다.&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;src/main/java -&amp;gt; com.company01.springEx01 -&amp;gt; service -&amp;gt; BoardServiceImpl.java 생성&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;b&gt;&lt;b&gt;BoardServiceImpl.java&lt;/b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1574584332013&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.company01.springEx01.dao.BoardDAO;
import com.company01.springEx01.logic.Board;

@Service
public class BoardServiceImpl implements BoardService{

	@Autowired
	BoardDAO boardDAO;

	public List&amp;lt;Board&amp;gt; getBoardList() {
		return boardDAO.getBoardList();
	}
	
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;src/main/java -&amp;gt; com.company01.springEx01 -&amp;gt; dao -&amp;gt; BoardDAO.java 생성&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;b&gt;BoardDAO.java&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1574584377296&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import java.util.List;

import org.apache.ibatis.session.SqlSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import com.company01.springEx01.logic.Board;

@Repository
public class BoardDAO {

	@Autowired
	public SqlSession sqlSession;
	
	public List&amp;lt;Board&amp;gt; getBoardList() {
		
		return sqlSession.selectList(&quot;getBoardList&quot;);
		
	}
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;src/main/java -&amp;gt; com.company01.springEx01 -&amp;gt; controller-&amp;gt; ViewController.java&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;b&gt;&lt;b&gt;ViewController.java&lt;/b&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1574584529785&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import com.company01.springEx01.logic.Board;
import com.company01.springEx01.service.BoardService;


@Controller
@RequestMapping(&quot;view/*&quot;)
public class ViewController {
	
	@Autowired
	BoardService boardService;
	
	@RequestMapping(&quot;view/dashboard&quot;)
	public ModelAndView dashboard() {
		List&amp;lt;Board&amp;gt; result = boardService.getBoardList(); 
		System.out.println(result);
		ModelAndView mav = new ModelAndView();
		
		return mav;
	}
	
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;10.PNG&quot; data-origin-width=&quot;982&quot; data-origin-height=&quot;27&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qhAPo/btqzYMACVem/6dqNsaBmxvUBvbM5jH9QF1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qhAPo/btqzYMACVem/6dqNsaBmxvUBvbM5jH9QF1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qhAPo/btqzYMACVem/6dqNsaBmxvUBvbM5jH9QF1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqhAPo%2FbtqzYMACVem%2F6dqNsaBmxvUBvbM5jH9QF1%2Fimg.png&quot; data-filename=&quot;10.PNG&quot; data-origin-width=&quot;982&quot; data-origin-height=&quot;27&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;성공적으로 MyBatis를 이용한 DB 연결이 됐습니다.&lt;/p&gt;
&lt;p&gt;얼추 세팅이 맞췄으니, 다음부턴 본격적으로 게시판 만들기에 돌입하겠습니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;b&gt;최종 Project Explorer&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;11.PNG&quot; data-origin-width=&quot;307&quot; data-origin-height=&quot;834&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ngQpw/btqzZKhPdzp/5pPUowBrdN5jlg9wwtkiCK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ngQpw/btqzZKhPdzp/5pPUowBrdN5jlg9wwtkiCK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ngQpw/btqzZKhPdzp/5pPUowBrdN5jlg9wwtkiCK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FngQpw%2FbtqzZKhPdzp%2F5pPUowBrdN5jlg9wwtkiCK%2Fimg.png&quot; data-filename=&quot;11.PNG&quot; data-origin-width=&quot;307&quot; data-origin-height=&quot;834&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Spring/커뮤니티(블로그) 프로젝트</category>
      <category>Spring db 설정</category>
      <category>Spring db 연결하기</category>
      <category>Spring mariadb mybatis</category>
      <category>Spring mariaDB 연결</category>
      <category>Spring MyBatis 설정</category>
      <category>Spring mybatis 설정하기</category>
      <category>Spring version</category>
      <category>Spring 버전 올리기</category>
      <category>Spring 서블릿 3.0</category>
      <author>.java</author>
      <guid isPermaLink="true">https://java119.tistory.com/64</guid>
      <comments>https://java119.tistory.com/64#entry64comment</comments>
      <pubDate>Sun, 24 Nov 2019 17:46:07 +0900</pubDate>
    </item>
    <item>
      <title>[Naver Whale] 크롬신자가 쓰는 네이버 웨일 리뉴얼 2.0 브라우저 일주일 체험 후기</title>
      <link>https://java119.tistory.com/62</link>
      <description>&lt;p&gt;&lt;b&gt;&lt;span&gt;컴퓨터&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;백신보다&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Chrome&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;먼저&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;설치하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Google &lt;/span&gt;&lt;span&gt;Chrome &lt;/span&gt;&lt;span&gt;신자가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;쓰는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;네이버&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;웨일&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;Naver Whale&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;일주일&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;체험&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;리뷰&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;및&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;네이버&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;웨일&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;소개&lt;/span&gt;&lt;span&gt;(Naver Whale) 시작합니다.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Whale 리뉴얼 2.0&lt;/h2&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;소개&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;span&gt;네이버&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;웨일&lt;/span&gt;&lt;span&gt;? &lt;/span&gt;&lt;span&gt;정&lt;/span&gt;&lt;span&gt;~&lt;/span&gt;&lt;span&gt;말&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;생소하다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;네이버&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;개발자센터&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;돌아다니다가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;우연히&lt;/span&gt;&lt;span&gt; 알게되었다. &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.87em;&quot;&gt;&lt;s&gt;&lt;span&gt;(지금 홍보하길래 최신꺼인줄 알았지만 무려 2017년부터 나온 것이다.)&lt;/span&gt;&lt;/s&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;일단&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;웨일이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;무엇이냐하면&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;b&gt;&lt;span&gt;브라우저(Browser)다&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;브라우저&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;크롬&lt;/b&gt;,파이어폭스,익스플로러,엣지 &lt;span&gt;등&lt;/span&gt;&lt;span&gt;.. 같은&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span&gt;인터넷&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;브라우저&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;whale주기.PNG&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/beYafF/btqzSZTOBZv/BCaqnsVtA1fAKKmA5EINE1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/beYafF/btqzSZTOBZv/BCaqnsVtA1fAKKmA5EINE1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/beYafF/btqzSZTOBZv/BCaqnsVtA1fAKKmA5EINE1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbeYafF%2FbtqzSZTOBZv%2FBCaqnsVtA1fAKKmA5EINE1%2Fimg.png&quot; data-filename=&quot;whale주기.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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;무려&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;네이버가&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;만든&lt;/span&gt;&lt;span&gt;..&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;많은&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;기술을&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;접목시켰다는데&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;한번&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;본론으로&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;가보겠습니다&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;그것도&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;b&gt;&lt;span&gt;*&lt;/span&gt;&lt;span&gt;크로미움&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;span&gt;기반으로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;만든&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;브라우저랍니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;한마디로 크롬이랑 같은 엔진을 사용한 것입니다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;&lt;b&gt;&lt;span&gt;*&lt;/span&gt;&lt;span&gt;크로미움&lt;/span&gt;&lt;/b&gt;&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p style=&quot;font-size: 0.87em;&quot;&gt;&lt;span&gt;&lt;b&gt;크로미움이라는&lt;/b&gt; 오픈소스 프로젝트에서 만든 브라우저 이름이 바로 &lt;b&gt;크로미움&lt;/b&gt;입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.87em;&quot;&gt;&lt;span&gt;&lt;b&gt;구글에서 2008년 9월 시작한 프로젝트인 크로미움은 오픈소스 프로젝트&lt;/b&gt; 이기 때문에 구글 직원이 아닌 사람들도 참가할 수 있으며, 이 프로젝트를 통해 만들어진 소스코드에서 컴파일된 브라우저가 바로 &lt;b&gt;크로미움&lt;/b&gt;인 것입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.87em;&quot;&gt;&lt;span&gt;크로미움의 소스 코드는 다양한 브라우저들의 기반 엔진이 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.87em;&quot;&gt;&lt;span&gt;크롬의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;뼈대이죠&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;특징&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;span&gt;크로미움&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기반&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;브라우저&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;현재&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;유일한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;국산&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;브라우저 (스X브라우저는 &lt;/span&gt;&lt;span&gt;서비스를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;종료했다&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;호환성&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;pre id=&quot;code_1574213987650&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;환경 : Windows / macOS / Linux / iOS , android
지원 : Windows 7 이상 / OSX 10.9 이상&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot;&gt;&lt;b&gt;시작하기&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;소개 및 장점&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;b&gt;웨일 다운로드 경로&lt;/b&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1574214174353&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;website&quot; data-og-title=&quot;네이버 웨일 브라우저&quot; data-og-description=&quot;웨일로 만나는 새로운 인터넷 경험&quot; data-og-host=&quot;whale.naver.com&quot; data-og-source-url=&quot;https://whale.naver.com/ko/&quot; data-og-url=&quot;https://whale.naver.com/&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://whale.naver.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://whale.naver.com/ko/&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;&gt;네이버 웨일 브라우저&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;웨일로 만나는 새로운 인터넷 경험&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;whale.naver.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;파일을 받아 다운로드를 시작한 모습&lt;/p&gt;
&lt;p&gt;벌써 기대를 주는 다운로드 창입니다. 되게 아기자기한 다운로드 모습&lt;/p&gt;
&lt;p style=&quot;font-size: 0.87em;&quot;&gt;아직 고래를 보면 도커가 생각나지만 웨일이 바로 떠오르는 그날까지....화이팅&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;whale.PNG&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/o7m20/btqzQUTB6sx/1n52oD95hI32H9ZyPLP3Fk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/o7m20/btqzQUTB6sx/1n52oD95hI32H9ZyPLP3Fk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/o7m20/btqzQUTB6sx/1n52oD95hI32H9ZyPLP3Fk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fo7m20%2FbtqzQUTB6sx%2F1n52oD95hI32H9ZyPLP3Fk%2Fimg.png&quot; data-filename=&quot;whale.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;/&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;style6&quot; /&gt;
&lt;p&gt;짠! 다운로드를 다 하고 네이버 웨일을 실행하면, 구X인가?라는 생각이 바로 들만큼 오마주를 한 것 같다.&lt;/p&gt;
&lt;p&gt;하지만 그냥 오마주 하지 않았다. 바로 웨일의 핵심(?) &lt;b&gt;사이드바&lt;/b&gt;!!&amp;nbsp;&lt;/p&gt;
&lt;p&gt;그리고 다운로드하자마자 크롬의 즐겨찾기를 가져오냐고 물어보는 웨일&lt;/p&gt;
&lt;p&gt;정말 써보고 만든 티가 난다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;whaleindex.PNG&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bx8dHn/btqzS0FaJz0/wzpUJpMVzUkLzy7DDDsOwK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bx8dHn/btqzS0FaJz0/wzpUJpMVzUkLzy7DDDsOwK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bx8dHn/btqzS0FaJz0/wzpUJpMVzUkLzy7DDDsOwK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbx8dHn%2FbtqzS0FaJz0%2FwzpUJpMVzUkLzy7DDDsOwK%2Fimg.png&quot; data-filename=&quot;whaleindex.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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;whalebackgr.PNG&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LEN5h/btqzQUsGhe6/XIU3eKXH31OGKfYzT9sur0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LEN5h/btqzQUsGhe6/XIU3eKXH31OGKfYzT9sur0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LEN5h/btqzQUsGhe6/XIU3eKXH31OGKfYzT9sur0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLEN5h%2FbtqzQUsGhe6%2FXIU3eKXH31OGKfYzT9sur0%2Fimg.png&quot; data-filename=&quot;whalebackgr.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;/&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;style6&quot; /&gt;
&lt;p&gt;제가 쓰고 있는 티스토리 블로그도 사용자가 꾸밀 수 있게 해 놓았죠&lt;/p&gt;
&lt;p&gt;요즘 대세는 사용자가 입맛대로 바꾸는&amp;nbsp;*UI가 대세인데요,&lt;/p&gt;
&lt;p&gt;&lt;b&gt;웨일도 창의 색깔, 기능의 위치, 위젯 형태, 사진 등을 사용자가 꾸밀 수 있게끔 해놓았습니다.&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.81em;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;*UI :&lt;/b&gt; User Interface의 준말, 사용자가 보는 화면을 뜻함&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;whaleColor.PNG&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vYdry/btqzROSYSSm/4YHrEQiSicmtE7OtkOxrJ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vYdry/btqzROSYSSm/4YHrEQiSicmtE7OtkOxrJ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vYdry/btqzROSYSSm/4YHrEQiSicmtE7OtkOxrJ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvYdry%2FbtqzROSYSSm%2F4YHrEQiSicmtE7OtkOxrJ0%2Fimg.png&quot; data-filename=&quot;whaleColor.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;/&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;style6&quot; /&gt;
&lt;p&gt;보시면 화면은 JDK 9 Docs 문서인데요 옆에 사이드바를 이용해서 따로 창을 켜지 않고,&lt;/p&gt;
&lt;p&gt;사이드바를 열여 파파고를 이용할 수 있습니다.&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;제가 생각하는 최고의 장점이죠, 메인화면+사이드바 이용&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;웨일&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;써&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;본&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;기능중&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;제~~ 일&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;맘에&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;듭니다&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;whalesidepapago.PNG&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/9cgFh/btqzQsC7wv0/CEAxSkkfjNK7mR0WeoV8gk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/9cgFh/btqzQsC7wv0/CEAxSkkfjNK7mR0WeoV8gk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/9cgFh/btqzQsC7wv0/CEAxSkkfjNK7mR0WeoV8gk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9cgFh%2FbtqzQsC7wv0%2FCEAxSkkfjNK7mR0WeoV8gk%2Fimg.png&quot; data-filename=&quot;whalesidepapago.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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;whaleSidebar.PNG&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/coMxtZ/btqzQrRJ5V4/ratmAFRcHgHJaGixcKpmp1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/coMxtZ/btqzQrRJ5V4/ratmAFRcHgHJaGixcKpmp1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/coMxtZ/btqzQrRJ5V4/ratmAFRcHgHJaGixcKpmp1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcoMxtZ%2FbtqzQrRJ5V4%2FratmAFRcHgHJaGixcKpmp1%2Fimg.png&quot; data-filename=&quot;whaleSidebar.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;/&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;style6&quot; /&gt;
&lt;p&gt;&lt;b&gt;개발자 도구&lt;/b&gt; 역시 크로미움 출신이라 크롬과 똑같은 &lt;b&gt;*UI&lt;/b&gt;를 제공합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;whalef12.PNG&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cuZopt/btqzT50jXMD/kmg5OKvkIJzzCIy5KQsem0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cuZopt/btqzT50jXMD/kmg5OKvkIJzzCIy5KQsem0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cuZopt/btqzT50jXMD/kmg5OKvkIJzzCIy5KQsem0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcuZopt%2FbtqzT50jXMD%2Fkmg5OKvkIJzzCIy5KQsem0%2Fimg.png&quot; data-filename=&quot;whalef12.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;/&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;style6&quot; /&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;또 하나의 장점이죠, 간편한 네이버 확장 앱 제공&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;물론 크롬도 확장 앱을 가지고 있지만, 국산 브라우저다운 사용자 맞춤 UI를 제공합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;whale확장앱.PNG&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bHdbet/btqzQtWmRa3/np5mejlPJ48FBb7zKk4kJK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bHdbet/btqzQtWmRa3/np5mejlPJ48FBb7zKk4kJK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bHdbet/btqzQtWmRa3/np5mejlPJ48FBb7zKk4kJK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbHdbet%2FbtqzQtWmRa3%2Fnp5mejlPJ48FBb7zKk4kJK%2Fimg.png&quot; data-filename=&quot;whale확장앱.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;/&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;style6&quot; /&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;&lt;span&gt;저전력&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;브라우징&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;놀랍도록&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;빠른&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;로딩&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;속도(라는데&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;일주일&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;써봤지만&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;체감은&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;못&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;느꼈습니다&lt;/span&gt;&lt;span&gt;.)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;빠르고&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;즉각적인&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;응답속도를&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;구현하는&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;lsquo;프로세스&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;가속화&amp;rsquo;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;등&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;관련&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;기술들을&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;중점적으로&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;개발&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;빠른 캡처를 제공하는 캡쳐 기능&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;브라우저 내에서 캡쳐 기능을 제공하기 때문에 바로바로 원하는 부분을 캡처할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;K-011.png&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cHBeif/btqzQ8RJfKE/04Wqf8fRQPHjUC6NfnPi01/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cHBeif/btqzQ8RJfKE/04Wqf8fRQPHjUC6NfnPi01/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cHBeif/btqzQ8RJfKE/04Wqf8fRQPHjUC6NfnPi01/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcHBeif%2FbtqzQ8RJfKE%2F04Wqf8fRQPHjUC6NfnPi01%2Fimg.png&quot; data-filename=&quot;K-011.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;/&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;style6&quot; /&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;단점&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;이클립스에서&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;web project&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;진행&amp;nbsp;할&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;때&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;설정을&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;웨일로&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;할&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;없다는&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;점&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;네이버에서 만들었으니 당연하겠지만, 기본&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;검색이&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;네이버&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;검색이라는&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;점&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;b&gt;비교&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;메모리&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;점유율&lt;/span&gt;&lt;span&gt;(%)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;웨일&lt;/span&gt;&lt;span&gt; &amp;gt; &lt;/span&gt;&lt;span&gt;크롬&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;지원하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기능&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;웨일&lt;/span&gt;&lt;span&gt; &amp;gt; &lt;/span&gt;&lt;span&gt;크롬&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;지원하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기능이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;많은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;만큼&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;메모리&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;점유율이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;높은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;당연지사&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;정리&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;b&gt;어쩌다 보니 후기가 아니라 홍보 글이 된 거 같은데, 그만큼 장점이 많다.&lt;/b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;사용하는데&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;익숙하지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;불편함이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;조금&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있지만&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;번역을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;달고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;사람이기에&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;보조&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;창은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정말&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;쓸모가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있었고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;유용한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;것&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;같다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;맨날&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;웨일을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;쓰진&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않겠지만&lt;/span&gt;&lt;span&gt; 쇼핑,간단한 &lt;/span&gt;&lt;span&gt;서핑&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정도는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;웨일에서&lt;/span&gt;&lt;span&gt; 할꺼 &lt;/span&gt;&lt;span&gt;같습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;다만&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;기본&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;검색이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;네이버&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;검색이라&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;도큐먼트&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문서나&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;신&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기술&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;공부는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;크롬을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;켜서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;구글에&lt;/span&gt;&lt;span&gt; 검색 할 것같습니다.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;마지막으로..&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;후기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;쓰는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;김에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;홍보&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;잠깐&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;네이버&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;웨일&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;홈페이지에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;퍼왔습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;탑재&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기능들&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;소개&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;파파고 &amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;lt; papago &amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;네이버가 모바일용으로 개발한 통역 앱이다&lt;/span&gt;&lt;span&gt;.&amp;nbsp;&lt;/span&gt;&lt;span&gt;현재 사용 가능한 언어는 한국어&lt;/span&gt;&lt;span&gt;,&amp;nbsp;&lt;/span&gt;&lt;span&gt;영어&lt;/span&gt;&lt;span&gt;,&amp;nbsp;&lt;/span&gt;&lt;span&gt;일본어&lt;/span&gt;&lt;span&gt;,&amp;nbsp;&lt;/span&gt;&lt;span&gt;중국어&lt;/span&gt;&lt;span&gt;,&amp;nbsp;&lt;/span&gt;&lt;span&gt;프랑스어&lt;/span&gt;&lt;span&gt;,&amp;nbsp;&lt;/span&gt;&lt;span&gt;스페인어의 6개 국어로,&amp;nbsp;&lt;/span&gt;&lt;span&gt;총&amp;nbsp;&lt;/span&gt;&lt;span&gt;30&lt;/span&gt;&lt;span&gt;종 언어 쌍의 통&lt;/span&gt;&lt;span&gt;&amp;middot;&lt;/span&gt;&lt;span&gt;번역을 제공한다&lt;/span&gt;&lt;span&gt;. iOS&amp;nbsp;&lt;/span&gt;&lt;span&gt;및 안드로이드&amp;nbsp;&lt;/span&gt;&lt;span&gt;OS, PC&lt;/span&gt;&lt;span&gt;에서 이용 가능하다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;나만의 '웨일' 디자인하기&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;나만의 감성을 담아 웨일을 꾸며보세요. &amp;nbsp;새 탭 페이지부터 브라우저 스킨까지 내 취향에 맞게 브라우저를 설정할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;배터리와 메모리 절약&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;'배터리 세이버' 기능과 '메모리 세이버' 기능은 나의 배터리와 메모리를 지켜줍니다. &amp;nbsp;웨일로 웹 브라우징을 하며 배터리는 더 길게, 메모리는 더 여유롭게 쓰세요.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;이거&lt;/span&gt;&lt;span&gt; 좋은거 &lt;/span&gt;&lt;span&gt;같아요&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;하나의 창에서 한눈에 &lt;b&gt;*&lt;/b&gt;&lt;b&gt;옴니태스킹&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;&lt;b&gt;*옴니 태스킹&lt;span&gt;&amp;lt; omnitasking &amp;gt; : &lt;/span&gt;&lt;/b&gt;&lt;span&gt;'옴니(omni) :&amp;nbsp;모든 것&amp;nbsp;+&amp;nbsp;태스킹(tasking) :&amp;nbsp;작업(일)'의 합성어로 하나의 창에서 여러 가지 일을 동시에 하는 것을 말한다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;사이드바&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;사이드바에는 웹 서핑에 필요한 각종 도구들을 모았습니다. 도구를 꺼내서 쓰거나 밸리에 담아 둔 링크를 다시 읽을 때, 음악 플레이어가 필요할 때는 사이드바 버튼을 클릭하세요.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;스페이스&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;두 개의 창을 왔다&lt;/span&gt;&lt;span&gt;&amp;nbsp;갔다 하며 탐색해야 할 땐 스페이스를 여세요. &amp;nbsp;왼쪽 창의 링크를 누르면 오른쪽 창에서 확인할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;모바일 창&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;모바일 창은 PC웹과 모바일 웹을 동시에 탐색할 수 있게 해 줍니다. &amp;nbsp;모바일 웹을 열고 싶을 땐 [설정] 메뉴에서 [모바일 창&lt;/span&gt;&lt;span&gt;]을 클릭하세요.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;​&lt;/p&gt;
&lt;p&gt;&lt;span&gt;다양한 인지 기술로 막힘없는 웹 브라우징&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;맥락을 이해하는 최첨단 번역 기술&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;이미지 속 텍스트까지 번역해주는 최첨단 번역 기능을 사용해보세요. 웨일에 탑재된 파파고의 번역 기술은 맥락까지 이해하여 외국어 페이지를 막힘 없이 사용할 수 있게 합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;&lt;span&gt;안&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;써봤습니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;하지만&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;믿습니다&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;귀로 들으며 즐기는 웹서핑 &lt;/span&gt;&lt;b&gt;&lt;span&gt;*&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;TTS&lt;/b&gt; 기술&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;사람의 말소리처럼 편안하고 자연스럽게 본문을 읽어 주는 웨일의 &lt;b&gt;음성 합성 (*TTS) 기술&lt;/b&gt;을 경험하세요.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.87em;&quot;&gt;&lt;b&gt;&lt;span&gt;*&lt;/span&gt;&lt;span&gt;TTS&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;:&lt;/b&gt; 지정한 문장을 음성으로 읽어준다. 목소리는 꽤나 괜찮다. 간격이 조금 부자연스러운 것만 빼면 좋은 TTS. 특히 선택한 문장의 언어를 자동 인지하여 언어에 맞는 TTS 엔진을 자동 적용시킨다. 영어(클라라)/일어(유리)/중국어(메이메이)는 네이버 번역 사이트에 들어가면 문장 읽어주는 TTS 엔진과 동일한 엔진인데, 한국어의 경우 번역 사이트에서 쓸 수 있는 음성인 미진/진호 대신 네이버 뉴스 음성 읽어주기 기능에 사용되는 엔진인 '규리'로 읽어준다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;목소리로 글을 쓸 수 있는 음성 인식&amp;nbsp;기술&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;웨일은 키보드 없이 말만으로도 글자를 입력할 수 있게 해주는 음성 인식 API를 지원합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;사람을 배려하는 스마트한 기능들&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;퀵 서치&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;바로 검색 결과를 확인하고 싶은 키워드는 드래그하세요. &amp;nbsp;간단한 검색 결과부터 번역까지 그 자리에서 바로 확인할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;스마트 팝업&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;웨일의 스마트 팝업으로 팝업을 쉽게 관리하세요. &amp;nbsp;팝업을 열고 닫기 좋게 한 곳에서 모아줍니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;사이트 곧장 가기&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;주소 창에 복잡한 사이트 주소를 힘겹게 입력하지 않아도, 사이트 이름만 입력하면 바로 이동할 수 있게 해 줍니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;플러그인 호환 모드:&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;ActiveX&lt;/span&gt;&lt;span&gt;&amp;nbsp;호환&amp;nbsp;&lt;/span&gt;&lt;span&gt;기능&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;L&lt;/span&gt;&lt;span&gt;G전자-네이버, &amp;lsquo;웨일 브라우저 모바일 최적화 기술&amp;rsquo; 공동 개발 MOU라는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기사가&lt;/span&gt;&lt;span&gt; 뜰 만큼, 여러&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;방면에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;노력하고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있네요&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;LG전자는 LG V50S 씽큐에 웨일 브라우저를 기본 탑재&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;-&lt;/span&gt;&lt;span&gt;출처&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;네이버&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;웨일&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;홈페이지&lt;/span&gt;&lt;/p&gt;</description>
      <category>소개</category>
      <category>naver whale</category>
      <category>naver whale 단점</category>
      <category>naver whale 장점</category>
      <category>whale vs chrome</category>
      <category>whale 기능</category>
      <category>whale 장단점</category>
      <category>네이버 리뉴얼 2.0 웨일</category>
      <category>네이버 새로운 브라우저</category>
      <category>네이버 신 브라우저</category>
      <category>웨일로만나는네이버</category>
      <author>.java</author>
      <guid isPermaLink="true">https://java119.tistory.com/62</guid>
      <comments>https://java119.tistory.com/62#entry62comment</comments>
      <pubDate>Wed, 20 Nov 2019 11:30:12 +0900</pubDate>
    </item>
    <item>
      <title>[MySQL || MariaDB] 데이터베이스 접근 권한 거부 Host 'IP' is not allowed to connect to this MySQL server</title>
      <link>https://java119.tistory.com/61</link>
      <description>&lt;p style=&quot;font-size: 1.25em;&quot;&gt;&lt;b&gt;&lt;span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Host '172.10.0.254' is not allowed to connect to this MySQL server&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;&lt;span&gt;원인&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;&lt;span&gt;DB&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;외부에서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;접속&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시도시&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;나는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;에러이다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;&lt;span&gt;보안상&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;root&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;계정에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;아무나&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;접근&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;없기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때문에 &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;허용&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;IP&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;지정해줘야&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;DB 접속 후 현재 설정 확인.&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;pre id=&quot;code_1574071783040&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;select Host,User,plugin,authentication_string FROM mysql.user;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;&lt;span&gt;모든&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;IP&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;허용&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;pre id=&quot;code_1574071817204&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '패스워드';&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;&lt;span&gt;IP&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대역대&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;허용&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;pre id=&quot;code_1574071822809&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;GRANT ALL PRIVILEGES ON *.* TO 'root'@'172.10.0.%' IDENTIFIED BY '패스워드';&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;&lt;span&gt;특정&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;IP&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;허용&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;pre id=&quot;code_1574071831194&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;GRANT ALL PRIVILEGES ON *.* TO 'root'@'172.10.0.254' IDENTIFIED BY '패스워드';&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;&lt;span&gt;IP&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;허용&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;후&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;원래 상태로 &lt;/span&gt;&lt;span&gt;되돌리기&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;pre id=&quot;code_1574071837644&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;DELETE FROM mysql.user WHERE Host='%' AND User='아이디';
FLUSH PRIVILEGES;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;이 설정을 했음에도 불구하고 접근 권한 거부가 뜬다면,&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;firewall(&lt;/span&gt;&lt;span&gt;방화벽&lt;/span&gt;&lt;span&gt;)를 확인 해보자. &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;&lt;span&gt;3306 &lt;/span&gt;&lt;span&gt;port&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;허용해줘야&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;방화벽 포트 확인&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1574071991268&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;firewall-cmd --list-all-zones&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;3306 포트 허용하기&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1574072054940&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;firewall-cmd --permanent --zone=public --add-port=3306/tcp&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>MariaDB</category>
      <category>3306 port 허용</category>
      <category>3306 포트 허용</category>
      <category>Host 'IP' is not allowed to connect to this MySQL server</category>
      <category>MariaDB 접근 권한 허용</category>
      <category>MySQL 접근 권한 허용</category>
      <category>데이터베이스 접근 권한 거부</category>
      <author>.java</author>
      <guid isPermaLink="true">https://java119.tistory.com/61</guid>
      <comments>https://java119.tistory.com/61#entry61comment</comments>
      <pubDate>Tue, 19 Nov 2019 08:00:58 +0900</pubDate>
    </item>
    <item>
      <title>[IT용어] 프레임워크(Framework)와 라이브러리(Library)</title>
      <link>https://java119.tistory.com/60</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;&lt;b&gt;프레임&lt;/b&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&lt;b&gt;워크&lt;/b&gt;&lt;/span&gt;&lt;span&gt;&lt;b&gt;(&lt;/b&gt;&lt;/span&gt;&lt;span&gt;&lt;b&gt;Framewor&lt;/b&gt;&lt;/span&gt;&lt;span&gt;&lt;b&gt;k&lt;/b&gt;&lt;/span&gt;&lt;span&gt;&lt;b&gt;)&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;개념&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;b&gt;원하는 기능 구현에만 집중하여 빠르게 개발할 수 있도록 기본적으로 필요한 기능을 갖추고 있는 것&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;프로그램의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기본이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;되는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;뼈대&lt;/b&gt;라고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;보면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.87em;&quot;&gt;&lt;span&gt;뼈대&lt;/span&gt;&lt;span&gt;? &lt;/span&gt;&lt;span&gt;뭔&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;뼈대&lt;/span&gt;&lt;span&gt;? &lt;/span&gt;&lt;span&gt;이해가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;잘&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않는다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.87em;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;예를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;들면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;b&gt;&lt;span&gt;공룡제작&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;프레임워크&lt;/b&gt;를&lt;/span&gt;&lt;span&gt; 다운받아서 &lt;/span&gt;&lt;span&gt;써보자&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;기본으로 공룡&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;뼈대가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제작돼있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;&lt;span&gt;-티라노사우루스&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;뼈대&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;&lt;span&gt;-벨로키랍토르&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;뼈대&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;&lt;span&gt;-스피노사우루스&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;뼈대&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;&lt;span&gt;-알로사우루스&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;뼈대&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.94em;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.87em;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;그럼&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;우리가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;b&gt;&lt;span&gt;티라노사우루스&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;뼈대&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;프레임워크&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/b&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;골라&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;b&gt;&lt;span&gt;제작&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;코딩&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/b&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한다고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가정했을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;티라노의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;형태가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이미&lt;/span&gt;&lt;span&gt; 만들어져있으니 &lt;/span&gt;&lt;span&gt;살을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;어떻게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;붙일까만&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;집중해서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;코딩할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있겠죠&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;그리고&lt;/p&gt;
&lt;p&gt;&lt;span&gt;뼈대엔&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;팔이&lt;/span&gt;&lt;span&gt; 2&lt;/span&gt;&lt;span&gt;개&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있는데&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;새로운&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;뼈를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;만들어서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;팔을&lt;/span&gt;&lt;span&gt; 3&lt;/span&gt;&lt;span&gt;개&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;만들&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;순&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;없다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;왜&lt;/span&gt;&lt;span&gt;? &lt;/span&gt;&lt;span&gt;팔&lt;/span&gt;&lt;span&gt; 2&lt;/span&gt;&lt;span&gt;개라고&lt;/span&gt;&lt;span&gt; 정의 해놨으니까요 &quot;&lt;/span&gt;&lt;span&gt;티라노사우르스&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;뼈대는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;팔이 2개다.&quot; 라고 &lt;/span&gt;&lt;span&gt;말이죠&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;하지만&lt;/span&gt;&lt;span&gt;? &lt;/span&gt;&lt;span&gt;팔을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;굵게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;만들고,&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;꼬리는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;짧게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다리는&lt;/span&gt;&lt;span&gt; 길게(메소드길게(메서드) 만들순 &lt;/span&gt;&lt;span&gt;있습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;&lt;span&gt;사용&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이유&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;span&gt;만약 공룡 제작&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프레임워크가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;없다면&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;그&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;뼈대&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자체를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;만드는데만&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;세월이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;걸리게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;됩니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;하지만&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프레임워크를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이용한다면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;더욱&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;빠르게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;만들&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있고&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;팔&lt;/span&gt;&lt;span&gt; 2&lt;/span&gt;&lt;span&gt;개&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다리&lt;/span&gt;&lt;span&gt; 2&lt;/span&gt;&lt;span&gt;개&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;꼬리&lt;/span&gt;&lt;span&gt; 1&lt;/span&gt;&lt;span&gt;개&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이렇게&lt;/span&gt;&lt;span&gt; 정해져있으니 &lt;/span&gt;&lt;b&gt;&lt;span&gt;표준을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;예를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;들어&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;공룡 제작&lt;span&gt;프레임워크&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;소스를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;받는다면&lt;/span&gt;&lt;span&gt; &quot;&lt;/span&gt;&lt;span&gt;아&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;팔&lt;/span&gt;&lt;span&gt; 2&lt;/span&gt;&lt;span&gt;개&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다리&lt;/span&gt;&lt;span&gt; 2&lt;/span&gt;&lt;span&gt;개&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;꼬리&lt;/span&gt;&lt;span&gt; 1&lt;/span&gt;&lt;span&gt;개이겠구나&lt;/span&gt;&lt;span&gt;&quot; &lt;/span&gt;&lt;span&gt;알&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;&lt;span&gt;언어별&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대표&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프레임워크&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;Java - Spring&lt;/p&gt;
&lt;p&gt;Python - Django&lt;/p&gt;
&lt;p&gt;PHP - Laravel&lt;/p&gt;
&lt;p&gt;JavaScript - React&lt;/p&gt;
&lt;p&gt;GO - Revel&lt;/p&gt;
&lt;p&gt;Ruby - Rails&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;&lt;span&gt;&lt;b&gt;라이브 러리(&lt;/b&gt;&lt;/span&gt;&lt;span&gt;&lt;b&gt;Library&lt;/b&gt;&lt;/span&gt;&lt;span&gt;&lt;b&gt;)&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;개념&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;필요한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;기능을&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;미리&lt;/span&gt;&lt;span&gt; 준비 해놓은 개념&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;굉장히&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;범위가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;포괄적이다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;미리 작성된 코드&lt;/span&gt;&lt;span&gt;,&amp;nbsp;&lt;/span&gt;&lt;span&gt;서브루틴&lt;/span&gt;&lt;span&gt;(함수),&amp;nbsp;&lt;/span&gt;&lt;span&gt;클래스&lt;/span&gt;&lt;span&gt;,&amp;nbsp;&lt;/span&gt;&lt;span&gt;값&lt;/span&gt;&lt;span&gt;,&amp;nbsp;&lt;/span&gt;&lt;span&gt;자료형&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;모두가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;라이브러리에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;속한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;&lt;span&gt;한마디로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;재사용이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가능한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;코드의&lt;/span&gt;&lt;span&gt; 집합 이라고 &lt;/span&gt;&lt;span&gt;보시면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;됩니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;예를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;들면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;위&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;예시처럼&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;공룡&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;제작&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;프레임워크를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;쓰고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다가&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;그냥&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발톱이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;아닌&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;b&gt;&lt;span&gt;강철&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;발톱&lt;/b&gt;을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;쓰고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;싶다면&lt;/span&gt;&lt;span&gt;?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;발톱은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;팔&lt;/span&gt;&lt;span&gt; 2&lt;/span&gt;&lt;span&gt;개&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다리&lt;/span&gt;&lt;span&gt; 2&lt;/span&gt;&lt;span&gt;개&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;총&lt;/span&gt;&lt;span&gt; 4&lt;/span&gt;&lt;span&gt;개나&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;들어간다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;그럼&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;라이브러리를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;쓰지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않는다면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;강철&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발톱을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;하나&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;만들어서&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;일일이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;복사&lt;/span&gt;&lt;span&gt; 붙여넣기 &lt;/span&gt;&lt;span&gt;해야&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;매우&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가독성이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;떨어지며&lt;/span&gt;&lt;span&gt; 유지보수도 굉장히 힘들다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;하지만&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이미&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;만들어진&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;b&gt;강철 발톱&lt;/b&gt;&lt;span&gt;&lt;b&gt;라이브러리&lt;/b&gt;가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;그&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;라이브러리를&lt;/span&gt;&lt;span&gt; 적용 시킴으로써&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;바로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;b&gt;&lt;span&gt;강철&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt;발톱&lt;/b&gt;을&lt;/span&gt;&lt;span&gt; 장착 시킬 &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;여기서 프레임워크의 강점이 또 나온다. 강철 발톱은 반드시 공룡 제작 프레임워크에만 사용 가능하다는 점.&lt;/p&gt;
&lt;p&gt;(특정 프레임워크에 맞게 나온 라이브러리들이 많이 존재한다)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;&lt;span&gt;사용&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;이유&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;span&gt;재사용이 필요한 기능으로 반복적인 코드 작성을 없앨&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;그러므로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;개발이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;훨씬&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수월해진다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;&lt;span&gt;대표&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;라이브러리&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;JavaScript - jQuery, Chart.js&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Python - &lt;/span&gt;&lt;span&gt;아파치 Libcloud, Arrow,Behold&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Java - JUnit, Jackson&lt;/p&gt;</description>
      <category>IT 용어</category>
      <category>Framework</category>
      <category>laravel</category>
      <category>library</category>
      <category>spring</category>
      <category>대표 라이브러리</category>
      <category>대표 프레임워크</category>
      <category>라이브러리 예시</category>
      <category>라이브러리란?</category>
      <category>프레임워크 예시</category>
      <category>프레임워크란?</category>
      <author>.java</author>
      <guid isPermaLink="true">https://java119.tistory.com/60</guid>
      <comments>https://java119.tistory.com/60#entry60comment</comments>
      <pubDate>Mon, 18 Nov 2019 16:06:02 +0900</pubDate>
    </item>
    <item>
      <title>[IT용어] 정적,동적 프로그래밍 언어</title>
      <link>https://java119.tistory.com/59</link>
      <description>&lt;h2&gt;정적 언어&lt;/h2&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;&lt;span&gt;개념&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;자료형(Type)이 고정돼 있는 언어.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;정적&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;언어는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;b&gt;&lt;span&gt;*&lt;/span&gt;&lt;span&gt;컴파일&lt;/span&gt;&lt;/b&gt;&lt;span&gt;을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;진행할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;변수의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;타입이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;결정된다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.81em;&quot;&gt;&lt;b&gt;&lt;span&gt;*&lt;/span&gt;&lt;span&gt;컴파일&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;우리&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;사용한&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;언어를&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;컴퓨터가&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;알아먹을&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;있게&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;바이트코드&amp;nbsp;라는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;것으로&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;변경하는&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;작업&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.81em;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;대표적인&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;예를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;들자면&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;Java(&lt;/span&gt;&lt;span&gt;자바&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/b&gt;&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1574052502136&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;String a = 10; //에러

int b = 10; //성공

var c = 22; //에러&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;span&gt;이렇게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;코딩을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;했을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;경우&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;바로&lt;/span&gt;&lt;span&gt; 빨간줄이 &lt;/span&gt;&lt;span&gt;그어지면서&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;에러가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;나는데&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;유치한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;상황극&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;Java&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt; :&lt;/b&gt; &lt;/span&gt;&lt;span&gt;&quot;&lt;/span&gt;&lt;span&gt;야&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;String&lt;/span&gt;&lt;span&gt;인데&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정수잖아&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;그리고&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt;는&lt;/span&gt;&lt;span&gt; 뉘집 &lt;/span&gt;&lt;span&gt;개야&lt;/span&gt;&lt;span&gt;? &lt;/span&gt;&lt;span&gt;난&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;몰라&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;에러 나는 코드야&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;컴파일&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;난&lt;/span&gt;&lt;span&gt; 안해줘 &lt;/span&gt;&lt;span&gt;아니&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;못해줘&lt;/span&gt;&lt;span&gt;&quot;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;프로&lt;/span&gt;&lt;span&gt; 야근러&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;b&gt; :&lt;/b&gt; &quot;&lt;/span&gt;&lt;span&gt;아&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;그러네&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;미안&lt;/span&gt;&lt;span&gt;&quot;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;이런 식으로&lt;span&gt;컴파일&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;자료형에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;맞지&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;않은&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;값이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;들어있으면&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;컴파일&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;에러가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발생합니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;사용 이유&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;span&gt;컴파일&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;시에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;타입에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;대한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;정보를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;결정하기&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;때문에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;b&gt;&lt;span&gt;속도 향상&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;타입&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;에러로&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;인한&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;문제점을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;초기에&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;발견할&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;수&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;있어&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;타입의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&lt;b&gt;안정성 보장&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;종류&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;C&lt;/p&gt;
&lt;p&gt;C#&lt;/p&gt;
&lt;p&gt;C++&lt;/p&gt;
&lt;p&gt;Java&lt;/p&gt;
&lt;p&gt;Go&lt;/p&gt;
&lt;p&gt;Haskell&lt;/p&gt;
&lt;p&gt;Kotlin&lt;/p&gt;
&lt;p&gt;Rust&lt;/p&gt;
&lt;p&gt;Scala&amp;nbsp;&lt;/p&gt;
&lt;p&gt;... 외에 더 있습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;동적 언어&lt;/h2&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;개념&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;자료형이 그것을 처리할 함수(또는 메서드)에 따라 그때그때 바뀌는 언어.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;동적 타입 언어의 자료형은 컴파일 시 자료형을 정하는 것이 아니고 &lt;b&gt;*런타임&lt;/b&gt; 시에 결정합니다. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;대표적인 예를 들자면,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;JavaScript&lt;/b&gt;(자바스크립트)&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1574053121204&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function sum(){
var a = 10;
var b= &quot;10&quot;;
console.log(a+b);
//&quot;1010&quot; 
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;이런 식으로 정수 10인 &lt;b&gt;a 변수&lt;/b&gt;와 문자열 &quot;10&quot;인&lt;b&gt; b 변수&lt;/b&gt;를 더하면 에러를 뱉지 않고, 문자열 &quot;1010&quot;이 된다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;유치한 상황극 2&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;JavaScript : &lt;/b&gt;&quot;a랑 b를 더한다고? 음 정수+문자열이긴 한데 정수 값으로 된 문자열이니까 내가 합쳐줘야겠다 여기 1010&quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;프로 &lt;b&gt;야근러&lt;/b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;:&lt;/b&gt; &quot;고맙다^^ 근데 내가 원하는 값은 20이야&quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.81em;&quot;&gt;&lt;b&gt;&lt;span&gt;*&lt;/span&gt;&lt;span&gt;런타임&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;프로그래밍&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;언어가&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;구동되는&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;환경&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;&lt;span&gt;런타임이 실행될 때 타입을 검사한다는 게 무슨 말일까?&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;JavaScript&lt;/b&gt;(자바스크립트) 코드로 알아보자&lt;/p&gt;
&lt;pre id=&quot;code_1574056050870&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function calc(){
var a = 'blueHat'-1;
return a;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;span&gt;Java 코드였다면 미치고 팔짝 뛰면서 에러를 뱉을 텐데&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;JavaScript는 아무런 반응이 없다. 컴파일을 통과했다는 소리!&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;하지만&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1574056192473&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;calc();&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;span&gt;함수를 실행한다면? &lt;b&gt;실행될 때 즉!! *런타임 될 때!!&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;b&gt;NaN (TypeError)를 뱉습니다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;JavaScript :&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;span style=&quot;color: #333333;&quot;&gt; 이건 너무한 거 아니냐고! 퉤 TypeError&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;사용 이유&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;*런타임(Run time)&lt;/b&gt;까지 타입에 대한 결정을 끌고 갈 수 있기 때문에 많은 선택의 여지가 있고,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;동적으로 변경되기 때문에 결과가 이상하게 나올지라도 (빨간 글씨만 나오면 심장이 두근대는)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt; 매우 까다로운(?) 자료형 검사를 피할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;종류&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;JavaScript&lt;/p&gt;
&lt;p&gt;Ruby&lt;/p&gt;
&lt;p&gt;Python&lt;/p&gt;
&lt;p&gt;SmallTalk&lt;/p&gt;
&lt;p&gt;Lisp&lt;/p&gt;
&lt;p&gt;Lua&lt;/p&gt;
&lt;p&gt;Perl&lt;/p&gt;
&lt;p&gt;PHP&lt;/p&gt;
&lt;p&gt;... 외에 더 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>IT 용어</category>
      <category>Java 정적</category>
      <category>JavaScript 동적</category>
      <category>동적 프로그래밍 언어</category>
      <category>동적 프로그래밍 종류</category>
      <category>런타임</category>
      <category>정적 프로그래밍 언어</category>
      <category>정적 프로그래밍 종류</category>
      <category>컴파일</category>
      <author>.java</author>
      <guid isPermaLink="true">https://java119.tistory.com/59</guid>
      <comments>https://java119.tistory.com/59#entry59comment</comments>
      <pubDate>Mon, 18 Nov 2019 15:03:29 +0900</pubDate>
    </item>
    <item>
      <title>[Spring] 프로젝트 커뮤니티,블로그 만들기(#2)-package 생성 및 설정 (Feat.Controller,Service,DAO)</title>
      <link>https://java119.tistory.com/58</link>
      <description>&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;안녕하세요 무작정 일단 따라해보는 Spring 커뮤니티 만들기 2탄 시작합니다.&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;환경&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1573977191701&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Eclipse 2019-9 Jee 
JDK 1.8_231 
Apache Tomcat 8.5.47&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Spring 프로젝트 구조&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;1.PNG&quot; data-origin-width=&quot;255&quot; data-origin-height=&quot;564&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cixRv3/btqzOLhmIBU/0qkiwJkyHVnpdGoqdqyxb0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cixRv3/btqzOLhmIBU/0qkiwJkyHVnpdGoqdqyxb0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cixRv3/btqzOLhmIBU/0qkiwJkyHVnpdGoqdqyxb0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcixRv3%2FbtqzOLhmIBU%2F0qkiwJkyHVnpdGoqdqyxb0%2Fimg.png&quot; data-filename=&quot;1.PNG&quot; data-origin-width=&quot;255&quot; data-origin-height=&quot;564&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;1편에서 만들었던 Spring 프로젝트죠&amp;nbsp;&lt;/p&gt;
&lt;p&gt;굉장히 복잡해보이는데요 한번 간단하게 알아보겠습니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;b&gt;src/main/java :&lt;/b&gt; 말 그대로 &lt;span style=&quot;color: #333333;&quot;&gt;java 파일들이 모여있는 곳 (Controller,Service,DAO)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;한마디로 Java 파일을 만들 땐 이 패키지에 만들면 됩니다.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;2.PNG&quot; data-origin-width=&quot;221&quot; data-origin-height=&quot;56&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/U8vVA/btqzOdr9G0y/EJbU2vTMtd5mdgDitmTEK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/U8vVA/btqzOdr9G0y/EJbU2vTMtd5mdgDitmTEK1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/U8vVA/btqzOdr9G0y/EJbU2vTMtd5mdgDitmTEK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FU8vVA%2FbtqzOdr9G0y%2FEJbU2vTMtd5mdgDitmTEK1%2Fimg.png&quot; data-filename=&quot;2.PNG&quot; data-origin-width=&quot;221&quot; data-origin-height=&quot;56&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;/&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;style6&quot; /&gt;
&lt;p&gt;&lt;b&gt;src/main/resources : 서버가 실행될 때 필요한 파일들,배포할 리소스 파일 &lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.81em;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;-&lt;/span&gt;&lt;/b&gt;XML &lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Mapper(쿼리),로그 설정..등&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.81em;&quot;&gt;&lt;b&gt;-Properties 파일&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;3.PNG&quot; data-origin-width=&quot;192&quot; data-origin-height=&quot;55&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cGMgF9/btqzOL2MwhB/RRI7bxFTLwNVLy3oG40OR0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cGMgF9/btqzOL2MwhB/RRI7bxFTLwNVLy3oG40OR0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cGMgF9/btqzOL2MwhB/RRI7bxFTLwNVLy3oG40OR0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcGMgF9%2FbtqzOL2MwhB%2FRRI7bxFTLwNVLy3oG40OR0%2Fimg.png&quot; data-filename=&quot;3.PNG&quot; data-origin-width=&quot;192&quot; data-origin-height=&quot;55&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;/&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;style6&quot; /&gt;
&lt;p&gt;&lt;b&gt;src/main/webapp :&lt;/b&gt; 웹 애플리케이션 관련 파일&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;src/main/webapp/WEB-INF/views :&lt;/b&gt; jsp 페이지 경로&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;4.PNG&quot; data-origin-width=&quot;183&quot; data-origin-height=&quot;219&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/q5QEb/btqzPvkBTB0/bYbNsChHpxj3Kgk75jtpU1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/q5QEb/btqzPvkBTB0/bYbNsChHpxj3Kgk75jtpU1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/q5QEb/btqzPvkBTB0/bYbNsChHpxj3Kgk75jtpU1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fq5QEb%2FbtqzPvkBTB0%2FbYbNsChHpxj3Kgk75jtpU1%2Fimg.png&quot; data-filename=&quot;4.PNG&quot; data-origin-width=&quot;183&quot; data-origin-height=&quot;219&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;/&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;style6&quot; /&gt;
&lt;p&gt;&lt;b&gt;pom.xml :&lt;/b&gt; Maven 관련 설정 파일&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;5.PNG&quot; data-origin-width=&quot;87&quot; data-origin-height=&quot;21&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cbqwHu/btqzOMABbtj/XysEkoJ9o4sYVwGOKh1yJ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cbqwHu/btqzOMABbtj/XysEkoJ9o4sYVwGOKh1yJ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cbqwHu/btqzOMABbtj/XysEkoJ9o4sYVwGOKh1yJ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcbqwHu%2FbtqzOMABbtj%2FXysEkoJ9o4sYVwGOKh1yJ0%2Fimg.png&quot; data-filename=&quot;5.PNG&quot; data-origin-width=&quot;87&quot; data-origin-height=&quot;21&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;/&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;style6&quot; /&gt;
&lt;p&gt;정말 최고로 간단하게 설명했고,&lt;/p&gt;
&lt;p&gt;이 이상은 &lt;b&gt;일단 따라해보는 Spring 프로젝트 취지&lt;/b&gt;에&amp;nbsp;맞지 않기 때문에 다루지 않습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;Controller,Service,DAO package 만들기&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;b&gt;src/main/java 폴더 우 클릭 후 -&amp;gt; New -&amp;gt; Package&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;이렇게 3개(controller,service,dao)의 Package를 만들어주세요.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;6.PNG&quot; data-origin-width=&quot;512&quot; data-origin-height=&quot;428&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ctPuAD/btqzOdeDeZa/cAaw6MU2nm2eestMwXrvYk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ctPuAD/btqzOdeDeZa/cAaw6MU2nm2eestMwXrvYk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ctPuAD/btqzOdeDeZa/cAaw6MU2nm2eestMwXrvYk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FctPuAD%2FbtqzOdeDeZa%2FcAaw6MU2nm2eestMwXrvYk%2Fimg.png&quot; data-filename=&quot;6.PNG&quot; data-origin-width=&quot;512&quot; data-origin-height=&quot;428&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;/&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;style6&quot; /&gt;
&lt;p&gt;&lt;b&gt;그리고 기존에 있던 HomeController.java는 삭제해줍시다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;최종&lt;/b&gt; &lt;b&gt;src/main/java&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;13.PNG&quot; data-origin-width=&quot;250&quot; data-origin-height=&quot;109&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0SDCr/btqz0AFNHAx/ZxZm6Y3tmIOXnB07TRgJFK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0SDCr/btqz0AFNHAx/ZxZm6Y3tmIOXnB07TRgJFK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0SDCr/btqz0AFNHAx/ZxZm6Y3tmIOXnB07TRgJFK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0SDCr%2Fbtqz0AFNHAx%2FZxZm6Y3tmIOXnB07TRgJFK%2Fimg.png&quot; data-filename=&quot;13.PNG&quot; data-origin-width=&quot;250&quot; data-origin-height=&quot;109&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;/&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;style6&quot; /&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;Controller 만들기&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;b&gt;com.company01.springEx01.controller 패키지 우 클릭 -&amp;gt; New -&amp;gt; Class&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Name :&lt;/b&gt; ViewController&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;7.PNG&quot; data-origin-width=&quot;530&quot; data-origin-height=&quot;633&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bXp1Cz/btqzPvdSbmG/tVMV18tDD9eWQdQyBi9Z3k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bXp1Cz/btqzPvdSbmG/tVMV18tDD9eWQdQyBi9Z3k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bXp1Cz/btqzPvdSbmG/tVMV18tDD9eWQdQyBi9Z3k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbXp1Cz%2FbtqzPvdSbmG%2FtVMV18tDD9eWQdQyBi9Z3k%2Fimg.png&quot; data-filename=&quot;7.PNG&quot; data-origin-width=&quot;530&quot; data-origin-height=&quot;633&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;이렇게 ViewController.java 라는 파일을 만들었는데요 이게 Controller라는걸 컴퓨터는 모르겠죠?&lt;/p&gt;
&lt;p&gt;그래서 &lt;b&gt;@Controller&lt;/b&gt; 라는 이름표를 붙여줍니다.&lt;/p&gt;
&lt;pre id=&quot;code_1573980641460&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@Controller
@RequestMapping(&quot;view/*&quot;)
public class ViewController {

	@RequestMapping(&quot;view/dashboard&quot;)
	public ModelAndView dashboard() {
		ModelAndView mav = new ModelAndView();
		
		return mav;
	}
	
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;@Controller : 컨트롤러라는걸 명시하는 어노테이션&lt;/p&gt;
&lt;p&gt;@RequestMapping : 클라이언트가 요청한 URL를 누가 처리 할 것인지 결정하는 길잡이 역할&lt;/p&gt;
&lt;p style=&quot;font-size: 0.81em;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;-@RequestMapping(&quot;view/*&quot;) : URL에 view라는 요청이 들어오면 무조건 &lt;b&gt;ViewController.java&lt;/b&gt;으로 보내겠다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 0.81em;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;-&lt;span style=&quot;color: #333333;&quot;&gt;@RequestMapping(&quot;view/dashboard&quot;) : URL에 view/dashboard라는 요청이 들어오면 &lt;b&gt;dashboard()&lt;/b&gt; 라는 메소드&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;로 보내겠다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;자 그럼 Controller는 만들었으니 &lt;b&gt;view &lt;/b&gt;라는 폴더를 만들어야겠죠&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;그전에 먼저 기존에 존재하던 &lt;b&gt;home.jsp&lt;/b&gt;도 삭제 해줍시다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;src/main/webapp/WEB-INF/views/ 마우스 우 클릭 후 -&amp;gt; New -&amp;gt; Folder&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Folder name : view&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;8.PNG&quot; data-origin-width=&quot;512&quot; data-origin-height=&quot;598&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bwgYyB/btqzNavTIAV/6Ueb4t5LtPQHbVRkkK4qs0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bwgYyB/btqzNavTIAV/6Ueb4t5LtPQHbVRkkK4qs0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bwgYyB/btqzNavTIAV/6Ueb4t5LtPQHbVRkkK4qs0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbwgYyB%2FbtqzNavTIAV%2F6Ueb4t5LtPQHbVRkkK4qs0%2Fimg.png&quot; data-filename=&quot;8.PNG&quot; data-origin-width=&quot;512&quot; data-origin-height=&quot;598&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;view&lt;/b&gt; 폴더가 만들어졌으면, &lt;b&gt;view 폴더 우 클릭 -&amp;gt; New -&amp;gt; JSP File&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;File name : dashboard&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;9.PNG&quot; data-origin-width=&quot;514&quot; data-origin-height=&quot;552&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/u9arh/btqzM9DLJo6/fEsRTTBNLETQbCEtkT4r81/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/u9arh/btqzM9DLJo6/fEsRTTBNLETQbCEtkT4r81/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/u9arh/btqzM9DLJo6/fEsRTTBNLETQbCEtkT4r81/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fu9arh%2FbtqzM9DLJo6%2FfEsRTTBNLETQbCEtkT4r81%2Fimg.png&quot; data-filename=&quot;9.PNG&quot; data-origin-width=&quot;514&quot; data-origin-height=&quot;552&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;dashboard.jsp &lt;/b&gt;생성 후 -&amp;gt;더블 클릭 -&amp;gt; 코드 작성&lt;/p&gt;
&lt;pre id=&quot;code_1573981270340&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&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;dashboard&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
&amp;lt;p&amp;gt;dashboard 입니다.&amp;lt;/p&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;그런데 지금 &lt;b&gt;HomeController&lt;/b&gt;와 &lt;b&gt;home.jsp&lt;/b&gt;가 없기때문에 톰캣 서버를 켰을 때&lt;/p&gt;
&lt;p&gt;&lt;b&gt;404 페이지가 출력&lt;/b&gt;되는 현상이 발생됬습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;처음 사이트에 진입하면 보이는 화면을 보통 &lt;b&gt;index&lt;/b&gt; 화면이라고 하는데요.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;index.jsp&lt;/b&gt;를 만들어봅시다.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;src/main/webapp/ 폴더 우 클릭 후 -&amp;gt; New -&amp;gt; JSP File&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;File name : index&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;14.PNG&quot; data-origin-width=&quot;513&quot; data-origin-height=&quot;550&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/HkFby/btqzOdsbfxq/aXHtvuE0FdbbK4DICQ3KmK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/HkFby/btqzOdsbfxq/aXHtvuE0FdbbK4DICQ3KmK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/HkFby/btqzOdsbfxq/aXHtvuE0FdbbK4DICQ3KmK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHkFby%2FbtqzOdsbfxq%2FaXHtvuE0FdbbK4DICQ3KmK%2Fimg.png&quot; data-filename=&quot;14.PNG&quot; data-origin-width=&quot;513&quot; data-origin-height=&quot;550&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;주의 : views 폴더에 만드는 것이 아닌 webapp 폴더 밑에 만드셔야 합니다. WEB-INF,views 아니고,&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 반드시 webapp 밑에 만드셔야 합니다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;b&gt;index.jsp &lt;/b&gt;&lt;/b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;생성 후&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;-&amp;gt; 더블 클릭 -&amp;gt; 코드 작성&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1573981929163&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&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;SpringEx01 커뮤니티&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
&amp;lt;p&amp;gt;환영합니다 SpringEx01 커뮤니티입니다.(index page)&amp;lt;/p&amp;gt;
&amp;lt;a href=&quot;/springEx01/view/dashboard&quot;&amp;gt;대시보드 보러가기&amp;lt;/a&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;자 그럼 들어가 볼까요?&lt;/p&gt;
&lt;p&gt;&lt;b&gt;먼저 Run on Server를 하고 바로 들어온 모습입니다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;15.PNG&quot; data-origin-width=&quot;392&quot; data-origin-height=&quot;153&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cJ0V46/btqzOMOagjC/io78meVrQKcK5V32lSL7P1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cJ0V46/btqzOMOagjC/io78meVrQKcK5V32lSL7P1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cJ0V46/btqzOMOagjC/io78meVrQKcK5V32lSL7P1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcJ0V46%2FbtqzOMOagjC%2Fio78meVrQKcK5V32lSL7P1%2Fimg.png&quot; data-filename=&quot;15.PNG&quot; data-origin-width=&quot;392&quot; data-origin-height=&quot;153&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;index.jsp 페이지가 잘 떴네요.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;대시보드 보러라기 링크를 클릭해 이동해봅시다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;b&gt;view/dashboard 라는 URL이 추가되니 dashboard() 메소드가 실행된 겁니다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;12.PNG&quot; data-origin-width=&quot;421&quot; data-origin-height=&quot;117&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/scteB/btqzPu660St/1odk3nKSnemcRvNtf0lhtK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/scteB/btqzPu660St/1odk3nKSnemcRvNtf0lhtK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/scteB/btqzPu660St/1odk3nKSnemcRvNtf0lhtK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FscteB%2FbtqzPu660St%2F1odk3nKSnemcRvNtf0lhtK%2Fimg.png&quot; data-filename=&quot;12.PNG&quot; data-origin-width=&quot;421&quot; data-origin-height=&quot;117&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;dashboard 페이지도 잘 떳습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;정리&lt;/p&gt;
&lt;p&gt;1.Controller 생성 완료&lt;/p&gt;
&lt;p&gt;2.@Controller , @RequestMapping 사용법 숙지 완료&lt;/p&gt;
&lt;p&gt;3.JSP file 생성 완료&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;b&gt;최종 Project Explorer&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;17.PNG&quot; data-origin-width=&quot;260&quot; data-origin-height=&quot;618&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vzI8n/btqzXiAtFzu/TzzlYiKKzFk6htsMFhOce0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vzI8n/btqzXiAtFzu/TzzlYiKKzFk6htsMFhOce0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vzI8n/btqzXiAtFzu/TzzlYiKKzFk6htsMFhOce0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvzI8n%2FbtqzXiAtFzu%2FTzzlYiKKzFk6htsMFhOce0%2Fimg.png&quot; data-filename=&quot;17.PNG&quot; data-origin-width=&quot;260&quot; data-origin-height=&quot;618&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Spring/커뮤니티(블로그) 프로젝트</category>
      <category>@controller</category>
      <category>@RequestMapping</category>
      <category>index.jsp</category>
      <category>Spring Controller 생성</category>
      <category>Spring Controller 조작 및 사용법</category>
      <category>Spring 커뮤니티 만들기 2탄</category>
      <category>Spring 패키지 생성</category>
      <author>.java</author>
      <guid isPermaLink="true">https://java119.tistory.com/58</guid>
      <comments>https://java119.tistory.com/58#entry58comment</comments>
      <pubDate>Sun, 17 Nov 2019 18:27:18 +0900</pubDate>
    </item>
  </channel>
</rss>