<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>I'm sw engineer!</title>
    <link>https://imswengineer.tistory.com/</link>
    <description>  한 걸음 씩 나아가는 중  </description>
    <language>ko</language>
    <pubDate>Tue, 14 Jul 2026 18:51:23 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>오선지♬</managingEditor>
    <image>
      <title>I'm sw engineer!</title>
      <url>https://tistory1.daumcdn.net/tistory/4909728/attach/d0d16a4d442048a18afd5fa1194e406c</url>
      <link>https://imswengineer.tistory.com</link>
    </image>
    <item>
      <title>[ERROR] 공공데이터 포털 Unauthorized 응답</title>
      <link>https://imswengineer.tistory.com/1442</link>
      <description>&lt;p data-end=&quot;776&quot; data-start=&quot;717&quot; data-ke-size=&quot;size16&quot;&gt;최근 공공데이터포털에서 &lt;b&gt;HTTP &amp;rarr; HTTPS 전환&lt;/b&gt; 또는 API 경로 변경이 있을 수 있습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;894&quot; data-start=&quot;777&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;823&quot; data-start=&quot;777&quot;&gt;예전에는 &lt;a href=&quot;http://apis.data.go.kr/...&quot;&gt;http://apis.data.go.kr/...&lt;/a&gt; 사용 가능했지만&lt;/li&gt;
&lt;li data-end=&quot;894&quot; data-start=&quot;824&quot;&gt;지금은 &lt;a href=&quot;https://apis.data.go.kr/...&quot;&gt;https://apis.data.go.kr/...&lt;/a&gt; 로 호출해야 Unauthorized가 안 날 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>Error</category>
      <author>오선지♬</author>
      <guid isPermaLink="true">https://imswengineer.tistory.com/1442</guid>
      <comments>https://imswengineer.tistory.com/1442#entry1442comment</comments>
      <pubDate>Mon, 5 Jan 2026 16:02:56 +0900</pubDate>
    </item>
    <item>
      <title>[JAVA] Text Block</title>
      <link>https://imswengineer.tistory.com/1425</link>
      <description>&lt;h1 data-end=&quot;97&quot; data-start=&quot;74&quot;&gt;✅ Java Text Block 이란?&lt;/h1&gt;
&lt;p data-end=&quot;192&quot; data-start=&quot;99&quot; data-ke-size=&quot;size16&quot;&gt;Java 15 이상에서는 긴 문자열(특히 JSON, HTML, SQL)을 편하게 작성하기 위해&lt;br /&gt;&lt;b&gt;여러 줄의 문자열을 그대로 입력할 수 있는 문법&lt;/b&gt;이 생겼습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1768368073976&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;String mockJson = &quot;&quot;&quot;
{
  &quot;name&quot;: &quot;test&quot;,
  &quot;value&quot;: 123
}
&quot;&quot;&quot;;&lt;/code&gt;&lt;/pre&gt;
&lt;h1 data-end=&quot;298&quot; data-start=&quot;286&quot;&gt;  왜 3개인가?&lt;/h1&gt;
&lt;p data-end=&quot;387&quot; data-start=&quot;300&quot; data-ke-size=&quot;size16&quot;&gt;&quot;&quot;&quot;(Triple Quotes) 로 시작하고&lt;br /&gt;&quot;&quot;&quot; 로 끝나면&lt;br /&gt;그 안의 모든 줄바꿈, 공백, 글자를 &lt;b&gt;있는 그대로&lt;/b&gt; 문자열로 처리합니다.&lt;/p&gt;
&lt;p data-end=&quot;419&quot; data-start=&quot;389&quot; data-ke-size=&quot;size16&quot;&gt;즉, 편하게 여러 줄을 넣으려고 3개를 쓰는 것입니다.&lt;/p&gt;
&lt;p data-end=&quot;419&quot; data-start=&quot;389&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1 data-end=&quot;445&quot; data-start=&quot;426&quot;&gt;  기존 방식 (불편한 방식)&lt;/h1&gt;
&lt;p data-end=&quot;470&quot; data-start=&quot;447&quot; data-ke-size=&quot;size16&quot;&gt;Java 14까지&lt;/p&gt;
&lt;pre id=&quot;code_1768368098494&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;String mockJson = &quot;{\n&quot; +
&quot;  \&quot;name\&quot;: \&quot;test\&quot;,\n&quot; +
&quot;  \&quot;value\&quot;: 123\n&quot; +
&quot;}&quot;;&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;613&quot; data-start=&quot;567&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;583&quot; data-start=&quot;567&quot;&gt;\n 줄바꿈 넣어야 함&lt;/li&gt;
&lt;li data-end=&quot;596&quot; data-start=&quot;584&quot;&gt;+ 이어줘야 함&lt;/li&gt;
&lt;li data-end=&quot;613&quot; data-start=&quot;597&quot;&gt;\&quot; 이스케이프 필요함&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;624&quot; data-start=&quot;615&quot; data-ke-size=&quot;size16&quot;&gt;엄청 불편함  &lt;/p&gt;
&lt;p data-end=&quot;624&quot; data-start=&quot;615&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1 data-end=&quot;662&quot; data-start=&quot;631&quot;&gt;  Text Block( &quot;&quot;&quot; ) 방식의 장점&lt;/h1&gt;
&lt;div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 110px;&quot; border=&quot;1&quot; data-end=&quot;824&quot; data-start=&quot;664&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style13&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;height: 22px;&quot;&gt;기존 방식&lt;/td&gt;
&lt;td style=&quot;height: 22px;&quot;&gt;Text Block&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot; data-end=&quot;738&quot; data-start=&quot;713&quot;&gt;
&lt;td style=&quot;height: 22px;&quot; data-col-size=&quot;sm&quot; data-end=&quot;728&quot; data-start=&quot;713&quot;&gt;줄바꿈 수동 관리 필요&lt;/td&gt;
&lt;td style=&quot;height: 22px;&quot; data-end=&quot;738&quot; data-start=&quot;728&quot; data-col-size=&quot;sm&quot;&gt;자동 줄바꿈&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot; data-end=&quot;766&quot; data-start=&quot;739&quot;&gt;
&lt;td style=&quot;height: 22px;&quot; data-col-size=&quot;sm&quot; data-end=&quot;755&quot; data-start=&quot;739&quot;&gt;\&quot; 이스케이프 필요&lt;/td&gt;
&lt;td style=&quot;height: 22px;&quot; data-end=&quot;766&quot; data-start=&quot;755&quot; data-col-size=&quot;sm&quot;&gt;대부분 불필요&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot; data-end=&quot;806&quot; data-start=&quot;767&quot;&gt;
&lt;td style=&quot;height: 22px;&quot; data-col-size=&quot;sm&quot; data-end=&quot;777&quot; data-start=&quot;767&quot;&gt;가독성 떨어짐&lt;/td&gt;
&lt;td style=&quot;height: 22px;&quot; data-end=&quot;806&quot; data-start=&quot;777&quot; data-col-size=&quot;sm&quot;&gt;JSON / HTML 그대로 보여서 읽기 좋음&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot; data-end=&quot;824&quot; data-start=&quot;807&quot;&gt;
&lt;td style=&quot;height: 22px;&quot; data-col-size=&quot;sm&quot; data-end=&quot;817&quot; data-start=&quot;807&quot;&gt;많은 + 연산&lt;/td&gt;
&lt;td style=&quot;height: 22px;&quot; data-end=&quot;824&quot; data-start=&quot;817&quot; data-col-size=&quot;sm&quot;&gt;불필요&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</description>
      <category>JAVA</category>
      <author>오선지♬</author>
      <guid isPermaLink="true">https://imswengineer.tistory.com/1425</guid>
      <comments>https://imswengineer.tistory.com/1425#entry1425comment</comments>
      <pubDate>Thu, 27 Nov 2025 13:14:10 +0900</pubDate>
    </item>
    <item>
      <title>[Error][MyBatis]Caused by: org.xml.sax.SAXParseException: The processing instruction target matching &amp;quot;[xX][mM][lL]&amp;quot; is not allowed.</title>
      <link>https://imswengineer.tistory.com/1424</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;  &lt;b&gt;XML 선언문(&amp;lt;?xml ... ?&amp;gt;)이 파일 맨 처음에 있지 않을 때&lt;/b&gt; 발생한다.&lt;/p&gt;
&lt;h3 data-end=&quot;410&quot; data-start=&quot;352&quot; data-ke-size=&quot;size23&quot;&gt;파일 맨 앞에 &lt;b&gt;보이지 않는 문자(BOM / 공백 / 줄바꿈)&lt;/b&gt; 있음 (가장 흔함)&lt;/h3&gt;
&lt;pre id=&quot;code_1766558728166&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;(공백)
&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-end=&quot;445&quot; data-start=&quot;412&quot; data-ke-size=&quot;size16&quot;&gt;MyBatis XML은 &lt;b&gt;진짜 1바이트도 허용 안 함&lt;/b&gt;.&lt;/p&gt;</description>
      <category>Error</category>
      <author>오선지♬</author>
      <guid isPermaLink="true">https://imswengineer.tistory.com/1424</guid>
      <comments>https://imswengineer.tistory.com/1424#entry1424comment</comments>
      <pubDate>Wed, 26 Nov 2025 09:36:08 +0900</pubDate>
    </item>
    <item>
      <title>[js] closest() 주의사항</title>
      <link>https://imswengineer.tistory.com/1423</link>
      <description>&lt;h3 data-end=&quot;512&quot; data-start=&quot;481&quot; data-ke-size=&quot;size23&quot;&gt;.closest()는 &amp;ldquo;위로만&amp;rdquo; 탐색함&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;558&quot; data-start=&quot;514&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;539&quot; data-start=&quot;514&quot;&gt;closest() &amp;rarr; 부모 방향만 탐색&lt;/li&gt;
&lt;li data-end=&quot;558&quot; data-start=&quot;540&quot;&gt;형제 / 자식은 절대 못 찾음&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-end=&quot;589&quot; data-start=&quot;565&quot; data-ke-size=&quot;size26&quot;&gt;✅ 정답 패턴 (형제 label 찾기)&lt;/h2&gt;
&lt;h3 data-end=&quot;622&quot; data-start=&quot;591&quot; data-ke-size=&quot;size23&quot;&gt;가장 안전한 방식 ⭐ (form-group 기준)&lt;/h3&gt;
&lt;pre id=&quot;code_1766474130131&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$el.find('#actTxt')
   .closest('.form-group')
   .find('label.form-label')
   .addClass('mb10');

$el.find('#planTxt')
   .closest('.form-group')
   .find('label.form-label')
   .addClass('mb10');&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Front/JS &amp;amp; jQuery</category>
      <author>오선지♬</author>
      <guid isPermaLink="true">https://imswengineer.tistory.com/1423</guid>
      <comments>https://imswengineer.tistory.com/1423#entry1423comment</comments>
      <pubDate>Fri, 21 Nov 2025 09:20:44 +0900</pubDate>
    </item>
    <item>
      <title>[jQuery] wrap() / wrapInner() / wrapAll()</title>
      <link>https://imswengineer.tistory.com/1422</link>
      <description>&lt;h2 data-end=&quot;622&quot; data-start=&quot;571&quot; data-ke-size=&quot;size26&quot;&gt;wrap() / wrapInner() / wrapAll() 한눈 비교&lt;/h2&gt;
&lt;div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-end=&quot;830&quot; data-start=&quot;624&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style13&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 29.1521%;&quot;&gt;메서드&lt;/td&gt;
&lt;td style=&quot;width: 37.3984%;&quot;&gt;감싸는 범위&lt;/td&gt;
&lt;td style=&quot;width: 33.2172%;&quot;&gt;부모 개수&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;734&quot; data-start=&quot;691&quot;&gt;
&lt;td style=&quot;width: 29.1521%;&quot; data-col-size=&quot;sm&quot; data-end=&quot;702&quot; data-start=&quot;691&quot;&gt;wrap()&lt;/td&gt;
&lt;td style=&quot;width: 37.3984%;&quot; data-end=&quot;718&quot; data-start=&quot;702&quot; data-col-size=&quot;sm&quot;&gt;선택한 요소 &lt;b&gt;각각&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.2172%;&quot; data-end=&quot;727&quot; data-start=&quot;718&quot; data-col-size=&quot;sm&quot;&gt;요소 수만큼&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;783&quot; data-start=&quot;735&quot;&gt;
&lt;td style=&quot;width: 29.1521%;&quot; data-col-size=&quot;sm&quot; data-end=&quot;751&quot; data-start=&quot;735&quot;&gt;wrapInner()&lt;/td&gt;
&lt;td style=&quot;width: 37.3984%;&quot; data-end=&quot;765&quot; data-start=&quot;751&quot; data-col-size=&quot;sm&quot;&gt;요소의 &lt;b&gt;자식들&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.2172%;&quot; data-end=&quot;776&quot; data-start=&quot;765&quot; data-col-size=&quot;sm&quot;&gt;기존 부모 유지&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;830&quot; data-start=&quot;784&quot;&gt;
&lt;td style=&quot;width: 29.1521%;&quot; data-col-size=&quot;sm&quot; data-end=&quot;798&quot; data-start=&quot;784&quot;&gt;wrapAll()&lt;/td&gt;
&lt;td style=&quot;width: 37.3984%;&quot; data-end=&quot;814&quot; data-start=&quot;798&quot; data-col-size=&quot;sm&quot;&gt;선택된 요소 &lt;b&gt;전부&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.2172%;&quot; data-end=&quot;823&quot; data-start=&quot;814&quot; data-col-size=&quot;sm&quot;&gt;&lt;b&gt;1개&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;</description>
      <category>Front/JS &amp;amp; jQuery</category>
      <author>오선지♬</author>
      <guid isPermaLink="true">https://imswengineer.tistory.com/1422</guid>
      <comments>https://imswengineer.tistory.com/1422#entry1422comment</comments>
      <pubDate>Thu, 20 Nov 2025 10:01:46 +0900</pubDate>
    </item>
    <item>
      <title>[jQuery] wrapAll()</title>
      <link>https://imswengineer.tistory.com/1421</link>
      <description>&lt;h2 data-end=&quot;140&quot; data-start=&quot;115&quot; data-ke-size=&quot;size26&quot;&gt;wrapAll() 한 줄 정의&lt;/h2&gt;
&lt;blockquote data-end=&quot;180&quot; data-start=&quot;142&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;p data-end=&quot;180&quot; data-start=&quot;144&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;선택된 여러 요소를 &amp;ldquo;하나의 공통 부모&amp;rdquo;로 한 번에 감싼다&lt;/b&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-end=&quot;208&quot; data-start=&quot;182&quot; data-ke-size=&quot;size16&quot;&gt;  &lt;b&gt;여럿 &amp;rarr; 하나의 부모 (n : 1)&lt;/b&gt;&lt;/p&gt;
&lt;p data-end=&quot;208&quot; data-start=&quot;182&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;208&quot; data-start=&quot;182&quot; data-ke-size=&quot;size16&quot;&gt;실행 전&lt;/p&gt;
&lt;pre id=&quot;code_1766467461806&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;p class=&quot;item&quot;&amp;gt;A&amp;lt;/p&amp;gt;
&amp;lt;p class=&quot;item&quot;&amp;gt;B&amp;lt;/p&amp;gt;
&amp;lt;p class=&quot;item&quot;&amp;gt;C&amp;lt;/p&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1766467466877&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$('.item').wrapAll('&amp;lt;div class=&quot;group&quot;&amp;gt;&amp;lt;/div&amp;gt;');&lt;/code&gt;&lt;/pre&gt;
&lt;p data-end=&quot;208&quot; data-start=&quot;182&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;208&quot; data-start=&quot;182&quot; data-ke-size=&quot;size16&quot;&gt;실행 후&lt;/p&gt;
&lt;pre id=&quot;code_1766467486701&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;div class=&quot;group&quot;&amp;gt;
    &amp;lt;p class=&quot;item&quot;&amp;gt;A&amp;lt;/p&amp;gt;
    &amp;lt;p class=&quot;item&quot;&amp;gt;B&amp;lt;/p&amp;gt;
    &amp;lt;p class=&quot;item&quot;&amp;gt;C&amp;lt;/p&amp;gt;
&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;✔ .item 각각의 부모 ❌&lt;br /&gt;✔ &lt;b&gt;공통 부모 .group 하나만 생성&lt;/b&gt; ⭕&lt;/p&gt;</description>
      <category>Front/JS &amp;amp; jQuery</category>
      <author>오선지♬</author>
      <guid isPermaLink="true">https://imswengineer.tistory.com/1421</guid>
      <comments>https://imswengineer.tistory.com/1421#entry1421comment</comments>
      <pubDate>Wed, 19 Nov 2025 09:31:34 +0900</pubDate>
    </item>
    <item>
      <title>[jQuery] wrapInner()</title>
      <link>https://imswengineer.tistory.com/1420</link>
      <description>&lt;h2 data-end=&quot;149&quot; data-start=&quot;122&quot; data-ke-size=&quot;size26&quot;&gt;wrapInner() 한 줄 정의&lt;/h2&gt;
&lt;blockquote data-end=&quot;188&quot; data-start=&quot;151&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;p data-end=&quot;188&quot; data-start=&quot;153&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;선택한 요소 &amp;ldquo;안에 있는 자식들만&amp;rdquo; 새로운 요소로 감싼다&lt;/b&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-end=&quot;212&quot; data-start=&quot;190&quot; data-ke-size=&quot;size16&quot;&gt;  &lt;b&gt;부모는 그대로, 내용만 포장&lt;/b&gt;&lt;/p&gt;
&lt;p data-end=&quot;212&quot; data-start=&quot;190&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;212&quot; data-start=&quot;190&quot; data-ke-size=&quot;size16&quot;&gt;실행 전&lt;/p&gt;
&lt;pre id=&quot;code_1766467314785&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;div id=&quot;box&quot;&amp;gt;
    &amp;lt;p&amp;gt;내용1&amp;lt;/p&amp;gt;
    &amp;lt;p&amp;gt;내용2&amp;lt;/p&amp;gt;
&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1766467326661&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$('#box').wrapInner('&amp;lt;div class=&quot;inner&quot;&amp;gt;&amp;lt;/div&amp;gt;');&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실행 후&lt;/p&gt;
&lt;pre id=&quot;code_1766467337623&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;div id=&quot;box&quot;&amp;gt;
    &amp;lt;div class=&quot;inner&quot;&amp;gt;
        &amp;lt;p&amp;gt;내용1&amp;lt;/p&amp;gt;
        &amp;lt;p&amp;gt;내용2&amp;lt;/p&amp;gt;
    &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;✔ #box는 그대로&lt;br /&gt;✔ &lt;b&gt;자식들만 .inner로 감싸짐&lt;/b&gt;&lt;/p&gt;</description>
      <category>Front/JS &amp;amp; jQuery</category>
      <author>오선지♬</author>
      <guid isPermaLink="true">https://imswengineer.tistory.com/1420</guid>
      <comments>https://imswengineer.tistory.com/1420#entry1420comment</comments>
      <pubDate>Tue, 18 Nov 2025 16:13:41 +0900</pubDate>
    </item>
    <item>
      <title>[jQuery] wrap()</title>
      <link>https://imswengineer.tistory.com/1419</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;wrap()은 &lt;b&gt;jQuery에서 DOM 구조를 &amp;ldquo;한 겹 감싸는&amp;rdquo; 메서드&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기본 문법&lt;/p&gt;
&lt;pre id=&quot;code_1766467197092&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$(selector).wrap('&amp;lt;div class=&quot;wrapper&quot;&amp;gt;&amp;lt;/div&amp;gt;');&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실행 전&lt;/p&gt;
&lt;pre id=&quot;code_1766467207684&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;p id=&quot;a&quot;&amp;gt;내용&amp;lt;/p&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실행 후&lt;/p&gt;
&lt;pre id=&quot;code_1766467219400&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;div class=&quot;wrapper&quot;&amp;gt;
    &amp;lt;p id=&quot;a&quot;&amp;gt;내용&amp;lt;/p&amp;gt;
&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  &lt;b&gt;p는 그대로, 부모만 생김&lt;/b&gt;&lt;/p&gt;</description>
      <category>Front/JS &amp;amp; jQuery</category>
      <author>오선지♬</author>
      <guid isPermaLink="true">https://imswengineer.tistory.com/1419</guid>
      <comments>https://imswengineer.tistory.com/1419#entry1419comment</comments>
      <pubDate>Fri, 14 Nov 2025 10:42:09 +0900</pubDate>
    </item>
    <item>
      <title>[js][datatables] clientSide</title>
      <link>https://imswengineer.tistory.com/1418</link>
      <description>&lt;h2 data-end=&quot;146&quot; data-start=&quot;119&quot; data-ke-size=&quot;size26&quot;&gt;1️⃣ clientSide: true란?&lt;/h2&gt;
&lt;p data-end=&quot;209&quot; data-start=&quot;148&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;데이터를 서버에서 다시 가져오지 않고,&lt;br /&gt;이미 브라우저에 로딩된 데이터만 가지고 처리하는 모드&lt;/b&gt;입니다.&lt;/p&gt;
&lt;p data-end=&quot;213&quot; data-start=&quot;211&quot; data-ke-size=&quot;size16&quot;&gt;즉,&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;230&quot; data-start=&quot;215&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;219&quot; data-start=&quot;215&quot;&gt;검색&lt;/li&gt;
&lt;li data-end=&quot;224&quot; data-start=&quot;220&quot;&gt;정렬&lt;/li&gt;
&lt;li data-end=&quot;230&quot; data-start=&quot;225&quot;&gt;페이징&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;259&quot; data-start=&quot;232&quot; data-ke-size=&quot;size16&quot;&gt;을 &lt;b&gt;모두 프론트(JS)&lt;/b&gt; 에서만 처리합니다.&lt;/p&gt;
&lt;p data-end=&quot;290&quot; data-start=&quot;261&quot; data-ke-size=&quot;size16&quot;&gt;  서버 API (func) &lt;b&gt;호출 안 함&lt;/b&gt;&lt;/p&gt;
&lt;p data-end=&quot;290&quot; data-start=&quot;261&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-end=&quot;312&quot; data-start=&quot;297&quot; data-ke-size=&quot;size26&quot;&gt;2️⃣ 동작 흐름 비교&lt;/h2&gt;
&lt;h3 data-end=&quot;348&quot; data-start=&quot;314&quot; data-ke-size=&quot;size23&quot;&gt;✅ clientSide: true (클라이언트 사이드)&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1765848069324&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;[초기 1회 데이터 로딩]  &amp;larr; (또는 아예 정적 데이터)
        &amp;darr;
브라우저 메모리에 데이터 보관
        &amp;darr;
검색 / 정렬 / 페이징
        &amp;darr;
JS에서만 필터링 &amp;amp; 렌더링&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;537&quot; data-start=&quot;469&quot; data-ke-size=&quot;size16&quot;&gt;✔ 서버 트래픽 없음&lt;br /&gt;✔ 빠름&lt;br /&gt;❌ 데이터 많으면 느려짐&lt;br /&gt;❌ 최신 데이터 보장 어려움&lt;br /&gt;❌ func 호출 안 됨&lt;/p&gt;
&lt;hr data-end=&quot;542&quot; data-start=&quot;539&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-end=&quot;576&quot; data-start=&quot;544&quot; data-ke-size=&quot;size23&quot;&gt;✅ clientSide: false (서버 사이드)&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1765848055209&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;검색 / 페이징 / 정렬 이벤트
        &amp;darr;
func(API) 호출
        &amp;darr;
DB 조회
        &amp;darr;
결과만 응답
        &amp;darr;
테이블 렌더링&lt;/code&gt;&lt;/pre&gt;
&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;725&quot; data-start=&quot;679&quot; data-ke-size=&quot;size16&quot;&gt;✔ 대용량 데이터 처리 가능&lt;br /&gt;✔ 항상 최신 데이터&lt;br /&gt;❌ 매 요청마다 서버 호출&lt;/p&gt;</description>
      <category>Front/JS &amp;amp; jQuery</category>
      <author>오선지♬</author>
      <guid isPermaLink="true">https://imswengineer.tistory.com/1418</guid>
      <comments>https://imswengineer.tistory.com/1418#entry1418comment</comments>
      <pubDate>Thu, 13 Nov 2025 09:11:13 +0900</pubDate>
    </item>
    <item>
      <title>[DB][MySQL] UPDATE 문에서 문자 합치기</title>
      <link>https://imswengineer.tistory.com/1417</link>
      <description>&lt;pre id=&quot;code_1765847109332&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;UPDATE users
SET memo = CONCAT(memo, ' (수정됨)')
WHERE user_id = 1;&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Front/JS &amp;amp; jQuery</category>
      <author>오선지♬</author>
      <guid isPermaLink="true">https://imswengineer.tistory.com/1417</guid>
      <comments>https://imswengineer.tistory.com/1417#entry1417comment</comments>
      <pubDate>Tue, 11 Nov 2025 09:06:53 +0900</pubDate>
    </item>
  </channel>
</rss>