<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>CofS</title>
    <link>https://cofs.tistory.com/</link>
    <description>&amp;lt;&amp;lt; 삽질의 연속 &amp;gt;&amp;gt;</description>
    <language>ko</language>
    <pubDate>Thu, 14 May 2026 14:47:24 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>CofS</managingEditor>
    <image>
      <title>CofS</title>
      <url>https://tistory1.daumcdn.net/tistory/1980944/attach/f754958003cf429d997e58d19f2aa11f</url>
      <link>https://cofs.tistory.com</link>
    </image>
    <item>
      <title>무한잉크 복합기 구매 후기 - 브라더 DCP-T426W</title>
      <link>https://cofs.tistory.com/432</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;무한잉크&amp;nbsp;복합기&amp;nbsp;구매&amp;nbsp;후기 &lt;br&gt;&lt;br&gt;가정에서&amp;nbsp;사용할&amp;nbsp;무한잉크&amp;nbsp;프린터&amp;nbsp;구매&amp;nbsp;하였습니다. &lt;br&gt;&lt;br&gt;가정용&amp;nbsp;프린터기로&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;많이&amp;nbsp;추천하고&amp;nbsp;사무실에서도&amp;nbsp;사용하고&amp;nbsp;있는&amp;nbsp;제품이기에&amp;nbsp;망설임&amp;nbsp;없이&amp;nbsp;골랐습니다. &lt;br&gt;&lt;br&gt;가격도&amp;nbsp;10만원&amp;nbsp;후반대에&amp;nbsp;구매할&amp;nbsp;수&amp;nbsp;있고&amp;nbsp;저는&amp;nbsp;잉크&amp;nbsp;한세트를&amp;nbsp;더&amp;nbsp;포함하여&amp;nbsp;20만원&amp;nbsp;초반에&amp;nbsp;구매했습니다. &lt;br&gt;&lt;br&gt;잉크&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;모두&amp;nbsp;가능한&amp;nbsp;장점이&amp;nbsp;있습니다. &lt;br&gt;&lt;br&gt;또한&amp;nbsp;무선으로&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;연결되지&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;생각나면&amp;nbsp;바로&amp;nbsp;인쇄&amp;nbsp;버튼을&amp;nbsp;누를&amp;nbsp;수&amp;nbsp;있어요. &lt;br&gt;&lt;br&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;혼자서&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;있다고&amp;nbsp;해요. &lt;br&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;장기간&amp;nbsp;사용하지&amp;nbsp;않으면&amp;nbsp;잉크젯프린트는&amp;nbsp;노줄이&amp;nbsp;막힌다고&amp;nbsp;그러더라구요. &lt;br&gt;&lt;br&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;너무&amp;nbsp;다행이에요.&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;좋고&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;용지함이&amp;nbsp;있어&amp;nbsp;깔끔하게&amp;nbsp;보관할&amp;nbsp;수&amp;nbsp;있어요. &lt;br&gt;&lt;br&gt;사용하지&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;덕후인데&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;br&gt;&lt;br&gt;마지막으로&amp;nbsp;사진&amp;nbsp;인화가&amp;nbsp;가능합니다.&amp;nbsp;!! &lt;br&gt;&lt;br&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;직접&amp;nbsp;인화할&amp;nbsp;수&amp;nbsp;있게&amp;nbsp;되어&amp;nbsp;너무&amp;nbsp;좋습니다. &lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2252&quot; data-origin-height=&quot;4000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cvgrqn/btsLiGWGtnV/iAiPRZF0VRfEf38SOaKP80/tfile.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cvgrqn/btsLiGWGtnV/iAiPRZF0VRfEf38SOaKP80/tfile.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cvgrqn/btsLiGWGtnV/iAiPRZF0VRfEf38SOaKP80/tfile.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcvgrqn%2FbtsLiGWGtnV%2FiAiPRZF0VRfEf38SOaKP80%2Ftfile.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2252&quot; height=&quot;4000&quot; data-origin-width=&quot;2252&quot; data-origin-height=&quot;4000&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2252&quot; data-origin-height=&quot;4000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NWZpZ/btsLilk6uV3/k1GYkU4P7JUUWsVNx0cv0K/tfile.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NWZpZ/btsLilk6uV3/k1GYkU4P7JUUWsVNx0cv0K/tfile.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NWZpZ/btsLilk6uV3/k1GYkU4P7JUUWsVNx0cv0K/tfile.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNWZpZ%2FbtsLilk6uV3%2Fk1GYkU4P7JUUWsVNx0cv0K%2Ftfile.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2252&quot; height=&quot;4000&quot; data-origin-width=&quot;2252&quot; data-origin-height=&quot;4000&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2252&quot; data-origin-height=&quot;4000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wSxBW/btsLitXHGBG/S0U1lyXGa00hjZjqIcDR31/tfile.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wSxBW/btsLitXHGBG/S0U1lyXGa00hjZjqIcDR31/tfile.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wSxBW/btsLitXHGBG/S0U1lyXGa00hjZjqIcDR31/tfile.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwSxBW%2FbtsLitXHGBG%2FS0U1lyXGa00hjZjqIcDR31%2Ftfile.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2252&quot; height=&quot;4000&quot; data-origin-width=&quot;2252&quot; data-origin-height=&quot;4000&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2252&quot; data-origin-height=&quot;4000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b3cGxK/btsLjmca1B0/KAeWNDcRMKqQWZYTKI0gZ1/tfile.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b3cGxK/btsLjmca1B0/KAeWNDcRMKqQWZYTKI0gZ1/tfile.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b3cGxK/btsLjmca1B0/KAeWNDcRMKqQWZYTKI0gZ1/tfile.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb3cGxK%2FbtsLjmca1B0%2FKAeWNDcRMKqQWZYTKI0gZ1%2Ftfile.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2252&quot; height=&quot;4000&quot; data-origin-width=&quot;2252&quot; data-origin-height=&quot;4000&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2252&quot; data-origin-height=&quot;4000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/be73xS/btsLimRSyQA/aeFXN41Ucamhym2rUqp3lK/tfile.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/be73xS/btsLimRSyQA/aeFXN41Ucamhym2rUqp3lK/tfile.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/be73xS/btsLimRSyQA/aeFXN41Ucamhym2rUqp3lK/tfile.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbe73xS%2FbtsLimRSyQA%2FaeFXN41Ucamhym2rUqp3lK%2Ftfile.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2252&quot; height=&quot;4000&quot; data-origin-width=&quot;2252&quot; data-origin-height=&quot;4000&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2252&quot; data-origin-height=&quot;4000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/021PE/btsLjJY0Zns/MjyGp2Y7HhEoARRvb8n291/tfile.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/021PE/btsLjJY0Zns/MjyGp2Y7HhEoARRvb8n291/tfile.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/021PE/btsLjJY0Zns/MjyGp2Y7HhEoARRvb8n291/tfile.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F021PE%2FbtsLjJY0Zns%2FMjyGp2Y7HhEoARRvb8n291%2Ftfile.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2252&quot; height=&quot;4000&quot; data-origin-width=&quot;2252&quot; data-origin-height=&quot;4000&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;/p&gt;</description>
      <author>CofS</author>
      <guid isPermaLink="true">https://cofs.tistory.com/432</guid>
      <comments>https://cofs.tistory.com/432#entry432comment</comments>
      <pubDate>Sat, 14 Dec 2024 15:57:25 +0900</pubDate>
    </item>
    <item>
      <title>VIP TELNET / 같은 네트워크 대역 L4 스위치의 VIP 통신 방법</title>
      <link>https://cofs.tistory.com/427</link>
      <description>&lt;p&gt;같은 네트워크 대역에서 client 가 L4로 구성된 VIP로 접속 시 접속이 안되고 , VIP 의 real server로는 접속이 되는 문제에 대해서 알아보자. &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;아래 그림은 client인 A1 에서 VIP인 10.30.60.10 으로 접속시 접속이 안되나 , real server 인 R1 과&amp;nbsp;&amp;nbsp;R2 로 telnet 접속을 하면 접속이 된다. &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;같은네트워크&amp;nbsp;대역(모두&amp;nbsp;10.30.60.x)&amp;nbsp;을&amp;nbsp;사용하고&amp;nbsp;있고&amp;nbsp;같은&amp;nbsp;vlan&amp;nbsp;대역인&amp;nbsp;상황이다. &lt;br /&gt;&lt;br /&gt;왜 vip로는 접속이 안되고 real server 로는 접속이되는걸까? &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;8108516233&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;br /&gt;A1(client)에서&amp;nbsp;R1&amp;nbsp;또는&amp;nbsp;R2&amp;nbsp;로&amp;nbsp;telnet&amp;nbsp;접속시&amp;nbsp;아래&amp;nbsp;그림처럼(빨간색&amp;nbsp;화살표)&amp;nbsp;정상적으로&amp;nbsp;접속이&amp;nbsp;된다. &lt;br /&gt;&lt;br /&gt;왜냐면, 같은 네트워크 대역이고 L2 스위치에 있기 때문에 L2 스위치 mac table 에 A1(client) 와 R1,R2의 mac 주소가 있기때문이다.&amp;nbsp;&amp;nbsp;L2 스위치의 통신은 MAC 통신이기때문에 MAC 주소만 있으면 통신이 되기 때문이다. &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;결론부터&amp;nbsp;말하면&amp;nbsp;A1(client)은&amp;nbsp;request&amp;nbsp;한것에&amp;nbsp;대한&amp;nbsp;response만&amp;nbsp;받는다.&amp;nbsp;당연한&amp;nbsp;말이다.&amp;nbsp;하지만&amp;nbsp;VIP로&amp;nbsp;telnet &lt;br /&gt;&lt;br /&gt;접속이&amp;nbsp;안되는&amp;nbsp;이유는&amp;nbsp;A1(client)은&amp;nbsp;request&amp;nbsp;한&amp;nbsp;대상인&amp;nbsp;VIP인&amp;nbsp;L4&amp;nbsp;로부터&amp;nbsp;response&amp;nbsp;가&amp;nbsp;아닌&amp;nbsp;&amp;nbsp;R1&amp;nbsp;으로부터&amp;nbsp;response가&amp;nbsp;오기때문에&amp;nbsp;drop&amp;nbsp;시켜버린다. &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;(1).&amp;nbsp;A1(client)은&amp;nbsp;VIP(10.30.60.10)으로&amp;nbsp;접속요청을&amp;nbsp;한다.&amp;nbsp;(정상) &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;(2).&amp;nbsp;요청을&amp;nbsp;받은&amp;nbsp;L4는&amp;nbsp;VIP&amp;nbsp;에&amp;nbsp;대한&amp;nbsp;real&amp;nbsp;서버(여기서는&amp;nbsp;R1로&amp;nbsp;가정)로&amp;nbsp;&amp;nbsp;아래와&amp;nbsp;같이&amp;nbsp;정보가&amp;nbsp;변경되어 &lt;br /&gt;&lt;br /&gt;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;(&amp;nbsp;SIP:10.30.60.100&amp;nbsp;,&amp;nbsp;SMAC:B&amp;nbsp;,&amp;nbsp;DIP:10.30.60.11&amp;nbsp;,&amp;nbsp;DMAC:C&amp;nbsp;) &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;(3).&amp;nbsp;요청을&amp;nbsp;받은&amp;nbsp;R1&amp;nbsp;서버는&amp;nbsp;아래와&amp;nbsp;같이&amp;nbsp;정보를&amp;nbsp;변경하여&amp;nbsp;전달합니다.(정상) &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(&amp;nbsp;SIP:10.30.60.11,&amp;nbsp;SMAC:C&amp;nbsp;,&amp;nbsp;DIP:10.30.60.100,&amp;nbsp;DMAC:A) &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;(4).&amp;nbsp;중간에&amp;nbsp;L2&amp;nbsp;스위치가&amp;nbsp;있으므로&amp;nbsp;L4로&amp;nbsp;안가고&amp;nbsp;,&amp;nbsp;A1(client)은&amp;nbsp;R1으로부터 &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;response를&amp;nbsp;받습니다.&amp;nbsp;(이상!!!!!) &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;*&amp;nbsp;자&amp;nbsp;,&amp;nbsp;문제는&amp;nbsp;여기서&amp;nbsp;발생합니다.&amp;nbsp;A1&amp;nbsp;은&amp;nbsp;VIP로&amp;nbsp;요청을&amp;nbsp;보냈는데&amp;nbsp;,&amp;nbsp;뜬금없이&amp;nbsp;R1로부터 &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;response&amp;nbsp;를&amp;nbsp;받습니다.&amp;nbsp;A1은&amp;nbsp;이&amp;nbsp;패킷을&amp;nbsp;Drop&amp;nbsp;시킵니다.&amp;nbsp;그래서&amp;nbsp;통신이&amp;nbsp;안되는&amp;nbsp;겁니다. &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;1111.jpeg&quot; data-origin-width=&quot;561&quot; data-origin-height=&quot;317&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bsq7Ob/btqPRAEnpX3/grTVP2xeG0t3bxFUS34rek/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bsq7Ob/btqPRAEnpX3/grTVP2xeG0t3bxFUS34rek/img.jpg&quot; data-alt=&quot;VIP로부터 response 없음&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bsq7Ob/btqPRAEnpX3/grTVP2xeG0t3bxFUS34rek/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbsq7Ob%2FbtqPRAEnpX3%2FgrTVP2xeG0t3bxFUS34rek%2Fimg.jpg&quot; data-filename=&quot;1111.jpeg&quot; data-origin-width=&quot;561&quot; data-origin-height=&quot;317&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;figcaption&gt;VIP로부터 response 없음&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;그럼&amp;nbsp;VIP로부터&amp;nbsp;response&amp;nbsp;를&amp;nbsp;받으려면&amp;nbsp;어떻게&amp;nbsp;해야&amp;nbsp;할까?&amp;nbsp;L4&amp;nbsp;스위치에서&amp;nbsp;NAT를&amp;nbsp;걸어주면&amp;nbsp;된다. &lt;br /&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;4608841651&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;L4&amp;nbsp;스위치에&amp;nbsp;NAT를&amp;nbsp;걸어주면&amp;nbsp;A1--&amp;gt;L2--&amp;gt;L4--&amp;gt;L2--&amp;gt;R1--&amp;gt;L2--&amp;gt;L4--&amp;gt;L2--&amp;gt;A1&amp;nbsp;순서로&amp;nbsp;되기때문에 &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A1(client)은&amp;nbsp;Request를&amp;nbsp;처음&amp;nbsp;보낸&amp;nbsp;L4로부터&amp;nbsp;Response를&amp;nbsp;받기&amp;nbsp;때문에&amp;nbsp;정상적으로&amp;nbsp;VIP와&amp;nbsp;통신이&amp;nbsp;된다. &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;그럼&amp;nbsp;L4스위치에서&amp;nbsp;NAT&amp;nbsp;를&amp;nbsp;걸어주면&amp;nbsp;어떤&amp;nbsp;순서로&amp;nbsp;진행되는지&amp;nbsp;보자. &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;(1).&amp;nbsp;A1(client)은&amp;nbsp;VIP(10.30.60.10)으로&amp;nbsp;접속요청을&amp;nbsp;한다. &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;(2).&amp;nbsp;요청을&amp;nbsp;받은&amp;nbsp;L4는&amp;nbsp;NAT를&amp;nbsp;적용하여&amp;nbsp;,&amp;nbsp;출발지&amp;nbsp;IP주소를&amp;nbsp;10.10.10.254&amp;nbsp;,&amp;nbsp;SMAC은&amp;nbsp;B&amp;nbsp;로&amp;nbsp;하고, &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;도착지&amp;nbsp;IP주소를&amp;nbsp;10.30.60.11&amp;nbsp;,&amp;nbsp;DMAC&amp;nbsp;은&amp;nbsp;C로&amp;nbsp;변경한다.&amp;nbsp;(일단&amp;nbsp;Real&amp;nbsp;서버중에서&amp;nbsp;R1으로&amp;nbsp;간다고&amp;nbsp;가정) &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(&amp;nbsp;SIP:10.10.10.254&amp;nbsp;,&amp;nbsp;SMAC:B&amp;nbsp;,&amp;nbsp;DIP:10.30.60.11&amp;nbsp;,&amp;nbsp;DMAC:C&amp;nbsp;) &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;(3).&amp;nbsp;요청을&amp;nbsp;받은&amp;nbsp;R1&amp;nbsp;서버는&amp;nbsp;아래와&amp;nbsp;같이&amp;nbsp;정보를&amp;nbsp;변경하여&amp;nbsp;전달합니다. &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(&amp;nbsp;SIP:10.30.60.11,&amp;nbsp;SMAC:C&amp;nbsp;,&amp;nbsp;DIP:10.10.10.254,&amp;nbsp;DMAC:B) &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;(4).&amp;nbsp;L4&amp;nbsp;스위치에서는&amp;nbsp;A1(client)로부터&amp;nbsp;request를&amp;nbsp;받은&amp;nbsp;세션을&amp;nbsp;&amp;nbsp;세션테이블에서&amp;nbsp;찾아서 &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;출발지IP는&amp;nbsp;처음에&amp;nbsp;A1(client)가&amp;nbsp;request한&amp;nbsp;VIP로&amp;nbsp;설정하고&amp;nbsp;,&amp;nbsp;도착지&amp;nbsp;IP는&amp;nbsp;A1(client)&amp;nbsp;주소로&amp;nbsp;변경하여 &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;A1(client)으로&amp;nbsp;패킷을&amp;nbsp;전달한다. &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(SIP:10.30.60.10&amp;nbsp;,&amp;nbsp;SMAC:B&amp;nbsp;,&amp;nbsp;DIP:10.30.60.100&amp;nbsp;,&amp;nbsp;DMAC:A) &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;(5).&amp;nbsp;L2&amp;nbsp;스위치에서는&amp;nbsp;목적지인&amp;nbsp;A1(client)의&amp;nbsp;MAC&amp;nbsp;주소를&amp;nbsp;알고&amp;nbsp;있기때문에&amp;nbsp;A1(client)으로&amp;nbsp;패킷을&amp;nbsp;보낸다&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;1982678315&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;br /&gt;&lt;br /&gt;(5).&amp;nbsp;A1(client)은&amp;nbsp;처음&amp;nbsp;VIP로&amp;nbsp;request를&amp;nbsp;보낸&amp;nbsp;L4로부터&amp;nbsp;response&amp;nbsp;가&amp;nbsp;왔기때문에&amp;nbsp;정상적으로&amp;nbsp;통신을&amp;nbsp;한다. &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;22222.jpeg&quot; data-origin-width=&quot;561&quot; data-origin-height=&quot;317&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bgnD3e/btqPKuekW2k/u0tkYKHWBQNxgTHP5jwRIK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bgnD3e/btqPKuekW2k/u0tkYKHWBQNxgTHP5jwRIK/img.jpg&quot; data-alt=&quot;VIP로부터 response 있음&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bgnD3e/btqPKuekW2k/u0tkYKHWBQNxgTHP5jwRIK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbgnD3e%2FbtqPKuekW2k%2Fu0tkYKHWBQNxgTHP5jwRIK%2Fimg.jpg&quot; data-filename=&quot;22222.jpeg&quot; data-origin-width=&quot;561&quot; data-origin-height=&quot;317&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;figcaption&gt;VIP로부터 response 있음&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;종합적으로&amp;nbsp;정리하면&amp;nbsp;,&amp;nbsp;VIP로&amp;nbsp;접속을&amp;nbsp;할때는&amp;nbsp;L4&amp;nbsp;스위치에서&amp;nbsp;NAT를&amp;nbsp;설정하여&amp;nbsp;Real&amp;nbsp;Server&amp;nbsp;와&amp;nbsp;통신이&amp;nbsp;되고, &lt;br /&gt;&lt;br /&gt;Real&amp;nbsp;Server&amp;nbsp;로&amp;nbsp;직접&amp;nbsp;접속&amp;nbsp;할때는&amp;nbsp;L2&amp;nbsp;스위치가&amp;nbsp;중간에&amp;nbsp;있기&amp;nbsp;때문에&amp;nbsp;통신이&amp;nbsp;가능하다. &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;L4&amp;nbsp;스위치에&amp;nbsp;NAT&amp;nbsp;를&amp;nbsp;설정하면&amp;nbsp;처음&amp;nbsp;Request&amp;nbsp;한&amp;nbsp;Client의&amp;nbsp;IP와&amp;nbsp;알고리즘에&amp;nbsp;의해&amp;nbsp;최종&amp;nbsp;Real&amp;nbsp;Server&amp;nbsp;선택된&amp;nbsp;서버의&amp;nbsp;IP를&amp;nbsp;매칭시켜&amp;nbsp;세션테이블에&amp;nbsp;기록하여&amp;nbsp;서로&amp;nbsp;통신이&amp;nbsp;가능하도록&amp;nbsp;한다. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;8356514973&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #9d9d9d;&quot;&gt;출처 : https://me351004.tistory.com/entry/같은-네트워크-대역-L4-스위치의-VIP로-통신-방법&lt;/span&gt;&lt;/p&gt;</description>
      <category>etc/etc</category>
      <author>CofS</author>
      <guid isPermaLink="true">https://cofs.tistory.com/427</guid>
      <comments>https://cofs.tistory.com/427#entry427comment</comments>
      <pubDate>Fri, 11 Dec 2020 13:51:27 +0900</pubDate>
    </item>
    <item>
      <title>javascript popup post 전송 ie11</title>
      <link>https://cofs.tistory.com/426</link>
      <description>&lt;p&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;8108516233&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;javascript&amp;nbsp;popup&amp;nbsp;post&amp;nbsp;전송&amp;nbsp;ie11&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;다음과 같은 상황에서 ie11은 동작하지 않는다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&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 style=&quot;width: 100%;&quot;&gt;1. 빈 팝업을 호출&lt;br /&gt;2. 부모 창에서 form 생성 (또는 기존에 form이 있음)&lt;br /&gt;3. 부모 창에서 빈 팝업으로 form submit (POST)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&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;단 ie11에서는 동작하지 않았다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;증상은 다음과 같다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 40px;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 40px;&quot;&gt;
&lt;td style=&quot;width: 100%; height: 40px;&quot;&gt;1. 빈 팝업 호출&lt;br /&gt;2. 부모창에서 빈 팝업을 target 잡고 submit 시 부모창에서 submit 이 실행됨&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;4608841651&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&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 style=&quot;width: 100%;&quot;&gt;시스템 별로 특정 페이지를 post 로 호출해야 함. (시스템이 여러개)&lt;br /&gt;따라서 시스템마다 관리 포인트를 최소화 하고 싶음.&lt;br /&gt;즉, 스크립트 몇줄만 각 시스템으로 전달해서 특정 페이지를 post로 호출해야함&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&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;/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;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;여러 방식을 고려하다 아래와 같이 구현했다.&lt;/p&gt;
&lt;pre id=&quot;code_1607420115059&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-thickness: initial; 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;a href=&quot;javascript:void(0);&quot; onclick=&quot;open_new();&quot; &amp;gt;팝업&amp;lt;/a&amp;gt;
&amp;lt;script&amp;gt;
	function open_new(){
		var openPopup = window.open(&quot;&quot;, &quot;openPopup&quot;);  
		var htmls = &quot;&quot;;
		htmls = htmls + &quot;&amp;lt;html&amp;gt;&quot;;
		htmls = htmls + &quot;&amp;lt;body&amp;gt;&quot;;
		htmls = htmls + &quot;&amp;lt;form action='이동할 주소' method='post' name='openForm' id='openForm'&amp;gt;&quot;;
		htmls = htmls + &quot;&amp;lt;input type='hidden' name='data1' id='data1' value='data1'&amp;gt;&quot;;
		htmls = htmls + &quot;&amp;lt;input type='hidden' name='data2' id='data2' value='data2'&amp;gt;&quot;;
		htmls = htmls + &quot;&amp;lt;/form&amp;gt;&quot;;
		htmls = htmls + &quot;&amp;lt;/body&amp;gt;&quot;;
		htmls = htmls + &quot;&amp;lt;/html&amp;gt;&quot;;
		openPopup.document.write(htmls);
		openPopup.document.getElementById(&quot;openForm&quot;).submit();
	}
&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;1982678315&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;간략히 설명하자면 다음과 같다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1. 부모창에서 빈 팝업 호출&lt;/p&gt;
&lt;p&gt;2. 빈 팝업에 html 코드 삽입(form 및 form data)&lt;/p&gt;
&lt;p&gt;3. 빈 팝업의 form submit&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;위 방식으로 ie11, 크롬은 정상동작했다.&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;</description>
      <category>language/javascript</category>
      <author>CofS</author>
      <guid isPermaLink="true">https://cofs.tistory.com/426</guid>
      <comments>https://cofs.tistory.com/426#entry426comment</comments>
      <pubDate>Tue, 8 Dec 2020 18:37:06 +0900</pubDate>
    </item>
    <item>
      <title>CommonsMultipartResolver 로 파일 최대 크기 maxUploadSize 설정 후 반응없을 때</title>
      <link>https://cofs.tistory.com/425</link>
      <description>&lt;p&gt;&lt;b&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;8108516233&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;환경 : spring 4.3, egov 3.7, tomcat 8.5, java 8&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;multipartResolver 를 사용하여 파일 업로드 시 최대 크기를 설정을 했더니 다음과 같은 증상이 나타났다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;CommonsMultipartResolver 에 파일 최대 크기 maxUploadSize 를 500MB로 설정 후 설정한 크기보다 큰 파일을 업로드 하면 반응이 없다.&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;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;화면 캡처 2020-10-08 112219.png&quot; data-origin-width=&quot;384&quot; data-origin-height=&quot;264&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/32gf8/btqKrqHriMZ/ZV1CxnHtviVJjZX3PUstAk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/32gf8/btqKrqHriMZ/ZV1CxnHtviVJjZX3PUstAk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/32gf8/btqKrqHriMZ/ZV1CxnHtviVJjZX3PUstAk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F32gf8%2FbtqKrqHriMZ%2FZV1CxnHtviVJjZX3PUstAk%2Fimg.png&quot; data-filename=&quot;화면 캡처 2020-10-08 112219.png&quot; data-origin-width=&quot;384&quot; data-origin-height=&quot;264&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;ERR_CONNETION_RESET 에러에 관해서는 검색하면 많이 나오는데&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;간단히 설명하자면 서버에서 반응이 없어서 기다리다 지친 브라우저가 오류를 발생시킨다고 보면된다.&lt;/p&gt;
&lt;p&gt;(FIN 패킷을 못받을 경우 발생함)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이 경우는 tomcat 의 maxSwallowSize 속성을 변경하면 된다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;maxSwallowSize 속성은 다음과 같다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style13&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;The maximum number of request body bytes (excluding transfer encoding overhead) that will be swallowed by Tomcat for an aborted upload. An aborted upload is when Tomcat knows that the request body is going to be ignored but the client still sends it. If Tomcat does not swallow the body the client is unlikely to see the response. If not specified the default of 2097152 (2 megabytes) will be used. A value of less than zero indicates that no limit should be enforced.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;출처 : &lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;tomcat.apache.org/tomcat-8.5-doc/config/http.html#Common_Attributes&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;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;4608841651&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;요청 시 최대 업로드 크기를 설정하며 기본값은 2MB 이다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;그럼 이걸 늘려주면되는데 무제한으로 하고 싶다면 -1을 주면 된다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style15&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&amp;lt;Connector&amp;nbsp;connectionTimeout=&quot;20000&quot;&amp;nbsp;port=&quot;8081&quot;&amp;nbsp;protocol=&quot;HTTP/1.1&quot;&amp;nbsp;redirectPort=&quot;8443&quot;&amp;nbsp;maxSwallowSize=&quot;-1&quot;/&amp;gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;끝 ~&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>etc/error</category>
      <author>CofS</author>
      <guid isPermaLink="true">https://cofs.tistory.com/425</guid>
      <comments>https://cofs.tistory.com/425#entry425comment</comments>
      <pubDate>Thu, 8 Oct 2020 11:34:44 +0900</pubDate>
    </item>
    <item>
      <title>KVM 스위치 CS62US에서 로지텍 마우스 사용하기</title>
      <link>https://cofs.tistory.com/424</link>
      <description>&lt;p&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;8108516233&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;망분리된 환경에서 KVM 스위치 사용은 자주 있는 일이다.&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;필자도 4개 제품을 사용해봤는데(다른 이유로...) 그중 2개가 로지텍 마우스가 인식이 안되더라...&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;로지텍 마우스 또는 제품을 사용한다면 SetPoint 를 설치해서 일부 키 설정이나 감도 조절 등을 하게되는데&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;SetPoint에서 내 마우스가 잡히지 않았다...&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;계속 검색해 보았지만 KVM 스위치 구매시 주의사항 글에 대부분 로지텍 마우스가 등장했다.&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;/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;/p&gt;
&lt;p&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;4608841651&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;일단 필자는 에이텐 KVM 스위치를 사용하고 있고 CS62US 모델을 사용중이고&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;로지텍은 M705를 사용중이다...(8년째 가성비로 참고 쓰는중)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;해당 KVM 스위치는 핫키 지원이 되고 핫키 설정 및 기타 설정을 할 수 있는 모델이다.&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;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;[NumLock + (-)]로 설정 메뉴에 진입 후 [m] 키로 해당 기능을 껐다.&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;/p&gt;
&lt;p&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;1982678315&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;kvm_switch-CS62US_CS62U.jpg&quot; data-origin-width=&quot;740&quot; data-origin-height=&quot;701&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dnqPHG/btqD3JfqVgt/eFpfPGy4yBBd4UxbKXbXZK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dnqPHG/btqD3JfqVgt/eFpfPGy4yBBd4UxbKXbXZK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dnqPHG/btqD3JfqVgt/eFpfPGy4yBBd4UxbKXbXZK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdnqPHG%2FbtqD3JfqVgt%2FeFpfPGy4yBBd4UxbKXbXZK%2Fimg.jpg&quot; data-filename=&quot;kvm_switch-CS62US_CS62U.jpg&quot; data-origin-width=&quot;740&quot; data-origin-height=&quot;701&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;</description>
      <category>etc/etc</category>
      <author>CofS</author>
      <guid isPermaLink="true">https://cofs.tistory.com/424</guid>
      <comments>https://cofs.tistory.com/424#entry424comment</comments>
      <pubDate>Mon, 11 May 2020 16:42:43 +0900</pubDate>
    </item>
    <item>
      <title>SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:852)')</title>
      <link>https://cofs.tistory.com/423</link>
      <description>&lt;p&gt;pip 명령어로 패키지를 설치하려고 하는데 다음과 같은 오류가 발생한 경우 해결방법입니다.&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;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;SSLError(1,&amp;nbsp;'[SSL:&amp;nbsp;CERTIFICATE_VERIFY_FAILED]&amp;nbsp;certificate&amp;nbsp;verify&amp;nbsp;failed&amp;nbsp;(_ssl.c:852)')&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/T2fq7/btqDf2zFr1k/oKKXqpjowNCx5pGcBBKWbK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/T2fq7/btqDf2zFr1k/oKKXqpjowNCx5pGcBBKWbK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/T2fq7/btqDf2zFr1k/oKKXqpjowNCx5pGcBBKWbK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FT2fq7%2FbtqDf2zFr1k%2FoKKXqpjowNCx5pGcBBKWbK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&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;위 오류 원인은 방화벽에서 pip 패키지 사이트들을 허용하지 않을 경우 발생할 수 있습니다.&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;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;간편하게 해결하는 방법은 pip install 시 옵션을 사용하는 방식입니다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style15&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;pip&amp;nbsp;install&amp;nbsp;certifi&amp;nbsp;--trusted-host&amp;nbsp;pypi.python.org&amp;nbsp;--trusted-host&amp;nbsp;files.pythonhosted.org&amp;nbsp;--trusted-host&amp;nbsp;pypi.org&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;[--trusted-host pypi.python.org&amp;nbsp;--trusted-host&amp;nbsp;files.pythonhosted.org&amp;nbsp;--trusted-host&amp;nbsp;pypi.org] 옵션을 사용하여 패키지 도메인들을 신뢰하는 방법입니다.&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;&amp;nbsp;&lt;/p&gt;
&lt;p&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;예를 들면 pytorch 를 설치할 때 download.pytorch.org 주소에 있는 whl 파일을 설치하는 경우는 초반에 한번이면 됩니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이럴 경우에는 trusted-host 옵션을 활용하면 좋습니다.&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;/p&gt;
&lt;p&gt;&amp;nbsp;&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;/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;/p&gt;
&lt;p&gt;&amp;nbsp;&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;자주 사용하지 않는 사람들은 trusted-host 옵션이 잘 떠오르지 않아서 늘 검색하곤 합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&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;그래서 global 설정을 해두면 다음부터는 항상 신뢰할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;pip.conf (윈도우는 &lt;span style=&quot;color: #333333;&quot;&gt;pip.ini&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;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style15&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;[global] &lt;br /&gt;trusted-host=pypi.python.org &lt;br /&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;pypi.org &lt;br /&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;files.pythonhosted.org&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&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;/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;b&gt;유닉스 계열 : $HOME/.config/pip/pip.conf&lt;/b&gt;&lt;br /&gt;&lt;b&gt;맥 : $HOME/Library/Application Support/pip/pip.conf 또는 $HOME/.config/pip/pip.conf&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;윈도우 : &lt;span&gt;%UserProfile%&lt;/span&gt;\pip\pip.ini&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;끝&lt;/p&gt;</description>
      <category>etc/error</category>
      <author>CofS</author>
      <guid isPermaLink="true">https://cofs.tistory.com/423</guid>
      <comments>https://cofs.tistory.com/423#entry423comment</comments>
      <pubDate>Thu, 9 Apr 2020 15:03:47 +0900</pubDate>
    </item>
    <item>
      <title>ERROR: Cannot find command 'git' - do you have 'git' installed and in your PATH?</title>
      <link>https://cofs.tistory.com/422</link>
      <description>&lt;p&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;8356514973&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;git 명령어 사용 시 오류 해결 방법&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;ERROR:&amp;nbsp;Cannot&amp;nbsp;find&amp;nbsp;command&amp;nbsp;'git'&amp;nbsp;-&amp;nbsp;do&amp;nbsp;you&amp;nbsp;have&amp;nbsp;'git'&amp;nbsp;installed&amp;nbsp;and&amp;nbsp;in&amp;nbsp;your&amp;nbsp;PATH?&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;'git'은(는)&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;아닙니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b1TlrD/btqDfAJ5w1r/6zss14N6pQSfQpErErD2a1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b1TlrD/btqDfAJ5w1r/6zss14N6pQSfQpErErD2a1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b1TlrD/btqDfAJ5w1r/6zss14N6pQSfQpErErD2a1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb1TlrD%2FbtqDfAJ5w1r%2F6zss14N6pQSfQpErErD2a1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&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;위와 같은 오류는 git명령어를 사용할 수 없을 경우 발생한다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;windows 와 linux 모두 동일하다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;각각에 맞게 git을 설치해 주면 된다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;linux 계열은 yum, rpm, apt-get 등과 같은 설치 프로그램을 활용하면 쉽게 install 할 수 있다.&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;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;8108516233&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;a href=&quot;https://cofs.tistory.com/421&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;cmd에서 git명령어 사용하기&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;끝&lt;/p&gt;</description>
      <category>etc/error</category>
      <author>CofS</author>
      <guid isPermaLink="true">https://cofs.tistory.com/422</guid>
      <comments>https://cofs.tistory.com/422#entry422comment</comments>
      <pubDate>Tue, 7 Apr 2020 10:39:19 +0900</pubDate>
    </item>
    <item>
      <title>cmd에서 git 사용하기 / windows 에서 github 사용하기</title>
      <link>https://cofs.tistory.com/421</link>
      <description>&lt;p&gt;windows의 cmd에서 git명령어를 사용해보자.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;필자의 경우 windows에서 conda 가상환경을 만들고 이것저것 테스트 하다보니 다음과 같은 오류를 만나서 git을 사용해야 할 경우가 생겼다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style14&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;ERROR:&amp;nbsp;Cannot&amp;nbsp;find&amp;nbsp;command&amp;nbsp;'git'&amp;nbsp;-&amp;nbsp;do&amp;nbsp;you&amp;nbsp;have&amp;nbsp;'git'&amp;nbsp;installed&amp;nbsp;and&amp;nbsp;in&amp;nbsp;your&amp;nbsp;PATH?&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;가장 먼저 해야할 것은 github desktop 설치이다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;아래 화면에서 github dasktop를 다운로드한다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://desktop.github.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;github dasktop 다운로드&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/WfTMV/btqDg5CxtXL/R6KCXHdcIhWPc0OtJUfS21/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/WfTMV/btqDg5CxtXL/R6KCXHdcIhWPc0OtJUfS21/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/WfTMV/btqDg5CxtXL/R6KCXHdcIhWPc0OtJUfS21/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWfTMV%2FbtqDg5CxtXL%2FR6KCXHdcIhWPc0OtJUfS21%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&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;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;github dasktop 프로그램을 닫고 바탕화면의 바로가기 아이콘을 우클릭하여 파일위치 열기를 실행한다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;그상태로 다음 경로로 이동한다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;\app-x.x.x\resources\app\git\cmd&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;위 경로로 이동하면 git.exe 파일이 있다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;해당 파일의 속성정보에서 경로를 복사한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/JTpLo/btqDedooJnI/QKkgUYgrcOelsLRKDKKLkK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JTpLo/btqDedooJnI/QKkgUYgrcOelsLRKDKKLkK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JTpLo/btqDedooJnI/QKkgUYgrcOelsLRKDKKLkK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJTpLo%2FbtqDedooJnI%2FQKkgUYgrcOelsLRKDKKLkK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&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;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;내 pc(내컴퓨터) 우클릭 &amp;gt; 속성 &amp;gt; 고급 시스템 설정 &amp;gt; 고급 탭 &amp;gt; 환경변수 &amp;gt; 시스템 변수의 path 항목에 복사한 경로 추가&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;등록 후 cmd 창에서 &lt;b&gt;git --version&lt;/b&gt; 명령어가 실행되는지 확인해 본다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/btQEJ5/btqDc4r3AK7/JVME3MyNndvOovKzbWIHJ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/btQEJ5/btqDc4r3AK7/JVME3MyNndvOovKzbWIHJ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/btQEJ5/btqDc4r3AK7/JVME3MyNndvOovKzbWIHJ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbtQEJ5%2FbtqDc4r3AK7%2FJVME3MyNndvOovKzbWIHJ0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&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;/p&gt;</description>
      <category>etc/Util</category>
      <author>CofS</author>
      <guid isPermaLink="true">https://cofs.tistory.com/421</guid>
      <comments>https://cofs.tistory.com/421#entry421comment</comments>
      <pubDate>Tue, 7 Apr 2020 10:31:08 +0900</pubDate>
    </item>
    <item>
      <title>anaconda CondaHTTPError: HTTP 000 CONNECTION FAILED</title>
      <link>https://cofs.tistory.com/420</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;conda update, conda create error 해결방법&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;windows 10 에 anaconda 를 설치하고 conda 가상환경을 셋팅하려고 아나콘다를 설치했다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;설치 후 가상환경을 생성하기 전에 conda update conda 명령어로 conda를 업데이트 하려고 하니 다음과 같은 오류가 발생했다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 280px;&quot; border=&quot;1&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 280px;&quot;&gt;
&lt;td style=&quot;width: 100%; height: 280px;&quot;&gt;(base)&amp;nbsp;C:\Users&amp;gt;conda&amp;nbsp;update&amp;nbsp;conda &lt;br /&gt;Collecting&amp;nbsp;package&amp;nbsp;metadata&amp;nbsp;(current_repodata.json):&amp;nbsp;failed &lt;br /&gt;&lt;br /&gt;CondaHTTPError:&amp;nbsp;HTTP&amp;nbsp;000&amp;nbsp;CONNECTION&amp;nbsp;FAILED&amp;nbsp;for&amp;nbsp;url&amp;nbsp;&amp;lt;https://repo.anaconda.com/pkgs/main/win-64/current_repodata.json&amp;gt; &lt;br /&gt;Elapsed:&amp;nbsp;- &lt;br /&gt;&lt;br /&gt;An&amp;nbsp;HTTP&amp;nbsp;error&amp;nbsp;occurred&amp;nbsp;when&amp;nbsp;trying&amp;nbsp;to&amp;nbsp;retrieve&amp;nbsp;this&amp;nbsp;URL. &lt;br /&gt;HTTP&amp;nbsp;errors&amp;nbsp;are&amp;nbsp;often&amp;nbsp;intermittent,&amp;nbsp;and&amp;nbsp;a&amp;nbsp;simple&amp;nbsp;retry&amp;nbsp;will&amp;nbsp;get&amp;nbsp;you&amp;nbsp;on&amp;nbsp;your&amp;nbsp;way. &lt;br /&gt;&lt;br /&gt;If&amp;nbsp;your&amp;nbsp;current&amp;nbsp;network&amp;nbsp;has&amp;nbsp;https://www.anaconda.com&amp;nbsp;blocked,&amp;nbsp;please&amp;nbsp;file &lt;br /&gt;a&amp;nbsp;support&amp;nbsp;request&amp;nbsp;with&amp;nbsp;your&amp;nbsp;network&amp;nbsp;engineering&amp;nbsp;team. &lt;br /&gt;&lt;br /&gt;'https://repo.anaconda.com/pkgs/main/win-64'&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;위와 같은 오류 또는 비슷한 오류의 원인은 여러가지가 있을 수 있는데 보통 통신오류, SSL 접속 오류, 방화벽 오류 등으로 생각해 볼 수 있다.&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;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;8108516233&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style15&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;conda&amp;nbsp;config&amp;nbsp;--set&amp;nbsp;ssl_verify&amp;nbsp;False&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;위 명령어는 SSL 인증을 비활성화 하는 옵션이다.&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;&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: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style14&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;echo quit | openssl s_client -showcerts -servername &quot;www.anaconda.com&quot; -connect www.anaconda.com:443 &amp;gt; cacert.pem depth=1 C = KR, O = Somansa, CN = Somansa Root CA&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;위 명령어로 pem 파일을 생성한 후&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style14&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;conda&amp;nbsp;config&amp;nbsp;--set&amp;nbsp;ssl_verify&amp;nbsp;D:\dev\cacert.pem&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;위 명령어로 SSL 인증서 경로를 생성한 cacert.pem 파일로 해 주면 된다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;4608841651&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;해당 해결책은 정해영님의 블로그를 참고하였다.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://blog.genoglobe.com/2019/04/ssl-conda.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;SSL과&amp;nbsp;관련한&amp;nbsp;conda&amp;nbsp;설치&amp;nbsp;에러&amp;nbsp;-&amp;nbsp;anaconda3&amp;nbsp;[해결]&lt;/a&gt;&lt;/p&gt;</description>
      <category>etc/error</category>
      <author>CofS</author>
      <guid isPermaLink="true">https://cofs.tistory.com/420</guid>
      <comments>https://cofs.tistory.com/420#entry420comment</comments>
      <pubDate>Mon, 6 Apr 2020 17:31:51 +0900</pubDate>
    </item>
    <item>
      <title>Could not reserve enough space for object heap 해결방법</title>
      <link>https://cofs.tistory.com/417</link>
      <description>&lt;p&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;8108516233&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;eclipse에서 tomcat 을 사용하여 웹 프로젝트를 기동하는 중 다음과 같은 오류가 발생했다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&lt;b&gt;Error&amp;nbsp;occurred&amp;nbsp;during&amp;nbsp;initialization&amp;nbsp;of&amp;nbsp;VM &lt;/b&gt;&lt;br /&gt;&lt;b&gt;Could&amp;nbsp;not&amp;nbsp;reserve&amp;nbsp;enough&amp;nbsp;space&amp;nbsp;for&amp;nbsp;object&amp;nbsp;heap &lt;/b&gt;&lt;br /&gt;&lt;b&gt;Could&amp;nbsp;not&amp;nbsp;create&amp;nbsp;the&amp;nbsp;Java&amp;nbsp;virtual&amp;nbsp;machine&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/egi9hm/btqB5Fmc9ep/wtKfAPqsIgf0OxMuKky1KK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/egi9hm/btqB5Fmc9ep/wtKfAPqsIgf0OxMuKky1KK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/egi9hm/btqB5Fmc9ep/wtKfAPqsIgf0OxMuKky1KK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fegi9hm%2FbtqB5Fmc9ep%2FwtKfAPqsIgf0OxMuKky1KK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&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;해당 오류는 JVM의 메모리 문제이다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;공식 사이트에서는 약 7가지의 진단방법을 제공하고 있으나 보통은 아래 3가지중으로 해결이 가능하다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&lt;b&gt;1.&amp;nbsp;-Xmx&amp;nbsp;가&amp;nbsp;명시적으로&amp;nbsp;지정되어있는지&amp;nbsp;확인&amp;nbsp;(32&amp;nbsp;bit&amp;nbsp;or&amp;nbsp;64&amp;nbsp;bit&amp;nbsp;JVM) &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2.&amp;nbsp;-Xmx&amp;nbsp;가&amp;nbsp;너무&amp;nbsp;크게&amp;nbsp;설정되어&amp;nbsp;있는지&amp;nbsp;확인&amp;nbsp;(32&amp;nbsp;bit&amp;nbsp;JVM&amp;nbsp;only) &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3.&amp;nbsp;시스템의&amp;nbsp;가상&amp;nbsp;메모리가&amp;nbsp;부족한지&amp;nbsp;확인&amp;nbsp;(32&amp;nbsp;bit&amp;nbsp;or&amp;nbsp;64&amp;nbsp;bit&amp;nbsp;JVM)&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;출처 : &lt;a href=&quot;https://support.oracle.com/knowledge/Middleware/1522923_1.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;오라클 지원문서&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;1982678315&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;그런데 필자는 잘 되고 있는 eclipse 와 tomcat에서 위와 같은 오류가 발생했다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Xmx 등 메모리 설정은 이미 되어있었고 잘 사용중이고 변동이 없었다.&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;&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;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;4608841651&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;혹시나 그 프로그램이 Java로 만들어진 것이 아닐까 하는 의심을 품었다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;왜냐하면 그 프로그램이 Jvm을 사용하면 로컬에 설치된 Jvm 메모리를 사용할 것이고 그렇게 되면 기존에 사용하던 eclipse나 tomcat에서 설정된 메모리 사이즈를 오버할 수 있기 때문이다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;그래서 설치된 보안프로그램을 보니 java로 만들어져 있었다.&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;깜빡하고 있었는데 필자는 eclipse와 tomcat에 로컬에서 활용 가능한 최대수치의 메모리 설정을 하고 있었다. ㅠㅠ...&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;보안프로그램이 얼마만큼의 메모리를 필요로 하는지는 찾아서 eclipse가 실행 될 때 차지하는 메모리를 수정해야겠다.&lt;/p&gt;</description>
      <category>etc/error</category>
      <author>CofS</author>
      <guid isPermaLink="true">https://cofs.tistory.com/417</guid>
      <comments>https://cofs.tistory.com/417#entry417comment</comments>
      <pubDate>Wed, 19 Feb 2020 15:26:46 +0900</pubDate>
    </item>
    <item>
      <title>error occurred during initialization of vm</title>
      <link>https://cofs.tistory.com/415</link>
      <description>&lt;p&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&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;table style=&quot;width: 100%; border-collapse: collapse;&quot; border=&quot;1&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;
&lt;p&gt;&lt;b&gt;Error occurred during initialization of VM&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;The size of the object heap + VM data exceeds the maximum representable size&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&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&gt;필자가 셋팅 중 tomcat 구동 시 메모리를 증가시켰더니 바로 발생하더라...&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;위 오류가 발생하는 이유는 jvm이 적절한 메모리를 할당받지 못했을때 발생한다고 합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;XamPermsize 와 Xmx 사이즈를 조정하여 오류를 해결 할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;선배님 말로는 32비트는 최대 1기가(물리적인 메모리가 4기가일 경우), 64비트는 물리적인 메모리만큼 지정이 가능하다고 합니다. (문서를 못찾았습니다 ㅠ 정확하진 않아요 ;;;;)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;제가 일하는 환경에서는 64비트 pc를 사용하지만 개발툴들을 32비트 용을 사용하는데&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이럴 땐 32비트 기준으로 설정해 주어야 하나 봅니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;여유롭게 -XX:MaxPermSize=2048M -Xmx2048M 으로 설정했다가 모두 512M로 수정했습니다.&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;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;</description>
      <category>etc/error</category>
      <author>CofS</author>
      <guid isPermaLink="true">https://cofs.tistory.com/415</guid>
      <comments>https://cofs.tistory.com/415#entry415comment</comments>
      <pubDate>Mon, 3 Feb 2020 13:31:37 +0900</pubDate>
    </item>
    <item>
      <title>Tomcat bootstrap.jar which is referenced by the classpath, does not exist.</title>
      <link>https://cofs.tistory.com/413</link>
      <description>&lt;p&gt;tomcat 을 재설치 하거나 여러가지 이유로 tomcat 구동 시 다음과 같은 오류가 발생할 수 있다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;필자는 eclipse에서 tomcat를 구동하려는데 다음과 같은 오류를 만났다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/JxGp6/btqzkrQtoBG/dNHL2K3sznsT37FLedsDi0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JxGp6/btqzkrQtoBG/dNHL2K3sznsT37FLedsDi0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JxGp6/btqzkrQtoBG/dNHL2K3sznsT37FLedsDi0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJxGp6%2FbtqzkrQtoBG%2FdNHL2K3sznsT37FLedsDi0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&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 style=&quot;width: 100%;&quot;&gt;
&lt;p&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;'Starting Tomcat v8.0 Server at localhost (project)' has encountered a problem.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;The archive :&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;C:/dev/program/apache-tomcat-8.0.20/bin/bootstrap.jar which is referenced by the classpath, does not exist.&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;bootstrap.jar 를 참조할 수 없다고 하니 경로가 잘못되었음을 인지할 수 있다.&lt;/p&gt;
&lt;p&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&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;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Vf4DQ/btqzktne83o/1lDO3zt2sekzXo3oXap2pk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Vf4DQ/btqzktne83o/1lDO3zt2sekzXo3oXap2pk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Vf4DQ/btqzktne83o/1lDO3zt2sekzXo3oXap2pk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVf4DQ%2Fbtqzktne83o%2F1lDO3zt2sekzXo3oXap2pk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Server Overview &amp;gt; General information &amp;gt; Open launch configuration 항목을 클릭한다.&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;figure class=&quot;imageblock alignCenter&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eoip77/btqzkmID1Sf/Kos49PfKjk4jZQA5bfuHa0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eoip77/btqzkmID1Sf/Kos49PfKjk4jZQA5bfuHa0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eoip77/btqzkmID1Sf/Kos49PfKjk4jZQA5bfuHa0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Feoip77%2FbtqzkmID1Sf%2FKos49PfKjk4jZQA5bfuHa0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Edit Configuration &amp;gt; Classpath 탭으로 이동한다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Classpath 항목을 보면 현재 설치된 Tomcat 경로와 맞지 않는 jar 파일이 있는 것을 확인 할 수 있다.&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;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>etc/error</category>
      <author>CofS</author>
      <guid isPermaLink="true">https://cofs.tistory.com/413</guid>
      <comments>https://cofs.tistory.com/413#entry413comment</comments>
      <pubDate>Fri, 25 Oct 2019 16:29:32 +0900</pubDate>
    </item>
    <item>
      <title>CentOS7 Nginx 설치 방법</title>
      <link>https://cofs.tistory.com/412</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;nginx install.png&quot; width=&quot;349&quot; height=&quot;284&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ezb7F2/btqzbkZV4BY/BANJO4THdxvVykKYfkNiC0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ezb7F2/btqzbkZV4BY/BANJO4THdxvVykKYfkNiC0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ezb7F2/btqzbkZV4BY/BANJO4THdxvVykKYfkNiC0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fezb7F2%2FbtqzbkZV4BY%2FBANJO4THdxvVykKYfkNiC0%2Fimg.png&quot; data-filename=&quot;nginx install.png&quot; width=&quot;349&quot; height=&quot;284&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;CentOS7 에 Nginx 설치 방법에 대해서 설명한다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;yum을 활용하여 쉽게 설치해 보자.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;8108516233&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&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;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;yum 외부 저장소 추가&lt;/li&gt;
&lt;li&gt;yum install&lt;/li&gt;
&lt;li&gt;방화벽 포트 개방&lt;/li&gt;
&lt;li&gt;nginx 포트 설정&lt;/li&gt;
&lt;li&gt;nginx 데몬 실행&lt;/li&gt;
&lt;li&gt;데몬 실행시 오류 발생 (오류 없으면 생략)&lt;/li&gt;
&lt;li&gt;실행&lt;/li&gt;
&lt;/ol&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 style=&quot;font-size: 1.25em;&quot;&gt;&lt;b&gt;1. yum&amp;nbsp;외부&amp;nbsp;저장소&amp;nbsp;추가 &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;yum&amp;nbsp;저장소에는&amp;nbsp;nginx가&amp;nbsp;없기&amp;nbsp;때문에&amp;nbsp;외부저장소를&amp;nbsp;추가해야&amp;nbsp;한다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;vi&amp;nbsp;/etc/yum.repos.d/nginx.repo&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;/etc/yum.repos.d 경로에 nginx.repo 파일을 추가하고 내용은 다음과 같이 작성한다.&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 style=&quot;width: 100%;&quot;&gt;[nginx] &lt;br /&gt;name=nginx&amp;nbsp;repo &lt;br /&gt;baseurl=http://nginx.org/packages/centos/7/$basearch/ &lt;br /&gt;gpgcheck=0 &lt;br /&gt;enabled=1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;위 내용은 공식사이트에 있으며 OS가 다르다면 해당 OS에 맞게 수정해주면 됨. &lt;br /&gt;CentOS7은 위와 같이 작성하면 됨.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot;&gt;&lt;br /&gt;&lt;b&gt;2. yum install &lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;yum&amp;nbsp;install&amp;nbsp;-y&amp;nbsp;nginx&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;yum install 명령어를 사용하여 nginx를 설치한다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot;&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;4608841651&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot;&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;br /&gt;&lt;b&gt;3. 방화벽 포트 개방 &lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;firewall-cmd&amp;nbsp;--permanent&amp;nbsp;--zone=public&amp;nbsp;--add-port=8089/tcp &lt;br /&gt;firewall-cmd&amp;nbsp;--reload &lt;br /&gt;firewall-cmd&amp;nbsp;--list-ports&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;차례대로 포트 개방, 방화벽 재시작, 개방된 포트 목록 확인이다.&lt;/p&gt;
&lt;p&gt;필자는 8089번 포트를 개방하고 nginx에서 사용할 계획이다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot;&gt;&lt;br /&gt;&lt;b&gt;4. nginx 포트 설정 &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;nginx 설정파일의 Listen의 포트 80을 8089로 변경한다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;vi&amp;nbsp;/etc/nginx/conf.d/default.conf&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;listen 80;&amp;nbsp; -&amp;gt;&amp;nbsp; listen 8089;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot;&gt;&lt;br /&gt;&lt;b&gt;5. nginx 데몬 실행 &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;설치와 포트설정이 모두 끝났으므로 nginx 데몬을 실행한다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;systemctl&amp;nbsp;start&amp;nbsp;nginx &lt;br /&gt;systemctl&amp;nbsp;enable&amp;nbsp;nginx&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;서버 부팅시 자동으로 nginx 서비스를 구동하기 위해서 &lt;span&gt;systemctl enable 명령어를 실행&lt;/span&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.25em;&quot;&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;8356514973&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot;&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;br /&gt;&lt;b&gt;6. 데몬 실행시 오류 발생 (오류 없으면 생략) &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;데몬 실행 시 다음과 같은 오류가 발생할 수 있다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;Job&amp;nbsp;for&amp;nbsp;nginx.service&amp;nbsp;failed&amp;nbsp;because&amp;nbsp;the&amp;nbsp;control&amp;nbsp;process&amp;nbsp;exited&amp;nbsp;with&amp;nbsp;error&amp;nbsp;code.&amp;nbsp;See&amp;nbsp;&quot;systemctl&amp;nbsp;status&amp;nbsp;nginx.service&quot;&amp;nbsp;and&amp;nbsp;&quot;journalctl&amp;nbsp;-xe&quot;&amp;nbsp;for&amp;nbsp;details.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;이럴땐 다음 명령어로 오류의 상세 정보를 확인한다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;journalctl&amp;nbsp;-xe&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;오류 상세 정보&lt;/b&gt;&lt;/span&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 style=&quot;width: 100%;&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;--&amp;nbsp;Support:&amp;nbsp;http://lists.freedesktop.org/mailman/listinfo/systemd-devel &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;--&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;--&amp;nbsp;Unit&amp;nbsp;nginx.service&amp;nbsp;has&amp;nbsp;finished&amp;nbsp;shutting&amp;nbsp;down. &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;10월&amp;nbsp;21&amp;nbsp;11:20:00&amp;nbsp;192.168.nate.com&amp;nbsp;polkitd[687]:&amp;nbsp;Unregistered&amp;nbsp;Authentication&amp;nbsp;Agent&amp;nbsp;for&amp;nbsp;unix-process:11231:22076&amp;nbsp;(system&amp;nbsp;bus&amp;nbsp;name&amp;nbsp;:1.33,&amp;nbsp;object&amp;nbsp;path&amp;nbsp;/org/freedesktop/PolicyKit1/AuthenticationAgent,&amp;nbsp;locale&amp;nbsp;ko_KR.UTF-8)&amp;nbsp;(disconnected&amp;nbsp;from&amp;nbsp;bus) &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;10월&amp;nbsp;21&amp;nbsp;11:23:43&amp;nbsp;192.168.nate.com&amp;nbsp;polkitd[687]:&amp;nbsp;Registered&amp;nbsp;Authentication&amp;nbsp;Agent&amp;nbsp;for&amp;nbsp;unix-process:11256:44452&amp;nbsp;(system&amp;nbsp;bus&amp;nbsp;name&amp;nbsp;:1.35&amp;nbsp;[/usr/bin/pkttyagent&amp;nbsp;--notify-fd&amp;nbsp;5&amp;nbsp;--fallback],&amp;nbsp;object&amp;nbsp;path&amp;nbsp;/org/freedesktop/PolicyKit1/AuthenticationAgent,&amp;nbsp;locale&amp;nbsp;ko_KR.UTF-8) &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;10월&amp;nbsp;21&amp;nbsp;11:23:43&amp;nbsp;192.168.nate.com&amp;nbsp;systemd[1]:&amp;nbsp;Starting&amp;nbsp;nginx&amp;nbsp;-&amp;nbsp;high&amp;nbsp;performance&amp;nbsp;web&amp;nbsp;server... &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;--&amp;nbsp;Subject:&amp;nbsp;Unit&amp;nbsp;nginx.service&amp;nbsp;has&amp;nbsp;begun&amp;nbsp;start-up &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;--&amp;nbsp;Defined-By:&amp;nbsp;systemd &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;--&amp;nbsp;Support:&amp;nbsp;http://lists.freedesktop.org/mailman/listinfo/systemd-devel &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;--&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;--&amp;nbsp;Unit&amp;nbsp;nginx.service&amp;nbsp;has&amp;nbsp;begun&amp;nbsp;starting&amp;nbsp;up. &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;10월&amp;nbsp;21&amp;nbsp;11:23:43&amp;nbsp;192.168.nate.com&amp;nbsp;systemd[1]:&amp;nbsp;PID&amp;nbsp;file&amp;nbsp;/var/run/nginx.pid&amp;nbsp;not&amp;nbsp;readable&amp;nbsp;(yet?)&amp;nbsp;after&amp;nbsp;start. &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;10월&amp;nbsp;21&amp;nbsp;11:23:43&amp;nbsp;192.168.nate.com&amp;nbsp;systemd[1]:&amp;nbsp;Started&amp;nbsp;nginx&amp;nbsp;-&amp;nbsp;high&amp;nbsp;performance&amp;nbsp;web&amp;nbsp;server. &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;--&amp;nbsp;Subject:&amp;nbsp;Unit&amp;nbsp;nginx.service&amp;nbsp;has&amp;nbsp;finished&amp;nbsp;start-up &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;--&amp;nbsp;Defined-By:&amp;nbsp;systemd &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;--&amp;nbsp;Support:&amp;nbsp;http://lists.freedesktop.org/mailman/listinfo/systemd-devel &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;--&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;--&amp;nbsp;Unit&amp;nbsp;nginx.service&amp;nbsp;has&amp;nbsp;finished&amp;nbsp;starting&amp;nbsp;up. &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;--&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;--&amp;nbsp;The&amp;nbsp;start-up&amp;nbsp;result&amp;nbsp;is&amp;nbsp;done. &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;10월&amp;nbsp;21&amp;nbsp;11:23:43&amp;nbsp;192.168.nate.com&amp;nbsp;polkitd[687]:&amp;nbsp;Unregistered&amp;nbsp;Authentication&amp;nbsp;Agent&amp;nbsp;for&amp;nbsp;unix-process:11256:44452&amp;nbsp;(system&amp;nbsp;bus&amp;nbsp;name&amp;nbsp;:1.35,&amp;nbsp;object&amp;nbsp;path&amp;nbsp;/org/freedesktop/PolicyKit1/AuthenticationAgent,&amp;nbsp;locale&amp;nbsp;ko_KR.UTF-8)&amp;nbsp;(disconnected&amp;nbsp;from&amp;nbsp;bus) &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;10월&amp;nbsp;21&amp;nbsp;11:23:49&amp;nbsp;192.168.nate.com&amp;nbsp;polkitd[687]:&amp;nbsp;Registered&amp;nbsp;Authentication&amp;nbsp;Agent&amp;nbsp;for&amp;nbsp;unix-process:11265:44983&amp;nbsp;(system&amp;nbsp;bus&amp;nbsp;name&amp;nbsp;:1.36&amp;nbsp;[/usr/bin/pkttyagent&amp;nbsp;--notify-fd&amp;nbsp;5&amp;nbsp;--fallback],&amp;nbsp;object&amp;nbsp;path&amp;nbsp;/org/freedesktop/PolicyKit1/AuthenticationAgent,&amp;nbsp;locale&amp;nbsp;ko_KR.UTF-8) &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;10월&amp;nbsp;21&amp;nbsp;11:23:49&amp;nbsp;192.168.nate.com&amp;nbsp;systemd[1]:&amp;nbsp;Stopping&amp;nbsp;nginx&amp;nbsp;-&amp;nbsp;high&amp;nbsp;performance&amp;nbsp;web&amp;nbsp;server... &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;--&amp;nbsp;Subject:&amp;nbsp;Unit&amp;nbsp;nginx.service&amp;nbsp;has&amp;nbsp;begun&amp;nbsp;shutting&amp;nbsp;down &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;--&amp;nbsp;Defined-By:&amp;nbsp;systemd &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;--&amp;nbsp;Support:&amp;nbsp;http://lists.freedesktop.org/mailman/listinfo/systemd-devel &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;--&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;--&amp;nbsp;Unit&amp;nbsp;nginx.service&amp;nbsp;has&amp;nbsp;begun&amp;nbsp;shutting&amp;nbsp;down. &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;10월&amp;nbsp;21&amp;nbsp;11:23:49&amp;nbsp;192.168.nate.com&amp;nbsp;systemd[1]:&amp;nbsp;Stopped&amp;nbsp;nginx&amp;nbsp;-&amp;nbsp;high&amp;nbsp;performance&amp;nbsp;web&amp;nbsp;server. &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;--&amp;nbsp;Subject:&amp;nbsp;Unit&amp;nbsp;nginx.service&amp;nbsp;has&amp;nbsp;finished&amp;nbsp;shutting&amp;nbsp;down &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;--&amp;nbsp;Defined-By:&amp;nbsp;systemd &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;--&amp;nbsp;Support:&amp;nbsp;http://lists.freedesktop.org/mailman/listinfo/systemd-devel &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;--&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;--&amp;nbsp;Unit&amp;nbsp;nginx.service&amp;nbsp;has&amp;nbsp;finished&amp;nbsp;shutting&amp;nbsp;down. &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;10월&amp;nbsp;21&amp;nbsp;11:23:49&amp;nbsp;192.168.nate.com&amp;nbsp;polkitd[687]:&amp;nbsp;Unregistered&amp;nbsp;Authentication&amp;nbsp;Agent&amp;nbsp;for&amp;nbsp;unix-process:11265:44983&amp;nbsp;(system&amp;nbsp;bus&amp;nbsp;name&amp;nbsp;:1.36,&amp;nbsp;object&amp;nbsp;path&amp;nbsp;/org/freedesktop/PolicyKit1/AuthenticationAgent,&amp;nbsp;locale&amp;nbsp;ko_KR.UTF-8)&amp;nbsp;(disconnected&amp;nbsp;from&amp;nbsp;bus) &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;10월&amp;nbsp;21&amp;nbsp;11:24:01&amp;nbsp;192.168.nate.com&amp;nbsp;polkitd[687]:&amp;nbsp;Registered&amp;nbsp;Authentication&amp;nbsp;Agent&amp;nbsp;for&amp;nbsp;unix-process:11276:46211&amp;nbsp;(system&amp;nbsp;bus&amp;nbsp;name&amp;nbsp;:1.37&amp;nbsp;[/usr/bin/pkttyagent&amp;nbsp;--notify-fd&amp;nbsp;5&amp;nbsp;--fallback],&amp;nbsp;object&amp;nbsp;path&amp;nbsp;/org/freedesktop/PolicyKit1/AuthenticationAgent,&amp;nbsp;locale&amp;nbsp;ko_KR.UTF-8) &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;10월&amp;nbsp;21&amp;nbsp;11:24:01&amp;nbsp;192.168.nate.com&amp;nbsp;systemd[1]:&amp;nbsp;Starting&amp;nbsp;nginx&amp;nbsp;-&amp;nbsp;high&amp;nbsp;performance&amp;nbsp;web&amp;nbsp;server... &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;--&amp;nbsp;Subject:&amp;nbsp;Unit&amp;nbsp;nginx.service&amp;nbsp;has&amp;nbsp;begun&amp;nbsp;start-up &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;--&amp;nbsp;Defined-By:&amp;nbsp;systemd &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;--&amp;nbsp;Support:&amp;nbsp;http://lists.freedesktop.org/mailman/listinfo/systemd-devel &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;--&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;--&amp;nbsp;Unit&amp;nbsp;nginx.service&amp;nbsp;has&amp;nbsp;begun&amp;nbsp;starting&amp;nbsp;up. &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;10월&amp;nbsp;21&amp;nbsp;11:24:01&amp;nbsp;192.168.nate.com&amp;nbsp;nginx[11282]:&amp;nbsp;nginx:&amp;nbsp;[emerg]&amp;nbsp;bind()&amp;nbsp;to&amp;nbsp;0.0.0.0:8089&amp;nbsp;failed&amp;nbsp;(13:&amp;nbsp;Permission&amp;nbsp;denied) &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;10월&amp;nbsp;21&amp;nbsp;11:24:01&amp;nbsp;192.168.nate.com&amp;nbsp;systemd[1]:&amp;nbsp;nginx.service:&amp;nbsp;control&amp;nbsp;process&amp;nbsp;exited,&amp;nbsp;code=exited&amp;nbsp;status=1 &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;10월&amp;nbsp;21&amp;nbsp;11:24:01&amp;nbsp;192.168.nate.com&amp;nbsp;systemd[1]:&amp;nbsp;Failed&amp;nbsp;to&amp;nbsp;start&amp;nbsp;nginx&amp;nbsp;-&amp;nbsp;high&amp;nbsp;performance&amp;nbsp;web&amp;nbsp;server. &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;--&amp;nbsp;Subject:&amp;nbsp;Unit&amp;nbsp;nginx.service&amp;nbsp;has&amp;nbsp;failed &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;--&amp;nbsp;Defined-By:&amp;nbsp;systemd &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;--&amp;nbsp;Support:&amp;nbsp;http://lists.freedesktop.org/mailman/listinfo/systemd-devel &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;--&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;--&amp;nbsp;Unit&amp;nbsp;nginx.service&amp;nbsp;has&amp;nbsp;failed. &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;--&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;--&amp;nbsp;The&amp;nbsp;result&amp;nbsp;is&amp;nbsp;failed. &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;10월&amp;nbsp;21&amp;nbsp;11:24:01&amp;nbsp;192.168.nate.com&amp;nbsp;systemd[1]:&amp;nbsp;Unit&amp;nbsp;nginx.service&amp;nbsp;entered&amp;nbsp;failed&amp;nbsp;state. &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;10월&amp;nbsp;21&amp;nbsp;11:24:01&amp;nbsp;192.168.nate.com&amp;nbsp;systemd[1]:&amp;nbsp;nginx.service&amp;nbsp;failed. &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;10월&amp;nbsp;21&amp;nbsp;11:24:01&amp;nbsp;192.168.nate.com&amp;nbsp;polkitd[687]:&amp;nbsp;Unregistered&amp;nbsp;Authentication&amp;nbsp;Agent&amp;nbsp;for&amp;nbsp;unix-process:11276:46211&amp;nbsp;(system&amp;nbsp;bus&amp;nbsp;name&amp;nbsp;:1.37,&amp;nbsp;object&amp;nbsp;path&amp;nbsp;/org/freedesktop/PolicyKit1/AuthenticationAgent,&amp;nbsp;locale&amp;nbsp;ko_KR.UTF-8)&amp;nbsp;(disconnected&amp;nbsp;from&amp;nbsp;bus)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;8089포트가 권한이 없다고 하는 내용인데 SElinux 사용 시 포트 등록이 안되어 있어서 발생하는 오류이다.&lt;/p&gt;
&lt;p&gt;semanage로 포트를 등록해 주자.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;semanage&amp;nbsp;port&amp;nbsp;-a&amp;nbsp;-t&amp;nbsp;http_port_t&amp;nbsp;-p&amp;nbsp;tcp&amp;nbsp;8089&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;포트를 등록했으면 다시 nginx 데몬을 실행한다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;systemctl&amp;nbsp;start&amp;nbsp;nginx &lt;br /&gt;systemctl&amp;nbsp;enable&amp;nbsp;nginx &lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot;&gt;&lt;br /&gt;&lt;b&gt;7. 실행&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;400&quot; height=&quot;151&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bquZkD/btqzbkeAzzh/4UIuZo6OP0pzIKwGI1k6ik/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bquZkD/btqzbkeAzzh/4UIuZo6OP0pzIKwGI1k6ik/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bquZkD/btqzbkeAzzh/4UIuZo6OP0pzIKwGI1k6ik/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbquZkD%2FbtqzbkeAzzh%2F4UIuZo6OP0pzIKwGI1k6ik%2Fimg.png&quot; width=&quot;400&quot; height=&quot;151&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;&amp;nbsp;&lt;/p&gt;</description>
      <category>OS/Linux</category>
      <author>CofS</author>
      <guid isPermaLink="true">https://cofs.tistory.com/412</guid>
      <comments>https://cofs.tistory.com/412#entry412comment</comments>
      <pubDate>Tue, 22 Oct 2019 12:00:03 +0900</pubDate>
    </item>
    <item>
      <title>nginx  failed (13: Permission denied) while connecting to upstream 오류</title>
      <link>https://cofs.tistory.com/411</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;NGINX-logo-rgb-large.png&quot; width=&quot;390&quot; height=&quot;131&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cBYqpU/btqzbkeyGE8/NoL82414Jdrbe49WjtEUB0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cBYqpU/btqzbkeyGE8/NoL82414Jdrbe49WjtEUB0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cBYqpU/btqzbkeyGE8/NoL82414Jdrbe49WjtEUB0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcBYqpU%2FbtqzbkeyGE8%2FNoL82414Jdrbe49WjtEUB0%2Fimg.png&quot; data-filename=&quot;NGINX-logo-rgb-large.png&quot; width=&quot;390&quot; height=&quot;131&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;failed (13: Permission denied) while connecting to upstream 오류 해결방법&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;OS : CentOS7&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;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;nginx를 설치하고 포트를 모두 열어둔 상태로 다음과 같이 포트포워딩을 사용하려고 했다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;server&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;listen&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;8089; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;server_name&amp;nbsp;&amp;nbsp;localhost; &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;location&amp;nbsp;/&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;proxy_pass&amp;nbsp;http://naver.com; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;error_page&amp;nbsp;&amp;nbsp;&amp;nbsp;500&amp;nbsp;502&amp;nbsp;503&amp;nbsp;504&amp;nbsp;&amp;nbsp;/50x.html; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;location&amp;nbsp;=&amp;nbsp;/50x.html&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;root&amp;nbsp;&amp;nbsp;&amp;nbsp;/usr/share/nginx/html; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;}&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;root로 접속하면 naver로 이동시키는 간단한 설정이다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;그런데 자꾸 502 Bad Gateway를 발생하면서 error 페이지로 이동했다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;google에 검색해보니 자꾸 퍼미션 관련해서 바꾸라고 하는데&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;필자는 로컬에 html 파일이나 웹 파일을 두지 않아서 해당하지 않았다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;찾다보니 SELinux 관련해서 설정이 필요하다는 내용이 있었다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;SELinux의 httpd 관련 허용 설정이 필요했다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;다음과 같이 실행하면 된다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style15&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;setsebool&amp;nbsp;-P&amp;nbsp;httpd_can_network_connect&amp;nbsp;on&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;끝 ~&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>OS/Linux</category>
      <author>CofS</author>
      <guid isPermaLink="true">https://cofs.tistory.com/411</guid>
      <comments>https://cofs.tistory.com/411#entry411comment</comments>
      <pubDate>Tue, 22 Oct 2019 09:00:11 +0900</pubDate>
    </item>
    <item>
      <title>vi 편집기 개행문자 (줄바꿈) 치환</title>
      <link>https://cofs.tistory.com/410</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;166&quot; height=&quot;166&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/G3gFR/btqzcWXqknF/PGoKiWawsMs0DYOFSRn13k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/G3gFR/btqzcWXqknF/PGoKiWawsMs0DYOFSRn13k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/G3gFR/btqzcWXqknF/PGoKiWawsMs0DYOFSRn13k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FG3gFR%2FbtqzcWXqknF%2FPGoKiWawsMs0DYOFSRn13k%2Fimg.png&quot; width=&quot;166&quot; height=&quot;166&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;vi 편집기에서 개행문자 즉 줄바꿈 기호를 치환해야 하는 경우가 있다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이유는 여러가지가 있을 수 있는데 대표적으로 OS마다 줄바꿈 기호가 다르다는 점이 가장 크다.&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;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;8108516233&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&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 style=&quot;color: #333333;&quot;&gt;줄바꿈 기호 치환&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;:%s/\n/\r/g&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;\n -&amp;gt; \r 로 치환&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;:%s/\n/^M/g&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;\n -&amp;gt; ^M 으로 치환&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;여기서&amp;nbsp;^M&amp;nbsp;은&amp;nbsp;Crtl&amp;nbsp;+&amp;nbsp;v&amp;nbsp;+&amp;nbsp;Enter&amp;nbsp;또는&amp;nbsp;Ctrl&amp;nbsp;+&amp;nbsp;v,&amp;nbsp;m&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;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;:%s/\n/\r\n/g&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Unix (linux) 에서 Windows 로 치환&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;:%s/\r\n/\n/g&lt;/span&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Windows 에서 Unix (linux) 로 치환&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;:%s/\n//g&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Unix (linux) 개행문자 (줄바꿈) 제거&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;:%s/\r\n//g&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Windows &lt;span style=&quot;color: #333333;&quot;&gt;개행문자 (줄바꿈) 제거&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;:%s/\n/\n\n/g&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Unix (linux) 개행문자 (줄바꿈) 1줄에서 2줄로 변경&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;p style=&quot;font-size: 1.25em;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;팁&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;:%s/찾을 내용/바꿀 내용/g&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;찾을 내용과 바꿀 내용만 잘 바꿔주면 다양한 방법으로 치환할 수 있다.&lt;/p&gt;</description>
      <category>OS/Linux</category>
      <author>CofS</author>
      <guid isPermaLink="true">https://cofs.tistory.com/410</guid>
      <comments>https://cofs.tistory.com/410#entry410comment</comments>
      <pubDate>Mon, 21 Oct 2019 11:11:53 +0900</pubDate>
    </item>
    <item>
      <title>File contains no section headers.</title>
      <link>https://cofs.tistory.com/409</link>
      <description>&lt;p&gt;CentOS7에 nginx 를 설치하는 과정에서 다음과 같은 오류가 발생했다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c9eNNK/btqzbE4rLJW/3cKvvY65bgIYWJ1sBgwxJ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c9eNNK/btqzbE4rLJW/3cKvvY65bgIYWJ1sBgwxJ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c9eNNK/btqzbE4rLJW/3cKvvY65bgIYWJ1sBgwxJ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc9eNNK%2FbtqzbE4rLJW%2F3cKvvY65bgIYWJ1sBgwxJ1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;Loaded&amp;nbsp;plugins:&amp;nbsp;fastestmirror &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;File&amp;nbsp;contains&amp;nbsp;no&amp;nbsp;section&amp;nbsp;headers. &lt;br /&gt;file:&amp;nbsp;file:///etc/yum.repos.d/nginx.repo,&amp;nbsp;line:&amp;nbsp;1 &lt;br /&gt;'name=nginx&amp;nbsp;repo\n'&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;yum 으로 설치하려고 할 때 발생한 오류인데 외부 저장소 파일에 해더가 없다는 오류이다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;파일을 열어보니 다음과 같이 작성되어 있었다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;name=nginx&amp;nbsp;repo &lt;br /&gt;baseurl=http://nginx.org/packages/centos/7/$basearch/ &lt;br /&gt;gpgcheck=0 &lt;br /&gt;enabled=1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;8108516233&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;[nginx] 해더가 빠져있었다 ㅠㅠ&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;아래와 같이 수정했다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style15&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;[nginx] &lt;br /&gt;name=nginx&amp;nbsp;repo &lt;br /&gt;baseurl=http://nginx.org/packages/centos/7/$basearch/ &lt;br /&gt;gpgcheck=0 &lt;br /&gt;enabled=1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;끝&lt;/p&gt;</description>
      <category>OS/Linux</category>
      <author>CofS</author>
      <guid isPermaLink="true">https://cofs.tistory.com/409</guid>
      <comments>https://cofs.tistory.com/409#entry409comment</comments>
      <pubDate>Mon, 21 Oct 2019 10:18:14 +0900</pubDate>
    </item>
    <item>
      <title>CentOS 7 ssh port 변경 방법</title>
      <link>https://cofs.tistory.com/408</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;computer.png&quot; width=&quot;192&quot; height=&quot;192&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/laPQM/btqzaSaFcYc/IbS2RsoqFRc3wGIsbr5ih1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/laPQM/btqzaSaFcYc/IbS2RsoqFRc3wGIsbr5ih1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/laPQM/btqzaSaFcYc/IbS2RsoqFRc3wGIsbr5ih1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlaPQM%2FbtqzaSaFcYc%2FIbS2RsoqFRc3wGIsbr5ih1%2Fimg.png&quot; data-filename=&quot;computer.png&quot; width=&quot;192&quot; height=&quot;192&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;ssh 기본 포트는 22번인데 이를 바꿔야 할 경우 다음과 같이 진행하면 된다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;22번 기본포트를 2244 포트로 변경해 보자.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&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;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;1.&amp;nbsp;방화벽&amp;nbsp;포트&amp;nbsp;변경&lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;firewall-cmd&amp;nbsp;--permanent&amp;nbsp;--zone=public&amp;nbsp;--add-port=2244/tcp &lt;br /&gt;firewall-cmd&amp;nbsp;--reload&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&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;&lt;b&gt;2. ssh 환경설정 변경&lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;vi&amp;nbsp;/etc/ssh/sshd_config&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;vi 편집기를 사용하여 sshd_config 파일 중간에 있는 다음 내용을 변경한다.&lt;/p&gt;
&lt;p&gt;#Port 22 -&amp;gt; Port 2244&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;&lt;b&gt;3.&amp;nbsp;서비스&amp;nbsp;재구동&lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 20px;&quot; border=&quot;1&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 100%; height: 20px;&quot;&gt;systemctl&amp;nbsp;restart&amp;nbsp;sshd&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&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 style=&quot;width: 100%;&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Job&amp;nbsp;for&amp;nbsp;ssh.service&amp;nbsp;failed&amp;nbsp;because&amp;nbsp;the&amp;nbsp;control&amp;nbsp;process&amp;nbsp;exited&amp;nbsp;with&amp;nbsp;error&amp;nbsp;code.&amp;nbsp;See&amp;nbsp;&quot;systemctl&amp;nbsp;status&amp;nbsp;ssh.service&quot;&amp;nbsp;and&amp;nbsp;&quot;journalctl&amp;nbsp;-xe&quot;&amp;nbsp;for&amp;nbsp;details.&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&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;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;4608841651&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/b&gt;&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;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;1. semanage로 포트 등록 (&lt;span style=&quot;color: #000000;&quot;&gt;SELinux Policy Management tool)&lt;/span&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;semanage&amp;nbsp;port&amp;nbsp;-a&amp;nbsp;-t&amp;nbsp;ssh_port_t&amp;nbsp;-p&amp;nbsp;tcp&amp;nbsp;2244&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;2.&amp;nbsp;서비스&amp;nbsp;재구동&lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;systemctl&amp;nbsp;restart&amp;nbsp;sshd&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;끝&lt;/p&gt;</description>
      <category>OS/Linux</category>
      <author>CofS</author>
      <guid isPermaLink="true">https://cofs.tistory.com/408</guid>
      <comments>https://cofs.tistory.com/408#entry408comment</comments>
      <pubDate>Sat, 19 Oct 2019 10:35:48 +0900</pubDate>
    </item>
    <item>
      <title>docker apache airflow 설치하기</title>
      <link>https://cofs.tistory.com/407</link>
      <description>&lt;p&gt;docker&amp;nbsp;apache&amp;nbsp;airflow&amp;nbsp;설치하기&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eo9Cit/btqxPerV1EK/sTxIrklk00200gZ06WLqy1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eo9Cit/btqxPerV1EK/sTxIrklk00200gZ06WLqy1/img.png&quot; data-alt=&quot;apache airflow&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eo9Cit/btqxPerV1EK/sTxIrklk00200gZ06WLqy1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Feo9Cit%2FbtqxPerV1EK%2FsTxIrklk00200gZ06WLqy1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;apache airflow&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;8108516233&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;환경은 centos7 64bit 이다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style15&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&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;1. docker 설치&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;2. apache airflow docker image 다운로드&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;3. apache airflow docker image run&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;4. apache airflow ui 실행&lt;/b&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&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot;&gt;&lt;b&gt;1. docker 설치&lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;yum&amp;nbsp;-y&amp;nbsp;install&amp;nbsp;docker&amp;nbsp;docker-registry&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;yum 으로 docker, docker-registry 를 설치한다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;systemctl&amp;nbsp;enable&amp;nbsp;docker.service&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;부팅시&amp;nbsp;실행되도록&amp;nbsp;systemctl에&amp;nbsp;등록하고&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;systemctl&amp;nbsp;start&amp;nbsp;docker.service&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;docker 를 실행한다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;4608841651&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot;&gt;&lt;b&gt;2. apache airflow docker image 다운로드&lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;docker&amp;nbsp;pull&amp;nbsp;puckel/docker-airflow&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;docker pull 명령어로 apache airflow image를 다운받는다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bUe3YQ/btqxM5CIFPK/prpfE6jSCqWpKFAch4J2wk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bUe3YQ/btqxM5CIFPK/prpfE6jSCqWpKFAch4J2wk/img.png&quot; data-alt=&quot;apache airflow docker image download&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bUe3YQ/btqxM5CIFPK/prpfE6jSCqWpKFAch4J2wk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbUe3YQ%2FbtqxM5CIFPK%2FprpfE6jSCqWpKFAch4J2wk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;apache airflow docker image download&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;image 정보는 다음 링크를 참조한다.&lt;/p&gt;
&lt;p&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;1982678315&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;figure id=&quot;og_1566980138998&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot;&gt;&lt;a href=&quot;https://hub.docker.com/r/puckel/docker-airflow&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-original-url=&quot;https://hub.docker.com/r/puckel/docker-airflow&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;Docker Hub&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;hub.docker.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rLZwk/btqxOJTgar8/yAC356ZqCvv7uKSxbMXKK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rLZwk/btqxOJTgar8/yAC356ZqCvv7uKSxbMXKK1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rLZwk/btqxOJTgar8/yAC356ZqCvv7uKSxbMXKK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrLZwk%2FbtqxOJTgar8%2FyAC356ZqCvv7uKSxbMXKK1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;docker images 명령어로 이미지 목록을 조회하면 docker.io/puckel/docker-airflow 라는 image가 하나 생성되어 있다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&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 style=&quot;width: 100%;&quot;&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #ff7154;&quot;&gt;혹시나 offline 환경이라면 다음과 같이 하면 된다.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #ff7154;&quot;&gt;1. 인터넷이 되는 환경에서 docker image를 docker pull로 다운로드&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #ff7154;&quot;&gt;2. docker save 명령어로 이미지를 tar로 변환&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #ff7154;&quot;&gt;3. tar 파일을 offline 환경으로 복사&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #ff7154;&quot;&gt;4. docker load 명령어로 tar 파일을 다시 이미지로 변환&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #ff7154;&quot;&gt;5. docker&amp;nbsp;tag 명령어로 이미지명을 수정&lt;/span&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&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;8356514973&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot;&gt;&lt;b&gt;3. apache airflow docker image run&lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;docker&amp;nbsp;run&amp;nbsp;-d&amp;nbsp;-p&amp;nbsp;8080:8080&amp;nbsp;--name&amp;nbsp;airflow_v1&amp;nbsp;docker.io/puckel/docker-airflow&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;다운받은 image를 run 한다.&lt;/p&gt;
&lt;p&gt;container 명은 airflow_v1로 했다.&lt;/p&gt;
&lt;p&gt;호스트 포트와 컨테이너 포트를 8080으로 연결했다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;docker ps&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;docker ps 명령어로 실행중인 container 를 조회해 본다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/n6v1R/btqxLVAwRFJ/kaeyKrssg7ypM6xJmffkXK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/n6v1R/btqxLVAwRFJ/kaeyKrssg7ypM6xJmffkXK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/n6v1R/btqxLVAwRFJ/kaeyKrssg7ypM6xJmffkXK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fn6v1R%2FbtqxLVAwRFJ%2FkaeyKrssg7ypM6xJmffkXK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;airflow_v1 이라는 container가 생성되었다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;!-- new cofs 상단 광고 --&gt;&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;3722548661&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot;&gt;&lt;b&gt;4. apache airflow ui 실행&lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;http://localhost:8080&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;브라우저에서 localhost:8080 으로 접속하면 airflow ui가 실행된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bzgOIq/btqxMtDQlXk/H5SHQybzGj7sQ5B3GItoGK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bzgOIq/btqxMtDQlXk/H5SHQybzGj7sQ5B3GItoGK/img.png&quot; data-alt=&quot;airflow ui&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bzgOIq/btqxMtDQlXk/H5SHQybzGj7sQ5B3GItoGK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbzgOIq%2FbtqxMtDQlXk%2FH5SHQybzGj7sQ5B3GItoGK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;airflow ui&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;끝 ~&lt;/p&gt;</description>
      <category>OS/docker</category>
      <author>CofS</author>
      <guid isPermaLink="true">https://cofs.tistory.com/407</guid>
      <comments>https://cofs.tistory.com/407#entry407comment</comments>
      <pubDate>Wed, 28 Aug 2019 17:31:00 +0900</pubDate>
    </item>
    <item>
      <title>cetnos7 Oracle client 설치</title>
      <link>https://cofs.tistory.com/406</link>
      <description>&lt;p&gt;linux centos7환경에서 oracle client 를 설치하는 방법이다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style14&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&lt;b&gt;순서요약&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;1.&amp;nbsp;oracle&amp;nbsp;client&amp;nbsp;rmp파일&amp;nbsp;다운로드&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;2.&amp;nbsp;yum을&amp;nbsp;활용하여&amp;nbsp;oracle&amp;nbsp;client&amp;nbsp;설치&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;3.&amp;nbsp;환경변수&amp;nbsp;설정&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;1. oracle client rmp파일 다운로드&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;아래 링크를 클릭해서 해당하는 oracle client basic, sqlplus rmp 파일들을 다운로드한다.&lt;/p&gt;
&lt;p&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;8108516233&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;figure id=&quot;og_1565919075574&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot;&gt;&lt;a href=&quot;https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-original-url=&quot;https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html&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;Instant Client for Linux x86-64 (64-bit)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;Instant Client Installation for Linux x86-64 (64-bit) For general Instant Client information, see the Home Page. ODBC users should follow the ODBC Installation Instructions. Instant Client RPMs are also available without click-through from yum.oracle.com f&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;www.oracle.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cPie8j/btqxuTbj0p1/UHenawMlTOBHdE1MAZWxok/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cPie8j/btqxuTbj0p1/UHenawMlTOBHdE1MAZWxok/img.png&quot; data-alt=&quot;instanct client basic rpm file&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cPie8j/btqxuTbj0p1/UHenawMlTOBHdE1MAZWxok/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcPie8j%2FbtqxuTbj0p1%2FUHenawMlTOBHdE1MAZWxok%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;instanct client basic rpm file&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cQtSf7/btqxvLQ93Qj/1ixfqAIFnfqnHd3ewgbLJk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cQtSf7/btqxvLQ93Qj/1ixfqAIFnfqnHd3ewgbLJk/img.png&quot; data-alt=&quot;instant client sqlplus rpm file&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cQtSf7/btqxvLQ93Qj/1ixfqAIFnfqnHd3ewgbLJk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcQtSf7%2FbtqxvLQ93Qj%2F1ixfqAIFnfqnHd3ewgbLJk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;instant client sqlplus rpm file&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;필자는 centos7 64bit 환경이라 위 사이트에서 파일을 다운받았다.&lt;/p&gt;
&lt;p&gt;다른 환경이라면 그에 맞게 다운받으면 된다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;4608841651&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;h4&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;2. yum을 활용하여 oracle client 설치&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;그런 다음 다음 명령어를 활용하여 설치를 진행한다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style15&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;yum&amp;nbsp;install&amp;nbsp;-y&amp;nbsp;oracle-instantclient19.3-basic-19.3.0.0.0-1.x86_64.rpm&lt;br /&gt;&lt;br /&gt;yum&amp;nbsp;install&amp;nbsp;-y&amp;nbsp;oracle-instantclient19.3-sqlplus-19.3.0.0.0-1.x86_64.rpm&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;설치 도중 다음과 같은 오류가 발생한다면 보통은 의존성 관련 라이브러리가 없어서 나는 오류임으로&lt;/p&gt;
&lt;p&gt;의존성 라이브러리들을 설치해 주면 된다.&lt;/p&gt;
&lt;p&gt;예)&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;Failed&amp;nbsp;dependencies:libaio&amp;nbsp;is&amp;nbsp;needed&amp;nbsp;by&amp;nbsp;oracle-instantclient19.3-basiclite-19.3.0.0.0-1.x86_64&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;위와 같은 오류 발생 시&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style15&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;yum&amp;nbsp;install&amp;nbsp;-y&amp;nbsp;libaio&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;위와 같이 라이브러리를 설치해 주면 된다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;1982678315&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;h4&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;3. 환경변수 설정&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;oracle.sh파일과 .bash_profile에 환경변수를 등록해준다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style15&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;vi&amp;nbsp;/etc/profile.d/oracle.sh&lt;br /&gt;&lt;br /&gt;export&amp;nbsp;ORACLE_HOME=/usr/lib/oracle/19.3/client64&lt;br /&gt;export&amp;nbsp;TNS_ADMIN=/usr/lib/oracle/19.3/client64/bin&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;oracle.sh파일에는 client 설치 경로를 설정한다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style15&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;vi&amp;nbsp;~/.bash_profile&amp;nbsp;&lt;br /&gt;&lt;br /&gt;#&amp;nbsp;.bash_profile&lt;br /&gt;&lt;br /&gt;#&amp;nbsp;Get&amp;nbsp;the&amp;nbsp;aliases&amp;nbsp;and&amp;nbsp;functions&lt;br /&gt;if&amp;nbsp;[&amp;nbsp;-f&amp;nbsp;~/.bashrc&amp;nbsp;];&amp;nbsp;then&lt;br /&gt;.&amp;nbsp;~/.bashrc&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;#&amp;nbsp;User&amp;nbsp;specific&amp;nbsp;environment&amp;nbsp;and&amp;nbsp;startup&amp;nbsp;programs&lt;br /&gt;&lt;br /&gt;PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin&amp;nbsp;&lt;br /&gt;&lt;br /&gt;export&amp;nbsp;PATH&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;.bash_profile 파일에는 ORACLE_HOME을 추가한다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&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;&amp;nbsp;&lt;/p&gt;</description>
      <category>OS/Linux</category>
      <author>CofS</author>
      <guid isPermaLink="true">https://cofs.tistory.com/406</guid>
      <comments>https://cofs.tistory.com/406#entry406comment</comments>
      <pubDate>Fri, 16 Aug 2019 10:51:04 +0900</pubDate>
    </item>
    <item>
      <title>docker image commit 방법</title>
      <link>https://cofs.tistory.com/405</link>
      <description>&lt;p&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;8108516233&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;docker를 사용하다 보면 docker container에 특정 프로그램을 설치 한 후 다시 image로 만들고 container를 실행해야 하는 경우가 생긴다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;docker container에 특정 프로그램을 설치하고 그대로 사용해도 문제는 없지만 혹여나 설치한 프로그램이 문제가 되어 docker container를 다시 생성해야 할 경우 이전 시점의 docker image가 없다면 복구하기가 어려워 보인다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;docker image를 중간중간 저장해 두어야 특정 시점으로 빠른 복구가 가능하다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이번 포스팅은 실행중인 docker container를 docker image로 commit하고 commit 된 새로운 image를 container로 실행시키는 방법이다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;현재 docker image와 docker container 현황을 먼저 살펴보자.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bJBTjQ/btqxslTzaZF/bGzANEdgUTeOkkfzfyMBEK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bJBTjQ/btqxslTzaZF/bGzANEdgUTeOkkfzfyMBEK/img.png&quot; data-alt=&quot;docker image list&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bJBTjQ/btqxslTzaZF/bGzANEdgUTeOkkfzfyMBEK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJBTjQ%2FbtqxslTzaZF%2FbGzANEdgUTeOkkfzfyMBEK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;docker image list&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;먼저 docker image 목록이다.&lt;/p&gt;
&lt;p&gt;현재 centos7_image라는 이미지가 1개 있다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/B25mR/btqxu4WTJFb/k76DOfgKsss8ukXh4zRjwK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/B25mR/btqxu4WTJFb/k76DOfgKsss8ukXh4zRjwK/img.png&quot; data-alt=&quot;docker container list&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/B25mR/btqxu4WTJFb/k76DOfgKsss8ukXh4zRjwK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FB25mR%2Fbtqxu4WTJFb%2Fk76DOfgKsss8ukXh4zRjwK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;docker container list&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;다음으로는 container 목록이다.&lt;/p&gt;
&lt;p&gt;centos7.v1 이라는 실행중인 container가 있다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;4608841651&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;centos7.v1 docker container에 접속해서 oracle12c client를 설치했다고 가정하자.&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;&lt;figure class=&quot;imageblock alignCenter&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dwhzRX/btqxuky7T0d/0WrotBHPBFhDw4yxK97ie1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dwhzRX/btqxuky7T0d/0WrotBHPBFhDw4yxK97ie1/img.png&quot; data-alt=&quot;docker commit&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dwhzRX/btqxuky7T0d/0WrotBHPBFhDw4yxK97ie1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdwhzRX%2Fbtqxuky7T0d%2F0WrotBHPBFhDw4yxK97ie1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;docker commit&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;oracle12c client를 설치 한 후 container를 image로 commit 한다.&lt;/p&gt;
&lt;p&gt;명령어는 다음과 같다.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; docker&amp;nbsp;commit&amp;nbsp;-m&amp;nbsp;&quot;메시지&quot;&amp;nbsp;컨테이너명 이미지명:태그&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;다른 여러 옵션이 많지만 여기선 생략하고 -m 옵션만 사용했다.&lt;/p&gt;
&lt;p&gt;-m 옵션은 commit시 어떤 내용이 변경되었는지 간단하게 기록할 때 사용한다.&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&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/XkxhO/btqxsCOhOJN/LlAiKpSV9zKPE5QudEK861/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/XkxhO/btqxsCOhOJN/LlAiKpSV9zKPE5QudEK861/img.png&quot; data-alt=&quot;docker image list&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/XkxhO/btqxsCOhOJN/LlAiKpSV9zKPE5QudEK861/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXkxhO%2FbtqxsCOhOJN%2FLlAiKpSV9zKPE5QudEK861%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;docker image list&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;commit이 완료되면 다시 docker images 명령어를 활용하여 image 목록을 조회해 본다.&lt;/p&gt;
&lt;p&gt;TAG가 0.0.2인 centos7_image 이미지가 하나 더 생성된 것을 확인할 수 있다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/1g85T/btqxtXYKaMF/SVyH3voCbnVwVPhGOqLMRK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/1g85T/btqxtXYKaMF/SVyH3voCbnVwVPhGOqLMRK/img.png&quot; data-alt=&quot;docker container stop&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/1g85T/btqxtXYKaMF/SVyH3voCbnVwVPhGOqLMRK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1g85T%2FbtqxtXYKaMF%2FSVyH3voCbnVwVPhGOqLMRK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;docker container stop&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;docker stop 명령어를 활용해서 기존에 실행되고 있던 centos7.v1 container를 정지한다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bk4U0r/btqxtq09yZN/KIZi5h6kW8fO5ZA8x6cuO0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bk4U0r/btqxtq09yZN/KIZi5h6kW8fO5ZA8x6cuO0/img.png&quot; data-alt=&quot;docker container run&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bk4U0r/btqxtq09yZN/KIZi5h6kW8fO5ZA8x6cuO0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbk4U0r%2Fbtqxtq09yZN%2FKIZi5h6kW8fO5ZA8x6cuO0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;docker container run&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;새로 생성한 docker image를 docker run 명령어로 실행한다.&lt;/p&gt;
&lt;p&gt;docker container 명은 centos7.v2로 image tag와 숫자를 맞춰 혼돈을 줄여준다.&lt;/p&gt;
&lt;p&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;1982678315&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bzgBcU/btqxtXLbGtS/GyWCQ1DhoMXlGTpWAWXHw1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bzgBcU/btqxtXLbGtS/GyWCQ1DhoMXlGTpWAWXHw1/img.png&quot; data-alt=&quot;docker container list&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bzgBcU/btqxtXLbGtS/GyWCQ1DhoMXlGTpWAWXHw1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbzgBcU%2FbtqxtXLbGtS%2FGyWCQ1DhoMXlGTpWAWXHw1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;docker container list&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;docker container 목록을 확인해 보면 방금 생성한 container가 활성화 된것을 확인할 수 있다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이로써 사용중이던 docker container 를 commit 명령어로 새로운 image로 생성하고 생성된 image로 새로운 container를 만들어 보았다.&lt;/p&gt;</description>
      <category>OS/docker</category>
      <author>CofS</author>
      <guid isPermaLink="true">https://cofs.tistory.com/405</guid>
      <comments>https://cofs.tistory.com/405#entry405comment</comments>
      <pubDate>Wed, 14 Aug 2019 14:22:54 +0900</pubDate>
    </item>
    <item>
      <title>jquery ajax 옵션 총정리</title>
      <link>https://cofs.tistory.com/404</link>
      <description>&lt;p&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;8108516233&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;jquery ajax 옵션을 정리해 보고자 한다.&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;/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;figure class=&quot;imageblock alignCenter&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bao9gC/btqwVgKFeuU/m0PpFf50ICZfNBUmls7lk0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bao9gC/btqwVgKFeuU/m0PpFf50ICZfNBUmls7lk0/img.png&quot; data-alt=&quot;jquery ajax&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bao9gC/btqwVgKFeuU/m0PpFf50ICZfNBUmls7lk0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbao9gC%2FbtqwVgKFeuU%2Fm0PpFf50ICZfNBUmls7lk0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;jquery ajax&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;accepts&amp;nbsp;(default:&amp;nbsp;depends&amp;nbsp;on&amp;nbsp;dataType)&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;color: #9eb1c7;&quot;&gt;&lt;b&gt;Type&amp;nbsp;:&amp;nbsp;PlainObject&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;키/값&amp;nbsp;형태이며&amp;nbsp;해더에&amp;nbsp;포함한다.&amp;nbsp;어떤&amp;nbsp;종류의&amp;nbsp;응답을&amp;nbsp;받아들일지&amp;nbsp;서버에&amp;nbsp;알려주는&amp;nbsp;역할을&amp;nbsp;한다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;async&amp;nbsp;(default:&amp;nbsp;true)&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;color: #9eb1c7;&quot;&gt;&lt;b&gt;Type&amp;nbsp;:&amp;nbsp;Boolean&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;기본적으로&amp;nbsp;비동기&amp;nbsp;요청을&amp;nbsp;하도록&amp;nbsp;한다.&amp;nbsp;동기&amp;nbsp;요청이&amp;nbsp;필요하면&amp;nbsp;값을&amp;nbsp;false로&amp;nbsp;설정하면&amp;nbsp;된다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;beforeSend&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;color: #9eb1c7;&quot;&gt;&lt;b&gt;Type:&amp;nbsp;Function(&amp;nbsp; jqXHR&amp;nbsp;jqXHR,&amp;nbsp;PlainObject&amp;nbsp;settings&amp;nbsp;)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;전송&amp;nbsp;전에&amp;nbsp;실행되며&amp;nbsp;false&amp;nbsp;를&amp;nbsp;리턴하게&amp;nbsp;되면&amp;nbsp;요청이&amp;nbsp;취소된다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;cache&amp;nbsp;(default:&amp;nbsp;true,&amp;nbsp;false&amp;nbsp;for&amp;nbsp;dataType&amp;nbsp;'script'&amp;nbsp;and&amp;nbsp;'jsonp')&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;color: #9eb1c7;&quot;&gt;&lt;b&gt;Type:&amp;nbsp;Boolean&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;false로&amp;nbsp;설정&amp;nbsp;시&amp;nbsp;브라우저에서&amp;nbsp;강제로&amp;nbsp;캐시되지&amp;nbsp;않도록&amp;nbsp;한다.&lt;br /&gt;false로&amp;nbsp;설정&amp;nbsp;시&amp;nbsp;HEAD&amp;nbsp;및&amp;nbsp;GET&amp;nbsp;요청&amp;nbsp;시&amp;nbsp;정상동작한다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;complete&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;color: #9eb1c7;&quot;&gt;&lt;b&gt;Type:&amp;nbsp;Function(&amp;nbsp;jqXHR&amp;nbsp;jqXHR,&amp;nbsp;String&amp;nbsp;textStatus&amp;nbsp;)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;요청이&amp;nbsp;완료될&amp;nbsp;때&amp;nbsp;실행된다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;contents&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;color: #9eb1c7;&quot;&gt;&lt;b&gt;Type:&amp;nbsp;PlainObject&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;Jquery가&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;사용된다.&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #36424d;&quot;&gt;&lt;b&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;1982678315&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #36424d;&quot;&gt;&lt;b&gt;contentType&lt;/b&gt;&amp;nbsp;(default:&amp;nbsp;'application/x-www-form-urlencoded;&amp;nbsp;charset=UTF-8')&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #72889c;&quot;&gt;Type:&amp;nbsp;Boolean&amp;nbsp;or&amp;nbsp;String&lt;/span&gt;&lt;br /&gt;해더의&amp;nbsp;Content-Type을&amp;nbsp;설정한다.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #36424d;&quot;&gt;&lt;b&gt;context&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #72889c;&quot;&gt;Type:&amp;nbsp;PlainObject&lt;/span&gt;&lt;br /&gt;특정&amp;nbsp;엘리먼트&amp;nbsp;또는&amp;nbsp;키/값&amp;nbsp;형태의&amp;nbsp;오브젝트를&amp;nbsp;context로&amp;nbsp;설정하여&amp;nbsp;callback&amp;nbsp;함수&amp;nbsp;등에서&amp;nbsp;사용할&amp;nbsp;수&amp;nbsp;있다.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #36424d;&quot;&gt;&lt;b&gt;converters&lt;/b&gt;&amp;nbsp;(default:&amp;nbsp;{&quot;*&amp;nbsp;text&quot;:&amp;nbsp;window.String,&amp;nbsp;&quot;text&amp;nbsp;html&quot;:&amp;nbsp;true,&amp;nbsp;&quot;text&amp;nbsp;json&quot;:&amp;nbsp;jQuery.parseJSON,&amp;nbsp;&quot;text&amp;nbsp;xml&quot;:&amp;nbsp;jQuery.parseXML})&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #72889c;&quot;&gt;Type:&amp;nbsp;PlainObject&lt;/span&gt;&lt;br /&gt;success&amp;nbsp;등의&amp;nbsp;콜백함수에&amp;nbsp;도착하기&amp;nbsp;전에&amp;nbsp;인터셉터한다.&lt;br /&gt;인터셉터&amp;nbsp;후&amp;nbsp;success&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;반환)&lt;br /&gt;accepts&amp;nbsp;와&amp;nbsp;같이&amp;nbsp;사용할&amp;nbsp;수&amp;nbsp;있다.&amp;nbsp;dataType이&amp;nbsp;자유로울&amp;nbsp;때&amp;nbsp;dataType별로&amp;nbsp;선행하는&amp;nbsp;작업이&amp;nbsp;사능하다.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #36424d;&quot;&gt;&lt;b&gt;crossDomain&amp;nbsp;&lt;/b&gt;(default:&amp;nbsp;false&amp;nbsp;for&amp;nbsp;same-domain&amp;nbsp;requests,&amp;nbsp;true&amp;nbsp;for&amp;nbsp;cross-domain&amp;nbsp;requests)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #72889c;&quot;&gt;Type:&amp;nbsp;Boolean&lt;/span&gt;&lt;br /&gt;true로&amp;nbsp;설정할&amp;nbsp;경우&amp;nbsp;크로스&amp;nbsp;도메인&amp;nbsp;요청을&amp;nbsp;허용한다.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #36424d;&quot;&gt;&lt;b&gt;data&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #72889c;&quot;&gt;Type:&amp;nbsp;PlainObject&amp;nbsp;or&amp;nbsp;String&amp;nbsp;or&amp;nbsp;Array&lt;/span&gt;&lt;br /&gt;서버로&amp;nbsp;보낼&amp;nbsp;데이터&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #36424d;&quot;&gt;&lt;b&gt;dataFilter&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #72889c;&quot;&gt;Type:&amp;nbsp;Function(&amp;nbsp;String&amp;nbsp;data,&amp;nbsp;String&amp;nbsp;type&amp;nbsp;)&amp;nbsp;=&amp;gt;&amp;nbsp;Anything&lt;/span&gt;&lt;br /&gt;success&amp;nbsp;함수가&amp;nbsp;호출&amp;nbsp;되기&amp;nbsp;전에&amp;nbsp;실행된다.&lt;br /&gt;success로&amp;nbsp;전달할&amp;nbsp;데이터를&amp;nbsp;return&amp;nbsp;해야&amp;nbsp;한다.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #36424d;&quot;&gt;&lt;b&gt;dataType&lt;/b&gt;&amp;nbsp;(default:&amp;nbsp;Intelligent&amp;nbsp;Guess&amp;nbsp;(xml,&amp;nbsp;json,&amp;nbsp;script,&amp;nbsp;or&amp;nbsp;html))&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #72889c;&quot;&gt;Type:&amp;nbsp;String&lt;/span&gt;&lt;br /&gt;서버에서&amp;nbsp;받을&amp;nbsp;데이터&amp;nbsp;형식을&amp;nbsp;지적한다.&lt;br /&gt;지정하지&amp;nbsp;않으면&amp;nbsp;MIME&amp;nbsp;타입을&amp;nbsp;참고하여&amp;nbsp;자동&amp;nbsp;파싱된다.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #36424d;&quot;&gt;&lt;b&gt;error&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #72889c;&quot;&gt;Type:&amp;nbsp;Function(&amp;nbsp;jqXHR&amp;nbsp;jqXHR,&amp;nbsp;String&amp;nbsp;textStatus,&amp;nbsp;String&amp;nbsp;errorThrown&amp;nbsp;)&lt;/span&gt;&lt;br /&gt;요청에&amp;nbsp;실패하면&amp;nbsp;호출된다.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #36424d;&quot;&gt;&lt;b&gt;global&amp;nbsp;&lt;/b&gt;(default:&amp;nbsp;true)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #72889c;&quot;&gt;Type:&amp;nbsp;Boolean&lt;/span&gt;&lt;br /&gt;global&amp;nbsp;ajax&amp;nbsp;이벤트&amp;nbsp;핸들러를&amp;nbsp;사용할지&amp;nbsp;결정한다.&lt;br /&gt;false로&amp;nbsp;설정&amp;nbsp;시&amp;nbsp;ajaxStart,&amp;nbsp;ajaxStop&amp;nbsp;등과&amp;nbsp;같은&amp;nbsp;이벤트로&amp;nbsp;제어할&amp;nbsp;수&amp;nbsp;없다.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #36424d;&quot;&gt;&lt;b&gt;headers&lt;/b&gt;&amp;nbsp;(default:&amp;nbsp;{})&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #72889c;&quot;&gt;Type:&amp;nbsp;PlainObject&lt;/span&gt;&lt;br /&gt;해더&amp;nbsp;값을&amp;nbsp;키/값&amp;nbsp;형태로&amp;nbsp;설정(변경)할&amp;nbsp;수&amp;nbsp;있다.&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #36424d;&quot;&gt;&lt;b&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;8356514973&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #36424d;&quot;&gt;&lt;b&gt;ifModified&lt;/b&gt;&amp;nbsp;(default:&amp;nbsp;false)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #72889c;&quot;&gt;Type:&amp;nbsp;Boolean&lt;/span&gt;&lt;br /&gt;기본적으로&amp;nbsp;해더를&amp;nbsp;무시한다.&lt;br /&gt;true&amp;nbsp;설정&amp;nbsp;시&amp;nbsp;해더에서&amp;nbsp;Last-Modified&amp;nbsp;를&amp;nbsp;확인하며&amp;nbsp;응답이&amp;nbsp;변경된&amp;nbsp;경우(결과가&amp;nbsp;다른&amp;nbsp;경우)에만&amp;nbsp;요청을&amp;nbsp;처리한다.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #36424d;&quot;&gt;&lt;b&gt;isLocal&lt;/b&gt;&amp;nbsp;(default:&amp;nbsp;depends&amp;nbsp;on&amp;nbsp;current&amp;nbsp;location&amp;nbsp;protocol)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #72889c;&quot;&gt;Type:&amp;nbsp;Boolean&lt;/span&gt;&lt;br /&gt;jquery가&amp;nbsp;인식하지&amp;nbsp;않더라도&amp;nbsp;현재&amp;nbsp;환경을&amp;nbsp;local로&amp;nbsp;인식하도록&amp;nbsp;한다.&amp;nbsp;isLocal&amp;nbsp;속성을&amp;nbsp;변경해야&amp;nbsp;할&amp;nbsp;경우에는&amp;nbsp;$.ajaxSetup()&amp;nbsp;함수를&amp;nbsp;사용한다.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #36424d;&quot;&gt;&lt;b&gt;jsonp&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #72889c;&quot;&gt;Type:&amp;nbsp;String&amp;nbsp;or&amp;nbsp;Boolean&lt;/span&gt;&lt;br /&gt;콜백&amp;nbsp;함수명을&amp;nbsp;사용합니다.&amp;nbsp;url에&amp;nbsp;포함된&amp;nbsp;쿼리&amp;nbsp;스트링&amp;nbsp;중&amp;nbsp;'callback=?'&amp;nbsp;문자열&amp;nbsp;중&amp;nbsp;'callback'&amp;nbsp;문자열을&amp;nbsp;대체&amp;nbsp;합니다.&lt;br /&gt;false로&amp;nbsp;설정&amp;nbsp;시&amp;nbsp;'?callback'&amp;nbsp;문자열이&amp;nbsp;url에&amp;nbsp;추가되는것을&amp;nbsp;방지하거나&amp;nbsp;'=?'&amp;nbsp;문자열의&amp;nbsp;변조를&amp;nbsp;방지할&amp;nbsp;수&amp;nbsp;있는데&amp;nbsp;이러한&amp;nbsp;경우엔&amp;nbsp;jsonpCallback을&amp;nbsp;활용해야&amp;nbsp;합니다.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #36424d;&quot;&gt;&lt;b&gt;jsonpCallback&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #72889c;&quot;&gt;Type:&amp;nbsp;String&amp;nbsp;or&amp;nbsp;Function()&lt;/span&gt;&lt;br /&gt;jsonp&amp;nbsp;요청에&amp;nbsp;대한&amp;nbsp;callback&amp;nbsp;함수를&amp;nbsp;지정합니다.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #36424d;&quot;&gt;&lt;b&gt;method&lt;/b&gt;&amp;nbsp;(default:&amp;nbsp;'GET')&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #72889c;&quot;&gt;Type:&amp;nbsp;String&lt;/span&gt;&lt;br /&gt;요청할&amp;nbsp;HTTP&amp;nbsp;메서드이다.&amp;nbsp;(POST,&amp;nbsp;GET,&amp;nbsp;PUT)&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #36424d;&quot;&gt;&lt;b&gt;mimeType&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #72889c;&quot;&gt;Type:&amp;nbsp;String&lt;/span&gt;&lt;br /&gt;MIME&amp;nbsp;타입을&amp;nbsp;설정한다.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #36424d;&quot;&gt;&lt;b&gt;password&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #72889c;&quot;&gt;Type:&amp;nbsp;String&lt;/span&gt;&lt;br /&gt;HTTP&amp;nbsp;엑세스에&amp;nbsp;활용할&amp;nbsp;비밀번호를&amp;nbsp;설정한다.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #36424d;&quot;&gt;&lt;b&gt;processData&lt;/b&gt;&amp;nbsp;(default:&amp;nbsp;true)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #72889c;&quot;&gt;Type:&amp;nbsp;Boolean&lt;/span&gt;&lt;br /&gt;데이터를&amp;nbsp;querystring&amp;nbsp;형태로&amp;nbsp;보내지&amp;nbsp;않고&amp;nbsp;DOMDocument&amp;nbsp;또는&amp;nbsp;다른&amp;nbsp;형태로&amp;nbsp;보내고&amp;nbsp;싶으면&amp;nbsp;false로&amp;nbsp;설정한다.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #36424d;&quot;&gt;&lt;b&gt;scriptAttrs&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #72889c;&quot;&gt;Type:&amp;nbsp;PlainObject&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;???&lt;/p&gt;
&lt;p&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;br /&gt;&lt;span style=&quot;color: #36424d;&quot;&gt;&lt;b&gt;scriptCharset&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #72889c;&quot;&gt;Type:&amp;nbsp;String&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;???&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;span style=&quot;color: #36424d;&quot;&gt;&lt;b&gt;statusCode&lt;/b&gt;&amp;nbsp;(default:&amp;nbsp;{})&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #72889c;&quot;&gt;Type:&amp;nbsp;PlainObject&lt;/span&gt;&lt;br /&gt;HTTP&amp;nbsp;상태&amp;nbsp;코드별로&amp;nbsp;콜백함수를&amp;nbsp;호출&amp;nbsp;할&amp;nbsp;수&amp;nbsp;있다.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #36424d;&quot;&gt;&lt;b&gt;success&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #72889c;&quot;&gt;Type:&amp;nbsp;Function(&amp;nbsp;Anything&amp;nbsp;data,&amp;nbsp;String&amp;nbsp;textStatus,&amp;nbsp;jqXHR&amp;nbsp;jqXHR&amp;nbsp;)&lt;/span&gt;&lt;br /&gt;요청&amp;nbsp;성공&amp;nbsp;시&amp;nbsp;실행되는&amp;nbsp;콜백함수&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #36424d;&quot;&gt;&lt;b&gt;timeout&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #72889c;&quot;&gt;Type:&amp;nbsp;Number&lt;/span&gt;&lt;br /&gt;요청에&amp;nbsp;대해&amp;nbsp;밀리초&amp;nbsp;단위로&amp;nbsp;타임아웃을&amp;nbsp;설정할&amp;nbsp;수&amp;nbsp;있다.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #36424d;&quot;&gt;&lt;b&gt;traditional&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #72889c;&quot;&gt;Type:&amp;nbsp;Boolean&lt;/span&gt;&lt;br /&gt;데이터에&amp;nbsp;배열을&amp;nbsp;전송할&amp;nbsp;때&amp;nbsp;데이터&amp;nbsp;직렬화를&amp;nbsp;하는&amp;nbsp;옵션이다.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #36424d;&quot;&gt;&lt;b&gt;type&amp;nbsp;&lt;/b&gt;(default:&amp;nbsp;'GET')&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #72889c;&quot;&gt;Type:&amp;nbsp;String&lt;/span&gt;&lt;br /&gt;get,&amp;nbsp;post&amp;nbsp;중&amp;nbsp;전송방식을&amp;nbsp;선택한다.&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #36424d;&quot;&gt;&lt;b&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;8108516233&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #36424d;&quot;&gt;&lt;b&gt;url&amp;nbsp;&lt;/b&gt;(default:&amp;nbsp;The&amp;nbsp;current&amp;nbsp;page)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #72889c;&quot;&gt;Type:&amp;nbsp;String&lt;/span&gt;&lt;br /&gt;요청할&amp;nbsp;URL&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #36424d;&quot;&gt;&lt;b&gt;username&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #72889c;&quot;&gt;Type:&amp;nbsp;String&lt;/span&gt;&lt;br /&gt;HTTP&amp;nbsp;액세스&amp;nbsp;인증&amp;nbsp;요청에&amp;nbsp;응답하는데&amp;nbsp;사용할&amp;nbsp;사용자&amp;nbsp;이름.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #36424d;&quot;&gt;&lt;b&gt;xhr&amp;nbsp;&lt;/b&gt;(default:&amp;nbsp;ActiveXObject&amp;nbsp;when&amp;nbsp;available&amp;nbsp;(IE),&amp;nbsp;the&amp;nbsp;XMLHttpRequest&amp;nbsp;otherwise)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #72889c;&quot;&gt;Type:&amp;nbsp;Function()&lt;/span&gt;&lt;br /&gt;XMLHttpRequest&amp;nbsp;콜백&amp;nbsp;사용&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #36424d;&quot;&gt;&lt;b&gt;xhrFields&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #72889c;&quot;&gt;Type:&amp;nbsp;PlainObject&lt;/span&gt;&lt;br /&gt;xhr&amp;nbsp;객체에&amp;nbsp;fieldName-fieldValue&amp;nbsp;형태로&amp;nbsp;설정할&amp;nbsp;수&amp;nbsp;있다.&lt;br /&gt;예를들어&amp;nbsp;크로스도메인에서&amp;nbsp;withCredentials&amp;nbsp;값을&amp;nbsp;true로&amp;nbsp;설정할&amp;nbsp;수&amp;nbsp;있다.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #f41a18;&quot;&gt;&lt;b&gt;jquery 버전마다 해당 내용, 처리 방식, 지원여부 등이 다를 수 있음.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>language/jquery</category>
      <author>CofS</author>
      <guid isPermaLink="true">https://cofs.tistory.com/404</guid>
      <comments>https://cofs.tistory.com/404#entry404comment</comments>
      <pubDate>Fri, 19 Jul 2019 14:19:49 +0900</pubDate>
    </item>
    <item>
      <title>jquery ajax 비동기 페이지 이동 시 뒤로가기</title>
      <link>https://cofs.tistory.com/403</link>
      <description>&lt;p&gt;ajax를 활용해서 비동기로 페이지 이동 시 뒤로가기를 구현해 보고자 한다.&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;a href=&quot;https://cofs.tistory.com/401&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;ajax 화면 동적 전환&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1562809410594&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot;&gt;&lt;a href=&quot;https://cofs.tistory.com/401&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-original-url=&quot;https://cofs.tistory.com/401&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/ceJIYb/hyBWzkILDt/KL79DUMbefi0keVLIoJ9T1/img.png?width=800&amp;amp;height=86&amp;amp;face=0_0_800_86');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;javascript history 추가&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;javascript 에서 history 를 추가하는 방법입니다. 앞서 history 삭제하는 방법은 링크를 참고하세요. history 삭제 javascript history 삭제 / href replace 비교 javascript history 삭제하기 는 불가능하다. 구..&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;cofs.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;8356514973&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&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 style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;html&lt;/b&gt;&lt;/p&gt;
&lt;div class=&quot;colorscripter-code&quot; style=&quot;color: #010101; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; width: 700px; position: relative !important; overflow: auto;&quot;&gt;
&lt;table class=&quot;colorscripter-code-table&quot; style=&quot;margin: 0; padding: 0; border: none; background-color: #fafafa; border-radius: 4px; line-height: 140%;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 6px; border-right: 2px solid #e5e5e5;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; word-break: normal; text-align: right; color: #666; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;&quot;&gt;
&lt;div&gt;1&lt;/div&gt;
&lt;div&gt;2&lt;/div&gt;
&lt;div&gt;3&lt;/div&gt;
&lt;div&gt;4&lt;/div&gt;
&lt;div&gt;5&lt;/div&gt;
&lt;div&gt;6&lt;/div&gt;
&lt;div&gt;7&lt;/div&gt;
&lt;div&gt;8&lt;/div&gt;
&lt;div&gt;9&lt;/div&gt;
&lt;div&gt;10&lt;/div&gt;
&lt;div&gt;11&lt;/div&gt;
&lt;div&gt;12&lt;/div&gt;
&lt;div&gt;13&lt;/div&gt;
&lt;div&gt;14&lt;/div&gt;
&lt;div&gt;15&lt;/div&gt;
&lt;div&gt;16&lt;/div&gt;
&lt;div&gt;17&lt;/div&gt;
&lt;div&gt;18&lt;/div&gt;
&lt;div&gt;19&lt;/div&gt;
&lt;div&gt;20&lt;/div&gt;
&lt;div&gt;21&lt;/div&gt;
&lt;div&gt;22&lt;/div&gt;
&lt;div&gt;23&lt;/div&gt;
&lt;div&gt;24&lt;/div&gt;
&lt;div&gt;25&lt;/div&gt;
&lt;div&gt;26&lt;/div&gt;
&lt;div&gt;27&lt;/div&gt;
&lt;div&gt;28&lt;/div&gt;
&lt;div&gt;29&lt;/div&gt;
&lt;div&gt;30&lt;/div&gt;
&lt;div&gt;31&lt;/div&gt;
&lt;div&gt;32&lt;/div&gt;
&lt;div&gt;33&lt;/div&gt;
&lt;div&gt;34&lt;/div&gt;
&lt;div&gt;35&lt;/div&gt;
&lt;div&gt;36&lt;/div&gt;
&lt;div&gt;37&lt;/div&gt;
&lt;div&gt;38&lt;/div&gt;
&lt;div&gt;39&lt;/div&gt;
&lt;div&gt;40&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;padding: 6px 0;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; color: #010101; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;&quot;&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;&amp;lt;&lt;/span&gt;html&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;&amp;lt;&lt;/span&gt;body&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;&amp;lt;&lt;/span&gt;div&amp;nbsp;id&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #63a35c;&quot;&gt;&quot;gnb&quot;&lt;/span&gt;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;/&lt;/span&gt;div&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&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;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;&amp;lt;&lt;/span&gt;div&amp;nbsp;id&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #63a35c;&quot;&gt;&quot;lnb&quot;&lt;/span&gt;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;/&lt;/span&gt;div&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&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;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;&amp;lt;&lt;/span&gt;div&amp;nbsp;id&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #63a35c;&quot;&gt;&quot;bodyContents&quot;&lt;/span&gt;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;/&lt;/span&gt;div&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;&amp;lt;&lt;/span&gt;input&amp;nbsp;type&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #63a35c;&quot;&gt;&quot;button&quot;&lt;/span&gt;&amp;nbsp;value&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #63a35c;&quot;&gt;&quot;페이지&amp;nbsp;이동&quot;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #066de2;&quot;&gt;onclick&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #63a35c;&quot;&gt;&quot;acyncMovePage('/test/test.do')&quot;&lt;/span&gt;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;/&lt;/span&gt;body&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;/&lt;/span&gt;html&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;&amp;lt;&lt;/span&gt;script&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a71d5d;&quot;&gt;function&lt;/span&gt;&amp;nbsp;acyncMovePage(url){&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//&amp;nbsp;ajax&amp;nbsp;option&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a71d5d;&quot;&gt;var&lt;/span&gt;&amp;nbsp;ajaxOption&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;=&lt;/span&gt;&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&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;url&amp;nbsp;:&amp;nbsp;url,&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&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;async&amp;nbsp;:&amp;nbsp;&lt;span style=&quot;color: #0099cc;&quot;&gt;true&lt;/span&gt;,&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&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;type&amp;nbsp;:&amp;nbsp;&lt;span style=&quot;color: #63a35c;&quot;&gt;&quot;POST&quot;&lt;/span&gt;,&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&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;dataType&amp;nbsp;:&amp;nbsp;&lt;span style=&quot;color: #63a35c;&quot;&gt;&quot;html&quot;&lt;/span&gt;,&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&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;cache&amp;nbsp;:&amp;nbsp;&lt;span style=&quot;color: #0099cc;&quot;&gt;false&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$.ajax(ajaxOption).done(&lt;span style=&quot;color: #a71d5d;&quot;&gt;function&lt;/span&gt;(data){&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&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;&lt;span style=&quot;color: #999999;&quot;&gt;//&amp;nbsp;url&amp;nbsp;history&amp;nbsp;등록&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&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;&lt;span style=&quot;color: #066de2;&quot;&gt;history&lt;/span&gt;.pushState(&lt;span style=&quot;color: #066de2;&quot;&gt;null&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #066de2;&quot;&gt;null&lt;/span&gt;,&amp;nbsp;url&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;+&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #63a35c;&quot;&gt;&quot;?&quot;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;+&lt;/span&gt;&amp;nbsp;params);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&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;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&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;&lt;span style=&quot;color: #999999;&quot;&gt;//&amp;nbsp;Contents&amp;nbsp;영역&amp;nbsp;삭제&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&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;$(&lt;span style=&quot;color: #63a35c;&quot;&gt;'#bodyContents'&lt;/span&gt;).children().remove();&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&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;&lt;span style=&quot;color: #999999;&quot;&gt;//&amp;nbsp;Contents&amp;nbsp;영역&amp;nbsp;교체&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&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;$(&lt;span style=&quot;color: #63a35c;&quot;&gt;'#bodyContents'&lt;/span&gt;).html(data);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$(&lt;span style=&quot;color: #066de2;&quot;&gt;window&lt;/span&gt;).on(&lt;span style=&quot;color: #63a35c;&quot;&gt;'popstate'&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #a71d5d;&quot;&gt;function&lt;/span&gt;(&lt;span style=&quot;color: #066de2;&quot;&gt;event&lt;/span&gt;)&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #066de2;&quot;&gt;window&lt;/span&gt;.&lt;span style=&quot;color: #066de2;&quot;&gt;location&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #066de2;&quot;&gt;document&lt;/span&gt;.&lt;span style=&quot;color: #066de2;&quot;&gt;location&lt;/span&gt;.href;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;/&lt;/span&gt;script&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: right; margin-top: -13px; margin-right: 5px; font-size: 9px; font-style: italic;&quot;&gt;&lt;a style=&quot;color: #e5e5e5; text-decoration: none;&quot; href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Colored by Color Scripter&lt;/a&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;vertical-align: bottom; padding: 0 2px 4px 0;&quot;&gt;&lt;a style=&quot;text-decoration: none;&quot; href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span style=&quot;font-size: 9px; word-break: normal; background-color: #e5e5e5; color: white; border-radius: 10px; padding: 1px;&quot;&gt;cs&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p&gt;27# : history.pushState() 함수를 활용해서 이동한 페이지 주소를 history 에 추가한다.&lt;/p&gt;
&lt;p&gt;36# : window.popstate 이벤트가 발생할 때 페이지 전환을 한다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;history.pushState() 함수는 다음 포스팅을 참고한다.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://cofs.tistory.com/401&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;javascript history 추가&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1562809570560&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot;&gt;&lt;a href=&quot;https://cofs.tistory.com/401&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-original-url=&quot;https://cofs.tistory.com/401&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/ceJIYb/hyBWzkILDt/KL79DUMbefi0keVLIoJ9T1/img.png?width=800&amp;amp;height=86&amp;amp;face=0_0_800_86');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;javascript history 추가&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;javascript 에서 history 를 추가하는 방법입니다. 앞서 history 삭제하는 방법은 링크를 참고하세요. history 삭제 javascript history 삭제 / href replace 비교 javascript history 삭제하기 는 불가능하다. 구..&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;cofs.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;여기서 중요한 것은 window.popstate 이벤트 이다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;history.puthState() 함수나 history.replaceState() 함수에 의해서 history 엔트리가 생성(추가) 되면 popstate 이벤트의 state 속성은 history 엔트리의 state 객체의 복사본을 가지게 되는데 이 때 document의 두개의 history 엔트리에서 변화가 일어날 때 window.popstate 이벤트가 발생한다.&lt;/p&gt;
&lt;p&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;4608841651&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;필자는 위 내용을 브라우저의 뒤로가기 버튼이나 history.back() 호출 시 이동할 history 가&amp;nbsp;history.puthState() 함수로 추가한 history일 경우에&amp;nbsp;window.popstate 이벤트가 발생한다고 이해했다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;popstate이벤트 내부에서 뒤로가기를 비동기로 구현할 수 도 있다.&lt;/p&gt;
&lt;p&gt;필자는 이를 비동기로 구현했다가 스크립트 문제가 발생해서 사용하지 않았다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;끝 ~&lt;/p&gt;</description>
      <category>language/jquery</category>
      <author>CofS</author>
      <guid isPermaLink="true">https://cofs.tistory.com/403</guid>
      <comments>https://cofs.tistory.com/403#entry403comment</comments>
      <pubDate>Thu, 11 Jul 2019 10:55:31 +0900</pubDate>
    </item>
    <item>
      <title>jquery ajax 화면 동적 전환, 깜빡임 없이 페이지 이동</title>
      <link>https://cofs.tistory.com/402</link>
      <description>&lt;p&gt;jquery ajax 를 활용하여 화면을 동적으로 깜빡임 없이 이동하는 방법이다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;포스팅에 앞서 jquery load 를 활용하여 동적 전환 하는 방법은 아래 링크를 참고하면 된다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://cofs.tistory.com/393&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Jquery load 동적 전환&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1562808678633&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot;&gt;&lt;a href=&quot;https://cofs.tistory.com/393&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-original-url=&quot;https://cofs.tistory.com/393&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/b7x4Wh/hyBWvCAiDh/Sxd5DNg8dj1LQilAXYwPY1/img.png?width=800&amp;amp;height=434&amp;amp;face=0_0_800_434,https://scrap.kakaocdn.net/dn/dMEHlh/hyBWtdICAo/Uk7IXvjQAEdAcLKsuKHouk/img.png?width=1756&amp;amp;height=953&amp;amp;face=0_0_1756_953');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;jquery load 화면 동적 전환, 깜빡임 없이 페이지 이동&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;jquery load 화면 동적 전환, 깜빡임 없이 페이지 이동 이번 포스팅은 jquery 를 활용하여 화면이 깜빡이지 않고 전환되는 방법이다. 보통의 페이지에서 이동을 하게되면 전체 페이지를 새로 불러옴으로 인하여 화..&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;cofs.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;8108516233&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;ajax의 dataType 이라는 옵션을 활용하면 화면을 동적으로 바꿔줄 수 있다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;dataType 은 서버에서 반환될 때의 데이터 형식을 지정하는 옵션이다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;xml, html, script, json, jsnop, text 가 있으며 생략할 경우에는 자동으로 결정된다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;화면을 동적으로 바꾸기 위해서는 html 로 지정해야 한다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;그림1.png&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/AWlYO/btqwGiW7vkc/kIcTqcalorzP7hYB44PSV0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/AWlYO/btqwGiW7vkc/kIcTqcalorzP7hYB44PSV0/img.png&quot; data-alt=&quot;html layout&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/AWlYO/btqwGiW7vkc/kIcTqcalorzP7hYB44PSV0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAWlYO%2FbtqwGiW7vkc%2FkIcTqcalorzP7hYB44PSV0%2Fimg.png&quot; data-filename=&quot;그림1.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;figcaption&gt;html layout&lt;/figcaption&gt;
&lt;/figure&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;html&lt;/b&gt;&lt;/p&gt;
&lt;div class=&quot;colorscripter-code&quot; style=&quot;color: #010101; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; width: 700px; position: relative !important; overflow: auto;&quot;&gt;
&lt;table class=&quot;colorscripter-code-table&quot; style=&quot;margin: 0; padding: 0; border: none; background-color: #fafafa; border-radius: 4px; line-height: 140%;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 6px; border-right: 2px solid #e5e5e5;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; word-break: normal; text-align: right; color: #666; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;&quot;&gt;
&lt;div&gt;1&lt;/div&gt;
&lt;div&gt;2&lt;/div&gt;
&lt;div&gt;3&lt;/div&gt;
&lt;div&gt;4&lt;/div&gt;
&lt;div&gt;5&lt;/div&gt;
&lt;div&gt;6&lt;/div&gt;
&lt;div&gt;7&lt;/div&gt;
&lt;div&gt;8&lt;/div&gt;
&lt;div&gt;9&lt;/div&gt;
&lt;div&gt;10&lt;/div&gt;
&lt;div&gt;11&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;padding: 6px 0;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; color: #010101; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;&quot;&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;html&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;body&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;div&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0a9989;&quot;&gt;id&lt;/span&gt;=&lt;span style=&quot;color: #df5000;&quot;&gt;&quot;gnb&quot;&lt;/span&gt;&lt;span style=&quot;color: #0a9989;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&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;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;div&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0a9989;&quot;&gt;id&lt;/span&gt;=&lt;span style=&quot;color: #df5000;&quot;&gt;&quot;lnb&quot;&lt;/span&gt;&lt;span style=&quot;color: #0a9989;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&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;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;div&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0a9989;&quot;&gt;id&lt;/span&gt;=&lt;span style=&quot;color: #df5000;&quot;&gt;&quot;bodyContents&quot;&lt;/span&gt;&lt;span style=&quot;color: #0a9989;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;input&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0a9989;&quot;&gt;type&lt;/span&gt;=&lt;span style=&quot;color: #df5000;&quot;&gt;&quot;button&quot;&lt;/span&gt;&lt;span style=&quot;color: #0a9989;&quot;&gt;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0a9989;&quot;&gt;value&lt;/span&gt;=&lt;span style=&quot;color: #df5000;&quot;&gt;&quot;페이지&amp;nbsp;이동&quot;&lt;/span&gt;&lt;span style=&quot;color: #0a9989;&quot;&gt;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0a9989;&quot;&gt;onclick&lt;/span&gt;=&lt;span style=&quot;color: #df5000;&quot;&gt;&quot;acyncMovePage('/test/test.do')&quot;&lt;/span&gt;&lt;span style=&quot;color: #0a9989;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;body&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;html&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: right; margin-top: -13px; margin-right: 5px; font-size: 9px; font-style: italic;&quot;&gt;&lt;a style=&quot;color: #e5e5e5; text-decoration: none;&quot; href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Colored by Color Scripter&lt;/a&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;vertical-align: bottom; padding: 0 2px 4px 0;&quot;&gt;&lt;a style=&quot;text-decoration: none;&quot; href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span style=&quot;font-size: 9px; word-break: normal; background-color: #e5e5e5; color: white; border-radius: 10px; padding: 1px;&quot;&gt;cs&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p&gt;위와 같은 html 파일이 있고 우리는 bodyContexts div 태그 영역을 교체해 주어야 한다.&lt;/p&gt;
&lt;p&gt;9# : 버튼 클릭 시 acyncMovePage() 함수가 실행된다.&lt;/p&gt;
&lt;p&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;8356514973&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot;&gt;&lt;b&gt;javascript&lt;/b&gt;&lt;/p&gt;
&lt;div class=&quot;colorscripter-code&quot; style=&quot;color: #010101; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; width: 700px; position: relative !important; overflow: auto;&quot;&gt;
&lt;table class=&quot;colorscripter-code-table&quot; style=&quot;margin: 0; padding: 0; border: none; background-color: #fafafa; border-radius: 4px; line-height: 140%;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 6px; border-right: 2px solid #e5e5e5;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; word-break: normal; text-align: right; color: #666; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;&quot;&gt;
&lt;div&gt;1&lt;/div&gt;
&lt;div&gt;2&lt;/div&gt;
&lt;div&gt;3&lt;/div&gt;
&lt;div&gt;4&lt;/div&gt;
&lt;div&gt;5&lt;/div&gt;
&lt;div&gt;6&lt;/div&gt;
&lt;div&gt;7&lt;/div&gt;
&lt;div&gt;8&lt;/div&gt;
&lt;div&gt;9&lt;/div&gt;
&lt;div&gt;10&lt;/div&gt;
&lt;div&gt;11&lt;/div&gt;
&lt;div&gt;12&lt;/div&gt;
&lt;div&gt;13&lt;/div&gt;
&lt;div&gt;14&lt;/div&gt;
&lt;div&gt;15&lt;/div&gt;
&lt;div&gt;16&lt;/div&gt;
&lt;div&gt;17&lt;/div&gt;
&lt;div&gt;18&lt;/div&gt;
&lt;div&gt;19&lt;/div&gt;
&lt;div&gt;20&lt;/div&gt;
&lt;div&gt;21&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;padding: 6px 0;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; color: #010101; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;&quot;&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;&amp;lt;&lt;/span&gt;script&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a71d5d;&quot;&gt;function&lt;/span&gt;&amp;nbsp;acyncMovePage(url){&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//&amp;nbsp;ajax&amp;nbsp;option&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a71d5d;&quot;&gt;var&lt;/span&gt;&amp;nbsp;ajaxOption&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;=&lt;/span&gt;&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&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;url&amp;nbsp;:&amp;nbsp;url,&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&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;async&amp;nbsp;:&amp;nbsp;&lt;span style=&quot;color: #0099cc;&quot;&gt;true&lt;/span&gt;,&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&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;type&amp;nbsp;:&amp;nbsp;&lt;span style=&quot;color: #63a35c;&quot;&gt;&quot;POST&quot;&lt;/span&gt;,&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&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;dataType&amp;nbsp;:&amp;nbsp;&lt;span style=&quot;color: #63a35c;&quot;&gt;&quot;html&quot;&lt;/span&gt;,&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&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;cache&amp;nbsp;:&amp;nbsp;&lt;span style=&quot;color: #0099cc;&quot;&gt;false&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;};&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$.ajax(ajaxOption).done(&lt;span style=&quot;color: #a71d5d;&quot;&gt;function&lt;/span&gt;(data){&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&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;&lt;span style=&quot;color: #999999;&quot;&gt;//&amp;nbsp;Contents&amp;nbsp;영역&amp;nbsp;삭제&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&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;$(&lt;span style=&quot;color: #63a35c;&quot;&gt;'#bodyContents'&lt;/span&gt;).children().remove();&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&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;&lt;span style=&quot;color: #999999;&quot;&gt;//&amp;nbsp;Contents&amp;nbsp;영역&amp;nbsp;교체&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&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;$(&lt;span style=&quot;color: #63a35c;&quot;&gt;'#bodyContents'&lt;/span&gt;).html(data);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;/&lt;/span&gt;script&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: right; margin-top: -13px; margin-right: 5px; font-size: 9px; font-style: italic;&quot;&gt;&lt;a style=&quot;color: #e5e5e5; text-decoration: none;&quot; href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Colored by Color Scripter&lt;/a&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;vertical-align: bottom; padding: 0 2px 4px 0;&quot;&gt;&lt;a style=&quot;text-decoration: none;&quot; href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span style=&quot;font-size: 9px; word-break: normal; background-color: #e5e5e5; color: white; border-radius: 10px; padding: 1px;&quot;&gt;cs&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p&gt;5# : ajax 옵션 중 dataType는 html로 해야 한다.&lt;/p&gt;
&lt;p&gt;13# : ajax 통신을 실행 후 끝나면 done 이벤트가 발생하고 그 내부에서 넘겨받은 data 즉 페이지를 교체하고자 하는 영역 bodyContexts div 에 넣어주면 된다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;위 소스를 활용하면 화면을 깜빡이지 않고도 페이지 전환을 할 수 있게 된다.&lt;/p&gt;</description>
      <category>language/jquery</category>
      <author>CofS</author>
      <guid isPermaLink="true">https://cofs.tistory.com/402</guid>
      <comments>https://cofs.tistory.com/402#entry402comment</comments>
      <pubDate>Thu, 11 Jul 2019 10:39:46 +0900</pubDate>
    </item>
    <item>
      <title>javascript history 추가</title>
      <link>https://cofs.tistory.com/401</link>
      <description>&lt;p&gt;javascript 에서 history 를 추가하는 방법입니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;앞서 history 삭제하는 방법은 링크를 참고하세요.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://cofs.tistory.com/202&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;history 삭제&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1562807611718&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot;&gt;&lt;a href=&quot;https://cofs.tistory.com/202&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-original-url=&quot;https://cofs.tistory.com/202&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/tCbaY/hyBWsMDbbM/wK8CBpcjf0k57L2Du6WkIK/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;javascript history 삭제 / href replace 비교&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;javascript history 삭제하기 는 불가능하다. 구글링 결과 javascript 로 history를 제어할 수 없는 듯 하다. 즉 클라이언트에서 권한이 없다는 것으로 예상된다. 미흡한 영어실력이라 해석이 잘못 됬을지도 모르..&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;cofs.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;8108516233&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;history 추가는 history.pushState(state, title, url) 함수를 활용하면 가능합니다.&lt;/p&gt;
&lt;div class=&quot;colorscripter-code&quot; style=&quot;color: #010101; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; width: 700px; position: relative !important; overflow: auto;&quot;&gt;
&lt;table class=&quot;colorscripter-code-table&quot; style=&quot;margin: 0; padding: 0; border: none; background-color: #fafafa; border-radius: 4px; line-height: 140%;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 6px; border-right: 2px solid #e5e5e5;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; word-break: normal; text-align: right; color: #666; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;&quot;&gt;
&lt;div&gt;1&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;padding: 6px 0;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; color: #010101; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;&quot;&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;history.pushState(null,&amp;nbsp;null,&amp;nbsp;&quot;/test/test.do?name=abc&quot;);&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;vertical-align: bottom; padding: 0 2px 4px 0;&quot;&gt;&lt;a style=&quot;text-decoration: none;&quot; href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span style=&quot;font-size: 9px; word-break: normal; background-color: #e5e5e5; color: white; border-radius: 10px; padding: 1px;&quot;&gt;cs&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&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;&amp;nbsp;&amp;nbsp; state : state객체, 640kb 크기 제한(over 시 예외발생)&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp; title : Firefox 는 무시함, 빈문자열을 보내는 것을 권장, 짧은 명칭 부여 가능&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp; url : history 에 등록할 url&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;4608841651&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&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;&lt;figure class=&quot;imageblock alignCenter&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/caVOJ1/btqwIiPbie4/QCKQGUIurtGPjmGoRE8FMK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/caVOJ1/btqwIiPbie4/QCKQGUIurtGPjmGoRE8FMK/img.png&quot; data-alt=&quot;브라우저 호환성&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/caVOJ1/btqwIiPbie4/QCKQGUIurtGPjmGoRE8FMK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcaVOJ1%2FbtqwIiPbie4%2FQCKQGUIurtGPjmGoRE8FMK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;브라우저 호환성&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #b00800;&quot;&gt;&lt;b&gt;주의사항 : pushState 는 hashchange 이벤트를 발생시키지 않습니다. 즉 history에 추가만 될 뿐 아무런 동작을 하지 않습니다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;비슷한 함수로는 replaceState() 가 있습니다.&lt;/p&gt;
&lt;p&gt;replaceStat() 는 history 추가를 하지 않고 현재 history 엔트리를 변경합니다.&lt;/p&gt;</description>
      <category>language/javascript</category>
      <author>CofS</author>
      <guid isPermaLink="true">https://cofs.tistory.com/401</guid>
      <comments>https://cofs.tistory.com/401#entry401comment</comments>
      <pubDate>Thu, 11 Jul 2019 10:23:00 +0900</pubDate>
    </item>
    <item>
      <title>jquery FormData를 Json으로 변환</title>
      <link>https://cofs.tistory.com/400</link>
      <description>&lt;p&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;4608841651&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
javascript 에서 jquery를 활용하여 formdata를 Json으로 변환하는 방법이다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;How&amp;nbsp;to&amp;nbsp;convert&amp;nbsp;FormData to&amp;nbsp;JSON ?&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;figure class=&quot;imageblock alignCenter&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yTbvK/btqwGNJmkpY/T2Ro8fHWoye1Ur4YbCL4gK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yTbvK/btqwGNJmkpY/T2Ro8fHWoye1Ur4YbCL4gK/img.png&quot; data-alt=&quot;Json&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yTbvK/btqwGNJmkpY/T2Ro8fHWoye1Ur4YbCL4gK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyTbvK%2FbtqwGNJmkpY%2FT2Ro8fHWoye1Ur4YbCL4gK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Json&lt;/figcaption&gt;
&lt;/figure&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;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;colorscripter-code&quot; style=&quot;color: #010101; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; width: 700px; position: relative !important; overflow: auto;&quot;&gt;
&lt;table class=&quot;colorscripter-code-table&quot; style=&quot;margin: 0; padding: 0; border: none; background-color: #fafafa; border-radius: 4px; line-height: 140%;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 6px; border-right: 2px solid #e5e5e5;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; word-break: normal; text-align: right; color: #666; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;&quot;&gt;
&lt;div&gt;1&lt;/div&gt;
&lt;div&gt;2&lt;/div&gt;
&lt;div&gt;3&lt;/div&gt;
&lt;div&gt;4&lt;/div&gt;
&lt;div&gt;5&lt;/div&gt;
&lt;div&gt;6&lt;/div&gt;
&lt;div&gt;7&lt;/div&gt;
&lt;div&gt;8&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;padding: 6px 0;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; color: #010101; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;&quot;&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;var&amp;nbsp;formSerializeArray&amp;nbsp;=&amp;nbsp;$('#form_id').serializeArray();&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;var&amp;nbsp;object&amp;nbsp;=&amp;nbsp;{};&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;for&amp;nbsp;(var&amp;nbsp;i&amp;nbsp;=&amp;nbsp;0;&amp;nbsp;i&amp;nbsp;&amp;lt;&amp;nbsp;formSerializeArray.length;&amp;nbsp;i++){&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;object[formSerializeArray[i]['name']]&amp;nbsp;=&amp;nbsp;formSerializeArray[i]['value'];&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;}&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;var&amp;nbsp;json&amp;nbsp;=&amp;nbsp;JSON.stringify(object);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;alert(json);&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: right; margin-top: -13px; margin-right: 5px; font-size: 9px; font-style: italic;&quot;&gt;&lt;a style=&quot;color: #e5e5e5; text-decoration: none;&quot; href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Colored by Color Scripter&lt;/a&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;vertical-align: bottom; padding: 0 2px 4px 0;&quot;&gt;&lt;a style=&quot;text-decoration: none;&quot; href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span style=&quot;font-size: 9px; word-break: normal; background-color: #e5e5e5; color: white; border-radius: 10px; padding: 1px;&quot;&gt;cs&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p&gt;jquery 를 활용하여 form 태그의 serializeArray 함수를 활용해서 form 안에 있는 전송할 태그들을 list 형태로 받고&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;list 를 반복문을 통해 다시 json 형태로 변환한다.&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;</description>
      <category>language/jquery</category>
      <author>CofS</author>
      <guid isPermaLink="true">https://cofs.tistory.com/400</guid>
      <comments>https://cofs.tistory.com/400#entry400comment</comments>
      <pubDate>Thu, 11 Jul 2019 10:10:22 +0900</pubDate>
    </item>
    <item>
      <title>jquery load 화면 동적 전환, 깜빡임 없이 페이지 이동</title>
      <link>https://cofs.tistory.com/393</link>
      <description>&lt;p&gt;jquery&amp;nbsp;load&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;이번 포스팅은 jquery 를 활용하여 화면이 깜빡이지 않고 전환되는 방법이다.&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;br /&gt;
&lt;script src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;text-align: center; display: block;&quot; data-ad-slot=&quot;1510740417&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-format=&quot;fluid&quot; data-ad-layout=&quot;in-article&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&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;물론 tiles와 같이 활용해도 좋다.&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;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;blob&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cszAdU/btqwv8fcrNs/7palhi0R3Jmjw4SjvFXfPk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cszAdU/btqwv8fcrNs/7palhi0R3Jmjw4SjvFXfPk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cszAdU/btqwv8fcrNs/7palhi0R3Jmjw4SjvFXfPk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcszAdU%2Fbtqwv8fcrNs%2F7palhi0R3Jmjw4SjvFXfPk%2Fimg.png&quot; data-filename=&quot;blob&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;상단에 gnb 영역, 좌측에 lnb 영역, 우측에 contents 영역이 있다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;화면을 깜빡이지 않고 전환한다는 내용은 보통 contents 영역, 즉 내용이 있는 영역만 전환한다고 생각하면 된다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;colorscripter-code&quot; style=&quot;color: #010101; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; width: 700px; position: relative !important; overflow: auto;&quot;&gt;
&lt;table class=&quot;colorscripter-code-table&quot; style=&quot;margin: 0; padding: 0; border: none; background-color: #fafafa; border-radius: 4px; line-height: 140%;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 6px; border-right: 2px solid #e5e5e5;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; word-break: normal; text-align: right; color: #666; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;&quot;&gt;
&lt;div&gt;1&lt;/div&gt;
&lt;div&gt;2&lt;/div&gt;
&lt;div&gt;3&lt;/div&gt;
&lt;div&gt;4&lt;/div&gt;
&lt;div&gt;5&lt;/div&gt;
&lt;div&gt;6&lt;/div&gt;
&lt;div&gt;7&lt;/div&gt;
&lt;div&gt;8&lt;/div&gt;
&lt;div&gt;9&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;padding: 6px 0;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; color: #010101; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;&quot;&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;html&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;body&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;div&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0a9989;&quot;&gt;id&lt;/span&gt;=&lt;span style=&quot;color: #df5000;&quot;&gt;&quot;gnb&quot;&lt;/span&gt;&lt;span style=&quot;color: #0a9989;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;div&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0a9989;&quot;&gt;id&lt;/span&gt;=&lt;span style=&quot;color: #df5000;&quot;&gt;&quot;lnb&quot;&lt;/span&gt;&lt;span style=&quot;color: #0a9989;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;div&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0a9989;&quot;&gt;id&lt;/span&gt;=&lt;span style=&quot;color: #df5000;&quot;&gt;&quot;contents&quot;&lt;/span&gt;&lt;span style=&quot;color: #0a9989;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;body&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;html&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;vertical-align: bottom; padding: 0 2px 4px 0;&quot;&gt;&lt;a style=&quot;text-decoration: none;&quot; href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span style=&quot;font-size: 9px; word-break: normal; background-color: #e5e5e5; color: white; border-radius: 10px; padding: 1px;&quot;&gt;cs&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;보통 위와 같이 layout 이 작성된다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;페이지 이동 시 contents 영역만 다른 페이지의 html로 교체하면 된다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
&lt;script src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;3295854551&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;colorscripter-code&quot; style=&quot;color: #010101; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; width: 700px; position: relative !important; overflow: auto;&quot;&gt;
&lt;table class=&quot;colorscripter-code-table&quot; style=&quot;margin: 0px; padding: 0px; background-color: #fafafa; border-radius: 4px; line-height: 140%; height: 507px;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 507px;&quot;&gt;
&lt;td style=&quot;padding: 6px; border-right: 2px solid #e5e5e5; height: 507px; width: 16px;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; word-break: normal; text-align: right; color: #666; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;&quot;&gt;
&lt;div&gt;1&lt;/div&gt;
&lt;div&gt;2&lt;/div&gt;
&lt;div&gt;3&lt;/div&gt;
&lt;div&gt;4&lt;/div&gt;
&lt;div&gt;5&lt;/div&gt;
&lt;div&gt;6&lt;/div&gt;
&lt;div&gt;7&lt;/div&gt;
&lt;div&gt;8&lt;/div&gt;
&lt;div&gt;9&lt;/div&gt;
&lt;div&gt;10&lt;/div&gt;
&lt;div&gt;11&lt;/div&gt;
&lt;div&gt;12&lt;/div&gt;
&lt;div&gt;13&lt;/div&gt;
&lt;div&gt;14&lt;/div&gt;
&lt;div&gt;15&lt;/div&gt;
&lt;div&gt;16&lt;/div&gt;
&lt;div&gt;17&lt;/div&gt;
&lt;div&gt;18&lt;/div&gt;
&lt;div&gt;19&lt;/div&gt;
&lt;div&gt;20&lt;/div&gt;
&lt;div&gt;21&lt;/div&gt;
&lt;div&gt;22&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;padding: 6px 0px; height: 507px; width: 660px;&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; color: #010101; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important;&quot;&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//&amp;nbsp;페이지&amp;nbsp;전환&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$(&lt;span style=&quot;color: #63a35c;&quot;&gt;&quot;#contents&quot;&lt;/span&gt;).load(&lt;span style=&quot;color: #63a35c;&quot;&gt;&quot;/test/test.do&quot;&lt;/span&gt;);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//&amp;nbsp;페이지&amp;nbsp;전환&amp;nbsp;시&amp;nbsp;특정&amp;nbsp;태그만&amp;nbsp;load&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$(&lt;span style=&quot;color: #63a35c;&quot;&gt;&quot;#contents&quot;&lt;/span&gt;).load(&lt;span style=&quot;color: #63a35c;&quot;&gt;&quot;/test/test.do&amp;nbsp;#target&quot;&lt;/span&gt;);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//&amp;nbsp;페이지&amp;nbsp;전환&amp;nbsp;시&amp;nbsp;data도&amp;nbsp;함께&amp;nbsp;보냄&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$(&lt;span style=&quot;color: #63a35c;&quot;&gt;&quot;#contents&quot;&lt;/span&gt;).load(&lt;span style=&quot;color: #63a35c;&quot;&gt;&quot;/test/test.do&quot;&lt;/span&gt;,&amp;nbsp;{&lt;span style=&quot;color: #63a35c;&quot;&gt;&quot;name&quot;&lt;/span&gt;&amp;nbsp;:&amp;nbsp;&lt;span style=&quot;color: #63a35c;&quot;&gt;&quot;Kim&quot;&lt;/span&gt;});&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//&amp;nbsp;페이지&amp;nbsp;전환&amp;nbsp;후&amp;nbsp;callback&amp;nbsp;함수&amp;nbsp;사용&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$(&lt;span style=&quot;color: #63a35c;&quot;&gt;&quot;#contents&quot;&lt;/span&gt;).load(&lt;span style=&quot;color: #63a35c;&quot;&gt;&quot;/test/test.do&quot;&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: #a71d5d;&quot;&gt;function&lt;/span&gt;(){&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #066de2;&quot;&gt;alert&lt;/span&gt;(&lt;span style=&quot;color: #63a35c;&quot;&gt;&quot;success&quot;&lt;/span&gt;);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//&amp;nbsp;페이지&amp;nbsp;전환,&amp;nbsp;data도&amp;nbsp;함께&amp;nbsp;보냄,&amp;nbsp;callback&amp;nbsp;함수&amp;nbsp;활용&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$(&lt;span style=&quot;color: #63a35c;&quot;&gt;&quot;#contents&quot;&lt;/span&gt;).load(&lt;span style=&quot;color: #63a35c;&quot;&gt;&quot;/test/test.do&quot;&lt;/span&gt;,&amp;nbsp;{&lt;span style=&quot;color: #63a35c;&quot;&gt;&quot;name&quot;&lt;/span&gt;&amp;nbsp;:&amp;nbsp;&lt;span style=&quot;color: #63a35c;&quot;&gt;&quot;Kim&quot;&lt;/span&gt;},&amp;nbsp;&lt;span style=&quot;color: #a71d5d;&quot;&gt;function&lt;/span&gt;(){&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #066de2;&quot;&gt;alert&lt;/span&gt;(&lt;span style=&quot;color: #63a35c;&quot;&gt;&quot;success&quot;&lt;/span&gt;);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre;&quot;&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #066de2;&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;color: #010101;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: right; margin-top: -13px; margin-right: 5px; font-size: 9px; font-style: italic;&quot;&gt;&lt;a style=&quot;color: #e5e5e5; text-decoration: none;&quot; href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Colored by Color Scripter&lt;/a&gt;&lt;/div&gt;
&lt;/td&gt;
&lt;td style=&quot;vertical-align: bottom; padding: 0px 2px 4px 0px; height: 507px; width: 10.15px;&quot;&gt;&lt;a style=&quot;text-decoration: none;&quot; href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span style=&quot;font-size: 9px; word-break: normal; background-color: #e5e5e5; color: white; border-radius: 10px; padding: 1px;&quot;&gt;cs&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p&gt;4# : 기본적인 페이지 전환이다. contents 태그 내부에 /test/test.do 페이지의 내용을 넣음으로써 페이지 전환이 일어나게 된다. data 가 없음으로 GET방식으로 진행되며 /test/test.do 페이지의 javascript 는 정상동작한다.&lt;/p&gt;
&lt;p&gt;7# : /test/test.do 페이지의 내용 중 id 가 target 인 태그만 contests 태그 내부에 넣는다.&lt;/p&gt;
&lt;p&gt;target을 지정할 경우 /test/test.do 의 내부에 있는 javascript 는 동작하지 않는다.&lt;/p&gt;
&lt;p&gt;10# : data 파라미터를 활용할 경우 무조건 POST 방식으로 진행단다. data 파라미터는 String 또는 PlainObject type 만 가능하다.&lt;/p&gt;
&lt;p&gt;13# : 페이지 로딩이 끝나면 callback 함수를 호출 할 수 있다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;동적 페이지 전환 시 브라우저의 뒤로가기, 앞으로가기, 세로고침 등 history 관련 기능은 추가작업을 해주어야 한다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>language/jquery</category>
      <author>CofS</author>
      <guid isPermaLink="true">https://cofs.tistory.com/393</guid>
      <comments>https://cofs.tistory.com/393#entry393comment</comments>
      <pubDate>Wed, 3 Jul 2019 14:18:46 +0900</pubDate>
    </item>
    <item>
      <title>보이스3 결말 예상 (뇌피셜 주의)</title>
      <link>https://cofs.tistory.com/392</link>
      <description>&lt;p&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;8108516233&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;.&lt;/p&gt;
&lt;p&gt;.&lt;/p&gt;
&lt;p&gt;.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style15&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&lt;b&gt;본&amp;nbsp;포스팅은&amp;nbsp;보이스3&amp;nbsp;결말에&amp;nbsp;관한&amp;nbsp;필자의&amp;nbsp;개인적인&amp;nbsp;예상입니다.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&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;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;두서없이&amp;nbsp;포스팅해&amp;nbsp;보려&amp;nbsp;합니다.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;그러니&amp;nbsp;가볍게&amp;nbsp;읽어주시면&amp;nbsp;좋겠습니다.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;혹여나&amp;nbsp;필자의&amp;nbsp;예상이&amp;nbsp;맞게&amp;nbsp;된다면&amp;nbsp;보는&amp;nbsp;재미&amp;nbsp;또는&amp;nbsp;반전이&amp;nbsp;스포되는&amp;nbsp;격임으로&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;원치&amp;nbsp;않으실&amp;nbsp;경우&amp;nbsp;읽지&amp;nbsp;마시기&amp;nbsp;바랍니다.&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style15&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 842px;&quot;&gt;
&lt;p&gt;&lt;b&gt;본 포스팅은 보이스3 드라마를 좋아하는 시청자로서 주저리 주저리 내세운 뇌피셜에 불과합니다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;지나친 비난은 삼가해 주시기 바랍니다.&lt;/b&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&gt;&lt;br /&gt;&lt;br /&gt;.&lt;br /&gt;.&lt;br /&gt;.&lt;/p&gt;
&lt;p&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;4608841651&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;br /&gt;. 제 뇌피셜이 궁금하신 분만 스크롤 내려서 읽어주세요&lt;br /&gt;. &lt;br /&gt;.&lt;br /&gt;.&lt;br /&gt;.&lt;br /&gt;.&lt;br /&gt;.&lt;/p&gt;
&lt;p&gt;.&lt;/p&gt;
&lt;p&gt;.&lt;/p&gt;
&lt;p&gt;.&lt;/p&gt;
&lt;p&gt;.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
&lt;script src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;.&lt;/p&gt;
&lt;p&gt;.&lt;/p&gt;
&lt;p&gt;.&lt;/p&gt;
&lt;p&gt;.&lt;/p&gt;
&lt;p&gt;.&lt;/p&gt;
&lt;p&gt;.&lt;/p&gt;
&lt;p&gt;.&lt;/p&gt;
&lt;p&gt;.&lt;/p&gt;
&lt;p&gt;.&lt;/p&gt;
&lt;p&gt;.&lt;/p&gt;
&lt;p&gt;.&lt;/p&gt;
&lt;p&gt;.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;b&gt;1.&amp;nbsp;극중&amp;nbsp;박은수가&amp;nbsp;카네키&amp;nbsp;마사유키의&amp;nbsp;발음&amp;nbsp;지적 (극중내용)&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;박은수&amp;nbsp;및&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;좋으며&amp;nbsp;일본인은&amp;nbsp;내기&amp;nbsp;힘든&amp;nbsp;발음까지&amp;nbsp;완벽하다고&amp;nbsp;언급했다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2.&amp;nbsp;전창수가&amp;nbsp;도강우에게&amp;nbsp;정보&amp;nbsp;전달&lt;b&gt; (극중내용)&lt;/b&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&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;주었다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3.&amp;nbsp;카네키&amp;nbsp;마사유키의&amp;nbsp;독백&lt;b&gt; (극중내용)&lt;/b&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;카네키&amp;nbsp;교수의&amp;nbsp;독백에서&amp;nbsp;도강우를&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;않았다는&amp;nbsp;내용이&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;4. 카네키 마사유키의 숙제&lt;b&gt; (뇌피셜)&lt;/b&gt;&lt;/b&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;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;br /&gt;
&lt;script src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;위&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;마사유키는&amp;nbsp;도강우가&amp;nbsp;동생이라&amp;nbsp;도강우에게&amp;nbsp;집착합니다.&lt;br /&gt;&lt;br /&gt;또한&amp;nbsp;카네키&amp;nbsp;교수의&amp;nbsp;조형물은&amp;nbsp;귀를&amp;nbsp;제외한&amp;nbsp;나머지&amp;nbsp;신체부위가&amp;nbsp;천장에&amp;nbsp;매달려&amp;nbsp;있습니다.&lt;br /&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;1982678315&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;br /&gt;도강우는&amp;nbsp;피가&amp;nbsp;흐르는&amp;nbsp;귀를&amp;nbsp;보면&amp;nbsp;각성합니다.&lt;br /&gt;&lt;br /&gt;도강우가&amp;nbsp;수집해오는&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;카네키&amp;nbsp;교수의&amp;nbsp;귀를&amp;nbsp;자르고&amp;nbsp;&lt;br /&gt;&lt;br /&gt;그&amp;nbsp;과정에서&amp;nbsp;강건주는&amp;nbsp;청력을&amp;nbsp;잃게&amp;nbsp;됩니다.&lt;br /&gt;&lt;br /&gt;드라마는&amp;nbsp;끝나게&amp;nbsp;됩니다.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style15&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 842px;&quot;&gt;
&lt;p&gt;&lt;b&gt;본 포스팅은 보이스3 드라마를 좋아하는 시청자로서 주저리 주저리 내세운 뇌피셜에 불과합니다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;지나친 비난은 삼가해 주시기 바랍니다.&lt;/b&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>일상</category>
      <author>CofS</author>
      <guid isPermaLink="true">https://cofs.tistory.com/392</guid>
      <comments>https://cofs.tistory.com/392#entry392comment</comments>
      <pubDate>Mon, 24 Jun 2019 14:27:24 +0900</pubDate>
    </item>
    <item>
      <title>org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException</title>
      <link>https://cofs.tistory.com/391</link>
      <description>&lt;p&gt;이전 프로젝트를 다른 서버로 이관중에 다음과 같은 오류가 발생했다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;SEVERE:&amp;nbsp;Compilation&amp;nbsp;error&lt;br /&gt;org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException&lt;br /&gt;at&amp;nbsp;org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader.(ClassFileReader.java:372)&lt;br /&gt;at&amp;nbsp;org.apache.jasper.compiler.JDTCompiler$1.findType(JDTCompiler.java:232)&lt;br /&gt;at&amp;nbsp;org.apache.jasper.compiler.JDTCompiler$1.findType(JDTCompiler.java:188)&lt;br /&gt;at&amp;nbsp;org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:113)&lt;br /&gt;at&amp;nbsp;org.eclipse.jdt.internal.compiler.lookup.UnresolvedReferenceBinding.resolve(UnresolvedReferenceBinding.java:49)&lt;br /&gt;at&amp;nbsp;org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.resolveType(BinaryTypeBinding.java:122)&lt;br /&gt;at&amp;nbsp;org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage(PackageBinding.java:168)&lt;br /&gt;at&amp;nbsp;org.eclipse.jdt.internal.compiler.lookup.Scope.getType(Scope.java:2472)&lt;br /&gt;at&amp;nbsp;org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:1006)&lt;br /&gt;at&amp;nbsp;org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.resolve(TypeDeclaration.java:1258)&lt;br /&gt;at&amp;nbsp;org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.resolve(CompilationUnitDeclaration.java:539)&lt;br /&gt;at&amp;nbsp;org.eclipse.jdt.internal.compiler.Compiler.process(Compiler.java:763)&lt;br /&gt;at&amp;nbsp;org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:468)&lt;br /&gt;at&amp;nbsp;org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:459)&lt;br /&gt;at&amp;nbsp;org.apache.jasper.compiler.Compiler.compile(Compiler.java:378)&lt;br /&gt;at&amp;nbsp;org.apache.jasper.compiler.Compiler.compile(Compiler.java:353)&lt;br /&gt;at&amp;nbsp;org.apache.jasper.compiler.Compiler.compile(Compiler.java:340)&lt;br /&gt;at&amp;nbsp;org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:646)&lt;br /&gt;at&amp;nbsp;org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)&lt;br /&gt;at&amp;nbsp;org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)&lt;br /&gt;at&amp;nbsp;org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)&lt;br /&gt;at&amp;nbsp;javax.servlet.http.HttpServlet.service(HttpServlet.java:722)&lt;br /&gt;at&amp;nbsp;org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)&lt;br /&gt;at&amp;nbsp;org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)&lt;br /&gt;at&amp;nbsp;org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)&lt;br /&gt;at&amp;nbsp;org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)&lt;br /&gt;at&amp;nbsp;org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)&lt;br /&gt;at&amp;nbsp;org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)&lt;br /&gt;at&amp;nbsp;org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)&lt;br /&gt;at&amp;nbsp;org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)&lt;br /&gt;at&amp;nbsp;org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)&lt;br /&gt;at&amp;nbsp;org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)&lt;br /&gt;at&amp;nbsp;org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)&lt;br /&gt;at&amp;nbsp;org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)&lt;br /&gt;at&amp;nbsp;org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)&lt;br /&gt;at&amp;nbsp;org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)&lt;br /&gt;at&amp;nbsp;org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)&lt;br /&gt;at&amp;nbsp;org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)&lt;br /&gt;at&amp;nbsp;org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)&lt;br /&gt;at&amp;nbsp;java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)&lt;br /&gt;at&amp;nbsp;java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)&lt;br /&gt;at&amp;nbsp;java.lang.Thread.run(Thread.java:748)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;
&lt;script src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;text-align: center; display: block;&quot; data-ad-slot=&quot;1510740417&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-format=&quot;fluid&quot; data-ad-layout=&quot;in-article&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;해당 프로젝트는 java7로 개발되어있었는데 서버에는 java8밖에 없었다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;그래서 이관할 때 java8로 프로젝트를 다시 빌드해서 올리려고 했다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;java7을 서버에 설치하기 귀찮아서 ㅠㅠ..&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;기존에 java7에서 java8로 변경하고 컴파일 버전까지 java8로 바꿨다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;로컬에서 java와 tomcat 버전을 올리고 오류가 나는 것이 있는지 확인했고 컴파일이 잘되는지, 기능 전체는 테스트 하지 않았지만 특정 기능들이 정상동작하는지 등등 간단하게 확인했을 땐 문제가 없었다.&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;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;해당 내용으로 찾아보니 jvm 버전이 안맞는다, jsp 파일이 제대로 컴파일 되지 않았다. 라이브러리 디펜던시가 안맞는다 등등...&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;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;일단 jsp 파일이 제대로 컴파일 되지 않았을 수 있으니 clean 또는 컴파일된 jsp_java 파일, class 파일 등등 모두 삭제후 다시 시도했는데 결과는 같다.&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;/p&gt;
&lt;p&gt;&lt;br /&gt;
&lt;script src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;3295854551&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;그래서 서버의 jvm 버전을 변경했다.&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;기존에 설치되어있던 java를 프로젝트가 동작했던 java7로 다운그레이드 했다.&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;원인을 찾아서 java8로 꼭 업그레이드 해야 하는 것은 아니라서 일단 넘어갔다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;나중에 테스트해보면 답이 나올 테지만 내 생각에는 java 버전을 올리면서 특정 라이브러리중에 디펜던시가 어긋나고 그러다보니 컴파일 오류가 발생했고 위와 같은 상황까지 오지 않았나 예상해 본다.&lt;/p&gt;</description>
      <category>etc/error</category>
      <author>CofS</author>
      <guid isPermaLink="true">https://cofs.tistory.com/391</guid>
      <comments>https://cofs.tistory.com/391#entry391comment</comments>
      <pubDate>Mon, 27 May 2019 14:38:46 +0900</pubDate>
    </item>
    <item>
      <title>org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.WEB_002dINF.index_jsp</title>
      <link>https://cofs.tistory.com/390</link>
      <description>&lt;p&gt;오래된, 혹은 이전에 개발된 프로젝트를 오랜만에 구동시키면 다음과 같은 오류를 만날 수 있다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;
&lt;p&gt;org.apache.jasper.JasperException:&amp;nbsp;java.lang.ClassNotFoundException:&amp;nbsp;org.apache.jsp.WEB_002dINF.index_jsp&lt;br /&gt;org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:177)&lt;br /&gt;org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369)&lt;br /&gt;org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)&lt;br /&gt;org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)&lt;br /&gt;javax.servlet.http.HttpServlet.service(HttpServlet.java:722)&lt;br /&gt;org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)&lt;br /&gt;org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)&lt;br /&gt;root&amp;nbsp;cause&lt;br /&gt;&lt;br /&gt;java.lang.ClassNotFoundException:&amp;nbsp;org.apache.jsp.WEB_002dINF.index_jsp&lt;br /&gt;java.net.URLClassLoader.findClass(URLClassLoader.java:382)&lt;br /&gt;org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:132)&lt;br /&gt;org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:63)&lt;br /&gt;org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:172)&lt;br /&gt;org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369)&lt;br /&gt;org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)&lt;br /&gt;org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)&lt;br /&gt;javax.servlet.http.HttpServlet.service(HttpServlet.java:722)&lt;br /&gt;org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)&lt;br /&gt;org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;
&lt;script src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;text-align: center; display: block;&quot; data-ad-slot=&quot;1510740417&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-format=&quot;fluid&quot; data-ad-layout=&quot;in-article&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;찾아보니 여러 경우가 있었다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;먼저 jsp 가 제대로 컴파일 되지 않았을 경우 발생할 수 있다고 한다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이럴 경우에는 단순히 clean 또는 tomcat 아래의 빌드된 파일들을 삭제해주면 쉽게 해결된다고 한다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;그런데 컴파일이 제대로 되지 않는 경우는 일시적일 수 있지만 때론 jar파일의 중복, 충돌, dependency 버전이 맞지 않는 등 다양한 경우에 발생할 수 있다고 하니 이 부분도 같이 체크하면 쉽게 해결할 수 있다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;하지만 필자와는 상관없는 경우였다.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
&lt;script src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;3295854551&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;위의 방법이 통하지 않아서 계속 해매다보니 java와 tomcat 버전이 이전에 개발된 버전과 다르다는것을 알았다.&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;그래서 일단 기존에 실행되었던 대로 java와 tomcat 버전을 맞춰주니 더이상 오류가 발생하지 않았다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이건 걍 뇌피셜인데 java와 tomcat 의 버전을 달리하니 이와 관련되어있던 라이브러리중에서 dependency 가 맞지 않는게 존재했을 것이고 그래서 위와 같은 오류가 발생한 것이 아닌가 싶다.&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;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>etc/error</category>
      <author>CofS</author>
      <guid isPermaLink="true">https://cofs.tistory.com/390</guid>
      <comments>https://cofs.tistory.com/390#entry390comment</comments>
      <pubDate>Mon, 27 May 2019 14:21:39 +0900</pubDate>
    </item>
    <item>
      <title>org.apache.jasper.JasperException: Unable to compile class for JSP</title>
      <link>https://cofs.tistory.com/389</link>
      <description>&lt;h3&gt;예전에 했던 프로젝트를 Tomcat 으로 실행했더니&lt;/h3&gt;
&lt;h3&gt;다음과 같은 오류가 발생했다.&lt;/h3&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;org.apache.jasper.JasperException:&amp;nbsp;Unable&amp;nbsp;to&amp;nbsp;compile&amp;nbsp;class&amp;nbsp;for&amp;nbsp;JSP:&amp;nbsp;&lt;br /&gt;&lt;br /&gt;An&amp;nbsp;error&amp;nbsp;occurred&amp;nbsp;at&amp;nbsp;line:&amp;nbsp;1&amp;nbsp;in&amp;nbsp;the&amp;nbsp;generated&amp;nbsp;java&amp;nbsp;file&lt;br /&gt;The&amp;nbsp;type&amp;nbsp;java.util.Map$Entry&amp;nbsp;cannot&amp;nbsp;be&amp;nbsp;resolved.&amp;nbsp;It&amp;nbsp;is&amp;nbsp;indirectly&amp;nbsp;referenced&amp;nbsp;from&amp;nbsp;required&amp;nbsp;.class&amp;nbsp;files&lt;br /&gt;&lt;br /&gt;An&amp;nbsp;error&amp;nbsp;occurred&amp;nbsp;at&amp;nbsp;line:&amp;nbsp;1&amp;nbsp;in&amp;nbsp;the&amp;nbsp;generated&amp;nbsp;java&amp;nbsp;file&lt;br /&gt;The&amp;nbsp;type&amp;nbsp;java.io.ObjectInputStream&amp;nbsp;cannot&amp;nbsp;be&amp;nbsp;resolved.&amp;nbsp;It&amp;nbsp;is&amp;nbsp;indirectly&amp;nbsp;referenced&amp;nbsp;from&amp;nbsp;required&amp;nbsp;.class&amp;nbsp;files&lt;br /&gt;&lt;br /&gt;Stacktrace:&lt;br /&gt;org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:102)&lt;br /&gt;org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:331)&lt;br /&gt;org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:469)&lt;br /&gt;org.apache.jasper.compiler.Compiler.compile(Compiler.java:378)&lt;br /&gt;org.apache.jasper.compiler.Compiler.compile(Compiler.java:353)&lt;br /&gt;org.apache.jasper.compiler.Compiler.compile(Compiler.java:340)&lt;br /&gt;org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:646)&lt;br /&gt;org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)&lt;br /&gt;org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)&lt;br /&gt;org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)&lt;br /&gt;javax.servlet.http.HttpServlet.service(HttpServlet.java:722)&lt;br /&gt;org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)&lt;br /&gt;org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;br /&gt;
&lt;script src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;text-align: center; display: block;&quot; data-ad-slot=&quot;1510740417&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-format=&quot;fluid&quot; data-ad-layout=&quot;in-article&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;상황은 다음과 같다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;예전 프로젝트는 java7, tomcat7 에서 동작했었다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;java와 tomcat 을 상위버전으로 바꿔서 로컬에서 구동하니 잘 되길래 VM에 올려서 시도했다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;tomcat 은 정상적으로 실행됬고 페이지에 접속만 하면 위 오류가 반복되었다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;VM은 java8, tomcat8이 설치되어 있었다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;java와 tomcat 의 버전도 서로 충돌 및 이슈가 없도록 맞춰서 java 버전을 올려보고 tomcat 버전도 올려보고 compile 버전도 바꿔보고 등등... 프로젝트 단위로 할 수 있는 것들은 다 해본거 같다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;프로젝트가 작으면 java나 tomcat 의 버전업에 대응해서 진행할텐데 프로젝트 규모가 조금 크다보니 설정파일까지 건드리기엔 리스크가 있었다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
&lt;script src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;3295854551&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&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;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;나중에도 java, tomcat 버전업을 할 일들이 있을텐데 ㅠㅠ...&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;&amp;nbsp;&lt;/p&gt;</description>
      <category>etc/error</category>
      <author>CofS</author>
      <guid isPermaLink="true">https://cofs.tistory.com/389</guid>
      <comments>https://cofs.tistory.com/389#entry389comment</comments>
      <pubDate>Mon, 27 May 2019 14:10:49 +0900</pubDate>
    </item>
    <item>
      <title>Microsoft Visual C++ 14.0 is required. Get it with &amp;quot;Microsoft Visual C++ Build Tools&amp;quot;</title>
      <link>https://cofs.tistory.com/388</link>
      <description>&lt;p&gt;windows 에서 pip install 명령어로 pythVisual C++ 다운로드 사이트on 패키지를 설치할 때 다음과 같은 오류가 발생할 경우가 있다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;width: 100%; border-collapse: collapse;&quot; border=&quot;1&quot; data-ke-style=&quot;style14&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&lt;b&gt;Microsoft&amp;nbsp;Visual&amp;nbsp;C++&amp;nbsp;14.0&amp;nbsp;is&amp;nbsp;required.&amp;nbsp;Get&amp;nbsp;it&amp;nbsp;with&amp;nbsp;&quot;Microsoft&amp;nbsp;Visual&amp;nbsp;C++&amp;nbsp;Build&amp;nbsp;Tools&quot;&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b669nV/btqvv4rjVwb/ZrDLRNMKDsow1sFxKAfG10/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b669nV/btqvv4rjVwb/ZrDLRNMKDsow1sFxKAfG10/img.png&quot; data-alt=&quot;error message&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b669nV/btqvv4rjVwb/ZrDLRNMKDsow1sFxKAfG10/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb669nV%2Fbtqvv4rjVwb%2FZrDLRNMKDsow1sFxKAfG10%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;error message&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;위 오류는 Visual C++ 14.0 이 필요한데 없어서 나는 오류이다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;해결 방법은 Visual C++ 14.0 을 설치하면 된다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;하지만 공식 사이트에서 해당 버전의 Visual C++ 을 찾으면 404 페이지 오류가 발생한다.&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;/p&gt;
&lt;p&gt;&lt;br /&gt;
&lt;script src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;3295854551&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&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: #1b9ae6;&quot;&gt;&lt;b&gt;&lt;a style=&quot;color: #1b9ae6;&quot; href=&quot;https://visualstudio.microsoft.com/ko/vs/older-downloads/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Visual C++ 다운로드 공식 사이트&lt;/a&gt;&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 alignCenter&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/E3aKV/btqvv362nV8/2ivJJkAKExhscWqqpEOAk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/E3aKV/btqvv362nV8/2ivJJkAKExhscWqqpEOAk1/img.png&quot; data-alt=&quot;Visual C++ 다운로드 사이트&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/E3aKV/btqvv362nV8/2ivJJkAKExhscWqqpEOAk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FE3aKV%2Fbtqvv362nV8%2F2ivJJkAKExhscWqqpEOAk1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Visual C++ 다운로드 사이트&lt;/figcaption&gt;
&lt;/figure&gt;
&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;&lt;figure class=&quot;imageblock alignCenter&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ctTMEv/btqvurnvkYV/9bWFmAoUPoKahCgBuSuzKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ctTMEv/btqvurnvkYV/9bWFmAoUPoKahCgBuSuzKk/img.png&quot; data-alt=&quot;Visual C++ 다운로드 사이트&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ctTMEv/btqvurnvkYV/9bWFmAoUPoKahCgBuSuzKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FctTMEv%2FbtqvurnvkYV%2F9bWFmAoUPoKahCgBuSuzKk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Visual C++ 다운로드 사이트&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;그 중에서 Microsoft Build Tools 2015 업데이트3 항목을 다운로드하고 실행한다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;6f05fa11-0aa8-4857-9ac2-d3fb09e24894_image.png&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kxVEm/btqvuXNea6W/Onk4vnJGkOoCXVEZQ7xtdK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kxVEm/btqvuXNea6W/Onk4vnJGkOoCXVEZQ7xtdK/img.png&quot; data-alt=&quot;Visual Build Tool 설치&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kxVEm/btqvuXNea6W/Onk4vnJGkOoCXVEZQ7xtdK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkxVEm%2FbtqvuXNea6W%2FOnk4vnJGkOoCXVEZQ7xtdK%2Fimg.png&quot; data-filename=&quot;6f05fa11-0aa8-4857-9ac2-d3fb09e24894_image.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;figcaption&gt;Visual Build Tool 설치&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;기본값을 선택 후 설치 버튼을 클릭하여 설치를 진행한다.&lt;/p&gt;
&lt;p&gt;설치는 인터넷이 연결되어 있는 상황에서만 가능하다.&lt;/p&gt;
&lt;p&gt;인터넷이 연결되어 있다면 아래와 같이 설치가 완료된다.&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #ff9a85;&quot;&gt;&lt;b&gt;인터넷 연결되 되어있지 않으면&amp;nbsp;하단 오류 참고.&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 alignCenter&quot; data-filename=&quot;13fa1ed3-a547-4119-a95c-3ea4f294b566_image.png&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bS1qQR/btqvt8aCmwd/PxyAxyjnMmNlzBfPOasfyK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bS1qQR/btqvt8aCmwd/PxyAxyjnMmNlzBfPOasfyK/img.png&quot; data-alt=&quot;Visual Build Tool 설치&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bS1qQR/btqvt8aCmwd/PxyAxyjnMmNlzBfPOasfyK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbS1qQR%2Fbtqvt8aCmwd%2FPxyAxyjnMmNlzBfPOasfyK%2Fimg.png&quot; data-filename=&quot;13fa1ed3-a547-4119-a95c-3ea4f294b566_image.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;figcaption&gt;Visual Build Tool 설치&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;설치가 완료되면 다시 한번 pip&amp;nbsp;install 명령어를 사용하여 패키지를 설치하면 된다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
&lt;script src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;text-align: center; display: block;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;1510740417&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #ff7154;&quot;&gt;&lt;b&gt;Visual Build Tool 설치 시 인터넷이 연결되어 있지 않다면 ?&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #ff7154;&quot;&gt;&lt;b&gt;아래와 같이 설치 시 오류가 발생한다.&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff7154;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;0db8d9d4-5832-4c84-b558-1cf7c0447af9_image.png&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dR8rWE/btqvurgHif4/0ZRUjzrnRfxA0oaZgMXA90/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dR8rWE/btqvurgHif4/0ZRUjzrnRfxA0oaZgMXA90/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dR8rWE/btqvurgHif4/0ZRUjzrnRfxA0oaZgMXA90/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdR8rWE%2FbtqvurgHif4%2F0ZRUjzrnRfxA0oaZgMXA90%2Fimg.png&quot; data-filename=&quot;0db8d9d4-5832-4c84-b558-1cf7c0447af9_image.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;1. 일단 인터넷이 되는 PC에서 Visual Build Tool 설치파일까지는 동일하게 다운로드 한다.&lt;/p&gt;
&lt;p&gt;2. 파일을 실행해서 설치하지 말고 파일이 있는 곳에서 CMD 창을 실행한다.&lt;/p&gt;
&lt;p&gt;3. CMD 창에서 다음 명령어를 실행해서 설치 패키지를 다운받는다.&lt;/p&gt;
&lt;table style=&quot;width: 100%; border-collapse: collapse;&quot; border=&quot;1&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;visualcppbuildtools_full.exe /layout C:\VisualStudio2015_packages&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;4. C:\VisualStudio2015_packages 폴더에 해당 설치 패키지들이 다운로드 된다.&lt;/p&gt;
&lt;p&gt;5. 다운로드된 패키지들을 압축해서 인터넷이 되지 않는 PC로 복사하고 압축을 해제한다.&lt;/p&gt;
&lt;p&gt;6. 위 이미지에서 패키지를 검색할 위치를 지정한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;2019-05-22 09;30;41.PNG&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vXPHd/btqvvCu5srQ/pb86BGhFrLBCL4n7H7Zvj1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vXPHd/btqvvCu5srQ/pb86BGhFrLBCL4n7H7Zvj1/img.png&quot; data-alt=&quot;4개 디렉토리중 설치할 PC 환경에 맞게 선택한다&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vXPHd/btqvvCu5srQ/pb86BGhFrLBCL4n7H7Zvj1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvXPHd%2FbtqvvCu5srQ%2Fpb86BGhFrLBCL4n7H7Zvj1%2Fimg.png&quot; data-filename=&quot;2019-05-22 09;30;41.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;figcaption&gt;4개 디렉토리중 설치할 PC 환경에 맞게 선택한다&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;48b860c7-223f-4789-9687-074ec5752c98_image.png&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/r9B0w/btqvs0Eme02/AJCLfr06tbr9W0koiMIpr1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/r9B0w/btqvs0Eme02/AJCLfr06tbr9W0koiMIpr1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/r9B0w/btqvs0Eme02/AJCLfr06tbr9W0koiMIpr1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fr9B0w%2Fbtqvs0Eme02%2FAJCLfr06tbr9W0koiMIpr1%2Fimg.png&quot; data-filename=&quot;48b860c7-223f-4789-9687-074ec5752c98_image.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;&amp;nbsp;&lt;/p&gt;</description>
      <category>etc/error</category>
      <author>CofS</author>
      <guid isPermaLink="true">https://cofs.tistory.com/388</guid>
      <comments>https://cofs.tistory.com/388#entry388comment</comments>
      <pubDate>Wed, 22 May 2019 09:33:04 +0900</pubDate>
    </item>
    <item>
      <title>java 특정 문자열 개수 구하기</title>
      <link>https://cofs.tistory.com/387</link>
      <description>&lt;p&gt;&lt;br /&gt;
&lt;script src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;text-align: center; display: block;&quot; data-ad-slot=&quot;1510740417&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-format=&quot;fluid&quot; data-ad-layout=&quot;in-article&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;br /&gt;JAVA 에서 특정 문자열 개수 구하는 방법이다.&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;무한 루프를 활용해서 indexof 를 활용하는 방법부터&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;본 포스팅에서 설명하는 방법은 commons-lang.jar 라이브러리를 활용한 방법이다.&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;div class=&quot;colorscripter-code&quot; style=&quot;color:#010101; font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; width:600px; position:relative !important; overflow:auto&quot;&gt;&lt;table class=&quot;colorscripter-code-table&quot; style=&quot;margin:0; padding:0; border:none; background-color:#fafafa; border-radius:4px; line-height:140%&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;&lt;tr&gt;&lt;td style=&quot;padding:6px; border-right:2px solid #e5e5e5&quot;&gt;&lt;div style=&quot;margin:0; padding:0; word-break:normal; text-align:right; color:#666; font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important&quot;&gt;&lt;div&gt;1&lt;/div&gt;&lt;div&gt;2&lt;/div&gt;&lt;div&gt;3&lt;/div&gt;&lt;div&gt;4&lt;/div&gt;&lt;div&gt;5&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;padding:6px 0&quot;&gt;&lt;div style=&quot;margin:0; padding:0; color:#010101; font-family:Consolas, 'Liberation Mono', Menlo, Courier, monospace !important&quot;&gt;&lt;div style=&quot;padding:0 6px; white-space:pre&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#066de2&quot;&gt;String&lt;/span&gt;&amp;nbsp;txt&amp;nbsp;&lt;span style=&quot;color:#0086b3&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color:#63a35c&quot;&gt;&quot;Test,&amp;nbsp;java,&amp;nbsp;Oracle,&amp;nbsp;main&quot;&lt;/span&gt;;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#066de2&quot;&gt;int&lt;/span&gt;&amp;nbsp;countMatches&amp;nbsp;&lt;span style=&quot;color:#0086b3&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color:#a71d5d&quot;&gt;=&lt;/span&gt;&amp;nbsp;StringUtils.countMatches(txt,&amp;nbsp;&lt;span style=&quot;color:#63a35c&quot;&gt;&quot;,&quot;&lt;/span&gt;);&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;padding:0 6px; white-space:pre&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color:#066de2&quot;&gt;System&lt;/span&gt;.&lt;span style=&quot;color:#066de2&quot;&gt;out&lt;/span&gt;.&lt;span style=&quot;color:#066de2&quot;&gt;println&lt;/span&gt;(countMatches);&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style=&quot;vertical-align:bottom; padding:0 2px 4px 0&quot;&gt;&lt;a href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot; style=&quot;text-decoration:none&quot;&gt;&lt;span style=&quot;font-size:9px; word-break:normal; background-color:#e5e5e5; color:white; border-radius:10px; padding:1px&quot;&gt;cs&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;StringUtils 클래스를 활용하면 위와 같이 쉽게 구할 수 있다.&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;&amp;nbsp;&lt;/p&gt;</description>
      <category>language/java</category>
      <author>CofS</author>
      <guid isPermaLink="true">https://cofs.tistory.com/387</guid>
      <comments>https://cofs.tistory.com/387#entry387comment</comments>
      <pubDate>Wed, 8 May 2019 17:10:30 +0900</pubDate>
    </item>
    <item>
      <title>linux java main 실행</title>
      <link>https://cofs.tistory.com/386</link>
      <description>&lt;h2&gt;linux&amp;nbsp;java&amp;nbsp;main&amp;nbsp;실행&lt;/h2&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;centos 또는 ubuntu 에서 java 어플리케이션 main 을 실행하는 방법이다.&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;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #ff7154;&quot;&gt;0. 당연히 linux 에 java가 설치되어 있어야 한다.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;1. 이클립스에서 프로젝트를&amp;nbsp;archive파일로&amp;nbsp;export&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;244&quot; data-filename=&quot;2019-04-05 13;44;12.PNG&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bzetMC/btqt6Dp8yba/cO1KyF55JxZtvlsKYsn1aK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bzetMC/btqt6Dp8yba/cO1KyF55JxZtvlsKYsn1aK/img.png&quot; data-alt=&quot;프로젝트 우클릭&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bzetMC/btqt6Dp8yba/cO1KyF55JxZtvlsKYsn1aK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbzetMC%2Fbtqt6Dp8yba%2FcO1KyF55JxZtvlsKYsn1aK%2Fimg.png&quot; width=&quot;244&quot; data-filename=&quot;2019-04-05 13;44;12.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;figcaption&gt;프로젝트 우클릭&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;525&quot; data-filename=&quot;2019-04-05 13;44;34.PNG&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c2fcnv/btqt85eFGUV/VAcXshM3yCdQzsXDV9Umz1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c2fcnv/btqt85eFGUV/VAcXshM3yCdQzsXDV9Umz1/img.png&quot; data-alt=&quot;Archive File 선택 후 Next&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c2fcnv/btqt85eFGUV/VAcXshM3yCdQzsXDV9Umz1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc2fcnv%2Fbtqt85eFGUV%2FVAcXshM3yCdQzsXDV9Umz1%2Fimg.png&quot; width=&quot;525&quot; data-filename=&quot;2019-04-05 13;44;34.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;figcaption&gt;Archive File 선택 후 Next&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;623&quot; data-filename=&quot;2019-04-05 13;45;19.PNG&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c7Z3dv/btqt8KPossp/MJbNHQFBKy4WlNfDCxnxiK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c7Z3dv/btqt8KPossp/MJbNHQFBKy4WlNfDCxnxiK/img.png&quot; data-alt=&quot;파일명 지정 후 Finish&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c7Z3dv/btqt8KPossp/MJbNHQFBKy4WlNfDCxnxiK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc7Z3dv%2Fbtqt8KPossp%2FMJbNHQFBKy4WlNfDCxnxiK%2Fimg.png&quot; width=&quot;623&quot; data-filename=&quot;2019-04-05 13;45;19.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;figcaption&gt;파일명 지정 후 Finish&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;2. 생성한 Archive 파일을 Linux로 이동&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
&lt;script src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-slot=&quot;3295854551&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;3. 이동한 Archive 파일을 압축 해제함&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1554440000380&quot; class=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;[root]# unzip 파일명&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;4. 압축 해제한 폴더의 bin 폴더로 이동&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1554440216246&quot; class=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;[root]# cd /파일명/bin&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;5. 다음 명령어로 Main 클래스 실행&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1554440358436&quot; class=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;[root]# java -Xmx2048m -cp &quot;.:/파일명/lib/*&quot; 패키지.Main &quot;$@&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;&amp;nbsp;&lt;/h4&gt;
&lt;p&gt;&lt;br /&gt;
&lt;script src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;text-align: center; display: block;&quot; data-ad-slot=&quot;1510740417&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;h4&gt;&lt;b&gt;번외.&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;b&gt;Background 로 실행하려면 다음과 같이 사용&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;1. exec.sh 파일 생성&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; vi 편집기로 하면 편하다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 내용은 다음과 같이 쓰고 저장&lt;/p&gt;
&lt;pre id=&quot;code_1554440480870&quot; class=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;java -Xmx2048m -cp &quot;.:/파일명/lib/*&quot; 패키지.Main &quot;$@&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;2. nohup 명령어 사용&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1554440535655&quot; class=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;[root]# nohup /exec.sh &amp;amp;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;nohup 명령어를 위와 같이 쓰면 기본적으로 nohup.out 파일이 생성되며&amp;nbsp;발생되는 로그들이 적제된다.&lt;/p&gt;
&lt;p&gt;로그가 많은 프로그램일 경우 nohup.out 파일이 거대해질 수 있으므로 옵션을 적절히 사용해서 로그를 다른파일에 적제하거나 생성하지 않는 등의 처리가 필요할 수 있다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;3. ps 명령어로 프로세스가 정상적으로 동작하고 있는지 확인&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1554440758972&quot; class=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;[root]# ps -ef | grep main&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;빨리 끝나는 어플리케이션이라면 위 명령어로 확인이 안될 수 있다.&lt;/p&gt;
&lt;p&gt;실행중인 프로세스 중 main 이라는 단어를 가지고 있는 것만 조회하는 명령어이다.&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;&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>OS/Linux</category>
      <author>CofS</author>
      <guid isPermaLink="true">https://cofs.tistory.com/386</guid>
      <comments>https://cofs.tistory.com/386#entry386comment</comments>
      <pubDate>Fri, 5 Apr 2019 14:09:28 +0900</pubDate>
    </item>
    <item>
      <title>java 초간단 동적 jdbc 연결</title>
      <link>https://cofs.tistory.com/384</link>
      <description>&lt;H3&gt;&lt;SPAN style=&quot;FONT-SIZE: 18pt&quot;&gt;java&amp;nbsp;초간단&amp;nbsp;동적&amp;nbsp;jdbc&amp;nbsp;연결&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;DB 접속정보에 따라 여러 DB를 동적으로 접근해서 특정 쿼리를 실행해야 하는 경우가 생겼다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;보통에 웹은 정해진 DB를 사용하며 spring 에서 data source 에 정보를 셋팅하고&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;mybatis 를 사용하면 쉽게 jdbc 를 사용할 수 있다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;동적으로 jdbc에 연결하는 방법은 무수히도 많을 것이다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;필자는 apache의&amp;nbsp;BasicDataSource 와 spring jdbc의 JdbcTemplate 를 사용해서 아주 심플하게 동적 연결을 구현해 보았다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;본 포스팅은 mybatis도 사용하지 않고 그냥 단순하게 연결해서 쿼리를 실행하는 방법을 작성한다.&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;br /&gt;
&lt;SCRIPT src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot; async&gt;&lt;/SCRIPT&gt;
 &lt;INS class=adsbygoogle style=&quot;TEXT-ALIGN: center; DISPLAY: block&quot; data-ad-slot=&quot;3295854551&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot;&gt;&lt;/INS&gt;
&lt;SCRIPT&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/SCRIPT&gt;
&lt;br /&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;기능은 간단하지만 라이브러리들간의 dependency가 있어서 총 8개의 라이브러리가 필요하다.&lt;/B&gt;&lt;/P&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 212px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99AB764B5CA2AE6C31&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99AB764B5CA2AE6C31&quot; width=&quot;212&quot; height=&quot;151&quot; filename=&quot;2019-04-02 09;22;38.PNG&quot; filemime=&quot;image/jpeg&quot;/&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;commons-dbcp-x.x.jar&lt;/P&gt;
&lt;P style=&quot;FONT-SIZE: 0.87em&quot;&gt;commons-logging-x.x.jar&lt;/P&gt;
&lt;P style=&quot;FONT-SIZE: 0.87em&quot;&gt;commons-pool.jar&lt;/P&gt;
&lt;P style=&quot;FONT-SIZE: 0.87em&quot;&gt;ojdbc6.jar (필자는 oracle 연결, 다른 db들을 연결할땐 다른 jar파일도 필요함)&lt;/P&gt;
&lt;P style=&quot;FONT-SIZE: 0.87em&quot;&gt;spring-beans-x.x.x.jar&lt;/P&gt;
&lt;P style=&quot;FONT-SIZE: 0.87em&quot;&gt;spring-core-x.x.x.jar&lt;/P&gt;
&lt;P style=&quot;FONT-SIZE: 0.87em&quot;&gt;spring-jdbc-x.x.x.jar&lt;/P&gt;
&lt;P style=&quot;FONT-SIZE: 0.87em&quot;&gt;spring-tx-x.x.x.jar&lt;/P&gt;
&lt;P&gt;총 8개 이다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;소스코드&lt;/B&gt;&lt;/P&gt;
&lt;DIV class=colorscripter-code style=&quot;OVERFLOW: auto; FONT-FAMILY: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; WIDTH: 600px; POSITION: relative !important; COLOR: #010101&quot;&gt;
&lt;TABLE class=colorscripter-code-table style=&quot;HEIGHT: 417px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; LINE-HEIGHT: 140%; PADDING-RIGHT: 0px; BACKGROUND-COLOR: #fafafa; border-radius: 4px&quot; cellSpacing=0 cellPadding=0&gt;
&lt;TBODY&gt;
&lt;TR style=&quot;HEIGHT: 417px&quot;&gt;
&lt;TD style=&quot;HEIGHT: 417px; BORDER-RIGHT: #e5e5e5 2px solid; WIDTH: 16px; PADDING-BOTTOM: 6px; PADDING-TOP: 6px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;
&lt;DIV style=&quot;FONT-FAMILY: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; WORD-BREAK: normal; COLOR: #666; PADDING-BOTTOM: 0px; TEXT-ALIGN: right; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; PADDING-RIGHT: 0px&quot;&gt;
&lt;DIV&gt;1&lt;/DIV&gt;
&lt;DIV&gt;2&lt;/DIV&gt;
&lt;DIV&gt;3&lt;/DIV&gt;
&lt;DIV&gt;4&lt;/DIV&gt;
&lt;DIV&gt;5&lt;/DIV&gt;
&lt;DIV&gt;6&lt;/DIV&gt;
&lt;DIV&gt;7&lt;/DIV&gt;
&lt;DIV&gt;8&lt;/DIV&gt;
&lt;DIV&gt;9&lt;/DIV&gt;
&lt;DIV&gt;10&lt;/DIV&gt;
&lt;DIV&gt;11&lt;/DIV&gt;
&lt;DIV&gt;12&lt;/DIV&gt;
&lt;DIV&gt;13&lt;/DIV&gt;
&lt;DIV&gt;14&lt;/DIV&gt;
&lt;DIV&gt;15&lt;/DIV&gt;
&lt;DIV&gt;16&lt;/DIV&gt;
&lt;DIV&gt;17&lt;/DIV&gt;
&lt;DIV&gt;18&lt;/DIV&gt;&lt;/DIV&gt;&lt;/TD&gt;
&lt;TD style=&quot;HEIGHT: 417px; WIDTH: 708px; PADDING-BOTTOM: 6px; PADDING-TOP: 6px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px&quot;&gt;
&lt;DIV style=&quot;FONT-FAMILY: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; COLOR: #010101; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; PADDING-RIGHT: 0px&quot;&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;public&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;static&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;void&lt;/SPAN&gt;&amp;nbsp;main(&lt;SPAN style=&quot;COLOR: #066de2&quot;&gt;String&lt;/SPAN&gt;[]&amp;nbsp;args)&amp;nbsp;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;throws&lt;/SPAN&gt;&amp;nbsp;SQLException&amp;nbsp;{&lt;/DIV&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BasicDataSource&amp;nbsp;dataSource&amp;nbsp;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;=&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;new&lt;/SPAN&gt;&amp;nbsp;BasicDataSource();&lt;/DIV&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dataSource.setDriverClassName(&lt;SPAN style=&quot;COLOR: #63a35c&quot;&gt;&quot;oracle.jdbc.driver.OracleDriver&quot;&lt;/SPAN&gt;);&lt;/DIV&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dataSource.setUrl(&lt;SPAN style=&quot;COLOR: #63a35c&quot;&gt;&quot;jdbc:oracle:thin:@아이피:포트/서비스명&quot;&lt;/SPAN&gt;);&lt;/DIV&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dataSource.setUsername(&lt;SPAN style=&quot;COLOR: #63a35c&quot;&gt;&quot;유저명&quot;&lt;/SPAN&gt;);&lt;/DIV&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dataSource.setPassword(&lt;SPAN style=&quot;COLOR: #63a35c&quot;&gt;&quot;비밀번호&quot;&lt;/SPAN&gt;);&lt;/DIV&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style=&quot;COLOR: #999999&quot;&gt;//&amp;nbsp;datasource&amp;nbsp;연결&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;JdbcTemplate&amp;nbsp;jdbcTemplate&amp;nbsp;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;=&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;new&lt;/SPAN&gt;&amp;nbsp;JdbcTemplate(dataSource);&lt;/DIV&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;List&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;&amp;lt;&lt;/SPAN&gt;Map&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #066de2&quot;&gt;String&lt;/SPAN&gt;,&amp;nbsp;Object&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;&amp;gt;&lt;/SPAN&gt;&amp;nbsp;queryForList&amp;nbsp;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;=&lt;/SPAN&gt;&amp;nbsp;jdbcTemplate.queryForList(&lt;SPAN style=&quot;COLOR: #63a35c&quot;&gt;&quot;쿼리문&quot;&lt;/SPAN&gt;);&lt;/DIV&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;queryForList.forEach(x&amp;nbsp;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;-&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;&amp;gt;&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style=&quot;COLOR: #066de2&quot;&gt;System&lt;/SPAN&gt;.&lt;SPAN style=&quot;COLOR: #066de2&quot;&gt;out&lt;/SPAN&gt;.&lt;SPAN style=&quot;COLOR: #066de2&quot;&gt;println&lt;/SPAN&gt;(x));&lt;/DIV&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style=&quot;COLOR: #999999&quot;&gt;//&amp;nbsp;datasource&amp;nbsp;종료&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dataSource.close();&lt;/DIV&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/DIV&gt;&lt;/DIV&gt;
&lt;DIV style=&quot;FONT-SIZE: 9px; FONT-STYLE: italic; TEXT-ALIGN: right; MARGIN-TOP: -13px; MARGIN-RIGHT: 5px&quot;&gt;&lt;A style=&quot;TEXT-DECORATION: none; COLOR: #e5e5e5&quot; href=&quot;http://colorscripter.com/info#e&quot; rel=noopener target=_blank&gt;Colored by Color Scripter&lt;/A&gt;&lt;/DIV&gt;&lt;/TD&gt;
&lt;TD style=&quot;HEIGHT: 417px; WIDTH: 10px; VERTICAL-ALIGN: bottom; PADDING-BOTTOM: 4px; PADDING-TOP: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 2px&quot;&gt;&lt;A style=&quot;TEXT-DECORATION: none&quot; href=&quot;http://colorscripter.com/info#e&quot; rel=noopener target=_blank&gt;&lt;SPAN style=&quot;FONT-SIZE: 9px; WORD-BREAK: normal; COLOR: white; PADDING-BOTTOM: 1px; PADDING-TOP: 1px; PADDING-LEFT: 1px; PADDING-RIGHT: 1px; BACKGROUND-COLOR: #e5e5e5; border-radius: 10px&quot;&gt;cs&lt;/SPAN&gt;&lt;/A&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;br /&gt;
&lt;SCRIPT src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot; async&gt;&lt;/SCRIPT&gt;
&lt;INS class=adsbygoogle style=&quot;TEXT-ALIGN: center; DISPLAY: block&quot; data-ad-slot=&quot;1510740417&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot;&gt;&lt;/INS&gt;
&lt;SCRIPT&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/SCRIPT&gt;
&lt;br /&gt;
&lt;SCRIPT&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/SCRIPT&gt;
&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;2# : BasicDataSource 생성&lt;/P&gt;
&lt;P&gt;4#~7# : DB 접속정보 셋팅&lt;/P&gt;
&lt;P&gt;10# : JdbcTemplate 에 DataSource 연결&lt;/P&gt;
&lt;P&gt;12# : 쿼리 실행&lt;/P&gt;
&lt;P&gt;14# : 쿼리 결과 출력&lt;/P&gt;
&lt;P&gt;17# : DataSource 종료&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;위에서 DataSource 연결 부분만 바꿔주면 매번 새로운 DB에 접속해서 쿼리를 실행할 수 있다.&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;&amp;nbsp;&lt;/P&gt;</description>
      <category>language/java</category>
      <author>CofS</author>
      <guid isPermaLink="true">https://cofs.tistory.com/384</guid>
      <comments>https://cofs.tistory.com/384#entry384comment</comments>
      <pubDate>Tue, 2 Apr 2019 09:36:42 +0900</pubDate>
    </item>
    <item>
      <title>Cron 크론 표현식 자동 생성 사이트 (자동완성)</title>
      <link>https://cofs.tistory.com/382</link>
      <description>&lt;div&gt;&lt;strong&gt;&lt;span style=&quot;FONT-SIZE: 18pt&quot;&gt;&lt;script async=&quot;&quot; src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display:block; text-align:center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;8108516233&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;&lt;span style=&quot;FONT-SIZE: 18pt&quot;&gt;Cron 크론 표현식 생성 사이트 (자동완성)&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;FONT-SIZE: 18pt&quot;&gt; &lt;/span&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Cron 표현방법은 스케줄링 (job) 을 실행할 때 자주 사용된다.&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;쿼츠(quartz) 에서도 활용이 가능하다.&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;br /&gt;
&lt;script src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot; async=&quot;&quot;&gt;&lt;/script&gt;
 &lt;ins class=&quot;adsbygoogle&quot; style=&quot;TEXT-ALIGN: center; DISPLAY: block&quot; data-ad-slot=&quot;1510740417&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-format=&quot;fluid&quot; data-ad-layout=&quot;in-article&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Job이란게 그렇더라...&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;/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;/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;table class=&quot;txc-table&quot; style=&quot;font-size: 13px; border-color: currentcolor; border-style: none; border-width: medium; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; border-collapse: collapse; width: 656px;&quot; width=&quot;656&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;border-color: rgb(204, 204, 204); border-style: solid; border-width: 1px; height: 24px; width: 655px; background-color: rgb(255, 216, 216);&quot;&gt;
&lt;p style=&quot;TEXT-ALIGN: center&quot;&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: center&quot;&gt;&lt;span style=&quot;FONT-SIZE: 12pt&quot;&gt;&lt;strong&gt;해당 사이트를 iframe 으로 본 포스팅에 사용하기 때문에&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: center&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: center&quot;&gt;&lt;span style=&quot;FONT-SIZE: 12pt&quot;&gt;&lt;strong&gt;브라우저에서 보이지 않을 수 있다.&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: center&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: center&quot;&gt;&lt;span style=&quot;FONT-SIZE: 12pt&quot;&gt;&lt;strong&gt;&lt;span style=&quot;FONT-SIZE: 12pt; COLOR: #ff0000&quot;&gt;본 블로그의 다른 글들을&lt;/span&gt;&lt;span style=&quot;FONT-SIZE: 12pt; COLOR: #ff0000&quot;&gt; 보면 알겠지만 절때 악의적인 스크립트는 절때 없습니다.&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: center&quot;&gt;&lt;strong&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr class=&quot;tx-hr-border-3&quot; style=&quot;BORDER-TOP: black 1px dotted; HEIGHT: 1px; BORDER-RIGHT: black 0px; BORDER-BOTTOM: black 0px; BORDER-LEFT: black 0px; DISPLAY: block&quot;&gt;

&lt;p style=&quot;TEXT-ALIGN: center&quot;&gt;&lt;strong&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: center&quot;&gt;&lt;strong&gt;&lt;span style=&quot;FONT-SIZE: 12pt&quot;&gt;익스플로러&lt;/span&gt;&lt;span style=&quot;FONT-SIZE: 12pt&quot;&gt;에서 보이지 않는다면 ?&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;strong&gt;
&lt;/strong&gt;&lt;p style=&quot;TEXT-ALIGN: center&quot;&gt;&lt;strong&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 700px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99C8FF335C9047E906&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99C8FF335C9047E906&quot; width=&quot;700&quot; height=&quot;36&quot; filename=&quot;2019-03-18 17;37;27.PNG&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: center; CLEAR: none&quot;&gt;&lt;strong&gt;모든 콘텐츠 표시 버튼 클릭&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: center; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr class=&quot;tx-hr-border-3&quot; style=&quot;BORDER-TOP: black 1px dotted; HEIGHT: 1px; BORDER-RIGHT: black 0px; BORDER-BOTTOM: black 0px; BORDER-LEFT: black 0px; DISPLAY: block&quot;&gt;

&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: center; CLEAR: none&quot;&gt;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: center; CLEAR: none&quot;&gt;&lt;strong&gt;&lt;span style=&quot;FONT-SIZE: 12pt&quot;&gt;크롬에서 보이지 않는다면 ?&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: center; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 286px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/9960B7335C9047EA09&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F9960B7335C9047EA09&quot; width=&quot;286&quot; height=&quot;102&quot; filename=&quot;2019-03-19 10;35;17.PNG&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: center; CLEAR: none&quot;&gt;&lt;strong&gt;브라우저 우측 상단에 방패모양 클릭&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: center; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: center; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 406px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/992922335C9047EA0B&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F992922335C9047EA0B&quot; width=&quot;406&quot; height=&quot;226&quot; filename=&quot;2019-03-19 10;35;24.PNG&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: center; CLEAR: none&quot;&gt;&lt;strong&gt;안전하지 않은 스크립트 로드&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&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&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;FONT-SIZE: 14pt&quot;&gt;사용방법&lt;/span&gt;&lt;/strong&gt; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;크론 표현법 생성은 &lt;strong&gt;Generate cron expression&lt;/strong&gt; 항목에서 반복될 스케줄 정보를 입력하고 &lt;strong&gt;Generate Cron Expression&lt;/strong&gt; 버튼을 클릭하면 된다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;그러면 &lt;strong&gt;Result&lt;/strong&gt; 항목에 크론 표현법이 출력된다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;더불어 &lt;strong&gt;Result&lt;/strong&gt; 항목에서 엑셀 아이콘 모양을 클릭하면 앞으로의 일정에 대해 txt로 다운받을 수 있다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;물론 시작일자를 수정해서 원하는 일정을 다운받을 수도 있고 &lt;strong&gt;Next scheduled&lt;/strong&gt; 항목을 조정해서 다운받을 일정항목을 늘릴 수도 있다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table class=&quot;txc-table&quot; style=&quot;FONT-SIZE: 13px; BORDER-TOP: medium none; FONT-FAMILY: '맑은 고딕',sans-serif; BORDER-RIGHT: medium none; BORDER-COLLAPSE: collapse; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none&quot; width=&quot;664&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;BORDER-TOP: #ccc 1px solid; HEIGHT: 24px; BORDER-RIGHT: #ccc 1px solid; WIDTH: 664px; BORDER-BOTTOM: #ccc 1px solid; TEXT-ALIGN: center; BORDER-LEFT: #ccc 1px solid; BACKGROUND-COLOR: #fae0d4&quot;&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;iframe src=&quot;http://www.cronmaker.com/&quot; width=&quot;600&quot; height=&quot;1000&quot;&gt;
&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&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&gt;끝&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>etc/Util</category>
      <author>CofS</author>
      <guid isPermaLink="true">https://cofs.tistory.com/382</guid>
      <comments>https://cofs.tistory.com/382#entry382comment</comments>
      <pubDate>Tue, 19 Mar 2019 10:29:10 +0900</pubDate>
    </item>
    <item>
      <title>Oracle Column PK FK 조회 쿼리</title>
      <link>https://cofs.tistory.com/381</link>
      <description>&lt;strong&gt;&lt;span style=&quot;font-size: 18pt;&quot;&gt;oracle column pk fk 조회&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-size: 18pt;&quot;&gt;
&lt;/span&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;oracle 에서 column 정보를 조회하는 방법이다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;필요한 경우가 많아서 기록해 둔다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;해당 쿼리에서는 column 명과 더불어 comments, pk, fk 여부 등 부가적인 정보도 조회한다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;해당 쿼리를 사용하기 위해서는 먼저 owner, table 명이 필요하다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;
&lt;script src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot; async=&quot;&quot;&gt;&lt;/script&gt;
 &lt;ins class=&quot;adsbygoogle&quot; style=&quot;text-align: center; display: block;&quot; data-ad-slot=&quot;1510740417&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-format=&quot;fluid&quot; data-ad-layout=&quot;in-article&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;쿼리&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&quot;colorscripter-code&quot; style='width: 700px; color: rgb(1, 1, 1); overflow: auto; font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace !important; position: relative !important;'&gt;
&lt;table class=&quot;colorscripter-code-table&quot; style=&quot;margin: 0px; padding: 0px; border-radius: 4px; border: currentColor; line-height: 140%; background-color: rgb(250, 250, 250);&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 6px; border-right-color: rgb(229, 229, 229); border-right-width: 2px; border-right-style: solid;&quot;&gt;
&lt;div style='margin: 0px; padding: 0px; text-align: right; color: rgb(102, 102, 102); font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace !important; -ms-word-break: normal;'&gt;
&lt;div&gt;1&lt;/div&gt;
&lt;div&gt;2&lt;/div&gt;
&lt;div&gt;3&lt;/div&gt;
&lt;div&gt;4&lt;/div&gt;
&lt;div&gt;5&lt;/div&gt;
&lt;div&gt;6&lt;/div&gt;
&lt;div&gt;7&lt;/div&gt;
&lt;div&gt;8&lt;/div&gt;
&lt;div&gt;9&lt;/div&gt;
&lt;div&gt;10&lt;/div&gt;
&lt;div&gt;11&lt;/div&gt;
&lt;div&gt;12&lt;/div&gt;
&lt;div&gt;13&lt;/div&gt;
&lt;div&gt;14&lt;/div&gt;
&lt;div&gt;15&lt;/div&gt;
&lt;div&gt;16&lt;/div&gt;
&lt;div&gt;17&lt;/div&gt;
&lt;div&gt;18&lt;/div&gt;
&lt;div&gt;19&lt;/div&gt;
&lt;div&gt;20&lt;/div&gt;
&lt;div&gt;21&lt;/div&gt;
&lt;div&gt;22&lt;/div&gt;
&lt;div&gt;23&lt;/div&gt;
&lt;div&gt;24&lt;/div&gt;
&lt;div&gt;25&lt;/div&gt;
&lt;div&gt;26&lt;/div&gt;
&lt;div&gt;27&lt;/div&gt;
&lt;div&gt;28&lt;/div&gt;
&lt;div&gt;29&lt;/div&gt;
&lt;div&gt;30&lt;/div&gt;
&lt;div&gt;31&lt;/div&gt;
&lt;div&gt;32&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
&lt;td style=&quot;padding: 6px 0px;&quot;&gt;
&lt;div style='margin: 0px; padding: 0px; color: rgb(1, 1, 1); font-family: Consolas, &quot;Liberation Mono&quot;, Menlo, Courier, monospace !important;'&gt;
&lt;div style=&quot;padding: 0px 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: rgb(255, 51, 153);&quot;&gt;SELECT&lt;/span&gt;&amp;nbsp;AA.COLUMN_ID,&lt;/div&gt;
&lt;div style=&quot;padding: 0px 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AA.COLUMN_NAME,&lt;/div&gt;
&lt;div style=&quot;padding: 0px 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BB.COMMENTS,&lt;/div&gt;
&lt;div style=&quot;padding: 0px 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AA.DATA_TYPE,&lt;/div&gt;
&lt;div style=&quot;padding: 0px 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AA.DATA_DEFAULT,&lt;/div&gt;
&lt;div style=&quot;padding: 0px 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CC.PK,&lt;/div&gt;
&lt;div style=&quot;padding: 0px 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AA.NULLABLE,&lt;/div&gt;
&lt;div style=&quot;padding: 0px 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CC.FK&lt;/div&gt;
&lt;div style=&quot;padding: 0px 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: rgb(255, 51, 153);&quot;&gt;FROM&lt;/span&gt;&amp;nbsp;ALL_TAB_COLUMNS@AIDP&amp;nbsp;AA,&lt;/div&gt;
&lt;div style=&quot;padding: 0px 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ALL_COL_COMMENTS@AIDP&amp;nbsp;BB,&lt;/div&gt;
&lt;div style=&quot;padding: 0px 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(&lt;span style=&quot;color: rgb(255, 51, 153);&quot;&gt;SELECT&lt;/span&gt;&amp;nbsp;A.OWNER,&lt;/div&gt;
&lt;div style=&quot;padding: 0px 6px; white-space: pre;&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;&amp;nbsp;A.TABLE_NAME,&lt;/div&gt;
&lt;div style=&quot;padding: 0px 6px; white-space: pre;&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;&amp;nbsp;A.CONSTRAINT_TYPE,&lt;/div&gt;
&lt;div style=&quot;padding: 0px 6px; white-space: pre;&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;&amp;nbsp;COLUMN_NAME,&lt;/div&gt;
&lt;div style=&quot;padding: 0px 6px; white-space: pre;&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;&amp;nbsp;POSITION,&lt;/div&gt;
&lt;div style=&quot;padding: 0px 6px; white-space: pre;&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;&amp;nbsp;CASE&amp;nbsp;WHEN&amp;nbsp;A.CONSTRAINT_TYPE&amp;nbsp;&lt;span style=&quot;color: rgb(0, 153, 204);&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(125, 161, 35);&quot;&gt;'P'&lt;/span&gt;&amp;nbsp;THEN&amp;nbsp;&lt;span style=&quot;color: rgb(125, 161, 35);&quot;&gt;'Y'&lt;/span&gt;&amp;nbsp;END&amp;nbsp;AS&amp;nbsp;PK,&lt;/div&gt;
&lt;div style=&quot;padding: 0px 6px; white-space: pre;&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;&amp;nbsp;CASE&amp;nbsp;WHEN&amp;nbsp;A.CONSTRAINT_TYPE&amp;nbsp;&lt;span style=&quot;color: rgb(0, 153, 204);&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(125, 161, 35);&quot;&gt;'R'&lt;/span&gt;&amp;nbsp;THEN&amp;nbsp;&lt;span style=&quot;color: rgb(125, 161, 35);&quot;&gt;'Y'&lt;/span&gt;&amp;nbsp;END&amp;nbsp;AS&amp;nbsp;FK&lt;/div&gt;
&lt;div style=&quot;padding: 0px 6px; white-space: pre;&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;&lt;span style=&quot;color: rgb(255, 51, 153);&quot;&gt;FROM&lt;/span&gt;&amp;nbsp;ALL_CONSTRAINTS@AIDP&amp;nbsp;A,&amp;nbsp;ALL_CONS_COLUMNS@AIDP&amp;nbsp;B&lt;/div&gt;
&lt;div style=&quot;padding: 0px 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: rgb(255, 51, 153);&quot;&gt;WHERE&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;UPPER&amp;nbsp;(A.OWNER)&amp;nbsp;&lt;span style=&quot;color: rgb(0, 153, 204);&quot;&gt;=&lt;/span&gt;&amp;nbsp;UPPER&amp;nbsp;(&lt;span style=&quot;color: rgb(125, 161, 35);&quot;&gt;'owner'&lt;/span&gt;)&lt;/div&gt;
&lt;div style=&quot;padding: 0px 6px; white-space: pre;&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;&amp;nbsp;AND&amp;nbsp;A.TABLE_NAME&amp;nbsp;&lt;span style=&quot;color: rgb(0, 153, 204);&quot;&gt;=&lt;/span&gt;&amp;nbsp;UPPER&amp;nbsp;(&lt;span style=&quot;color: rgb(125, 161, 35);&quot;&gt;'table_name'&lt;/span&gt;)&lt;/div&gt;
&lt;div style=&quot;padding: 0px 6px; white-space: pre;&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;&amp;nbsp;AND&amp;nbsp;A.TABLE_NAME&amp;nbsp;&lt;span style=&quot;color: rgb(0, 153, 204);&quot;&gt;=&lt;/span&gt;&amp;nbsp;B.TABLE_NAME&lt;/div&gt;
&lt;div style=&quot;padding: 0px 6px; white-space: pre;&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;&amp;nbsp;&amp;nbsp;AND&amp;nbsp;A.CONSTRAINT_NAME&amp;nbsp;&lt;span style=&quot;color: rgb(0, 153, 204);&quot;&gt;=&lt;/span&gt;&amp;nbsp;B.CONSTRAINT_NAME&lt;/div&gt;
&lt;div style=&quot;padding: 0px 6px; white-space: pre;&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;&amp;nbsp;AND&amp;nbsp;A.CONSTRAINT_TYPE&amp;nbsp;IN&amp;nbsp;(&lt;span style=&quot;color: rgb(125, 161, 35);&quot;&gt;'P'&lt;/span&gt;,&amp;nbsp;&lt;span style=&quot;color: rgb(125, 161, 35);&quot;&gt;'F'&lt;/span&gt;))&amp;nbsp;CC&lt;/div&gt;
&lt;div style=&quot;padding: 0px 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: rgb(255, 51, 153);&quot;&gt;WHERE&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;UPPER&amp;nbsp;(AA.OWNER)&amp;nbsp;&lt;span style=&quot;color: rgb(0, 153, 204);&quot;&gt;=&lt;/span&gt;&amp;nbsp;UPPER&amp;nbsp;(&lt;span style=&quot;color: rgb(125, 161, 35);&quot;&gt;'owner'&lt;/span&gt;)&lt;/div&gt;
&lt;div style=&quot;padding: 0px 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AND&amp;nbsp;UPPER&amp;nbsp;(AA.TABLE_NAME)&amp;nbsp;&lt;span style=&quot;color: rgb(0, 153, 204);&quot;&gt;=&lt;/span&gt;&amp;nbsp;UPPER&amp;nbsp;(&lt;span style=&quot;color: rgb(125, 161, 35);&quot;&gt;'table_name'&lt;/span&gt;)&lt;/div&gt;
&lt;div style=&quot;padding: 0px 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AND&amp;nbsp;AA.OWNER&amp;nbsp;&lt;span style=&quot;color: rgb(0, 153, 204);&quot;&gt;=&lt;/span&gt;&amp;nbsp;BB.OWNER&lt;/div&gt;
&lt;div style=&quot;padding: 0px 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AND&amp;nbsp;AA.TABLE_NAME&amp;nbsp;&lt;span style=&quot;color: rgb(0, 153, 204);&quot;&gt;=&lt;/span&gt;&amp;nbsp;BB.TABLE_NAME&lt;/div&gt;
&lt;div style=&quot;padding: 0px 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AND&amp;nbsp;AA.COLUMN_NAME&amp;nbsp;&lt;span style=&quot;color: rgb(0, 153, 204);&quot;&gt;=&lt;/span&gt;&amp;nbsp;BB.COLUMN_NAME&lt;/div&gt;
&lt;div style=&quot;padding: 0px 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AND&amp;nbsp;AA.OWNER&amp;nbsp;&lt;span style=&quot;color: rgb(0, 153, 204);&quot;&gt;=&lt;/span&gt;&amp;nbsp;CC.OWNER(&lt;span style=&quot;color: rgb(0, 153, 204);&quot;&gt;+&lt;/span&gt;)&lt;/div&gt;
&lt;div style=&quot;padding: 0px 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AND&amp;nbsp;AA.TABLE_NAME&amp;nbsp;&lt;span style=&quot;color: rgb(0, 153, 204);&quot;&gt;=&lt;/span&gt;&amp;nbsp;CC.TABLE_NAME(&lt;span style=&quot;color: rgb(0, 153, 204);&quot;&gt;+&lt;/span&gt;)&lt;/div&gt;
&lt;div style=&quot;padding: 0px 6px; white-space: pre;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AND&amp;nbsp;AA.COLUMN_NAME&amp;nbsp;&lt;span style=&quot;color: rgb(0, 153, 204);&quot;&gt;=&lt;/span&gt;&amp;nbsp;CC.COLUMN_NAME(&lt;span style=&quot;color: rgb(0, 153, 204);&quot;&gt;+&lt;/span&gt;)&lt;/div&gt;
&lt;div style=&quot;padding: 0px 6px; white-space: pre;&quot;&gt;&lt;span style=&quot;color: rgb(255, 51, 153);&quot;&gt;ORDER&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(255, 51, 153);&quot;&gt;BY&lt;/span&gt;&amp;nbsp;COLUMN_ID&lt;/div&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: right; font-size: 9px; font-style: italic; margin-top: -13px; margin-right: 5px;&quot;&gt;&lt;a style=&quot;color: rgb(229, 229, 229); text-decoration: none;&quot; href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot;&gt;Colored by Color Scripter&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;
&lt;td style=&quot;padding: 0px 2px 4px 0px; vertical-align: bottom;&quot;&gt;&lt;a style=&quot;text-decoration: none;&quot; href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;padding: 1px; border-radius: 10px; color: white; font-size: 9px; -ms-word-break: normal; background-color: rgb(229, 229, 229);&quot;&gt;cs&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;br /&gt;
&lt;script src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot; async=&quot;&quot;&gt;&lt;/script&gt;
&lt;ins class=&quot;adsbygoogle&quot; style=&quot;text-align: center; display: block;&quot; data-ad-slot=&quot;3295854551&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-format=&quot;fluid&quot; data-ad-layout=&quot;in-article&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;결과&lt;/strong&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 700px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99ED20455C8F59522A&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99ED20455C8F59522A&quot; width=&quot;700&quot; height=&quot;156&quot; filename=&quot;2019-03-18 17;37;27.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;column_id : 컬럼 ID&lt;/p&gt;&lt;p&gt;column_name :&amp;nbsp; 컬럼명&lt;/p&gt;&lt;p&gt;comments : 코멘트&lt;/p&gt;&lt;p&gt;data_type : 컬럼 데이터 타입&lt;/p&gt;&lt;p&gt;data_default : 컬럼 기본값&lt;/p&gt;&lt;p&gt;pk : pk 여부 (Y or N)&lt;/p&gt;&lt;p&gt;nullable : null 가능 여부&lt;/p&gt;&lt;p&gt;fk : fk 여부 (Y or N)&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;&amp;nbsp;&lt;/p&gt;</description>
      <category>database/oracle</category>
      <author>CofS</author>
      <guid isPermaLink="true">https://cofs.tistory.com/381</guid>
      <comments>https://cofs.tistory.com/381#entry381comment</comments>
      <pubDate>Mon, 18 Mar 2019 18:32:16 +0900</pubDate>
    </item>
    <item>
      <title>org.apache.catalina.connector.ClientAbortException: java.io.IOException: Connection reset by peer 원인</title>
      <link>https://cofs.tistory.com/380</link>
      <description>&lt;p&gt;&amp;nbsp;&lt;script async=&quot;&quot; src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display:block; text-align:center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;8108516233&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;FONT-SIZE: 12pt&quot;&gt;org.apache.catalina.connector.ClientAbortException: java.io.IOException: Connection reset by peer 원인&lt;/span&gt;&lt;/strong&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;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table class=&quot;txc-table&quot; style=&quot;FONT-SIZE: 13px; BORDER-TOP: medium none; FONT-FAMILY: '맑은 고딕',sans-serif; BORDER-RIGHT: medium none; BORDER-COLLAPSE: collapse; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none&quot; width=&quot;664&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;BORDER-TOP: #ccc 1px solid; HEIGHT: 24px; BORDER-RIGHT: #ccc 1px solid; WIDTH: 664px; BORDER-BOTTOM: #ccc 1px solid; BORDER-LEFT: #ccc 1px solid; BACKGROUND-COLOR: #eaeaea&quot;&gt;
&lt;p style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;MARGIN-LEFT: 2em&quot;&gt;org.apache.catalina.connector.ClientAbortException: java.io.IOException: Connection reset by peer&lt;br /&gt;&amp;nbsp;at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:321)&lt;br /&gt;&amp;nbsp;at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:284)&lt;br /&gt;&amp;nbsp;at org.apache.catalina.connector.CoyoteOutputStream.flush(CoyoteOutputStream.java:118)&lt;br /&gt;&amp;nbsp;at com.fasterxml.jackson.core.json.UTF8JsonGenerator.flush(UTF8JsonGenerator.java:1043)&lt;br /&gt;&amp;nbsp;at com.fasterxml.jackson.databind.ObjectMapper.writeValue(ObjectMapper.java:2244)&lt;br /&gt;&amp;nbsp;at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:231)&lt;br /&gt;&amp;nbsp;at org.springframework.http.converter.AbstractHttpMessageConverter.write(AbstractHttpMessageConverter.java:208)&lt;br /&gt;&amp;nbsp;at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:161)&lt;br /&gt;&amp;nbsp;at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:101)&lt;br /&gt;&amp;nbsp;at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:202)&lt;br /&gt;&amp;nbsp;at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:71)&lt;br /&gt;&amp;nbsp;at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:126)&lt;br /&gt;&amp;nbsp;at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:777)&lt;br /&gt;&amp;nbsp;at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:706)&lt;br /&gt;&amp;nbsp;at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)&lt;br /&gt;&amp;nbsp;at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:943)&lt;br /&gt;&amp;nbsp;at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:877)&lt;br /&gt;&amp;nbsp;at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966)&lt;br /&gt;&amp;nbsp;at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:868)&lt;br /&gt;&amp;nbsp;at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)&lt;br /&gt;&amp;nbsp;at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842)&lt;br /&gt;&amp;nbsp;at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)&lt;br /&gt;&amp;nbsp;at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)&lt;br /&gt;&amp;nbsp;at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)&lt;br /&gt;&amp;nbsp;at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)&lt;br /&gt;&amp;nbsp;at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)&lt;br /&gt;&amp;nbsp;at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)&lt;br /&gt;&amp;nbsp;at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)&lt;br /&gt;&amp;nbsp;at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)&lt;br /&gt;&amp;nbsp;at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)&lt;br /&gt;&amp;nbsp;at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)&lt;br /&gt;&amp;nbsp;at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)&lt;br /&gt;&amp;nbsp;at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)&lt;br /&gt;&amp;nbsp;at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)&lt;br /&gt;&amp;nbsp;at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)&lt;br /&gt;&amp;nbsp;at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)&lt;br /&gt;&amp;nbsp;at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:496)&lt;br /&gt;&amp;nbsp;at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)&lt;br /&gt;&amp;nbsp;at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)&lt;br /&gt;&amp;nbsp;at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)&lt;br /&gt;&amp;nbsp;at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)&lt;br /&gt;&amp;nbsp;at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)&lt;br /&gt;&amp;nbsp;at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)&lt;br /&gt;&amp;nbsp;at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)&lt;br /&gt;&amp;nbsp;at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790)&lt;br /&gt;&amp;nbsp;at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)&lt;br /&gt;&amp;nbsp;at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)&lt;br /&gt;&amp;nbsp;at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)&lt;br /&gt;&amp;nbsp;at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)&lt;br /&gt;&amp;nbsp;at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)&lt;br /&gt;&amp;nbsp;at java.lang.Thread.run(Thread.java:748)&lt;br /&gt;Caused by: java.io.IOException: Connection reset by peer&lt;br /&gt;&amp;nbsp;at sun.nio.ch.FileDispatcherImpl.write0(Native Method)&lt;br /&gt;&amp;nbsp;at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47)&lt;br /&gt;&amp;nbsp;at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)&lt;br /&gt;&amp;nbsp;at sun.nio.ch.IOUtil.write(IOUtil.java:65)&lt;br /&gt;&amp;nbsp;at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:471)&lt;br /&gt;&amp;nbsp;at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:134)&lt;br /&gt;&amp;nbsp;at org.apache.tomcat.util.net.NioBlockingSelector.write(NioBlockingSelector.java:101)&lt;br /&gt;&amp;nbsp;at org.apache.tomcat.util.net.NioSelectorPool.write(NioSelectorPool.java:157)&lt;br /&gt;&amp;nbsp;at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1267)&lt;br /&gt;&amp;nbsp;at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:670)&lt;br /&gt;&amp;nbsp;at org.apache.tomcat.util.net.SocketWrapperBase.flushBlocking(SocketWrapperBase.java:607)&lt;br /&gt;&amp;nbsp;at org.apache.tomcat.util.net.SocketWrapperBase.flush(SocketWrapperBase.java:597)&lt;br /&gt;&amp;nbsp;at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.flush(Http11OutputBuffer.java:646)&lt;br /&gt;&amp;nbsp;at org.apache.coyote.http11.filters.ChunkedOutputFilter.flush(ChunkedOutputFilter.java:169)&lt;br /&gt;&amp;nbsp;at org.apache.coyote.http11.Http11OutputBuffer.flush(Http11OutputBuffer.java:252)&lt;br /&gt;&amp;nbsp;at org.apache.coyote.http11.Http11Processor.flush(Http11Processor.java:1560)&lt;br /&gt;&amp;nbsp;at org.apache.coyote.AbstractProcessor.action(AbstractProcessor.java:285)&lt;br /&gt;&amp;nbsp;at org.apache.coyote.Response.action(Response.java:173)&lt;br /&gt;&amp;nbsp;at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:317)&lt;br /&gt;&amp;nbsp;... 51 more&lt;br /&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&gt;&lt;br /&gt;
&lt;script src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot; async=&quot;&quot;&gt;&lt;/script&gt;
&lt;ins class=&quot;adsbygoogle&quot; style=&quot;TEXT-ALIGN: center; DISPLAY: block&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;1510740417&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;먼저&amp;nbsp;org.apache.catalina.connector.ClientAbortException 에 대해서 살펴보자&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: center; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 700px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99885F3A5C8224B229&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99885F3A5C8224B229&quot; width=&quot;700&quot; height=&quot;404&quot; filename=&quot;2019-03-08 17;14;01.PNG&quot; filemime=&quot;image/jpeg&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;TEXT-ALIGN: right&quot;&gt;출처 : &lt;strong&gt;&lt;/strong&gt;&lt;a class=&quot;tx-link&quot; href=&quot;https://tomcat.apache.org/&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;&lt;span style=&quot;COLOR: #0055ff&quot;&gt;아파치 톰켓&lt;/span&gt;&lt;/strong&gt;&lt;/a&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;즉&amp;nbsp;어플리케이션에서 발생하는 오류가 아니다.&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;내가 해석한게 맞다면 클라이언트의 요청을 톰켓이&amp;nbsp;처리하는데 어디선가 연결이 끊으져서 발생하는 경우가 있는것 같다.&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;/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;그래서 exception handler를 만들고&amp;nbsp;오류가 발생할 때의&amp;nbsp;request 의 url 을 로그로 남겼더니 쉽게 찾을 수 있었다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
&lt;script src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot; async=&quot;&quot;&gt;&lt;/script&gt;
&lt;ins class=&quot;adsbygoogle&quot; style=&quot;TEXT-ALIGN: center; DISPLAY: block&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;3295854551&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;특정 페이지에&amp;nbsp;출력하는 데이터중에 한 녀석이 조회하는데 시간이&amp;nbsp;꽤 걸리는 녀석이여서&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;특정 데이터를 비동기로 로딩했기 때문에 화면을 사용하는데는 문제가 없었는데&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;
&lt;p&gt;정리하자면 jsp 에서 ajax로 통신하는데 통신이 끝나기도 전에 다른페이지로 이동하는 경우가 발생했고 그럴때마다 위와 같은 오류가 발생한 것으로 파악됬다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;클라이언트의 요청을 톰켓이 받고서 다시 클라이언트에게 전해줘야 하는데 이때&amp;nbsp;요청한 즉&amp;nbsp;톰켓이 전달해 줄&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;
&lt;p&gt;원인은 찾았으니 해결방법을 고민해야겠다.&lt;/p&gt;</description>
      <category>etc/error</category>
      <author>CofS</author>
      <guid isPermaLink="true">https://cofs.tistory.com/380</guid>
      <comments>https://cofs.tistory.com/380#entry380comment</comments>
      <pubDate>Fri, 8 Mar 2019 17:28:13 +0900</pubDate>
    </item>
    <item>
      <title>Linux 여러 대 서버에 ssh 접근 후 shell 파일 실행하기</title>
      <link>https://cofs.tistory.com/379</link>
      <description>&lt;P&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-SIZE: 18pt&quot;&gt;Linux 여러 대 서버에 ssh 접근 후 shell 파일 실행하기&lt;/SPAN&gt;&lt;/STRONG&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;여러대의 vm 서버에 동시에 명령어를 날려야 하는 경우가 생겼다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;해당 서버들의 ip 를 목록으로 만들고 반복문으로 ssh 를 접근해서 명령어를 실행하면 되지 않을까 싶어 소스를 만들어보았다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV class=colorscripter-code style=&quot;OVERFLOW: auto; FONT-FAMILY: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; WIDTH: 600px; POSITION: relative !important; COLOR: #010101&quot;&gt;
&lt;TABLE class=colorscripter-code-table style=&quot;BORDER-TOP: medium none; BORDER-RIGHT: medium none; BORDER-BOTTOM: medium none; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; BORDER-LEFT: medium none; LINE-HEIGHT: 140%; PADDING-RIGHT: 0px; BACKGROUND-COLOR: #fafafa; border-radius: 4px&quot; cellSpacing=0 cellPadding=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-RIGHT: #e5e5e5 2px solid; PADDING-BOTTOM: 6px; PADDING-TOP: 6px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;
&lt;DIV style=&quot;FONT-FAMILY: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; WORD-BREAK: normal; COLOR: #666; PADDING-BOTTOM: 0px; TEXT-ALIGN: right; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; PADDING-RIGHT: 0px&quot;&gt;
&lt;DIV&gt;1&lt;/DIV&gt;
&lt;DIV&gt;2&lt;/DIV&gt;
&lt;DIV&gt;3&lt;/DIV&gt;
&lt;DIV&gt;4&lt;/DIV&gt;
&lt;DIV&gt;5&lt;/DIV&gt;
&lt;DIV&gt;6&lt;/DIV&gt;
&lt;DIV&gt;7&lt;/DIV&gt;&lt;/DIV&gt;&lt;/TD&gt;
&lt;TD style=&quot;PADDING-BOTTOM: 6px; PADDING-TOP: 6px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px&quot;&gt;
&lt;DIV style=&quot;FONT-FAMILY: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; COLOR: #010101; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; PADDING-RIGHT: 0px&quot;&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;IP_LIST&lt;SPAN style=&quot;COLOR: #0086b3&quot;&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;=&lt;/SPAN&gt;(&lt;SPAN style=&quot;COLOR: #63a35c&quot;&gt;&quot;10.10.10.1&quot;&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style=&quot;COLOR: #63a35c&quot;&gt;&quot;10.10.10.2&quot;&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style=&quot;COLOR: #63a35c&quot;&gt;&quot;10.10.10.3&quot;&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style=&quot;COLOR: #63a35c&quot;&gt;&quot;10.10.10.4&quot;&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style=&quot;COLOR: #63a35c&quot;&gt;&quot;10.10.10.5&quot;&lt;/SPAN&gt;)&lt;/DIV&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;for&lt;/SPAN&gt;&amp;nbsp;VALUE&amp;nbsp;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;in&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style=&quot;COLOR: #63a35c&quot;&gt;&quot;${IP_LIST[@]}&quot;&lt;/SPAN&gt;;&amp;nbsp;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;do&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ssh&amp;nbsp;&lt;SPAN style=&quot;COLOR: #0086b3&quot;&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;-&lt;/SPAN&gt;p&amp;nbsp;&lt;SPAN style=&quot;COLOR: #0099cc&quot;&gt;22&amp;nbsp;&lt;/SPAN&gt;centos@$VALUE&amp;nbsp;&lt;SPAN style=&quot;COLOR: #0086b3&quot;&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #0086b3&quot;&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;&amp;lt;&lt;/SPAN&gt;EOF&lt;/DIV&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sh&amp;nbsp;&lt;SPAN style=&quot;COLOR: #0086b3&quot;&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;&amp;lt;&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style=&quot;COLOR: #0086b3&quot;&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;/&lt;/SPAN&gt;temp.sh&lt;/DIV&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;EOF&lt;/DIV&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;done&lt;/DIV&gt;&lt;/DIV&gt;
&lt;DIV style=&quot;FONT-SIZE: 9px; FONT-STYLE: italic; TEXT-ALIGN: right; MARGIN-TOP: -13px; MARGIN-RIGHT: 5px&quot;&gt;&lt;A style=&quot;TEXT-DECORATION: none; COLOR: #e5e5e5&quot; href=&quot;http://colorscripter.com/info#e&quot; target=_blank&gt;Colored by Color Scripter&lt;/A&gt;&lt;/DIV&gt;&lt;/TD&gt;
&lt;TD style=&quot;VERTICAL-ALIGN: bottom; PADDING-BOTTOM: 4px; PADDING-TOP: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 2px&quot;&gt;&lt;A style=&quot;TEXT-DECORATION: none&quot; href=&quot;http://colorscripter.com/info#e&quot; target=_blank&gt;&lt;SPAN style=&quot;FONT-SIZE: 9px; WORD-BREAK: normal; COLOR: white; PADDING-BOTTOM: 1px; PADDING-TOP: 1px; PADDING-LEFT: 1px; PADDING-RIGHT: 1px; BACKGROUND-COLOR: #e5e5e5; border-radius: 10px&quot;&gt;cs&lt;/SPAN&gt;&lt;/A&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;
&lt;P&gt;1# : 접근해야 하는 IP 목록&lt;/P&gt;
&lt;P&gt;3# : IP 목록으로 반복문 실행&lt;/P&gt;
&lt;P&gt;4# : 해당 IP로 ssh 접근&lt;/P&gt;
&lt;P&gt;5# : 접근 후 sh 파일 실행&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;br /&gt;
&lt;SCRIPT src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot; async&gt;&lt;/SCRIPT&gt;
&lt;INS class=adsbygoogle style=&quot;TEXT-ALIGN: center; DISPLAY: block&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;1510740417&quot;&gt;&lt;/INS&gt;
&lt;SCRIPT&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/SCRIPT&gt;
&lt;br /&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;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;위 반복문은 ssh 접근 후 temp.sh 파일의 실행이 끝날때 까지 대기 하고 끝나면 다음 서버에 접근하게 된다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;temp.sh 파일을 실행할 때 백그라운드에서 실행시킬 필요가 있다.&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;DIV class=colorscripter-code style=&quot;OVERFLOW: auto; FONT-FAMILY: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; WIDTH: 600px; POSITION: relative !important; COLOR: #010101&quot;&gt;
&lt;TABLE class=colorscripter-code-table style=&quot;BORDER-TOP: medium none; BORDER-RIGHT: medium none; BORDER-BOTTOM: medium none; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; BORDER-LEFT: medium none; LINE-HEIGHT: 140%; PADDING-RIGHT: 0px; BACKGROUND-COLOR: #fafafa; border-radius: 4px&quot; cellSpacing=0 cellPadding=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-RIGHT: #e5e5e5 2px solid; PADDING-BOTTOM: 6px; PADDING-TOP: 6px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;
&lt;DIV style=&quot;FONT-FAMILY: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; WORD-BREAK: normal; COLOR: #666; PADDING-BOTTOM: 0px; TEXT-ALIGN: right; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; PADDING-RIGHT: 0px&quot;&gt;
&lt;DIV&gt;1&lt;/DIV&gt;
&lt;DIV&gt;2&lt;/DIV&gt;
&lt;DIV&gt;3&lt;/DIV&gt;
&lt;DIV&gt;4&lt;/DIV&gt;
&lt;DIV&gt;5&lt;/DIV&gt;
&lt;DIV&gt;6&lt;/DIV&gt;
&lt;DIV&gt;7&lt;/DIV&gt;&lt;/DIV&gt;&lt;/TD&gt;
&lt;TD style=&quot;PADDING-BOTTOM: 6px; PADDING-TOP: 6px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px&quot;&gt;
&lt;DIV style=&quot;FONT-FAMILY: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; COLOR: #010101; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; PADDING-RIGHT: 0px&quot;&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;IP_LIST&lt;SPAN style=&quot;COLOR: #0086b3&quot;&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;=&lt;/SPAN&gt;(&lt;SPAN style=&quot;COLOR: #63a35c&quot;&gt;&quot;10.10.10.1&quot;&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style=&quot;COLOR: #63a35c&quot;&gt;&quot;10.10.10.2&quot;&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style=&quot;COLOR: #63a35c&quot;&gt;&quot;10.10.10.3&quot;&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style=&quot;COLOR: #63a35c&quot;&gt;&quot;10.10.10.4&quot;&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style=&quot;COLOR: #63a35c&quot;&gt;&quot;10.10.10.5&quot;&lt;/SPAN&gt;)&lt;/DIV&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;for&lt;/SPAN&gt;&amp;nbsp;VALUE&amp;nbsp;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;in&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style=&quot;COLOR: #63a35c&quot;&gt;&quot;${IP_LIST[@]}&quot;&lt;/SPAN&gt;;&amp;nbsp;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;do&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ssh&amp;nbsp;&lt;SPAN style=&quot;COLOR: #0086b3&quot;&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;-&lt;/SPAN&gt;p&amp;nbsp;&lt;SPAN style=&quot;COLOR: #0099cc&quot;&gt;22&amp;nbsp;&lt;/SPAN&gt;centos@$VALUE&amp;nbsp;&lt;SPAN style=&quot;COLOR: #0086b3&quot;&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #0086b3&quot;&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;&amp;lt;&lt;/SPAN&gt;EOF&lt;/DIV&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;nohup&amp;nbsp;sh&amp;nbsp;&lt;SPAN style=&quot;COLOR: #0086b3&quot;&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;&amp;lt;&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style=&quot;COLOR: #0086b3&quot;&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;/&lt;/SPAN&gt;temp.sh&amp;nbsp;&lt;SPAN style=&quot;COLOR: #0086b3&quot;&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;&amp;gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #0086b3&quot;&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;&amp;gt;&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style=&quot;COLOR: #63a35c&quot;&gt;'/temp.log'&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style=&quot;COLOR: #0086b3&quot;&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;&amp;amp;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;EOF&lt;/DIV&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;done&lt;/DIV&gt;&lt;/DIV&gt;
&lt;DIV style=&quot;FONT-SIZE: 9px; FONT-STYLE: italic; TEXT-ALIGN: right; MARGIN-TOP: -13px; MARGIN-RIGHT: 5px&quot;&gt;&lt;A style=&quot;TEXT-DECORATION: none; COLOR: #e5e5e5&quot; href=&quot;http://colorscripter.com/info#e&quot; target=_blank&gt;Colored by Color Scripter&lt;/A&gt;&lt;/DIV&gt;&lt;/TD&gt;
&lt;TD style=&quot;VERTICAL-ALIGN: bottom; PADDING-BOTTOM: 4px; PADDING-TOP: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 2px&quot;&gt;&lt;A style=&quot;TEXT-DECORATION: none&quot; href=&quot;http://colorscripter.com/info#e&quot; target=_blank&gt;&lt;SPAN style=&quot;FONT-SIZE: 9px; WORD-BREAK: normal; COLOR: white; PADDING-BOTTOM: 1px; PADDING-TOP: 1px; PADDING-LEFT: 1px; PADDING-RIGHT: 1px; BACKGROUND-COLOR: #e5e5e5; border-radius: 10px&quot;&gt;cs&lt;/SPAN&gt;&lt;/A&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;
&lt;P&gt;5# 처럼 nohup 명령어를 사용해서 사용자가 로그아웃 되더라도 프로세스가 백그라운드에서 실행하도록 해야 한다.&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;br /&gt;
&lt;SCRIPT src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot; async&gt;&lt;/SCRIPT&gt;
&lt;INS class=adsbygoogle style=&quot;TEXT-ALIGN: center; DISPLAY: block&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;3295854551&quot;&gt;&lt;/INS&gt;
&lt;SCRIPT&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/SCRIPT&gt;
&lt;br /&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;gt; (꺽쇠) 가 하나아면 계속 덮어쓰고 &amp;gt;&amp;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;&amp;nbsp;&lt;/P&gt;</description>
      <category>OS/Linux</category>
      <author>CofS</author>
      <guid isPermaLink="true">https://cofs.tistory.com/379</guid>
      <comments>https://cofs.tistory.com/379#entry379comment</comments>
      <pubDate>Fri, 22 Feb 2019 11:13:40 +0900</pubDate>
    </item>
    <item>
      <title>Linux SSH Are you sure you want to continue connecting (yes/no)? 제거</title>
      <link>https://cofs.tistory.com/378</link>
      <description>&lt;P&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-SIZE: 14pt&quot;&gt;Linux SSH Are you sure you want to continue connecting (yes/no)?&lt;/SPAN&gt; &lt;SPAN style=&quot;FONT-SIZE: 14pt&quot;&gt;제거&lt;/SPAN&gt;&lt;/STRONG&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;ssh 접근을 할 때 최초에 다음과 같은 메시지가 나올 때가 있다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE class=txc-table style=&quot;FONT-SIZE: 13px; BORDER-TOP: medium none; FONT-FAMILY: '맑은 고딕',sans-serif; BORDER-RIGHT: medium none; BORDER-COLLAPSE: collapse; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none&quot; cellSpacing=0 cellPadding=0 width=664 border=0&gt;
&lt;TBODY&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE class=txc-table style=&quot;FONT-SIZE: 13px; BORDER-TOP: medium none; FONT-FAMILY: '맑은 고딕',sans-serif; BORDER-RIGHT: medium none; BORDER-COLLAPSE: collapse; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none&quot; cellSpacing=0 cellPadding=0 width=664 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-TOP: #ccc 1px solid; HEIGHT: 24px; BORDER-RIGHT: #ccc 1px solid; WIDTH: 664px; BORDER-BOTTOM: #ccc 1px solid; BORDER-LEFT: #ccc 1px solid; BACKGROUND-COLOR: #ffd8d8&quot;&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;[root centos]# ssh -p 22 centos@10.10.10.10&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;The authenticity of host '10.10.10.10 (10.10.10.10)' can't be established.&lt;br /&gt;ECDSA key fingerprint is SHA256:6xndMjB2U0R0dkWBF15dXaE4wBdg4WPlHHCsQjW8bW4.&lt;br /&gt;ECDSA key fingerprint is MD5:a1:d3:10:6a:b8:53:78:dc.&lt;br /&gt;Are you sure you want to continue connecting (yes/no)?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&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&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;보안 때문에 접속하는 곳이 맞는지 재확인하는 절차인듯 싶다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;또한 최초 한번 yes 입력으로 접근하면 그 다음 접근부터는 물어보지 않는다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;그런데 필자는 ssh 를 쉘파일에서 여러 서버들에 접근해서 명령을 실행해야 하는 상황이라 이 메시지를 없애야 했다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;br /&gt;
&lt;SCRIPT src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot; async&gt;&lt;/SCRIPT&gt;
&lt;INS class=adsbygoogle style=&quot;TEXT-ALIGN: center; DISPLAY: block&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;3295854551&quot;&gt;&lt;/INS&gt;
&lt;SCRIPT&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/SCRIPT&gt;
&lt;br /&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;StrictHostKeyChecking=no 옵션으로 제거가 가능하다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE class=txc-table style=&quot;FONT-SIZE: 13px; BORDER-TOP: medium none; FONT-FAMILY: '맑은 고딕',sans-serif; BORDER-RIGHT: medium none; BORDER-COLLAPSE: collapse; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none&quot; cellSpacing=0 cellPadding=0 width=664 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-TOP: #ccc 1px solid; HEIGHT: 24px; BORDER-RIGHT: #ccc 1px solid; WIDTH: 664px; BORDER-BOTTOM: #ccc 1px solid; BORDER-LEFT: #ccc 1px solid; BACKGROUND-COLOR: #ffd8d8&quot;&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;[root centos]# ssh -o StrictHostKeyChecking=no&amp;nbsp;-p 22 centos@10.10.10.10&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&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&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&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;</description>
      <category>OS/Linux</category>
      <author>CofS</author>
      <guid isPermaLink="true">https://cofs.tistory.com/378</guid>
      <comments>https://cofs.tistory.com/378#entry378comment</comments>
      <pubDate>Fri, 22 Feb 2019 11:00:26 +0900</pubDate>
    </item>
    <item>
      <title>Linux Permission denied (publickey,gssapi-keyex,gssapi-with-mic) 해결 방법</title>
      <link>https://cofs.tistory.com/377</link>
      <description>&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;FONT-SIZE: 14pt&quot;&gt;&lt;script async=&quot;&quot; src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display:block; text-align:center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;8108516233&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;FONT-SIZE: 14pt&quot;&gt;Linux Permission denied (publickey,gssapi-keyex,gssapi-with-mic) 해결 방법&lt;/span&gt;&lt;/strong&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;ssh 로그인 시 다음과 같은 메시지가 나올 경우가 있다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table class=&quot;txc-table&quot; style=&quot;FONT-SIZE: 13px; BORDER-TOP: medium none; FONT-FAMILY: '맑은 고딕',sans-serif; BORDER-RIGHT: medium none; BORDER-COLLAPSE: collapse; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none&quot; width=&quot;664&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;BORDER-TOP: #ccc 1px solid; HEIGHT: 89px; BORDER-RIGHT: #ccc 1px solid; WIDTH: 664px; BORDER-BOTTOM: #ccc 1px solid; BORDER-LEFT: #ccc 1px solid; BACKGROUND-COLOR: #ffd8d8&quot;&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [root centos]# ssh -p 22 centos@10.10.10.10&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Permission denied (publickey,gssapi-keyex,gssapi-with-mic).&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [root centos]# &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&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&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;권한이 없다는 메시지와 함께 publickey 를 비롯해서 무슨 key 를 찾는것 같다.&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;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
&lt;table class=&quot;txc-table&quot; style=&quot;FONT-SIZE: 13px; BORDER-TOP: medium none; FONT-FAMILY: '맑은 고딕',sans-serif; BORDER-RIGHT: medium none; BORDER-COLLAPSE: collapse; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none&quot; width=&quot;664&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;BORDER-TOP: #ccc 1px solid; HEIGHT: 89px; BORDER-RIGHT: #ccc 1px solid; WIDTH: 664px; BORDER-BOTTOM: #ccc 1px solid; BORDER-LEFT: #ccc 1px solid; BACKGROUND-COLOR: #ffd8d8&quot;&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [root centos]# ssh -p 22 centos@10.10.10.10 -v&lt;/p&gt;
&lt;p style=&quot;MARGIN-LEFT: 2em&quot;&gt;OpenSSH_7.4p1, OpenSSL 1.0.2k-fips&amp;nbsp; 26 Jan 2017&lt;br /&gt;debug1: Reading configuration data /etc/ssh/ssh_config&lt;br /&gt;debug1: /etc/ssh/ssh_config line 58: Applying options for *&lt;br /&gt;debug1: Connecting to 10.10.10.10 [10.10.10.10] port 22.&lt;br /&gt;debug1: Connection established.&lt;br /&gt;debug1: permanently_set_uid: 0/0&lt;br /&gt;debug1: key_load_public: No such file or directory&lt;br /&gt;debug1: identity file /root/.ssh/id_rsa type -1&lt;br /&gt;debug1: key_load_public: No such file or directory&lt;br /&gt;debug1: identity file /root/.ssh/id_rsa-cert type -1&lt;br /&gt;debug1: key_load_public: No such file or directory&lt;br /&gt;debug1: identity file /root/.ssh/id_dsa type -1&lt;br /&gt;debug1: key_load_public: No such file or directory&lt;br /&gt;debug1: identity file /root/.ssh/id_dsa-cert type -1&lt;br /&gt;debug1: key_load_public: No such file or directory&lt;br /&gt;debug1: identity file /root/.ssh/id_ecdsa type -1&lt;br /&gt;debug1: key_load_public: No such file or directory&lt;br /&gt;debug1: identity file /root/.ssh/id_ecdsa-cert type -1&lt;br /&gt;debug1: key_load_public: No such file or directory&lt;br /&gt;debug1: identity file /root/.ssh/id_ed25519 type -1&lt;br /&gt;debug1: key_load_public: No such file or directory&lt;br /&gt;debug1: identity file /root/.ssh/id_ed25519-cert type -1&lt;br /&gt;debug1: Enabling compatibility mode for protocol 2.0&lt;br /&gt;debug1: Local version string SSH-2.0-OpenSSH_7.4&lt;br /&gt;debug1: Remote protocol version 2.0, remote software version OpenSSH_7.4&lt;br /&gt;debug1: match: OpenSSH_7.4 pat OpenSSH* compat 0x04000000&lt;br /&gt;debug1: Authenticating to 10.10.50.4:22 as 'centos'&lt;br /&gt;debug1: SSH2_MSG_KEXINIT sent&lt;br /&gt;debug1: SSH2_MSG_KEXINIT received&lt;br /&gt;debug1: kex: algorithm: curve25519-sha256&lt;br /&gt;debug1: kex: host key algorithm: ecdsa-sha2-nistp256&lt;br /&gt;debug1: kex: server-&amp;gt;client cipher: chacha20-poly1305@openssh.com MAC: &amp;lt;implicit&amp;gt; compression: none&lt;br /&gt;debug1: kex: client-&amp;gt;server cipher: chacha20-poly1305@openssh.com MAC: &amp;lt;implicit&amp;gt; compression: none&lt;br /&gt;debug1: kex: curve25519-sha256 need=64 dh_need=64&lt;br /&gt;debug1: kex: curve25519-sha256 need=64 dh_need=64&lt;br /&gt;debug1: expecting SSH2_MSG_KEX_ECDH_REPLY&lt;br /&gt;debug1: Server host key: ecdsa-sha2-nistp256 SHA256:6xnMjBU0dR0kWB1F15dXsaE4wBdg4wlRWaPlHHCsQjW8bW4&lt;br /&gt;debug1: Host '10.10.50.4' is known and matches the ECDSA host key.&lt;br /&gt;debug1: Found key in /root/.ssh/known_hosts:3&lt;br /&gt;debug1: rekey after 134217728 blocks&lt;br /&gt;debug1: SSH2_MSG_NEWKEYS sent&lt;br /&gt;debug1: expecting SSH2_MSG_NEWKEYS&lt;br /&gt;debug1: SSH2_MSG_NEWKEYS received&lt;br /&gt;debug1: rekey after 134217728 blocks&lt;br /&gt;debug1: SSH2_MSG_EXT_INFO received&lt;br /&gt;debug1: kex_input_ext_info: server-sig-algs=&amp;lt;rsa-sha2-256,rsa-sha2-512&amp;gt;&lt;br /&gt;debug1: SSH2_MSG_SERVICE_ACCEPT received&lt;br /&gt;debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic&lt;br /&gt;debug1: Next authentication method: gssapi-keyex&lt;br /&gt;debug1: No valid Key exchange context&lt;br /&gt;debug1: Next authentication method: gssapi-with-mic&lt;br /&gt;debug1: Unspecified GSS failure.&amp;nbsp; Minor code may provide more information&lt;br /&gt;No Kerberos credentials available (default cache: KEYRING:persistent:0)&lt;/p&gt;
&lt;p style=&quot;MARGIN-LEFT: 2em&quot;&gt;debug1: Unspecified GSS failure.&amp;nbsp; Minor code may provide more information&lt;br /&gt;No Kerberos credentials available (default cache: KEYRING:persistent:0)&lt;/p&gt;
&lt;p style=&quot;MARGIN-LEFT: 2em&quot;&gt;debug1: Next authentication method: publickey&lt;br /&gt;debug1: Trying private key: /root/.ssh/id_rsa&lt;br /&gt;debug1: Trying private key: /root/.ssh/id_dsa&lt;br /&gt;debug1: Trying private key: /root/.ssh/id_ecdsa&lt;br /&gt;debug1: Trying private key: /root/.ssh/id_ed25519&lt;br /&gt;debug1: No more authentication methods to try.&lt;br /&gt;Permission denied (publickey,gssapi-keyex,gssapi-with-mic).&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [root centos]# &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
&lt;script src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot; async=&quot;&quot;&gt;&lt;/script&gt;
&lt;ins class=&quot;adsbygoogle&quot; style=&quot;TEXT-ALIGN: center; DISPLAY: block&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;1510740417&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;br /&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;내가 접근하려는 서버에서 ssh 접근을 위해 호스트키를 생성했고 그에 맞는 공개키를 클라이언트에 두어야 접근이 가능한거로 판단된다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;예전에 넘겨받은 pem 파일이 있는데 이 파일로 로그인을 시도해 보았다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table class=&quot;txc-table&quot; style=&quot;FONT-SIZE: 13px; BORDER-TOP: medium none; FONT-FAMILY: '맑은 고딕',sans-serif; BORDER-RIGHT: medium none; BORDER-COLLAPSE: collapse; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none&quot; width=&quot;664&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;BORDER-TOP: #ccc 1px solid; HEIGHT: 89px; BORDER-RIGHT: #ccc 1px solid; WIDTH: 664px; BORDER-BOTTOM: #ccc 1px solid; BORDER-LEFT: #ccc 1px solid; BACKGROUND-COLOR: #ffd8d8&quot;&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [root centos]# ssh -p 22 centos@10.10.10.10&amp;nbsp;-i /home/centos/.ssh/anl-key.pem&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [root centos ~]# &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&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&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;&amp;nbsp;&lt;/p&gt;</description>
      <category>OS/Linux</category>
      <author>CofS</author>
      <guid isPermaLink="true">https://cofs.tistory.com/377</guid>
      <comments>https://cofs.tistory.com/377#entry377comment</comments>
      <pubDate>Fri, 22 Feb 2019 10:45:15 +0900</pubDate>
    </item>
    <item>
      <title>Linux ssh public key pem 파일 접속</title>
      <link>https://cofs.tistory.com/376</link>
      <description>&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-SIZE: 14pt&quot;&gt;Linux ssh public key pem 파일&amp;nbsp;접속&lt;/SPAN&gt;&lt;/STRONG&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;public key 파일 중 하나인 pem 확장자를 가진&amp;nbsp;파일을 사용한 ssh 로그인 방법이다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;public key 파일 생성 및 과정은 생략한다.&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;TABLE class=txc-table style=&quot;FONT-SIZE: 13px; BORDER-TOP: medium none; FONT-FAMILY: '맑은 고딕',sans-serif; BORDER-RIGHT: medium none; BORDER-COLLAPSE: collapse; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none&quot; cellSpacing=0 cellPadding=0 width=664 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-TOP: #ccc 1px solid; HEIGHT: 24px; BORDER-RIGHT: #ccc 1px solid; WIDTH: 664px; BORDER-BOTTOM: #ccc 1px solid; BORDER-LEFT: #ccc 1px solid&quot;&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; ssh 포트명 유저명@아이피 -i 파일경로&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&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;위와 같이 호출하여 실행하면 public key 파일을 활용하여 ssh 접근이 가능하다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;사용 예)&lt;/P&gt;
&lt;TABLE class=txc-table style=&quot;FONT-SIZE: 13px; BORDER-TOP: medium none; FONT-FAMILY: '맑은 고딕',sans-serif; BORDER-RIGHT: medium none; BORDER-COLLAPSE: collapse; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none&quot; cellSpacing=0 cellPadding=0 width=664 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-TOP: #ccc 1px solid; HEIGHT: 24px; BORDER-RIGHT: #ccc 1px solid; WIDTH: 664px; BORDER-BOTTOM: #ccc 1px solid; BORDER-LEFT: #ccc 1px solid&quot;&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;ssh -p 22 centos@10.10.10.10 -i /home/centos/.ssh/anl-key.pem&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&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;리눅스 pem 파일을 활용하여 ssh&amp;nbsp;접속 방법 끝&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <category>OS/Linux</category>
      <author>CofS</author>
      <guid isPermaLink="true">https://cofs.tistory.com/376</guid>
      <comments>https://cofs.tistory.com/376#entry376comment</comments>
      <pubDate>Fri, 22 Feb 2019 10:34:05 +0900</pubDate>
    </item>
    <item>
      <title>대전 스포티지R 에바크리닝 에프터블로우 동시 시공 8개월 후기</title>
      <link>https://cofs.tistory.com/375</link>
      <description>&lt;P&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-SIZE: 18pt&quot;&gt;대전 스포티지R 에바크리닝 에프터블로우 동시 시공 8&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-SIZE: 18pt&quot;&gt;개월 후기&lt;/SPAN&gt;&lt;/STRONG&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;TEXT-ALIGN: left&quot;&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;COLOR: rgb(255,0,0)&quot;&gt;본 포스팅은 자동차 에어컨 냄새에 지쳐 필자가 직접 돈을 지불하고 에프터블로우&amp;nbsp;및 애바크리닝을&amp;nbsp;시공한 후기이며 광고가 아님을 알려드립니다.&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left&quot;&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left&quot;&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;COLOR: rgb(255,0,0)&quot;&gt;아주 주관적으로 솔직하게&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: rgb(255,0,0)&quot;&gt;&amp;nbsp;작성했으며&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: rgb(255,0,0)&quot;&gt; 사람마다, 차량마다 다를 수 있음을 참고하여 주시기 바랍니다.&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left&quot;&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left&quot;&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;COLOR: rgb(255,0,0)&quot;&gt;시공했던 매장 및 가격이 궁금하신 분은 비공개 댓글로 메일을 입력해 주시면 답장해 드리겠습니다&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;2018년&amp;nbsp;초여름에 에바크리닝 및 에프터블로우를 한날에 시공을 받았고 현재까지의 후기를 작성한다.&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;TABLE class=txc-table style=&quot;FONT-SIZE: 13px; BORDER-TOP: medium none; FONT-FAMILY: '맑은 고딕',sans-serif; BORDER-RIGHT: medium none; BORDER-COLLAPSE: collapse; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none&quot; cellSpacing=0 cellPadding=0 width=664 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-TOP: #ccc 1px solid; HEIGHT: 24px; BORDER-RIGHT: #ccc 1px solid; WIDTH: 664px; BORDER-BOTTOM: #ccc 1px solid; BORDER-LEFT: #ccc 1px solid&quot;&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&lt;SPAN style=&quot;COLOR: #0055ff&quot;&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;A class=tx-link href=&quot;https://cofs.tistory.com/368?category=631625&quot; target=_blank&gt;&lt;SPAN style=&quot;COLOR: #0055ff&quot;&gt;&lt;STRONG&gt;대전 스포티지R 에바크리닝 주관적 후기 2018년 시공&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&lt;SPAN style=&quot;COLOR: #0055ff&quot;&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;A class=tx-link href=&quot;https://cofs.tistory.com/367?category=631625&quot; target=_blank&gt;&lt;SPAN style=&quot;COLOR: #0055ff&quot;&gt;&lt;STRONG&gt;대전 스포티지R 에프터블로우 주관적 후기 2018년 시공&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&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&gt;&amp;nbsp;&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;필자의 차는 2012년식 스포티지R 이며 현재까지 7년째 타고있다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;br /&gt;
&lt;SCRIPT src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot; async&gt;&lt;/SCRIPT&gt;
 &lt;INS class=adsbygoogle style=&quot;TEXT-ALIGN: center; DISPLAY: block&quot; data-ad-slot=&quot;1510740417&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-format=&quot;fluid&quot; data-ad-layout=&quot;in-article&quot;&gt;&lt;/INS&gt;
&lt;SCRIPT&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/SCRIPT&gt;
&lt;br /&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: center; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 640px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/995FD6385C627DA013&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F995FD6385C627DA013&quot; width=&quot;640&quot; height=&quot;480&quot; filename=&quot;1234.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: center; CLEAR: none&quot;&gt;[2018년 6월 시공 당시 촬용]&lt;/P&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: center; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;위 이미지는 상단에 기존 후기 포스팅에 있는 이미지이다.&lt;/P&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;차량 내부를 얼마나 관리하고 있는지 차를 얼마나 깨끗하게 타는지 보여주기 위해서 시공 당시 이미지를 가져왔다.&lt;/P&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;엄청나게 깨끗하다고는 할 수 없겠지만 1달에 1번은 내부 외부 모두 세차한다.&lt;/P&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: center; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: center; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 525px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/990D50385C627DA22B&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F990D50385C627DA22B&quot; width=&quot;525&quot; height=&quot;700&quot; filename=&quot;KakaoTalk_20190212_165100389.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: center; CLEAR: none&quot;&gt;[2018년 8월 촬영]&lt;/P&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;에프터블로우가 장착된 모습니다.&lt;/P&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;발로 한번도 찬 적 없고 스크래치 하나 없이 관리가 잘 되어 있다.&lt;/P&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;기능도 정상동작하고 배터리 문제나 기타 다른 특별한 이슈는 없다.&lt;/P&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: center; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: center; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 525px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99ED59385C627DA323&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99ED59385C627DA323&quot; width=&quot;525&quot; height=&quot;700&quot; filename=&quot;KakaoTalk_20190212_165103091.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: center; CLEAR: none&quot;&gt;[2018년 8월 촬영]&lt;/P&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: center; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;송풍구 바람 방향 조절기를 자세히 봐야한다.&lt;/P&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;필자의 차량은 에어컨을 작동시키면 가운데 바람 방향 조절기에 물방울이 생긴다.&lt;/P&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;이래서 곰팡이가 심하게 증식하여 냄새가 나는것인가 싶다.&lt;/P&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: center; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: center; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 525px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/993BDA385C627DA520&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F993BDA385C627DA520&quot; width=&quot;525&quot; height=&quot;700&quot; filename=&quot;KakaoTalk_20190212_165104609.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: center&quot;&gt;[2018년 8월 촬영]&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: center&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left&quot;&gt;마찬가지 송풍구 옆모습니다.&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left&quot;&gt;송풍구 옆을 보면 물방울이 맺혀 있다.&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left&quot;&gt;손을 닦으면 습기 수준을 넘어선다.&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left&quot;&gt;여기까지가 필자가 타고다니는 차 상황이다.&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left&quot;&gt;이 차에다가&amp;nbsp;에바크리닝과 에프터블로우를 시공받고 여름을 보냈다.&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left&quot;&gt;&lt;br /&gt;
&lt;SCRIPT src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot; async&gt;&lt;/SCRIPT&gt;
&lt;INS class=adsbygoogle style=&quot;TEXT-ALIGN: center; DISPLAY: block&quot; data-ad-slot=&quot;3295854551&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-format=&quot;fluid&quot; data-ad-layout=&quot;in-article&quot;&gt;&lt;/INS&gt;
&lt;SCRIPT&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/SCRIPT&gt;
&lt;br /&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left&quot;&gt;현재 상황은 이렇다.&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left&quot;&gt;애어컨을 켰을 때 매년 에바크리닝을 받을때보다 냄새가 덜하다.&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left&quot;&gt;기대보다는 흠... 글쎄 ?&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left&quot;&gt;에프터블로우를 설치하면 적어도 2년에 한번만 에바크리닉을 받을 수 있을 수준이 되지 않을까 기대했다.&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left&quot;&gt;시공사에서는 냄새가 거의 안난다는 말만하니까...&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&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;어차피 매년 10만원 정도의 에바크리닝을 받을 거라면 굳이 에프터블로우를 사느라 10몇만원을 투자하지 않았을 것 같다.&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;&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>일상</category>
      <author>CofS</author>
      <guid isPermaLink="true">https://cofs.tistory.com/375</guid>
      <comments>https://cofs.tistory.com/375#entry375comment</comments>
      <pubDate>Tue, 12 Feb 2019 17:30:24 +0900</pubDate>
    </item>
    <item>
      <title>대전 영유아검진 오진 및 심실중격결손 진단</title>
      <link>https://cofs.tistory.com/374</link>
      <description>&lt;P&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-SIZE: 14pt&quot;&gt;대전 영유아검진 오진 및 심실중격결손 진단&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE class=txc-table style=&quot;FONT-SIZE: 13px; BORDER-TOP: medium none; FONT-FAMILY: '맑은 고딕',sans-serif; BORDER-RIGHT: medium none; BORDER-COLLAPSE: collapse; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none&quot; cellSpacing=0 cellPadding=0 width=664 border=0&gt;
&lt;TBODY&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;TABLE class=txc-table style=&quot;FONT-SIZE: 13px; BORDER-TOP: medium none; FONT-FAMILY: '맑은 고딕',sans-serif; BORDER-RIGHT: medium none; WIDTH: 705px; BORDER-COLLAPSE: collapse; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none&quot; cellSpacing=0 cellPadding=0 width=705 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-TOP: #ccc 1px solid; HEIGHT: 72px; BORDER-RIGHT: #ccc 1px solid; WIDTH: 705px; BORDER-BOTTOM: #ccc 1px solid; BORDER-LEFT: #ccc 1px solid; BACKGROUND-COLOR: #ffd9ec&quot;&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&lt;STRONG&gt;본 포스팅은 첫 소아과에서는 영유아검진 오진으로 발견하지 못했던 심장병의 일종인 심실 중격 결손증을&lt;/STRONG&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&lt;STRONG&gt;뒤늦게 다른 소아과에서 발견한 사례입니다.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&lt;STRONG&gt;글을 쓰기 앞서 본 포스팅은 특정 병원의 명예를 훼손할 의도가 없음을 알려드리며&lt;/STRONG&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&lt;STRONG&gt;저와 같은 상황을&amp;nbsp;마주하지 않도록&amp;nbsp;도움이 되시기를 바라겠습니다.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&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&gt;&amp;nbsp;&lt;/P&gt;이제 놀란 가슴이 진정이 되어 이렇게 글을 씁니다. 
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;2018년 대전 서구 탄방동 산부인과 M병원에서 눈에 넣어도 아프지 않을 아들이 태어났습니다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;앞으로 검진 및&amp;nbsp;예방접종을 비롯해서 우리 아들이&amp;nbsp;혹시나 아플경우를 대비해서 다닐 소아과를 결정해야 했습니다.&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;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;그래서 집과도 멀지않고 지하철역도 끼고있어 접근성도 좋아 보이고 진료를 잘본다고 평이 나있고 입원치료도 가능하다고 해서 많은 고민 끝에 첫 소아과를 &quot;●●ㅇㅂ병원&quot;으로 결정하였습니다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;아이를 위해서 원장선생님도&amp;nbsp;지인에게 추천받은&amp;nbsp;선생님으로 결정하였습니다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;약 6개월이 넘도록 이곳&amp;nbsp;한곳만 다녔습니다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;병원은 약 8회정도 방문했습니다.&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;/P&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: center; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: center; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 580px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99B0323A5C62722214&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99B0323A5C62722214&quot; width=&quot;580&quot; height=&quot;773&quot; filename=&quot;73XniqY2_6edbCE_owNEh_480000.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: center; CLEAR: none&quot;&gt;&lt;STRONG&gt;[영유아 검진결과 결과통보서 원본]&lt;/STRONG&gt;&lt;/P&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: center; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;저희 부부는 겨울에 이사계획이 있었습니다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;2018년 겨울에 이사를 준비했고 이 무렵부터 아들은&amp;nbsp;감기와 가래가 있어서 병원을 다녔습니다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;그러다 2018년 12월에 이사를 하게되어 소아과를 다른곳으로 다니게 되었습니다.&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;/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;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;진료가 끝나고&amp;nbsp;새로 방문한&amp;nbsp;소아과에서 전자 의뢰서를 작성해 주셨고 대학병원에 진료예약을 했습니다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;대학병원에 방문하기 몇일 전에&amp;nbsp;감기가 호전되지 않아 다시 소아과를 방문했고 이때는&amp;nbsp;다른 원장선생님께 진료를 받았습니다.&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;대학병원에서 진료를 받았고 빠른 시일 내에 초음파 검사를 하는게 좋을것 같다고&amp;nbsp;교수님께서&amp;nbsp;말씀하셔서 최대한 빠른 날짜에 심장초음파 및 심전도 예약을 했습니다.&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;검사가 낯설었는지 컨디션이 않좋았는지 알수는 없었지만&amp;nbsp;검사 도중에 아이가 많이 울었고 저희 부부는 걱정이 점점 커졌습니다.&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;/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 style=&quot;FLOAT: none; TEXT-ALIGN: center; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 580px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/999C173D5C626D7919&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F999C173D5C626D7919&quot; width=&quot;580&quot; height=&quot;435&quot; filename=&quot;73XniqY2_2po8Ra_6SqdGb_480000.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: center&quot;&gt;&lt;STRONG&gt;[대학병원에서 발급받은 소아 심장질환 기록 카드]&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE class=txc-table style=&quot;FONT-SIZE: 13px; BORDER-TOP: medium none; FONT-FAMILY: '맑은 고딕',sans-serif; BORDER-RIGHT: medium none; BORDER-COLLAPSE: collapse; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none&quot; cellSpacing=0 cellPadding=0 width=664 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-TOP: #ccc 1px solid; HEIGHT: 24px; BORDER-RIGHT: #ccc 1px solid; WIDTH: 664px; BORDER-BOTTOM: #ccc 1px solid; BORDER-LEFT: #ccc 1px solid; BACKGROUND-COLOR: #f6f6f6&quot;&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-SIZE: 12pt&quot;&gt;심실 중격 결손 VSD&lt;/SPAN&gt;&lt;/STRONG&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;가장 흔한 선천성 심장 질환으로 선천성 심장병의 약 25%를 차지한다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;결손은 심실 중격의 어디에서나 발생할 수 있으나 위치에 따라 크게 막양부(perimembranous) 결손, 근성부 &lt;/P&gt;
&lt;P&gt;&amp;nbsp;(muscular) 결손, 대혈관 판하(subarterial, juxtaarterial, subpulmonary, supracristal) 결손의 세 가지로 나눈다. 그&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;중 막양부 결손이 가장 흔하다.&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: right; MARGIN-LEFT: 2em&quot;&gt;출처 : 서울대학교병원 의학정보 https://www.snuh.org/main.do&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp;&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&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&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;/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;혹시나 한 병원만 고집하시는 분들께서는&amp;nbsp;소아과를 2군대 이상 다니시면서 여러 의사분들의 진찰을 받아 보시기 바랍니다.&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>일상</category>
      <category>대전</category>
      <category>소아과</category>
      <category>소아청소년과</category>
      <category>심실 중격 결손</category>
      <category>영유아검진 오진</category>
      <author>CofS</author>
      <guid isPermaLink="true">https://cofs.tistory.com/374</guid>
      <comments>https://cofs.tistory.com/374#entry374comment</comments>
      <pubDate>Tue, 12 Feb 2019 16:34:45 +0900</pubDate>
    </item>
    <item>
      <title>oracle ora-43853 오류</title>
      <link>https://cofs.tistory.com/373</link>
      <description>&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-SIZE: 18pt&quot;&gt;oracle ora-43853 오류&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN style=&quot;FONT-SIZE: 18pt&quot;&gt; &lt;/SPAN&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;FLOAT: none; TEXT-ALIGN: center; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 451px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/9962F0405C4C01A71B&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F9962F0405C4C01A71B&quot; width=&quot;451&quot; height=&quot;81&quot; filename=&quot;2019-01-26 15;33;20.jpg&quot; filemime=&quot;image/jpeg&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&gt;테스트를 좀 진행라혀고 Oracle 을 설치하고 테스트용 DB를 생성성해서 스키마 만들고 데이터 넣고있는데 갑자기 위와 같은 오류가 났다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE class=txc-table style=&quot;FONT-SIZE: 13px; BORDER-TOP: medium none; FONT-FAMILY: '맑은 고딕',sans-serif; BORDER-RIGHT: medium none; BORDER-COLLAPSE: collapse; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none&quot; cellSpacing=0 cellPadding=0 width=664 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-TOP: #ccc 1px solid; HEIGHT: 89px; BORDER-RIGHT: #ccc 1px solid; WIDTH: 664px; BORDER-BOTTOM: #ccc 1px solid; BORDER-LEFT: #ccc 1px solid; BACKGROUND-COLOR: #eaeaea&quot;&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;ORA-43853&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;SECUREFILE LOB은 비 ASSM 테이블스페이스 &quot;테이블 스페이스명&quot;에 사용할 수 없습니다.&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;SECUREFILE lobs cannot be used in non-ASSM tablespace &quot;테이블 스페이스명&quot;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&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&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;해당 오류는 테이블스페이스가 assm 방식을 사용하지 않아서 발생하는 오류이다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;assm 은 Automatic Space Segment Management 약자로 Oracle 9i 부터 권장되는 방식이다.&lt;/P&gt;
&lt;P&gt;SEGMENT SPACE MANAGEMENT AUTO 절을 사용해 PCTFREE, PCTUSED 를 자동으로 관리하는 방식이다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;테이블스페이스를 생성할 때 SEGMENT SPACE MANAGEMENT MANUAL 로 지정하면 freelist 방식을 사용하게 된다.&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;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-SIZE: 14pt&quot;&gt;결론 :&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN style=&quot;FONT-SIZE: 14pt&quot;&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-SIZE: 14pt&quot;&gt;테이블스페이스 생성할 때 SEGMENT SPACE MANAGEMENT AUTO 사용하면 됨&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;</description>
      <category>database/oracle</category>
      <author>CofS</author>
      <guid isPermaLink="true">https://cofs.tistory.com/373</guid>
      <comments>https://cofs.tistory.com/373#entry373comment</comments>
      <pubDate>Sat, 26 Jan 2019 15:52:57 +0900</pubDate>
    </item>
    <item>
      <title>jquery modal 새로고침, 동적 호출, 멀티 호출</title>
      <link>https://cofs.tistory.com/372</link>
      <description>&lt;div&gt;&lt;span&gt;&lt;strong&gt;&lt;span style=&quot;FONT-SIZE: 18pt&quot;&gt;&lt;script async=&quot;&quot; src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display:block; text-align:center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;8108516233&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;strong&gt;&lt;span style=&quot;FONT-SIZE: 18pt&quot;&gt;jquery modal 새로고침, 동적 호출, 멀티 호출&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;FONT-SIZE: 18pt&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&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;jquery modal 팝업을 사용할 경우 해당 페이지를 호출할 때 기존에 로드해놓은 코드가 계속 보인다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;url 을 로드해서 ready 함수를 매번&amp;nbsp;실행하고 싶으나 이전에 로드해놓은 코드가 show 되어서 ready 함수가 실행되지 않았다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;필자는 modal 을 호출할 때마다 매번 새롭게 url 을 호출하고 싶다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
&lt;script src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot; async=&quot;&quot;&gt;&lt;/script&gt;
&lt;ins class=&quot;adsbygoogle&quot; style=&quot;TEXT-ALIGN: center; DISPLAY: block&quot; data-ad-slot=&quot;1510740417&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-format=&quot;fluid&quot; data-ad-layout=&quot;in-article&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;br /&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 style=&quot;MARGIN-LEFT: 2em&quot;&gt;1.&amp;nbsp;url을 바꿔주면 동적으로 다른 페이지를 modal 로 띄울 수 있다.&lt;/p&gt;
&lt;p style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;MARGIN-LEFT: 2em&quot;&gt;2. modal 을 호출할 때마다 reload 또는 refresh 효과를 얻을 수 있다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;다음과 같은 modal html 코드가 있다.&lt;/p&gt;
&lt;div class=&quot;colorscripter-code&quot; style=&quot;OVERFLOW: auto; FONT-FAMILY: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; WIDTH: 600px; POSITION: relative !important; COLOR: #010101&quot;&gt;
&lt;table class=&quot;colorscripter-code-table&quot; style=&quot;BORDER-TOP: medium none; BORDER-RIGHT: medium none; BORDER-BOTTOM: medium none; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; BORDER-LEFT: medium none; LINE-HEIGHT: 140%; PADDING-RIGHT: 0px; BACKGROUND-COLOR: #fafafa; border-radius: 4px&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;BORDER-RIGHT: #e5e5e5 2px solid; PADDING-BOTTOM: 6px; PADDING-TOP: 6px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;
&lt;div style=&quot;FONT-FAMILY: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; WORD-BREAK: normal; COLOR: #666; PADDING-BOTTOM: 0px; TEXT-ALIGN: right; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; PADDING-RIGHT: 0px&quot;&gt;
&lt;div&gt;1&lt;/div&gt;
&lt;div&gt;2&lt;/div&gt;
&lt;div&gt;3&lt;/div&gt;
&lt;div&gt;4&lt;/div&gt;
&lt;div&gt;5&lt;/div&gt;
&lt;div&gt;6&lt;/div&gt;
&lt;div&gt;7&lt;/div&gt;
&lt;div&gt;8&lt;/div&gt;
&lt;div&gt;9&lt;/div&gt;
&lt;div&gt;10&lt;/div&gt;
&lt;div&gt;11&lt;/div&gt;
&lt;div&gt;12&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
&lt;td style=&quot;PADDING-BOTTOM: 6px; PADDING-TOP: 6px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px&quot;&gt;
&lt;div style=&quot;FONT-FAMILY: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; COLOR: #010101; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; PADDING-RIGHT: 0px&quot;&gt;
&lt;div style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&lt;span style=&quot;COLOR: #010101&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #066de2&quot;&gt;div&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;COLOR: #0a9989&quot;&gt;class&lt;/span&gt;=&lt;span style=&quot;COLOR: #df5000&quot;&gt;&quot;modal&amp;nbsp;fade&quot;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;COLOR: #0a9989&quot;&gt;id&lt;/span&gt;=&lt;span style=&quot;COLOR: #df5000&quot;&gt;&quot;sampleModalPopup&quot;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;COLOR: #0a9989&quot;&gt;role&lt;/span&gt;=&lt;span style=&quot;COLOR: #df5000&quot;&gt;&quot;dialog&quot;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;COLOR: #0a9989&quot;&gt;tabindex&lt;/span&gt;=&lt;span style=&quot;COLOR: #df5000&quot;&gt;&quot;-1&quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #010101&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;COLOR: #010101&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #066de2&quot;&gt;div&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;COLOR: #0a9989&quot;&gt;class&lt;/span&gt;=&lt;span style=&quot;COLOR: #df5000&quot;&gt;&quot;modal-dialog&amp;nbsp;modal-dialog-width1000&amp;nbsp;modal-dialog-height800&quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #010101&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;COLOR: #010101&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #066de2&quot;&gt;div&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;COLOR: #0a9989&quot;&gt;class&lt;/span&gt;=&lt;span style=&quot;COLOR: #df5000&quot;&gt;&quot;modal-header&quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #010101&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&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;&lt;span style=&quot;COLOR: #010101&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #066de2&quot;&gt;button&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;COLOR: #0a9989&quot;&gt;type&lt;/span&gt;=&lt;span style=&quot;COLOR: #df5000&quot;&gt;&quot;button&quot;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;COLOR: #0a9989&quot;&gt;class&lt;/span&gt;=&lt;span style=&quot;COLOR: #df5000&quot;&gt;&quot;close&quot;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;COLOR: #0a9989&quot;&gt;data-dismiss&lt;/span&gt;=&lt;span style=&quot;COLOR: #df5000&quot;&gt;&quot;modal&quot;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;COLOR: #0a9989&quot;&gt;aria-label&lt;/span&gt;=&lt;span style=&quot;COLOR: #df5000&quot;&gt;&quot;Close&quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #010101&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #010101&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #066de2&quot;&gt;span&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;COLOR: #0a9989&quot;&gt;aria-hidden&lt;/span&gt;=&lt;span style=&quot;COLOR: #df5000&quot;&gt;&quot;true&quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #010101&quot;&gt;&amp;gt;&lt;/span&gt;×&lt;span style=&quot;COLOR: #010101&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #010101&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;COLOR: #066de2&quot;&gt;span&lt;/span&gt;&lt;span style=&quot;COLOR: #010101&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;COLOR: #010101&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #010101&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;COLOR: #066de2&quot;&gt;button&lt;/span&gt;&lt;span style=&quot;COLOR: #010101&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;COLOR: #010101&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #010101&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;COLOR: #066de2&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;COLOR: #010101&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;COLOR: #010101&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #066de2&quot;&gt;div&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;COLOR: #0a9989&quot;&gt;class&lt;/span&gt;=&lt;span style=&quot;COLOR: #df5000&quot;&gt;&quot;modal-body&quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #010101&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;COLOR: #010101&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #010101&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;COLOR: #066de2&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;COLOR: #010101&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;COLOR: #010101&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #066de2&quot;&gt;div&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;COLOR: #0a9989&quot;&gt;class&lt;/span&gt;=&lt;span style=&quot;COLOR: #df5000&quot;&gt;&quot;modal-footer&quot;&lt;/span&gt;&lt;span style=&quot;COLOR: #010101&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&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;&lt;span style=&quot;COLOR: #010101&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #066de2&quot;&gt;button&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;COLOR: #0a9989&quot;&gt;type&lt;/span&gt;=&lt;span style=&quot;COLOR: #df5000&quot;&gt;&quot;button&quot;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;COLOR: #0a9989&quot;&gt;name&lt;/span&gt;=&lt;span style=&quot;COLOR: #df5000&quot;&gt;&quot;button&quot;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;COLOR: #0a9989&quot;&gt;class&lt;/span&gt;=&lt;span style=&quot;COLOR: #df5000&quot;&gt;&quot;btn&amp;nbsp;btn-color2&quot;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;COLOR: #0a9989&quot;&gt;data-dismiss&lt;/span&gt;=&lt;span style=&quot;COLOR: #df5000&quot;&gt;&quot;modal&quot;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;COLOR: #010101&quot;&gt;&amp;gt;&lt;/span&gt;닫기&lt;span style=&quot;COLOR: #010101&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #010101&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;COLOR: #066de2&quot;&gt;button&lt;/span&gt;&lt;span style=&quot;COLOR: #010101&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;COLOR: #010101&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #010101&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;COLOR: #066de2&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;COLOR: #010101&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;COLOR: #010101&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #010101&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;COLOR: #066de2&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;COLOR: #010101&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&lt;span style=&quot;COLOR: #010101&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #010101&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;COLOR: #066de2&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;COLOR: #010101&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div style=&quot;FONT-SIZE: 9px; FONT-STYLE: italic; TEXT-ALIGN: right; MARGIN-TOP: -13px; MARGIN-RIGHT: 5px&quot;&gt;&lt;a style=&quot;TEXT-DECORATION: none; COLOR: #e5e5e5&quot; href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot;&gt;Colored by Color Scripter&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;
&lt;td style=&quot;VERTICAL-ALIGN: bottom; PADDING-BOTTOM: 4px; PADDING-TOP: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 2px&quot;&gt;&lt;a style=&quot;TEXT-DECORATION: none&quot; href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;FONT-SIZE: 9px; WORD-BREAK: normal; COLOR: white; PADDING-BOTTOM: 1px; PADDING-TOP: 1px; PADDING-LEFT: 1px; PADDING-RIGHT: 1px; BACKGROUND-COLOR: #e5e5e5; border-radius: 10px&quot;&gt;cs&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
&lt;script src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot; async=&quot;&quot;&gt;&lt;/script&gt;
&lt;ins class=&quot;adsbygoogle&quot; style=&quot;TEXT-ALIGN: center; DISPLAY: block&quot; data-ad-slot=&quot;3295854551&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-format=&quot;fluid&quot; data-ad-layout=&quot;in-article&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;아래 javascript 를 실행하면 된다.&lt;/p&gt;
&lt;div class=&quot;colorscripter-code&quot; style=&quot;OVERFLOW: auto; FONT-FAMILY: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; WIDTH: 600px; POSITION: relative !important; COLOR: #010101&quot;&gt;
&lt;table class=&quot;colorscripter-code-table&quot; style=&quot;BORDER-TOP: medium none; BORDER-RIGHT: medium none; BORDER-BOTTOM: medium none; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; BORDER-LEFT: medium none; LINE-HEIGHT: 140%; PADDING-RIGHT: 0px; BACKGROUND-COLOR: #fafafa; border-radius: 4px&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;BORDER-RIGHT: #e5e5e5 2px solid; PADDING-BOTTOM: 6px; PADDING-TOP: 6px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;
&lt;div style=&quot;FONT-FAMILY: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; WORD-BREAK: normal; COLOR: #666; PADDING-BOTTOM: 0px; TEXT-ALIGN: right; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; PADDING-RIGHT: 0px&quot;&gt;
&lt;div&gt;1&lt;/div&gt;
&lt;div&gt;2&lt;/div&gt;
&lt;div&gt;3&lt;/div&gt;
&lt;div&gt;4&lt;/div&gt;
&lt;div&gt;5&lt;/div&gt;
&lt;div&gt;6&lt;/div&gt;
&lt;div&gt;7&lt;/div&gt;
&lt;div&gt;8&lt;/div&gt;
&lt;div&gt;9&lt;/div&gt;
&lt;div&gt;10&lt;/div&gt;
&lt;div&gt;11&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;
&lt;td style=&quot;PADDING-BOTTOM: 6px; PADDING-TOP: 6px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px&quot;&gt;
&lt;div style=&quot;FONT-FAMILY: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; COLOR: #010101; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; PADDING-RIGHT: 0px&quot;&gt;
&lt;div style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&lt;span style=&quot;COLOR: #a71d5d&quot;&gt;&amp;lt;&lt;/span&gt;script&lt;span style=&quot;COLOR: #a71d5d&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;COLOR: #a71d5d&quot;&gt;function&lt;/span&gt;&amp;nbsp;sampleModalPopup(){&lt;/div&gt;
&lt;div style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;COLOR: #999999&quot;&gt;//&amp;nbsp;팝업&amp;nbsp;호출&amp;nbsp;url&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;COLOR: #a71d5d&quot;&gt;var&lt;/span&gt;&amp;nbsp;url&amp;nbsp;&lt;span style=&quot;COLOR: #a71d5d&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;COLOR: #63a35c&quot;&gt;&quot;호출할&amp;nbsp;URL&quot;&lt;/span&gt;;&lt;/div&gt;
&lt;div style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;COLOR: #999999&quot;&gt;//&amp;nbsp;팝업&amp;nbsp;호출&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$(&lt;span style=&quot;COLOR: #63a35c&quot;&gt;&quot;#sampleModalPopup&amp;nbsp;&amp;gt;&amp;nbsp;.modal-dialog&quot;&lt;/span&gt;).load(url,&amp;nbsp;&lt;span style=&quot;COLOR: #a71d5d&quot;&gt;function&lt;/span&gt;()&amp;nbsp;{&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&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;$(&lt;span style=&quot;COLOR: #63a35c&quot;&gt;&quot;#sampleModalPopup&quot;&lt;/span&gt;).modal(&lt;span style=&quot;COLOR: #63a35c&quot;&gt;&quot;show&quot;&lt;/span&gt;);&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&lt;/div&gt;
&lt;div style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;
&lt;div style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&lt;span style=&quot;COLOR: #a71d5d&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;COLOR: #a71d5d&quot;&gt;/&lt;/span&gt;script&lt;span style=&quot;COLOR: #a71d5d&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div style=&quot;FONT-SIZE: 9px; FONT-STYLE: italic; TEXT-ALIGN: right; MARGIN-TOP: -13px; MARGIN-RIGHT: 5px&quot;&gt;&lt;a style=&quot;TEXT-DECORATION: none; COLOR: #e5e5e5&quot; href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot;&gt;Colored by Color Scripter&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;
&lt;td style=&quot;VERTICAL-ALIGN: bottom; PADDING-BOTTOM: 4px; PADDING-TOP: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 2px&quot;&gt;&lt;a style=&quot;TEXT-DECORATION: none&quot; href=&quot;http://colorscripter.com/info#e&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;FONT-SIZE: 9px; WORD-BREAK: normal; COLOR: white; PADDING-BOTTOM: 1px; PADDING-TOP: 1px; PADDING-LEFT: 1px; PADDING-RIGHT: 1px; BACKGROUND-COLOR: #e5e5e5; border-radius: 10px&quot;&gt;cs&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;
&lt;p&gt;4# : 호출할 url&lt;/p&gt;
&lt;p&gt;7# : modal html 코드 중 modal-dialog 클래스를 찾아 url을 load 시킨다.&lt;/p&gt;
&lt;p&gt;8# : load 후 model 을 show 한다.&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;
&lt;p&gt;미리 만들어놓은 modal 틀에 jquery load 를 활용하여 url 을 load 하고 &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;그 이후에 model 을 show 하는 간단한 소스이다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>language/jquery</category>
      <author>CofS</author>
      <guid isPermaLink="true">https://cofs.tistory.com/372</guid>
      <comments>https://cofs.tistory.com/372#entry372comment</comments>
      <pubDate>Tue, 23 Oct 2018 13:27:18 +0900</pubDate>
    </item>
    <item>
      <title>사이트맵</title>
      <link>https://cofs.tistory.com/371</link>
      <description>&lt;P&gt;사이트맵&lt;/P&gt;
&lt;P&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block;   height: auto; max-width: 100%;&quot;&gt;&lt;a href=&quot;https://t1.daumcdn.net/cfile/tistory/99E7724F5C8F505906&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://i1.daumcdn.net/cfs.tistory/v/0/blog/image/extension/unknown.gif&quot; style=&quot;vertical-align: middle;&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;sitemap.xml&lt;/a&gt;&lt;/span&gt;&lt;/P&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>etc/etc</category>
      <author>CofS</author>
      <guid isPermaLink="true">https://cofs.tistory.com/371</guid>
      <comments>https://cofs.tistory.com/371#entry371comment</comments>
      <pubDate>Tue, 16 Oct 2018 11:11:38 +0900</pubDate>
    </item>
    <item>
      <title>ORA-01843: not a valid month 오류</title>
      <link>https://cofs.tistory.com/370</link>
      <description>&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-SIZE: 14pt&quot;&gt;ORA-01843: not a valid month 오류&lt;/SPAN&gt;&lt;/STRONG&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;달라진 것이라고는 오라클 서버를 바꿔준 것&amp;nbsp;밖에 없고 소스는 그대로였다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;오라클 12c 로 바꾼게 문제가 된것이라 판단이 된다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;해당 오류를 검색해 보니 NLS_DATE_FORMAT 이 맞지 않아 발생하는 오류라고 한다.&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;필자가 오류가 발생하는 상황은 특정 데이터를 insert 할 때 발생했다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;insert 할 대상 컬럼을 보니 date 타입은 없었고 Timestamp 타입이 있었다.&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;br /&gt;
&lt;SCRIPT src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot; async&gt;&lt;/SCRIPT&gt;
&lt;INS class=adsbygoogle style=&quot;TEXT-ALIGN: center; DISPLAY: block&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;1510740417&quot;&gt;&lt;/INS&gt;
&lt;SCRIPT&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/SCRIPT&gt;
&lt;br /&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;오류가&amp;nbsp;발생하는&amp;nbsp;소스는 다음과 같다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV class=colorscripter-code style=&quot;OVERFLOW: auto; FONT-FAMILY: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; WIDTH: 700px; POSITION: relative !important; COLOR: #010101&quot;&gt;
&lt;TABLE class=colorscripter-code-table style=&quot;BORDER-TOP: medium none; BORDER-RIGHT: medium none; BORDER-BOTTOM: medium none; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; BORDER-LEFT: medium none; LINE-HEIGHT: 140%; PADDING-RIGHT: 0px; BACKGROUND-COLOR: #fafafa; border-radius: 4px&quot; cellSpacing=0 cellPadding=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-RIGHT: #e5e5e5 2px solid; PADDING-BOTTOM: 6px; PADDING-TOP: 6px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;
&lt;DIV style=&quot;FONT-FAMILY: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; WORD-BREAK: normal; COLOR: #666; PADDING-BOTTOM: 0px; TEXT-ALIGN: right; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; PADDING-RIGHT: 0px&quot;&gt;
&lt;DIV&gt;1&lt;/DIV&gt;
&lt;DIV&gt;2&lt;/DIV&gt;
&lt;DIV&gt;3&lt;/DIV&gt;&lt;/DIV&gt;&lt;/TD&gt;
&lt;TD style=&quot;PADDING-BOTTOM: 6px; PADDING-TOP: 6px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px&quot;&gt;
&lt;DIV style=&quot;FONT-FAMILY: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; COLOR: #010101; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; PADDING-RIGHT: 0px&quot;&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;Date&amp;nbsp;today&amp;nbsp;&lt;SPAN style=&quot;COLOR: #0086b3&quot;&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;=&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;new&lt;/SPAN&gt;&amp;nbsp;java.util.Date();&lt;/DIV&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;Timestamp&amp;nbsp;timestamp&amp;nbsp;&lt;SPAN style=&quot;COLOR: #0086b3&quot;&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;=&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;new&lt;/SPAN&gt;&amp;nbsp;Timestamp(today.getTime());&lt;/DIV&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&lt;SPAN style=&quot;COLOR: #066de2&quot;&gt;String&lt;/SPAN&gt;&amp;nbsp;timestampStr&amp;nbsp;&lt;SPAN style=&quot;COLOR: #0086b3&quot;&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;=&lt;/SPAN&gt;&amp;nbsp;timestamp.&lt;SPAN style=&quot;COLOR: #066de2&quot;&gt;toString&lt;/SPAN&gt;();&lt;/DIV&gt;&lt;/DIV&gt;&lt;/TD&gt;
&lt;TD style=&quot;VERTICAL-ALIGN: bottom; PADDING-BOTTOM: 4px; PADDING-TOP: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 2px&quot;&gt;&lt;A style=&quot;TEXT-DECORATION: none&quot; href=&quot;http://colorscripter.com/info#e&quot; target=_blank&gt;&lt;SPAN style=&quot;FONT-SIZE: 9px; WORD-BREAK: normal; COLOR: white; PADDING-BOTTOM: 1px; PADDING-TOP: 1px; PADDING-LEFT: 1px; PADDING-RIGHT: 1px; BACKGROUND-COLOR: #e5e5e5; border-radius: 10px&quot;&gt;cs&lt;/SPAN&gt;&lt;/A&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;
&lt;P&gt;3# 의 timestampStr을 Mybatis 를 이용해서 DB에 입력하는데 입력되는 컬럼의 타입은 Timestamp(6) 이였다.&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;DIV class=colorscripter-code style=&quot;OVERFLOW: auto; FONT-FAMILY: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; WIDTH: 700px; POSITION: relative !important; COLOR: #010101&quot;&gt;
&lt;TABLE class=colorscripter-code-table style=&quot;BORDER-TOP: medium none; BORDER-RIGHT: medium none; BORDER-BOTTOM: medium none; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; BORDER-LEFT: medium none; LINE-HEIGHT: 140%; PADDING-RIGHT: 0px; BACKGROUND-COLOR: #fafafa; border-radius: 4px&quot; cellSpacing=0 cellPadding=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-RIGHT: #e5e5e5 2px solid; PADDING-BOTTOM: 6px; PADDING-TOP: 6px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;
&lt;DIV style=&quot;FONT-FAMILY: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; WORD-BREAK: normal; COLOR: #666; PADDING-BOTTOM: 0px; TEXT-ALIGN: right; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; PADDING-RIGHT: 0px&quot;&gt;
&lt;DIV&gt;1&lt;/DIV&gt;
&lt;DIV&gt;2&lt;/DIV&gt;&lt;/DIV&gt;&lt;/TD&gt;
&lt;TD style=&quot;PADDING-BOTTOM: 6px; PADDING-TOP: 6px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px&quot;&gt;
&lt;DIV style=&quot;FONT-FAMILY: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; COLOR: #010101; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; PADDING-RIGHT: 0px&quot;&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;Date&amp;nbsp;today&amp;nbsp;&lt;SPAN style=&quot;COLOR: #0086b3&quot;&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;=&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;new&lt;/SPAN&gt;&amp;nbsp;java.util.Date();&lt;/DIV&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;Timestamp&amp;nbsp;timestamp&amp;nbsp;&lt;SPAN style=&quot;COLOR: #0086b3&quot;&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;=&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;new&lt;/SPAN&gt;&amp;nbsp;Timestamp(today.getTime());&lt;/DIV&gt;&lt;/DIV&gt;&lt;/TD&gt;
&lt;TD style=&quot;VERTICAL-ALIGN: bottom; PADDING-BOTTOM: 4px; PADDING-TOP: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 2px&quot;&gt;&lt;A style=&quot;TEXT-DECORATION: none&quot; href=&quot;http://colorscripter.com/info#e&quot; target=_blank&gt;&lt;SPAN style=&quot;FONT-SIZE: 9px; WORD-BREAK: normal; COLOR: white; PADDING-BOTTOM: 1px; PADDING-TOP: 1px; PADDING-LEFT: 1px; PADDING-RIGHT: 1px; BACKGROUND-COLOR: #e5e5e5; border-radius: 10px&quot;&gt;cs&lt;/SPAN&gt;&lt;/A&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;
&lt;P&gt;String 이 아닌 Timestamp 타입으로 바로 DB에&amp;nbsp;입력하였더니 더이상 오류가 발생하지 않았다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;VO를 사용중이고 Mybatis를 활용하여 DB에 데이터를&amp;nbsp;insert 할 때 parameterType을 VO로 설정하였다면, VO에 컬럼과 매칭되는 변수의 타입을 Timestamp로 설정하면 된다.&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;br /&gt;
&lt;SCRIPT src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot; async&gt;&lt;/SCRIPT&gt;
&lt;INS class=adsbygoogle style=&quot;TEXT-ALIGN: center; DISPLAY: block&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;3295854551&quot;&gt;&lt;/INS&gt;
&lt;SCRIPT&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/SCRIPT&gt;
&lt;br /&gt;&lt;/P&gt;</description>
      <category>database/oracle</category>
      <author>CofS</author>
      <guid isPermaLink="true">https://cofs.tistory.com/370</guid>
      <comments>https://cofs.tistory.com/370#entry370comment</comments>
      <pubDate>Thu, 2 Aug 2018 16:29:51 +0900</pubDate>
    </item>
    <item>
      <title>Mybatis DAO에서 쿼리 추출 및 로그 찍기 (Log 라이브러리 사용안함)</title>
      <link>https://cofs.tistory.com/369</link>
      <description>&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 14pt&quot;&gt;&lt;STRONG&gt;Mybatis DAO에서 쿼리 추출 및 로그 찍기 (Log 라이브러리 사용안함)&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Mybatis 를 사용하면서 쿼리를 콘솔에 찍을 일이 생겼다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Log4j, log4sql, log4j-remix 등을 사용하면 쉽게 적용할 수 있다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;COLOR: #ff0000&quot;&gt;하지만 이번 포스팅에서는 위 라이브러리들을 활용하지 않고서 Mybatis만을 이용해서 진행하려 한다.&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;br /&gt;
&lt;SCRIPT src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot; async&gt;&lt;/SCRIPT&gt;
 &lt;INS class=adsbygoogle style=&quot;TEXT-ALIGN: center; DISPLAY: block&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;3295854551&quot;&gt;&lt;/INS&gt;
&lt;SCRIPT&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/SCRIPT&gt;
&lt;br /&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 style=&quot;MARGIN-LEFT: 2em&quot;&gt;&lt;STRONG&gt;1. sqlSession 에서 쿼리를 추출&lt;/STRONG&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&lt;STRONG&gt;2. sqlSession 에서 parameter 추출&lt;/STRONG&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&lt;STRONG&gt;3. 쿼리의 ? 문자열을&amp;nbsp;parameter로 치환&lt;/STRONG&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&lt;STRONG&gt;4. 출력&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;소스코드&lt;/P&gt;
&lt;DIV class=colorscripter-code style=&quot;OVERFLOW: auto; FONT-FAMILY: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; WIDTH: 700px; POSITION: relative !important; COLOR: #010101&quot;&gt;
&lt;TABLE class=colorscripter-code-table style=&quot;BORDER-TOP: medium none; BORDER-RIGHT: medium none; BORDER-BOTTOM: medium none; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; BORDER-LEFT: medium none; LINE-HEIGHT: 140%; PADDING-RIGHT: 0px; BACKGROUND-COLOR: #fafafa; border-radius: 4px&quot; cellSpacing=0 cellPadding=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-RIGHT: #e5e5e5 2px solid; PADDING-BOTTOM: 6px; PADDING-TOP: 6px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;
&lt;DIV style=&quot;FONT-FAMILY: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; WORD-BREAK: normal; COLOR: #666; PADDING-BOTTOM: 0px; TEXT-ALIGN: right; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; PADDING-RIGHT: 0px&quot;&gt;
&lt;DIV&gt;1&lt;/DIV&gt;
&lt;DIV&gt;2&lt;/DIV&gt;
&lt;DIV&gt;3&lt;/DIV&gt;
&lt;DIV&gt;4&lt;/DIV&gt;
&lt;DIV&gt;5&lt;/DIV&gt;
&lt;DIV&gt;6&lt;/DIV&gt;
&lt;DIV&gt;7&lt;/DIV&gt;
&lt;DIV&gt;8&lt;/DIV&gt;
&lt;DIV&gt;9&lt;/DIV&gt;
&lt;DIV&gt;10&lt;/DIV&gt;
&lt;DIV&gt;11&lt;/DIV&gt;
&lt;DIV&gt;12&lt;/DIV&gt;
&lt;DIV&gt;13&lt;/DIV&gt;
&lt;DIV&gt;14&lt;/DIV&gt;
&lt;DIV&gt;15&lt;/DIV&gt;
&lt;DIV&gt;16&lt;/DIV&gt;
&lt;DIV&gt;17&lt;/DIV&gt;
&lt;DIV&gt;18&lt;/DIV&gt;&lt;/DIV&gt;&lt;/TD&gt;
&lt;TD style=&quot;PADDING-BOTTOM: 6px; PADDING-TOP: 6px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px&quot;&gt;
&lt;DIV style=&quot;FONT-FAMILY: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; COLOR: #010101; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 0px; MARGIN: 0px; PADDING-RIGHT: 0px&quot;&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;class&lt;/SPAN&gt;&amp;nbsp;SampleDao{&lt;/DIV&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SqlSession&amp;nbsp;sqlSession&amp;nbsp;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;=&lt;/SPAN&gt;&amp;nbsp;SqlMapClient.getSqlSession();&lt;/DIV&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;public&lt;/SPAN&gt;&amp;nbsp;List&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;&amp;lt;&lt;/SPAN&gt;Object&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;&amp;gt;&lt;/SPAN&gt;&amp;nbsp;getList(Map&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: #066de2&quot;&gt;String&lt;/SPAN&gt;,&amp;nbsp;Object&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;&amp;gt;&lt;/SPAN&gt;&amp;nbsp;paramMap)&amp;nbsp;{&lt;/DIV&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style=&quot;COLOR: #066de2&quot;&gt;String&lt;/SPAN&gt;&amp;nbsp;sql&amp;nbsp;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;=&lt;/SPAN&gt;&amp;nbsp;sqlSession.getConfiguration().getMappedStatement(&lt;SPAN style=&quot;COLOR: #63a35c&quot;&gt;&quot;sample.Sample.getList&quot;&lt;/SPAN&gt;).getBoundSql(paramMap).getSql();&lt;/DIV&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;List&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;&amp;lt;&lt;/SPAN&gt;ParameterMapping&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;&amp;gt;&lt;/SPAN&gt;&amp;nbsp;parameterMappings&amp;nbsp;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;=&lt;/SPAN&gt;&amp;nbsp;sqlSession.getConfiguration().getMappedStatement(&lt;SPAN style=&quot;COLOR: #63a35c&quot;&gt;&quot;sample.Sample.getList&quot;&lt;/SPAN&gt;).getBoundSql(paramMap).getParameterMappings();&lt;/DIV&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;for&lt;/SPAN&gt;&amp;nbsp;(ParameterMapping&amp;nbsp;parameterMapping&amp;nbsp;:&amp;nbsp;parameterMappings)&amp;nbsp;{&lt;/DIV&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&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;&lt;SPAN style=&quot;COLOR: #066de2&quot;&gt;String&lt;/SPAN&gt;&amp;nbsp;param&amp;nbsp;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;=&lt;/SPAN&gt;&amp;nbsp;(&lt;SPAN style=&quot;COLOR: #066de2&quot;&gt;String&lt;/SPAN&gt;)&amp;nbsp;paramMap.get(parameterMapping.getProperty());&lt;/DIV&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&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;sql&amp;nbsp;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;=&lt;/SPAN&gt;&amp;nbsp;sql.replaceFirst(&lt;SPAN style=&quot;COLOR: #63a35c&quot;&gt;&quot;\\?&quot;&lt;/SPAN&gt;,&amp;nbsp;&lt;SPAN style=&quot;COLOR: #63a35c&quot;&gt;&quot;'&quot;&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;+&lt;/SPAN&gt;&amp;nbsp;param&amp;nbsp;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;+&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style=&quot;COLOR: #63a35c&quot;&gt;&quot;'&quot;&lt;/SPAN&gt;);&lt;/DIV&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/DIV&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style=&quot;COLOR: #066de2&quot;&gt;System&lt;/SPAN&gt;.&lt;SPAN style=&quot;COLOR: #066de2&quot;&gt;out&lt;/SPAN&gt;.&lt;SPAN style=&quot;COLOR: #066de2&quot;&gt;println&lt;/SPAN&gt;(&lt;SPAN style=&quot;COLOR: #63a35c&quot;&gt;&quot;sql&amp;nbsp;:&amp;nbsp;&quot;&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;+&lt;/SPAN&gt;&amp;nbsp;sql);&lt;/DIV&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style=&quot;COLOR: #a71d5d&quot;&gt;return&lt;/SPAN&gt;&amp;nbsp;sqlSession.selectList(&lt;SPAN style=&quot;COLOR: #63a35c&quot;&gt;&quot;sample.Sample.getList&quot;&lt;/SPAN&gt;,&amp;nbsp;paramMap);&lt;/DIV&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/DIV&gt;
&lt;DIV style=&quot;WHITE-SPACE: pre; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; PADDING-LEFT: 6px; PADDING-RIGHT: 6px&quot;&gt;}&lt;/DIV&gt;&lt;/DIV&gt;
&lt;DIV style=&quot;FONT-SIZE: 9px; FONT-STYLE: italic; TEXT-ALIGN: right; MARGIN-TOP: -13px; MARGIN-RIGHT: 5px&quot;&gt;&lt;A style=&quot;TEXT-DECORATION: none; COLOR: #e5e5e5&quot; href=&quot;http://colorscripter.com/info#e&quot; target=_blank&gt;Colored by Color Scripter&lt;/A&gt;&lt;/DIV&gt;&lt;/TD&gt;
&lt;TD style=&quot;VERTICAL-ALIGN: bottom; PADDING-BOTTOM: 4px; PADDING-TOP: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: 2px&quot;&gt;&lt;A style=&quot;TEXT-DECORATION: none&quot; href=&quot;http://colorscripter.com/info#e&quot; target=_blank&gt;&lt;SPAN style=&quot;FONT-SIZE: 9px; WORD-BREAK: normal; COLOR: white; PADDING-BOTTOM: 1px; PADDING-TOP: 1px; PADDING-LEFT: 1px; PADDING-RIGHT: 1px; BACKGROUND-COLOR: #e5e5e5; border-radius: 10px&quot;&gt;cs&lt;/SPAN&gt;&lt;/A&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;1# :&amp;nbsp;DAO 클래스&lt;/P&gt;
&lt;P&gt;3# : SqlSession 객체 생성&lt;/P&gt;
&lt;P&gt;5# : 리스트를 조회하는 함수&lt;/P&gt;
&lt;P&gt;6# : statement(구문을 찾기 위해 사용될 수 있는 네임스페이스내 유일한 구분자), parameter 를 활용하여&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;sql를 얻음&lt;/P&gt;
&lt;P&gt;7# : statement(구문을 찾기 위해 사용될 수 있는 네임스페이스내 유일한 구분자), parameter 를 활용하여&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;sql에 활용될 parameterMapping 정보를 얻음&lt;/P&gt;
&lt;P&gt;9# : parameterMapping 정보만큼 루프&lt;/P&gt;
&lt;P&gt;10# : parameterMapping 에 있는 프로퍼티를 paramMap의 Key로 활용하여 맵핑될 값을 추출&lt;/P&gt;
&lt;P&gt;11# : sql에서 ? 기호를 맵핑될 값으로 차례로 치환&lt;/P&gt;
&lt;P&gt;14# : 콘솔에 출력&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;br /&gt;
&lt;SCRIPT src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot; async&gt;&lt;/SCRIPT&gt;
&lt;INS class=adsbygoogle style=&quot;TEXT-ALIGN: center; DISPLAY: block&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;1510740417&quot;&gt;&lt;/INS&gt;
&lt;SCRIPT&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/SCRIPT&gt;
&lt;br /&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;COLOR: #ff5e00&quot;&gt;parameter가 map일 경우만 작성된 소스이고 vo이거나 기타 다른 파라미터 일 경우도 고려해서 작성해야 한다.&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;COLOR: #ff5e00&quot;&gt;또한 파라미터에 특수문자들이 있는 경우 오류가 발생할 수 있다.&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;COLOR: #ff5e00&quot;&gt;위 소스는 테스트 용도로만 사용하길 바란다.&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;</description>
      <category>framework/MyBatis</category>
      <author>CofS</author>
      <guid isPermaLink="true">https://cofs.tistory.com/369</guid>
      <comments>https://cofs.tistory.com/369#entry369comment</comments>
      <pubDate>Tue, 31 Jul 2018 15:42:45 +0900</pubDate>
    </item>
    <item>
      <title>대전 스포티지R 에바크리닝 주관적 후기</title>
      <link>https://cofs.tistory.com/368</link>
      <description>&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;/b&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;이 포스팅은 광고가 아니며 자동차 에어컨 냄새에 지쳐있던 필자가 에프터블로우를 설치하고 에바크리닝을 받은 후기와 이후 냄새가 얼마만에 또 올라오는지를 기록하고&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;자 작성하는 글입니다.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;/b&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&lt;b&gt;에바크리닝을 받은 곳이 궁금하면 비공개 댓글 써주시면 답변 달아드리겠습니다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;/b&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&lt;b&gt;또한 에바크리닝은 운전자의 습관, 차량의 상태, 업체의 능력에 따라 다를 수 있으므로 참고하시기 바랍니다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;먼저 필자의 상황과 비슷한 사람도 있을 것으로 예상되어 필자의 상태를 간략하게 기록한다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;차량은 스포티지 R이며 매년 초여름에 에바크리닝을 받는다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;여러 업체를 다니다 지금은 한 업체에 정착한 상태이며 매년 받아도 장마철이 끝나면 다시 냄새가 올라왔다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;에어컨을 30분 정도 최저로 틀으면 냄새는 안나지만 송풍구에도 습기가 차는게 보이는 수준이다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;매년 에바크리닝을 받기 때문에 따로 송풍으로 말리지 않는다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;
&lt;script src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;text-align: center; display: block;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;1510740417&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;
&lt;script&gt;      (adsbygoogle = window.adsbygoogle || []).push({}); &lt;/script&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;위와 같은 상황이며 지푸라기라도 잡는 심정으로 올해는 에프터블로우도 설치했다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a class=&quot;tx-link&quot; href=&quot;http://cofs.tistory.com/367&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span style=&quot;color: #0055ff;&quot;&gt;에프터 블로우 후기(광고 아니고 주관적인 후기임)&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;이번 포스팅은 어떻게 에바크리닝을 받았는지에 대한 내용이다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;다음 포스팅은 얼마나 냄새가 안나는지 이다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;525&quot;&gt;&lt;span data-url=&quot;https://t1.daumcdn.net/cfile/tistory/99E5F73F5B2F79B030?original&quot; data-phocus=&quot;https://t1.daumcdn.net/cfile/tistory/99E5F73F5B2F79B030?original&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99E5F73F5B2F79B030&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99E5F73F5B2F79B030&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;700&quot; height=&quot;525&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;525&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;시작이다.&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;조수석에 발판을 들어내고선 작업할 수 있게 패드를 깔았다.&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;그리고선 블로우모터를 분리한다.&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;525&quot;&gt;&lt;span data-url=&quot;https://t1.daumcdn.net/cfile/tistory/995C6A3F5B2F79B112?original&quot; data-phocus=&quot;https://t1.daumcdn.net/cfile/tistory/995C6A3F5B2F79B112?original&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/995C6A3F5B2F79B112&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F995C6A3F5B2F79B112&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;700&quot; height=&quot;525&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;525&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;역시나 깨끗하다.&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;필자는 매년 에바크리닝을 받기 때문에 육안으로 보더라도 매우 깨끗하다.&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;블로우모터의 오염때문에 나는 냄새는 아니란 것을 알 수 있다.&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;3년간 청소를 안했다면 3년간 청소안한 고깃집의 선풍기 날개를 떠올리면 비슷할 꺼라 생각한다.&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;525&quot;&gt;&lt;span data-url=&quot;https://t1.daumcdn.net/cfile/tistory/99B34E3F5B2F79B60B?original&quot; data-phocus=&quot;https://t1.daumcdn.net/cfile/tistory/99B34E3F5B2F79B60B?original&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99B34E3F5B2F79B60B&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99B34E3F5B2F79B60B&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;700&quot; height=&quot;525&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;525&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;새척세제를 뿌린 모습이다.&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;베어링이 있기 때문에 세제색이 조금은 회색빛이다. (쇳가루, 조금의 먼지 등)&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;525&quot;&gt;&lt;span data-url=&quot;https://t1.daumcdn.net/cfile/tistory/99AF453F5B2F79B81D?original&quot; data-phocus=&quot;https://t1.daumcdn.net/cfile/tistory/99AF453F5B2F79B81D?original&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99AF453F5B2F79B81D&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99AF453F5B2F79B81D&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;700&quot; height=&quot;525&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;525&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;고압수로 마무리 한다.&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;아래 떨어진 물을 보더라도 매우 깨끗한 상태이다.&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;525&quot;&gt;&lt;span data-url=&quot;https://t1.daumcdn.net/cfile/tistory/99E7583F5B2F79B906?original&quot; data-phocus=&quot;https://t1.daumcdn.net/cfile/tistory/99E7583F5B2F79B906?original&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99E7583F5B2F79B906&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99E7583F5B2F79B906&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;700&quot; height=&quot;525&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;525&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;다음으로는 냄새의 근원지라 생각되는 에바포레이터 청소이다.&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;이 곳은 고압 호수에 내시경 카메라를 설치하고 스마트폰으로 연결해서 보면서 진행한다.&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;안보고 하는것 보단 났겠지 라는 심정이다.&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;솔찍히 육안으로는 오염도가 느껴지지 않는다.&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;먼지가 쌓이거나 이상한 색을 띄고있는 곰팡이는 보이지 않는다.&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;
&lt;script src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;text-align: center; display: block;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;3295854551&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;
&lt;script&gt;      (adsbygoogle = window.adsbygoogle || []).push({}); &lt;/script&gt;
&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;525&quot;&gt;&lt;span data-url=&quot;https://t1.daumcdn.net/cfile/tistory/99FDA33F5B2F79BB04?original&quot; data-phocus=&quot;https://t1.daumcdn.net/cfile/tistory/99FDA33F5B2F79BB04?original&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99FDA33F5B2F79BB04&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99FDA33F5B2F79BB04&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;700&quot; height=&quot;525&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;525&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;고압수로 새척한 후 나온 물이다.&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;먼지, 이물질이 포함되어있는 구정물이다.&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;그래도 이정도면 깨끗하다.&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;아 생각보다 깨끗한데 냄새는 왜케 나는지 진짜 의문이다.&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;525&quot;&gt;&lt;span data-url=&quot;https://t1.daumcdn.net/cfile/tistory/9975103F5B2F79BC11?original&quot; data-phocus=&quot;https://t1.daumcdn.net/cfile/tistory/9975103F5B2F79BC11?original&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/9975103F5B2F79BC11&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F9975103F5B2F79BC11&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;700&quot; height=&quot;525&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;525&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;새척이 끝난 에바포레이터에 약품을 뿌려 때를 불려준다.&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;보는 내가 속이 시원하다.&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;525&quot;&gt;&lt;span data-url=&quot;https://t1.daumcdn.net/cfile/tistory/99D9743D5B2F79BD1C?original&quot; data-phocus=&quot;https://t1.daumcdn.net/cfile/tistory/99D9743D5B2F79BD1C?original&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99D9743D5B2F79BD1C&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99D9743D5B2F79BD1C&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;700&quot; height=&quot;525&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;525&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;송풍구들에도 거품을 쏜다.&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;여담이지만 데쉬보드부터 운전석까지 집에서 뜯어본 적이 있는데&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;송풍구 속에 녹색의 곰팡이를 마주한 적이 있었다.&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;그 당시에는 손이 들어가는 곳까지 닦았지만&amp;nbsp;아마 그 라인 전체가 곰팡이라 생각하면 진짜 끔찍하다.&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;전체를 교환할 수 도 없는 노릇이고...&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;아마 그렇수도 있겠다라는 생각을 하곤한다.&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;525&quot; data-origin-height=&quot;700&quot;&gt;&lt;span data-url=&quot;https://t1.daumcdn.net/cfile/tistory/990D093D5B2F79C418?original&quot; data-phocus=&quot;https://t1.daumcdn.net/cfile/tistory/990D093D5B2F79C418?original&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/990D093D5B2F79C418&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F990D093D5B2F79C418&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;525&quot; height=&quot;700&quot; data-origin-width=&quot;525&quot; data-origin-height=&quot;700&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;송풍구에 나온 거품이다.&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;이녀석이 송풍구에있는 곰팡이를 닦아주길 기대하는 수 밖에...&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;525&quot;&gt;&lt;span data-url=&quot;https://t1.daumcdn.net/cfile/tistory/9966743D5B2F79CD2D?original&quot; data-phocus=&quot;https://t1.daumcdn.net/cfile/tistory/9966743D5B2F79CD2D?original&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/9966743D5B2F79CD2D&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F9966743D5B2F79CD2D&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;700&quot; height=&quot;525&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;525&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;스팀으로 거품을 닦아 준다.&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;뜨거운 스팀이니까 곰팡이가 다 죽지 않을까...&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;525&quot; data-origin-height=&quot;700&quot;&gt;&lt;span data-url=&quot;https://t1.daumcdn.net/cfile/tistory/9934003D5B2F79CF13?original&quot; data-phocus=&quot;https://t1.daumcdn.net/cfile/tistory/9934003D5B2F79CF13?original&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/9934003D5B2F79CF13&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F9934003D5B2F79CF13&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;525&quot; height=&quot;700&quot; data-origin-width=&quot;525&quot; data-origin-height=&quot;700&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;깨끗해진 모습의 송풍구도 한장 찍어 두었다.&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;청소 전의 송풍구를 찍었어야 했는데 그생각을 못했다.&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;525&quot;&gt;&lt;span data-url=&quot;https://t1.daumcdn.net/cfile/tistory/99B4103D5B2F79D022?original&quot; data-phocus=&quot;https://t1.daumcdn.net/cfile/tistory/99B4103D5B2F79D022?original&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99B4103D5B2F79D022&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99B4103D5B2F79D022&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;700&quot; height=&quot;525&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;525&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;에바크리닝을 하며 나온 물이다.&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;좌측부터 블로우모터 세척, 에바포레이터 고압 새척, 행굼물 이다.&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;육안으로 봐도 깨끗하다.&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;곰팡이는 먼지와도 관계가 있지만 먼지가 없어도 있을 수 있다.&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;모든 작업이 끝났다.&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;이제 에프터 블로우와 함께 올 여름엔 냄새가 나지 않기를 기다리는 수 밖에 없다.&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;냄새가 올라오면 바로 또 포스팅을 할 계획이다.&lt;/p&gt;
&lt;p style=&quot;float: none; text-align: left; clear: none;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>일상</category>
      <author>CofS</author>
      <guid isPermaLink="true">https://cofs.tistory.com/368</guid>
      <comments>https://cofs.tistory.com/368#entry368comment</comments>
      <pubDate>Sun, 24 Jun 2018 20:15:18 +0900</pubDate>
    </item>
    <item>
      <title>대전 스포티지R 에프터블로우 주관적 후기</title>
      <link>https://cofs.tistory.com/367</link>
      <description>&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&lt;strong&gt;&lt;/strong&gt;&amp;nbsp;&lt;script async=&quot;&quot; src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;

&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display:block&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;3722548661&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;&lt;/p&gt;&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&lt;strong&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;본 포스팅은 자동차 에어컨 냄새에 지쳐 필자가 직접 돈을 지불하고 에프터블로우를 구매한 후기이며 광고가 아님을 알려드립니다.&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&lt;strong&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&lt;strong&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;아주 주관적으로 솔직하게&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;&amp;nbsp;작성했으며&lt;/span&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt; 사람마다, 차량마다 다를 수 있음을 참고하여 주시기 바랍니다.&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&lt;strong&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&lt;strong&gt;&lt;span style=&quot;COLOR: #ff0000&quot;&gt;시공했던 매장 및 가격이 궁금하신 분은 비공개 댓글로 메일을 입력해 주시면 답장해 드리겠습니다.&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;에어컨의 냄새는 에바포레이터라는 공기를 냉각해주는 곳에 결로현상으로 인해 습기가 차고 이 습기로 인해 곰팡이가 서식하면서 난다고 알려져 있다.&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;필자는 매년 초여름에 에바클리닝을 받고있다.&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;하지만 이 고질적인 냄새는 항상 장마가 끝난 후 다시 나기 시작했다.&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;장마가 끝난 후 냄새는 스프레이, 훈증캔, 필터형 곰팡이제거제 등으로 냄새를 가려 버티곤 했다.&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&lt;script async=&quot;&quot; src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display:block; text-align:center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;8108516233&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;필자는 저 곰팡이를 제거해준다는 녀석들을 왠만큼 사용해 보았는데 곰팡이가 사라지는 것은 모르겠고 시큼한 냄새가 화확적인 냄새로 가려지는 것은 느낄 수 있었다.&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;불쾌한 냄새가 나지 않아 참고 타는 것으로 늘 만족했다.&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;매년 에바클리닝을 받기 때문에 따로 에어컨을 켰다가 송풍을 켜서 말리는 것은 하지 않는다.&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;그래서 이 시큼한 냄새가 더 심한건지도 모르겠다.&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;에어컨 냄새때문에 지쳐있을 찰나 에프터블로우라는 것을 발견했다.&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;필자가 선택한 모델은 에프터블로우 Plus 이다.&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;시동을 끄고난 이후 블로우모터를 실행시켜서 에어컨을 말려준다는 것이다.&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;많이 찾아보니 효과를 본사람도 있지만 우려하는 사람들도 많았다.&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;시동이 꺼진 후 습기를 말리면 그 습기는 차내로 들어와 차내부가 습해지지 않냐 부터 노이즈가 생기는 사람등 다양했다.&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;그래도 일말의 희망을 가지고 자비로 달아보기로 했다.&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&lt;script async=&quot;&quot; src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display:block; text-align:center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;4608841651&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;가격대는 인터넷에서 찾아보니&amp;nbsp;2018년 6월 기준&amp;nbsp;12마넌 대, 출장 설치까지하면 15마넌대이다.&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;오프라인으로 찾아보니 판매 및 설치를 해주는 곳이 있었고 가격대도 비슷해서 가기로했다.&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;참고로 에프터블로우 설치는 매우 간단하니 직접 하는것도 나쁘지 않다.&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;나는 이것저것 설명을 더 들어보고자 매장을 방문했다.&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 700px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99FBE9385B2F748C06&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99FBE9385B2F748C06&quot; width=&quot;700&quot; height=&quot;525&quot; filename=&quot;KakaoTalk_Moim_5kjmXk3bQQmngeEnGilms4lc0iPREl.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;에프터블로우 박스 개봉 후 모습니다.&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;설명서와 에프터블로우 기계와 연결잭들이 들어있다.&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 700px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99BDF0385B2F748D39&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99BDF0385B2F748D39&quot; width=&quot;700&quot; height=&quot;525&quot; filename=&quot;KakaoTalk_Moim_5kjmXk3bQQmngeEnGilms4lc0iDuox.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;에어컨 습기 건조기라고 써있다.&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;이 모델은 라디오 주파수 간섭이 개선된 모델이다.&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;인터넷에 찾아보면 관련한 모델명들이 있을 것이다.&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;br /&gt;
&lt;script src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot; async=&quot;&quot;&gt;&lt;/script&gt;
 &lt;ins class=&quot;adsbygoogle&quot; style=&quot;TEXT-ALIGN: center; DISPLAY: block&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;1510740417&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 700px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/998BBB385B2F748E28&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F998BBB385B2F748E28&quot; width=&quot;700&quot; height=&quot;525&quot; filename=&quot;KakaoTalk_Moim_5kjmXk3bQQmngeEnGilms4lc0iNFfj.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;조수석 쪽에 부착한다.&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;블로우모터가 조수석에 있기 때문이다. (당연함)&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 525px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/991AB1385B2F749004&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F991AB1385B2F749004&quot; width=&quot;525&quot; height=&quot;700&quot; filename=&quot;KakaoTalk_Moim_5kjmXk3bQQmngeEnGilms4lc0iLJTP.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;부착 후 대각선에서 본 모습이다.&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;생각보다 거슬리지 않는다.&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;선정리를 제대로 하지 않으면 귀찮아질 것 같다.&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;br /&gt;
&lt;script src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot; async=&quot;&quot;&gt;&lt;/script&gt;
&lt;ins class=&quot;adsbygoogle&quot; style=&quot;TEXT-ALIGN: center; DISPLAY: block&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;3295854551&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 700px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99B9F2385B2F749123&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99B9F2385B2F749123&quot; width=&quot;700&quot; height=&quot;525&quot; filename=&quot;KakaoTalk_Moim_5kjmXk3bQQmngeEnGilms4lc0iK5B7.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;조수석 정면에서 본 모습이다.&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;사이즈가 생각보다 작아서 발로 건드릴 일도 없어 보인다.&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 700px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/9918EF385B2F749231&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F9918EF385B2F749231&quot; width=&quot;700&quot; height=&quot;525&quot; filename=&quot;KakaoTalk_Moim_5kjmXk3bQQmngeEnGilms4lc0iHTcl.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;시동을 걸면 ACC 신호가 들어온다.&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;이 신호가 들어왔다가&amp;nbsp;끝나면 블로우 모터를 작동시키는 원리같다.&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;시동을 켰을 때&amp;nbsp;충전에 불이 들어온다.&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;별도 충전식 배터리를 내장하고 있으며 열받았을 때 충전안하고 노이즈가 개선됬고 등등 안전장치 및 기능들이&amp;nbsp;있다.(쇼핑몰 참고하는게 정확하고 빠름)&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;script async=&quot;&quot; src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display:block; text-align:center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;1982678315&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;동작은 다음과 같다.&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;최초 시동 끄면 10초 후 실행된다.&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;이는 잘 연결이 되었다는 테스트 실행이다.&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;그 이후 10분 후 1분 간격으로 켜지고 꺼지고를 반복한다고 한다.&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;장착은 천천히 10분정도 걸린것 같다.&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;앞으로 지켜보는 일만 있을 것같다.&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&lt;script async=&quot;&quot; src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display:block; text-align:center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-7273408069261566&quot; data-ad-slot=&quot;8356514973&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;부착 첫날 생각한 단점으로는 에어컨을 키지 않아도 시동을 끄면 실행된다는 점??&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;이건 짧고 많은 운행이 있는 사람이라면 불편해 보인다.&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;TEXT-ALIGN: left&quot;&gt;물론 전원 스위치가 있어 끄면 된다.&lt;/p&gt;</description>
      <category>일상</category>
      <author>CofS</author>
      <guid isPermaLink="true">https://cofs.tistory.com/367</guid>
      <comments>https://cofs.tistory.com/367#entry367comment</comments>
      <pubDate>Sun, 24 Jun 2018 19:49:18 +0900</pubDate>
    </item>
  </channel>
</rss>