<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>행이네</title>
    <link>https://lilymate.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Wed, 27 May 2026 23:34:13 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>행이&amp;trade;</managingEditor>
    <image>
      <title>행이네</title>
      <url>https://t1.daumcdn.net/cfile/tistory/145F500C49ACB05F96</url>
      <link>https://lilymate.tistory.com</link>
    </image>
    <item>
      <title>vercel Next.js deploy Error: Builder returned invalid routes</title>
      <link>https://lilymate.tistory.com/746</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://vercel.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;vercel&lt;/a&gt;&amp;nbsp;에서 Next.js 소스 deploy시에&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래처럼 Error가 나온다면...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1713953466595&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Error: Builder returned invalid routes:
       [&quot;Route at index 0 must define either `handle` or `src` property.&quot;]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 Project 의&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;Settings&lt;/span&gt; 에 들어가서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;Build &amp;amp; Development Settings&lt;/span&gt; 의&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Framework Preset 을&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Next.js&lt;/b&gt;&lt;/span&gt; 로 선택하고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Save 해주면 해결된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;967&quot; data-origin-height=&quot;598&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yQSix/btsGUV38ZWZ/49kfed0e2jEY4T6SRaee40/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yQSix/btsGUV38ZWZ/49kfed0e2jEY4T6SRaee40/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yQSix/btsGUV38ZWZ/49kfed0e2jEY4T6SRaee40/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyQSix%2FbtsGUV38ZWZ%2F49kfed0e2jEY4T6SRaee40%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;967&quot; height=&quot;598&quot; data-origin-width=&quot;967&quot; data-origin-height=&quot;598&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>plming/기타</category>
      <category>invalid_routes</category>
      <category>next.js</category>
      <category>vercel</category>
      <category>모르면삽질</category>
      <author>행이&amp;trade;</author>
      <guid isPermaLink="true">https://lilymate.tistory.com/746</guid>
      <comments>https://lilymate.tistory.com/746#entry746comment</comments>
      <pubDate>Wed, 24 Apr 2024 19:22:35 +0900</pubDate>
    </item>
    <item>
      <title>[책] 기계의 반칙</title>
      <link>https://lilymate.tistory.com/745</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;AI의&amp;nbsp;시대.&amp;nbsp;&amp;nbsp;어딜가도,&amp;nbsp;어떤&amp;nbsp;곳에서도&amp;nbsp;이젠&amp;nbsp;모두&amp;nbsp;AI를&amp;nbsp;논하는&amp;nbsp;시대. &lt;br /&gt;이&amp;nbsp;시대에&amp;nbsp;걸맞는&amp;nbsp;책이&amp;nbsp;아닌가&amp;nbsp;싶다. &lt;br /&gt;&lt;br /&gt;인간처럼&amp;nbsp;사고하고&amp;nbsp;인간처럼&amp;nbsp;움직이는&amp;nbsp;기계 &lt;br /&gt;하지만,&amp;nbsp;인간이&amp;nbsp;할&amp;nbsp;수&amp;nbsp;있는&amp;nbsp;한계를&amp;nbsp;뛰어넘는 &lt;br /&gt;인공지능&amp;nbsp;기계를&amp;nbsp;인간이&amp;nbsp;잘&amp;nbsp;제어해야 &lt;br /&gt;인간들에게&amp;nbsp;도움이&amp;nbsp;될수&amp;nbsp;있는 &lt;br /&gt;인간이&amp;nbsp;기계를&amp;nbsp;이용하면서&amp;nbsp;생기는&amp;nbsp; &lt;br /&gt;딜레마에&amp;nbsp;대해&amp;nbsp;생각해&amp;nbsp;볼&amp;nbsp;수&amp;nbsp;있는&amp;nbsp;좋은&amp;nbsp;기회를&amp;nbsp;제공한다. &lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;기계의반칙.jpg&quot; data-origin-width=&quot;632&quot; data-origin-height=&quot;987&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c9DQvr/btsCIFRdfmJ/yC2CJRVa4o4jxqbLuiH4Fk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c9DQvr/btsCIFRdfmJ/yC2CJRVa4o4jxqbLuiH4Fk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c9DQvr/btsCIFRdfmJ/yC2CJRVa4o4jxqbLuiH4Fk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc9DQvr%2FbtsCIFRdfmJ%2FyC2CJRVa4o4jxqbLuiH4Fk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;632&quot; height=&quot;987&quot; data-filename=&quot;기계의반칙.jpg&quot; data-origin-width=&quot;632&quot; data-origin-height=&quot;987&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;지능,&amp;nbsp;인공&amp;nbsp;지능,&amp;nbsp;기계 &lt;br /&gt;기초&amp;nbsp;개념부터&amp;nbsp;하나&amp;nbsp;하나&amp;nbsp;짚어보면서 &lt;br /&gt;기계의&amp;nbsp;특성과&amp;nbsp;기계와&amp;nbsp;함께&amp;nbsp;하며&amp;nbsp;생길&amp;nbsp;수&amp;nbsp;있는&amp;nbsp;문제들도&amp;nbsp;알아보고 &lt;br /&gt;이를&amp;nbsp;해결하기&amp;nbsp;위한&amp;nbsp;다양한&amp;nbsp;아이디어들을&amp;nbsp;제시한다. &lt;br /&gt;&lt;br /&gt;자극에&amp;nbsp;대한&amp;nbsp;반응,&amp;nbsp;무의식적인&amp;nbsp;반사,&amp;nbsp;학습된&amp;nbsp;반응 &lt;br /&gt;계산된&amp;nbsp;행동,&amp;nbsp;경험으로&amp;nbsp;생긴&amp;nbsp;변화가&amp;nbsp;가능해지는 &lt;br /&gt;기계의&amp;nbsp;지능.&amp;nbsp;&amp;nbsp;새로운&amp;nbsp;시대에,&amp;nbsp;새로운&amp;nbsp;환경에서 &lt;br /&gt;다양하게&amp;nbsp;생길&amp;nbsp;수&amp;nbsp;있는&amp;nbsp;이슈들 &lt;br /&gt;&lt;br /&gt;AI와&amp;nbsp;함께&amp;nbsp;살아가는&amp;nbsp;세상에서 &lt;br /&gt;간과할&amp;nbsp;수&amp;nbsp;없는&amp;nbsp;것들을 &lt;br /&gt;남용되지&amp;nbsp;않도록&amp;nbsp;규칙을&amp;nbsp;정하고&amp;nbsp; &lt;br /&gt;관리해야&amp;nbsp;하는&amp;nbsp;필요와&amp;nbsp;이해를&amp;nbsp;높이는&amp;nbsp;시간이었다. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&quot;한빛미디어&amp;nbsp;&amp;lt;나는&amp;nbsp;리뷰어다&amp;gt;&amp;nbsp;활동을&amp;nbsp;위해서&amp;nbsp;책을&amp;nbsp;제공받아&amp;nbsp;작성된&amp;nbsp;서평입니다.&quot;&lt;/b&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>이런저런/책</category>
      <category>기계</category>
      <category>기계의반칙</category>
      <category>반칙</category>
      <category>인공지능</category>
      <category>한빛미디어</category>
      <author>행이&amp;trade;</author>
      <guid isPermaLink="true">https://lilymate.tistory.com/745</guid>
      <comments>https://lilymate.tistory.com/745#entry745comment</comments>
      <pubDate>Mon, 25 Dec 2023 21:49:14 +0900</pubDate>
    </item>
    <item>
      <title>프롤로그에서는 콘텐츠가 허용되지 않습니다.</title>
      <link>https://lilymate.tistory.com/744</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Test를 실행했는데, Error가 났다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1703036461129&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;xxxTest
[Fatal Error] :1:1: 프롤로그에서는 콘텐츠가 허용되지 않습니다.
:::
org.springframework.restdocs.payload.PayloadHandlingException:
Cannot handle application/json;charset=UTF-8 content as it could not be parsed as JSON or XML&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Req로 사용하는 Class의 인자에 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;한글&lt;/b&gt;&lt;/span&gt; 이 들어가 있다면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1단, 영문 인자로 바꾸면 사라진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1703038184633&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;reqDto.setA( &quot;한글&quot; );&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;한글 인자여도, Test 실패하지 않는 방법 좀;;;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>plming/Java-Spring Boot</category>
      <category>Spring</category>
      <category>springboot</category>
      <category>test</category>
      <category>실패</category>
      <category>영문</category>
      <category>콘텐츠</category>
      <category>프롤로그</category>
      <category>한글</category>
      <category>허용</category>
      <author>행이&amp;trade;</author>
      <guid isPermaLink="true">https://lilymate.tistory.com/744</guid>
      <comments>https://lilymate.tistory.com/744#entry744comment</comments>
      <pubDate>Wed, 20 Dec 2023 11:12:41 +0900</pubDate>
    </item>
    <item>
      <title>[책] 우아한 타입스크립트 with 리액트</title>
      <link>https://lilymate.tistory.com/743</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;모든&amp;nbsp;서비스/시스템의&amp;nbsp;꽃은&amp;nbsp;프론트엔드지. &lt;br /&gt;백앤드가&amp;nbsp;아무리&amp;nbsp;예쁘게(?!)&amp;nbsp;되어있어봐야&amp;nbsp;아무소용&amp;nbsp;없다. &lt;br /&gt;&amp;gt;&amp;nbsp;그들은&amp;nbsp;그저&amp;nbsp;죽지만&amp;nbsp;않으면&amp;nbsp;되는존재지. &lt;br /&gt;&lt;br /&gt;더군다나&amp;nbsp;기존&amp;nbsp;자바스크립트로&amp;nbsp;발라져있는&amp;nbsp;화면을 &lt;br /&gt;리뉴얼하거나&amp;nbsp;큰&amp;nbsp;프로젝트이거나&amp;nbsp;안정성/생산성을&amp;nbsp;바란다면 &lt;br /&gt;자바스크립트와&amp;nbsp;100%&amp;nbsp;호환되는&amp;nbsp;타입스크립트를 &lt;br /&gt;거기에&amp;nbsp;리액트까지...&amp;nbsp;완벽한&amp;nbsp;조합이&amp;nbsp;아닐&amp;nbsp;수&amp;nbsp;없다. &lt;br /&gt;&lt;br /&gt;이&amp;nbsp;완벽한&amp;nbsp;조합에&amp;nbsp;화룡점정을&amp;nbsp;이루는&amp;nbsp;책일듯&amp;nbsp;하다. &lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;우아한타입스크립트.jpg&quot; data-origin-width=&quot;783&quot; data-origin-height=&quot;986&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bhoDse/btsASev77dI/IUlebgKEDE0vnOm6SKA3WK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhoDse/btsASev77dI/IUlebgKEDE0vnOm6SKA3WK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhoDse/btsASev77dI/IUlebgKEDE0vnOm6SKA3WK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbhoDse%2FbtsASev77dI%2FIUlebgKEDE0vnOm6SKA3WK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;783&quot; height=&quot;986&quot; data-filename=&quot;우아한타입스크립트.jpg&quot; data-origin-width=&quot;783&quot; data-origin-height=&quot;986&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;우아한 형제들의 주니어 개발자들이 &lt;br /&gt;기술의&amp;nbsp;개념과&amp;nbsp;구조를&amp;nbsp;깊이&amp;nbsp;탐구하고&amp;nbsp;고민해서 &lt;br /&gt;성장과&amp;nbsp;발전을&amp;nbsp;이룬&amp;nbsp;그&amp;nbsp;과정에서&amp;nbsp;얻은&amp;nbsp;노하우들을 &lt;br /&gt;&lt;br /&gt;같은&amp;nbsp;주니어들에게,&amp;nbsp;타입스크립트와&amp;nbsp;리액트의&amp;nbsp;조합까지 &lt;br /&gt;기초부터&amp;nbsp;깊이있게&amp;nbsp;기본&amp;nbsp;개념과&amp;nbsp;중요한&amp;nbsp;특징들, &lt;br /&gt;그리고&amp;nbsp;다양한&amp;nbsp;팁들과&amp;nbsp;활용&amp;nbsp;방향까지 &lt;br /&gt;이해하기&amp;nbsp;쉽고&amp;nbsp;알차게&amp;nbsp;잘&amp;nbsp;다루고&amp;nbsp;있다. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&quot;한빛미디어&amp;nbsp;&amp;lt;나는&amp;nbsp;리뷰어다&amp;gt;&amp;nbsp;활동을&amp;nbsp;위해서&amp;nbsp;책을&amp;nbsp;제공받아&amp;nbsp;작성된&amp;nbsp;서평입니다.&quot;&lt;/b&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>이런저런/책</category>
      <category>리액트</category>
      <category>우아한</category>
      <category>우아한타입스크립트</category>
      <category>우아한타입스크립트with리액트</category>
      <category>우아한테크</category>
      <category>타입스크립트</category>
      <category>한빛미디어</category>
      <author>행이&amp;trade;</author>
      <guid isPermaLink="true">https://lilymate.tistory.com/743</guid>
      <comments>https://lilymate.tistory.com/743#entry743comment</comments>
      <pubDate>Sun, 26 Nov 2023 12:37:24 +0900</pubDate>
    </item>
    <item>
      <title>local에서 작업하던 git repository gitlab에 올리기</title>
      <link>https://lilymate.tistory.com/742</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Local에서 혼자 작업하던 git repository를&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;gitlab에 올리려면&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;0. 먼저 gitlab에 SSH Key를 등록해두는 것이 좋다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://lilymate.tistory.com/741&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://lilymate.tistory.com/741&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. gitlab에 project를 생성해놓고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; (Clone with SSH로) repository 주소를 복사한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;402&quot; data-origin-height=&quot;148&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bX8pmn/btszUwjsZ2C/J4PO7IuK6ogzFy67oWiLB0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bX8pmn/btszUwjsZ2C/J4PO7IuK6ogzFy67oWiLB0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bX8pmn/btszUwjsZ2C/J4PO7IuK6ogzFy67oWiLB0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbX8pmn%2FbtszUwjsZ2C%2FJ4PO7IuK6ogzFy67oWiLB0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;402&quot; height=&quot;148&quot; data-origin-width=&quot;402&quot; data-origin-height=&quot;148&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. local repository에서 아래 명령을 입력한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 위에서 복사한 repository주소를 뒤에 붙여준다.&lt;/p&gt;
&lt;pre id=&quot;code_1699338882035&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git remote add origin 복사한Repository주소(예: git@gitlab.com:xxx.git)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. GIT PUSH&lt;/p&gt;
&lt;pre id=&quot;code_1699338961118&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git push -u origin master&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;gitlab 해당 project에 보면 push한 repository가 생겼다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>plming/기타</category>
      <category>ADD</category>
      <category>GIT</category>
      <category>gitlab</category>
      <category>local</category>
      <category>remote</category>
      <category>Repository</category>
      <author>행이&amp;trade;</author>
      <guid isPermaLink="true">https://lilymate.tistory.com/742</guid>
      <comments>https://lilymate.tistory.com/742#entry742comment</comments>
      <pubDate>Tue, 7 Nov 2023 15:37:28 +0900</pubDate>
    </item>
    <item>
      <title>gitlab에 SSH Key 등록</title>
      <link>https://lilymate.tistory.com/741</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;이미 내 컴퓨터 안에서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;git repository를 만들어서 commit 작업을 하고 있다가&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;외부의 gitlab에 push 하고 싶다면...?&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;먼저 내 컴퓨터에 대한 SSH Key를 등록해놔야&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;1. (윈도에서) Git Bash를 실행 (이미 git을 쓰고 있었으므로 당연히 설치되어있다)&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;2. 아래 명령으로 SSH Key를 생성한다.&lt;/p&gt;
&lt;pre id=&quot;code_1699336809914&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ssh-keygen&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1699337088330&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/AAA/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/AAA/.ssh/id_rsa
Your public key has been saved in /c/Users/AAA/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:Jy+v2kKK1+17ztkt9pvFraexGzwiPUFx/9xlAmNM4I0 AAA@DESKTOP-AOJLQOQ
The key's randomart image is:
+---[RSA 3072]----+
|          .+* .  |
|         . +.= . |
|          E o . +|
|           .   ++|
|        S . .   +|
|      .  + . o ..|
|   . + .. o + = +|
|  . o o..+.+o+ O.|
|   .  .+===..oX= |
+----[SHA256]-----+&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 생성된 id_rsa.pub 파일을 메모장등에서 열고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &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;4. gitlab - 내 Profile - SSH Keys - Add new key&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;250&quot; data-origin-height=&quot;170&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbeyss/btszOPj4b9J/7VzWnWG9Edjmqn8IlsbvyK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbeyss/btszOPj4b9J/7VzWnWG9Edjmqn8IlsbvyK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbeyss/btszOPj4b9J/7VzWnWG9Edjmqn8IlsbvyK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbbeyss%2FbtszOPj4b9J%2F7VzWnWG9Edjmqn8IlsbvyK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;250&quot; height=&quot;170&quot; data-origin-width=&quot;250&quot; data-origin-height=&quot;170&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. Key 에 위에서 복사한 TEXT를 붙여넣기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6. (옵션) 계속 사용하려면, Expiration date 지우기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;7. Add key&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나중에 gitlab에 만든 project repository를 clone하거나&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;local에 있는 repository를 push할 때&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래처럼 표시되면, yes 해주면 된다.&lt;/p&gt;
&lt;pre id=&quot;code_1699338263487&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;The authenticity of host 'gitlab.com (11.12.13.14)' can't be established.
ECDSA key fingerprint is SHA256:HbW3g8zUjNSksFbqTiUWPWg2Bq1x8xdGUrliXFzSnUw.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>plming/기타</category>
      <category>GIT</category>
      <category>gitlab</category>
      <category>Key</category>
      <category>SSH</category>
      <category>ssh_key</category>
      <author>행이&amp;trade;</author>
      <guid isPermaLink="true">https://lilymate.tistory.com/741</guid>
      <comments>https://lilymate.tistory.com/741#entry741comment</comments>
      <pubDate>Tue, 7 Nov 2023 15:25:04 +0900</pubDate>
    </item>
    <item>
      <title>[책] 초보자도 프로처럼 만드는 플러터 앱 개발</title>
      <link>https://lilymate.tistory.com/740</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;기왕&amp;nbsp;앱을&amp;nbsp;개발해보겠다고&amp;nbsp;생각했다면? &lt;br /&gt;안드로이드와&amp;nbsp;IOS&amp;nbsp;두&amp;nbsp;곳에&amp;nbsp;앱을&amp;nbsp;출시할&amp;nbsp;수&amp;nbsp;있는 &lt;br /&gt;1타&amp;nbsp;2피를&amp;nbsp;할&amp;nbsp;수&amp;nbsp;있는&amp;nbsp;플러터가&amp;nbsp;답이&amp;nbsp;아닌가싶다. &lt;br /&gt;&lt;br /&gt;앱&amp;nbsp;개발을&amp;nbsp;어떻게&amp;nbsp;해야하는지 &lt;br /&gt;어떤&amp;nbsp;과정들을&amp;nbsp;지나야&amp;nbsp;하는지 &lt;br /&gt;그&amp;nbsp;과정들&amp;nbsp;속에&amp;nbsp;무엇이&amp;nbsp;필요하고 &lt;br /&gt;어떻게&amp;nbsp;준비해야&amp;nbsp;하는지&amp;nbsp;구체적으로&amp;nbsp;알려주는 &lt;br /&gt;플러터&amp;nbsp;앱&amp;nbsp;개발&amp;nbsp;맛책(?!)이&amp;nbsp;여기있다. &lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;초보자도프로처럼만드는플러터앱개발.jpg&quot; data-origin-width=&quot;785&quot; data-origin-height=&quot;990&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TGRdu/btszi4WuejE/Zk25tU2irTHpIhdSlQ5gQk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TGRdu/btszi4WuejE/Zk25tU2irTHpIhdSlQ5gQk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TGRdu/btszi4WuejE/Zk25tU2irTHpIhdSlQ5gQk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTGRdu%2Fbtszi4WuejE%2FZk25tU2irTHpIhdSlQ5gQk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;785&quot; height=&quot;990&quot; data-filename=&quot;초보자도프로처럼만드는플러터앱개발.jpg&quot; data-origin-width=&quot;785&quot; data-origin-height=&quot;990&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;플러터 소개부터 다른 모바일 앱 개발 방식과 &lt;br /&gt;비교해주어&amp;nbsp;왜&amp;nbsp;플러터로&amp;nbsp;개발해야하는지에&amp;nbsp;대해&amp;nbsp;이해할&amp;nbsp;수&amp;nbsp;있다. &lt;br /&gt;&lt;br /&gt;알아두면&amp;nbsp;좋을&amp;nbsp;작은&amp;nbsp;개념들도&amp;nbsp;많지만 &lt;br /&gt;군더더기를&amp;nbsp;빼고&amp;nbsp;핵심적인&amp;nbsp;내용들만을&amp;nbsp;알려주며 &lt;br /&gt;간단한&amp;nbsp;앱을&amp;nbsp;만드는&amp;nbsp;과정을&amp;nbsp;보여준다. &lt;br /&gt;&lt;br /&gt;이때&amp;nbsp;사용한&amp;nbsp;개념들을&amp;nbsp;자세히&amp;nbsp;설명해주고 &lt;br /&gt;응용해볼&amp;nbsp;수&amp;nbsp;있도록도&amp;nbsp;안내해준다. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;다른&amp;nbsp;학습서들과의&amp;nbsp;다른&amp;nbsp;매력포인트는 &lt;br /&gt;5주로&amp;nbsp;구성된&amp;nbsp;로드맵과&amp;nbsp;매일마다의&amp;nbsp;학습분량을&amp;nbsp;정하고&amp;nbsp;있어서 &lt;br /&gt;방황하며&amp;nbsp;느슨해지기&amp;nbsp;쉬운&amp;nbsp;학습자들에게 &lt;br /&gt;명확한&amp;nbsp;목표치를&amp;nbsp;정하고&amp;nbsp;노력할&amp;nbsp;수&amp;nbsp;있도록&amp;nbsp;해준다. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;기획부터&amp;nbsp;앱&amp;nbsp;출시까지의&amp;nbsp;과정을&amp;nbsp;체계적으로&amp;nbsp;구성하고 &lt;br /&gt;TIP과&amp;nbsp;다양한&amp;nbsp;예제들로&amp;nbsp;이해를&amp;nbsp;도우면서 &lt;br /&gt;빠르고&amp;nbsp;정확하게&amp;nbsp;샅샅이&amp;nbsp;훑어가며&amp;nbsp;살펴주니 &lt;br /&gt;시작이지만&amp;nbsp;깊이&amp;nbsp;있게&amp;nbsp;학습할&amp;nbsp;수&amp;nbsp;있는&amp;nbsp;느낌이다. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&quot;한빛미디어&amp;nbsp;&amp;lt;나는&amp;nbsp;리뷰어다&amp;gt;&amp;nbsp;활동을&amp;nbsp;위해서&amp;nbsp;책을&amp;nbsp;제공받아&amp;nbsp;작성된&amp;nbsp;서평입니다.&quot;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>이런저런/책</category>
      <category>5주</category>
      <category>flutter</category>
      <category>개발</category>
      <category>앱</category>
      <category>완성</category>
      <category>초보자도</category>
      <category>프로처럼</category>
      <category>프로처럼만드는</category>
      <category>플러터</category>
      <category>플러터앱개발</category>
      <author>행이&amp;trade;</author>
      <guid isPermaLink="true">https://lilymate.tistory.com/740</guid>
      <comments>https://lilymate.tistory.com/740#entry740comment</comments>
      <pubDate>Sun, 29 Oct 2023 19:20:59 +0900</pubDate>
    </item>
    <item>
      <title>Apache + SpringBoot 연동</title>
      <link>https://lilymate.tistory.com/739</link>
      <description>&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Port : http(80) &amp;rarr; https(443) &amp;rarr; ajp(9010) &lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&amp;rarr;&lt;span&gt; SpringBoot로 연결&lt;/span&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;ajp Port는 임의로 정한 것임.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;OS : ubuntu&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;Apache 설치&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1697692538040&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo apt-get update
sudo apt-get install apache2&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;80 port로 요청이 들어오면&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;443 port로 전달하도록 설정&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1697692869304&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo vi /etc/apache2/sites-available/000-default.conf&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1697692806996&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;VirtualHost *:80&amp;gt;
	...
    RewriteEngine on
    RewriteCond %{SERVER_NAME} = aaa.bbb.ccc
    RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
&amp;lt;/VirtualHost&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;mod-jk 설치 (Apache와 SpringBoot(embedded tomcat)연동 모듈)&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1697692984335&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo apt-get install libapache2-mod-jk&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;application.properties 에 ajp 설정 추가&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1697693335560&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;tomcat.ajp.protocol = AJP/1.3
tomcat.ajp.port = 9010
tomcat.ajp.enabled = true&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;- 9010 Port는 임의로 정한 것임&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ajp 연결Bean 추가&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1697693624937&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@Configuration
public class AjpConfig {

  @Value(&quot;${tomcat.ajp.port}&quot;)
  int ajpPort;

  @Value(&quot;${tomcat.ajp.enabled}&quot;)
  boolean ajpEnabled;

  @Value(&quot;${tomcat.ajp.protocol}&quot;)
  String ajpProtocol;

  @Bean
  public TomcatServletWebServerFactory servletContainer() {
    TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
    if( ajpEnabled ) {
      Connector ajpConnector = new Connector( ajpProtocol );
      ajpConnector.setPort( ajpPort );
      ajpConnector.setSecure( false );
      ajpConnector.setScheme( &quot;https&quot; );  // or http
      ajpConnector.setAllowTrace( false );

      ((AbstractAjpProtocol)ajpConnector.getProtocolHandler()).setSecretRequired( false );

      tomcat.addAdditionalTomcatConnectors( ajpConnector );
    }
    return tomcat;
  }

}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;-&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt; https를 사용하는 경우이므로&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;setScheme( &quot;https&quot; ); 를 사용함.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;-&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt; 아래 Exception이 발생하며, &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;SpringBoot가 실행되지 않는다면&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; setSecretRequired( false ); 코드가 있어야 한다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1697694227110&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;|ERROR|org.apache.catalina.LifecycleException: Protocol handler start failed
	at org.apache.catalina.connector.Connector.startInternal(Connector.java:1067)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
	at org.apache.catalina.core.StandardService.addConnector(StandardService.java:227)
	at org.springframework.boot.web.embedded.tomcat.TomcatWebServer.addPreviouslyRemovedConnectors(TomcatWebServer.java:282)
Caused by: java.lang.IllegalArgumentException: The AJP Connector is configured with secretRequired=&quot;true&quot; but the secret attribute is either null or &quot;&quot;. This combination is not valid.
	at org.apache.coyote.ajp.AbstractAjpProtocol.start(AbstractAjpProtocol.java:270)
	at org.apache.catalina.connector.Connector.startInternal(Connector.java:1064)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
	at org.apache.catalina.core.StandardService.addConnector(StandardService.java:227)
org.apache.juli.logging.DirectJDKLog.log (175) | main  :: Failed to start component [Connector[AJP/1.3-9010]]

|WARN |org.springframework.context.support.AbstractApplicationContext.refresh (559) | main  :: Exception encountered during context initialization - cancelling refresh attempt: org.springframework.context.ApplicationContextException: Failed to start bean 'webServerStartStop'; nested exception is org.springframework.boot.web.embedded.tomcat.ConnectorStartFailedException: Connector configured to listen on port 9010 failed to start&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;-&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt; ajp관련 Exception도 나지 않고&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SpringBoot도 잘 실행되었는데...&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323; text-align: left;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ajp port관련 Log가 나타나지 않는다면?&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 연동될 때는 나타날 수 있으니, ㄱㄱ&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1697695014454&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;INFO 12972 --- [           main] org.apache.coyote.ajp.AjpNioProtocol     : Initializing ProtocolHandler [&quot;ajp-nio-9010&quot;]
INFO 12972 --- [           main] org.apache.coyote.ajp.AjpNioProtocol     : Starting ProtocolHandler [&quot;ajp-nio-9010&quot;]
INFO 12972 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http) 9010 (http)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;ajp.port를&amp;nbsp;처리할&amp;nbsp;worker&amp;nbsp;설정파일 생성&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1697695257901&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo vi /etc/apache2/workers.properties&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1697695272669&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;worker.list=ajp13_worker

worker.ajp13_worker.port=9010
worker.ajp13_worker.host=localhost
worker.ajp13_worker.type=ajp13
worker.ajp13_worker.lbfactor=1

worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=ajp13_worker&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;위에서 만든 worker 설정파일이 사용되도록 변경&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1697695339349&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo vi /etc/apache2/mods-available/jk.conf&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;&lt;span style=&quot;color: #9d9d9d; text-align: left;&quot;&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;#기존 설정을 주석처리&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1697695362269&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#JkWorkersFile /etc/libapache2-mod-jk/workers.properties
JkWorkersFile /etc/apache2/workers.properties&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;Apache 443 Port처리 시&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;위에서 설정한 worker 로 처리되도록 Apache SSL설정에 추가&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1697696613507&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo vi /etc/apache2/sites-available/000-default-le-ssl.conf&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1697696953411&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;IfModule mod_ssl.c&amp;gt;
  &amp;lt;VirtualHost *:443&amp;gt;
    :::
    JkMount /* ajp13_worker
  &amp;lt;/VirtualHost&amp;gt;
&amp;lt;/IfModule&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;-&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt; 80 Port만 사용하는 경우&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 000-default.conf 에 추가하면 됨.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;Apache 재시작&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1697695491805&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo service apache2 restart&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;-&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt; ajp worker가 잘 연결되었는지 LOG파일 확인&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ajp &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;worker로 지정한&lt;/b&gt; &lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;이름이&lt;/span&gt; error 에 표시되면&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - workers.properties 파일의 worker.list에 이름이 있는지&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - 000-default-le-ssl.conf 파일의 JkMount부분에 이름이 있는지&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 확인해보자.&lt;/p&gt;
&lt;pre id=&quot;code_1697695819565&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;tail -f /var/log/apache2/mod_jk.log&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1697695899021&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;[info] init_jk::mod_jk.c (3591): mod_jk/1.2.48 initialized
[error] extension_fix::jk_uri_worker_map.c (579): Could not find worker with name 'jk-manager' in uri map post processing.
[error] extension_fix::jk_uri_worker_map.c (579): Could not find worker with name 'jk-status' in uri map post processing.
[error] extension_fix::jk_uri_worker_map.c (579): Could not find worker with name 'ajp13_worker' in uri map post processing.
[error] jk_handler::mod_jk.c (2999): Could not find a worker for worker name=ajp13_worker&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;-&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt; jk-manager, jk-status는 필요시에 처리하면 됨.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 이번 mission에서는 &lt;span style=&quot;color: #409d00;&quot;&gt;&lt;b&gt;PASS&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;SpringBoot 실행&lt;/li&gt;
&lt;li&gt;지정한 페이지 접근되는지 확인&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;-&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt; Apache Log 확인&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1697697576099&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;tail -f /var/log/apache2/booking-access.log&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;&lt;span&gt; &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;-&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt; SpringBoot Log에서 ajp Log 확인&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1697697826434&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;|DEBUG|com...... (90) | ajp-nio-127.0.0.1-9010-exec-3  :: ...&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>plming/Java-Spring Boot</category>
      <category>AJP</category>
      <category>apache</category>
      <category>Log</category>
      <category>springboot</category>
      <category>ssl</category>
      <category>tomcat</category>
      <category>ubuntu</category>
      <category>연동</category>
      <author>행이&amp;trade;</author>
      <guid isPermaLink="true">https://lilymate.tistory.com/739</guid>
      <comments>https://lilymate.tistory.com/739#entry739comment</comments>
      <pubDate>Thu, 19 Oct 2023 15:45:50 +0900</pubDate>
    </item>
    <item>
      <title>IntelliJ에서 실행시 build-info.properties 생성되지 않을 때</title>
      <link>https://lilymate.tistory.com/738</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;IntelliJ에서 spring boot, maven 환경에서 실행 시&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실행되지 못하고, 아래같은 형태의 메시지를 표시하고 죽는다면...&lt;/p&gt;
&lt;pre id=&quot;code_1697028334875&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Field ... in ... required a bean of type 'org.springframework.boot.info.BuildProperties' 
that could not be found.

The injection point has the following annotations:
	- @org.springframework.beans.factory.annotation.Autowired(required=true)

The following candidates were found but could not be injected:
	- Bean method 'buildProperties' in 'ProjectInfoAutoConfiguration' not loaded because
      @ConditionalOnResource did not find resource 
      '${spring.info.build.location:classpath:META-INF/build-info.properties}'&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;\target\classes\META-INF\build-info.properties&lt;/span&gt;&lt;/b&gt; 가 생성되지 않아서이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;pom.xml 파일에&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 내용만 추가해주면 된다.&lt;/p&gt;
&lt;pre id=&quot;code_1697028612248&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;project&amp;gt;
  ...
  &amp;lt;build&amp;gt;
    ...
    &amp;lt;plugins&amp;gt;
      ...
      &amp;lt;plugin&amp;gt;
        &amp;lt;groupId&amp;gt;org.springframework.boot&amp;lt;/groupId&amp;gt;
        &amp;lt;artifactId&amp;gt;spring-boot-maven-plugin&amp;lt;/artifactId&amp;gt;
        &amp;lt;version&amp;gt;2.0.6.RELEASE&amp;lt;/version&amp;gt;
        &amp;lt;executions&amp;gt;
          &amp;lt;execution&amp;gt;
            &amp;lt;goals&amp;gt;
              &amp;lt;goal&amp;gt;build-info&amp;lt;/goal&amp;gt;
            &amp;lt;/goals&amp;gt;
            &amp;lt;configuration&amp;gt;
              &amp;lt;additionalProperties&amp;gt;
                &amp;lt;encoding.source&amp;gt;UTF-8&amp;lt;/encoding.source&amp;gt;
                &amp;lt;encoding.reporting&amp;gt;UTF-8&amp;lt;/encoding.reporting&amp;gt;
                &amp;lt;java.source&amp;gt;${maven.compiler.source}&amp;lt;/java.source&amp;gt;
                &amp;lt;java.target&amp;gt;${maven.compiler.target}&amp;lt;/java.target&amp;gt;
              &amp;lt;/additionalProperties&amp;gt;
            &amp;lt;/configuration&amp;gt;
          &amp;lt;/execution&amp;gt;
        &amp;lt;/executions&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또 다른 방법은&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;mvn clean install&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;명령으로도 생성된다.&amp;nbsp; (1회성)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>plming/Java-Spring Boot</category>
      <category>build-info</category>
      <category>build-info.properties</category>
      <category>maven</category>
      <category>properties</category>
      <category>springboot</category>
      <author>행이&amp;trade;</author>
      <guid isPermaLink="true">https://lilymate.tistory.com/738</guid>
      <comments>https://lilymate.tistory.com/738#entry738comment</comments>
      <pubDate>Wed, 11 Oct 2023 21:53:02 +0900</pubDate>
    </item>
    <item>
      <title>[책] 개발자의 하루를 바꾸는 코파일럿 &amp;amp; 챗GPT</title>
      <link>https://lilymate.tistory.com/737</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;현재는&amp;nbsp;개발자에게&amp;nbsp;도움이&amp;nbsp;되는&amp;nbsp;수준으로 &lt;br /&gt;생성형&amp;nbsp;AI를&amp;nbsp;사용할&amp;nbsp;수&amp;nbsp;있다. &lt;br /&gt;생성형&amp;nbsp;AI와의&amp;nbsp;페어&amp;nbsp;프로그래밍&amp;nbsp;수준으로... &lt;br /&gt;&lt;br /&gt;내가&amp;nbsp;코드를&amp;nbsp;작성하고 &lt;br /&gt;생성형&amp;nbsp;AI가&amp;nbsp;코드를&amp;nbsp;검토하고&amp;nbsp;아이디어를&amp;nbsp;주고 &lt;br /&gt;다양한&amp;nbsp;관점에서&amp;nbsp;오류를&amp;nbsp;발견함으로써&amp;nbsp; &lt;br /&gt;코드&amp;nbsp;품질을&amp;nbsp;향상시키는데&amp;nbsp;기여하는&amp;nbsp;정도로... &lt;br /&gt;&lt;br /&gt;미래에&amp;nbsp;없어질&amp;nbsp;직업중&amp;nbsp;프로그래머. &lt;br /&gt;이렇게&amp;nbsp;생성형&amp;nbsp;AI의&amp;nbsp;모델을 &lt;br /&gt;갈고&amp;nbsp;닦아&amp;nbsp;학습시키다&amp;nbsp;보면 &lt;br /&gt;인간&amp;nbsp;특유의&amp;nbsp;것들까지도&amp;nbsp;가미시킬&amp;nbsp;수&amp;nbsp;있는 &lt;br /&gt;그런&amp;nbsp;생성형&amp;nbsp;AI가&amp;nbsp;만들어지지&amp;nbsp;않을까하는&amp;nbsp;생각. &lt;br /&gt;&lt;br /&gt;이&amp;nbsp;책은&amp;nbsp;그&amp;nbsp;생각의&amp;nbsp;시발점이&amp;nbsp;되게했던&amp;nbsp;것&amp;nbsp;같다. &lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;개발자의하루를바꾸는코파일럿챗GPT.jpg&quot; data-origin-width=&quot;690&quot; data-origin-height=&quot;991&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bjDrjH/btsvoYjUZaN/jKpRxn9av2Nie2cgOCZlh1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bjDrjH/btsvoYjUZaN/jKpRxn9av2Nie2cgOCZlh1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bjDrjH/btsvoYjUZaN/jKpRxn9av2Nie2cgOCZlh1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbjDrjH%2FbtsvoYjUZaN%2FjKpRxn9av2Nie2cgOCZlh1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;690&quot; height=&quot;991&quot; data-filename=&quot;개발자의하루를바꾸는코파일럿챗GPT.jpg&quot; data-origin-width=&quot;690&quot; data-origin-height=&quot;991&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;대략은 아는데 확실하게 알지 못하는 것 &lt;br /&gt;매번&amp;nbsp;검색해서&amp;nbsp;사용하던&amp;nbsp;명령들을 &lt;br /&gt;개발자의&amp;nbsp;코드와&amp;nbsp;내용을&amp;nbsp;이해해서&amp;nbsp; &lt;br /&gt;깃허브&amp;nbsp;코파일럿이&amp;nbsp;제안해주는&amp;nbsp;편리함과 &lt;br /&gt;&lt;br /&gt;다양한&amp;nbsp;경우에&amp;nbsp;다양한&amp;nbsp;형태의&amp;nbsp;코드&amp;nbsp;생성을 &lt;br /&gt;챗GPT에게&amp;nbsp;요청해서&amp;nbsp;받아보는&amp;nbsp;편리함을 &lt;br /&gt;이&amp;nbsp;책에서의&amp;nbsp;여러&amp;nbsp;예제를&amp;nbsp;통해&amp;nbsp;알&amp;nbsp;수&amp;nbsp;있다. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;모르고&amp;nbsp;있던&amp;nbsp;것을&amp;nbsp;알게되고 &lt;br /&gt;실력의&amp;nbsp;범위를&amp;nbsp;넓힐&amp;nbsp;수&amp;nbsp;있는 &lt;br /&gt;생성형&amp;nbsp;AI들을&amp;nbsp;사용한&amp;nbsp;다양한&amp;nbsp;아이디어를&amp;nbsp;통해 &lt;br /&gt;효과적인&amp;nbsp;프로그래밍을&amp;nbsp;할&amp;nbsp;수&amp;nbsp;있을&amp;nbsp;것&amp;nbsp;같긴한데... &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&quot;한빛미디어&amp;nbsp;&amp;lt;나는&amp;nbsp;리뷰어다&amp;gt;&amp;nbsp;활동을&amp;nbsp;위해서&amp;nbsp;책을&amp;nbsp;제공받아&amp;nbsp;작성된&amp;nbsp;서평입니다.&quot;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>이런저런/책</category>
      <category>개발자</category>
      <category>개발자의하루</category>
      <category>개발자의하루를바꾸는</category>
      <category>개발자의하루를바꾸는코파일럿&amp;amp;챗GPT</category>
      <category>챗gpt</category>
      <category>코파일럿</category>
      <category>코파일럿&amp;amp;챗GPT</category>
      <author>행이&amp;trade;</author>
      <guid isPermaLink="true">https://lilymate.tistory.com/737</guid>
      <comments>https://lilymate.tistory.com/737#entry737comment</comments>
      <pubDate>Sun, 24 Sep 2023 21:52:01 +0900</pubDate>
    </item>
  </channel>
</rss>