<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>개발 일기</title>
    <link>https://developer-mistive.tistory.com/</link>
    <description>안녕하세요. 살면서 하는 이것 저것을 포스팅하는 블로그입니다.
잘 부탁 드려요~!</description>
    <language>ko</language>
    <pubDate>Fri, 5 Jun 2026 14:42:38 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>mistive</managingEditor>
    <item>
      <title>Pyside6 버전 에러</title>
      <link>https://developer-mistive.tistory.com/69</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;예제 코드를 가지고 PySide6를 실행하려고 보니&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Process&amp;nbsp;finished&amp;nbsp;with&amp;nbsp;exit&amp;nbsp;code&amp;nbsp;-1073741819&amp;nbsp;(0xC0000005)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이런 에러가 나는게 아닌가?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문제는 Pyside6 버전 문제였다.&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;2021.11.17 아나콘다 가상환경에서 설치시 6.2.1 버전의 pyside6를 설치했는데 에러 발생&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;과거에 사용하던 버전인 6.0.4로 다운그레이드 하니깐 된다.&lt;/p&gt;</description>
      <author>mistive</author>
      <guid isPermaLink="true">https://developer-mistive.tistory.com/69</guid>
      <comments>https://developer-mistive.tistory.com/69#entry69comment</comments>
      <pubDate>Wed, 17 Nov 2021 09:07:20 +0900</pubDate>
    </item>
    <item>
      <title>[Andriod Studio]Error while waiting for device: Could not start AVD</title>
      <link>https://developer-mistive.tistory.com/68</link>
      <description>&lt;p&gt;아니 AVD(=Android Virtual Device)가 왜 실행이 안되는거야?!!!&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; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cTqtZV/btqOS8BMBOc/7KWyHkxInEOfJPXoalNBj0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cTqtZV/btqOS8BMBOc/7KWyHkxInEOfJPXoalNBj0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cTqtZV/btqOS8BMBOc/7KWyHkxInEOfJPXoalNBj0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcTqtZV%2FbtqOS8BMBOc%2F7KWyHkxInEOfJPXoalNBj0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;....???&lt;/p&gt;
&lt;p&gt;VT-x is disabled in BIOS..??&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;그럼 BIOS 창에서 해결해줘야겠네..?&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://m.blog.naver.com/PostView.nhn?blogId=sungjun0208&amp;amp;logNo=221123724771&amp;amp;proxyReferer=https:%2F%2Fwww.google.com%2F&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;m.blog.naver.com/PostView.nhn?blogId=sungjun0208&amp;amp;logNo=221123724771&amp;amp;proxyReferer=https:%2F%2Fwww.google.com%2F&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1606823674503&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[Android]안드로이드 스튜디오 VT-x is Disabled in The Bios Android Studio 오류 해결법!&quot; data-og-description=&quot;안드로이드에서 이런 문제가 발생했을때는 Enable VT-x BIOS에서 해결해야합니다. 참고로 저는 윈도...&quot; data-og-host=&quot;blog.naver.com&quot; data-og-source-url=&quot;https://m.blog.naver.com/PostView.nhn?blogId=sungjun0208&amp;amp;logNo=221123724771&amp;amp;proxyReferer=https:%2F%2Fwww.google.com%2F&quot; data-og-url=&quot;https://blog.naver.com/sungjun0208/221123724771&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/Sv2mI/hyIp4yTmYy/WO5nSzUSKrATnP8isYL2Ok/img.png?width=743&amp;amp;height=116&amp;amp;face=0_0_743_116,https://scrap.kakaocdn.net/dn/cGQRgV/hyIrwAxKCl/nI0kKkoMhVmuesYjdJ1u5k/img.png?width=80&amp;amp;height=43&amp;amp;face=0_0_80_43,https://scrap.kakaocdn.net/dn/cwM8IO/hyIrsLFS66/UIjUuP9CwAQeH8tsxCqO8k/img.png?width=80&amp;amp;height=31&amp;amp;face=0_0_80_31&quot;&gt;&lt;a href=&quot;https://m.blog.naver.com/PostView.nhn?blogId=sungjun0208&amp;amp;logNo=221123724771&amp;amp;proxyReferer=https:%2F%2Fwww.google.com%2F&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://m.blog.naver.com/PostView.nhn?blogId=sungjun0208&amp;amp;logNo=221123724771&amp;amp;proxyReferer=https:%2F%2Fwww.google.com%2F&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/Sv2mI/hyIp4yTmYy/WO5nSzUSKrATnP8isYL2Ok/img.png?width=743&amp;amp;height=116&amp;amp;face=0_0_743_116,https://scrap.kakaocdn.net/dn/cGQRgV/hyIrwAxKCl/nI0kKkoMhVmuesYjdJ1u5k/img.png?width=80&amp;amp;height=43&amp;amp;face=0_0_80_43,https://scrap.kakaocdn.net/dn/cwM8IO/hyIrsLFS66/UIjUuP9CwAQeH8tsxCqO8k/img.png?width=80&amp;amp;height=31&amp;amp;face=0_0_80_31');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;[Android]안드로이드 스튜디오 VT-x is Disabled in The Bios Android Studio 오류 해결법!&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;안드로이드에서 이런 문제가 발생했을때는 Enable VT-x BIOS에서 해결해야합니다. 참고로 저는 윈도...&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;blog.naver.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&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;b&gt;Intel Virtualization Technology&lt;/b&gt;을 Enabled 시켜주면 된단다.&lt;/p&gt;</description>
      <author>mistive</author>
      <guid isPermaLink="true">https://developer-mistive.tistory.com/68</guid>
      <comments>https://developer-mistive.tistory.com/68#entry68comment</comments>
      <pubDate>Wed, 9 Dec 2020 21:12:56 +0900</pubDate>
    </item>
    <item>
      <title>[Android Studio] Failed to install the following Android SDK packages 오류 해결 방법</title>
      <link>https://developer-mistive.tistory.com/67</link>
      <description>&lt;p&gt;새로운 컴퓨터에서 Android Studio를 설치하고 문제를 해결하려고 하다보니&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Failed&amp;nbsp;to&amp;nbsp;install&amp;nbsp;the&amp;nbsp;following&amp;nbsp;Android&amp;nbsp;SDK&amp;nbsp;packages&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;이런 오류가 발생하면서 컴파일이 안되는 것이 아닌가...&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;왜 이런걸까 확인해보니 License 문제라는데......&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&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; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ccdEuw/btqOP4fAGtm/0gStVL5pvOHEPejrV3WfK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ccdEuw/btqOP4fAGtm/0gStVL5pvOHEPejrV3WfK0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ccdEuw/btqOP4fAGtm/0gStVL5pvOHEPejrV3WfK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FccdEuw%2FbtqOP4fAGtm%2F0gStVL5pvOHEPejrV3WfK0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&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;이 글대로 해보려 하니 나는 licenses 디렉토리가 없네??&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-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cpCxWf/btqOH9PYU3t/REOklz213ZBXbSBEfv7Wr1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cpCxWf/btqOH9PYU3t/REOklz213ZBXbSBEfv7Wr1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cpCxWf/btqOH9PYU3t/REOklz213ZBXbSBEfv7Wr1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcpCxWf%2FbtqOH9PYU3t%2FREOklz213ZBXbSBEfv7Wr1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&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;저 Google Play Licensing Library가 있어야 한댄다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;설치하고 나니 'Android SDK Location' 에 licenses 디렉토리가 생겨있더라.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&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; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/SUpub/btqOVKApape/vnBRS7axeZN217F7rodkLK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/SUpub/btqOVKApape/vnBRS7axeZN217F7rodkLK/img.png&quot; data-alt=&quot;뾰로롱&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/SUpub/btqOVKApape/vnBRS7axeZN217F7rodkLK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSUpub%2FbtqOVKApape%2FvnBRS7axeZN217F7rodkLK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&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;뾰로롱&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;그 후에 다시 프로젝트를 컴파일 해보니 빌드 Success~~&lt;/p&gt;</description>
      <author>mistive</author>
      <guid isPermaLink="true">https://developer-mistive.tistory.com/67</guid>
      <comments>https://developer-mistive.tistory.com/67#entry67comment</comments>
      <pubDate>Tue, 1 Dec 2020 20:44:33 +0900</pubDate>
    </item>
    <item>
      <title>[Android Studio] Github 계정 등록이 되지 않는다..?</title>
      <link>https://developer-mistive.tistory.com/66</link>
      <description>&lt;p&gt;오류 메세지&amp;nbsp;&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; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/VOCms/btqOKXuNY6m/EuMakWKqwSqSMPMwDDwbZK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/VOCms/btqOKXuNY6m/EuMakWKqwSqSMPMwDDwbZK/img.png&quot; data-alt=&quot;Incorrect credentials. Request response: 401 Unauthorized&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/VOCms/btqOKXuNY6m/EuMakWKqwSqSMPMwDDwbZK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVOCms%2FbtqOKXuNY6m%2FEuMakWKqwSqSMPMwDDwbZK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&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;Incorrect credentials. Request response: 401 Unauthorized&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;다른 컴퓨터에서 프로젝트를 불러올 일이 있어서 새로 Android Studio를 설치하고, Github 계정과 연동을 하려고 하니...&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;응?&lt;/h2&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;검색을 해보니....&lt;/p&gt;
&lt;p&gt;토큰으로 해봐라, git을 깔아라 등등...&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;참고로 Android Studio 버전은 4.1.1이다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1. 토큰으로 하기&lt;/p&gt;
&lt;p&gt;[Settings] -&amp;gt; [Developer Settings] -&amp;gt; [Personal Access Token]&lt;/p&gt;
&lt;p&gt;에서&lt;/p&gt;
&lt;p&gt;repo, gist, workflow를 체크하고 토큰을 만든 다음 로그인을 해봐도... 동일한 에러가 발생한다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;2. git 깔아보기&lt;/p&gt;
&lt;p&gt;안된다 ㅋㅋㅋ&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;3. Stack Overflow 만만세&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://stackoverflow.com/questions/64964585/android-studio-github-login-incorrect-credentials-request-response-401-unauth&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;참고 : stackoverflow.com/questions/64964585/android-studio-github-login-incorrect-credentials-request-response-401-unauth&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1606821616539&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Android Studio GitHub Login &amp;quot;Incorrect credentials. Request response. 401 Unauthorized&quot; data-og-description=&quot;I am having trouble logging in to my GitHub Account through Android Studio. I don't know why I am getting this error and there doesn't seem to be much about it out there. I made sure to have Git&quot; data-og-host=&quot;stackoverflow.com&quot; data-og-source-url=&quot;https://stackoverflow.com/questions/64964585/android-studio-github-login-incorrect-credentials-request-response-401-unauth&quot; data-og-url=&quot;https://stackoverflow.com/questions/64964585/android-studio-github-login-incorrect-credentials-request-response-401-unauth&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/NLCN8/hyIrrlF3oq/Xa0kMFwfgOKh8KEZ6ewvz1/img.png?width=316&amp;amp;height=316&amp;amp;face=0_0_316_316&quot;&gt;&lt;a href=&quot;https://stackoverflow.com/questions/64964585/android-studio-github-login-incorrect-credentials-request-response-401-unauth&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://stackoverflow.com/questions/64964585/android-studio-github-login-incorrect-credentials-request-response-401-unauth&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/NLCN8/hyIrrlF3oq/Xa0kMFwfgOKh8KEZ6ewvz1/img.png?width=316&amp;amp;height=316&amp;amp;face=0_0_316_316');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;Android Studio GitHub Login &quot;Incorrect credentials. Request response. 401 Unauthorized&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;I am having trouble logging in to my GitHub Account through Android Studio. I don't know why I am getting this error and there doesn't seem to be much about it out there. I made sure to have Git&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;stackoverflow.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;1번에서 git 토큰 설정할 때 아래와 같이 설정해주니 잘 된다.&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; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/X0ZHt/btqOS7Qpblx/PgJ4QR4w67bz4cg5cqjYNK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/X0ZHt/btqOS7Qpblx/PgJ4QR4w67bz4cg5cqjYNK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/X0ZHt/btqOS7Qpblx/PgJ4QR4w67bz4cg5cqjYNK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FX0ZHt%2FbtqOS7Qpblx%2FPgJ4QR4w67bz4cg5cqjYNK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Android Studio</category>
      <author>mistive</author>
      <guid isPermaLink="true">https://developer-mistive.tistory.com/66</guid>
      <comments>https://developer-mistive.tistory.com/66#entry66comment</comments>
      <pubDate>Tue, 1 Dec 2020 20:20:51 +0900</pubDate>
    </item>
    <item>
      <title>[스프링 부트] DB 연동하기</title>
      <link>https://developer-mistive.tistory.com/65</link>
      <description>&lt;p&gt;참고 : &lt;a href=&quot;https://goddaehee.tistory.com/205?category=367461&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;goddaehee.tistory.com/205?category=367461&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1601822012831&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[스프링부트 (4)] Spring Boot DataBase 연동하기 (MariaDB, MyBatis, HikariCP)&quot; data-og-description=&quot;[스프링부트 (4)] 스프링부트 DB 연동 (MariaDB, MyBatis, HikariCP) 안녕하세요. 갓대희 입니다. 이번 포스팅은&amp;nbsp;[ SpringBoot DB 연동]&amp;nbsp;입니다.&amp;nbsp;: ) 0. 들어가기 앞서 Spring Boot를 사용하면서 DB를연결하기..&quot; data-og-host=&quot;goddaehee.tistory.com&quot; data-og-source-url=&quot;https://goddaehee.tistory.com/205?category=367461&quot; data-og-url=&quot;https://goddaehee.tistory.com/205&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/FhUzY/hyHKMDTDJg/RHJnMbCPqhzErI01fKA5JK/img.png?width=508&amp;amp;height=121&amp;amp;face=0_0_508_121,https://scrap.kakaocdn.net/dn/doVE4l/hyHKX6uIar/oEGgJ7gKj9D7vugq2RENH1/img.png?width=508&amp;amp;height=121&amp;amp;face=0_0_508_121,https://scrap.kakaocdn.net/dn/bqW3Va/hyHJqWKRta/sz88TBwd2ERay0hdWNFC71/img.png?width=1272&amp;amp;height=569&amp;amp;face=0_0_1272_569&quot;&gt;&lt;a href=&quot;https://goddaehee.tistory.com/205?category=367461&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://goddaehee.tistory.com/205?category=367461&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/FhUzY/hyHKMDTDJg/RHJnMbCPqhzErI01fKA5JK/img.png?width=508&amp;amp;height=121&amp;amp;face=0_0_508_121,https://scrap.kakaocdn.net/dn/doVE4l/hyHKX6uIar/oEGgJ7gKj9D7vugq2RENH1/img.png?width=508&amp;amp;height=121&amp;amp;face=0_0_508_121,https://scrap.kakaocdn.net/dn/bqW3Va/hyHJqWKRta/sz88TBwd2ERay0hdWNFC71/img.png?width=1272&amp;amp;height=569&amp;amp;face=0_0_1272_569');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;[스프링부트 (4)] Spring Boot DataBase 연동하기 (MariaDB, MyBatis, HikariCP)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;[스프링부트 (4)] 스프링부트 DB 연동 (MariaDB, MyBatis, HikariCP) 안녕하세요. 갓대희 입니다. 이번 포스팅은&amp;nbsp;[ SpringBoot DB 연동]&amp;nbsp;입니다.&amp;nbsp;: ) 0. 들어가기 앞서 Spring Boot를 사용하면서 DB를연결하기..&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;goddaehee.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;github 링크 : &lt;a href=&quot;https://github.com/Mistive/SpringBoot/commit/83f1586ce41d1d7c928d6d08bee1d09a111fc52c#diff-18ce661d1fc3d790f60910ad9c3c5192&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;github.com/Mistive/SpringBoot/commit/83f1586ce41d1d7c928d6d08bee1d09a111fc52c#diff-18ce661d1fc3d790f60910ad9c3c5192&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1601825796106&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;object&quot; data-og-title=&quot;MariaDB 적용하기 &amp;middot; Mistive/SpringBoot@83f1586&quot; data-og-description=&quot;* MariaDB에 데이터 추가해서 출력해보기&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/Mistive/SpringBoot/commit/83f1586ce41d1d7c928d6d08bee1d09a111fc52c#diff-18ce661d1fc3d790f60910ad9c3c5192&quot; data-og-url=&quot;https://github.com/Mistive/SpringBoot/commit/83f1586ce41d1d7c928d6d08bee1d09a111fc52c&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/r4x2I/hyHJAkNIXX/NwBfUARvEvOS6iK9jPbhh1/img.png?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420&quot;&gt;&lt;a href=&quot;https://github.com/Mistive/SpringBoot/commit/83f1586ce41d1d7c928d6d08bee1d09a111fc52c#diff-18ce661d1fc3d790f60910ad9c3c5192&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/Mistive/SpringBoot/commit/83f1586ce41d1d7c928d6d08bee1d09a111fc52c#diff-18ce661d1fc3d790f60910ad9c3c5192&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/r4x2I/hyHJAkNIXX/NwBfUARvEvOS6iK9jPbhh1/img.png?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;MariaDB 적용하기 &amp;middot; Mistive/SpringBoot@83f1586&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;* MariaDB에 데이터 추가해서 출력해보기&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;601&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wuZ5B/btqJ4GcInE2/XV513DTXtGQIQ2WG91QPbk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wuZ5B/btqJ4GcInE2/XV513DTXtGQIQ2WG91QPbk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wuZ5B/btqJ4GcInE2/XV513DTXtGQIQ2WG91QPbk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwuZ5B%2FbtqJ4GcInE2%2FXV513DTXtGQIQ2WG91QPbk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;601&quot; height=&quot;NaN&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;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;▶커넥션풀(Connection Pool)이란?&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 풀(Pool) 속에 데이터베이스와의 연결(커넥션)을 미리 만들어두고, 데이터베이스에 접근 시 풀에 남아있는 커넥션 중 하나를 받아와 사용한 뒤 반환하는 기법이다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- DBCP(=&lt;b&gt;D&lt;/b&gt;ata&lt;b&gt;B&lt;/b&gt;asce &lt;b&gt;C&lt;/b&gt;onnection &lt;b&gt;P&lt;/b&gt;ool)이라고도 한다.&lt;/span&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;JDBC(=Java Data Base Connection) 예제 코드&lt;/span&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1601796983696&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Connection conn = null;
PreparedStatement  pstmt = null;
ResultSet rs = null;

try {
    sql = &quot;SELECT * FROM T_BOARD&quot;

    // 1. 드라이버 연결 DB 커넥션 객체를 얻음
    connection = DriverManager.getConnection(DBURL, DBUSER, DBPASSWORD);

    // 2. 쿼리 수행을 위한 PreparedStatement 객체 생성
    pstmt = conn.createStatement();

    // 3. executeQuery: 쿼리 실행 후
    // ResultSet: DB 레코드 ResultSet에 객체에 담김
    rs = pstmt.executeQuery(sql);
    } catch (Exception e) {
    } finally {
        conn.close();
        pstmt.close();
        rs.close();
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;- 커넥션풀을 이용하여 미리 연결을 만들어놓기 때문에 효과적으로 DB 연결 및 자원 사용이 가능하다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;▶ &lt;b&gt;MariaDB&lt;/b&gt; &amp;amp; &lt;b&gt;MyBatis&lt;/b&gt; Dependency 추가&lt;/span&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;pom.xml&lt;/h3&gt;
&lt;pre id=&quot;code_1601803467112&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;        &amp;lt;!-- MariaDB --&amp;gt;
        &amp;lt;dependency&amp;gt;
            &amp;lt;groupId&amp;gt;org.mariadb.jdbc&amp;lt;/groupId&amp;gt;
            &amp;lt;artifactId&amp;gt;mariadb-java-client&amp;lt;/artifactId&amp;gt;
        &amp;lt;/dependency&amp;gt;
        &amp;lt;dependency&amp;gt;
            &amp;lt;groupId&amp;gt;org.mybatis.spring.boot&amp;lt;/groupId&amp;gt;
            &amp;lt;artifactId&amp;gt;mybatis-spring-boot-starter&amp;lt;/artifactId&amp;gt;
            &amp;lt;version&amp;gt;2.1.1&amp;lt;/version&amp;gt;
        &amp;lt;/dependency&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;▶Driver 및 연결 정보 설정 추가&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;application.properties&lt;/h3&gt;
&lt;pre id=&quot;code_1601803821646&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;spring.datasource.driverClassName= org.mariadb.jdbc.Driver
spring.datasource.url=jdbc:mariadb://localhost:3306/test?characterEncoding=UTF-8&amp;amp;serverTimezone=UTC
spring.datasource.username=스키마계정
spring.datasource.password=비밀번호&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;▶testMapper.xml 생성 및 Dependency 추가&lt;/span&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;testMapper.xml&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 생성 경로 : resources/mybatis/test/testMapper.xml&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1601821566721&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt; &amp;lt;!DOCTYPE mapper PUBLIC &quot;-//mybatis.org//DTD Mapper 3.0//EN&quot;
        &quot;http://mybatis.org/dtd/mybatis-3-mapper.dtd&quot;&amp;gt;
&amp;lt;mapper namespace=&quot;com.example.demo2.test.mapper.TestMapper&quot;&amp;gt;
    &amp;lt;select id=&quot;selectTest&quot; resultType=&quot;com.example.demo2.test.vo.TestVo&quot;&amp;gt; SELECT 'MISTIVE' AS NAME &amp;lt;/select&amp;gt;
&amp;lt;/mapper&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span&gt;application.properties&lt;/span&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1601821917499&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;spring.datasource.driverClassName= org.mariadb.jdbc.Driver
spring.datasource.url=jdbc:mariadb://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=1234

# testMapper.xml 위치 지정
# **은 하위 폴더 레벨에 상관없이 모든 경로를 뜻하며, *는 아무 이름이나 와도 된다는것을 뜻합니다.
mybatis.mapper-locations: mybatis/**/*.xml&lt;/code&gt;&lt;/pre&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p&gt;추가 사항&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;application.properties&lt;/h3&gt;
&lt;pre id=&quot;code_1601822063529&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# mybatis 매핑 type을 짧게 쓰기 위한 설정
# mapper.xml에서 resultType을 지정할 때 com.god.bo.test.vo.TestVo 대신 TestVo로 간략히 할 수 있다.
mybatis.type-aliases-package:com.example.demo2.test.vo&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;을 추가할 경우&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;testMapper.xml에서 resultType을 &quot;TestVo&quot;만 써도 된다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;▶TestVo.java 파일 생성하기&lt;/h2&gt;
&lt;p&gt;- 생성 경로 : com.example.demo2.test.vo.TestVo&lt;/p&gt;
&lt;p&gt;- Vo는 MVC에서 M, Model을 의미한다. DTO, VO라고도 표현한다.&lt;/p&gt;
&lt;pre id=&quot;code_1601822278300&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;package com.example.demo2.test.vo;

public class TestVo {
    private String id;
    private String name;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;▶TestMapper.java 생성&lt;/h2&gt;
&lt;p&gt;- 생성 경로 : com.example.demo2.test.mapper.TestMapper&lt;/p&gt;
&lt;p&gt;- Mapper 인터페이스를 생성한다.&lt;/p&gt;
&lt;pre id=&quot;code_1601822399226&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;package com.example.demo2.test.mapper;

import java.util.List;

import com.example.demo2.test.vo.TestVo;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;


@Repository
@Mapper
public interface TestMapper {
    List&amp;lt;TestVo&amp;gt; selectTest();
}&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;▶TestService.java 생성&lt;/h2&gt;
&lt;p&gt;- 생성 경로 : com.example.demo2.test.service.TestService&lt;/p&gt;
&lt;pre id=&quot;code_1601822556635&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;package com.example.demo2.test.service;

import com.example.demo2.test.mapper.TestMapper;
import com.example.demo2.test.vo.TestVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class TestService {
    @Autowired
    public TestMapper mapper;

    public List&amp;lt;TestVo&amp;gt; selectTest() {
        return mapper.selectTest();
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;▶TestController.java 생성 및 Service 호출&lt;/h2&gt;
&lt;p&gt;- 생성 경로 : com.example.demo2.test.controller.TestController&lt;/p&gt;
&lt;pre id=&quot;code_1601822808612&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;package com.example.demo2.test.controller;

import com.example.demo2.test.service.TestService;
import com.example.demo2.test.vo.TestVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;

import java.util.List;

@RestController
public class TestController {

    @Autowired
    TestService testService;

    @RequestMapping(value = &quot;/&quot;)
    public String home() throws Exception{
        return &quot;Hello World&quot;;
    }

    @RequestMapping(value = &quot;/test&quot;)
    public ModelAndView test() throws Exception {

        List&amp;lt;TestVo&amp;gt; testList = testService.selectTest();

        ModelAndView mav = new ModelAndView();
        mav.addObject(&quot;list&quot;, testList);
        return mav;
    }


}&lt;/code&gt;&lt;/pre&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;▶test.jsp 생성&lt;/h2&gt;
&lt;p&gt;- 생성 경로 : resources/webapp/WEB-INF/views/test.jsp&lt;/p&gt;
&lt;pre id=&quot;code_1601822869272&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;%@ page language=&quot;java&quot; contentType=&quot;text/html; charset=UTF-8&quot; pageEncoding=&quot;UTF-8&quot; %&amp;gt;
&amp;lt;%@ taglib prefix=&quot;c&quot; uri=&quot;http://java.sun.com/jsp/jstl/core&quot; %&amp;gt;
&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang=&quot;ko&quot;&amp;gt;
&amp;lt;head&amp;gt;
    &amp;lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot;&amp;gt;
    &amp;lt;title&amp;gt;View Test Page&amp;lt;/title&amp;gt;&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;&amp;lt;h2&amp;gt;Hello! ${name}&amp;lt;/h2&amp;gt;
&amp;lt;div&amp;gt;JSP List Test&amp;lt;/div&amp;gt;
&amp;lt;c:forEach var=&quot;item&quot; items=&quot;${list}&quot; varStatus=&quot;idx&quot;&amp;gt; ${idx.index}, ${item.name} &amp;lt;br/&amp;gt; &amp;lt;/c:forEach&amp;gt;&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;▶jsp 적용 방법&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;application.properties&lt;/h3&gt;
&lt;pre id=&quot;code_1601822999051&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
devtools.livereload.enabled=true&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;pom.xml&lt;/h3&gt;
&lt;pre id=&quot;code_1601823045523&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;dependency&amp;gt;
  &amp;lt;groupId&amp;gt;javax.servlet&amp;lt;/groupId&amp;gt;
  &amp;lt;artifactId&amp;gt;jstl&amp;lt;/artifactId&amp;gt;
  &amp;lt;/dependency&amp;gt;
  &amp;lt;dependency&amp;gt;
  &amp;lt;groupId&amp;gt;org.apache.tomcat.embed&amp;lt;/groupId&amp;gt;
  &amp;lt;artifactId&amp;gt;tomcat-embed-jasper&amp;lt;/artifactId&amp;gt;
  &amp;lt;scope&amp;gt;provided&amp;lt;/scope&amp;gt;
&amp;lt;/dependency&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;▶구조&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/7Cl2D/btqJZnMeBrR/IutZ5kJRrbKqcDMpceYJF0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/7Cl2D/btqJZnMeBrR/IutZ5kJRrbKqcDMpceYJF0/img.png&quot; data-alt=&quot;빨간 네모는 수정한 부분&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/7Cl2D/btqJZnMeBrR/IutZ5kJRrbKqcDMpceYJF0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7Cl2D%2FbtqJZnMeBrR%2FIutZ5kJRrbKqcDMpceYJF0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&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;빨간 네모는 수정한 부분&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;▶결과&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bNZ91R/btqJ6cWX3cW/M39E62dOmddFOT6gS5GVoK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bNZ91R/btqJ6cWX3cW/M39E62dOmddFOT6gS5GVoK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bNZ91R/btqJ6cWX3cW/M39E62dOmddFOT6gS5GVoK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbNZ91R%2FbtqJ6cWX3cW%2FM39E62dOmddFOT6gS5GVoK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;▶ 주의 사항&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;noname.png&quot; data-origin-width=&quot;1127&quot; data-origin-height=&quot;407&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dBA4RQ/btqJ6cCHgFm/fZHxvIVkruvWRfkqHQN6j1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dBA4RQ/btqJ6cCHgFm/fZHxvIVkruvWRfkqHQN6j1/img.png&quot; data-alt=&quot;명심 또 명심&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dBA4RQ/btqJ6cCHgFm/fZHxvIVkruvWRfkqHQN6j1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdBA4RQ%2FbtqJ6cCHgFm%2FfZHxvIVkruvWRfkqHQN6j1%2Fimg.png&quot; data-filename=&quot;noname.png&quot; data-origin-width=&quot;1127&quot; data-origin-height=&quot;407&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;명심 또 명심&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;▶ 추가 테스트&lt;/h2&gt;
&lt;p&gt;- test DB에 데이터를 추가하고 출력해보기&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;▶ DB에 데이터 추가&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ct06dl/btqJ1L6Q1Ab/twXywCPAEPfQvvDcaW6Oj1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ct06dl/btqJ1L6Q1Ab/twXywCPAEPfQvvDcaW6Oj1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ct06dl/btqJ1L6Q1Ab/twXywCPAEPfQvvDcaW6Oj1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fct06dl%2FbtqJ1L6Q1Ab%2FtwXywCPAEPfQvvDcaW6Oj1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&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;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cUk8qt/btqJ6cWYMna/K0yDvePFjhrlyOVHKqPQv1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cUk8qt/btqJ6cWYMna/K0yDvePFjhrlyOVHKqPQv1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cUk8qt/btqJ6cWYMna/K0yDvePFjhrlyOVHKqPQv1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcUk8qt%2FbtqJ6cWYMna%2FK0yDvePFjhrlyOVHKqPQv1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&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;h2 data-ke-size=&quot;size26&quot;&gt;▶ testMapper.xml 수정&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ci2pdb/btqJZms25X9/kriC8i9M9uEZsmyWoYWBJ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ci2pdb/btqJZms25X9/kriC8i9M9uEZsmyWoYWBJ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ci2pdb/btqJZms25X9/kriC8i9M9uEZsmyWoYWBJ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fci2pdb%2FbtqJZms25X9%2FkriC8i9M9uEZsmyWoYWBJ0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&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;h2 data-ke-size=&quot;size26&quot;&gt;▶ 결과&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/brzZlf/btqJ4HiCwKJ/O497ArgKKbWkT94AWfcJwk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/brzZlf/btqJ4HiCwKJ/O497ArgKKbWkT94AWfcJwk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/brzZlf/btqJ4HiCwKJ/O497ArgKKbWkT94AWfcJwk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbrzZlf%2FbtqJ4HiCwKJ%2FO497ArgKKbWkT94AWfcJwk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <author>mistive</author>
      <guid isPermaLink="true">https://developer-mistive.tistory.com/65</guid>
      <comments>https://developer-mistive.tistory.com/65#entry65comment</comments>
      <pubDate>Sun, 4 Oct 2020 16:37:37 +0900</pubDate>
    </item>
    <item>
      <title>[스프링 부트] jsp 분석하기</title>
      <link>https://developer-mistive.tistory.com/64</link>
      <description>&lt;p&gt;참고 : &lt;a href=&quot;https://goddaehee.tistory.com/204?category=367461&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;goddaehee.tistory.com/204?category=367461&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1601649763047&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[스프링부트 (3)] SpringMVC(2) Spring Boot View 설정 및 JSP 연동하기(Thymeleaf 추가)&quot; data-og-description=&quot;[스프링부트 (3)] SpringMVC(2) Spring Boot View 설정 및 JSP 연동하기(Thymeleaf 추가) 안녕하세요. 갓대희 입니다. 이번 포스팅은&amp;nbsp;[ 스프링 부트 View 설정방법&amp;nbsp;]&amp;nbsp;입니다.&amp;nbsp;: ) 이번 포스팅에선 MVC 패턴중..&quot; data-og-host=&quot;goddaehee.tistory.com&quot; data-og-source-url=&quot;https://goddaehee.tistory.com/204?category=367461&quot; data-og-url=&quot;https://goddaehee.tistory.com/204&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bwLs0J/hyHHASyvU9/euqg8iTBvaE6xREFnOXY10/img.png?width=508&amp;amp;height=121&amp;amp;face=0_0_508_121,https://scrap.kakaocdn.net/dn/dgUnRK/hyHHEgnCoq/CfVZwWxnqNqeLR9IHK6KR1/img.png?width=508&amp;amp;height=121&amp;amp;face=0_0_508_121,https://scrap.kakaocdn.net/dn/CJgBH/hyHHNj46yn/GYCa2WRTCYUjId79VH78F0/img.jpg?width=544&amp;amp;height=536&amp;amp;face=0_0_544_536&quot;&gt;&lt;a href=&quot;https://goddaehee.tistory.com/204?category=367461&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://goddaehee.tistory.com/204?category=367461&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bwLs0J/hyHHASyvU9/euqg8iTBvaE6xREFnOXY10/img.png?width=508&amp;amp;height=121&amp;amp;face=0_0_508_121,https://scrap.kakaocdn.net/dn/dgUnRK/hyHHEgnCoq/CfVZwWxnqNqeLR9IHK6KR1/img.png?width=508&amp;amp;height=121&amp;amp;face=0_0_508_121,https://scrap.kakaocdn.net/dn/CJgBH/hyHHNj46yn/GYCa2WRTCYUjId79VH78F0/img.jpg?width=544&amp;amp;height=536&amp;amp;face=0_0_544_536');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;[스프링부트 (3)] SpringMVC(2) Spring Boot View 설정 및 JSP 연동하기(Thymeleaf 추가)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;[스프링부트 (3)] SpringMVC(2) Spring Boot View 설정 및 JSP 연동하기(Thymeleaf 추가) 안녕하세요. 갓대희 입니다. 이번 포스팅은&amp;nbsp;[ 스프링 부트 View 설정방법&amp;nbsp;]&amp;nbsp;입니다.&amp;nbsp;: ) 이번 포스팅에선 MVC 패턴중..&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;goddaehee.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vNihY/btqJ1MRid59/Bk75aP66yDAlb6X1A5Hr9K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vNihY/btqJ1MRid59/Bk75aP66yDAlb6X1A5Hr9K/img.png&quot; data-alt=&quot;ModelAndView는 서블릿에서 제공하는 객체이다. viewName을 jsp 파일명으로 설정하면 자연스레 mapping이 이루어진다. Wowowowowow&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vNihY/btqJ1MRid59/Bk75aP66yDAlb6X1A5Hr9K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvNihY%2FbtqJ1MRid59%2FBk75aP66yDAlb6X1A5Hr9K%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&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;ModelAndView는 서블릿에서 제공하는 객체이다. viewName을 jsp 파일명으로 설정하면 자연스레 mapping이 이루어진다. Wowowowowow&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/AHhfv/btqJXWtBrFf/k0db9oqhVKdFBysRkk96Wk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/AHhfv/btqJXWtBrFf/k0db9oqhVKdFBysRkk96Wk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/AHhfv/btqJXWtBrFf/k0db9oqhVKdFBysRkk96Wk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAHhfv%2FbtqJXWtBrFf%2Fk0db9oqhVKdFBysRkk96Wk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;lt;%@ &lt;/span&gt;&lt;span&gt;taglib &lt;/span&gt;&lt;span&gt;prefix=&quot;&lt;/span&gt;&lt;span&gt;c&lt;/span&gt;&lt;span&gt;&quot; uri=&quot;&lt;/span&gt;&lt;span&gt;&lt;a href=&quot;http://java.sun.com/jsp/jstl/core&quot;&gt;http://java.sun.com/jsp/jstl/core&lt;/a&gt;&lt;/span&gt;&lt;span&gt;&quot; %&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;taglib: 태그라이브러리!&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;우리가 java에서 사용하는 일종의 import와 유사한 기능이랄까..&lt;/p&gt;
&lt;p&gt;prefix=&quot;c&quot;는 python에서 보면 as와 같은 역할이랄까.&lt;/p&gt;
&lt;p&gt;저거 외에도 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;</description>
      <author>mistive</author>
      <guid isPermaLink="true">https://developer-mistive.tistory.com/64</guid>
      <comments>https://developer-mistive.tistory.com/64#entry64comment</comments>
      <pubDate>Fri, 2 Oct 2020 23:52:27 +0900</pubDate>
    </item>
    <item>
      <title>[스프링 부트] jsp가 적용이 안된다....가 됬다?</title>
      <link>https://developer-mistive.tistory.com/63</link>
      <description>&lt;p&gt;멘붕 ㅋㅋㅋㅋ&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; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/AxIbn/btqJ3h4zgMV/a4GdDiWkJ3WXEYUMJjIiHK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/AxIbn/btqJ3h4zgMV/a4GdDiWkJ3WXEYUMJjIiHK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/AxIbn/btqJ3h4zgMV/a4GdDiWkJ3WXEYUMJjIiHK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAxIbn%2FbtqJ3h4zgMV%2Fa4GdDiWkJ3WXEYUMJjIiHK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&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;pom.xml에 의존성 모듈을 처음에 추가하니 intellij 기준으로 글자가 빨간색이 뜨는 것이 아닌가...&lt;/p&gt;
&lt;pre id=&quot;code_1601647721954&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;    &amp;lt;dependency&amp;gt;
      &amp;lt;groupId&amp;gt;javax.servlet&amp;lt;/groupId&amp;gt;
      &amp;lt;artifactId&amp;gt;jstl&amp;lt;/artifactId&amp;gt;
    &amp;lt;/dependency&amp;gt;
    &amp;lt;dependency&amp;gt;
      &amp;lt;groupId&amp;gt;org.apache.tomcat.embed&amp;lt;/groupId&amp;gt;
      &amp;lt;artifactId&amp;gt;tomcat-embed-jasper&amp;lt;/artifactId&amp;gt;
    &amp;lt;/dependency&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;의존성 모듈을 따로 reimport 해주는 기능이 있는줄 몰랐었다.&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;1. jstl version 정보를 추가하고 컴파일 한 것.&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; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bVUcbM/btqJXV9g4kS/Lo3ewb0He21UKoI5WDxKlK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bVUcbM/btqJXV9g4kS/Lo3ewb0He21UKoI5WDxKlK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bVUcbM/btqJXV9g4kS/Lo3ewb0He21UKoI5WDxKlK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbVUcbM%2FbtqJXV9g4kS%2FLo3ewb0He21UKoI5WDxKlK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;그런데 후에 지우고 해봐도 잘 된다 ㅋㅋㅋ(뭐지)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;2. SpringBootApplication을 Run 한 것&lt;/p&gt;
&lt;p&gt;intellij에서 run 방법이 2개가 있다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Shift + F10&lt;/p&gt;
&lt;p&gt;Ctrl + Shift + F10&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;내가 알고 있는 저 둘의 차이는 기존에 컴파일 했던걸 Run했던 것과 현재 켜져있는 것을 Run하는 것이라고 알고 있는데, 혹시 몰라 일단 적어봤다.&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;(gradle로 명시해놓은 것 보니깐 버전 정보가 다 명시가 되어 있더라)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&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; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dkFxFi/btqJ6bQjz9F/0I6tpBv1NicKbkWJiOI6ZK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dkFxFi/btqJ6bQjz9F/0I6tpBv1NicKbkWJiOI6ZK/img.png&quot; data-alt=&quot;해당 uri도 빨간색이었는데 어느 순간 초록색으로 바뀌었다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dkFxFi/btqJ6bQjz9F/0I6tpBv1NicKbkWJiOI6ZK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdkFxFi%2FbtqJ6bQjz9F%2F0I6tpBv1NicKbkWJiOI6ZK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&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;해당 uri도 빨간색이었는데 어느 순간 초록색으로 바뀌었다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <author>mistive</author>
      <guid isPermaLink="true">https://developer-mistive.tistory.com/63</guid>
      <comments>https://developer-mistive.tistory.com/63#entry63comment</comments>
      <pubDate>Fri, 2 Oct 2020 23:14:15 +0900</pubDate>
    </item>
    <item>
      <title>[스프링 부트] 처음 시작하기</title>
      <link>https://developer-mistive.tistory.com/62</link>
      <description>&lt;p&gt;참고 : &lt;a href=&quot;https://jaystevency.tistory.com/19&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;jaystevency.tistory.com/19&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1601466501250&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[SpringBoot] #1 IntelliJ 에서 spring boot 시작하기&quot; data-og-description=&quot;Spring Boot Project 개발 환경 Dev OS : Mac Sierra 10.12.3 IDE : IntelliJ IDEA 2016.2.4&amp;nbsp;Build #IU-162.2032.8, built on September 9, 2016 java : jdk 1.8 본 게시글은 박재성님의 spring-boot, JPA&amp;nbsp;질문/..&quot; data-og-host=&quot;jaystevency.tistory.com&quot; data-og-source-url=&quot;https://jaystevency.tistory.com/19&quot; data-og-url=&quot;https://jaystevency.tistory.com/19&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bWJBju/hyHGgzRtze/CSfZrhaYvGMoPBIbboPrAk/img.png?width=800&amp;amp;height=626&amp;amp;face=0_0_800_626,https://scrap.kakaocdn.net/dn/b9HTsQ/hyHHO9AbQ2/mzCBSoNnPOBCDwFERjf1c1/img.png?width=800&amp;amp;height=626&amp;amp;face=0_0_800_626,https://scrap.kakaocdn.net/dn/dEVdtg/hyHHEME3t4/TvEvTebKzjS9G1hK0HKJbk/img.png?width=820&amp;amp;height=642&amp;amp;face=0_0_820_642&quot;&gt;&lt;a href=&quot;https://jaystevency.tistory.com/19&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://jaystevency.tistory.com/19&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bWJBju/hyHGgzRtze/CSfZrhaYvGMoPBIbboPrAk/img.png?width=800&amp;amp;height=626&amp;amp;face=0_0_800_626,https://scrap.kakaocdn.net/dn/b9HTsQ/hyHHO9AbQ2/mzCBSoNnPOBCDwFERjf1c1/img.png?width=800&amp;amp;height=626&amp;amp;face=0_0_800_626,https://scrap.kakaocdn.net/dn/dEVdtg/hyHHEME3t4/TvEvTebKzjS9G1hK0HKJbk/img.png?width=820&amp;amp;height=642&amp;amp;face=0_0_820_642');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;[SpringBoot] #1 IntelliJ 에서 spring boot 시작하기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;Spring Boot Project 개발 환경 Dev OS : Mac Sierra 10.12.3 IDE : IntelliJ IDEA 2016.2.4&amp;nbsp;Build #IU-162.2032.8, built on September 9, 2016 java : jdk 1.8 본 게시글은 박재성님의 spring-boot, JPA&amp;nbsp;질문/..&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;jaystevency.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&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;옛날에는 이클립스를 많이 썻었는데 IntelliJ 인터페이스가 너무 깔끔해서 IntelliJ로 갈아탔다.&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;인텔리제이에서 한 번 손쉽게 Spring Boot 프로젝트를 만들어보자.&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;IntelliJ IDEA 2019.3.1&lt;br /&gt;Java 8&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p&gt;면접 볼 때 Java 8 버전이 이전 버전들과 어떤 차이가 있냐고 물어봤었던 적이 있다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;그래서 그 기억에 한 번 찾아봤다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Lambda Expression 추가&lt;/li&gt;
&lt;li&gt;Streams 인터페이스 추가&lt;/li&gt;
&lt;li&gt;Default Method 추가&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;여기서 내가 아는건 Lambda Expression이 추가 되었다는 것..?&lt;/p&gt;
&lt;p&gt;Lambda Expression은 함수를 생성하지 않고 함수를 쓸 수 있게 해주는 것이다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Streams 인터페이스의 경우는 무엇인가 하니 리스트의 반복 연산을 stream().filter()를 활용하여 코드의 동작을 한눈에 볼 수 있게 해주는 것.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Default Method는 interface에서 사용되는 건데, 기존에는 interface에 method를 선언할 때 method만 선언할 수 있지 이에 대한 기능은 선언할 수 없었다. 하지만 이 기능이 생기면서 interface에서 선언한 method에도 기능을 추가할 수 있게 되었다는 것.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Default method를 만든 이유는 '하위 호환성' 때문이라고 한다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. 프로젝트 생성하기&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wbdWY/btqJZnpVt1S/nVUW2RC120NhuDoriocJK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wbdWY/btqJZnpVt1S/nVUW2RC120NhuDoriocJK1/img.png&quot; data-alt=&quot;Spring Initializr 선택 후 Next~&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wbdWY/btqJZnpVt1S/nVUW2RC120NhuDoriocJK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwbdWY%2FbtqJZnpVt1S%2FnVUW2RC120NhuDoriocJK1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&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;Spring Initializr 선택 후 Next~&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&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; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/AXgkJ/btqJWRyhoqK/S2X55H3GJ8PRS7nDLKDxh0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/AXgkJ/btqJWRyhoqK/S2X55H3GJ8PRS7nDLKDxh0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/AXgkJ/btqJWRyhoqK/S2X55H3GJ8PRS7nDLKDxh0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAXgkJ%2FbtqJWRyhoqK%2FS2X55H3GJ8PRS7nDLKDxh0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&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;ArtifactID : 보통 Name(프로젝트 ID)와 동일하게 설정&lt;/p&gt;
&lt;p&gt;Type : Maven Project&lt;/p&gt;
&lt;p&gt;Java Version : 8 (11로 하니깐 IntelliJ 업데이트 하라더라 싫어서 안한다. 그리고 Java 11은 유료잖아. 8 먼저 써보자 ㅋㅋ)&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p&gt;Maven Project?&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;b&gt;메이븐&lt;/b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;은&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;프로젝트&lt;/b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;구조와 내용을 기술하는 선언적 접근방식의 오픈소스 빌드 툴 입니다. 컴파일과 동시에 빌드를 수행할 수 있으며 테스트를 병행하거나 서버측 디플로이 자원을 관리할 수 있는 환경을 제공합니다.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;span&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: #333333;&quot;&gt;즉,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;필&lt;/span&gt;요한 라이브러리를 특정&amp;nbsp;문서(pom.xml)에 정의해 놓으면 네트워크를 통해서&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;라이브러리들을 자동으로 다운받아줍니다.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이걸 보니 이해가 된다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;span style=&quot;color: #000000;&quot;&gt;실제로 프로젝트를 만든 후에 dependencies 정보를 확인해보면 프로젝트를 생성할 당시 체크했던 항목들이 들이&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;pom.xml에 들어와 있는 것을 알 수 있다.&lt;/span&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;추가 정보&lt;br /&gt;&lt;br /&gt;+ Type : Maven - 프로젝트 빌드 및 의존성 관리에 Maven 을 사용합니다. Gradle을 선택할 수도 있습니다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;+ Packaging: Jar - 패키징을 Jar로 하도록 설정합니다. War로도 설정할 수 있습니다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;+ Java Version: 8 - 자바는 1.8을 사용합니다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;+ Language: Javav - 언어는 Java를 사용합니다. Kotlin을 선택할 수도 있습니다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;+ Group com.tistory.offbyone - 자신에게 맞는 값을 넣으면 됩니다. 보통 도메인을 사용합니다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;+ Artifact: spring-boot-test - Mave 아티팩트명인데, 이것이 프로젝트명이 됩니다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;+ Version: 0.0.1-SNAPSHOT - 프로젝트의 버전입니다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;+ Description: Demo project for Spring Boot - 프로젝트 설명입니다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;+ Package : com.tistory.offbyone.springboot - 초기 소스들이 만들어질 기본 패키지명 입니다.&lt;/span&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;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2AZzq/btqJWq8JRz9/n4D5fHykIUxFbC51HfGBn1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2AZzq/btqJWq8JRz9/n4D5fHykIUxFbC51HfGBn1/img.png&quot; data-alt=&quot;dependencies를 추가해주고 next&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2AZzq/btqJWq8JRz9/n4D5fHykIUxFbC51HfGBn1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2AZzq%2FbtqJWq8JRz9%2Fn4D5fHykIUxFbC51HfGBn1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&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;dependencies를 추가해주고 next&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p&gt;Developer Tools&lt;/p&gt;
&lt;p&gt;이놈은 상당히 유용한 놈이라고 한다.&lt;/p&gt;
&lt;p&gt;Chrome의 LiveReload와 같이 사용할 경우 프로젝트 파일을 저장하면 무조건 새로 컴파일해서 서버를 다시 껐다 킬 필요가 없다고 한다. 개꿀이 아닌가 꼭 설치하자 ㅋㅋ&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Spring Web&lt;/p&gt;
&lt;p&gt;RESTful, Spring MVC를 활용하여 web을 만들어 준다고 한다.&lt;/p&gt;
&lt;p&gt;일단 가장 기본적인거 같으니 이놈을 한 번 써보자&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Template Engine- Mustache&lt;/p&gt;
&lt;p&gt;템플릿 엔진이란 템플릿 양식과 특정 데이터 모델에 따른 입력 자료를 합성하여 결과 문서를 출력하는 소프트웨어이다.&lt;/p&gt;
&lt;p&gt;많은 코드를 줄일 수 있고(HTML에 비해 간단하다.), 재사용성이 높고(똑같은 디자인 페이지에 보이는 데이터만 바뀌는 경우가 굉장히 많다), 유지보수가 용이하다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;느낌은 알겠는데 직접 사용해봐야 할 듯 하다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p&gt;Spring MVC?&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Model, View, Controller를 분리한 디자인 패턴의 일종이다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;다른 블로그 포스팅을 살짝 봤는데... 뭔가 한 번에 이해하기는 어렵다. 이건 따로 공부해서 포스팅 해봐야할 듯 하다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/7z52d/btqJVnSsGzW/GzY0sc8ZKkZ5mTJpPu1iJ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/7z52d/btqJVnSsGzW/GzY0sc8ZKkZ5mTJpPu1iJ0/img.png&quot; data-alt=&quot;이렇게 하면 프로젝트 완성!&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/7z52d/btqJVnSsGzW/GzY0sc8ZKkZ5mTJpPu1iJ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7z52d%2FbtqJVnSsGzW%2FGzY0sc8ZKkZ5mTJpPu1iJ0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&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;이렇게 하면 프로젝트 완성!&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. index.html 파일 만들어서 띄워보기&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/VgwQp/btqJWRyiY5Q/Bfx5FSO6MenaS8MGkHHkO0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/VgwQp/btqJWRyiY5Q/Bfx5FSO6MenaS8MGkHHkO0/img.png&quot; data-alt=&quot;resouce-static에 index.html 파일을 만들어보자&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/VgwQp/btqJWRyiY5Q/Bfx5FSO6MenaS8MGkHHkO0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVgwQp%2FbtqJWRyiY5Q%2FBfx5FSO6MenaS8MGkHHkO0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&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;resouce-static에 index.html 파일을 만들어보자&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;시작은 무조건 Hello World~&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; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bibHsy/btqJVpbIlgT/tbgFYe8RqOFjn7cYy9Bwb0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bibHsy/btqJVpbIlgT/tbgFYe8RqOFjn7cYy9Bwb0/img.png&quot; data-alt=&quot;localhost:8080&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bibHsy/btqJVpbIlgT/tbgFYe8RqOFjn7cYy9Bwb0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbibHsy%2FbtqJVpbIlgT%2FtbgFYe8RqOFjn7cYy9Bwb0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&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;localhost:8080&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;출력 완료&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. DevTools + LiveReload 적용하기&lt;/h2&gt;
&lt;p&gt;이놈을 이용하면 서버를 다시 재시작 하지 않고도 프로젝트에서 변경된 정보를 저장만으로 반영시킬 수 있다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1. Ctrl + Shift + A : compiler 입력&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; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bOqu7G/btqJU4MOqZT/HLmkkX54yyObVOXC15Sks0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bOqu7G/btqJU4MOqZT/HLmkkX54yyObVOXC15Sks0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bOqu7G/btqJU4MOqZT/HLmkkX54yyObVOXC15Sks0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbOqu7G%2FbtqJU4MOqZT%2FHLmkkX54yyObVOXC15Sks0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&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;2. Build project automatically 클릭 -&amp;gt; OK 클릭&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; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbJHH0/btqJU5dQ77O/QRZz2iiKqbh0KHnDYhyO90/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbJHH0/btqJU5dQ77O/QRZz2iiKqbh0KHnDYhyO90/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbJHH0/btqJU5dQ77O/QRZz2iiKqbh0KHnDYhyO90/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbJHH0%2FbtqJU5dQ77O%2FQRZz2iiKqbh0KHnDYhyO90%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&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;3. Ctrl + Shift + A : registry 입력&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; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bum7gt/btqJWrfWyXA/KK0mcEuXnXEmaK4ovV6kl0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bum7gt/btqJWrfWyXA/KK0mcEuXnXEmaK4ovV6kl0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bum7gt/btqJWrfWyXA/KK0mcEuXnXEmaK4ovV6kl0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbum7gt%2FbtqJWrfWyXA%2FKK0mcEuXnXEmaK4ovV6kl0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&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;4. compiler.automake.allow.when.app.running 체크 박스 클릭 -&amp;gt; Close 클릭&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; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oPlOT/btqJV55hpEH/kKppyS4dee6JqfF1MQEFi1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oPlOT/btqJV55hpEH/kKppyS4dee6JqfF1MQEFi1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oPlOT/btqJV55hpEH/kKppyS4dee6JqfF1MQEFi1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoPlOT%2FbtqJV55hpEH%2FkKppyS4dee6JqfF1MQEFi1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&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;5. 크롬에서 LiveReload 확장 프로그램 검색해서 다운로드 해주면 끗&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;6. index.html 데이터를 바꿔보면 약간의 딜레이는 있지만 F5를 누르면 바뀌는 것을 확인할 수 있다.&lt;/p&gt;</description>
      <author>mistive</author>
      <guid isPermaLink="true">https://developer-mistive.tistory.com/62</guid>
      <comments>https://developer-mistive.tistory.com/62#entry62comment</comments>
      <pubDate>Wed, 30 Sep 2020 21:10:19 +0900</pubDate>
    </item>
    <item>
      <title>[책] 포에버 데이원</title>
      <link>https://developer-mistive.tistory.com/61</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cmOvMX/btqIS6407Vi/RjlUGSOfwlwd40wYnLBRv0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cmOvMX/btqIS6407Vi/RjlUGSOfwlwd40wYnLBRv0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cmOvMX/btqIS6407Vi/RjlUGSOfwlwd40wYnLBRv0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcmOvMX%2FbtqIS6407Vi%2FRjlUGSOfwlwd40wYnLBRv0%2Fimg.jpg&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;Day2가 되면 회사가 망하게 된다!&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;항상 Day1을 유지하게 하기 위한 '제프 베조스'의 철학이 담겨있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;책에서 가장 기억에 남는 것은 바로&lt;b&gt; '고객중심적인 마인드'&lt;/b&gt;이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;정말 철저하게 단기적인 손실보다 고객의 신뢰롤 훨씬 더 중요하고 가치있게 여기며, 말뿐만이 아닌 실제 행동으로 보여주는 사례들을 보니 이렇게 성장할 수 있었던 이유를 알 수 있었다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;1. 핑크 에어팟의 QC문제로 인해 배송이 지연될 것이라는 들은 담당자가 나라면 어떻게 했을 것인가?&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;당연스럽게 '이러이러한 사유로 인해 배송이 지연될 것 같습니다'라고 공지를 올릴 것이라고 일반 사람들은 생각했을 것이다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;&quot;&gt;하지만? 아마존에서는 소매상에게서 핑크 에어팟 4000개를 구매해 배송 일정을 맞췄다...ㅎ&lt;/span&gt;&lt;span style=&quot;&quot;&gt;진짜 대단하지 않나?ㅋㅋ&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;2. VOD 서비스를 이용하다 불편을 느낀 고객이 클레임을 걸기도 전에 선제적으로 보상을 제공했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;이런 시스템을 구축하고, 실제 실행하고 있는 것이 정말&amp;nbsp;&lt;b&gt;고객의 신뢰&lt;/b&gt;를 가장 중요하게 생각하고 있구나 라는 것을 느낄 수 있었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>책</category>
      <category>고객 중심</category>
      <category>아마존</category>
      <category>포에버 데이 원</category>
      <author>mistive</author>
      <guid isPermaLink="true">https://developer-mistive.tistory.com/61</guid>
      <comments>https://developer-mistive.tistory.com/61#entry61comment</comments>
      <pubDate>Fri, 18 Sep 2020 09:11:11 +0900</pubDate>
    </item>
    <item>
      <title>[pyinstaller] 파이썬 실행파일 만들어주는 pyinstaller 활용백서</title>
      <link>https://developer-mistive.tistory.com/59</link>
      <description>&lt;p&gt;해당 포스팅은 windows10 64bit / python 3.6 / IDE: pycharm / anaconda3에서 진행하였습니다.&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; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cAyjUx/btqGYJ4sFjD/EcNY73afzUMkhkgpZeg6O1/tfile.dat&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cAyjUx/btqGYJ4sFjD/EcNY73afzUMkhkgpZeg6O1/tfile.dat&quot; data-alt=&quot;귀여운 pyinstaller 아이콘..ㅋㅋ&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cAyjUx/btqGYJ4sFjD/EcNY73afzUMkhkgpZeg6O1/tfile.dat&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcAyjUx%2FbtqGYJ4sFjD%2FEcNY73afzUMkhkgpZeg6O1%2Ftfile.dat&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&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;귀여운 pyinstaller 아이콘..ㅋㅋ&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;pyinstaller란?&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;pyinstaller는 python으로 만든 프로그램을 python이 없는 환경에서 실행시켜주기 위해 실행파일로 만들어주는 프로그램입니다~&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;어떻게 설치하나?&lt;/b&gt;&lt;/h2&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;p data-ke-size=&quot;size18&quot;&gt;$ pip install pyinstaller&lt;/p&gt;
&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;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;사용방법은?&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;사용방법은.....간단하지만 간단하지 않습니다. 하지만 하나씩 차근차근 해본다면 쉽게 만들 수 있다는 것!&lt;/p&gt;
&lt;p&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;p data-ke-size=&quot;size18&quot;&gt;$ pyinstaller -F main.py&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;pyinstaller 명령어를 사용하여 본인이 만든 프로젝트의 main.py를 실행파일로 만들어주게 됩니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;-F :&lt;/b&gt; 이 놈은 --onefile 옵션입니다. 즉, 모든 것들(리소스, 라이브러리 등등)이 실행파일 내부로 들어가기 때문에 하나의 실행파일로 내가 만든 기능을 수행할 수 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;해당 옵션을 사용하지 않을 경우&lt;/b&gt; &lt;b&gt;여러가지 dll(=Dynimic Link Library)과 함께 생성되기&lt;/b&gt; 때문에 실행파일 크기면으로는 이득이지만, 배포하는데 문제가 생길 소지가 있어, 크지 않은 프로그램같은 경우는 단일 실행파일로 배포하는게 훨씬 깔끔합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이렇게 명령어를 실행하면 '&lt;b&gt;build' 폴더와 'dist' 폴더, 그리고 'main.spec' 파일&lt;/b&gt;이&amp;nbsp;생성이 됩니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;만든 실행파일을 실행시켜보자!&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;자, 그럼 &lt;b&gt;dist 폴더&lt;/b&gt;로 들어가서 &lt;b&gt;main.exe&lt;/b&gt; 파일을 실행시켜보면?&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;i&gt;아니 무슨 cmd창이 뜨고 바로 사라져버리는 것이 아닌가....ㅋㅋ&lt;/i&gt;&lt;/h2&gt;
&lt;p&gt;만약 바로 원하던 프로그램이 실행이 되면 그냥 그대로 쓰시면 됩니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;하지만 조금이라도 큰 프로젝트를 만들었다면 &lt;b&gt;분명 바로 실행이 될 일이 없으실 겁니다.&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;자.....&lt;b&gt;순식간에 사라진 cmd 창&lt;/b&gt;을 자세히 보셨으면 어떤 글씨들이 썻다가 지워지는 것을 볼 수 있으셨을 겁니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;어떤 메세지가 떴나 확인을 하기 위해서는 &lt;b&gt;실행파일을 cmd창에서 실행&lt;/b&gt;시키면 됩니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;저는 git bash를 이용하여 실행시켰습니다.&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 data-ke-size=&quot;size18&quot;&gt;$ ./main.exe&lt;/p&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; width=&quot;603&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3wW8E/btqG14AlQMq/6NloXzYRzxqVXqpBkUi5Bk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3wW8E/btqG14AlQMq/6NloXzYRzxqVXqpBkUi5Bk/img.png&quot; data-alt=&quot;흠..... KeyError가 떳었구나.....&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3wW8E/btqG14AlQMq/6NloXzYRzxqVXqpBkUi5Bk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3wW8E%2FbtqG14AlQMq%2F6NloXzYRzxqVXqpBkUi5Bk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;603&quot; height=&quot;NaN&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;흠..... KeyError가 떳었구나.....&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;저의 경우는 &lt;b&gt;KeyError&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;문제를 해결하기 위해서는! 처음 pyinstaller를 실행했을 당시 생성된 &lt;b&gt;'main.spec' 파일을 수정&lt;/b&gt;해야 합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;main.spec 파일을 알아보자&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1597906177198&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# -*- mode: python ; coding: utf-8 -*-

block_cipher = None


a = Analysis(['main.py'],
             pathex=['C:\\Users\\PC\\PycharmProjects\\plcMonitoring_2'],
             binaries=[],
             datas=[],
             hiddenimports=[],
             hookspath=[],
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher,
             noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
             cipher=block_cipher)
exe = EXE(pyz,
          a.scripts,
          a.binaries,
          a.zipfiles,
          a.datas,
          [],
          name='main',
          debug=False,
          bootloader_ignore_signals=False,
          strip=False,
          upx=True,
          upx_exclude=[],
          runtime_tmpdir=None,
          console=True )
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;※ 최초에는 pyinstaller -F main.py로 실행파일을 만들었지만, main.spec을 수정한 후에는 &lt;u&gt;pyinstaller -F main.spec&lt;/u&gt;을 실행시켜줄 겁니다.&lt;/b&gt;&lt;/span&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;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;$ pyinstaller -F &lt;s&gt;main.py&lt;/s&gt;&lt;/span&gt;&lt;br /&gt;$ pyinstaller -F main.spec&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;b&gt;datas&lt;/b&gt;와 &lt;b&gt;hiddenimports&lt;/b&gt; 값들입니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;datas :&lt;/b&gt; 리소스 파일의 경로를 입력하게 됩니다. 입력방법은 tuple 또는 list 형태로 들어가게 되구요.&lt;/p&gt;
&lt;p&gt;저는 튜플 방식을 사용했고, 만약 &lt;b&gt;'./img/image.png' 파일을 &lt;u&gt;실행파일&lt;/u&gt;에 포함시키고 싶다&lt;/b&gt;?&lt;/p&gt;
&lt;p&gt;&lt;b&gt;튜플 형식 : (src, dest)&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;datas = [('./img/image.png', './img')]&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&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;b&gt;여러개의 파일을 추가&lt;/b&gt;할 때는&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;datas = [('./img/image.png', './img'),&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;&lt;b&gt;('./img/image2.png', './img'),&lt;/b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;&lt;b&gt;('./img/image3.png', './img')&lt;/b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;]&lt;/b&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;b&gt;폴더 내에있는 모든 리소스를 추가&lt;/b&gt;하고 싶으면&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;datas = [('./img/*', './img')&lt;/b&gt;&lt;b&gt;]&lt;/b&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;b&gt;hiddenimports&lt;/b&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;b&gt;hiddenimports :&lt;/b&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;pyinstaller의 경우 사용자 모듈을 추가해서 작성해주어야 합니다.&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;예를 들어, 내가 a.py에서 '&lt;b&gt;from 공통.통신 import 시리얼통신'&lt;/b&gt;이라는 모듈을 못찾았다는 에러를 확인할 경우&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;hiddenimports = ['공통.통신.시리얼통신']&lt;/b&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: center;&quot;&gt;&lt;b&gt;hiddenimports = ['공통.통신.시리얼통신',&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;'공통.통신.시리얼통신2'&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;]&lt;/b&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: center;&quot;&gt;&lt;b&gt;hiddenimports = ['공통.통신.*']&lt;/b&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;h2 style=&quot;text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;어..? 그런데도 리소스가 안찾아지는데요?&lt;/b&gt;&lt;/h2&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;p&gt;리소스들의 위치가 실행파일위치 기준이 아닌 &lt;b&gt;AppData/local 내부&lt;/b&gt;에 있는 것이었습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;문제 해결을 위해서&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1597907559139&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;try:
    os.chdir(sys._MEIPASS)
    print(sys._MEIPASS)
except:
    os.chdir(os.getcwd())&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;main문 최초 실행 당시 위와같이 작업 경로 변경을 통해 문제를 해결해주었습니다.&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;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;콘솔창 안뜨게 하기&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;이건 정말 간단합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;main.spec 파일을 보면 console=True 되어있는데 False로 바꿔주면 됩니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;프로그램 이름이랑 아이콘 생성하기&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;이것도 간단합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;main.spec 파일을 보면 name='main'으로 되어있을 텐데 원하시는 것으로 바꾸면 됩니다.&lt;/p&gt;
&lt;p&gt;icon의 경우&amp;nbsp;&lt;/p&gt;
&lt;p&gt;EXE( ... ) 내부에&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;icon = 'icon.ico'&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot;&gt;를 추가해주면 됩니다.&lt;/p&gt;
&lt;pre id=&quot;code_1597908008872&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;exe = EXE(pyz,
          a.scripts,
          a.binaries,
          a.zipfiles,
          a.datas,
          [],
          name='실행파일이름',
          debug=False,
          bootloader_ignore_signals=False,
          strip=False,
          upx=True,
          upx_exclude=[],
          runtime_tmpdir=None,
          console=True,
          icon='아이콘.ico')
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이상 pyinstaller를 이용하여 실행파일 만들기였습니다!&lt;/p&gt;</description>
      <category>파이썬</category>
      <category>EXE</category>
      <category>pyinstaller</category>
      <category>python</category>
      <category>실행파일</category>
      <author>mistive</author>
      <guid isPermaLink="true">https://developer-mistive.tistory.com/59</guid>
      <comments>https://developer-mistive.tistory.com/59#entry59comment</comments>
      <pubDate>Thu, 20 Aug 2020 15:08:10 +0900</pubDate>
    </item>
  </channel>
</rss>