<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>물음표보다 느낌표를</title>
    <link>https://enjoydevelop.tistory.com/</link>
    <description>대체 불가능한 백엔드 개발자가 되는 Story
instagram - @master_byun
email - enjoy8939@naver.com</description>
    <language>ko</language>
    <pubDate>Thu, 23 Jul 2026 17:43:09 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>변사부</managingEditor>
    <image>
      <title>물음표보다 느낌표를</title>
      <url>https://tistory1.daumcdn.net/tistory/4724787/attach/337311dd75104c9abf87a051df61e7fc</url>
      <link>https://enjoydevelop.tistory.com</link>
    </image>
    <item>
      <title>goodbye 2023, welcome 2024</title>
      <link>https://enjoydevelop.tistory.com/133</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20240101_105048834.jpg&quot; data-origin-width=&quot;2048&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/baXZ25/btsCN2t4LZ7/JxL36zdBEoINiLSGkfWKD1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/baXZ25/btsCN2t4LZ7/JxL36zdBEoINiLSGkfWKD1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/baXZ25/btsCN2t4LZ7/JxL36zdBEoINiLSGkfWKD1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbaXZ25%2FbtsCN2t4LZ7%2FJxL36zdBEoINiLSGkfWKD1%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;2048&quot; height=&quot;1536&quot; data-filename=&quot;KakaoTalk_20240101_105048834.jpg&quot; data-origin-width=&quot;2048&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;b&gt;2023년의 마지막&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;어느덧&amp;nbsp;2023년이&amp;nbsp;가고&amp;nbsp;2024년이&amp;nbsp;다가왔네요.&amp;nbsp;8년&amp;nbsp;만의&amp;nbsp;화이트&amp;nbsp;크리스마스&amp;nbsp;그리고&amp;nbsp;어제인&amp;nbsp;12월&amp;nbsp;31일에는&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 data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;저는&amp;nbsp;2023년의&amp;nbsp;마지막을&amp;nbsp;집에서&amp;nbsp;보냈는데요.&amp;nbsp;그래서인지&amp;nbsp;2024년이&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;이때까지&amp;nbsp;아프지&amp;nbsp;않았는데...&amp;nbsp;마지막&amp;nbsp;출근날&amp;nbsp;몸이&amp;nbsp;너무&amp;nbsp;안&amp;nbsp;좋아&amp;nbsp;병원에&amp;nbsp;갔고,&amp;nbsp; &lt;br /&gt;다행히&amp;nbsp;독감은&amp;nbsp;아니었지만&amp;nbsp;고열과&amp;nbsp;한기&amp;nbsp;무기력감&amp;nbsp;등등으로&amp;nbsp;잠을&amp;nbsp;이루지&amp;nbsp;못하였습니다.&amp;nbsp; &lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&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;&lt;br /&gt;시간이&amp;nbsp;정말&amp;nbsp;빨리&amp;nbsp;간&amp;nbsp;것&amp;nbsp;같이&amp;nbsp;느껴지지만&amp;nbsp;세부적으로&amp;nbsp;들여다보니&amp;nbsp;이것저것&amp;nbsp;많이&amp;nbsp;한&amp;nbsp;것&amp;nbsp;같아요. &lt;br /&gt;업무적으로도&amp;nbsp;많이&amp;nbsp;성장하였고,&amp;nbsp;인간관계에&amp;nbsp;대해&amp;nbsp;다시&amp;nbsp;돌아보게&amp;nbsp;되는&amp;nbsp;한&amp;nbsp;해였던&amp;nbsp;것&amp;nbsp;같습니다. &lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;야근은&amp;nbsp;2022년보다&amp;nbsp;훨씬&amp;nbsp;많이&amp;nbsp;줄어서&amp;nbsp;좋았고,&amp;nbsp;연봉협상도&amp;nbsp;나름(?)&amp;nbsp;성공적으로&amp;nbsp;마무리되어서&amp;nbsp;한숨&amp;nbsp;놓게&amp;nbsp;되었습니다. &lt;br /&gt;2024년에는&amp;nbsp;팀에&amp;nbsp;변화도&amp;nbsp;생길&amp;nbsp;예정이고,&amp;nbsp;저&amp;nbsp;또한&amp;nbsp;변화를&amp;nbsp;위한&amp;nbsp;준비에&amp;nbsp;들어갈&amp;nbsp;예정입니다. &lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&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;br /&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;최근들어&amp;nbsp;좋지&amp;nbsp;않은&amp;nbsp;생각이&amp;nbsp;들어&amp;nbsp;글로&amp;nbsp;남기려고&amp;nbsp;합니다. &lt;br /&gt;계속 &quot;인생이 재미없다&quot;는 문구가 머릿속에서 사라지지 않습니다. 일상 생활할 때도 자기 전에도 그렇고요 &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;br /&gt;난&amp;nbsp;분명히&amp;nbsp;열심히&amp;nbsp;살았고,&amp;nbsp;열심히&amp;nbsp;일했고,&amp;nbsp;모난&amp;nbsp;행동을&amp;nbsp;한&amp;nbsp;것도&amp;nbsp;아니고,&amp;nbsp;미래를&amp;nbsp;위한&amp;nbsp;계획도&amp;nbsp;하고,&amp;nbsp;주변&amp;nbsp;사람들과&amp;nbsp;잘&amp;nbsp;지내고&amp;nbsp;있고&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;br /&gt;어쩌면&amp;nbsp;너무&amp;nbsp;정직하게&amp;nbsp;살아서&amp;nbsp;그런가..&amp;nbsp;싶기도&amp;nbsp;합니다.&amp;nbsp;그래서&amp;nbsp;24년도에는&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;24년이&amp;nbsp;지나가는&amp;nbsp;시점에서&amp;nbsp;이&amp;nbsp;방법이&amp;nbsp;효과가&amp;nbsp;있을지는&amp;nbsp;모르겠지만&amp;nbsp;해볼려고&amp;nbsp;합니다. &lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;b&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;&lt;b&gt;1.&amp;nbsp;감정적인&amp;nbsp;판단&amp;nbsp;&amp;amp;&amp;nbsp;부정적인&amp;nbsp;생각&lt;/b&gt; &lt;br /&gt;개발&amp;nbsp;업무는&amp;nbsp;철저히&amp;nbsp;이성적으로&amp;nbsp;판단해야&amp;nbsp;하며,&amp;nbsp;감정이&amp;nbsp;들어가서는&amp;nbsp;안&amp;nbsp;되는&amp;nbsp;것을&amp;nbsp;알고&amp;nbsp;있었지만&amp;nbsp;그렇지&amp;nbsp;못했습니다. &lt;br /&gt;논리&amp;nbsp;&amp;amp;&amp;nbsp;팩트&amp;nbsp;위주의&amp;nbsp;전달을&amp;nbsp;할&amp;nbsp;수&amp;nbsp;있도록&amp;nbsp;보완해야&amp;nbsp;할&amp;nbsp;것&amp;nbsp;같습니다. &lt;br /&gt;&amp;rarr;&amp;nbsp;&lt;u&gt;감정적인&amp;nbsp;생각이&amp;nbsp;들&amp;nbsp;때마다&amp;nbsp;호흡에&amp;nbsp;집중하며,&amp;nbsp;다시&amp;nbsp;되새김질할&amp;nbsp;수&amp;nbsp;있도록&amp;nbsp;하겠습니다.&lt;/u&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;br /&gt;&lt;b&gt;2.&amp;nbsp;미루는&amp;nbsp;습관&amp;nbsp;&amp;amp;&amp;nbsp;방심하기&lt;/b&gt; &lt;br /&gt;머릿속으로는&amp;nbsp;생각하고&amp;nbsp;있었지만&amp;nbsp;지금&amp;nbsp;바쁘니까..&amp;nbsp;아직&amp;nbsp;시간이&amp;nbsp;있으니까..&amp;nbsp;이따&amp;nbsp;생각하자고&amp;nbsp;미루는&amp;nbsp;경우가&amp;nbsp;많았습니다. &lt;br /&gt;나에게&amp;nbsp;주어진&amp;nbsp;일을&amp;nbsp;다&amp;nbsp;처리하는&amp;nbsp;순간&amp;nbsp;마음이&amp;nbsp;편해져&amp;nbsp;꼼꼼하게&amp;nbsp;체킹하지&amp;nbsp;못하였고&amp;nbsp;실수를&amp;nbsp;하는&amp;nbsp;경우가&amp;nbsp;있었습니다. &lt;br /&gt;&amp;rarr;&amp;nbsp;&lt;u&gt;하루&amp;nbsp;체크리스트를&amp;nbsp;다&amp;nbsp;달성했는지&amp;nbsp;확인&amp;nbsp;작업을&amp;nbsp;할&amp;nbsp;수&amp;nbsp;있도록&amp;nbsp;퇴근&amp;nbsp;10분&amp;nbsp;전에&amp;nbsp;확인하겠습니다.&lt;/u&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;br /&gt;&lt;b&gt;3.&amp;nbsp;상대방과의&amp;nbsp;비교&lt;/b&gt; &lt;br /&gt;외적인&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;건&amp;nbsp;좋은데,&amp;nbsp;나는&amp;nbsp;그렇게&amp;nbsp;행동하지&amp;nbsp;않으면서&amp;nbsp;그들과&amp;nbsp;같은&amp;nbsp;비교선상에&amp;nbsp;놓았다는&amp;nbsp;것에&amp;nbsp;대해&amp;nbsp;반성하게&amp;nbsp;됩니다. &lt;br /&gt;&amp;rarr;&amp;nbsp;&lt;u&gt;2024년&amp;nbsp;1월&amp;nbsp;1일부터&amp;nbsp;시작하는&amp;nbsp;66일&amp;nbsp;습관&amp;nbsp;챌린지를&amp;nbsp;통해&amp;nbsp;보완하겠습니다.&lt;/u&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;4.&amp;nbsp;계획이&amp;nbsp;틀어졌다고&amp;nbsp;아예&amp;nbsp;포기하기&lt;/b&gt; &lt;br /&gt;첫&amp;nbsp;단추가&amp;nbsp;틀어지면&amp;nbsp;뒤에&amp;nbsp;세워둔&amp;nbsp;계획을&amp;nbsp;다&amp;nbsp;포기하였습니다. &lt;br /&gt;&amp;rarr;&amp;nbsp;&lt;u&gt;10%라도&amp;nbsp;좋으니&amp;nbsp;시작부터&amp;nbsp;하겠습니다.&amp;nbsp;뭐라도&amp;nbsp;하겠습니다.&lt;/u&gt; &lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;b&gt;2024년의&amp;nbsp;첫&amp;nbsp;곡&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&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;&lt;a href=&quot;https://www.youtube.com/watch?v=hWYM5QEt0Fg&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.youtube.com/watch?v=hWYM5QEt0Fg&lt;/a&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=hWYM5QEt0Fg&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/GSA0A/hyUTz1qzIS/lVTFmI65NuFDesZXcaWUr1/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=220_180_486_324&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-title=&quot;가호(Gaho) - 시작 (이태원 클라쓰 OST PART.02) / 가사 ITAEWON CLASS OST&quot; data-original-url=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/hWYM5QEt0Fg&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2024년의 데스크탑 셋업&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20240101_105048834_01.jpg&quot; data-origin-width=&quot;2880&quot; data-origin-height=&quot;2160&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vpTUp/btsCQ3MytUO/jnLihIMXrsDkUzXyxH28E0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vpTUp/btsCQ3MytUO/jnLihIMXrsDkUzXyxH28E0/img.jpg&quot; data-alt=&quot;엠스톤 저소음 밀키축 38&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vpTUp/btsCQ3MytUO/jnLihIMXrsDkUzXyxH28E0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvpTUp%2FbtsCQ3MytUO%2FjnLihIMXrsDkUzXyxH28E0%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;2880&quot; height=&quot;2160&quot; data-filename=&quot;KakaoTalk_20240101_105048834_01.jpg&quot; data-origin-width=&quot;2880&quot; data-origin-height=&quot;2160&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;엠스톤 저소음 밀키축 38&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;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;끝맺음&lt;/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;&lt;b&gt;2024년 일 한번 내자 화이팅&lt;/b&gt;&lt;/p&gt;</description>
      <category>Retrospect/2023</category>
      <category>2023</category>
      <category>2024</category>
      <category>개발</category>
      <category>글쓰기</category>
      <category>회고록</category>
      <author>변사부</author>
      <guid isPermaLink="true">https://enjoydevelop.tistory.com/133</guid>
      <comments>https://enjoydevelop.tistory.com/133#entry133comment</comments>
      <pubDate>Mon, 1 Jan 2024 10:56:41 +0900</pubDate>
    </item>
    <item>
      <title>[IDE] 현직자가 사용하는 이클립스/STS 단축키</title>
      <link>https://enjoydevelop.tistory.com/131</link>
      <description>&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;처음 실무를 들어가다 보면 여러 선배님들이 단축키를 많이 쓰시고 있을 것이기 때문에&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;IDE마다 단축키는 다르기 때문에 제가 사용하는 이클립스/STS 기준으로 말씀드리려고 합니다.&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  단축키 모음&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Ctrl + / :&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 alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1번.jpg&quot; data-origin-width=&quot;508&quot; data-origin-height=&quot;151&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0sQNu/btrPngeFGLp/5Csig2GbuSkZ1of61peitK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0sQNu/btrPngeFGLp/5Csig2GbuSkZ1of61peitK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0sQNu/btrPngeFGLp/5Csig2GbuSkZ1of61peitK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0sQNu%2FbtrPngeFGLp%2F5Csig2GbuSkZ1of61peitK%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;508&quot; height=&quot;151&quot; data-filename=&quot;1번.jpg&quot; data-origin-width=&quot;508&quot; data-origin-height=&quot;151&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; --darkreader-inline-bgcolor: #181a1b; --darkreader-inline-color: #c8c3bc;&quot; data-darkreader-inline-bgcolor=&quot;&quot; data-darkreader-inline-color=&quot;&quot;&gt;&lt;span style=&quot;color: #aba499;&quot; data-darkreader-inline-color=&quot;&quot;&gt;혹시 주석을 사용할 때 다음과 같은 상황을 마주한 적이 있었나요?&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; --darkreader-inline-color: #c8c3bc;&quot; data-darkreader-inline-color=&quot;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; --darkreader-inline-bgcolor: #181a1b; color: #000000;&quot; data-darkreader-inline-bgcolor=&quot;&quot; data-darkreader-inline-color=&quot;&quot;&gt;&lt;span style=&quot;color: #aba499;&quot; data-darkreader-inline-color=&quot;&quot;&gt;당황하지 말고 아래 해결책을 참고하세요&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #aba499;&quot; data-darkreader-inline-color=&quot;&quot;&gt;&lt;span style=&quot;background-color: #151617; --darkreader-inline-bgcolor: #111213;&quot; data-darkreader-inline-bgcolor=&quot;&quot;&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2번.jpg&quot; data-origin-width=&quot;467&quot; data-origin-height=&quot;137&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cUq4Tp/btrPjHYa9e7/rPmEfRn6ZdOtL1GtfhbHi0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cUq4Tp/btrPjHYa9e7/rPmEfRn6ZdOtL1GtfhbHi0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cUq4Tp/btrPjHYa9e7/rPmEfRn6ZdOtL1GtfhbHi0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcUq4Tp%2FbtrPjHYa9e7%2FrPmEfRn6ZdOtL1GtfhbHi0%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;467&quot; height=&quot;137&quot; data-filename=&quot;2번.jpg&quot; data-origin-width=&quot;467&quot; data-origin-height=&quot;137&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;blockquote data-ke-style=&quot;style3&quot;&gt;* Ctrl + / 을 사용하다가 여러 줄 주석이 되지 않을 때 해결방법&lt;br /&gt;1. 키보드 입력이 한컴입력기로 설정되어 있음&amp;nbsp;&lt;br /&gt;2.&amp;nbsp; 한컴입력기 &amp;gt;&amp;nbsp; Microsoft 입력기로 체크&lt;br /&gt;3. 다시 Ctrl + / 을 시도해보세요&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Alt + Shift + J :&amp;nbsp;&amp;nbsp;해당 메서드/클래스에 대한 주석 생성 / 클래스에는 @author가 메서드에는 @retrun이 생성됩니다.&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 alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3qjs.jpg&quot; data-origin-width=&quot;343&quot; data-origin-height=&quot;173&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NzWkR/btrPmEzRNk7/1fkeWBRgggSDAYbJk8XKgk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NzWkR/btrPmEzRNk7/1fkeWBRgggSDAYbJk8XKgk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NzWkR/btrPmEzRNk7/1fkeWBRgggSDAYbJk8XKgk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNzWkR%2FbtrPmEzRNk7%2F1fkeWBRgggSDAYbJk8XKgk%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;343&quot; height=&quot;173&quot; data-filename=&quot;3qjs.jpg&quot; data-origin-width=&quot;343&quot; data-origin-height=&quot;173&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Ctrl&amp;nbsp;+&amp;nbsp;F&amp;nbsp;:&amp;nbsp;키워드&amp;nbsp;검색&amp;nbsp;(해당&amp;nbsp;소스에서만)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;4.jpg&quot; data-origin-width=&quot;307&quot; data-origin-height=&quot;371&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/biHmfj/btrPgd43DPO/0kkdkaKNwaka4nOXzzk8f0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/biHmfj/btrPgd43DPO/0kkdkaKNwaka4nOXzzk8f0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/biHmfj/btrPgd43DPO/0kkdkaKNwaka4nOXzzk8f0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbiHmfj%2FbtrPgd43DPO%2F0kkdkaKNwaka4nOXzzk8f0%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;307&quot; height=&quot;371&quot; data-filename=&quot;4.jpg&quot; data-origin-width=&quot;307&quot; data-origin-height=&quot;371&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;
&lt;p data-ke-size=&quot;size16&quot;&gt;Ctrl + H : 키워드 검색 (★실무에서 많이 사용합니다)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;5.jpg&quot; data-origin-width=&quot;603&quot; data-origin-height=&quot;444&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b5xlsP/btrPoSEC2JB/sKkn9ctZPjLPVwkyXHP1Fk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b5xlsP/btrPoSEC2JB/sKkn9ctZPjLPVwkyXHP1Fk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b5xlsP/btrPoSEC2JB/sKkn9ctZPjLPVwkyXHP1Fk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb5xlsP%2FbtrPoSEC2JB%2FsKkn9ctZPjLPVwkyXHP1Fk%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;603&quot; height=&quot;444&quot; data-filename=&quot;5.jpg&quot; data-origin-width=&quot;603&quot; data-origin-height=&quot;444&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;1. 만약 프로젝트가 여러개 있다면 워크스페이스에 있는 모든 프로젝트 대상으로 검색합니다&lt;br /&gt;2. 선택한 프로젝트를 대상으로 검색합니다.&lt;br /&gt;&lt;br /&gt;저는 2번을 많이 사용합니다&amp;nbsp;&lt;br /&gt;&lt;br /&gt;만약. java와. xml을 분리해서 검색하고 싶으면 File name patterns를 사용하세요 ex) *.java&lt;br /&gt;&lt;br /&gt;이클립스와 STS는 인텔리제이에 비해 검색 속도가 느리기 때문에, &lt;br /&gt;속도 향상을 위해서라도 범위를 최대한 줄여서 검색합시다.&lt;/blockquote&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;Ctrl + Shift + R : 전체 리소스에서 파일 찾기 (★실무에서 많이 사용합니다)&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 alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;6.jpg&quot; data-origin-width=&quot;584&quot; data-origin-height=&quot;467&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cSndq9/btrPmFerfkf/7fzMeYvMxXfZ72nbQAyvIk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cSndq9/btrPmFerfkf/7fzMeYvMxXfZ72nbQAyvIk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cSndq9/btrPmFerfkf/7fzMeYvMxXfZ72nbQAyvIk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcSndq9%2FbtrPmFerfkf%2F7fzMeYvMxXfZ72nbQAyvIk%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;584&quot; height=&quot;467&quot; data-filename=&quot;6.jpg&quot; data-origin-width=&quot;584&quot; data-origin-height=&quot;467&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;Ctrl + Alt + H : 특정 클래스 호출 위치 찾기 (★실무에서 많이 사용합니다)&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Ctrl + 마우스 왼쪽 클릭,&lt;span style=&quot;color: #333333; --darkreader-inline-color: #c8c3bc;&quot; data-darkreader-inline-color=&quot;&quot;&gt;&amp;nbsp; Ctrl&amp;nbsp;+&amp;nbsp;T&lt;span&gt;,&amp;nbsp; Ctrl&amp;nbsp;+&amp;nbsp;F3&lt;/span&gt; :&lt;/span&gt; 특정 클래스로 이동 (★실무에서 많이 사용합니다)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;7.jpg&quot; data-origin-width=&quot;528&quot; data-origin-height=&quot;195&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b6S74h/btrPgeQuaV1/7meuoRxmgKncaaTMZG0Xq1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b6S74h/btrPgeQuaV1/7meuoRxmgKncaaTMZG0Xq1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b6S74h/btrPgeQuaV1/7meuoRxmgKncaaTMZG0Xq1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb6S74h%2FbtrPgeQuaV1%2F7meuoRxmgKncaaTMZG0Xq1%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;528&quot; height=&quot;195&quot; data-filename=&quot;7.jpg&quot; data-origin-width=&quot;528&quot; data-origin-height=&quot;195&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;Alt + 방향키(&amp;larr;) : 이전 작업 위치로 이동 (★실무에서 많이 사용합니다)&lt;br /&gt;Alt + 방향키(&amp;rarr;) : 다음 작업 위치로 이동 (★실무에서 많이 사용합니다)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Ctrl + L&lt;b&gt;&amp;nbsp;:&amp;nbsp;&lt;/b&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; --darkreader-inline-bgcolor: #181a1b; --darkreader-inline-color: #e8e6e3;&quot; data-darkreader-inline-bgcolor=&quot;&quot; data-darkreader-inline-color=&quot;&quot;&gt;지정한 소스 줄로 이동&amp;nbsp; (★실무에서 많이 사용합니다)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;Ctrl + PageUp : 이전 탭 이동 &lt;span style=&quot;color: #333333; --darkreader-inline-color: #c8c3bc;&quot; data-darkreader-inline-color=&quot;&quot;&gt;(저는 &lt;span&gt;Ctrl + Tab으로 사용합니다)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Ctrl + PageDown : 다음 탭 이동 &lt;span style=&quot;color: #333333; --darkreader-inline-color: #c8c3bc;&quot; data-darkreader-inline-color=&quot;&quot;&gt;&lt;span&gt;(저는 &lt;span&gt;Ctrl&amp;nbsp;+&amp;nbsp;Shift&amp;nbsp;+&amp;nbsp;Tab으&lt;/span&gt;&lt;/span&gt;&lt;span&gt;로 사용합니다)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Ctrl + F6 : 창 전환 &lt;span style=&quot;color: #333333; --darkreader-inline-color: #c8c3bc;&quot; data-darkreader-inline-color=&quot;&quot;&gt;&lt;span&gt;(저는&amp;nbsp;&lt;span&gt;Ctrl + Q&lt;/span&gt;&lt;/span&gt;&lt;span&gt;로 사용합니다)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Ctrl + M : 전체 화면 전환&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;[ Windows &amp;gt; Preferences &amp;gt; Keys에서 커스트마이징 가능]&lt;/blockquote&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;Ctrl + Alt + 방향키(&amp;darr;) : 한 줄 복사 후 아래에 붙여 넣기&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;8.jpg&quot; data-origin-width=&quot;472&quot; data-origin-height=&quot;194&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ca5aY5/btrPlGLtu1n/ZzO3oT49xUDNKvWWxs03A1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ca5aY5/btrPlGLtu1n/ZzO3oT49xUDNKvWWxs03A1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ca5aY5/btrPlGLtu1n/ZzO3oT49xUDNKvWWxs03A1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fca5aY5%2FbtrPlGLtu1n%2FZzO3oT49xUDNKvWWxs03A1%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;472&quot; height=&quot;194&quot; data-filename=&quot;8.jpg&quot; data-origin-width=&quot;472&quot; data-origin-height=&quot;194&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Ctrl + D : 한 줄 삭제&lt;br /&gt;Ctrl&amp;nbsp;+&amp;nbsp;Shift&amp;nbsp;+&amp;nbsp;O&amp;nbsp;:&amp;nbsp;자동&amp;nbsp;import,&amp;nbsp;안 쓰는&amp;nbsp;import&amp;nbsp;삭제 &lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;Ctrl&amp;nbsp;+&amp;nbsp;I&amp;nbsp;:&amp;nbsp;들여 쓰기&amp;nbsp;자동&amp;nbsp;수정 &lt;br /&gt;Ctrl&amp;nbsp;+&amp;nbsp;Shift&amp;nbsp;+&amp;nbsp;F&amp;nbsp;:&amp;nbsp;소스&amp;nbsp;정렬 &lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  개인적으로 알아두면 좋을 단축키들&lt;/h3&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: #c8c3bc;&quot; data-darkreader-inline-color=&quot;&quot;&gt;F4&lt;/span&gt;&lt;b&gt;&amp;nbsp;:&amp;nbsp;&lt;/b&gt;&lt;span style=&quot;background-color: #ffffff; color: #222222;&quot; data-darkreader-inline-bgcolor=&quot;&quot; data-darkreader-inline-color=&quot;&quot;&gt;클래스명을 선택하고 F4를 누르면 해당 클래스의&amp;nbsp;상속 계층 확인&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;9.jpg&quot; data-origin-width=&quot;384&quot; data-origin-height=&quot;416&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/JNwJR/btrPlbEIzKA/x5c5k4DAFY5lyfKw1J6gV0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JNwJR/btrPlbEIzKA/x5c5k4DAFY5lyfKw1J6gV0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JNwJR/btrPlbEIzKA/x5c5k4DAFY5lyfKw1J6gV0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJNwJR%2FbtrPlbEIzKA%2Fx5c5k4DAFY5lyfKw1J6gV0%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;384&quot; height=&quot;416&quot; data-filename=&quot;9.jpg&quot; data-origin-width=&quot;384&quot; data-origin-height=&quot;416&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #c8c3bc;&quot; data-darkreader-inline-color=&quot;&quot;&gt;Ctrl +&amp;nbsp;O&lt;/span&gt;&lt;b&gt;&amp;nbsp;:&amp;nbsp;&lt;/b&gt;&lt;span style=&quot;background-color: #ffffff; color: #222222;&quot; data-darkreader-inline-bgcolor=&quot;&quot; data-darkreader-inline-color=&quot;&quot;&gt;소스의 메서드 리스트 확인&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;10.jpg&quot; data-origin-width=&quot;429&quot; data-origin-height=&quot;341&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bqHWOJ/btrPjj4hvls/Eh6B2eIA601xgCNfbkvCo1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bqHWOJ/btrPjj4hvls/Eh6B2eIA601xgCNfbkvCo1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bqHWOJ/btrPjj4hvls/Eh6B2eIA601xgCNfbkvCo1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbqHWOJ%2FbtrPjj4hvls%2FEh6B2eIA601xgCNfbkvCo1%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;429&quot; height=&quot;341&quot; data-filename=&quot;10.jpg&quot; data-origin-width=&quot;429&quot; data-origin-height=&quot;341&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;Ctrl + Shift + G&lt;b&gt;&amp;nbsp;:&lt;/b&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; --darkreader-inline-bgcolor: #131516; --darkreader-inline-color: #c9c4bd;&quot; data-darkreader-inline-bgcolor=&quot;&quot; data-darkreader-inline-color=&quot;&quot;&gt;&amp;nbsp;해당 메서드/필드 쓰이는 곳 표시&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; --darkreader-inline-color: #c1bcb4;&quot; data-darkreader-inline-color=&quot;&quot;&gt;Ctrl&amp;nbsp;+&amp;nbsp;T&amp;nbsp;:&amp;nbsp;상속&amp;nbsp;계층&amp;nbsp;팝업&amp;nbsp;창&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Language/Spring</category>
      <category>eclipse</category>
      <category>java</category>
      <category>Spring</category>
      <category>sts</category>
      <category>단축키</category>
      <category>이클립스</category>
      <author>변사부</author>
      <guid isPermaLink="true">https://enjoydevelop.tistory.com/131</guid>
      <comments>https://enjoydevelop.tistory.com/131#entry131comment</comments>
      <pubDate>Sun, 23 Oct 2022 21:34:19 +0900</pubDate>
    </item>
    <item>
      <title>[Oracle] STS에서 DBeaver(Oracle) 연결하기</title>
      <link>https://enjoydevelop.tistory.com/130</link>
      <description>&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;STS나 Eclipse에서 DBeaver 플러그인을 설치하고 싶으시다면 아래의 포스팅을 보시길 바랍니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://enjoydevelop.tistory.com/129&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://enjoydevelop.tistory.com/129&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1665217882084&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;STS에서 DBeaver 플러그인 설치하기&quot; data-og-description=&quot;Eclipse와 STS모두 연동 가능합니다. 1) 이클립스 상단의 메뉴바에서 Help -&amp;nbsp;Eclipse Marketplace에 들어갑니다. 2) 검색창에&amp;nbsp;dbeaver를 검색합니다. 3) 기본 설정을 유지한 채 Confirm을 눌러줍니다. 4) 라..&quot; data-og-host=&quot;enjoydevelop.tistory.com&quot; data-og-source-url=&quot;https://enjoydevelop.tistory.com/129&quot; data-og-url=&quot;https://enjoydevelop.tistory.com/129&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/ghpkc/hyP4LcT561/bIsTcVcbwxCLvvCV530apK/img.jpg?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/b1XvcQ/hyP4J7faea/k2LfTgcCQVkKXoKU7GbmF0/img.jpg?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/dpTtJ7/hyP3HJYtep/sJGsmrF9GQUVKKZXfWuNdk/img.jpg?width=518&amp;amp;height=868&amp;amp;face=0_0_518_868&quot;&gt;&lt;a href=&quot;https://enjoydevelop.tistory.com/129&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://enjoydevelop.tistory.com/129&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/ghpkc/hyP4LcT561/bIsTcVcbwxCLvvCV530apK/img.jpg?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/b1XvcQ/hyP4J7faea/k2LfTgcCQVkKXoKU7GbmF0/img.jpg?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/dpTtJ7/hyP3HJYtep/sJGsmrF9GQUVKKZXfWuNdk/img.jpg?width=518&amp;amp;height=868&amp;amp;face=0_0_518_868');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;STS에서 DBeaver 플러그인 설치하기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Eclipse와 STS모두 연동 가능합니다. 1) 이클립스 상단의 메뉴바에서 Help -&amp;nbsp;Eclipse Marketplace에 들어갑니다. 2) 검색창에&amp;nbsp;dbeaver를 검색합니다. 3) 기본 설정을 유지한 채 Confirm을 눌러줍니다. 4) 라..&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;enjoydevelop.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&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;h3 data-ke-size=&quot;size23&quot;&gt;  위의 분들에게 유용한 정보입니다&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;DBeaver에서 Oracle Database를 연결하시고 싶은 분&lt;/li&gt;
&lt;li&gt;Oracle 계정 생성하는 법을 잊어버리신 분&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #181a1b; color: #e8e6e3;&quot; data-darkreader-inline-bgcolor=&quot;&quot; data-darkreader-inline-color=&quot;&quot;&gt;1) 이클립스 상단의 메뉴바에&lt;/span&gt;&lt;span style=&quot;background-color: #181a1b; color: #e8e6e3;&quot; data-darkreader-inline-bgcolor=&quot;&quot; data-darkreader-inline-color=&quot;&quot;&gt;서 Window -&lt;span&gt; &lt;span style=&quot;color: #9d9488;&quot; data-darkreader-inline-color=&quot;&quot;&gt;Perspective - Open &lt;span style=&quot;background-color: #131516; color: #a39c90;&quot; data-darkreader-inline-bgcolor=&quot;&quot; data-darkreader-inline-color=&quot;&quot;&gt;Perspective&lt;span&gt;&amp;nbsp; - DBeaver&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #181a1b; color: #e8e6e3;&quot; data-darkreader-inline-bgcolor=&quot;&quot; data-darkreader-inline-color=&quot;&quot;&gt;&amp;nbsp;들어갑니다.&lt;/span&gt;&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 alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1_connections.jpg&quot; data-origin-width=&quot;474&quot; data-origin-height=&quot;436&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d8Pk2v/btrN39bdab5/p7jKJtpgT5x6wREMA4dGMK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d8Pk2v/btrN39bdab5/p7jKJtpgT5x6wREMA4dGMK/img.jpg&quot; data-alt=&quot;Perspective를 DBeaver로 바꾸어주세요&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d8Pk2v/btrN39bdab5/p7jKJtpgT5x6wREMA4dGMK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd8Pk2v%2FbtrN39bdab5%2Fp7jKJtpgT5x6wREMA4dGMK%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;474&quot; height=&quot;436&quot; data-filename=&quot;1_connections.jpg&quot; data-origin-width=&quot;474&quot; data-origin-height=&quot;436&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Perspective를 DBeaver로 바꾸어주세요&lt;/figcaption&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;
&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;background-color: #181a1b; color: #e8e6e3;&quot; data-darkreader-inline-bgcolor=&quot;&quot; data-darkreader-inline-color=&quot;&quot;&gt;2) Oracle을 선택해줍시다 (참고로 다른 DB에 연결하실 분은 해당 DB 선택해주세요)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2_오라클 클릭.jpg&quot; data-origin-width=&quot;929&quot; data-origin-height=&quot;569&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bGWatB/btrN5wwv159/TSp0rqFMbKjrafD38Kcs7k/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bGWatB/btrN5wwv159/TSp0rqFMbKjrafD38Kcs7k/img.jpg&quot; data-alt=&quot;Oracle 클릭&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bGWatB/btrN5wwv159/TSp0rqFMbKjrafD38Kcs7k/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbGWatB%2FbtrN5wwv159%2FTSp0rqFMbKjrafD38Kcs7k%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;600&quot; height=&quot;367&quot; data-filename=&quot;2_오라클 클릭.jpg&quot; data-origin-width=&quot;929&quot; data-origin-height=&quot;569&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Oracle 클릭&lt;/figcaption&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;
&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;background-color: #181a1b; color: #e8e6e3;&quot; data-darkreader-inline-bgcolor=&quot;&quot; data-darkreader-inline-color=&quot;&quot;&gt;3) 기본 설정은 다음과 같습니다. 여기서 정보들을 수정해줘야겠죠&lt;/span&gt;&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 alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3_최초.jpg&quot; data-origin-width=&quot;927&quot; data-origin-height=&quot;566&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CKOkl/btrN4jSpV4J/OHomkstPVzfUoem4Q47jQk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CKOkl/btrN4jSpV4J/OHomkstPVzfUoem4Q47jQk/img.jpg&quot; data-alt=&quot;최초 화면&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CKOkl/btrN4jSpV4J/OHomkstPVzfUoem4Q47jQk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCKOkl%2FbtrN4jSpV4J%2FOHomkstPVzfUoem4Q47jQk%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;600&quot; height=&quot;366&quot; data-filename=&quot;3_최초.jpg&quot; data-origin-width=&quot;927&quot; data-origin-height=&quot;566&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;최초 화면&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;1. Host : localhost&lt;br /&gt;2. Port : 1521&lt;br /&gt;3. Database : sqlplus에 접속해서 아래 쿼리를 실행 후 VALUE 컬럼의 값으로 Database 정보를 변경하면 됩니다.&lt;br /&gt;( sqlplus에서 show parameter service_names;을 입력했을 때 VALUE입니다. )&lt;br /&gt;4. Username :&amp;nbsp; sqlplus에서 생성한 아이디&lt;br /&gt;5. Password :&amp;nbsp; sqlplus에서 생성한 비밀번호&lt;br /&gt;6. Client : XE&lt;br /&gt;7. Test Connection : Connected를 확인&lt;br /&gt;8. 접속 확인&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #131516; color: #d8d4cf;&quot; data-darkreader-inline-bgcolor=&quot;&quot; data-darkreader-inline-color=&quot;&quot;&gt;4) 계정 생성하기 위해 sqlplus 들어가줍시다. &lt;span style=&quot;background-color: #0f1111; color: #cdc8c2;&quot; data-darkreader-inline-bgcolor=&quot;&quot; data-darkreader-inline-color=&quot;&quot;&gt;sqlplus&lt;span&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;blockquote data-ke-style=&quot;style3&quot;&gt;- 오라클 DB download &lt;br /&gt;1. https://www.oracle.com/ &lt;br /&gt;2. Products &amp;gt; Oracle Database &lt;br /&gt;3. Download Oracle Database 19c &lt;br /&gt;4. Windows zip&lt;br /&gt;&lt;br /&gt;- 오라클 SQL Developer download &lt;br /&gt;1. https://www.oracle.com/downloads/ &lt;br /&gt;2. Developer Tools &lt;br /&gt;3. SQL Developer &lt;br /&gt;4. Windows zip&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;5_아이디 생성 어떻게 했냐고.jpg&quot; data-origin-width=&quot;397&quot; data-origin-height=&quot;199&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BL7Js/btrN3L9JflX/XafOplqdHYVjxfH6CHJRF1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BL7Js/btrN3L9JflX/XafOplqdHYVjxfH6CHJRF1/img.jpg&quot; data-alt=&quot;cmd 들어갑시다&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BL7Js/btrN3L9JflX/XafOplqdHYVjxfH6CHJRF1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBL7Js%2FbtrN3L9JflX%2FXafOplqdHYVjxfH6CHJRF1%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;397&quot; height=&quot;199&quot; data-filename=&quot;5_아이디 생성 어떻게 했냐고.jpg&quot; data-origin-width=&quot;397&quot; data-origin-height=&quot;199&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;cmd 들어갑시다&lt;/figcaption&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;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;6_sqlplus 접속.jpg&quot; data-origin-width=&quot;853&quot; data-origin-height=&quot;467&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eu9MWP/btrN4jSqfYI/LSjNSBknyhUImbkkUPICfK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eu9MWP/btrN4jSqfYI/LSjNSBknyhUImbkkUPICfK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eu9MWP/btrN4jSqfYI/LSjNSBknyhUImbkkUPICfK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Feu9MWP%2FbtrN4jSqfYI%2FLSjNSBknyhUImbkkUPICfK%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;600&quot; height=&quot;328&quot; data-filename=&quot;6_sqlplus 접속.jpg&quot; data-origin-width=&quot;853&quot; data-origin-height=&quot;467&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;cmd &amp;gt; sqlplus&lt;br /&gt;&lt;br /&gt;SQL&amp;gt; conn /as sysdba &lt;br /&gt;Connected.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;7_관리자 패스워드 변경jpg.jpg&quot; data-origin-width=&quot;765&quot; data-origin-height=&quot;114&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bQs7bz/btrN6nF68Jb/hFsi0fN19IohcScAo0ZUi1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bQs7bz/btrN6nF68Jb/hFsi0fN19IohcScAo0ZUi1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bQs7bz/btrN6nF68Jb/hFsi0fN19IohcScAo0ZUi1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbQs7bz%2FbtrN6nF68Jb%2FhFsi0fN19IohcScAo0ZUi1%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;600&quot; height=&quot;89&quot; data-filename=&quot;7_관리자 패스워드 변경jpg.jpg&quot; data-origin-width=&quot;765&quot; data-origin-height=&quot;114&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;만약 관리자 계정 비밀번호를 바꾸고 싶다면 다음과 같이 해줍니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;SQL&amp;gt; show user​ USER is &quot;SYS&quot;&lt;br /&gt;&lt;br /&gt;SQL&amp;gt; alter user system identified by 변경하고 싶은 password;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;8_아이디 생성 권한부여.jpg&quot; data-origin-width=&quot;919&quot; data-origin-height=&quot;359&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dJ5mWe/btrN5iZxyIK/WeDD3FCGaLgHI3QI2CBSJk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dJ5mWe/btrN5iZxyIK/WeDD3FCGaLgHI3QI2CBSJk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dJ5mWe/btrN5iZxyIK/WeDD3FCGaLgHI3QI2CBSJk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdJ5mWe%2FbtrN5iZxyIK%2FWeDD3FCGaLgHI3QI2CBSJk%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;600&quot; height=&quot;234&quot; data-filename=&quot;8_아이디 생성 권한부여.jpg&quot; data-origin-width=&quot;919&quot; data-origin-height=&quot;359&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;참고로 계정 생성은 &lt;br /&gt;12c 이후 버전 : create user c##생성할 계정 identified by 설정할 비밀번호; &lt;br /&gt;12c 이전 버전 : create user 생성할계정 identifed 설정할 비밀번호;&lt;br /&gt;&lt;br /&gt;권한 부여는 grant [권한] to [id]; grant connect, resource, dba to 설정한 아이디; &lt;br /&gt;12c버전인 분들은 c##쓰시는 거 잊지 마세요.. &lt;br /&gt;&lt;br /&gt;계정 권한 취소 revoke [권한] from [id]; revoke connect, resource, dba from 설정한 아이디; &lt;br /&gt;12c버전인 분들은 c##쓰시는거 잊지마세요..&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;9_확인.jpg&quot; data-origin-width=&quot;364&quot; data-origin-height=&quot;109&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eeaep7/btrN3LhBtoT/VGkvr9POnvPN8vKTp4GyO1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eeaep7/btrN3LhBtoT/VGkvr9POnvPN8vKTp4GyO1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eeaep7/btrN3LhBtoT/VGkvr9POnvPN8vKTp4GyO1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Feeaep7%2FbtrN3LhBtoT%2FVGkvr9POnvPN8vKTp4GyO1%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;364&quot; height=&quot;109&quot; data-filename=&quot;9_확인.jpg&quot; data-origin-width=&quot;364&quot; data-origin-height=&quot;109&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;SQL&amp;gt; connect 생성한계정/비밀번호&lt;br /&gt;SQL&amp;gt; 연결되었습니다.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;생성한 계정과 비밀번호에 연결이 되었다는 것을 알 수 있습니다.&lt;br /&gt;&lt;br /&gt;SQL&amp;gt; show user&amp;nbsp; &lt;br /&gt;자신이 생성한 계정 이름이 나옵니다.&lt;br /&gt;&lt;br /&gt;SQL&amp;gt; select * from all_users;&lt;br /&gt;자신이 생성한 모든 계정이름이 나옵니다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #0f1111; color: #cdc8c2;&quot; data-darkreader-inline-bgcolor=&quot;&quot; data-darkreader-inline-color=&quot;&quot;&gt;5) 정보를 입력하고 Test Connection을 해줍니다&lt;/span&gt;&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 alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;4_로그인.jpg&quot; data-origin-width=&quot;698&quot; data-origin-height=&quot;376&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mpa3W/btrN3MAOtLa/fEzoZ3fdE88RwhsKgRakOk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mpa3W/btrN3MAOtLa/fEzoZ3fdE88RwhsKgRakOk/img.jpg&quot; data-alt=&quot;정보입력&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mpa3W/btrN3MAOtLa/fEzoZ3fdE88RwhsKgRakOk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fmpa3W%2FbtrN3MAOtLa%2FfEzoZ3fdE88RwhsKgRakOk%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;600&quot; height=&quot;323&quot; data-filename=&quot;4_로그인.jpg&quot; data-origin-width=&quot;698&quot; data-origin-height=&quot;376&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;정보입력&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;10_테스트 컨넥션 후 들어감.jpg&quot; data-origin-width=&quot;682&quot; data-origin-height=&quot;546&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bLOl3D/btrN4agW7UZ/5raCP9JCkk4Zb36COX3NE1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bLOl3D/btrN4agW7UZ/5raCP9JCkk4Zb36COX3NE1/img.jpg&quot; data-alt=&quot;Test Connection&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bLOl3D/btrN4agW7UZ/5raCP9JCkk4Zb36COX3NE1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbLOl3D%2FbtrN4agW7UZ%2F5raCP9JCkk4Zb36COX3NE1%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;600&quot; height=&quot;480&quot; data-filename=&quot;10_테스트 컨넥션 후 들어감.jpg&quot; data-origin-width=&quot;682&quot; data-origin-height=&quot;546&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Test Connection&lt;/figcaption&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;같이&amp;nbsp;추가되면&amp;nbsp;SQL&amp;nbsp;편집기를&amp;nbsp;사용하여&amp;nbsp;쿼리를&amp;nbsp;수행하면&amp;nbsp;됩니다.&lt;/p&gt;</description>
      <category>Database/Oracle</category>
      <category>DBeaver</category>
      <category>eclipse</category>
      <category>java</category>
      <category>Oracle</category>
      <category>sts</category>
      <category>디비버</category>
      <category>오라클</category>
      <category>자바</category>
      <category>플러그인</category>
      <author>변사부</author>
      <guid isPermaLink="true">https://enjoydevelop.tistory.com/130</guid>
      <comments>https://enjoydevelop.tistory.com/130#entry130comment</comments>
      <pubDate>Sat, 8 Oct 2022 17:50:07 +0900</pubDate>
    </item>
    <item>
      <title>STS에서 DBeaver 플러그인 설치하기</title>
      <link>https://enjoydevelop.tistory.com/129</link>
      <description>&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;Eclipse와 STS모두 연동 가능합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #181a1b; color: #e8e6e3;&quot; data-darkreader-inline-bgcolor=&quot;&quot; data-darkreader-inline-color=&quot;&quot;&gt;1) 이클립스 상단의 메뉴바에&lt;/span&gt;&lt;span style=&quot;background-color: #181a1b; color: #e8e6e3;&quot; data-darkreader-inline-bgcolor=&quot;&quot; data-darkreader-inline-color=&quot;&quot;&gt;서 Help -&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;Eclipse Marketplace&lt;/b&gt;&lt;span style=&quot;background-color: #181a1b; color: #e8e6e3;&quot; data-darkreader-inline-bgcolor=&quot;&quot; data-darkreader-inline-color=&quot;&quot;&gt;에 들어갑니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&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 alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1_마켓플레이스.jpg&quot; data-origin-width=&quot;301&quot; data-origin-height=&quot;311&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nM5UD/btrNEwX86Xc/7G03KMItOGNnOCKusm9xn0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nM5UD/btrNEwX86Xc/7G03KMItOGNnOCKusm9xn0/img.jpg&quot; data-alt=&quot;Eclipse Marketplace&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nM5UD/btrNEwX86Xc/7G03KMItOGNnOCKusm9xn0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnM5UD%2FbtrNEwX86Xc%2F7G03KMItOGNnOCKusm9xn0%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;301&quot; height=&quot;311&quot; data-filename=&quot;1_마켓플레이스.jpg&quot; data-origin-width=&quot;301&quot; data-origin-height=&quot;311&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Eclipse Marketplace&lt;/figcaption&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;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #181a1b; color: #e8e6e3;&quot; data-darkreader-inline-bgcolor=&quot;&quot; data-darkreader-inline-color=&quot;&quot;&gt;2) &lt;/span&gt;&lt;span style=&quot;background-color: #181a1b; color: #e8e6e3;&quot; data-darkreader-inline-bgcolor=&quot;&quot; data-darkreader-inline-color=&quot;&quot;&gt;검색창에&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;dbeaver&lt;/b&gt;&lt;span style=&quot;background-color: #181a1b; color: #e8e6e3;&quot; data-darkreader-inline-bgcolor=&quot;&quot; data-darkreader-inline-color=&quot;&quot;&gt;를 검색합니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2_설치jpg.jpg&quot; data-origin-width=&quot;519&quot; data-origin-height=&quot;869&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dSUz8D/btrNzEitARZ/DjElKdFr78EPzyeZUKVhok/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dSUz8D/btrNzEitARZ/DjElKdFr78EPzyeZUKVhok/img.jpg&quot; data-alt=&quot;dbeaver install&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dSUz8D/btrNzEitARZ/DjElKdFr78EPzyeZUKVhok/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdSUz8D%2FbtrNzEitARZ%2FDjElKdFr78EPzyeZUKVhok%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;500&quot; height=&quot;837&quot; data-filename=&quot;2_설치jpg.jpg&quot; data-origin-width=&quot;519&quot; data-origin-height=&quot;869&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;dbeaver install&lt;/figcaption&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;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #181a1b; color: #e8e6e3;&quot; data-darkreader-inline-bgcolor=&quot;&quot; data-darkreader-inline-color=&quot;&quot;&gt;3) 기본 설정을 유지한 채 &lt;b&gt;Confirm&lt;/b&gt;을 눌러줍니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;3_설치2.jpg&quot; data-origin-width=&quot;518&quot; data-origin-height=&quot;868&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ckY0Wo/btrNyFPoDSD/8FDsTvwBpd6y6FdkupaTdk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ckY0Wo/btrNyFPoDSD/8FDsTvwBpd6y6FdkupaTdk/img.jpg&quot; data-alt=&quot;confirm&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ckY0Wo/btrNyFPoDSD/8FDsTvwBpd6y6FdkupaTdk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FckY0Wo%2FbtrNyFPoDSD%2F8FDsTvwBpd6y6FdkupaTdk%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;500&quot; height=&quot;838&quot; data-filename=&quot;3_설치2.jpg&quot; data-origin-width=&quot;518&quot; data-origin-height=&quot;868&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;confirm&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #181a1b; color: #e8e6e3;&quot; data-darkreader-inline-bgcolor=&quot;&quot; data-darkreader-inline-color=&quot;&quot;&gt;4)&amp;nbsp; 라이센스 동의를 체크하고 &lt;b&gt;Finish&lt;/b&gt;를 누릅니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;4_설치3.jpg&quot; data-origin-width=&quot;706&quot; data-origin-height=&quot;867&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lEKFJ/btrNGxoYV1S/JEUTEQyitquGkfgbKeWvs0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lEKFJ/btrNGxoYV1S/JEUTEQyitquGkfgbKeWvs0/img.jpg&quot; data-alt=&quot;accpept license&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lEKFJ/btrNGxoYV1S/JEUTEQyitquGkfgbKeWvs0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlEKFJ%2FbtrNGxoYV1S%2FJEUTEQyitquGkfgbKeWvs0%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;500&quot; height=&quot;614&quot; data-filename=&quot;4_설치3.jpg&quot; data-origin-width=&quot;706&quot; data-origin-height=&quot;867&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;accpept license&lt;/figcaption&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;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #181a1b; color: #e8e6e3;&quot; data-darkreader-inline-bgcolor=&quot;&quot; data-darkreader-inline-color=&quot;&quot;&gt;5)&amp;nbsp; &lt;b&gt;Unsinged&lt;/b&gt;를 체크하고 하단에 있는 &lt;b&gt;Trust Selected&lt;/b&gt;를 눌러줍니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;5_설치4.jpg&quot; data-origin-width=&quot;743&quot; data-origin-height=&quot;431&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TrbHr/btrNEwKDZcz/3PbB9OFdTag0U4REtfnLJK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TrbHr/btrNEwKDZcz/3PbB9OFdTag0U4REtfnLJK/img.jpg&quot; data-alt=&quot;trust&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TrbHr/btrNEwKDZcz/3PbB9OFdTag0U4REtfnLJK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTrbHr%2FbtrNEwKDZcz%2F3PbB9OFdTag0U4REtfnLJK%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;500&quot; height=&quot;290&quot; data-filename=&quot;5_설치4.jpg&quot; data-origin-width=&quot;743&quot; data-origin-height=&quot;431&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;trust&lt;/figcaption&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;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #181a1b; color: #e8e6e3;&quot; data-darkreader-inline-bgcolor=&quot;&quot; data-darkreader-inline-color=&quot;&quot;&gt;6)&amp;nbsp; STS(Eclipse)를 다시 시작해줍니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;6_설치5.jpg&quot; data-origin-width=&quot;484&quot; data-origin-height=&quot;127&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dV6Q4l/btrNxexLgwa/zybuCF4jBcBR1TXbS1qNXk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dV6Q4l/btrNxexLgwa/zybuCF4jBcBR1TXbS1qNXk/img.jpg&quot; data-alt=&quot;Restart&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dV6Q4l/btrNxexLgwa/zybuCF4jBcBR1TXbS1qNXk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdV6Q4l%2FbtrNxexLgwa%2FzybuCF4jBcBR1TXbS1qNXk%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;500&quot; height=&quot;131&quot; data-filename=&quot;6_설치5.jpg&quot; data-origin-width=&quot;484&quot; data-origin-height=&quot;127&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Restart&lt;/figcaption&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;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #181a1b; color: #e8e6e3;&quot; data-darkreader-inline-bgcolor=&quot;&quot; data-darkreader-inline-color=&quot;&quot;&gt;7) 이클립스 상단의 메뉴바에&lt;/span&gt;&lt;span style=&quot;background-color: #181a1b; color: #e8e6e3;&quot; data-darkreader-inline-bgcolor=&quot;&quot; data-darkreader-inline-color=&quot;&quot;&gt;서 Window -&lt;span&gt; Perspective - Open &lt;span style=&quot;background-color: #131516; color: #d8d4cf;&quot; data-darkreader-inline-bgcolor=&quot;&quot; data-darkreader-inline-color=&quot;&quot;&gt;Perspective&lt;span&gt;&amp;nbsp; - Other&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #181a1b; color: #e8e6e3;&quot; data-darkreader-inline-bgcolor=&quot;&quot; data-darkreader-inline-color=&quot;&quot;&gt;에 들어갑니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;7_설치5.jpg&quot; data-origin-width=&quot;535&quot; data-origin-height=&quot;259&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mhI0p/btrNyDjH1iV/Io0VFNKule1DvuYxYdfBJK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mhI0p/btrNyDjH1iV/Io0VFNKule1DvuYxYdfBJK/img.jpg&quot; data-alt=&quot;Perspective&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mhI0p/btrNyDjH1iV/Io0VFNKule1DvuYxYdfBJK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmhI0p%2FbtrNyDjH1iV%2FIo0VFNKule1DvuYxYdfBJK%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;500&quot; height=&quot;242&quot; data-filename=&quot;7_설치5.jpg&quot; data-origin-width=&quot;535&quot; data-origin-height=&quot;259&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Perspective&lt;/figcaption&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;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #181a1b; color: #e8e6e3;&quot; data-darkreader-inline-bgcolor=&quot;&quot; data-darkreader-inline-color=&quot;&quot;&gt;8) DBeaver를 누르고 Connection을 맺습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;8_설치5.jpg&quot; data-origin-width=&quot;344&quot; data-origin-height=&quot;442&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bu7yjR/btrNEwDQGn9/CfOLkDmLwoFh4ykBzX7pQK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bu7yjR/btrNEwDQGn9/CfOLkDmLwoFh4ykBzX7pQK/img.jpg&quot; data-alt=&quot;dbeaver&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bu7yjR/btrNEwDQGn9/CfOLkDmLwoFh4ykBzX7pQK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbu7yjR%2FbtrNEwDQGn9%2FCfOLkDmLwoFh4ykBzX7pQK%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;344&quot; height=&quot;442&quot; data-filename=&quot;8_설치5.jpg&quot; data-origin-width=&quot;344&quot; data-origin-height=&quot;442&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;dbeaver&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Database/Oracle</category>
      <category>DATABASE</category>
      <category>DBeaver</category>
      <category>dbeaver oracle 연결</category>
      <category>DB연결</category>
      <category>eclipse</category>
      <category>java</category>
      <category>데이터베이스</category>
      <category>디비버연동</category>
      <category>이클립스</category>
      <category>자바</category>
      <author>변사부</author>
      <guid isPermaLink="true">https://enjoydevelop.tistory.com/129</guid>
      <comments>https://enjoydevelop.tistory.com/129#entry129comment</comments>
      <pubDate>Mon, 3 Oct 2022 22:30:16 +0900</pubDate>
    </item>
    <item>
      <title>  2022년 제44회 SQLD 합격 후기 및 공부방법</title>
      <link>https://enjoydevelop.tistory.com/128</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;  INTRO&lt;/h3&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;이번에는&amp;nbsp;SQLD&amp;nbsp;합격후기를&amp;nbsp;들고 오게&amp;nbsp;되었습니다.&amp;nbsp;저번&amp;nbsp;정보처리기사에&amp;nbsp;이어서&amp;nbsp;2번째&amp;nbsp;자격증&amp;nbsp;취득을&amp;nbsp;하게&amp;nbsp;되었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;향후&amp;nbsp;자격증&amp;nbsp;취득계획은&amp;nbsp;없지만&amp;nbsp;필요시&amp;nbsp;취득하려고&amp;nbsp;합니다. &lt;br /&gt;&lt;br /&gt;제 글이 도움이 되기를 바라면서 작성해보겠습니다. 꼭 합격하시길 바랄게요!&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;해당 자격증을 취득할까 말까 고민하시는 분들 (이게 도움이 될까? 시간낭비 아냐? 등등) 계실 것 같습니다. &lt;br /&gt;저 또한 그랬기 때문에 팁을 드리자면 고민하지 말고 접수부터 하세요. &lt;br /&gt;발등에 불 떨어지면 누구나 초인적인 힘을 발휘하거든요&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  합격 인증&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;합격증명1.jpg&quot; data-origin-width=&quot;1112&quot; data-origin-height=&quot;302&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cdqbxy/btrHpfbjnXm/ivvOfjphp3yuK0IAKdgIHk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cdqbxy/btrHpfbjnXm/ivvOfjphp3yuK0IAKdgIHk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cdqbxy/btrHpfbjnXm/ivvOfjphp3yuK0IAKdgIHk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcdqbxy%2FbtrHpfbjnXm%2FivvOfjphp3yuK0IAKdgIHk%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;1112&quot; height=&quot;302&quot; data-filename=&quot;합격증명1.jpg&quot; data-origin-width=&quot;1112&quot; data-origin-height=&quot;302&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;합격증명2.jpg&quot; data-origin-width=&quot;1112&quot; data-origin-height=&quot;413&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LIdWm/btrHpfbjnZg/u4BJckCyROrrOteO12rtyK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LIdWm/btrHpfbjnZg/u4BJckCyROrrOteO12rtyK/img.jpg&quot; data-alt=&quot;합격인증&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LIdWm/btrHpfbjnZg/u4BJckCyROrrOteO12rtyK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLIdWm%2FbtrHpfbjnZg%2Fu4BJckCyROrrOteO12rtyK%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;1112&quot; height=&quot;413&quot; data-filename=&quot;합격증명2.jpg&quot; data-origin-width=&quot;1112&quot; data-origin-height=&quot;413&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;합격인증&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  고사장&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;고사장2.jpg&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xFgdj/btrHp1qv5sR/4JzAKyZtVmA7drumjV5pe0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xFgdj/btrHp1qv5sR/4JzAKyZtVmA7drumjV5pe0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xFgdj/btrHp1qv5sR/4JzAKyZtVmA7drumjV5pe0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxFgdj%2FbtrHp1qv5sR%2F4JzAKyZtVmA7drumjV5pe0%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;3024&quot; height=&quot;4032&quot; data-filename=&quot;고사장2.jpg&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;고사장.jpg&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdWbQT/btrHuTEkBlC/T5rFL7EKb0dBGWVHdJtpSK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdWbQT/btrHuTEkBlC/T5rFL7EKb0dBGWVHdJtpSK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdWbQT/btrHuTEkBlC/T5rFL7EKb0dBGWVHdJtpSK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdWbQT%2FbtrHuTEkBlC%2FT5rFL7EKb0dBGWVHdJtpSK%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;3024&quot; height=&quot;4032&quot; data-filename=&quot;고사장.jpg&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&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;시험 접수할 때는 항상 원하는 고사장을 사전에 잘 숙지하고 30분 정도 여유 있게 오시는 것을 추천드릴게요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  공부기간은?&lt;/h3&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주 정도&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;부족하다면&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;앞서 말씀드린 것과 같이 먼저 접수하세요. 일을 저지르세요. 그러면 강제로라도 하게 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;회사를 다니신다면 바쁜 기간이 오기 전에 미리미리 따 놓으시길 추천드릴게요.&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;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  책은&amp;nbsp;어떤 것을&amp;nbsp;썼는가?&amp;nbsp;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;책.jpg&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dQ4TBN/btrHrNZmic1/FF8jFskyn7i3FaQ3axe7f1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dQ4TBN/btrHrNZmic1/FF8jFskyn7i3FaQ3axe7f1/img.jpg&quot; data-alt=&quot;노랭이책&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dQ4TBN/btrHrNZmic1/FF8jFskyn7i3FaQ3axe7f1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdQ4TBN%2FbtrHrNZmic1%2FFF8jFskyn7i3FaQ3axe7f1%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;3024&quot; height=&quot;4032&quot; data-filename=&quot;책.jpg&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;노랭이책&lt;/figcaption&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;사진과&amp;nbsp;같이&amp;nbsp;&lt;b&gt;&quot;노랭이&quot;라고&lt;/b&gt;&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;해설지도&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 data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;하지만&amp;nbsp;책만&amp;nbsp;잘&amp;nbsp;본다면&amp;nbsp;실제&amp;nbsp;시험에서&amp;nbsp;생각보다&amp;nbsp;풀만한데?라고&amp;nbsp;생각하실&amp;nbsp;수&amp;nbsp;있어요. &lt;br /&gt;마치&amp;nbsp;어려운 문제를&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 data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;1회독은 답지 보고 역으로 유추하시면서 공부하시면 도움이 더 많이 될 겁니다. &lt;br /&gt;2회독은 답지를 보지 않고 풀어보시는 것을 추천합니다.&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;h3 data-ke-size=&quot;size23&quot;&gt;  인강은&amp;nbsp;들었는가?&lt;/h3&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;찾아보시면&amp;nbsp;유튜브의&amp;nbsp;김강민 SQLP을&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;많이&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;&lt;br /&gt;그리고&amp;nbsp;SQL 전문가&amp;nbsp;정미나&amp;nbsp;선생님&amp;nbsp;강의도&amp;nbsp;정말&amp;nbsp;도움이&amp;nbsp;많이&amp;nbsp;되었습니다.&amp;nbsp;실습도&amp;nbsp;같이&amp;nbsp;할&amp;nbsp;수&amp;nbsp;있거든요. &lt;br /&gt;실습하실&amp;nbsp;때&amp;nbsp;오라클&amp;nbsp;sql&amp;nbsp;developer&amp;nbsp;또는&amp;nbsp;dbeaver를&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 data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;쿼리작성.jpg&quot; data-origin-width=&quot;672&quot; data-origin-height=&quot;582&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dwiG1p/btrHvojZJ9P/qqyYTELBFLRTL1UpMoAsc0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dwiG1p/btrHvojZJ9P/qqyYTELBFLRTL1UpMoAsc0/img.jpg&quot; data-alt=&quot;계층형쿼리 실습&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dwiG1p/btrHvojZJ9P/qqyYTELBFLRTL1UpMoAsc0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdwiG1p%2FbtrHvojZJ9P%2FqqyYTELBFLRTL1UpMoAsc0%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;672&quot; height=&quot;582&quot; data-filename=&quot;쿼리작성.jpg&quot; data-origin-width=&quot;672&quot; data-origin-height=&quot;582&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;계층형쿼리 실습&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;사람마다&amp;nbsp;다르게&amp;nbsp;느낄&amp;nbsp;수&amp;nbsp;있으니&amp;nbsp;한번&amp;nbsp;들어보시고&amp;nbsp;판단하면&amp;nbsp;좋을&amp;nbsp;것&amp;nbsp;같아요. &lt;br /&gt;유튜브에&amp;nbsp;sqld강의라고&amp;nbsp;검색하시면&amp;nbsp;많이&amp;nbsp;나옵니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://www.youtube.com/channel/UC7Ax79mT-s1qErBZnH0Kk-A&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.youtube.com/channel/UC7Ax79mT-s1qErBZnH0Kk-A&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1657977575450&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;profile&quot; data-og-title=&quot;쏭즈캠퍼스&quot; data-og-description=&quot;쏭즈 SAS ,SQLD 전문 강사&quot; data-og-host=&quot;www.youtube.com&quot; data-og-source-url=&quot;https://www.youtube.com/channel/UC7Ax79mT-s1qErBZnH0Kk-A&quot; data-og-url=&quot;https://www.youtube.com/channel/UC7Ax79mT-s1qErBZnH0Kk-A&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/Gu0zn/hyO5TkdAgr/2Re32J2M9bp3we0xaQlQ20/img.jpg?width=900&amp;amp;height=900&amp;amp;face=0_0_900_900,https://scrap.kakaocdn.net/dn/Cl3yc/hyO5LNep88/enEJjqMU1tvVGKsbB5KLFK/img.jpg?width=900&amp;amp;height=900&amp;amp;face=0_0_900_900&quot;&gt;&lt;a href=&quot;https://www.youtube.com/channel/UC7Ax79mT-s1qErBZnH0Kk-A&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.youtube.com/channel/UC7Ax79mT-s1qErBZnH0Kk-A&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/Gu0zn/hyO5TkdAgr/2Re32J2M9bp3we0xaQlQ20/img.jpg?width=900&amp;amp;height=900&amp;amp;face=0_0_900_900,https://scrap.kakaocdn.net/dn/Cl3yc/hyO5LNep88/enEJjqMU1tvVGKsbB5KLFK/img.jpg?width=900&amp;amp;height=900&amp;amp;face=0_0_900_900');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;쏭즈캠퍼스&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;쏭즈 SAS ,SQLD 전문 강사&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.youtube.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://www.youtube.com/c/SQL%EC%A0%84%EB%AC%B8%EA%B0%80%EC%A0%95%EB%AF%B8%EB%82%98&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.youtube.com/c/SQL%EC%A0%84%EB%AC%B8%EA%B0%80%EC%A0%95%EB%AF%B8%EB%82%98&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1657977534017&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;profile&quot; data-og-title=&quot;SQL전문가 정미나&quot; data-og-description=&quot;안녕하세요, SQL전문가 정미나입니다. 이 채널의 궁극적인 목표는 전공자 포함 Database에 관심이 있는 초보자분들께 조금이나마 도움을 드리는 것입니다. 지금은 어떨지 모르겠지만 제가 학부생&quot; data-og-host=&quot;www.youtube.com&quot; data-og-source-url=&quot;https://www.youtube.com/c/SQL%EC%A0%84%EB%AC%B8%EA%B0%80%EC%A0%95%EB%AF%B8%EB%82%98&quot; data-og-url=&quot;https://www.youtube.com/channel/UCoc7x15NFZ97UbwfdmMZxlw&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bfkMpf/hyO5HYlQAD/j54NjSm4xluxC7owqzKKTK/img.jpg?width=900&amp;amp;height=900&amp;amp;face=279_223_691_671,https://scrap.kakaocdn.net/dn/cATFAY/hyO5Tkdywy/vQKnSVKKJKVk3vNtMR8QQK/img.jpg?width=900&amp;amp;height=900&amp;amp;face=279_223_691_671&quot;&gt;&lt;a href=&quot;https://www.youtube.com/c/SQL%EC%A0%84%EB%AC%B8%EA%B0%80%EC%A0%95%EB%AF%B8%EB%82%98&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.youtube.com/c/SQL%EC%A0%84%EB%AC%B8%EA%B0%80%EC%A0%95%EB%AF%B8%EB%82%98&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bfkMpf/hyO5HYlQAD/j54NjSm4xluxC7owqzKKTK/img.jpg?width=900&amp;amp;height=900&amp;amp;face=279_223_691_671,https://scrap.kakaocdn.net/dn/cATFAY/hyO5Tkdywy/vQKnSVKKJKVk3vNtMR8QQK/img.jpg?width=900&amp;amp;height=900&amp;amp;face=279_223_691_671');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;SQL전문가 정미나&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;안녕하세요, SQL전문가 정미나입니다. 이 채널의 궁극적인 목표는 전공자 포함 Database에 관심이 있는 초보자분들께 조금이나마 도움을 드리는 것입니다. 지금은 어떨지 모르겠지만 제가 학부생&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.youtube.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&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: #c8c3bc;&quot; data-darkreader-inline-color=&quot;&quot;&gt;저는&amp;nbsp;출퇴근 시간&amp;nbsp;지하철에서&amp;nbsp;공부할&amp;nbsp;때&amp;nbsp;강의를&amp;nbsp;들으면서&amp;nbsp;공부했어요&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #c8c3bc;&quot; data-darkreader-inline-color=&quot;&quot;&gt;1.&amp;nbsp;유료 강의까지&amp;nbsp;필요 없다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #c8c3bc;&quot; data-darkreader-inline-color=&quot;&quot;&gt;2.&amp;nbsp;유튜브와&amp;nbsp;실습으로&amp;nbsp;충분히&amp;nbsp;공부할&amp;nbsp;수&amp;nbsp;있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  기출문제는&amp;nbsp;풀었는가?&lt;/h3&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;br /&gt;&lt;a href=&quot;https://cafe.naver.com/sqlpd&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://cafe.naver.com/sqlpd&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1657977658970&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;데이터 전문가 포럼 (빅데이터분석기사... : 네이버 카페&quot; data-og-description=&quot;빅데이터분석기사, ADP, ADsP, SQLP, SQLD, DAP, DAsP, 자격증 취득 등 데이터 전문가 커뮤니티입니다.&quot; data-og-host=&quot;cafe.naver.com&quot; data-og-source-url=&quot;https://cafe.naver.com/sqlpd&quot; data-og-url=&quot;https://cafe.naver.com/sqlpd&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bP9fER/hyO7BoGySn/kB4oN2yT0roJ1XS0qvFaFK/img.png?width=227&amp;amp;height=227&amp;amp;face=0_0_227_227&quot;&gt;&lt;a href=&quot;https://cafe.naver.com/sqlpd&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://cafe.naver.com/sqlpd&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bP9fER/hyO7BoGySn/kB4oN2yT0roJ1XS0qvFaFK/img.png?width=227&amp;amp;height=227&amp;amp;face=0_0_227_227');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;데이터 전문가 포럼 (빅데이터분석기사... : 네이버 카페&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;빅데이터분석기사, ADP, ADsP, SQLP, SQLD, DAP, DAsP, 자격증 취득 등 데이터 전문가 커뮤니티입니다.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;cafe.naver.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&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: #c8c3bc;&quot; data-darkreader-inline-color=&quot;&quot;&gt;해당&amp;nbsp;카페에&amp;nbsp;pdf요약집,&amp;nbsp;기출문제뿐만&amp;nbsp;아니라&amp;nbsp;다양한&amp;nbsp;정보가&amp;nbsp;많습니다.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #c8c3bc;&quot; data-darkreader-inline-color=&quot;&quot;&gt;정보처리기사 때도&amp;nbsp;말씀드렸지만&amp;nbsp;카페를&amp;nbsp;활용하세요!&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;span style=&quot;color: #c8c3bc;&quot; data-darkreader-inline-color=&quot;&quot;&gt;*꿀&amp;nbsp;정보들이&amp;nbsp;넘쳐납니다&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  오픈 채팅방을&amp;nbsp;활용했는가?&lt;/h3&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;자격증 관련&amp;nbsp;오픈 채팅방이&amp;nbsp;늘어나는 추세죠 &lt;br /&gt;정보처리기사 때뿐만 아니라 sqld 자격증에도 오픈 채팅방을 활용해보았습니다. &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 alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;오픈카톡.jpg&quot; data-origin-width=&quot;828&quot; data-origin-height=&quot;1557&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cI5WxI/btrHpD4uPme/snDEKtkEmA108zMn4w6v80/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cI5WxI/btrHpD4uPme/snDEKtkEmA108zMn4w6v80/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cI5WxI/btrHpD4uPme/snDEKtkEmA108zMn4w6v80/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcI5WxI%2FbtrHpD4uPme%2FsnDEKtkEmA108zMn4w6v80%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;828&quot; height=&quot;1557&quot; data-filename=&quot;오픈카톡.jpg&quot; data-origin-width=&quot;828&quot; data-origin-height=&quot;1557&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;추천합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;1.&amp;nbsp;다른&amp;nbsp;사람들은&amp;nbsp;어떤 문제에서&amp;nbsp;막히나&amp;nbsp;궁금하다 &lt;br /&gt;2.&amp;nbsp;나&amp;nbsp;혼자만&amp;nbsp;공부한다는&amp;nbsp;느낌이&amp;nbsp;들고 싶지 않다. &lt;br /&gt;3.&amp;nbsp;소소한&amp;nbsp;정보를&amp;nbsp;얻고&amp;nbsp;싶다. &lt;br /&gt;4.&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>IT BASE/SQLD</category>
      <category>DB</category>
      <category>sqld</category>
      <category>개발자</category>
      <category>자격증</category>
      <category>쿼리</category>
      <author>변사부</author>
      <guid isPermaLink="true">https://enjoydevelop.tistory.com/128</guid>
      <comments>https://enjoydevelop.tistory.com/128#entry128comment</comments>
      <pubDate>Sat, 16 Jul 2022 22:26:17 +0900</pubDate>
    </item>
    <item>
      <title>  [Write] Day 91 ~ Day100 [완료]</title>
      <link>https://enjoydevelop.tistory.com/127</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;  인증&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cWvAgQ/btrARLumCWE/6kF9rzIM6Vj1GkqX7X2Ko0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cWvAgQ/btrARLumCWE/6kF9rzIM6Vj1GkqX7X2Ko0/img.jpg&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;91.jpg&quot; style=&quot;width: 49.4186%; margin-right: 10px;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cWvAgQ/btrARLumCWE/6kF9rzIM6Vj1GkqX7X2Ko0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcWvAgQ%2FbtrARLumCWE%2F6kF9rzIM6Vj1GkqX7X2Ko0%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cxcuRf/btrAp5GGSWy/iqvXWRJeM8n78XGKfhHsy0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cxcuRf/btrAp5GGSWy/iqvXWRJeM8n78XGKfhHsy0/img.jpg&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;92.jpg&quot; style=&quot;width: 49.4186%;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cxcuRf/btrAp5GGSWy/iqvXWRJeM8n78XGKfhHsy0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcxcuRf%2FbtrAp5GGSWy%2FiqvXWRJeM8n78XGKfhHsy0%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bnKVxR/btrASwDtfY4/7ZtYRmC1xsWq3iL7dtZG3k/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bnKVxR/btrASwDtfY4/7ZtYRmC1xsWq3iL7dtZG3k/img.jpg&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;93.jpg&quot; style=&quot;width: 32.5581%; margin-right: 10px; margin-top: 10px;&quot; data-widthpercent=&quot;33.33&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bnKVxR/btrASwDtfY4/7ZtYRmC1xsWq3iL7dtZG3k/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbnKVxR%2FbtrASwDtfY4%2F7ZtYRmC1xsWq3iL7dtZG3k%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bh4GBs/btrASwpXCNk/IgyaHTIsxhlxKkKIX4R8FK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bh4GBs/btrASwpXCNk/IgyaHTIsxhlxKkKIX4R8FK/img.jpg&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;94.jpg&quot; style=&quot;width: 32.5581%; margin-right: 10px; margin-top: 10px;&quot; data-widthpercent=&quot;33.33&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bh4GBs/btrASwpXCNk/IgyaHTIsxhlxKkKIX4R8FK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbh4GBs%2FbtrASwpXCNk%2FIgyaHTIsxhlxKkKIX4R8FK%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bn9xkZ/btrARqcX473/wJpAtRqFr3HskYIylGmzBk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bn9xkZ/btrARqcX473/wJpAtRqFr3HskYIylGmzBk/img.jpg&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;95.jpg&quot; style=&quot;width: 32.5581%; margin-top: 10px;&quot; data-widthpercent=&quot;33.34&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bn9xkZ/btrARqcX473/wJpAtRqFr3HskYIylGmzBk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbn9xkZ%2FbtrARqcX473%2FwJpAtRqFr3HskYIylGmzBk%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rz8hR/btrAR9aK93l/8s92nqJHfP9uhkMqgaoQkk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rz8hR/btrAR9aK93l/8s92nqJHfP9uhkMqgaoQkk/img.jpg&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;96.jpg&quot; style=&quot;width: 49.4186%; margin-right: 10px; margin-top: 10px;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rz8hR/btrAR9aK93l/8s92nqJHfP9uhkMqgaoQkk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Frz8hR%2FbtrAR9aK93l%2F8s92nqJHfP9uhkMqgaoQkk%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nbJ39/btrAUxPeBlX/DbpqNJkHMiGvsglQYg5Qk0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nbJ39/btrAUxPeBlX/DbpqNJkHMiGvsglQYg5Qk0/img.jpg&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;97.jpg&quot; style=&quot;width: 49.4186%; margin-top: 10px;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nbJ39/btrAUxPeBlX/DbpqNJkHMiGvsglQYg5Qk0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnbJ39%2FbtrAUxPeBlX%2FDbpqNJkHMiGvsglQYg5Qk0%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bgmFnv/btrARqcX5jn/XGhKl3qW1ddUinBGBSlFWK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bgmFnv/btrARqcX5jn/XGhKl3qW1ddUinBGBSlFWK/img.jpg&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;98.jpg&quot; style=&quot;width: 32.5581%; margin-right: 10px; margin-top: 10px;&quot; data-widthpercent=&quot;33.33&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bgmFnv/btrARqcX5jn/XGhKl3qW1ddUinBGBSlFWK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbgmFnv%2FbtrARqcX5jn%2FXGhKl3qW1ddUinBGBSlFWK%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vWmb1/btrARLVrJ6k/i8hAr2knX3NRe4dVnUAmcK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vWmb1/btrARLVrJ6k/i8hAr2knX3NRe4dVnUAmcK/img.jpg&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;99.jpg&quot; style=&quot;width: 32.5581%; margin-right: 10px; margin-top: 10px;&quot; data-widthpercent=&quot;33.33&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vWmb1/btrARLVrJ6k/i8hAr2knX3NRe4dVnUAmcK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvWmb1%2FbtrARLVrJ6k%2Fi8hAr2knX3NRe4dVnUAmcK%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bNSq3P/btrARpE6OMP/nDI98jEyI7Ff006jt3klW0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bNSq3P/btrARpE6OMP/nDI98jEyI7Ff006jt3klW0/img.jpg&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;100.jpg&quot; style=&quot;width: 32.5581%; margin-top: 10px;&quot; data-widthpercent=&quot;33.34&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bNSq3P/btrARpE6OMP/nDI98jEyI7Ff006jt3klW0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbNSq3P%2FbtrARpE6OMP%2FnDI98jEyI7Ff006jt3klW0%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;글쓰기 인증 100일 완료&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #c8c3bc;&quot; data-darkreader-inline-color=&quot;&quot;&gt;&lt;span style=&quot;color: #c8c3bc;&quot; data-darkreader-inline-color=&quot;&quot;&gt;  &lt;/span&gt;100일 글쓰기 성공 소감&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;1. 꾸준함이 습관이 된다.&amp;nbsp;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #c8c3bc;&quot; data-darkreader-inline-color=&quot;&quot;&gt; &lt;br /&gt;첫&amp;nbsp;번째&amp;nbsp;100번&amp;nbsp;글쓰기에서&amp;nbsp;38일차까지&amp;nbsp;진행하고&amp;nbsp;실패했습니다.&amp;nbsp;원인을&amp;nbsp;생각해보니&amp;nbsp;&quot;합리화&quot;더라고요.&amp;nbsp;바쁘다&amp;nbsp;혹은&amp;nbsp;시간이&amp;nbsp;없다&amp;nbsp;아니면&amp;nbsp;이만하면&amp;nbsp;됐다라는&amp;nbsp;생각이었죠. &lt;br /&gt;&lt;br /&gt;다시&amp;nbsp;시작한&amp;nbsp;글쓰기는&amp;nbsp;무슨&amp;nbsp;일이&amp;nbsp;있어도&amp;nbsp;100일을&amp;nbsp;지속하겠다고&amp;nbsp;다짐하고&amp;nbsp;시작했습니다.&amp;nbsp;변명은&amp;nbsp;하지&amp;nbsp;않았습니다.&amp;nbsp;저녁에&amp;nbsp;못쓸&amp;nbsp;일이&amp;nbsp;있으면&amp;nbsp;아침에&amp;nbsp;10분&amp;nbsp;일찍&amp;nbsp;일어나서&amp;nbsp;적었습니다.&amp;nbsp;합리화라는&amp;nbsp;생각이&amp;nbsp;뇌를&amp;nbsp;거치기&amp;nbsp;전에&amp;nbsp;&quot;행동&quot;&amp;nbsp;하는&amp;nbsp;게&amp;nbsp;효과가&amp;nbsp;제일&amp;nbsp;좋더라고요. &lt;br /&gt;&lt;br /&gt;결론은&amp;nbsp;게으르고&amp;nbsp;귀찮음이&amp;nbsp;많은&amp;nbsp;저도&amp;nbsp;되더라고요.&amp;nbsp;의지의&amp;nbsp;차이입니다.&amp;nbsp;누구나&amp;nbsp;할&amp;nbsp;수&amp;nbsp;있습니다.&amp;nbsp;100일째&amp;nbsp;글을&amp;nbsp;쓰고&amp;nbsp;끝냈을&amp;nbsp;때&amp;nbsp;정말&amp;nbsp;기분이&amp;nbsp;좋았습니다.&amp;nbsp;물론&amp;nbsp;위기도&amp;nbsp;있었습니다.&amp;nbsp;30일차쯤에&amp;nbsp;1번&amp;nbsp;있었고&amp;nbsp;그&amp;nbsp;이후에도&amp;nbsp;1번&amp;nbsp;더&amp;nbsp;있었던&amp;nbsp;것으로&amp;nbsp;기억합니다.&amp;nbsp;이때를&amp;nbsp;조심하셔야&amp;nbsp;합니다.&amp;nbsp;정말&amp;nbsp;쓰기&amp;nbsp;싫으시겠지만,&amp;nbsp;하루만&amp;nbsp;쉬고&amp;nbsp;싶겠지만&amp;nbsp;넘겨야&amp;nbsp;합니다.&amp;nbsp;특정&amp;nbsp;시점이&amp;nbsp;올&amp;nbsp;때까지요.&amp;nbsp;저는&amp;nbsp;60~70일차&amp;nbsp;정도&amp;nbsp;이후에는&amp;nbsp;괜찮았습니다. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;2.&amp;nbsp;적어도&amp;nbsp;글쓰는&amp;nbsp;시간은&amp;nbsp;상상했다.&lt;/blockquote&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: #c8c3bc;&quot; data-darkreader-inline-color=&quot;&quot;&gt;글을 쓸 때는 다른 외부의 방해를 받지 않는 공간에서 썼습니다. 처음에는 상상이 잘 안됐습니다. 글만 썼죠. 그날 하루 글쓰기를 완료하는 데 초점을 두었습니다. 이후 점점 지속하시다 보면 자연스럽게 글 내용에 대한 상상을 하시게 될 겁니다. 의도적으로 할 필요는 없는 것 같습니다. &lt;br /&gt;&lt;br /&gt;상상은&amp;nbsp;꽤나&amp;nbsp;구체적으로&amp;nbsp;했습니다.&amp;nbsp;상상만으로&amp;nbsp;좋더라고요.&amp;nbsp;이게&amp;nbsp;이루어진다면..&amp;nbsp;얼마나&amp;nbsp;좋을까?&amp;nbsp;상황과&amp;nbsp;그에&amp;nbsp;따른&amp;nbsp;대사까지&amp;nbsp;머릿속으로&amp;nbsp;생각이&amp;nbsp;됐습니다.&amp;nbsp;상대방의&amp;nbsp;대사,&amp;nbsp;그날의&amp;nbsp;상황,&amp;nbsp;느낌,&amp;nbsp;전체적인&amp;nbsp;배경,&amp;nbsp;위치&amp;nbsp;등등이요.&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;/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;blockquote data-ke-style=&quot;style2&quot;&gt;3.&amp;nbsp;작은&amp;nbsp;성공을&amp;nbsp;이루다.&lt;/blockquote&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: #c8c3bc;&quot; data-darkreader-inline-color=&quot;&quot;&gt;다들 100일 글쓰기를 통해 얻고 싶은 목표가 있을 겁니다. 목표는 클 수도 있고 사소할 수도 있겠죠. &lt;br /&gt;저의&amp;nbsp;목표는&amp;nbsp;&quot;내가&amp;nbsp;현실적으로&amp;nbsp;실행할&amp;nbsp;수&amp;nbsp;있는&amp;nbsp;목표보다&amp;nbsp;조금&amp;nbsp;더&amp;nbsp;큰&amp;nbsp;목표를&amp;nbsp;잡자&quot;입니다.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;왜냐하면&amp;nbsp;제&amp;nbsp;자신이&amp;nbsp;욕심이&amp;nbsp;많은&amp;nbsp;것을&amp;nbsp;알기&amp;nbsp;때문입니다.&amp;nbsp;이루고&amp;nbsp;싶은&amp;nbsp;것은&amp;nbsp;많고&amp;nbsp;계획은&amp;nbsp;그럴싸하지만&amp;nbsp;막상&amp;nbsp;실행은&amp;nbsp;하지&amp;nbsp;않았습니다.&amp;nbsp;그러기에&amp;nbsp;최대한&amp;nbsp;감정을&amp;nbsp;절제하고&amp;nbsp;작은&amp;nbsp;성공을&amp;nbsp;여러&amp;nbsp;번&amp;nbsp;하여&amp;nbsp;자신감을&amp;nbsp;채운&amp;nbsp;후&amp;nbsp;&quot;반복&quot;하자로&amp;nbsp;정하게&amp;nbsp;되었습니다. &lt;br /&gt;&lt;br /&gt;욕심을&amp;nbsp;버리고&amp;nbsp;반복하니&amp;nbsp;정말&amp;nbsp;되더라고요.&amp;nbsp;100일&amp;nbsp;글쓰기에&amp;nbsp;적은&amp;nbsp;모든&amp;nbsp;내용을&amp;nbsp;100%&amp;nbsp;이루었습니다. &lt;br /&gt;(면접,&amp;nbsp;취업,&amp;nbsp;상황에&amp;nbsp;따른&amp;nbsp;적응,&amp;nbsp;자격증&amp;nbsp;취득) &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;4.&amp;nbsp;성격의&amp;nbsp;변화&amp;nbsp;그리고&amp;nbsp;스스로&amp;nbsp;판단하다.&lt;/blockquote&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: #c8c3bc;&quot; data-darkreader-inline-color=&quot;&quot;&gt;작은 성공을 맛보고 누적되니 자신감이 생겼고, 자신감이 생기니 주체적으로 변했습니다. 남에게 의존하는 습관도 많이 개선되었고 스스로 알아보고 계획하고 판단하는 빈도가 늘었습니다. &lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Record/1Day 1Write</category>
      <category>100일글쓰기</category>
      <category>글쓰기</category>
      <category>성공</category>
      <category>인증</category>
      <author>변사부</author>
      <guid isPermaLink="true">https://enjoydevelop.tistory.com/127</guid>
      <comments>https://enjoydevelop.tistory.com/127#entry127comment</comments>
      <pubDate>Sun, 1 May 2022 00:20:41 +0900</pubDate>
    </item>
    <item>
      <title>  [Write] Day 81 ~ Day90</title>
      <link>https://enjoydevelop.tistory.com/126</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;  인증&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/k8jL5/btrAR6Ej0PU/yQJsk30wGjvU0vOqxILAs1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/k8jL5/btrAR6Ej0PU/yQJsk30wGjvU0vOqxILAs1/img.jpg&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;81.jpg&quot; data-widthpercent=&quot;50&quot; style=&quot;width: 49.4186%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/k8jL5/btrAR6Ej0PU/yQJsk30wGjvU0vOqxILAs1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fk8jL5%2FbtrAR6Ej0PU%2FyQJsk30wGjvU0vOqxILAs1%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bDJgGu/btrAV37RDTE/rBvplmXTpjvVrRJekjNGCK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bDJgGu/btrAV37RDTE/rBvplmXTpjvVrRJekjNGCK/img.jpg&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;82.jpg&quot; data-widthpercent=&quot;50&quot; style=&quot;width: 49.4186%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bDJgGu/btrAV37RDTE/rBvplmXTpjvVrRJekjNGCK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbDJgGu%2FbtrAV37RDTE%2FrBvplmXTpjvVrRJekjNGCK%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bDbwH8/btrAR7XugvZ/QDimkRrGZAkZY6Eu1z1401/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bDbwH8/btrAR7XugvZ/QDimkRrGZAkZY6Eu1z1401/img.jpg&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;83.jpg&quot; style=&quot;width: 32.5581%; margin-right: 10px; margin-top: 10px;&quot; data-widthpercent=&quot;33.33&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bDbwH8/btrAR7XugvZ/QDimkRrGZAkZY6Eu1z1401/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbDbwH8%2FbtrAR7XugvZ%2FQDimkRrGZAkZY6Eu1z1401%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cglAC7/btrASwDsZVy/ufHj8Sxxb62stCM5oHVHX1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cglAC7/btrASwDsZVy/ufHj8Sxxb62stCM5oHVHX1/img.jpg&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;84.jpg&quot; style=&quot;width: 32.5581%; margin-right: 10px; margin-top: 10px;&quot; data-widthpercent=&quot;33.33&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cglAC7/btrASwDsZVy/ufHj8Sxxb62stCM5oHVHX1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcglAC7%2FbtrASwDsZVy%2FufHj8Sxxb62stCM5oHVHX1%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cREGJ1/btrAR6K2UvP/EJMQ4ZgYYQO1Zx94bEf8SK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cREGJ1/btrAR6K2UvP/EJMQ4ZgYYQO1Zx94bEf8SK/img.jpg&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;85.jpg&quot; style=&quot;width: 32.5581%; margin-top: 10px;&quot; data-widthpercent=&quot;33.34&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cREGJ1/btrAR6K2UvP/EJMQ4ZgYYQO1Zx94bEf8SK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcREGJ1%2FbtrAR6K2UvP%2FEJMQ4ZgYYQO1Zx94bEf8SK%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/duW2oQ/btrAVtMz9su/NMExaNIuKQ2QG4a9ZMwafk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/duW2oQ/btrAVtMz9su/NMExaNIuKQ2QG4a9ZMwafk/img.jpg&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;86.jpg&quot; style=&quot;width: 49.4186%; margin-right: 10px; margin-top: 10px;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/duW2oQ/btrAVtMz9su/NMExaNIuKQ2QG4a9ZMwafk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FduW2oQ%2FbtrAVtMz9su%2FNMExaNIuKQ2QG4a9ZMwafk%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sVP6Z/btrAWALsHOB/WMdxNdXWX9pKgWTdNkcnPK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sVP6Z/btrAWALsHOB/WMdxNdXWX9pKgWTdNkcnPK/img.jpg&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;87.jpg&quot; style=&quot;width: 49.4186%; margin-top: 10px;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sVP6Z/btrAWALsHOB/WMdxNdXWX9pKgWTdNkcnPK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsVP6Z%2FbtrAWALsHOB%2FWMdxNdXWX9pKgWTdNkcnPK%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ebDiSR/btrAXChXcVX/wLkiBPZ2tGiJ4QKG045Ph1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ebDiSR/btrAXChXcVX/wLkiBPZ2tGiJ4QKG045Ph1/img.jpg&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;88.jpg&quot; style=&quot;width: 32.5581%; margin-right: 10px; margin-top: 10px;&quot; data-widthpercent=&quot;33.33&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ebDiSR/btrAXChXcVX/wLkiBPZ2tGiJ4QKG045Ph1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FebDiSR%2FbtrAXChXcVX%2FwLkiBPZ2tGiJ4QKG045Ph1%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bCqyqw/btrAXCbbYz4/RbOLjrvUZgKSKOzyKsKg90/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bCqyqw/btrAXCbbYz4/RbOLjrvUZgKSKOzyKsKg90/img.jpg&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;89.jpg&quot; style=&quot;width: 32.5581%; margin-right: 10px; margin-top: 10px;&quot; data-widthpercent=&quot;33.33&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bCqyqw/btrAXCbbYz4/RbOLjrvUZgKSKOzyKsKg90/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbCqyqw%2FbtrAXCbbYz4%2FRbOLjrvUZgKSKOzyKsKg90%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bZjAxt/btrATTkD64n/Iyn8gToTP7FEaqlA3cuOok/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bZjAxt/btrATTkD64n/Iyn8gToTP7FEaqlA3cuOok/img.jpg&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;90.jpg&quot; style=&quot;width: 32.5581%; margin-top: 10px;&quot; data-widthpercent=&quot;33.34&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bZjAxt/btrATTkD64n/Iyn8gToTP7FEaqlA3cuOok/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbZjAxt%2FbtrATTkD64n%2FIyn8gToTP7FEaqlA3cuOok%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;글쓰기인증&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&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;h3 data-ke-size=&quot;size23&quot;&gt;  이루어졌으면 하는 바램&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;span style=&quot;color: #f89009; --darkreader-inline-color: #f99b21;&quot; data-darkreader-inline-color=&quot;&quot;&gt;회사적응&lt;/span&gt; 및 &lt;span style=&quot;color: #f89009;&quot; data-darkreader-inline-color=&quot;&quot;&gt;업무파악&lt;/span&gt; 완벽히 하기&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Record/1Day 1Write</category>
      <category>100일글쓰기</category>
      <category>글쓰기</category>
      <category>인증</category>
      <author>변사부</author>
      <guid isPermaLink="true">https://enjoydevelop.tistory.com/126</guid>
      <comments>https://enjoydevelop.tistory.com/126#entry126comment</comments>
      <pubDate>Sun, 1 May 2022 00:15:53 +0900</pubDate>
    </item>
    <item>
      <title>  [Write] Day 71 ~ Day80</title>
      <link>https://enjoydevelop.tistory.com/125</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt; 인증&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pUAd5/btrydfSK6Th/RwOChR0jlkFLX97KOBp000/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pUAd5/btrydfSK6Th/RwOChR0jlkFLX97KOBp000/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;71.jpg&quot; style=&quot;width: 49.4186%; margin-right: 10px;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pUAd5/btrydfSK6Th/RwOChR0jlkFLX97KOBp000/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpUAd5%2FbtrydfSK6Th%2FRwOChR0jlkFLX97KOBp000%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bhMhlC/btryiHlYJNB/pMz0Qn8JKCvGabV5DWKFuK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhMhlC/btryiHlYJNB/pMz0Qn8JKCvGabV5DWKFuK/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;72.jpg&quot; style=&quot;width: 49.4186%;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhMhlC/btryiHlYJNB/pMz0Qn8JKCvGabV5DWKFuK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbhMhlC%2FbtryiHlYJNB%2FpMz0Qn8JKCvGabV5DWKFuK%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cF3i9u/btryeyRyiKR/EDDhOecGmUKUnkQqEPbWtK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cF3i9u/btryeyRyiKR/EDDhOecGmUKUnkQqEPbWtK/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;73.jpg&quot; style=&quot;width: 32.5581%; margin-right: 10px; margin-top: 10px;&quot; data-widthpercent=&quot;33.33&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cF3i9u/btryeyRyiKR/EDDhOecGmUKUnkQqEPbWtK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcF3i9u%2FbtryeyRyiKR%2FEDDhOecGmUKUnkQqEPbWtK%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oEI1i/btryeziDN0w/KrmzzVofNS9kqQS1WFm7p0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oEI1i/btryeziDN0w/KrmzzVofNS9kqQS1WFm7p0/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;74.jpg&quot; style=&quot;width: 32.5581%; margin-right: 10px; margin-top: 10px;&quot; data-widthpercent=&quot;33.33&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oEI1i/btryeziDN0w/KrmzzVofNS9kqQS1WFm7p0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoEI1i%2FbtryeziDN0w%2FKrmzzVofNS9kqQS1WFm7p0%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lkYKf/btryd9qYYEB/uDFdUWnEsGGcxQekkBzKq0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lkYKf/btryd9qYYEB/uDFdUWnEsGGcxQekkBzKq0/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;75.jpg&quot; style=&quot;width: 32.5581%; margin-top: 10px;&quot; data-widthpercent=&quot;33.34&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lkYKf/btryd9qYYEB/uDFdUWnEsGGcxQekkBzKq0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlkYKf%2Fbtryd9qYYEB%2FuDFdUWnEsGGcxQekkBzKq0%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TNIxR/btrydH2u6sv/ytuaGhK29g7fJ8JsAjUQXK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TNIxR/btrydH2u6sv/ytuaGhK29g7fJ8JsAjUQXK/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;76.jpg&quot; style=&quot;width: 49.4186%; margin-right: 10px; margin-top: 10px;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TNIxR/btrydH2u6sv/ytuaGhK29g7fJ8JsAjUQXK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTNIxR%2FbtrydH2u6sv%2FytuaGhK29g7fJ8JsAjUQXK%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bgIjYB/btrydfLYEhb/7oUne8ucJzDCgszmOCH6n1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bgIjYB/btrydfLYEhb/7oUne8ucJzDCgszmOCH6n1/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;77.jpg&quot; style=&quot;width: 49.4186%; margin-top: 10px;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bgIjYB/btrydfLYEhb/7oUne8ucJzDCgszmOCH6n1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbgIjYB%2FbtrydfLYEhb%2F7oUne8ucJzDCgszmOCH6n1%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Cca6u/btryg3iKoMS/ZpQ9rvLhZkwNqG2xb5AKM1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Cca6u/btryg3iKoMS/ZpQ9rvLhZkwNqG2xb5AKM1/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;78.jpg&quot; style=&quot;width: 32.5581%; margin-right: 10px; margin-top: 10px;&quot; data-widthpercent=&quot;33.33&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Cca6u/btryg3iKoMS/ZpQ9rvLhZkwNqG2xb5AKM1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCca6u%2Fbtryg3iKoMS%2FZpQ9rvLhZkwNqG2xb5AKM1%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/duNofJ/btryd9R1Ek9/awkMVnysXHnSuSQ03xzJK0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/duNofJ/btryd9R1Ek9/awkMVnysXHnSuSQ03xzJK0/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;79.jpg&quot; style=&quot;width: 32.5581%; margin-right: 10px; margin-top: 10px;&quot; data-widthpercent=&quot;33.33&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/duNofJ/btryd9R1Ek9/awkMVnysXHnSuSQ03xzJK0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FduNofJ%2Fbtryd9R1Ek9%2FawkMVnysXHnSuSQ03xzJK0%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/n5A3y/btryiHfc8OQ/G24Rmr9rd8wxz1eajeLSXk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/n5A3y/btryiHfc8OQ/G24Rmr9rd8wxz1eajeLSXk/img.jpg&quot; data-is-animation=&quot;undefined&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;80.jpg&quot; style=&quot;width: 32.5581%; margin-top: 10px;&quot; data-widthpercent=&quot;33.34&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/n5A3y/btryiHfc8OQ/G24Rmr9rd8wxz1eajeLSXk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fn5A3y%2FbtryiHfc8OQ%2FG24Rmr9rd8wxz1eajeLSXk%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;글쓰기인증&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt; 이루어졌으면 하는 바램&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;span style=&quot;color: #f89009; --darkreader-inline-color: #f99b21;&quot; data-darkreader-inline-color=&quot;&quot;&gt;회사적응&lt;/span&gt; 및 &lt;span style=&quot;color: #f89009;&quot; data-darkreader-inline-color=&quot;&quot;&gt;업무파악&lt;/span&gt; 완벽히 하기&lt;/blockquote&gt;</description>
      <category>Record/1Day 1Write</category>
      <category>100일글쓰기</category>
      <category>글쓰기</category>
      <category>인증</category>
      <author>변사부</author>
      <guid isPermaLink="true">https://enjoydevelop.tistory.com/125</guid>
      <comments>https://enjoydevelop.tistory.com/125#entry125comment</comments>
      <pubDate>Sat, 2 Apr 2022 19:55:42 +0900</pubDate>
    </item>
    <item>
      <title>  [Write] Day 61 ~ Day70</title>
      <link>https://enjoydevelop.tistory.com/124</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt; 인증&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bGiEcH/btrxj8yVi2f/0uCFwccuSqm9ZWX96qMMc1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bGiEcH/btrxj8yVi2f/0uCFwccuSqm9ZWX96qMMc1/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;61.jpg&quot; style=&quot;width: 49.4186%; margin-right: 10px;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bGiEcH/btrxj8yVi2f/0uCFwccuSqm9ZWX96qMMc1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbGiEcH%2Fbtrxj8yVi2f%2F0uCFwccuSqm9ZWX96qMMc1%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/btVMQ4/btrxkLpV4LD/mIvZF9kkC18BZcFzqpYhJ0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/btVMQ4/btrxkLpV4LD/mIvZF9kkC18BZcFzqpYhJ0/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;62.jpg&quot; style=&quot;width: 49.4186%;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/btVMQ4/btrxkLpV4LD/mIvZF9kkC18BZcFzqpYhJ0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbtVMQ4%2FbtrxkLpV4LD%2FmIvZF9kkC18BZcFzqpYhJ0%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cyr4gu/btrxjm5ctBy/7btepiMkTXx31ELh9XpU21/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cyr4gu/btrxjm5ctBy/7btepiMkTXx31ELh9XpU21/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;63.jpg&quot; style=&quot;width: 32.4659%; margin-right: 10px; margin-top: 10px;&quot; data-widthpercent=&quot;33.24&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cyr4gu/btrxjm5ctBy/7btepiMkTXx31ELh9XpU21/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcyr4gu%2Fbtrxjm5ctBy%2F7btepiMkTXx31ELh9XpU21%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cn3p6H/btrxjH9WVSz/IqUGgweYYDALAV69zw1dk1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cn3p6H/btrxjH9WVSz/IqUGgweYYDALAV69zw1dk1/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;64.jpg&quot; style=&quot;width: 32.4659%; margin-right: 10px; margin-top: 10px;&quot; data-widthpercent=&quot;33.24&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cn3p6H/btrxjH9WVSz/IqUGgweYYDALAV69zw1dk1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcn3p6H%2FbtrxjH9WVSz%2FIqUGgweYYDALAV69zw1dk1%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/baH4mz/btrxoXcBlEz/v7rlowmxwJ4xDB0afpiLkK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/baH4mz/btrxoXcBlEz/v7rlowmxwJ4xDB0afpiLkK/img.jpg&quot; data-origin-width=&quot;828&quot; data-origin-height=&quot;821&quot; data-filename=&quot;65.jpg&quot; style=&quot;width: 32.7427%; margin-top: 10px;&quot; data-widthpercent=&quot;33.52&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/baH4mz/btrxoXcBlEz/v7rlowmxwJ4xDB0afpiLkK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbaH4mz%2FbtrxoXcBlEz%2Fv7rlowmxwJ4xDB0afpiLkK%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;828&quot; height=&quot;821&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LgUdc/btrxiGW8L68/e3dpFsGyRbL6NpMjgAKucK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LgUdc/btrxiGW8L68/e3dpFsGyRbL6NpMjgAKucK/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;66.jpg&quot; style=&quot;width: 49.4186%; margin-right: 10px; margin-top: 10px;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LgUdc/btrxiGW8L68/e3dpFsGyRbL6NpMjgAKucK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLgUdc%2FbtrxiGW8L68%2Fe3dpFsGyRbL6NpMjgAKucK%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mT5UB/btrxjGpDCae/7KtDY1ozw4H55zkVxIVCR0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mT5UB/btrxjGpDCae/7KtDY1ozw4H55zkVxIVCR0/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;67.jpg&quot; style=&quot;width: 49.4186%; margin-top: 10px;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mT5UB/btrxjGpDCae/7KtDY1ozw4H55zkVxIVCR0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmT5UB%2FbtrxjGpDCae%2F7KtDY1ozw4H55zkVxIVCR0%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/blLPBK/btrxiF4ZQrN/yJgbgJ8a42pcw0BkuXKpI1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/blLPBK/btrxiF4ZQrN/yJgbgJ8a42pcw0BkuXKpI1/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;68.jpg&quot; style=&quot;width: 32.5581%; margin-right: 10px; margin-top: 10px;&quot; data-widthpercent=&quot;33.33&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/blLPBK/btrxiF4ZQrN/yJgbgJ8a42pcw0BkuXKpI1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FblLPBK%2FbtrxiF4ZQrN%2FyJgbgJ8a42pcw0BkuXKpI1%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wnGWI/btrxiwgIZk6/K1PHmNproRtHmPEFu3aGnK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wnGWI/btrxiwgIZk6/K1PHmNproRtHmPEFu3aGnK/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;69.jpg&quot; style=&quot;width: 32.5581%; margin-right: 10px; margin-top: 10px;&quot; data-widthpercent=&quot;33.33&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wnGWI/btrxiwgIZk6/K1PHmNproRtHmPEFu3aGnK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwnGWI%2FbtrxiwgIZk6%2FK1PHmNproRtHmPEFu3aGnK%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0a1DJ/btrxkJZUGH5/EpEB2DNgPJd3sHhRZQcPOK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0a1DJ/btrxkJZUGH5/EpEB2DNgPJd3sHhRZQcPOK/img.jpg&quot; data-is-animation=&quot;undefined&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;70.jpg&quot; style=&quot;width: 32.5581%; margin-top: 10px;&quot; data-widthpercent=&quot;33.34&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0a1DJ/btrxkJZUGH5/EpEB2DNgPJd3sHhRZQcPOK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0a1DJ%2FbtrxkJZUGH5%2FEpEB2DNgPJd3sHhRZQcPOK%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;글쓰기 인증&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt; 이루어졌으면 하는 바램&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;span style=&quot;color: #f3c000; --darkreader-inline-color: #ffd122;&quot; data-darkreader-inline-color=&quot;&quot;&gt;회사적응&lt;/span&gt; 및 &lt;span style=&quot;color: #f3c000;&quot; data-darkreader-inline-color=&quot;&quot;&gt;업무파악&lt;/span&gt; 완벽히 하기&lt;/blockquote&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;의도 &amp;gt; 행동 &amp;gt; 반복성 &amp;gt; 자동성&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>Record/1Day 1Write</category>
      <category>글쓰기</category>
      <category>인증</category>
      <author>변사부</author>
      <guid isPermaLink="true">https://enjoydevelop.tistory.com/124</guid>
      <comments>https://enjoydevelop.tistory.com/124#entry124comment</comments>
      <pubDate>Sat, 26 Mar 2022 13:40:27 +0900</pubDate>
    </item>
    <item>
      <title>  [Write] Day 51 ~ Day60</title>
      <link>https://enjoydevelop.tistory.com/123</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt; 인증&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bMGuX4/btrv6kGxp1a/UbRNfZKsnKqgbhtu3dO1Z1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bMGuX4/btrv6kGxp1a/UbRNfZKsnKqgbhtu3dO1Z1/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;51.jpg&quot; style=&quot;width: 49.4186%; margin-right: 10px;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bMGuX4/btrv6kGxp1a/UbRNfZKsnKqgbhtu3dO1Z1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbMGuX4%2Fbtrv6kGxp1a%2FUbRNfZKsnKqgbhtu3dO1Z1%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Gz210/btrvZIu6Rsc/4WiGuBKApPeUdUBcZBRekK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Gz210/btrvZIu6Rsc/4WiGuBKApPeUdUBcZBRekK/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;52.jpg&quot; style=&quot;width: 49.4186%;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Gz210/btrvZIu6Rsc/4WiGuBKApPeUdUBcZBRekK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGz210%2FbtrvZIu6Rsc%2F4WiGuBKApPeUdUBcZBRekK%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FG8CT/btrv6cPnLLR/OZMaXRUxAtwKJPYl0cUKe1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FG8CT/btrv6cPnLLR/OZMaXRUxAtwKJPYl0cUKe1/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;53.jpg&quot; style=&quot;width: 32.5581%; margin-right: 10px; margin-top: 10px;&quot; data-widthpercent=&quot;33.33&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FG8CT/btrv6cPnLLR/OZMaXRUxAtwKJPYl0cUKe1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFG8CT%2Fbtrv6cPnLLR%2FOZMaXRUxAtwKJPYl0cUKe1%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/A4u1E/btrvX7vmD8p/hkK7srP9rbwIaDe4aXT621/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/A4u1E/btrvX7vmD8p/hkK7srP9rbwIaDe4aXT621/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;54.jpg&quot; style=&quot;width: 32.5581%; margin-right: 10px; margin-top: 10px;&quot; data-widthpercent=&quot;33.33&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/A4u1E/btrvX7vmD8p/hkK7srP9rbwIaDe4aXT621/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FA4u1E%2FbtrvX7vmD8p%2FhkK7srP9rbwIaDe4aXT621%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ciHiOR/btrv6YJ7Jed/qE2goXGuVwLJEK4pGcuxh1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ciHiOR/btrv6YJ7Jed/qE2goXGuVwLJEK4pGcuxh1/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;55.jpg&quot; style=&quot;width: 32.5581%; margin-top: 10px;&quot; data-widthpercent=&quot;33.34&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ciHiOR/btrv6YJ7Jed/qE2goXGuVwLJEK4pGcuxh1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FciHiOR%2Fbtrv6YJ7Jed%2FqE2goXGuVwLJEK4pGcuxh1%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FJcP8/btrv6YJ7Jom/Cm2DQGkebRQ5sELUqfoYmK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FJcP8/btrv6YJ7Jom/Cm2DQGkebRQ5sELUqfoYmK/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;56.jpg&quot; style=&quot;width: 49.4186%; margin-right: 10px; margin-top: 10px;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FJcP8/btrv6YJ7Jom/Cm2DQGkebRQ5sELUqfoYmK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFJcP8%2Fbtrv6YJ7Jom%2FCm2DQGkebRQ5sELUqfoYmK%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bPvq3t/btrv2FL5ezf/qyzvgVuSddbZhi6UrGBmyK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bPvq3t/btrv2FL5ezf/qyzvgVuSddbZhi6UrGBmyK/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;57.jpg&quot; style=&quot;width: 49.4186%; margin-top: 10px;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bPvq3t/btrv2FL5ezf/qyzvgVuSddbZhi6UrGBmyK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbPvq3t%2Fbtrv2FL5ezf%2FqyzvgVuSddbZhi6UrGBmyK%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/npmnj/btrvVLznMr5/sQAdZoBTqcE9O2keWCkqhk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/npmnj/btrvVLznMr5/sQAdZoBTqcE9O2keWCkqhk/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;58.jpg&quot; style=&quot;width: 32.5581%; margin-right: 10px; margin-top: 10px;&quot; data-widthpercent=&quot;33.33&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/npmnj/btrvVLznMr5/sQAdZoBTqcE9O2keWCkqhk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fnpmnj%2FbtrvVLznMr5%2FsQAdZoBTqcE9O2keWCkqhk%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cG8rZU/btrv6WS4isG/3AMexxp41KOeALtVpVTBC1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cG8rZU/btrv6WS4isG/3AMexxp41KOeALtVpVTBC1/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;59.jpg&quot; style=&quot;width: 32.5581%; margin-right: 10px; margin-top: 10px;&quot; data-widthpercent=&quot;33.33&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cG8rZU/btrv6WS4isG/3AMexxp41KOeALtVpVTBC1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcG8rZU%2Fbtrv6WS4isG%2F3AMexxp41KOeALtVpVTBC1%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bpaRKK/btrvZI20LHZ/8w7xOvN2lfmp1UFHqtWS20/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bpaRKK/btrvZI20LHZ/8w7xOvN2lfmp1UFHqtWS20/img.jpg&quot; data-is-animation=&quot;undefined&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;60.jpg&quot; style=&quot;width: 32.5581%; margin-top: 10px;&quot; data-widthpercent=&quot;33.34&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bpaRKK/btrvZI20LHZ/8w7xOvN2lfmp1UFHqtWS20/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbpaRKK%2FbtrvZI20LHZ%2F8w7xOvN2lfmp1UFHqtWS20%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;글쓰기 인증&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt; 이루어졌으면 하는 바램&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;완벽한 &lt;span style=&quot;color: #f3c000;&quot; data-darkreader-inline-color=&quot;&quot;&gt;업무파악&lt;span style=&quot;background-color: #151617; color: #aba499;&quot; data-darkreader-inline-bgcolor=&quot;&quot; data-darkreader-inline-color=&quot;&quot;&gt;과&lt;/span&gt;&amp;nbsp;인간관계&lt;/span&gt;&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;평범한 머리를 가지고 있다면 반복만이 답이다&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>Record/1Day 1Write</category>
      <category>글쓰기</category>
      <author>변사부</author>
      <guid isPermaLink="true">https://enjoydevelop.tistory.com/123</guid>
      <comments>https://enjoydevelop.tistory.com/123#entry123comment</comments>
      <pubDate>Tue, 15 Mar 2022 21:05:20 +0900</pubDate>
    </item>
    <item>
      <title>  [Write] Day 41 ~ Day50</title>
      <link>https://enjoydevelop.tistory.com/122</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt; 인증&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dyw7VT/btruKiDznf6/3HSvkePw9eMjOGOYXfsZ51/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dyw7VT/btruKiDznf6/3HSvkePw9eMjOGOYXfsZ51/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;41.jpg&quot; style=&quot;width: 49.4186%; margin-right: 10px;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dyw7VT/btruKiDznf6/3HSvkePw9eMjOGOYXfsZ51/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdyw7VT%2FbtruKiDznf6%2F3HSvkePw9eMjOGOYXfsZ51%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/SZ2bB/btrurxa4g9H/e1KoebPjjNUnxoIbHGsTkk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/SZ2bB/btrurxa4g9H/e1KoebPjjNUnxoIbHGsTkk/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;42.jpg&quot; style=&quot;width: 49.4186%;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/SZ2bB/btrurxa4g9H/e1KoebPjjNUnxoIbHGsTkk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSZ2bB%2Fbtrurxa4g9H%2Fe1KoebPjjNUnxoIbHGsTkk%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dwElto/btruKjP2Ye8/KwmlkUSS5QT0vmPrYgP3Lk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dwElto/btruKjP2Ye8/KwmlkUSS5QT0vmPrYgP3Lk/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;43.jpg&quot; style=&quot;width: 32.5581%; margin-right: 10px; margin-top: 10px;&quot; data-widthpercent=&quot;33.33&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dwElto/btruKjP2Ye8/KwmlkUSS5QT0vmPrYgP3Lk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdwElto%2FbtruKjP2Ye8%2FKwmlkUSS5QT0vmPrYgP3Lk%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bzNfsE/btruyOLf0MU/ue8yTnp4mf1oU2h5AjxwU0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bzNfsE/btruyOLf0MU/ue8yTnp4mf1oU2h5AjxwU0/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;44.jpg&quot; style=&quot;width: 32.5581%; margin-right: 10px; margin-top: 10px;&quot; data-widthpercent=&quot;33.33&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bzNfsE/btruyOLf0MU/ue8yTnp4mf1oU2h5AjxwU0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbzNfsE%2FbtruyOLf0MU%2Fue8yTnp4mf1oU2h5AjxwU0%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ldXSK/btruHwI5MvC/uRYiu0pZgLuy3YYJgjJGO1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ldXSK/btruHwI5MvC/uRYiu0pZgLuy3YYJgjJGO1/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;45.jpg&quot; style=&quot;width: 32.5581%; margin-top: 10px;&quot; data-widthpercent=&quot;33.34&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ldXSK/btruHwI5MvC/uRYiu0pZgLuy3YYJgjJGO1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FldXSK%2FbtruHwI5MvC%2FuRYiu0pZgLuy3YYJgjJGO1%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c2OrJF/btruDCceiYj/pTXMgy10iEmvUTpB5ZpjW1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c2OrJF/btruDCceiYj/pTXMgy10iEmvUTpB5ZpjW1/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;46.jpg&quot; style=&quot;width: 49.4186%; margin-right: 10px; margin-top: 10px;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c2OrJF/btruDCceiYj/pTXMgy10iEmvUTpB5ZpjW1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc2OrJF%2FbtruDCceiYj%2FpTXMgy10iEmvUTpB5ZpjW1%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bc0s68/btruBa74gj0/VrRcxboWVmBRYk7KaAyVrk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bc0s68/btruBa74gj0/VrRcxboWVmBRYk7KaAyVrk/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;47.jpg&quot; style=&quot;width: 49.4186%; margin-top: 10px;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bc0s68/btruBa74gj0/VrRcxboWVmBRYk7KaAyVrk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbc0s68%2FbtruBa74gj0%2FVrRcxboWVmBRYk7KaAyVrk%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3mria/btrup8JlTnQ/5hZIczOxVmuYh4zCZM5zI1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3mria/btrup8JlTnQ/5hZIczOxVmuYh4zCZM5zI1/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;48.jpg&quot; style=&quot;width: 32.5581%; margin-right: 10px; margin-top: 10px;&quot; data-widthpercent=&quot;33.33&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3mria/btrup8JlTnQ/5hZIczOxVmuYh4zCZM5zI1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3mria%2Fbtrup8JlTnQ%2F5hZIczOxVmuYh4zCZM5zI1%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dKuUFd/btruG0DIbMD/jxi0EITCy93WAIj7d89Kjk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dKuUFd/btruG0DIbMD/jxi0EITCy93WAIj7d89Kjk/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;49.jpg&quot; style=&quot;width: 32.5581%; margin-right: 10px; margin-top: 10px;&quot; data-widthpercent=&quot;33.33&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dKuUFd/btruG0DIbMD/jxi0EITCy93WAIj7d89Kjk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdKuUFd%2FbtruG0DIbMD%2Fjxi0EITCy93WAIj7d89Kjk%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/1hWqM/btruAjbYgyI/A2epVS04mp55uNhDei8xf1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/1hWqM/btruAjbYgyI/A2epVS04mp55uNhDei8xf1/img.jpg&quot; data-is-animation=&quot;undefined&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;50.jpg&quot; style=&quot;width: 32.5581%; margin-top: 10px;&quot; data-widthpercent=&quot;33.34&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/1hWqM/btruAjbYgyI/A2epVS04mp55uNhDei8xf1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1hWqM%2FbtruAjbYgyI%2FA2epVS04mp55uNhDei8xf1%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;글쓰기 인증&lt;/figcaption&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;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt; 이루어졌으면 하는 바램&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;회사에서의 빠른 &lt;span style=&quot;color: #f3c000;&quot; data-darkreader-inline-color=&quot;&quot;&gt;적응&lt;/span&gt;와 &lt;span style=&quot;color: #f3c000; --darkreader-inline-color: #ffd122;&quot; data-darkreader-inline-color=&quot;&quot;&gt;SQLD 자격증&lt;/span&gt; 취득&lt;/blockquote&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;/li&gt;
&lt;/ul&gt;</description>
      <category>Record/1Day 1Write</category>
      <category>글쓰기</category>
      <category>도전</category>
      <category>인증</category>
      <author>변사부</author>
      <guid isPermaLink="true">https://enjoydevelop.tistory.com/122</guid>
      <comments>https://enjoydevelop.tistory.com/122#entry122comment</comments>
      <pubDate>Mon, 28 Feb 2022 21:26:31 +0900</pubDate>
    </item>
    <item>
      <title>  [Write] Day 31 ~ Day40</title>
      <link>https://enjoydevelop.tistory.com/121</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt; 인증&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cQmBIn/btrtKDQzggv/pC7CAC7CKueH4m4pkFidOK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cQmBIn/btrtKDQzggv/pC7CAC7CKueH4m4pkFidOK/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;31일.jpg&quot; style=&quot;width: 49.4186%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cQmBIn/btrtKDQzggv/pC7CAC7CKueH4m4pkFidOK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcQmBIn%2FbtrtKDQzggv%2FpC7CAC7CKueH4m4pkFidOK%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdFsZA/btrtOze41TH/x8orECFqzs6gnhtKCDO3i0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdFsZA/btrtOze41TH/x8orECFqzs6gnhtKCDO3i0/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;32일.jpg&quot; style=&quot;width: 49.4186%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdFsZA/btrtOze41TH/x8orECFqzs6gnhtKCDO3i0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdFsZA%2FbtrtOze41TH%2Fx8orECFqzs6gnhtKCDO3i0%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NOzGK/btrtQoEG1oI/9Ftx811SfIV8UmA3QhjAjK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NOzGK/btrtQoEG1oI/9Ftx811SfIV8UmA3QhjAjK/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;33일.jpg&quot; style=&quot;width: 32.5581%; margin-right: 10px; margin-top: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NOzGK/btrtQoEG1oI/9Ftx811SfIV8UmA3QhjAjK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNOzGK%2FbtrtQoEG1oI%2F9Ftx811SfIV8UmA3QhjAjK%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bMmMUH/btrtITNbCqT/RX8qTf82zrEKqgjKTRVr21/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bMmMUH/btrtITNbCqT/RX8qTf82zrEKqgjKTRVr21/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;34일.jpg&quot; style=&quot;width: 32.5581%; margin-right: 10px; margin-top: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bMmMUH/btrtITNbCqT/RX8qTf82zrEKqgjKTRVr21/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbMmMUH%2FbtrtITNbCqT%2FRX8qTf82zrEKqgjKTRVr21%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Pugrg/btrtKHLumXk/aAjh09RWXBIQ5pytRqYKd0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Pugrg/btrtKHLumXk/aAjh09RWXBIQ5pytRqYKd0/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;35일.jpg&quot; style=&quot;width: 32.5581%; margin-top: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Pugrg/btrtKHLumXk/aAjh09RWXBIQ5pytRqYKd0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPugrg%2FbtrtKHLumXk%2FaAjh09RWXBIQ5pytRqYKd0%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/VIi6L/btrtOz0rXDm/cT8V5rUSJSu20Q0nOoSsK0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/VIi6L/btrtOz0rXDm/cT8V5rUSJSu20Q0nOoSsK0/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;36일.jpg&quot; style=&quot;width: 49.4186%; margin-right: 10px; margin-top: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/VIi6L/btrtOz0rXDm/cT8V5rUSJSu20Q0nOoSsK0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVIi6L%2FbtrtOz0rXDm%2FcT8V5rUSJSu20Q0nOoSsK0%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Ypgyl/btrtNR8pUqg/jmN3XiZFhdev94HG7iBwS0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Ypgyl/btrtNR8pUqg/jmN3XiZFhdev94HG7iBwS0/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;37일.jpg&quot; style=&quot;width: 49.4186%; margin-top: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Ypgyl/btrtNR8pUqg/jmN3XiZFhdev94HG7iBwS0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYpgyl%2FbtrtNR8pUqg%2FjmN3XiZFhdev94HG7iBwS0%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KONEx/btrtIOK7eMJ/abX5WpNM3iXekK9nhe1QoK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KONEx/btrtIOK7eMJ/abX5WpNM3iXekK9nhe1QoK/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;38일.jpg&quot; style=&quot;width: 32.5581%; margin-right: 10px; margin-top: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KONEx/btrtIOK7eMJ/abX5WpNM3iXekK9nhe1QoK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKONEx%2FbtrtIOK7eMJ%2FabX5WpNM3iXekK9nhe1QoK%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bcshEL/btrtREf6fgj/zopTsZleoIKdP8jPY4e5v0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bcshEL/btrtREf6fgj/zopTsZleoIKdP8jPY4e5v0/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;39일.jpg&quot; style=&quot;width: 32.5581%; margin-right: 10px; margin-top: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bcshEL/btrtREf6fgj/zopTsZleoIKdP8jPY4e5v0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbcshEL%2FbtrtREf6fgj%2FzopTsZleoIKdP8jPY4e5v0%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cZiDFl/btrtMJW7zvt/6NS3y3a4JfypW9TeVuzvvK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cZiDFl/btrtMJW7zvt/6NS3y3a4JfypW9TeVuzvvK/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;40일.jpg&quot; style=&quot;width: 32.5581%; margin-top: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cZiDFl/btrtMJW7zvt/6NS3y3a4JfypW9TeVuzvvK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcZiDFl%2FbtrtMJW7zvt%2F6NS3y3a4JfypW9TeVuzvvK%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;글쓰기 인증&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt; 인증&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;회사에서의 빠른 &lt;span style=&quot;color: #f3c000;&quot; data-darkreader-inline-color=&quot;&quot;&gt;적응&lt;/span&gt;과 &lt;span style=&quot;color: #f3c000; --darkreader-inline-color: #ffd122;&quot; data-darkreader-inline-color=&quot;&quot;&gt;SQLD&lt;/span&gt; 자격증 취득&lt;/blockquote&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;/li&gt;
&lt;/ul&gt;</description>
      <category>Record/1Day 1Write</category>
      <category>글쓰기</category>
      <category>도전</category>
      <category>인증</category>
      <author>변사부</author>
      <guid isPermaLink="true">https://enjoydevelop.tistory.com/121</guid>
      <comments>https://enjoydevelop.tistory.com/121#entry121comment</comments>
      <pubDate>Sun, 20 Feb 2022 17:37:41 +0900</pubDate>
    </item>
    <item>
      <title>  [Write] Day 21 ~ Day30</title>
      <link>https://enjoydevelop.tistory.com/120</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt; 인증&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bBRLTp/btrsYdRrb3t/Yoe0TkbqXLxQsWeNiXm1kK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bBRLTp/btrsYdRrb3t/Yoe0TkbqXLxQsWeNiXm1kK/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-is-animation=&quot;undefined&quot; data-filename=&quot;21.jpg&quot; style=&quot;width: 49.4186%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bBRLTp/btrsYdRrb3t/Yoe0TkbqXLxQsWeNiXm1kK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbBRLTp%2FbtrsYdRrb3t%2FYoe0TkbqXLxQsWeNiXm1kK%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cR7hEZ/btrsY8Cj5sl/9570WfUnoTE0jnteG0stN0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cR7hEZ/btrsY8Cj5sl/9570WfUnoTE0jnteG0stN0/img.jpg&quot; data-is-animation=&quot;undefined&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;22.jpg&quot; style=&quot;width: 49.4186%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cR7hEZ/btrsY8Cj5sl/9570WfUnoTE0jnteG0stN0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcR7hEZ%2FbtrsY8Cj5sl%2F9570WfUnoTE0jnteG0stN0%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bHP6x2/btrsUcGbXCu/0SYN3aLZBLXplbNiAAcTd1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bHP6x2/btrsUcGbXCu/0SYN3aLZBLXplbNiAAcTd1/img.jpg&quot; data-is-animation=&quot;undefined&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;23.jpg&quot; style=&quot;width: 32.5581%; margin-right: 10px; margin-top: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bHP6x2/btrsUcGbXCu/0SYN3aLZBLXplbNiAAcTd1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbHP6x2%2FbtrsUcGbXCu%2F0SYN3aLZBLXplbNiAAcTd1%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/UFjDa/btrsWLnMoVG/I6Sh5vjg0UG7I8hGI2shO1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/UFjDa/btrsWLnMoVG/I6Sh5vjg0UG7I8hGI2shO1/img.jpg&quot; data-is-animation=&quot;undefined&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;24.jpg&quot; style=&quot;width: 32.5581%; margin-right: 10px; margin-top: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/UFjDa/btrsWLnMoVG/I6Sh5vjg0UG7I8hGI2shO1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUFjDa%2FbtrsWLnMoVG%2FI6Sh5vjg0UG7I8hGI2shO1%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dDSkJd/btrsYb68ixU/pL2ukt3k8kzPU5EAdEI40k/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dDSkJd/btrsYb68ixU/pL2ukt3k8kzPU5EAdEI40k/img.jpg&quot; data-is-animation=&quot;undefined&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;25.jpg&quot; style=&quot;width: 32.5581%; margin-top: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dDSkJd/btrsYb68ixU/pL2ukt3k8kzPU5EAdEI40k/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdDSkJd%2FbtrsYb68ixU%2FpL2ukt3k8kzPU5EAdEI40k%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bob4vN/btrsW9WfQBB/PWlWpT2e3X9xLgtg1URdv0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bob4vN/btrsW9WfQBB/PWlWpT2e3X9xLgtg1URdv0/img.jpg&quot; data-is-animation=&quot;undefined&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;26.jpg&quot; style=&quot;width: 49.4186%; margin-right: 10px; margin-top: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bob4vN/btrsW9WfQBB/PWlWpT2e3X9xLgtg1URdv0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbob4vN%2FbtrsW9WfQBB%2FPWlWpT2e3X9xLgtg1URdv0%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bBTq3Z/btrsTcflIyp/xd6X3S2Jy37VOGMc2Pt0ok/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bBTq3Z/btrsTcflIyp/xd6X3S2Jy37VOGMc2Pt0ok/img.jpg&quot; data-is-animation=&quot;undefined&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;27.jpg&quot; style=&quot;width: 49.4186%; margin-top: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bBTq3Z/btrsTcflIyp/xd6X3S2Jy37VOGMc2Pt0ok/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbBTq3Z%2FbtrsTcflIyp%2Fxd6X3S2Jy37VOGMc2Pt0ok%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/drdllk/btrsW9aUWPq/I4AICWxMAwizIkokFKkyG1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/drdllk/btrsW9aUWPq/I4AICWxMAwizIkokFKkyG1/img.jpg&quot; data-is-animation=&quot;undefined&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;28.jpg&quot; style=&quot;width: 32.5581%; margin-right: 10px; margin-top: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/drdllk/btrsW9aUWPq/I4AICWxMAwizIkokFKkyG1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdrdllk%2FbtrsW9aUWPq%2FI4AICWxMAwizIkokFKkyG1%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/F676e/btrsY65zY2I/kHMYOftfCJS5iXG2uKSYlk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/F676e/btrsY65zY2I/kHMYOftfCJS5iXG2uKSYlk/img.jpg&quot; data-is-animation=&quot;undefined&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;29.jpg&quot; style=&quot;width: 32.5581%; margin-right: 10px; margin-top: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/F676e/btrsY65zY2I/kHMYOftfCJS5iXG2uKSYlk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FF676e%2FbtrsY65zY2I%2FkHMYOftfCJS5iXG2uKSYlk%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sUifi/btrsSbON6Ji/MFgN5a8XQdLbffe0bPSjg1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sUifi/btrsSbON6Ji/MFgN5a8XQdLbffe0bPSjg1/img.jpg&quot; data-is-animation=&quot;undefined&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;30.jpg&quot; style=&quot;width: 32.5581%; margin-top: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sUifi/btrsSbON6Ji/MFgN5a8XQdLbffe0bPSjg1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsUifi%2FbtrsSbON6Ji%2FMFgN5a8XQdLbffe0bPSjg1%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;글쓰기 인증&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt; 이루어졌으면 하는 바램&lt;/h3&gt;
&lt;h3 id=&quot;%F-%-F%--%-D%EC%-D%B-%EB%A-%A-%EC%--%B-%EC%A-%-C%EC%-C%BC%EB%A-%B-%--%ED%--%--%EB%-A%--%--%EB%B-%--%EB%-E%A-&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;회사에서의 빠른&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #f3c000;&quot; data-darkreader-inline-color=&quot;&quot;&gt;적응&lt;/span&gt;과&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #f3c000;&quot; data-darkreader-inline-color=&quot;&quot;&gt;SQLD 자격증&lt;/span&gt;&amp;nbsp;취득&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;습관으로 이어지지 않으면 사람은 잘 바뀌지 않는다.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;</description>
      <category>Record/1Day 1Write</category>
      <category>글쓰기</category>
      <category>인증</category>
      <author>변사부</author>
      <guid isPermaLink="true">https://enjoydevelop.tistory.com/120</guid>
      <comments>https://enjoydevelop.tistory.com/120#entry120comment</comments>
      <pubDate>Wed, 9 Feb 2022 20:31:38 +0900</pubDate>
    </item>
    <item>
      <title>  [Write] Day 11 ~ Day20</title>
      <link>https://enjoydevelop.tistory.com/119</link>
      <description>&lt;h3 id=&quot;%F-%-F%--%-D%EC%-D%B-%EC%A-%-D&quot; data-ke-size=&quot;size23&quot;&gt; 인증&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/egup4f/btrr9fvGv87/fWXhROm3JZmVlc7mPPyT00/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/egup4f/btrr9fvGv87/fWXhROm3JZmVlc7mPPyT00/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;11.jpg&quot; style=&quot;width: 49.4186%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/egup4f/btrr9fvGv87/fWXhROm3JZmVlc7mPPyT00/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fegup4f%2Fbtrr9fvGv87%2FfWXhROm3JZmVlc7mPPyT00%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/WzuW2/btrr3iNkH24/UoQrqO2I9D92zlFIMKrGfk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/WzuW2/btrr3iNkH24/UoQrqO2I9D92zlFIMKrGfk/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;12.jpg&quot; style=&quot;width: 49.4186%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/WzuW2/btrr3iNkH24/UoQrqO2I9D92zlFIMKrGfk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWzuW2%2Fbtrr3iNkH24%2FUoQrqO2I9D92zlFIMKrGfk%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/VdNfQ/btrr3kdjtHM/XkQky7B0cCN4qn4iKcDvyK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/VdNfQ/btrr3kdjtHM/XkQky7B0cCN4qn4iKcDvyK/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;13.jpg&quot; style=&quot;width: 32.5581%; margin-right: 10px; margin-top: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/VdNfQ/btrr3kdjtHM/XkQky7B0cCN4qn4iKcDvyK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVdNfQ%2Fbtrr3kdjtHM%2FXkQky7B0cCN4qn4iKcDvyK%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dVv8oh/btrr11yMTXH/VKO6ImF0Ya8rqw3UbaBNnk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dVv8oh/btrr11yMTXH/VKO6ImF0Ya8rqw3UbaBNnk/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;14.jpg&quot; style=&quot;width: 32.5581%; margin-right: 10px; margin-top: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dVv8oh/btrr11yMTXH/VKO6ImF0Ya8rqw3UbaBNnk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdVv8oh%2Fbtrr11yMTXH%2FVKO6ImF0Ya8rqw3UbaBNnk%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bpDpAJ/btrr6AUfZus/WZ74VsPj0e7aGfbOXVlguk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bpDpAJ/btrr6AUfZus/WZ74VsPj0e7aGfbOXVlguk/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;15.jpg&quot; style=&quot;width: 32.5581%; margin-top: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bpDpAJ/btrr6AUfZus/WZ74VsPj0e7aGfbOXVlguk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbpDpAJ%2Fbtrr6AUfZus%2FWZ74VsPj0e7aGfbOXVlguk%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/4udQ1/btrr17F9eFJ/kHpmOYKpapBAovtZaTK0G0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/4udQ1/btrr17F9eFJ/kHpmOYKpapBAovtZaTK0G0/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;16.jpg&quot; style=&quot;width: 49.4186%; margin-right: 10px; margin-top: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/4udQ1/btrr17F9eFJ/kHpmOYKpapBAovtZaTK0G0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4udQ1%2Fbtrr17F9eFJ%2FkHpmOYKpapBAovtZaTK0G0%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kxnSO/btrr1MCd0ce/zH5Aq4eFV70ZIBQk1Eu9gk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kxnSO/btrr1MCd0ce/zH5Aq4eFV70ZIBQk1Eu9gk/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;17.jpg&quot; style=&quot;width: 49.4186%; margin-top: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kxnSO/btrr1MCd0ce/zH5Aq4eFV70ZIBQk1Eu9gk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkxnSO%2Fbtrr1MCd0ce%2FzH5Aq4eFV70ZIBQk1Eu9gk%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/baMb8g/btrr11MmWCM/geEVOUm0iD4AqSdtvSTu8k/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/baMb8g/btrr11MmWCM/geEVOUm0iD4AqSdtvSTu8k/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;18.jpg&quot; style=&quot;width: 32.5581%; margin-right: 10px; margin-top: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/baMb8g/btrr11MmWCM/geEVOUm0iD4AqSdtvSTu8k/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbaMb8g%2Fbtrr11MmWCM%2FgeEVOUm0iD4AqSdtvSTu8k%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cHpl24/btrr035bqoN/8CqCCuASuW02jBv3q0Dzr1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cHpl24/btrr035bqoN/8CqCCuASuW02jBv3q0Dzr1/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;19.jpg&quot; style=&quot;width: 32.5581%; margin-right: 10px; margin-top: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cHpl24/btrr035bqoN/8CqCCuASuW02jBv3q0Dzr1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcHpl24%2Fbtrr035bqoN%2F8CqCCuASuW02jBv3q0Dzr1%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c8s4oN/btrr1JE8uXV/0va4MKB8Mxfl1swvEOfvg0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c8s4oN/btrr1JE8uXV/0va4MKB8Mxfl1swvEOfvg0/img.jpg&quot; data-is-animation=&quot;undefined&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;20.jpg&quot; style=&quot;width: 32.5581%; margin-top: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c8s4oN/btrr1JE8uXV/0va4MKB8Mxfl1swvEOfvg0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc8s4oN%2Fbtrr1JE8uXV%2F0va4MKB8Mxfl1swvEOfvg0%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;글쓰기 인증&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;%F-%-F%--%-D%EC%-D%B-%EC%A-%-D&quot; data-ke-size=&quot;size23&quot;&gt; 이루어졌으면 하는 바램&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;회사에서의 빠른 &lt;span style=&quot;color: #f3c000; --darkreader-inline-color: #ffd122;&quot; data-darkreader-inline-color=&quot;&quot;&gt;적응&lt;/span&gt;과 &lt;span style=&quot;color: #f3c000;&quot; data-darkreader-inline-color=&quot;&quot;&gt;SQLD 자격증&lt;/span&gt;&amp;nbsp;취득&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;글로 쓴 내용은 반드시 이루어진다. 아니 이루어졌다.&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>Record/1Day 1Write</category>
      <category>글쓰기</category>
      <category>끈기</category>
      <category>바램</category>
      <category>인증</category>
      <author>변사부</author>
      <guid isPermaLink="true">https://enjoydevelop.tistory.com/119</guid>
      <comments>https://enjoydevelop.tistory.com/119#entry119comment</comments>
      <pubDate>Sun, 30 Jan 2022 14:56:24 +0900</pubDate>
    </item>
    <item>
      <title>  [Write] Day 1 ~ Day10</title>
      <link>https://enjoydevelop.tistory.com/118</link>
      <description>&lt;h3 id=&quot;%F-%-F%--%A-%----%EC%-D%BC%EC%B-%A-%---%--%EB%A-%--%EC%A-%--%EB%A-%--%--%EC%-D%B-%EC%A-%-D&quot; data-ke-size=&quot;size23&quot;&gt; 인증&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/btCUOY/btrruofyYGi/SqEFzkkmkLJVfjBf3NYlTK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/btCUOY/btrruofyYGi/SqEFzkkmkLJVfjBf3NYlTK/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-is-animation=&quot;undefined&quot; data-filename=&quot;1일.jpg&quot; style=&quot;width: 49.4186%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/btCUOY/btrruofyYGi/SqEFzkkmkLJVfjBf3NYlTK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbtCUOY%2FbtrruofyYGi%2FSqEFzkkmkLJVfjBf3NYlTK%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b9a8Ku/btrrqZ1FuEy/W7zJTFxwA4JSSOaaosYZP1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b9a8Ku/btrrqZ1FuEy/W7zJTFxwA4JSSOaaosYZP1/img.jpg&quot; data-is-animation=&quot;undefined&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;2일.jpg&quot; style=&quot;width: 49.4186%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b9a8Ku/btrrqZ1FuEy/W7zJTFxwA4JSSOaaosYZP1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb9a8Ku%2FbtrrqZ1FuEy%2FW7zJTFxwA4JSSOaaosYZP1%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bQDqRp/btrrqnIumXZ/3asR9qE7PzFIyBg9DzADn1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bQDqRp/btrrqnIumXZ/3asR9qE7PzFIyBg9DzADn1/img.jpg&quot; data-is-animation=&quot;undefined&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;3일.jpg&quot; style=&quot;width: 32.5581%; margin-right: 10px; margin-top: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bQDqRp/btrrqnIumXZ/3asR9qE7PzFIyBg9DzADn1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbQDqRp%2FbtrrqnIumXZ%2F3asR9qE7PzFIyBg9DzADn1%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cJeLft/btrrumWlCS2/5NnVNikKjy4PbahYII6Vf0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cJeLft/btrrumWlCS2/5NnVNikKjy4PbahYII6Vf0/img.jpg&quot; data-is-animation=&quot;undefined&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;4일.jpg&quot; style=&quot;width: 32.5581%; margin-right: 10px; margin-top: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cJeLft/btrrumWlCS2/5NnVNikKjy4PbahYII6Vf0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcJeLft%2FbtrrumWlCS2%2F5NnVNikKjy4PbahYII6Vf0%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bWduBn/btrroFDkHjj/CfTlk4LtLq60WmUckVmXoK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bWduBn/btrroFDkHjj/CfTlk4LtLq60WmUckVmXoK/img.jpg&quot; data-is-animation=&quot;undefined&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;5일.jpg&quot; style=&quot;width: 32.5581%; margin-top: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bWduBn/btrroFDkHjj/CfTlk4LtLq60WmUckVmXoK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbWduBn%2FbtrroFDkHjj%2FCfTlk4LtLq60WmUckVmXoK%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/88KWo/btrroWY9NWA/SSKysFno7vxvynwKfH72t1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/88KWo/btrroWY9NWA/SSKysFno7vxvynwKfH72t1/img.jpg&quot; data-is-animation=&quot;undefined&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;6일.jpg&quot; style=&quot;width: 49.597%; margin-right: 10px; margin-top: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/88KWo/btrroWY9NWA/SSKysFno7vxvynwKfH72t1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F88KWo%2FbtrroWY9NWA%2FSSKysFno7vxvynwKfH72t1%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bCGYxg/btrrqmCQj2u/mL3st5Rs46qOhI5pixlMMk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bCGYxg/btrrqmCQj2u/mL3st5Rs46qOhI5pixlMMk/img.jpg&quot; data-is-animation=&quot;undefined&quot; data-origin-width=&quot;828&quot; data-origin-height=&quot;834&quot; data-filename=&quot;7일.jpg&quot; style=&quot;width: 49.2402%; margin-top: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bCGYxg/btrrqmCQj2u/mL3st5Rs46qOhI5pixlMMk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbCGYxg%2FbtrrqmCQj2u%2FmL3st5Rs46qOhI5pixlMMk%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;828&quot; height=&quot;834&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xfXZx/btrroFi5fpR/pMcMxD7zkhuT30pukBlhp0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xfXZx/btrroFi5fpR/pMcMxD7zkhuT30pukBlhp0/img.jpg&quot; data-is-animation=&quot;undefined&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;8일.jpg&quot; style=&quot;width: 32.5581%; margin-right: 10px; margin-top: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xfXZx/btrroFi5fpR/pMcMxD7zkhuT30pukBlhp0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxfXZx%2FbtrroFi5fpR%2FpMcMxD7zkhuT30pukBlhp0%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/JLuNR/btrroW50kXo/izB5iYKS2XNktSeq8EckmK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JLuNR/btrroW50kXo/izB5iYKS2XNktSeq8EckmK/img.jpg&quot; data-is-animation=&quot;undefined&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;9일.jpg&quot; style=&quot;width: 32.5581%; margin-right: 10px; margin-top: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JLuNR/btrroW50kXo/izB5iYKS2XNktSeq8EckmK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJLuNR%2FbtrroW50kXo%2FizB5iYKS2XNktSeq8EckmK%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b7SNWg/btrrpmJ5VYs/KysobMKp95EHVKzllGh1Qk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b7SNWg/btrrpmJ5VYs/KysobMKp95EHVKzllGh1Qk/img.jpg&quot; data-is-animation=&quot;undefined&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;10일.jpg&quot; style=&quot;width: 32.5581%; margin-top: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b7SNWg/btrrpmJ5VYs/KysobMKp95EHVKzllGh1Qk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb7SNWg%2FbtrrpmJ5VYs%2FKysobMKp95EHVKzllGh1Qk%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;1080&quot; height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;글쓰기 인증&lt;/figcaption&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;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  이루어졌으면 하는 바램&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;회사에서의 빠른 &lt;span style=&quot;color: #f3c000;&quot; data-darkreader-inline-color=&quot;&quot;&gt;적응&lt;/span&gt;과 &lt;span style=&quot;color: #f3c000; --darkreader-inline-color: #ffd122;&quot; data-darkreader-inline-color=&quot;&quot;&gt;SQLD 자격증&lt;/span&gt; 취득&lt;/blockquote&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;/li&gt;
&lt;li&gt;글로 쓴 내용은 반드시 이루어진다. 아니 이루어졌다.&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>Record/1Day 1Write</category>
      <category>글쓰기</category>
      <category>끈기</category>
      <category>바램</category>
      <category>인증</category>
      <author>변사부</author>
      <guid isPermaLink="true">https://enjoydevelop.tistory.com/118</guid>
      <comments>https://enjoydevelop.tistory.com/118#entry118comment</comments>
      <pubDate>Sat, 22 Jan 2022 17:14:27 +0900</pubDate>
    </item>
    <item>
      <title>⛔ [Spring] org.springframework.beans.factory.BeanCreationException</title>
      <link>https://enjoydevelop.tistory.com/117</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;  오류메세지&lt;/h2&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot; data-darkreader-inline-color=&quot;&quot;&gt;org.springframework.beans.factory.BeanCreationException&lt;/span&gt;: Error creating bean with name 'dataSource' defined in file xxx: BeanPostProcessor before instantiation of bean failed; xxxFailed to introspect Class [org.springframework.aop.aspectj.AspectJExpressionPointcut] from ClassLoader [ParallelWebappClassLoader&lt;/b&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/149251086-7e078961-2318-4546-8338-ae6d5ec97c1c.jpg&quot; alt=&quot;에러내용&quot; /&gt;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;  원인&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;트랜잭션 설정 과정 중 pom.xml의 aspectj의 설정 문제&lt;/li&gt;
&lt;/ul&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;aspetj의 artifactId를 변경한다. (&lt;b&gt;asepctjrt &amp;gt; aspectweaver&lt;/b&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[pom.xml 수정 전]&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/149251079-d1027525-9451-442a-b21e-db17c96d678f.jpg&quot; alt=&quot;pom xml 파일&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;[pom.xml 수정 후]&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/149251080-9d70cddc-cd95-4a9a-9148-99667f4f64ec.jpg&quot; alt=&quot;pom xml 파일변경 후&quot; /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1642039638904&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!-- AspectJ Weaver --&amp;gt;
&amp;lt;dependency&amp;gt;
    &amp;lt;groupId&amp;gt;org.aspectj&amp;lt;/groupId&amp;gt;
    &amp;lt;artifactId&amp;gt;aspectjweaver&amp;lt;/artifactId&amp;gt;
    &amp;lt;version&amp;gt;${org.aspectj-version}&amp;lt;/version&amp;gt;
&amp;lt;/dependency&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;[pom.xml 수정 후 메이븐 update]&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/149251088-d3e857f3-c380-4347-9ab9-4f8452208467.jpg&quot; alt=&quot;적용&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;[tx-context.xml]&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/149251085-f43e2cb3-ba31-4efd-983a-5ea42568d2b3.jpg&quot; alt=&quot;tx-context xml 파일&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;[해결완료]&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/149251091-61a1285e-7ca5-4728-910a-7910591382ca.jpg&quot; alt=&quot;해결완료&quot; /&gt;&lt;/p&gt;</description>
      <category>Error/Spring</category>
      <category>AspectJ</category>
      <category>BeanCreationException</category>
      <category>Spring</category>
      <category>Transaction</category>
      <category>트랜잭션</category>
      <author>변사부</author>
      <guid isPermaLink="true">https://enjoydevelop.tistory.com/117</guid>
      <comments>https://enjoydevelop.tistory.com/117#entry117comment</comments>
      <pubDate>Thu, 13 Jan 2022 11:00:56 +0900</pubDate>
    </item>
    <item>
      <title>⛔ Oracle DB의 날짜 데이터 출력 시 null발생 + 날짜 포맷 변경</title>
      <link>https://enjoydevelop.tistory.com/116</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;  오류메세지&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/148865702-4430918f-0ccf-4ddc-bb55-ee83f895ab3f.jpg&quot; alt=&quot;null문제&quot; /&gt;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;  원인&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;DB에 date로 넣은 값을 자바 객체에서 꺼낼 때, null을 반환하는 현상&lt;/li&gt;
&lt;li&gt;DB에 등록일을 나타내는 REG_DT를 설정하였고 자바 DTO에서는 registeredDate로 설정하였는데 테스트를 하던 도중 date 값이 null이 들어오는 현상발견&lt;/li&gt;
&lt;li&gt;DB column과 자바 property간의 mapping 불일치&lt;/li&gt;
&lt;li&gt;날짜 출력시 포멧이 원하는대로 나오지 않았다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;  해결책&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DB는 snake_case인데 자바는 camelCase이다. 그렇다면 camelCase로 받을 수 있게 설정하면 되겠다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DB로부터 Query는 성공적으로 수행했지만, 결과를 DTO에 넣지 못하여 내용은 null이 된 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;가장 단순하게는 mapper query에서 별명을 주는 것이다.&lt;/li&gt;
&lt;li&gt;mybatis-config.xml에 &lt;code&gt;&amp;lt;setting name=&quot;mapUnderscoreToCamelCase&quot; value=&quot;true&quot; /&amp;gt;&lt;/code&gt; 추가&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[mybatis-config.xml 수정]&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;mybatis-config configuration에서 typeAliases와 settings를 동시에 쓸 수 없어서 typeAliases(패키지명을 포함한 DTO를 쓰지 않게끔 생략가능하게 별명을 붙인다.)를 사용하였고&lt;/li&gt;
&lt;li&gt;settings의 mapUnderscoreTocamelCase(DB의 언더바를 자바 camelCase랑 호환시킨다.) 대신에 boardMapper.xml의 쿼리문에 DTO와 같은 별명을 부여하였다&lt;/li&gt;
&lt;li&gt;boardMapper.xml 코드는 아래에 있다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/148865698-5ef5f2e0-7f86-462d-bdf7-755d623444e6.jpg&quot; alt=&quot;mybatis-config에서의 오류&quot; /&gt;&lt;/p&gt;
&lt;pre class=&quot;dust&quot;&gt;&lt;code&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;
&amp;lt;!DOCTYPE configuration
  PUBLIC &quot;-//mybatis.org//DTD Config 3.0//EN&quot;
  &quot;http://mybatis.org/dtd/mybatis-3-config.dtd&quot;&amp;gt;
&amp;lt;configuration&amp;gt;

  &amp;lt;typeAliases&amp;gt;
    &amp;lt;package name=&quot;com.oneday.bms.board.dto&quot;/&amp;gt;
  &amp;lt;/typeAliases&amp;gt;

  &amp;lt;mappers&amp;gt;
      &amp;lt;package name=&quot;com.oneday.bms.board.dao&quot;/&amp;gt;
  &amp;lt;/mappers&amp;gt;

&amp;lt;/configuration&amp;gt;

&amp;lt;!--
  &amp;lt;settings&amp;gt;
       &amp;lt;setting name=&quot;mapUnderscoreToCamelCase&quot; value=&quot;true&quot; /&amp;gt;
        &amp;lt;setting name=&quot;callSettersOnNulls&quot; value=&quot;false&quot;/&amp;gt;
        &amp;lt;setting name=&quot;jdbcTypeForNull&quot; value=&quot;NULL&quot;/&amp;gt;
   &amp;lt;/settings&amp;gt;
    --&amp;gt;
&amp;lt;!-- callSettersOnNulls true: 쿼리 결과 필드가 null인 경우, 누락이 되서 나오는데 누락이 안되게 하는 설정--&amp;gt;
&amp;lt;!-- jdbcTypeForNull 쿼리에 보내는 파라미터가 null인 경우, 오류 발생하는 것 방지  예) #{search.user} --&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;[BoardDAOTest.java 수정 전]&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/148865708-0015b29f-f4c6-4daf-b1aa-d989b008bde3.jpg&quot; alt=&quot;테스트케이스&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;[BoardDAOTest.java 수정 후]&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/148866633-81488337-6922-47b1-b38e-01ea6173c66f.jpg&quot; alt=&quot;오류코드&quot; /&gt;&lt;/p&gt;
&lt;pre class=&quot;pgsql&quot;&gt;&lt;code&gt;@Test
    public void testGetBoardContent() throws Exception {
        BoardDTO boardDTO = boardDAO.getBoardContent(1);
        logger.info(&quot;boardContent = {}&quot;, boardDTO);

        if (boardDTO != null) {
            logger.info(&quot;번호 : {}&quot;, boardDTO.getId());
            logger.info(&quot;제목: {}&quot;, boardDTO.getTitle());
            logger.info(&quot;내용 : {}&quot;, boardDTO.getContent());
            logger.info(&quot;카테고리 : {}&quot;, boardDTO.getCategory());
            logger.info(&quot;태그 : {}&quot;, boardDTO.getTag());
            logger.info(&quot;조회수 : {}&quot;, boardDTO.getViewCount());
            logger.info(&quot;작성자 : {}&quot;, boardDTO.getWriter());
            logger.info(&quot;작성일 : {}&quot;, boardDTO.getRegDate());
            logger.info(&quot;수정일 : {}&quot;, boardDTO.getEditDate());
        } else {
            logger.info(&quot;데이터가 없습니다&quot;);
        }

    }&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;날짜 포멧은 어떻게 나타낼까?&lt;/h3&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;br /&gt;&lt;a href=&quot;https://okky.kr/article/807824&quot;&gt;https://okky.kr/article/807824&lt;/a&gt; 에서나랑 똑같은 고민을 하고 계신분이 있었다.&lt;/p&gt;
&lt;figure id=&quot;og_1641868357991&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;OKKY | Spring 오라클에서 날짜 출력 시, Wed May 06 00:00:00 KST 2020 와 같은 형식으로 나옵니다. 해결방법&quot; data-og-description=&quot;오라클에서 Data형식의 데이터를 받아서 뷰에 뿌려주고 있는데요. 오라클에서는 start_date 필드가 20/05/06 이렇게 저장이 되고, 뷰에서는 c:out value로 뿌려줬습니다. 출력된 결과를 보면 오라클에 저&quot; data-og-host=&quot;okky.kr&quot; data-og-source-url=&quot;https://okky.kr/article/807824&quot; data-og-url=&quot;https://okky.kr/article/807824&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/czDghn/hyM2Vkdbqa/UzLkbumd9mkcvPSNEzxX40/img.png?width=200&amp;amp;height=200&amp;amp;face=0_0_200_200&quot;&gt;&lt;a href=&quot;https://okky.kr/article/807824&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://okky.kr/article/807824&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/czDghn/hyM2Vkdbqa/UzLkbumd9mkcvPSNEzxX40/img.png?width=200&amp;amp;height=200&amp;amp;face=0_0_200_200');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;OKKY | Spring 오라클에서 날짜 출력 시, Wed May 06 00:00:00 KST 2020 와 같은 형식으로 나옵니다. 해결방법&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;오라클에서 Data형식의 데이터를 받아서 뷰에 뿌려주고 있는데요. 오라클에서는 start_date 필드가 20/05/06 이렇게 저장이 되고, 뷰에서는 c:out value로 뿌려줬습니다. 출력된 결과를 보면 오라클에 저&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;okky.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/148870533-679368f7-655c-4ea6-9c27-9bad5dbaf9f2.jpg&quot; alt=&quot;결과1&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;해결 방법은 2가지가 있다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;SELECT TO_CHAR(start_date, 'YY/MM/DD') FROM TABLE 와 같이&lt;br /&gt;date 타입을 char 타입으로 변환해서 값을 가져오는 방법&lt;/li&gt;
&lt;/ol&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;기존에 있던 DTO 타입을 String으로 수정&lt;/li&gt;
&lt;/ul&gt;
&lt;ol style=&quot;list-style-type: disc;&quot; start=&quot;2&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Date 타입을 유지하고 싶다면 JSTL fmt를 사용해도 되고 자바 로직자체로 형변환된 값을 뷰로 넘겨주는 방법&lt;/li&gt;
&lt;/ol&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번 방법을 사용해서 문제를 해결하기로 하고 DTO의 타입을 Date에서 String으로 변경하였다.&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;[BoardDTO.java 수정 전]&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/148865706-a706cb62-7052-42d9-bc06-fef79098c8fd.jpg&quot; alt=&quot;자바dto&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;[BoardDTO.java 수정 후]&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/148865705-b9450579-b8db-4bf2-8c3b-dceadb51017f.jpg&quot; alt=&quot;자바dto string으로 변경&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;DTO 변경에 따라서 xml도 수정이 필요했고 Oracle 날짜 변환 문법 중 TO_CHAR(reg_date, 'YY/MM/DD')를 사용하였다.&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;[boardMapper.xml 수정]&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/148865700-ece08993-e128-4e7f-a561-013feb346817.jpg&quot; alt=&quot;mybatis-config에서의 해결방법&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;[날짜 포멧팅을 위한 boardMapper.xml 수정]&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/148865697-4e5f43ab-bd2f-44b7-8363-b09dbfc5baf4.jpg&quot; alt=&quot;mapper에 to char추가&quot; /&gt;&lt;/p&gt;
&lt;pre class=&quot;xml&quot;&gt;&lt;code&gt;&amp;lt;!-- DAO 자동생성 --&amp;gt;
&amp;lt;mapper namespace=&quot;com.oneday.bms.board.dao.BoardDAO&quot;&amp;gt;

    &amp;lt;select id=&quot;getBoardList&quot; resultType=&quot;BoardDTO&quot;&amp;gt;

        SELECT
            id,
            category,
            title,
            content,
            tag,
            view_count viewCount,
            writer,
            TO_CHAR(reg_date, 'YY/MM/DD') regDate,
            TO_CHAR(edit_date, 'YY/MM/DD') editDate
        FROM
            bms_board
        ORDER BY
            id DESC

    &amp;lt;/select&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[날짜 포멧팅 후 결과]&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/148870536-c55ee262-af06-4e3f-b188-f670d43fb62f.jpg&quot; alt=&quot;결과2&quot; /&gt;&lt;/p&gt;</description>
      <category>Error/Database</category>
      <category>MyBatis</category>
      <category>Oracle</category>
      <category>날짜</category>
      <category>날짜null</category>
      <category>연결</category>
      <category>포맷</category>
      <author>변사부</author>
      <guid isPermaLink="true">https://enjoydevelop.tistory.com/116</guid>
      <comments>https://enjoydevelop.tistory.com/116#entry116comment</comments>
      <pubDate>Tue, 11 Jan 2022 11:35:55 +0900</pubDate>
    </item>
    <item>
      <title>⛔ ORA-12514: listener does not currently know of service requested in connect descriptor</title>
      <link>https://enjoydevelop.tistory.com/115</link>
      <description>&lt;h2&gt;  오류메세지&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;ORA-12514: listener does not currently know of service requested in connect descriptor&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;JUnit으로 DB Connection을 테스트하는 도중 에러가 발생했다.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/148500770-85feb860-7d2b-4aa2-afc4-0b259baae2a1.jpg&quot; alt=&quot;에러내용&quot;&gt;&lt;/p&gt;
&lt;h3&gt;&amp;lt; 오류코드 &amp;gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;  OracleConnectionTest.java&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/148500772-49b409f5-4994-4a4e-86cd-edbf07a42bcd.jpg&quot; alt=&quot;코드&quot;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;  dataSource.xml&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/148500764-f5ed3c1e-3886-40ef-8bc7-5e413d71b72c.jpg&quot; alt=&quot;에러 해결 1&quot;&gt;&lt;/p&gt;
&lt;h2&gt;  원인&lt;/h2&gt;
&lt;p&gt;✔️ 1. dataSource url의 SERVICE_NAME 불일치&lt;br&gt;✔️ 2. Oracle Database url 정보 오타&lt;br&gt;✔️ 3. logger 출력 포멧 실수&lt;/p&gt;
&lt;p&gt;오라클의 SID, SERVICE_NAME은 대소문자를 반드시 구분하여 기술해야 한다.&lt;/p&gt;
&lt;h2&gt;  해결책&lt;/h2&gt;
&lt;p&gt;✔️ 1. dataSource url의 SERVICE_NAME 불일치&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;  listener.ora 파일 확인&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/148500755-208e5a3a-b5e2-4c7b-95e2-3cbfc47b5f47.jpg&quot; alt=&quot;listener&quot;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;  tnsnames.ora 파일 확인&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/148500759-bb98359f-bbd8-47c1-ba95-bc1f8024824b.jpg&quot; alt=&quot;tnsnames&quot;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;  SqlDeveloper 확인&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/148500767-ae3baaa6-e50d-47b2-b5ec-0d84763c4dd2.jpg&quot; alt=&quot;에러 해결 2&quot;&gt;&lt;/p&gt;
&lt;p&gt;✔️ 2. Oracle Database url 정보 오타 (여기서 실수)&lt;/p&gt;
&lt;p&gt;mysql의 url방식과 햇갈려서 맨뒤에 DB이름을 적어버리고 말았다&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;Oracle Database url 정보
driver = oracle.jdbc.driver.OracleDriver
url = jdbc:oracle:driver_type:[username/password]@[//]host_name[:port][/XE]&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/148500764-f5ed3c1e-3886-40ef-8bc7-5e413d71b72c.jpg&quot; alt=&quot;에러 해결 1&quot;&gt;&lt;/p&gt;
&lt;p&gt;해결한 줄 알았는데 ??...&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/148500762-e3b74717-e6ef-4929-aa0c-8f11958f03cf.jpg&quot; alt=&quot;로그포멧 실수&quot;&gt;&lt;/p&gt;
&lt;p&gt;con 객체가 안넘어온다. 뭐지..?&lt;br&gt;확인해보니&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/148500763-a067d04d-768c-429d-a671-114549b61717.jpg&quot; alt=&quot;로그포멧 실수2&quot;&gt;&lt;/p&gt;
&lt;p&gt;아주 멍청한 실수를 했다.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;logger.info(String msg);
logger.info(String format, Object arg);&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;2번째 방법을 해주려면 포멧팅 {}을 써줘야한다는것을 잊었다.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/148500773-c4630282-2303-4f2f-a1ab-05afa46f004d.jpg&quot; alt=&quot;해결&quot;&gt;&lt;/p&gt;
&lt;p&gt;교훈 : 꺼진불도 다시보자&lt;/p&gt;</description>
      <category>Error/Database</category>
      <category>DATABASE</category>
      <category>DB</category>
      <category>ora-12514</category>
      <category>Oracle</category>
      <category>오라클</category>
      <author>변사부</author>
      <guid isPermaLink="true">https://enjoydevelop.tistory.com/115</guid>
      <comments>https://enjoydevelop.tistory.com/115#entry115comment</comments>
      <pubDate>Fri, 7 Jan 2022 15:34:29 +0900</pubDate>
    </item>
    <item>
      <title>  [2021회고록] GoodBye 2021 Welcome 2022</title>
      <link>https://enjoydevelop.tistory.com/114</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #c3e88d; --darkreader-inline-color: #bfe685;&quot; data-darkreader-inline-color=&quot;&quot;&gt;   &lt;/span&gt;&lt;span style=&quot;color: #ffcb6b; --darkreader-inline-color: #ffc964;&quot; data-darkreader-inline-color=&quot;&quot;&gt;2021 회고록&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20211231_221103055.jpg&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;3023&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/boWLNY/btrpmf1clNC/OdfZBzicO4j1gVMiwJzz1K/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/boWLNY/btrpmf1clNC/OdfZBzicO4j1gVMiwJzz1K/img.jpg&quot; data-alt=&quot;2021.12.31의 마지막 산책길에서&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/boWLNY/btrpmf1clNC/OdfZBzicO4j1gVMiwJzz1K/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FboWLNY%2Fbtrpmf1clNC%2FOdfZBzicO4j1gVMiwJzz1K%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;860&quot; height=&quot;860&quot; data-filename=&quot;KakaoTalk_20211231_221103055.jpg&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;3023&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;2021.12.31의 마지막 산책길에서&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #ffcb6b; --darkreader-inline-color: #ffc964; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot; data-darkreader-inline-color=&quot;&quot;&gt;  2021년을 한 문장으로 표현한다면?&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #8a3db6;&quot; data-darkreader-inline-color=&quot;&quot;&gt;&amp;nbsp;&quot;새로운 출발선상에 서다&quot;&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #ffcb6b; --darkreader-inline-color: #ffc964;&quot; data-darkreader-inline-color=&quot;&quot;&gt;  2021년의 키워드&lt;/span&gt;&lt;/span&gt;&lt;/h3&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;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;도전&lt;/b&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;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;두려움&lt;/b&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;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;끈기&lt;/b&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;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;배움&lt;/b&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;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;확신&lt;/b&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #c3e88d; --darkreader-inline-color: #bfe685;&quot; data-darkreader-inline-color=&quot;&quot;&gt; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #ffcb6b; --darkreader-inline-color: #ffc964;&quot; data-darkreader-inline-color=&quot;&quot;&gt;2021년의 문장&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #8a3db6;&quot; data-darkreader-inline-color=&quot;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&quot;내가 얻는 보상은 항상 내가 제공하는 가치와 비례한다&quot;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #ffcb6b; --darkreader-inline-color: #ffc964;&quot; data-darkreader-inline-color=&quot;&quot;&gt; &amp;nbsp;이전 직장의 퇴사&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;div&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot; data-darkreader-inline-color=&quot;&quot;&gt;2020년 초반 코로나가 시작되었습니다. 외부 활동은 제한되었고 자취를 하고 있었던 저는 집에 혼자 있을 시간이 많아지게 되었죠. 역설적이게도 이때 진로에 대한 고민과 앞으로의 삶에 대한 고민을 깊게 할 수 있는 시간이 되었습니다.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot; data-darkreader-inline-color=&quot;&quot;&gt;이후 2020년부터 영상을 시작하였고 올해 2월까지 강사로서 활동하였습니다. 아르바이트를 제외한 저의 첫 직장(?)이라고 할 수 있었고 좋은 동료들을 만날 수 있었습니다.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot; data-darkreader-inline-color=&quot;&quot;&gt;강사활동 이외에도 공모전 준비, 뮤직비디오 촬영, 카페 홍보영상 제작, 유튜브 촬영 등 다양한 경험을 할 수 있었고 이러한 경험은 제 시야를 넓혀주었습니다.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot; data-darkreader-inline-color=&quot;&quot;&gt;좋았던 기억들은 뒤로하고 2월에 퇴사를 결심하게 됩니다. 경기도로 이사해 올라오게 되면서 더 이상 직장을 다닐 수 없었고 코로나의 장기화로 인한 비대면 활동의 증가는 저에게 하여금 진로에 대한 고민을 하게 만들었죠.&lt;/span&gt;&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #ffcb6b; --darkreader-inline-color: #ffc964;&quot; data-darkreader-inline-color=&quot;&quot;&gt; &amp;nbsp;개발자로 진로 변경&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;div&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot; data-darkreader-inline-color=&quot;&quot;&gt;진로를 왜 개발자로 변경하게 되었는가?라는 물음에 저는 이렇게 대답할 수 있을 것 같습니다.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot; data-darkreader-inline-color=&quot;&quot;&gt;첫 번째로 아버지의 영향이 컸습니다. 아무래도 IT직종에서 PM이라는 역할을 맡으셨기 때문에 회사의 전반적인 워크플로우에 대해 알고 있었고 든든한 조력자가 되어줄 수 있다고 생각했습니다.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot; data-darkreader-inline-color=&quot;&quot;&gt;두 번째는 영상이라는 업종과 상당히 닮은 부분이 많았기 때문입니다.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot; data-darkreader-inline-color=&quot;&quot;&gt;개발이라는 직종의 매력은 연차가 쌓일수록 기술력을 확보하면서 전문성을 쌓을 수 있고 지식 공유를 통해 남과 소통할 수 있으며 무엇보다도 비대면 시대에서 경쟁력이 강한 업종이라고 생각했습니다.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&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: #eeffff; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; letter-spacing: 0px; --darkreader-inline-color: #c0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;개발자로 진로를 변경하면서 드는 생각이 있었습니다. 나는 10년 뒤에 어떤 모습으로 있을 것인가를 생각했을 때 유일하게 확신을 가질 수 있는 직종이기도 했습니다.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot; data-darkreader-inline-color=&quot;&quot;&gt;여담이지만 롯데타워에서 저녁으로 스테이크를 썰며 야경을 바라보는 저의 모습, 한강이 보이는 집에서 노래를 들으며 여유로운 밤을 보내는 상상을 자주 하곤 합니다.&lt;/span&gt;&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #ffcb6b; --darkreader-inline-color: #ffc964;&quot; data-darkreader-inline-color=&quot;&quot;&gt; &amp;nbsp;교육 전 무엇을 했는가?&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;div&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #89ddff; --darkreader-inline-color: #79d9ff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;1.&lt;/span&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt; 타자연습 시작&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #c0ffff; --darkreader-inline-color: #a0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;a href=&quot;https://www.speedcoder.net/lessons/&quot;&gt;https://www.speedcoder.net/lessons/&lt;/a&gt;&lt;/span&gt;
&lt;figure id=&quot;og_1640954426238&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Typing Practice for Programmers | SpeedCoder&quot; data-og-description=&quot;&quot; data-og-host=&quot;www.speedcoder.net&quot; data-og-source-url=&quot;https://www.speedcoder.net/lessons/&quot; data-og-url=&quot;https://www.speedcoder.net/lessons/&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://www.speedcoder.net/lessons/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.speedcoder.net/lessons/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Typing Practice for Programmers | SpeedCoder&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.speedcoder.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot; data-darkreader-inline-color=&quot;&quot;&gt;개발자는 컴퓨터를 다루어야 하는 직종인 만큼 키보드를 사용하는 일이 많을 것이며 타자 연습을 해놓아야겠다고 생각했습니다. 저는 전형적인 독수리 타법을 구사하는 사람이었습니다. 타자 속도도 느렸고 키보드를 보지 않고는 타자를 칠 수 없었습니다. 현재는 독수리 타법을 완전히 고쳤고 키보드를 보지 않고도 타자를 칠 수 있게 되었습니다.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot; data-darkreader-inline-color=&quot;&quot;&gt;스피드코더라는 사이트에서 매일 연습했고 시간이 길던 짧던 매일매일 하려고 노력했습니다.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot; data-darkreader-inline-color=&quot;&quot;&gt;&lt;/span&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1119&quot; data-origin-height=&quot;653&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/di1WSR/btrpq8ttpF1/naXNxYXmdAaS1hfNwtmY30/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/di1WSR/btrpq8ttpF1/naXNxYXmdAaS1hfNwtmY30/img.png&quot; data-alt=&quot;기록들&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/di1WSR/btrpq8ttpF1/naXNxYXmdAaS1hfNwtmY30/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdi1WSR%2Fbtrpq8ttpF1%2FnaXNxYXmdAaS1hfNwtmY30%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;500&quot; height=&quot;292&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1119&quot; data-origin-height=&quot;653&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;기록들&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #89ddff; --darkreader-inline-color: #79d9ff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;2.&lt;/span&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt; 국민취업지원제도 신청&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot; data-darkreader-inline-color=&quot;&quot;&gt;개발에 대한 공부를 하는 데 있어 독학은 무리라고 판단하였고 알아보던 도중 국민 취업지원 제도라는 것을 발견했고 신청을 하였습니다. 신청 결과 2유형으로 최종 결정되어 진행할 수 있게 되었습니다.&lt;/span&gt;&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #89ddff; --darkreader-inline-color: #79d9ff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;3.&lt;/span&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt; 정보처리기사 준비&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot; data-darkreader-inline-color=&quot;&quot;&gt;개발 관련 지식을 쌓기를 원했고 이후 취업에도 도움이 될 자격증이여서 준비하게 되었습니다.&lt;/span&gt;&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #89ddff; --darkreader-inline-color: #79d9ff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;4.&lt;/span&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt; 자바의 정석, 생활코딩&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot; data-darkreader-inline-color=&quot;&quot;&gt;아무래도 아무런 지식 없이 교육을 받기에 무리가 있다고 판단하여 교육기간 전에 정보처리기사 필기 준비와 자바의 정석 동영상 강의, 생활코딩 동영상 강의를 수강하였습니다. 모든 영상을 보진 못하였지만 웬만한 강의는 다 듣을 수 있었고 감을 익히는 데 도움이 많이 되었습니다.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #89ddff; --darkreader-inline-color: #79d9ff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;5.&lt;/span&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt; 비트캠프 면접&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot; data-darkreader-inline-color=&quot;&quot;&gt;국비 학원 중 비트캠프, KH정보교육원, 쌍용교육센터를 고민하였고 최종적으로 비트캠프에서 면접을 보게 되었습니다.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot; data-darkreader-inline-color=&quot;&quot;&gt;면접 도중 정보처리기사를 준비하고 있다고 말했더니 면접관님이 아마 교육과정이랑 병행해서 따기 힘들 거라고 답을 주셨는데 당당하게 합격했습니다.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot; data-darkreader-inline-color=&quot;&quot;&gt;면접 때 수강할 반에 대한 설명을 들었고 처음 선택했던 반과 다른 반을 수강하게 되었습니다.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot; data-darkreader-inline-color=&quot;&quot;&gt;처음 반은 프론트와 백엔드의 비중이 6:4였고 파이썬이 10% 포함되어 있었는데 현재 듣게 된 반은 프론트와 백엔드의 비중이 4:6였고 파이썬이 포함되어 있지 않았기 때문에 변경하게 되었습니다.&lt;/span&gt;&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #ffcb6b; --darkreader-inline-color: #ffc964;&quot; data-darkreader-inline-color=&quot;&quot;&gt; &amp;nbsp;비트캠프 개발자과정 수강&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;div&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #89ddff; --darkreader-inline-color: #79d9ff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt; 나는 왜 국비지원을 선택하게 되었는가?&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://enjoydevelop.tistory.com/5?category=940037&quot;&gt;https://enjoydevelop.tistory.com/5?category=940037&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1640954800178&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;✨내가 국비 학원을 선택할 수밖에 없었던 이유&quot; data-og-description=&quot;  왜 하필 국비 학원? 저는 코딩을 얼마 배우지 않은 코린이&amp;#96;입니다. 이런 제가 큰 고민에 빠졌습니다. 도대체 어떤 방향으로 가야 하고 무슨 공부를 해야 할까?   이 부분에 대해서는 아버지&quot; data-og-host=&quot;enjoydevelop.tistory.com&quot; data-og-source-url=&quot;https://enjoydevelop.tistory.com/5?category=940037&quot; data-og-url=&quot;https://enjoydevelop.tistory.com/5&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cLhgW6/hyMUYfL2zv/fJaqtaXYVyFrQsVZDFPru0/img.jpg?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/l247z/hyMU8imtCU/YFPCAOaYaU6pwqgf5ypwR1/img.jpg?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/bbirwt/hyMU5zaTwA/kBghKxMdTsDe0kP9tmWtz1/img.jpg?width=1920&amp;amp;height=1273&amp;amp;face=0_0_1920_1273&quot;&gt;&lt;a href=&quot;https://enjoydevelop.tistory.com/5?category=940037&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://enjoydevelop.tistory.com/5?category=940037&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cLhgW6/hyMUYfL2zv/fJaqtaXYVyFrQsVZDFPru0/img.jpg?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/l247z/hyMU8imtCU/YFPCAOaYaU6pwqgf5ypwR1/img.jpg?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/bbirwt/hyMU5zaTwA/kBghKxMdTsDe0kP9tmWtz1/img.jpg?width=1920&amp;amp;height=1273&amp;amp;face=0_0_1920_1273');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;✨내가 국비 학원을 선택할 수밖에 없었던 이유&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;  왜 하필 국비 학원? 저는 코딩을 얼마 배우지 않은 코린이`입니다. 이런 제가 큰 고민에 빠졌습니다. 도대체 어떤 방향으로 가야 하고 무슨 공부를 해야 할까?   이 부분에 대해서는 아버지&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;enjoydevelop.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot; data-darkreader-inline-color=&quot;&quot;&gt;처음부터 대면 수업을 하지는 않았고 인터넷 강의로 cs 전반적인 지식을 익힌 후 1주일 뒤 본 수업이 진행되었고 초반 2주는 거리 두기 상향이 되지 않아서 전원 대면 수업을 진행했지만 코로나 악화로 인한 거리 두기 상향으로 인해 이후에는 대면 반 비대면 반으로 격일로 돌아가며 수업이 진행되었습니다.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot; data-darkreader-inline-color=&quot;&quot;&gt;&lt;/span&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1500&quot; data-origin-height=&quot;2000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NWgKL/btrpu6PcugQ/j49wkhtQ2ZOpSYqW74wiek/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NWgKL/btrpu6PcugQ/j49wkhtQ2ZOpSYqW74wiek/img.png&quot; data-alt=&quot;내가 공부했던 자리 (207기는 오타라고 한다 저희는 208기라고요!)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NWgKL/btrpu6PcugQ/j49wkhtQ2ZOpSYqW74wiek/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNWgKL%2Fbtrpu6PcugQ%2Fj49wkhtQ2ZOpSYqW74wiek%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;400&quot; height=&quot;533&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1500&quot; data-origin-height=&quot;2000&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;내가 공부했던 자리 (207기는 오타라고 한다 저희는 208기라고요!)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;1500&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oW8j4/btrpmhxWFE1/dByDkfLbCQMrJf9cfEEH81/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oW8j4/btrpmhxWFE1/dByDkfLbCQMrJf9cfEEH81/img.png&quot; data-alt=&quot;강사님 강의 자리&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oW8j4/btrpmhxWFE1/dByDkfLbCQMrJf9cfEEH81/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoW8j4%2FbtrpmhxWFE1%2FdByDkfLbCQMrJf9cfEEH81%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;400&quot; height=&quot;300&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;1500&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;강사님 강의 자리&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot; data-darkreader-inline-color=&quot;&quot;&gt;수업이후 저녁 9:00까지 의무스터디를 하였고 부족하면 집에 도착해 공부를 더 하였습니다.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #89ddff; --darkreader-inline-color: #79d9ff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;1500&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Ny1jA/btrpu53QlG0/1sGmZDMo3kc9qAiSix0myK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Ny1jA/btrpu53QlG0/1sGmZDMo3kc9qAiSix0myK/img.png&quot; data-alt=&quot;공부하던 자리 현재는 바뀜&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Ny1jA/btrpu53QlG0/1sGmZDMo3kc9qAiSix0myK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNy1jA%2Fbtrpu53QlG0%2F1sGmZDMo3kc9qAiSix0myK%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;500&quot; height=&quot;375&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;1500&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;공부하던 자리 현재는 바뀜&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #89ddff; --darkreader-inline-color: #79d9ff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;1.&lt;/span&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt; 우리 집과 강남 비트캠프의 거리는 약 2시간 특히 비 오는 월요일 아침이면 더 심했다.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #89ddff; --darkreader-inline-color: #79d9ff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;2.&lt;/span&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt; 1달마다 자리를 바꾸었는데 나는 교육이 끝날 때까지 자리를 한 번도 옮기지 않았다. 내 자리가 강사님과 아이컨텍이 잘 되는 자리긴 했다..&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #89ddff; --darkreader-inline-color: #79d9ff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;3.&lt;/span&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt; 살면서 이렇게 공부를 많이 해본 적이 없는 것 같다. 매일 아침 6시 20분에 일어나서 7시 5분에 집에서 출발하였고 집에 와서 새벽 1시 ~ 2시에 잠이 들었다. &lt;s&gt;고등학교 때 이렇게 공부했다면 서울대를..&lt;/s&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #89ddff; --darkreader-inline-color: #79d9ff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;4.&lt;/span&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt; 팀 프로젝트 막바지에 1주일간 에어비엔비 숙박을 하였다. 이건 아마 &lt;u&gt;팀 프로젝트 역사상 몇 안 되는 사례&lt;/u&gt;에 속한다고 자부한다.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #89ddff; --darkreader-inline-color: #79d9ff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;5.&lt;/span&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt; 강사님의 강의를 다시는 못 들을 명강의라고 생각하고 수업을 들었다. 시간이 너무 잘 갔다.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #f3c000;&quot; data-darkreader-inline-color=&quot;&quot;&gt;&lt;span style=&quot;--darkreader-inline-color: #c0ffff;&quot;&gt;  비트캠프 우수상&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1500&quot; data-origin-height=&quot;2000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/K587F/btrpmhrbJ2V/64VPxouyT6FQQgBADwCXb1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/K587F/btrpmhrbJ2V/64VPxouyT6FQQgBADwCXb1/img.png&quot; data-alt=&quot;비트캠프 우수상 수상&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/K587F/btrpmhrbJ2V/64VPxouyT6FQQgBADwCXb1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FK587F%2FbtrpmhrbJ2V%2F64VPxouyT6FQQgBADwCXb1%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;400&quot; height=&quot;533&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1500&quot; data-origin-height=&quot;2000&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;비트캠프 우수상 수상&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;div&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot; data-darkreader-inline-color=&quot;&quot;&gt;운이 좋게도 과정이 끝나고 우수상을 받을 수 있게 되었습니다. 좋은 강사님을 만날 수 있어서 좋았고 체계적으로 배울 수 있어서 너무나도 감사했습니다. 또한 좋은 팀 동료들 그리고 반 사람들 너무나도 좋았던 기간이었습니다.&lt;/span&gt;&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot; data-darkreader-inline-color=&quot;&quot;&gt;개발에 입문하면서 좋은 스승을 만날 수 있어서 강의 열정적으로 해주셔셔 너무나도 잘 수강했습니다. 엄진영 강사님 감사합니다.&lt;/span&gt;&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #ffcb6b; --darkreader-inline-color: #ffc964;&quot; data-darkreader-inline-color=&quot;&quot;&gt;  개발 블로그 시작&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;div&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #89ddff; --darkreader-inline-color: #79d9ff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt; 네이버블로그 vs 깃허브블로그 vs 티스토리블로그&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #89ddff; --darkreader-inline-color: #79d9ff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;&lt;s&gt; 배달의민족 리드 개발자&lt;/s&gt; 김동욱님 (기억보다 기록을)&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #c0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;&amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=V9AGvwPmnZU&quot;&gt;https://www.youtube.com/watch?v=V9AGvwPmnZU&lt;/a&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=V9AGvwPmnZU&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/bhyeSy/hyMVckLn3q/OHg8V9OWkTFbI2KzUA4uyk/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=638_102_918_408&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/V9AGvwPmnZU&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption&gt;영감받은 유튜브 영상&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot; data-darkreader-inline-color=&quot;&quot;&gt;교육 받기 전부터 블로그를 써야겠다고 다짐했고 현재도 꾸준히 포스팅을 하고 있습니다. 제 블로그의 이름이 &quot;물음표보다 느낌표&quot;를인데 이는 김동욱님의 블로그에 영감을 받아 오마주했습니다.&lt;/span&gt;&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #ffcb6b; --darkreader-inline-color: #ffc964;&quot; data-darkreader-inline-color=&quot;&quot;&gt;개발 블로그 변화&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #89ddff; --darkreader-inline-color: #79d9ff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;누적방문자수 3,545명 달성 ( 21.05.11 ~ 21.12.31 )&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;- 본격적인 시작은 21.06.28 부터&lt;/span&gt;&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 alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20211231_230744923.jpg&quot; data-origin-width=&quot;828&quot; data-origin-height=&quot;1451&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bMhimW/btrpmgMzJzE/HdtC1s8Zv2CBpc1tzFGyMk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bMhimW/btrpmgMzJzE/HdtC1s8Zv2CBpc1tzFGyMk/img.jpg&quot; data-alt=&quot;초기&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bMhimW/btrpmgMzJzE/HdtC1s8Zv2CBpc1tzFGyMk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbMhimW%2FbtrpmgMzJzE%2FHdtC1s8Zv2CBpc1tzFGyMk%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;400&quot; height=&quot;701&quot; data-filename=&quot;KakaoTalk_20211231_230744923.jpg&quot; data-origin-width=&quot;828&quot; data-origin-height=&quot;1451&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;초기&lt;/figcaption&gt;
&lt;/figure&gt;
&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 alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20211231_231233614.jpg&quot; data-origin-width=&quot;828&quot; data-origin-height=&quot;1433&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bKgSUW/btrpmgZ83PI/76KhjJIAnf0LMhJ9VwquQ0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bKgSUW/btrpmgZ83PI/76KhjJIAnf0LMhJ9VwquQ0/img.jpg&quot; data-alt=&quot;현재&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bKgSUW/btrpmgZ83PI/76KhjJIAnf0LMhJ9VwquQ0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbKgSUW%2FbtrpmgZ83PI%2F76KhjJIAnf0LMhJ9VwquQ0%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;400&quot; height=&quot;692&quot; data-filename=&quot;KakaoTalk_20211231_231233614.jpg&quot; data-origin-width=&quot;828&quot; data-origin-height=&quot;1433&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;현재&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #ffcb6b; --darkreader-inline-color: #ffc964;&quot; data-darkreader-inline-color=&quot;&quot;&gt;  정보처리기사 취득&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;div&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #89ddff; --darkreader-inline-color: #79d9ff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt; 정보처리기사 2021 2회차 필기합격&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://enjoydevelop.tistory.com/26?category=940035&quot;&gt;https://enjoydevelop.tistory.com/26?category=940035&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1640954966624&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;  2021 정보처리기사 2회 필기 합격 후기 &amp;amp; 공부법&quot; data-og-description=&quot;  합격 인증 &amp;amp; 공부 방법 2021년 정보처리기사 2회 필기 접수  &amp;zwj;♂️ 합격 인증 드디어 오늘 21.07.10 정보처리 실기 시험이 끝났습니다. 흑흑 그동안 준비했던 날들이 스쳐 지나가네요. 2회 실&quot; data-og-host=&quot;enjoydevelop.tistory.com&quot; data-og-source-url=&quot;https://enjoydevelop.tistory.com/26?category=940035&quot; data-og-url=&quot;https://enjoydevelop.tistory.com/26&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/0Z2oG/hyMU65VfQS/g8j8yPEHymMCT9V8AoUKO0/img.jpg?width=800&amp;amp;height=800&amp;amp;face=230_356_433_559,https://scrap.kakaocdn.net/dn/b6iiso/hyMU23xCyn/HPe4BsC9FHOrHKxTp6Wy8K/img.jpg?width=800&amp;amp;height=800&amp;amp;face=230_356_433_559&quot;&gt;&lt;a href=&quot;https://enjoydevelop.tistory.com/26?category=940035&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://enjoydevelop.tistory.com/26?category=940035&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/0Z2oG/hyMU65VfQS/g8j8yPEHymMCT9V8AoUKO0/img.jpg?width=800&amp;amp;height=800&amp;amp;face=230_356_433_559,https://scrap.kakaocdn.net/dn/b6iiso/hyMU23xCyn/HPe4BsC9FHOrHKxTp6Wy8K/img.jpg?width=800&amp;amp;height=800&amp;amp;face=230_356_433_559');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;  2021 정보처리기사 2회 필기 합격 후기 &amp;amp; 공부법&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;  합격 인증 &amp;amp; 공부 방법 2021년 정보처리기사 2회 필기 접수  &amp;zwj;♂️ 합격 인증 드디어 오늘 21.07.10 정보처리 실기 시험이 끝났습니다. 흑흑 그동안 준비했던 날들이 스쳐 지나가네요. 2회 실&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;enjoydevelop.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #89ddff; --darkreader-inline-color: #79d9ff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt; 정보처리기사 2021 2회차 실기합격&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://enjoydevelop.tistory.com/80?category=940035&quot;&gt;https://enjoydevelop.tistory.com/80?category=940035&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1640954983519&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;  2021 정보처리기사 2회 실기 합격 후기 &amp;amp; 공부법 (꿀팁)&quot; data-og-description=&quot;  합격 인증 &amp;amp; 공부 방법 2021년 정보처리기사 2회 실기 접수  &amp;zwj;♂️ 합격 인증 드디어 오늘 21.08.20 정보처리 실기 시험 발표가 났습니다. 흑흑 그동안 정말 가슴 졸이며 기다렸습니다. 2회 실&quot; data-og-host=&quot;enjoydevelop.tistory.com&quot; data-og-source-url=&quot;https://enjoydevelop.tistory.com/80?category=940035&quot; data-og-url=&quot;https://enjoydevelop.tistory.com/80&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cPxF24/hyMU6kyTaw/X19jRyVRrpx8jZG3CFF1JK/img.jpg?width=800&amp;amp;height=800&amp;amp;face=230_356_433_559,https://scrap.kakaocdn.net/dn/ofZCP/hyMUXOImsU/tNrnnGJNwUf8tpawOrcVPk/img.jpg?width=800&amp;amp;height=800&amp;amp;face=230_356_433_559&quot;&gt;&lt;a href=&quot;https://enjoydevelop.tistory.com/80?category=940035&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://enjoydevelop.tistory.com/80?category=940035&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cPxF24/hyMU6kyTaw/X19jRyVRrpx8jZG3CFF1JK/img.jpg?width=800&amp;amp;height=800&amp;amp;face=230_356_433_559,https://scrap.kakaocdn.net/dn/ofZCP/hyMUXOImsU/tNrnnGJNwUf8tpawOrcVPk/img.jpg?width=800&amp;amp;height=800&amp;amp;face=230_356_433_559');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;  2021 정보처리기사 2회 실기 합격 후기 &amp;amp; 공부법 (꿀팁)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;  합격 인증 &amp;amp; 공부 방법 2021년 정보처리기사 2회 실기 접수  &amp;zwj;♂️ 합격 인증 드디어 오늘 21.08.20 정보처리 실기 시험 발표가 났습니다. 흑흑 그동안 정말 가슴 졸이며 기다렸습니다. 2회 실&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;enjoydevelop.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #ffcb6b; --darkreader-inline-color: #ffc964;&quot; data-darkreader-inline-color=&quot;&quot;&gt;  개발 팀 프로젝트&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #89ddff; --darkreader-inline-color: #79d9ff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;&lt;span&gt; 스터디룸 작업&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1500&quot; data-origin-height=&quot;2000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ZQEIY/btrplgL1MpI/J7rgnLiuEn2ci7R5UK3Yq0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ZQEIY/btrplgL1MpI/J7rgnLiuEn2ci7R5UK3Yq0/img.png&quot; data-alt=&quot;스터디룸에서&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ZQEIY/btrplgL1MpI/J7rgnLiuEn2ci7R5UK3Yq0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZQEIY%2FbtrplgL1MpI%2FJ7rgnLiuEn2ci7R5UK3Yq0%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;400&quot; height=&quot;533&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1500&quot; data-origin-height=&quot;2000&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;스터디룸에서&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1500&quot; data-origin-height=&quot;2000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2uP3V/btrpoylSPHr/ZopwUChVzH5OHAJnS5At0k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2uP3V/btrpoylSPHr/ZopwUChVzH5OHAJnS5At0k/img.png&quot; data-alt=&quot;스터디룸에서 2&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2uP3V/btrpoylSPHr/ZopwUChVzH5OHAJnS5At0k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2uP3V%2FbtrpoylSPHr%2FZopwUChVzH5OHAJnS5At0k%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;400&quot; height=&quot;533&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1500&quot; data-origin-height=&quot;2000&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;스터디룸에서 2&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #89ddff; --darkreader-inline-color: #79d9ff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;에어비엔비 숙박 (1주일)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1500&quot; data-origin-height=&quot;2000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cO2dbz/btrpff1vKdW/qQz7oyFlw9ls9JlRMXUGBk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cO2dbz/btrpff1vKdW/qQz7oyFlw9ls9JlRMXUGBk/img.png&quot; data-alt=&quot;숙소 안에서 개발&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cO2dbz/btrpff1vKdW/qQz7oyFlw9ls9JlRMXUGBk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcO2dbz%2Fbtrpff1vKdW%2FqQz7oyFlw9ls9JlRMXUGBk%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;400&quot; height=&quot;533&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1500&quot; data-origin-height=&quot;2000&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;숙소 안에서 개발&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;div&gt;&lt;span style=&quot;color: #c0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;프로젝트 기간 막바지에 &quot;집 먼 사람끼리 숙소 잡아서 개발할까?&quot;를 몸소 실천한 조가 우리 조이다.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #a0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;확실히 2시간 걸리던 거리가 5분 내로 좁혀지니 한결 여유로워졌고 충분한 숙면과 개발의 질을 높일 수 있었다!&lt;/span&gt;&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #ffcb6b; --darkreader-inline-color: #ffc964;&quot; data-darkreader-inline-color=&quot;&quot;&gt;  면접&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;div&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #89ddff; --darkreader-inline-color: #79d9ff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt; 6번의 면접 경험 + 1월에 있을 3번의 면접&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1744&quot; data-origin-height=&quot;1334&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zslMc/btrputRpEGm/GFkXvrhAd4ENvYqneohSt1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zslMc/btrputRpEGm/GFkXvrhAd4ENvYqneohSt1/img.png&quot; data-alt=&quot;면접스터디중 칠판 판서&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zslMc/btrputRpEGm/GFkXvrhAd4ENvYqneohSt1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzslMc%2FbtrputRpEGm%2FGFkXvrhAd4ENvYqneohSt1%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;600&quot; height=&quot;459&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1744&quot; data-origin-height=&quot;1334&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;면접스터디중 칠판 판서&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot; data-darkreader-inline-color=&quot;&quot;&gt;교육과정을 끝나고 면접 스터디를 하였는데 좀 더 실전 경험이 필요하다고 생각했습니다. 잡코리아 + 사람인을 통해서 기업 지원을 하였고 구글 스프레드시트에 정리하였습니다.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot; data-darkreader-inline-color=&quot;&quot;&gt;100번의 면접 스터디보다 1번의 실전 경험이 중요하다고 깨달았고 다양한 면접 경험을 통해 긴장도 풀 수 있었고 하고자 하는 말을 잘 전달할 수 있게 되었습니다.&lt;/span&gt;&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #ffcb6b; --darkreader-inline-color: #ffc964;&quot; data-darkreader-inline-color=&quot;&quot;&gt;  2021년에 가장 많이 들은 노래&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;div&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #89ddff; --darkreader-inline-color: #79d9ff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt; 가호 Running&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;&lt;/span&gt;&lt;a style=&quot;letter-spacing: 0px;&quot; href=&quot;https://www.youtube.com/watch?v=FrOLeoXrvLU&quot;&gt;https://www.youtube.com/watch?v=FrOLeoXrvLU&lt;/a&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=FrOLeoXrvLU&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/6eIjc/hyMUYmwIQq/uyFnASx5BIUcwdzlLcvmjK/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=206_112_1050_562&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/FrOLeoXrvLU&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #ffcb6b; --darkreader-inline-color: #ffc964;&quot; data-darkreader-inline-color=&quot;&quot;&gt;  2021년의 드라마&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;div&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #89ddff; --darkreader-inline-color: #79d9ff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt; 낭만닥터 김사부&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://programs.sbs.co.kr/drama/drromantic2/main&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://programs.sbs.co.kr/drama/drromantic2/main&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1640955108268&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;낭만닥터 김사부 2&quot; data-og-description=&quot;방송종료 매주 월&amp;amp;화 21:40 방송&quot; data-og-host=&quot;programs.sbs.co.kr&quot; data-og-source-url=&quot;https://programs.sbs.co.kr/drama/drromantic2/main&quot; data-og-url=&quot;https://programs.sbs.co.kr/drama/drromantic2/main&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dEh9n3/hyMVcE2qfh/APDDBl0EGjIeXey7eaHEIk/img.jpg?width=640&amp;amp;height=360&amp;amp;face=37_53_611_164,https://scrap.kakaocdn.net/dn/bdPiVc/hyMVb7e2mE/gMYHAiFJ279T5qMep6s0ok/img.jpg?width=640&amp;amp;height=360&amp;amp;face=37_53_611_164&quot;&gt;&lt;a href=&quot;https://programs.sbs.co.kr/drama/drromantic2/main&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://programs.sbs.co.kr/drama/drromantic2/main&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dEh9n3/hyMVcE2qfh/APDDBl0EGjIeXey7eaHEIk/img.jpg?width=640&amp;amp;height=360&amp;amp;face=37_53_611_164,https://scrap.kakaocdn.net/dn/bdPiVc/hyMVb7e2mE/gMYHAiFJ279T5qMep6s0ok/img.jpg?width=640&amp;amp;height=360&amp;amp;face=37_53_611_164');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;낭만닥터 김사부 2&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;방송종료 매주 월&amp;amp;화 21:40 방송&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;programs.sbs.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #89ddff; --darkreader-inline-color: #79d9ff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt; 스타트업&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;&lt;/span&gt;&lt;a style=&quot;letter-spacing: 0px;&quot; href=&quot;http://program.tving.com/tvn/startup&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;http://program.tving.com/tvn/startup&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;figure id=&quot;og_1640955170143&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;스타트업&quot; data-og-description=&quot;한국의 실리콘 밸리에서 성공을 꿈꾸며 스타트업에 뛰어든 청춘들의 시작(START)과 성장(UP)을 그린 드라마&quot; data-og-host=&quot;program.tving.com&quot; data-og-source-url=&quot;http://program.tving.com/tvn/startup&quot; data-og-url=&quot;http://program.tving.com/tvn/startup&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/lWVZu/hyMUX2d4gG/4GSRg3KGz26mfqFYvbY14k/img.jpg?width=1200&amp;amp;height=630&amp;amp;face=56_56_500_331&quot;&gt;&lt;a href=&quot;http://program.tving.com/tvn/startup&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;http://program.tving.com/tvn/startup&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/lWVZu/hyMUX2d4gG/4GSRg3KGz26mfqFYvbY14k/img.jpg?width=1200&amp;amp;height=630&amp;amp;face=56_56_500_331');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;스타트업&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;한국의 실리콘 밸리에서 성공을 꿈꾸며 스타트업에 뛰어든 청춘들의 시작(START)과 성장(UP)을 그린 드라마&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;program.tving.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #89ddff; --darkreader-inline-color: #79d9ff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt; 이태원클라쓰&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://tv.jtbc.joins.com/itaewonclass&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://tv.jtbc.joins.com/itaewonclass&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1640955194449&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;이태원 클라쓰&quot; data-og-description=&quot;&quot; data-og-host=&quot;tv.jtbc.joins.com&quot; data-og-source-url=&quot;https://tv.jtbc.joins.com/itaewonclass&quot; data-og-url=&quot;https://tv.jtbc.joins.com/itaewonclass&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/f1QCp/hyMVamWIfJ/KlUF8en2eSI9fnB6RsrMQ1/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=362_126_1146_416,https://scrap.kakaocdn.net/dn/rscF2/hyMU0YV9ji/4V78d5hprczawTZnntGmrk/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=362_126_1146_416&quot;&gt;&lt;a href=&quot;https://tv.jtbc.joins.com/itaewonclass&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://tv.jtbc.joins.com/itaewonclass&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/f1QCp/hyMVamWIfJ/KlUF8en2eSI9fnB6RsrMQ1/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=362_126_1146_416,https://scrap.kakaocdn.net/dn/rscF2/hyMU0YV9ji/4V78d5hprczawTZnntGmrk/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=362_126_1146_416');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;이태원 클라쓰&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;tv.jtbc.joins.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #ffcb6b; --darkreader-inline-color: #ffc964;&quot; data-darkreader-inline-color=&quot;&quot;&gt;  새롭게 시도해 본 것&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;div&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #89ddff; --darkreader-inline-color: #79d9ff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt; 100번 글쓰기&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://enjoydevelop.tistory.com/4?category=933850&quot;&gt;https://enjoydevelop.tistory.com/4?category=933850&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1640956022743&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;   [100 Days Write] Day 1 ~ Day 5&quot; data-og-description=&quot;✏️&amp;nbsp;100일 글쓰기의 목적은? 무의식을 성장시키기 위한 수단이며, 100번 작성하는 동안 목표를 구체화시키고 각인시킨다. 마치 목적을 달성했다는 느낌을 받으며 작성한다. 100일 글쓰기의 효과&quot; data-og-host=&quot;enjoydevelop.tistory.com&quot; data-og-source-url=&quot;https://enjoydevelop.tistory.com/4?category=933850&quot; data-og-url=&quot;https://enjoydevelop.tistory.com/4&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/1CAei/hyMVcZn4dW/j8a80327nXKvFVdBjWQOb1/img.jpg?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/obA0V/hyMU2WMtIb/rJUtLGCfa7D2VZoJDDdBR1/img.jpg?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/7r37S/hyMU4txYwA/cBNG8GpMKOn8NE5i781D3K/img.jpg?width=3024&amp;amp;height=4032&amp;amp;face=0_0_3024_4032&quot;&gt;&lt;a href=&quot;https://enjoydevelop.tistory.com/4?category=933850&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://enjoydevelop.tistory.com/4?category=933850&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/1CAei/hyMVcZn4dW/j8a80327nXKvFVdBjWQOb1/img.jpg?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/obA0V/hyMU2WMtIb/rJUtLGCfa7D2VZoJDDdBR1/img.jpg?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/7r37S/hyMU4txYwA/cBNG8GpMKOn8NE5i781D3K/img.jpg?width=3024&amp;amp;height=4032&amp;amp;face=0_0_3024_4032');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;  [100 Days Write] Day 1 ~ Day 5&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;✏️&amp;nbsp;100일 글쓰기의 목적은? 무의식을 성장시키기 위한 수단이며, 100번 작성하는 동안 목표를 구체화시키고 각인시킨다. 마치 목적을 달성했다는 느낌을 받으며 작성한다. 100일 글쓰기의 효과&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;enjoydevelop.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #89ddff; --darkreader-inline-color: #79d9ff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt; 감사일기쓰기&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #89ddff; --darkreader-inline-color: #79d9ff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt; 확언&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #89ddff; --darkreader-inline-color: #79d9ff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt; 명상&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #89ddff; --darkreader-inline-color: #79d9ff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt; 불안노트 (구글문서)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #89ddff; --darkreader-inline-color: #79d9ff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt; 자기계발 영상 시청 (유튜브)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #89ddff; --darkreader-inline-color: #79d9ff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt; 에어팟 프로 구입&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1500&quot; data-origin-height=&quot;2000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cbTANm/btrpq7BkHmp/Ke4L9j94ok8ckPCsq9yidK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cbTANm/btrpq7BkHmp/Ke4L9j94ok8ckPCsq9yidK/img.png&quot; data-alt=&quot;에어팟2를 잃어버리고 홧김에(?) 잘 산 에어팟 프로&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cbTANm/btrpq7BkHmp/Ke4L9j94ok8ckPCsq9yidK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcbTANm%2Fbtrpq7BkHmp%2FKe4L9j94ok8ckPCsq9yidK%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;400&quot; height=&quot;533&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1500&quot; data-origin-height=&quot;2000&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;에어팟2를 잃어버리고 홧김에(?) 잘 산 에어팟 프로&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #89ddff; --darkreader-inline-color: #79d9ff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt; 마이크 구입 pillar (CM-700USB)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1500&quot; data-origin-height=&quot;2000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bX2pgf/btrpmhEMZYB/yKHARjVxTeQiuthqUtD0GK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bX2pgf/btrpmhEMZYB/yKHARjVxTeQiuthqUtD0GK/img.png&quot; data-alt=&quot;회의할 때 잘 쓰인 친구&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bX2pgf/btrpmhEMZYB/yKHARjVxTeQiuthqUtD0GK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbX2pgf%2FbtrpmhEMZYB%2FyKHARjVxTeQiuthqUtD0GK%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;400&quot; height=&quot;533&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1500&quot; data-origin-height=&quot;2000&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;회의할 때 잘 쓰인 친구&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #89ddff; --darkreader-inline-color: #79d9ff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt; 데스크탑 구입&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1500&quot; data-origin-height=&quot;2000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/6wime/btrpwOHiA2s/WtyuL9S5P6QKSmemgiApYk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/6wime/btrpwOHiA2s/WtyuL9S5P6QKSmemgiApYk/img.png&quot; data-alt=&quot;10년 이상 개발을 책임질 친구&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/6wime/btrpwOHiA2s/WtyuL9S5P6QKSmemgiApYk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F6wime%2FbtrpwOHiA2s%2FWtyuL9S5P6QKSmemgiApYk%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;400&quot; height=&quot;533&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1500&quot; data-origin-height=&quot;2000&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;10년 이상 개발을 책임질 친구&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #ffcb6b; --darkreader-inline-color: #ffc964;&quot; data-darkreader-inline-color=&quot;&quot;&gt;  개발 관련 유튜브&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #89ddff; --darkreader-inline-color: #79d9ff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;&amp;nbsp;남궁성의 정석코딩&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #89ddff; --darkreader-inline-color: #79d9ff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;뉴렉처&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #89ddff; --darkreader-inline-color: #79d9ff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt; 이상한 나라의 신기한 개발자&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #89ddff; --darkreader-inline-color: #79d9ff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;포프TV&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #89ddff; --darkreader-inline-color: #79d9ff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt; 드림코딩 by 앨리&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #89ddff; --darkreader-inline-color: #79d9ff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt; 몰입코딩아카이브&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #89ddff; --darkreader-inline-color: #79d9ff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt; 코딩알려주는누나&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #89ddff; --darkreader-inline-color: #79d9ff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt; 딩딩하라&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #89ddff; --darkreader-inline-color: #79d9ff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt; 생활코딩&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #89ddff; --darkreader-inline-color: #79d9ff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt; 동빈나&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;span style=&quot;color: #89ddff; --darkreader-inline-color: #79d9ff;&quot; data-darkreader-inline-color=&quot;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #eeffff; --darkreader-inline-color: #c0ffff;&quot; data-darkreader-inline-color=&quot;&quot;&gt; eo&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #ffc964;&quot; data-darkreader-inline-color=&quot;&quot;&gt;여러분 2021년 한 해 수고 많았습니다!!&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ffc964;&quot; data-darkreader-inline-color=&quot;&quot;&gt;2022년에는 더욱 더 발전된 모습으로 찾아뵙겠습니다  &lt;/span&gt;&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 alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;해피뉴이어1.jpg&quot; data-origin-width=&quot;3556&quot; data-origin-height=&quot;2000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cgTgDO/btrpvSXs2OA/c7Ci34C3XLJzbVHptAn291/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cgTgDO/btrpvSXs2OA/c7Ci34C3XLJzbVHptAn291/img.jpg&quot; data-alt=&quot;미리 HAPPY NEW YEAR&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cgTgDO/btrpvSXs2OA/c7Ci34C3XLJzbVHptAn291/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcgTgDO%2FbtrpvSXs2OA%2Fc7Ci34C3XLJzbVHptAn291%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;3556&quot; height=&quot;2000&quot; data-filename=&quot;해피뉴이어1.jpg&quot; data-origin-width=&quot;3556&quot; data-origin-height=&quot;2000&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;미리 HAPPY NEW YEAR&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Retrospect/2021</category>
      <category>2021</category>
      <category>2022</category>
      <category>Happy</category>
      <category>new</category>
      <category>year</category>
      <category>회고록</category>
      <author>변사부</author>
      <guid isPermaLink="true">https://enjoydevelop.tistory.com/114</guid>
      <comments>https://enjoydevelop.tistory.com/114#entry114comment</comments>
      <pubDate>Fri, 31 Dec 2021 22:30:10 +0900</pubDate>
    </item>
    <item>
      <title>⛔ [JavaScript] Uncaught ReferenceError : resources is not defined</title>
      <link>https://enjoydevelop.tistory.com/113</link>
      <description>&lt;h2&gt;  Uncaught ReferenceError : resources is not defined&lt;/h2&gt;
&lt;hr&gt;
&lt;h2&gt;  오류메세지&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Uncaught ReferenceError : resources is not defined&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;XMLHttpRequest()를 사용해서 json data를 받아올려는 도중 에러가 발생했다.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/147816761-51723722-dc7c-4d85-80fe-a1c14ba775f3.jpg&quot; alt=&quot;에러메세지1&quot;&gt;&lt;/p&gt;
&lt;h3&gt;&amp;lt; json파일 위치 &amp;gt;&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/147816760-5c4befe5-04f6-4917-b046-8f2a5bfd769c.jpg&quot; alt=&quot;에러메세지2&quot;&gt;&lt;/p&gt;
&lt;h3&gt;&amp;lt; json data &amp;gt;&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/147816845-a0f02861-d22e-446e-b269-f441ccfb6d06.jpg&quot; alt=&quot;제이슨데이터&quot;&gt;&lt;/p&gt;
&lt;h3&gt;&amp;lt; 오류코드 &amp;gt;&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;

    document.querySelector(&amp;#39;button&amp;#39;).addEventListener(&amp;#39;click&amp;#39;, () =&amp;gt; {
      const xhr = new XMLHttpRequest();
      xhr.addEventListener(&amp;#39;readystatechange&amp;#39;,() =&amp;gt; {
        if (xhr.readyState == xhr.DONE) {
          if (xhr.status == 200 || xhr.status == 201) {
            console.log(xhr.response);
          }
        }
      });
      xhr.open(&amp;#39;GET&amp;#39;, resources/json/sample.json, true);
      xhr.send();
    });

  &amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;  원인&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;resources가 정의되어 있지 않다? 파일경로가 잘못된 것 같아서 바꾸어보았다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;하지만 폴더를 옮겨봐도 이름을 체크해봐도 같은 에러가 발생하였다.&lt;br&gt;계속 바꿔보다가 2가지 큰 실수를 했다는 것을 깨달았다.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;open() url부분에 &amp;quot;&amp;quot;를 붙이지 않았다.&lt;/li&gt;
&lt;li&gt;경로설정 controller와 동일 경로에 배치해야한다.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;  해결책&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;controller의 mapping이 /home으로 되어있고 jsp 경로는 webapp밑에 resources 폴더 안에 있기 때문에 한 칸 나가서 resoureces폴더로 들어가줘야한다.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;url부분을 &amp;quot;../resouces/json/sample.json&amp;quot;으로 수정하고 작동하니 정상적으로 작동되었다.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/147817374-8938827f-afca-48ae-920c-637b6acc58ab.jpg&quot; alt=&quot;제이슨&quot;&gt;&lt;/p&gt;
&lt;p&gt;HomeController.java&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
@RequestMapping(&amp;quot;/home&amp;quot;)
public class HomeController {

    private static Logger logger = LogManager.getLogger(HomeController.class);

    @RequestMapping(value = &amp;quot;json&amp;quot;, method = RequestMethod.GET)
    public String main() {

        logger.info(&amp;quot;home controller start!!&amp;quot;);

        return &amp;quot;jsonTest&amp;quot;;

    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;jsonTest.jsp&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;

    document.querySelector(&amp;#39;button&amp;#39;).addEventListener(&amp;#39;click&amp;#39;, () =&amp;gt; {
      const xhr = new XMLHttpRequest();
      xhr.addEventListener(&amp;#39;readystatechange&amp;#39;,() =&amp;gt; {
        if (xhr.readyState == xhr.DONE) {
          if (xhr.status == 200 || xhr.status == 201) {
            console.log(xhr.response);
          }
        }
      });
      xhr.open(&amp;#39;GET&amp;#39;, &amp;quot;../resources/json/sample.json&amp;quot;, true);
      xhr.send();
    });

  &amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Error/JavaScript</category>
      <category>javascript</category>
      <category>XMLHTTPRequest</category>
      <category>에러</category>
      <author>변사부</author>
      <guid isPermaLink="true">https://enjoydevelop.tistory.com/113</guid>
      <comments>https://enjoydevelop.tistory.com/113#entry113comment</comments>
      <pubDate>Fri, 31 Dec 2021 19:21:13 +0900</pubDate>
    </item>
    <item>
      <title>⛔ [Error] ClassNotFoundException : org.apache.catalina.startup.Bootstrap &amp;amp; Port</title>
      <link>https://enjoydevelop.tistory.com/112</link>
      <description>&lt;h2&gt;  STS서버실행 오류&lt;/h2&gt;
&lt;hr&gt;
&lt;h2&gt;  오류메세지&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;ol&gt;
&lt;li&gt;ClassNotFoundException : org.apache.catalina.startup.Bootstrap&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/147757942-0d3cfded-0346-43af-b98e-02f7a6492121.jpg&quot; alt=&quot;스프링 서버 실행 오류&quot;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;ol start=&quot;2&quot;&gt;
&lt;li&gt;Port 번호 겹침&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/147759225-9206a0bc-4065-4793-8188-8776f20b4bf5.jpg&quot; alt=&quot;포트번호부재 1&quot;&gt;&lt;/p&gt;
&lt;h2&gt;  원인&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;  1. Bootstrap.zar 파일의 부재&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;  2. Port번호 겹침&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;  3. 서버 라이브러리 등록 문제&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;  4. 서버 Publish(배치) 문제&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;  해결책&lt;/h2&gt;
&lt;p&gt;첫 번째 문제를 겪고나서 다양한 시도를 많이 해보았다. 해결한 방법을 제시한 후에 이것저것 시도해봤던 방법들을 공유하려고 한다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;h3&gt;  Bootstrap.zar 파일이 없으니 등록해보자!&lt;/h3&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;에러 내용을 보면 Bootstrap 클래스를 찾을 수 없다고 한다. 그래서 톰캣 파일을 뒤져봤다.&lt;/p&gt;
&lt;p&gt;처음에는 톰캣 파일의 lib 파일을 들어갔으나 찾을 수 없었다.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/147759779-4b3b6428-06d5-4727-b686-150a03d262d6.jpg&quot; alt=&quot;해결책2&quot;&gt;&lt;/p&gt;
&lt;p&gt;다음으로 톰캣 파일의 bin 파일을 들어갔는데 맨 위에 있었다! 이를 프로젝트에 적용해보면 되겠다.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/147759703-eaf05620-1d48-4853-8e3f-7e8446102304.jpg&quot; alt=&quot;해결책1&quot;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;프로젝트를 선택한 후 Build Path에 Configure Build Path에 들어가준다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/147759926-1a35de98-5d57-4f47-baf5-c71654c30b62.jpg&quot; alt=&quot;해결책3&quot;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;BootStrap.jar를 추가해준다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/147760086-b3056b3b-ccd5-4199-bd64-220e078742de.jpg&quot; alt=&quot;해결책4&quot;&gt;&lt;br&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/147760088-b53b2ea3-c182-4075-b91d-0ab14153597b.jpg&quot; alt=&quot;해결책5&quot;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;서버를 실행해준다. 이 방법으로 해결했다.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;h3&gt;  서버를 라이브러리에 등록해본다.&lt;/h3&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;이 방법은 아까 Build Path에 Configure Build Path에 들어가준다.&lt;/p&gt;
&lt;p&gt;Add Library &amp;gt; Server Runtime &amp;gt; 본인 서버 선택 &amp;gt; Finish&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/147760365-d08fdf37-0e1d-44fc-93d1-36032cd69346.jpg&quot; alt=&quot;해결책6&quot;&gt;&lt;br&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/147760367-5b558527-3506-439d-8c84-38a5d7a60845.jpg&quot; alt=&quot;해결책7&quot;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;h3&gt;  서버 Publish(배치)를 다시한다.&lt;/h3&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;서버 갯수에 따라 tmp0 ~ tmpN 개의 폴더가 생성된다. 그리고 본인의 서버에 들어가서 wtpwebapps 폴더에 들어가는데 해당 폴더에 배치 폴더가 생성된다. ROOT이외에 본인의 프로젝트 폴더가 나오면 배치가 성공한 것이다.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/147760667-7d442763-9a52-41a6-ac5a-17a327021cca.jpg&quot; alt=&quot;해결책9&quot;&gt;&lt;br&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/147760668-08f81e85-acc2-44f8-a6e7-c989f40524df.jpg&quot; alt=&quot;해결책10&quot;&gt;&lt;br&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/147760669-1b3cd574-d346-4f56-b745-1c700443dbfc.jpg&quot; alt=&quot;해결책11&quot;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;h3&gt;  포트번호가 겹칠 때는 이렇게 해결하세요&lt;/h3&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;cmd를 열고 netstat -ano라고 치고 에러 메세지에 겹치는 포트번호를 찾아서 kill해주면 된다.&lt;br&gt;그러면 해당 서버는 종료되고 다시 서버를 실행한다면 정상적으로 실행될 것이다.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/147760912-56e93afc-4daa-409d-9e78-914f29f02d6a.jpg&quot; alt=&quot;포트번호부재 1&quot;&gt;&lt;br&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/147760913-f2d87d57-df8b-4115-8e7e-a76eb867c626.jpg&quot; alt=&quot;포트번호부재 2&quot;&gt;&lt;br&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/147760916-f4729bd0-2625-4f88-911c-1bc2b99c4398.jpg&quot; alt=&quot;포트번호부재 3&quot;&gt;&lt;/p&gt;</description>
      <category>Error/STS</category>
      <category>ClassNotFoundException</category>
      <category>kill</category>
      <category>netstat</category>
      <category>Spring</category>
      <category>sts</category>
      <category>서버</category>
      <category>서버오류</category>
      <category>포트번호</category>
      <author>변사부</author>
      <guid isPermaLink="true">https://enjoydevelop.tistory.com/112</guid>
      <comments>https://enjoydevelop.tistory.com/112#entry112comment</comments>
      <pubDate>Thu, 30 Dec 2021 23:39:16 +0900</pubDate>
    </item>
    <item>
      <title> ️ HttpServletRequest 메서드와 Path</title>
      <link>https://enjoydevelop.tistory.com/111</link>
      <description>&lt;h2&gt;HttpServletRequest의 메서드들&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/147639091-22d2ee91-2942-470e-858c-dd47c6b6f01b.jpg&quot; alt=&quot;경로&quot;&gt;&lt;/p&gt;
&lt;h3&gt;  결과&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;HttpServletRequestMethod.java&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
@RequestMapping(&amp;quot;request&amp;quot;)
public class HttpServletRequestMethod {

    @RequestMapping(&amp;quot;sample1&amp;quot;)
    public String main(HttpServletRequest request, Model model) {

        String scheme = request.getScheme();
        String method = request.getMethod();
        String serverName = request.getServerName();
        int serverPort = request.getServerPort();
        String contextPath = request.getContextPath();
        String servletPath = request.getServletPath();
        String requestURI = request.getRequestURI();
        String requestURL = request.getRequestURL().toString();
        String queryString = request.getQueryString();


        model.addAttribute(&amp;quot;scheme&amp;quot;,scheme);
        model.addAttribute(&amp;quot;method&amp;quot;,method);
        model.addAttribute(&amp;quot;serverName&amp;quot;,serverName);
        model.addAttribute(&amp;quot;serverPort&amp;quot;,serverPort);
        model.addAttribute(&amp;quot;contextPath&amp;quot;,contextPath);
        model.addAttribute(&amp;quot;servletPath&amp;quot;,servletPath);
        model.addAttribute(&amp;quot;requestURI&amp;quot;,requestURI);
        model.addAttribute(&amp;quot;requestURL&amp;quot;,requestURL);
        model.addAttribute(&amp;quot;queryString&amp;quot;,queryString);


        return &amp;quot;method&amp;quot;;
    }

}
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;method.jsp&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-html&quot;&gt;&amp;lt;%@ page language=&amp;quot;java&amp;quot; contentType=&amp;quot;text/html; charset=UTF-8&amp;quot;
pageEncoding=&amp;quot;UTF-8&amp;quot;%&amp;gt;

&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang=&amp;quot;en&amp;quot;&amp;gt;
  &amp;lt;head&amp;gt;
    &amp;lt;meta charset=&amp;quot;UTF-8&amp;quot; /&amp;gt;
    &amp;lt;meta http-equiv=&amp;quot;X-UA-Compatible&amp;quot; content=&amp;quot;IE=edge&amp;quot; /&amp;gt;
    &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0&amp;quot; /&amp;gt;
    &amp;lt;title&amp;gt;HttpServletRequest test file&amp;lt;/title&amp;gt;
  &amp;lt;/head&amp;gt;
  &amp;lt;body&amp;gt;
    &amp;lt;h1&amp;gt;HttpServletRequest의 method들 정리&amp;lt;/h1&amp;gt;

    &amp;lt;h2&amp;gt;http://localhost:8080/ch2/request/sample1?value&amp;lt;/h2&amp;gt;

    &amp;lt;h2&amp;gt;getScheme()&amp;lt;/h2&amp;gt;
    &amp;lt;h3&amp;gt;&amp;lt;span&amp;gt;scheme : ${scheme}&amp;lt;/span&amp;gt;&amp;lt;/h3&amp;gt;

    &amp;lt;h2&amp;gt;getMethod()&amp;lt;/h2&amp;gt;
    &amp;lt;h3&amp;gt;&amp;lt;span&amp;gt;method : ${method}&amp;lt;/span&amp;gt;&amp;lt;/h3&amp;gt;

    &amp;lt;h2&amp;gt;getServerName()&amp;lt;/h2&amp;gt;
    &amp;lt;h3&amp;gt;&amp;lt;span&amp;gt;serverName : ${serverName}&amp;lt;/span&amp;gt;&amp;lt;/h3&amp;gt;

    &amp;lt;h2&amp;gt;getServerPort()&amp;lt;/h2&amp;gt;
    &amp;lt;h3&amp;gt;&amp;lt;span&amp;gt;serverPort : ${serverPort}&amp;lt;/span&amp;gt;&amp;lt;/h3&amp;gt;

    &amp;lt;h2&amp;gt;getContextPath()&amp;lt;/h2&amp;gt;
    &amp;lt;h3&amp;gt;&amp;lt;span&amp;gt;contextPath : ${contextPath}&amp;lt;/span&amp;gt;&amp;lt;/h3&amp;gt;

    &amp;lt;h2&amp;gt;getServletPath()&amp;lt;/h2&amp;gt;
    &amp;lt;h3&amp;gt;&amp;lt;span&amp;gt;servletPath : ${servletPath}&amp;lt;/span&amp;gt;&amp;lt;/h3&amp;gt;

    &amp;lt;h2&amp;gt;getServletURI()&amp;lt;/h2&amp;gt;
    &amp;lt;h3&amp;gt;&amp;lt;span&amp;gt;requestURI : ${requestURI}&amp;lt;/span&amp;gt;&amp;lt;/h3&amp;gt;

    &amp;lt;h2&amp;gt;getServletURL()&amp;lt;/h2&amp;gt;
    &amp;lt;h3&amp;gt;&amp;lt;span&amp;gt;requestURL : ${requestURL}&amp;lt;/span&amp;gt;&amp;lt;/h3&amp;gt;

    &amp;lt;h2&amp;gt;getQueryString()&amp;lt;/h2&amp;gt;
    &amp;lt;h3&amp;gt;&amp;lt;span&amp;gt;queryString : ${queryString}&amp;lt;/span&amp;gt;&amp;lt;/h3&amp;gt;
  &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;결과&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-javascript&quot;&gt;HttpServletRequest의 method들 정리
http://localhost:8080/test/request/sample1?value
getScheme()
scheme : http
getMethod()
method : GET
getServerName()
serverName : localhost
getServerPort()
serverPort : 8080
getContextPath()
contextPath : /test
getServletPath()
servletPath : /request/sample1
getServletURI()
requestURI : /test/request/sample1
getServletURL()
requestURL : http://localhost:8080/test/request/sample1
getQueryString()
queryString : value&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Language/Servlet &amp;amp; Jsp</category>
      <category>HttpServletRequest</category>
      <category>메서드</category>
      <category>서블릿</category>
      <author>변사부</author>
      <guid isPermaLink="true">https://enjoydevelop.tistory.com/111</guid>
      <comments>https://enjoydevelop.tistory.com/111#entry111comment</comments>
      <pubDate>Wed, 29 Dec 2021 16:56:38 +0900</pubDate>
    </item>
    <item>
      <title>⛔ STS 설치 파일길이, 알집오류</title>
      <link>https://enjoydevelop.tistory.com/110</link>
      <description>&lt;h2&gt;  STS설치 오류&lt;/h2&gt;
&lt;hr&gt;
&lt;h2&gt;  오류메세지&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;  sts를 설치하고 실행시켰는데 다음과 같은 에러메세지가 나타났습니다.&lt;br&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/147558023-e4572d03-f4ac-4f7c-8bd7-763442668df8.png&quot; alt=&quot;1번&quot;&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/147558091-ade7b701-e0ff-45cb-b306-41faf42b8547.png&quot; alt=&quot;2번&quot;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;  또한 우측 하단에 위치하는 Spring Explorer에도 warning 관련 문구가 떴고 대부분 eclipse관련이였습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;  원인&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;  1. 압축 실패&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;  2. 경로이름이 긴 문제 (윈도우에서는 경로 길이 제한이 있음)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;  3. 설치 경로에 한글이 들어가 있음&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;  해결책&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/147558358-0220f062-6d11-4048-acef-9ad3423609a0.jpg&quot; alt=&quot;알집압축&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/147558388-a92027ff-f3dc-42b4-a359-facc2c988f71.jpg&quot; alt=&quot;알집압축2&quot;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;해당 문제인가 싶어 폴더명을 줄여보았다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/147558473-cc2d1fac-fb19-468b-b936-dd6b72af34e6.jpg&quot; alt=&quot;11&quot;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;그러나 아직도 실패.. 지정된 경로를 찾을 수 없다고 나온다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/147558528-8bcfc542-90f2-4b1d-b5d0-e9ef2a1cbdb2.jpg&quot; alt=&quot;알집압축3 지정된 경로 못찾음&quot;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;구글링을 해보니 알집말고 반디집으로 풀라는 의견이 있어서 반디집을 다운받고 풀어봤다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&quot;https://kr.bandisoft.com/bandizip/&quot;&gt;반디집 다운로드가 필요하시면 클릭해주세요&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;결과는 잘 풀렸다 !!! sts 실행해보니 깔끔하게 잘 나온다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/147558785-66302935-f15a-4fad-bd08-3407fa47c8d1.jpg&quot; alt=&quot;good&quot;&gt;&lt;/p&gt;
&lt;h2&gt;  REFERENCE&lt;/h2&gt;
&lt;p&gt; &lt;a href=&quot;https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&amp;amp;blogId=dream_time92&amp;amp;logNo=220775119979&quot;&gt;https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&amp;amp;blogId=dream_time92&amp;amp;logNo=220775119979&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &lt;a href=&quot;https://breakdawn.tistory.com/entry/%EC%9D%B4%ED%81%B4%EB%A6%BD%EC%8A%A4-%EC%8B%A4%ED%96%89-%EC%97%90%EB%9F%AC&quot;&gt;https://breakdawn.tistory.com/entry/%EC%9D%B4%ED%81%B4%EB%A6%BD%EC%8A%A4-%EC%8B%A4%ED%96%89-%EC%97%90%EB%9F%AC&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://commontoday.tistory.com/32&quot;&gt;https://commontoday.tistory.com/32&lt;/a&gt;&lt;/p&gt;</description>
      <category>Error/STS</category>
      <category>sts</category>
      <category>설치오류</category>
      <category>알집</category>
      <author>변사부</author>
      <guid isPermaLink="true">https://enjoydevelop.tistory.com/110</guid>
      <comments>https://enjoydevelop.tistory.com/110#entry110comment</comments>
      <pubDate>Tue, 28 Dec 2021 19:55:34 +0900</pubDate>
    </item>
    <item>
      <title> [Base] 컴퓨터와 가위 바위 보 게임하기</title>
      <link>https://enjoydevelop.tistory.com/109</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;  컴퓨터와 가위 바위 보 게임하기&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;RULE
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;컴퓨터는 랜덤으로 숫자가 부여되며 사용자는 숫자를 입력한다.&lt;/li&gt;
&lt;li&gt;가위 = 1, 바위 = 2, 보 = 3&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;출제의도
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;if, while, for, switch문을 사용할 수 있는가?&lt;/li&gt;
&lt;li&gt;Math.random()으로 난수를 발생시킬 수 있는가?&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;processing&quot;&gt;&lt;code&gt;package algorithm;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class RockPaperScissors {

  public static void main(String[] args) throws IOException {

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    System.out.println(&quot;[ ★★컴퓨터와 가위바위보 대결을 합니다!★★ ]&quot;);

    while (true) {
      System.out.print(&quot;정수를 입력해주세요 (가위 = 1, 바위 = 2, 보 = 3) &amp;gt; &quot;);
      int me = Integer.parseInt(br.readLine());
      if (!(me == 1 || me == 2 || me == 3)) {
        System.out.println(&quot;다시 입력해주세요\n&quot;);
        continue;
      }
      int com = (int) (Math.random() * 3) + 1;
      int result = me - com;

      /**                 
       *          가위    바위    보  (나)
       *    가위     0     1      2 
       *    
       *    바위    -1     0      1
       *    
       *      보    -2     -1     0
       *      
       *  (컴퓨터) 
       */

      switch (result) {
        case -2: case 1: System.out.println(&quot;당신이 이겼습니다.&quot;); break;
        case -1: case 2: System.out.println(&quot;컴퓨터가 이겼습니다.&quot;); break;
        case 0: System.out.println(&quot;무승부입니다.&quot;); break;
      }
      System.out.println();
    }
  }
}
&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Algorithm/Base</category>
      <category>java</category>
      <category>알고리즘</category>
      <category>자바</category>
      <category>준비</category>
      <author>변사부</author>
      <guid isPermaLink="true">https://enjoydevelop.tistory.com/109</guid>
      <comments>https://enjoydevelop.tistory.com/109#entry109comment</comments>
      <pubDate>Mon, 27 Dec 2021 23:24:56 +0900</pubDate>
    </item>
    <item>
      <title>〰️ MariaDB와 MySQL Workbench 연동시키기</title>
      <link>https://enjoydevelop.tistory.com/108</link>
      <description>&lt;h2&gt;  MariaDB와 MySQL Workbench 연동시키기&lt;/h2&gt;
&lt;hr&gt;
&lt;ul&gt;
&lt;li&gt;  MariaDB에 이미 만들어놓은 DB가 있다고 가정하고 말씀드리겠습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;  준비&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;  해당 링크를 클릭해서 &lt;a href=&quot;https://dev.mysql.com/downloads/workbench/&quot;&gt;MySQL Workbench&lt;/a&gt;를 다운받아주세요&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/147380746-c205aebd-6e7e-4f8f-a62b-c621a29a53c4.JPG&quot; alt=&quot;1번&quot;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;  제일 최신 버전이 8.0.27 버전인데 왜 8.0.26 버전을 다운받을까? &lt;ul&gt;
&lt;li&gt;  나중에 발생하게 될 연결관련 이슈를 해결하기 위함 &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/147380786-b507c197-3be6-4160-978a-4d3afb9b0b4c.JPG&quot; alt=&quot;2번&quot;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;  다운로드를 누르고 해당 절차에 따라 next 눌러서 설치해주시면 됩니다.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;  설치가 완료된다면 실행시켜주세요&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/147380882-2e367c13-b692-47a3-a308-38e11428d266.jpg&quot; alt=&quot;3번&quot;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;  Database &amp;gt; Manage Connection을 눌러주세요&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/147380924-3c845e12-cc3b-43d9-9ff3-b4b630bf4593.jpg&quot; alt=&quot;4번&quot;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;  SSL &amp;gt; If available이나 no를 눌러주세요&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/147380987-2adc6327-75d9-479a-aa8b-5d37eadde405.jpg&quot; alt=&quot;5번&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/147380988-53e77780-9fc8-4b82-aa8f-a519fd3572e9.jpg&quot; alt=&quot;6번&quot;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;  Test Connection을 눌러 테스트도 진행해봅니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/147381112-80661857-30d8-4e4f-b588-7804fc57cec2.jpg&quot; alt=&quot;9번&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/147381204-906da875-49a5-47c9-9e96-bd7e56ce61d6.jpg&quot; alt=&quot;10번&quot;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;  1. Hostname에는 엔드포인트를 입력하고 포트번호를 입력합니다. &lt;/li&gt;
&lt;li&gt;  2. Username을 입력합니다.&lt;/li&gt;
&lt;li&gt;  3. Store in Vault를 눌러 rds 데이터베이스 비밀번호도 입력합니다.&lt;/li&gt;
&lt;li&gt;  4. 테스트 해봅니다.&lt;/li&gt;
&lt;li&gt;  5. OK버튼을 눌러 마무리 해줍니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/147381273-ee6d6910-e323-493b-802d-7ef5f6ed0acd.jpg&quot; alt=&quot;11번&quot;&gt;&lt;/p&gt;
&lt;h2&gt;  Cannot Connect to Database Server 에러&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/147381034-3d7a9243-d145-40d2-b58f-f323b4401035.jpg&quot; alt=&quot;8번&quot;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;  위와 같은 에러가 발생하시는 분들은 8.0.26 버전을 다운받아서 진행하시면 됩니다.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;  8.0.27 버전부터 SSL 하위 메뉴인 USE SSL에서 If available와 no가 사라졌습니다. 그래서 한 단계 밑인 8.0.26 버전을 다운받으라고 한거죠.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;  MariaDB 포트번호 변경하기&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;  파일탐색기 &amp;gt; MariaDB &amp;gt; data에 있는 my.ini파일을 클릭합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/147381342-fdb98a27-2ae5-4643-9e66-6de1e1afcf58.jpg&quot; alt=&quot;12번&quot;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;  메모장에 있는 포트번호를 변경해줍니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/147381381-8dc32dde-c12d-4d40-8841-a36a53e53964.jpg&quot; alt=&quot;13번&quot;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;  서비스를 재실행합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/147381412-20f02f0b-c4e1-4b7d-883f-e876b2932535.jpg&quot; alt=&quot;14번&quot;&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;  끝!!!&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>Database/MariaDB</category>
      <category>MariaDB</category>
      <category>MySQL</category>
      <category>mysqlworkbench연동오류</category>
      <category>workbench</category>
      <category>연결</category>
      <author>변사부</author>
      <guid isPermaLink="true">https://enjoydevelop.tistory.com/108</guid>
      <comments>https://enjoydevelop.tistory.com/108#entry108comment</comments>
      <pubDate>Sat, 25 Dec 2021 17:57:31 +0900</pubDate>
    </item>
    <item>
      <title>  Project : 봉사 &amp;amp; 기부 커뮤니티 사이트 구축</title>
      <link>https://enjoydevelop.tistory.com/107</link>
      <description>&lt;h1&gt;  HappyShare&lt;/h1&gt;
&lt;h4&gt;➡️ github : &lt;a href=&quot;https://github.com/minsungbyun/happy-share&quot;&gt;https://github.com/minsungbyun/happy-share&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/143727485-d17dbc6f-794e-40e6-a368-70279634deb8.jpg&quot; alt=&quot;logo&quot;&gt;&lt;/p&gt;
&lt;br /&gt;

&lt;h2&gt;  Main&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/143688493-f45eb512-2a38-4553-b729-7ad1b430c928.gif&quot; alt=&quot;main&quot;&gt;&lt;/p&gt;
&lt;br /&gt;


&lt;h2&gt;  AWS 배포&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href=&quot;http://3.37.193.68:8080/happyshare-server/app/home&quot;&gt;CLICK&lt;/a&gt;&lt;br&gt;&lt;br/&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;  1. Introduction&lt;/h2&gt;
&lt;p&gt;개인과 소규모 단체 중심의 봉사 및 모금활동 관리 시스템&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;봉사와 기부 그리고 챌린지를 통한 의미있는 경험을 해보세요!  그리고 후기를 다른 사람과 공유해보세요&lt;/p&gt;
&lt;/blockquote&gt;
&lt;br /&gt;


&lt;h2&gt; ‍ ‍ ‍  Target User&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;봉사 &amp;amp; 기부 서비스를 통합적으로 이용해보고 싶은 사람들&lt;/li&gt;
&lt;li&gt;봉사 &amp;amp; 모금 참여 후 지속적인 소통을 하고 싶은 사람들 (커뮤니티 활성화)&lt;/li&gt;
&lt;li&gt;봉사 &amp;amp; 기부 관련 다양한 챌린지에 참여하고 싶은 사람들&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;

&lt;h2&gt;  2. About Us&lt;/h2&gt;
&lt;h2&gt;우리팀을 소개합니다&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align=&quot;center&quot;&gt;&lt;img src=&quot;https://avatars.githubusercontent.com/u/86590036?v=4&quot; width=200px alt=&quot;minsung&quot;/&gt;&lt;/th&gt;
&lt;th align=&quot;center&quot;&gt;&lt;img src=&quot;https://avatars.githubusercontent.com/u/86589601?v=4&quot; width=200px alt=&quot;junguk img&quot;/&gt;&lt;/th&gt;
&lt;th align=&quot;center&quot;&gt;&lt;img src=&quot;https://avatars.githubusercontent.com/u/86340956?v=4&quot; width=200px alt=&quot;baekyeon img&quot;/&gt;&lt;/th&gt;
&lt;th align=&quot;center&quot;&gt;&lt;img src=&quot;https://avatars.githubusercontent.com/u/86590211?v=4&quot; width=200px alt=&quot;Leejiho&quot;&gt;&lt;/th&gt;
&lt;th align=&quot;center&quot;&gt;&lt;img src=&quot;https://avatars.githubusercontent.com/u/86590179?v=4&quot; width=200px alt=&quot;seongjun&quot;&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;Back-End&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;Back-End&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;Back-End&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;Back-End&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;Back-End&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;&lt;a href=&quot;https://github.com/minsungbyun&quot;&gt;변민성(변사부)&lt;/a&gt; &lt;br&gt; &lt;a href=&quot;&quot;&gt; ‍♂️&lt;/a&gt;&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;&lt;a href=&quot;https://github.com/wejunguk&quot;&gt;위정욱(우기)&lt;/a&gt; &lt;br&gt; &lt;a href=&quot;&quot;&gt; &lt;/a&gt;&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;&lt;a href=&quot;https://github.com/baekyeon9&quot;&gt;구백연(백구)&lt;/a&gt; &lt;br&gt; &lt;a href=&quot;&quot;&gt; &lt;/a&gt;&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;&lt;a href=&quot;https://github.com/Leejiho-940915&quot;&gt;이지호(이조)&lt;/a&gt; &lt;br&gt; &lt;a href=&quot;&quot;&gt; ‍ &lt;/a&gt;&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;&lt;a href=&quot;https://github.com/SeongjunP&quot;&gt;박성준(준)&lt;/a&gt; &lt;br&gt; &lt;a href=&quot;&quot;&gt; &lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align=&quot;center&quot;&gt;&lt;a href=&quot;https://enjoydevelop.tistory.com&quot;&gt;변사부 블로그&lt;/a&gt;&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;&lt;a href=&quot;#&quot;&gt;위정욱 블로그&lt;/a&gt;&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;&lt;a href=&quot;#&quot;&gt;백연 블로그&lt;/a&gt;&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;&lt;a href=&quot;#&quot;&gt;지호 블로그&lt;/a&gt;&lt;/td&gt;
&lt;td align=&quot;center&quot;&gt;&lt;a href=&quot;#&quot;&gt;성준 블로그&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;

&lt;h2&gt;  3. Situation&lt;/h2&gt;
&lt;h3&gt;현황 및 문제점 (현존하는 봉사/ 기부 관련 사이트)&lt;/h3&gt;
&lt;br /&gt;

&lt;h4&gt;봉사활동 관련 웹사이트&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;봉사 ‘인증’이  주 목적인 곳이 대부분이다.&lt;br&gt;일반인이 쉽게 접근하기가 다소 불편한 레이아웃&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;기부/ 펀딩 웹사이트&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;‘기부’ 활동만 가능하다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;SNS 봉사활동&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;단발성 : 활동 내역, 후기 등을 체계적으로 확인하기 어렵다.&lt;br /&gt;

&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;⭕ 해결방안&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;봉사서비스와 기부, 챌린지를 통해 다양한 서비스를 제공하는 홈페이지를 만들고자 함&lt;/li&gt;
&lt;li&gt;개인, 단체, 기관의 사용자를 위한 홈페이지 생성&lt;/li&gt;
&lt;li&gt;그 중 개인과 소규모 단체에 초점을 맞추었으며, 커뮤니티를 통해 봉사자들끼리 소통할 수 있다.&lt;/li&gt;
&lt;li&gt;챌린지를 통해 함께 참여하고 인증할 수 있는 장을 마련함으로써 성취감과 참여율을 높이고자 하였음.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;⭕ 이점&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;봉사활동 등록과 신청, 취소를 간편하게 할 수 있다.&lt;/li&gt;
&lt;li&gt;모금 정보를 확인하고 기부 신청을 할 수 있다.&lt;/li&gt;
&lt;li&gt;각 개인이 봉사활동 챌린지에 참여하고 포인트와 랭킹을 확인할 수 있다.&lt;/li&gt;
&lt;li&gt;봉사 커뮤니티 게시판 : 회원이 봉사게시판에 글을 작성할 수 있다.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;

&lt;h3&gt;저희는 이슈(ISSUE), 위키(WIKI), 프로젝트(PROJECT)를 통한 관리를 하고 있습니다. &lt;br /&gt;&lt;/h3&gt;
&lt;h4&gt; ✔️ 이슈을 보실려면 클릭해주세요!
&lt;a href='https://github.com/minsungbyun/happy-share/issues'&gt;HappyShare ISSUE&lt;/a&gt;&lt;/h4&gt;
&lt;/div&gt;

&lt;h4&gt; ✔️ 위키를 보실려면 클릭해주세요!
&lt;a href='https://github.com/minsungbyun/happy-share/wiki'&gt;HappyShare WIKI&lt;/a&gt;&lt;/h4&gt;
&lt;/div&gt;

&lt;h4&gt; ✔️ 프로젝트를 보실려면 클릭해주세요!
&lt;a href='https://github.com/minsungbyun/happy-share/projects/1'&gt;HappyShare PROJECT&lt;/a&gt;&lt;/h4&gt;
&lt;/div&gt;

&lt;br /&gt;
&lt;br /&gt;


&lt;h2&gt;✨ 4. Tech Stacks&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Java 11&lt;/li&gt;
&lt;li&gt;Spring 5&lt;/li&gt;
&lt;li&gt;Servlet / JSP&lt;/li&gt;
&lt;li&gt;Tomcat 9&lt;/li&gt;
&lt;li&gt;HTML 5&lt;/li&gt;
&lt;li&gt;CSS 3&lt;/li&gt;
&lt;li&gt;JavaScript&lt;/li&gt;
&lt;li&gt;jQuery&lt;/li&gt;
&lt;li&gt;Bootstrap&lt;/li&gt;
&lt;li&gt;Ajax&lt;/li&gt;
&lt;li&gt;MariaDB&lt;/li&gt;
&lt;li&gt;Mybatis&lt;/li&gt;
&lt;li&gt;Gradle&lt;/li&gt;
&lt;li&gt;AWS EC2&lt;/li&gt;
&lt;li&gt;Eclipse&lt;/li&gt;
&lt;li&gt;Visual Studio&lt;/li&gt;
&lt;li&gt;GitHub&lt;/li&gt;
&lt;li&gt;eXERD&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;

&lt;h2&gt; ‍ ‍ ‍  5. Use-Case Diagram&lt;/h2&gt;
&lt;details&gt;
&lt;summary&gt;Actor Diagram&lt;/summary&gt;
&lt;img src=https://user-images.githubusercontent.com/86590036/143687386-ce85c809-75ec-455b-a06d-22bc7e512b84.png&gt;

&lt;/details&gt;

&lt;details&gt;
&lt;summary&gt;Use-Case Diagram&lt;/summary&gt;
&lt;img src=https://user-images.githubusercontent.com/86590036/143687394-82c8a3f3-412d-47d2-812c-b123069eb70d.png&gt;

&lt;/details&gt;

&lt;details&gt;
&lt;summary&gt;Admin&lt;/summary&gt;
&lt;img src=https://user-images.githubusercontent.com/86590036/143687406-5a605678-9c56-46d6-a7b2-d4efb0b3b987.png&gt;

&lt;/details&gt;

&lt;details&gt;
&lt;summary&gt;Member&lt;/summary&gt;
&lt;img src=https://user-images.githubusercontent.com/86590036/143687426-27784532-dd53-4e12-88a8-bc55fb9dcb8c.png&gt;

&lt;/details&gt;

&lt;details&gt;
&lt;summary&gt;Non-Member&lt;/summary&gt;
&lt;img src=https://user-images.githubusercontent.com/86590036/143687433-cac9375e-914b-4651-bc45-f0222fd5f6e3.png&gt;

&lt;/details&gt;



&lt;h2&gt; ️ 6. DB Modeling&lt;/h2&gt;
&lt;details&gt;
&lt;summary&gt;HappyShare&lt;/summary&gt;
&lt;img src=https://user-images.githubusercontent.com/86590036/143687090-294ac9c4-405b-468d-a785-aaac02768337.png&gt;

&lt;/details&gt;

&lt;details&gt;
&lt;summary&gt;User&lt;/summary&gt;
&lt;img src=https://user-images.githubusercontent.com/86590036/143687252-e572ca45-fae0-4db2-ac88-a0f5a716d3ca.png&gt;

&lt;/details&gt;

&lt;details&gt;
&lt;summary&gt;Volunteer&lt;/summary&gt;
&lt;img src=https://user-images.githubusercontent.com/86590036/143687226-2f2e8be9-b9c1-4014-855a-ff373756a5ea.png&gt;

&lt;/details&gt;

&lt;details&gt;
&lt;summary&gt;Donation&lt;/summary&gt;
&lt;img src=https://user-images.githubusercontent.com/86590036/143687233-454907ae-7b44-4573-825b-dac6dce21679.png&gt;

&lt;/details&gt;

&lt;details&gt;
&lt;summary&gt;Challenge&lt;/summary&gt;
&lt;img src=https://user-images.githubusercontent.com/86590036/143687240-6cb39ed4-6047-434e-9582-1817c0fa297d.png&gt;

&lt;/details&gt;

&lt;details&gt;
&lt;summary&gt;Support&lt;/summary&gt;
&lt;img src=https://user-images.githubusercontent.com/86590036/143687244-461815f9-c793-4598-92b1-e633fdfee9bd.png&gt;

&lt;/details&gt;

&lt;h2&gt; ️ 7. Sitemap&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/143686970-e3ce5272-a6e8-41b2-b63e-da0b8023928b.png&quot; alt=&quot;HappyShare-sitemap&quot;&gt;&lt;/p&gt;
&lt;br /&gt;</description>
      <category>projects</category>
      <category>project</category>
      <category>개발</category>
      <category>개발프로젝트</category>
      <category>기부</category>
      <category>봉사</category>
      <category>팀프로젝트</category>
      <author>변사부</author>
      <guid isPermaLink="true">https://enjoydevelop.tistory.com/107</guid>
      <comments>https://enjoydevelop.tistory.com/107#entry107comment</comments>
      <pubDate>Mon, 13 Dec 2021 23:54:22 +0900</pubDate>
    </item>
    <item>
      <title>  Spring : GET &amp;amp; POST &amp;amp; Cookie</title>
      <link>https://enjoydevelop.tistory.com/106</link>
      <description>&lt;h2&gt;  GET, POST 구분하기&lt;/h2&gt;
&lt;h3&gt;  GET&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;  첫 번째 방법 - @RequestMapping&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
@RequestMapping(&amp;quot;/c02_1&amp;quot;)
public class Controller02_1 {

@RequestMapping(method = RequestMethod.GET) // GET 요청일 때만 호출된다.
@ResponseBody
public String handler1() {
  return &amp;quot;get&amp;quot;;
}
}&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;  두 번째 방법 - @GetMapping&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
@RequestMapping(&amp;quot;/c02_2&amp;quot;)
public class Controller02_2 {

@GetMapping 
@ResponseBody
public String handler1() {
  return &amp;quot;get&amp;quot;;
}
}&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;  POST&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;  첫 번째 방법 - @RequestMapping&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
@RequestMapping(&amp;quot;/c02_1&amp;quot;)
public class Controller02_1 {

@RequestMapping(method = RequestMethod.POST) 
@ResponseBody
public String handler2() {
  return &amp;quot;post&amp;quot;;
}
}&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;  두 번째 방법 - @PostMapping&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
@RequestMapping(&amp;quot;/c02_2&amp;quot;)
public class Controller02_2 {

@PostMapping 
@ResponseBody
public String handler2() {
  return &amp;quot;post&amp;quot;;
}
}&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt; RequestHandler를 구분하는 방법 - 파라미터 이름으로 구분하기 : params&lt;/h2&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
@RequestMapping(&amp;quot;/c03_1&amp;quot;)
public class Controller03_1 {

  @GetMapping(params = &amp;quot;name&amp;quot;)
  @ResponseBody
  public String handler1() {
    return &amp;quot;handler1&amp;quot;;
  }&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
@RequestMapping(&amp;quot;/c03_1&amp;quot;)
public class Controller03_1 {

  @GetMapping(params = {&amp;quot;age&amp;quot;, &amp;quot;name&amp;quot;})
  @ResponseBody
  public String handler3() {
    return &amp;quot;handler3&amp;quot;;
  }&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt; RequestHandler를 구분하는 방법 - 요청 헤더 이름으로 구분하기&lt;/h2&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
@RequestMapping(&amp;quot;/c03_2&amp;quot;)
public class Controller03_1 {

  @GetMapping(params = {&amp;quot;age&amp;quot;, &amp;quot;name&amp;quot;})
  @ResponseBody
  public String handler3() {
    return &amp;quot;handler3&amp;quot;;
  }&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt; RequestHandler를 구분하는 방법 - Accept 요청 헤더의 값에 따라 구분하기&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;  Accept 헤더란?&lt;ul&gt;
&lt;li&gt;  HTTP 클라이언트(웹 브라우저)에서 서버에 요청할 때 받고자 하는 콘텐트의 타입을 알려준다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;  1. text/plain&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
@RequestMapping(&amp;quot;/c03_3&amp;quot;)
public class Controller03_4 {

  @GetMapping(produces = &amp;quot;text/plain&amp;quot;)
  @ResponseBody
  public String handler1() {
    return &amp;quot;handler1&amp;quot;;
  }&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;  2. text/html&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
@RequestMapping(&amp;quot;/c03_3&amp;quot;)
public class Controller03_4 {

  @GetMapping(produces = &amp;quot;text/html&amp;quot;)
  @ResponseBody
  public String handler2() {
    return &amp;quot;handler2&amp;quot;;
  }&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;  3. application/json&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
@RequestMapping(&amp;quot;/c03_3&amp;quot;)
public class Controller03_4 {

  @GetMapping(produces = &amp;quot;application/json&amp;quot;)
  @ResponseBody
  public String handler3() {
    return &amp;quot;handler3&amp;quot;;
  }&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt; RequestHandler를 구분하는 방법 - Content-Type 헤더의 값에 따라 구분하기&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;  Content-Type 요청 헤더란?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;  HTTP 클라이언트가 보내는 데이터의 콘텐트 타입이다.&lt;/li&gt;
&lt;li&gt;  프론트 컨트롤러는 보내는 데이터의 타입에 따라 처리를 구분할 수 있다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;  클라이언트가 POST로 요청할 때 보내는 데이터의 유형에 따라 호출될 메서드를 구분할 때 사용한다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;  &lt;form&gt; 태그에서 enctype 속성에 &amp;quot;mulpart/form-data&amp;quot;를 지정하면 해당 형식으로 서버에 값을 보낸다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;  1. application/x-www-form-urlencoded&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
@RequestMapping(&amp;quot;/c03_4&amp;quot;)
public class Controller03_4 {

  @PostMapping(consumes = &amp;quot;application/x-www-form-urlencoded&amp;quot;)
  @ResponseBody
  public String handler1() {
    return &amp;quot;handler1&amp;quot;;
  }&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;  2. multipart/form-data&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
@RequestMapping(&amp;quot;/c03_4&amp;quot;)
public class Controller03_4 {

  @PostMapping(consumes = &amp;quot;multipart/form-data&amp;quot;)
  @ResponseBody
  public String handler2() {
    return &amp;quot;handler2&amp;quot;;
  }&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;  3. text/csv&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
@RequestMapping(&amp;quot;/c03_4&amp;quot;)
public class Controller03_4 {

  @PostMapping(consumes = &amp;quot;text/csv&amp;quot;)
  @ResponseBody
  public String handler3() {
    return &amp;quot;handler3&amp;quot;;
  }&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;  4. application/json&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
@RequestMapping(&amp;quot;/c03_4&amp;quot;)
public class Controller03_4 {

  @PostMapping(consumes = &amp;quot;application/json&amp;quot;)
  @ResponseBody
  public String handler4() {
    return &amp;quot;handler4&amp;quot;;
  }&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;  RequestHandler - @Cookie&lt;/h2&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;클라이언트가 보낸 쿠키 꺼내기

=&amp;gt; @CookieValue(쿠키명) 애노테이션을 RequestHandler의 아규먼트 앞에 붙인다.&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
@RequestMapping(&amp;quot;/c04_7&amp;quot;)
public class Controller04_7 {

  @GetMapping(&amp;quot;h1&amp;quot;)
  @ResponseBody
  public void handler1(
      PrintWriter out,
      HttpServletResponse response
      ) {
    // 이 메서드에서 쿠키를 클라이언트로 보낸다.
    try {

      response.addCookie(new Cookie(&amp;quot;name1&amp;quot;, &amp;quot;AB가각&amp;quot;));
      response.addCookie(new Cookie(&amp;quot;name2&amp;quot;, URLEncoder.encode(&amp;quot;AB가각&amp;quot;, &amp;quot;UTF-8&amp;quot;)));
      response.addCookie(new Cookie(&amp;quot;name3&amp;quot;, &amp;quot;HongKildong&amp;quot;));
      response.addCookie(new Cookie(&amp;quot;age&amp;quot;, &amp;quot;30&amp;quot;));
      response.addCookie(new Cookie(&amp;quot;default&amp;quot;, null));

    } catch (Exception e) {
      e.printStackTrace();
    }

    out.println(&amp;quot;send cookie!&amp;quot;);
  }

  @GetMapping(value = &amp;quot;h2&amp;quot;, produces = &amp;quot;text/plain;charset=UTF-8&amp;quot;)
  @ResponseBody
  public String handler2(
      @CookieValue(value = &amp;quot;name1&amp;quot;, required = false) String name1,
      @CookieValue(value = &amp;quot;name2&amp;quot;, defaultValue = &amp;quot;&amp;quot;) String name2,
      @CookieValue(value = &amp;quot;name3&amp;quot;, defaultValue = &amp;quot;홍길동&amp;quot;) String name3,
      @CookieValue(value = &amp;quot;age&amp;quot;, defaultValue = &amp;quot;0&amp;quot;) int age, // String ===&amp;gt; int 자동 변환
      @CookieValue(value = &amp;quot;default&amp;quot;, defaultValue = &amp;quot;11111&amp;quot;) int defaultValueTest
      ) throws Exception {

    System.out.println(&amp;quot;name1 쿠키 =&amp;gt; &amp;quot; + name1);
    System.out.println(&amp;quot;name2 쿠키 =&amp;gt; &amp;quot; + name2);
    System.out.println(&amp;quot;name3 쿠키 =&amp;gt; &amp;quot; + name3);
    System.out.println(&amp;quot;age 쿠키 =&amp;gt; &amp;quot; + age);
    System.out.println(&amp;quot;defaultValueTest 쿠키 =&amp;gt; &amp;quot; + defaultValueTest);
     }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;name1 쿠키 =&amp;gt; AB가각
name2 쿠키 =&amp;gt; ABê°ê°
name3 쿠키 =&amp;gt; HongKildong
age 쿠키 =&amp;gt; 30
defaultValueTest 쿠키 =&amp;gt; 11111&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Language/Spring</category>
      <category>Cookie</category>
      <category>GET</category>
      <category>java</category>
      <category>POST</category>
      <category>Spring</category>
      <category>세션</category>
      <category>스프링</category>
      <category>자바</category>
      <category>쿠키</category>
      <author>변사부</author>
      <guid isPermaLink="true">https://enjoydevelop.tistory.com/106</guid>
      <comments>https://enjoydevelop.tistory.com/106#entry106comment</comments>
      <pubDate>Thu, 9 Dec 2021 11:30:46 +0900</pubDate>
    </item>
    <item>
      <title>➰ Spring : RequestHandler - Page Controller</title>
      <link>https://enjoydevelop.tistory.com/105</link>
      <description>&lt;h2&gt;  페이지 컨트롤러 만드는 방법&lt;/h2&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller // 너는 이제부터 컨트롤러야
@RequestMapping(&amp;quot;/c01_1&amp;quot;) // 컨트롤러에 URL을 매핑하지요
@RequestMapping // RequestHandler의 어노테이션 : 요청이 들어왔을 때 호출될 메서드임을 표시한다.
@ResponseBody // 메서드의 리턴 값이 클라이언트에게 출력할 내용임을 표시한다. View 컴포넌트로 보낼려면 빼면 됨&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;   URL 한 개 당 한 개의 핸들러만 연결할 수 있다.&lt;/li&gt;
&lt;li&gt;   같은 URL에 대해 다른 메서드를 또 정의하면 실행 오류가 발생한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller 
@RequestMapping(&amp;quot;/c01_1&amp;quot;) 
public class Controller01_1 {

  @RequestMapping 
  @ResponseBody 
  public String handler() {
    return &amp;quot;c01_1 -&amp;gt; handler()&amp;quot;;
  }

  //@RequestMapping 주석 풀면 오류발생!
  @ResponseBody
  public String handler2() {
    return &amp;quot;c01_1 -&amp;gt; handler2()&amp;quot;;
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;  페이지 컨트롤러 만드는 방법 - 한 개의 페이지 컨트롤러에 여러 개의 요청 핸들러 두기&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;   요청이 들어 왔을 때 호출되는 메서드를 &amp;quot;RequestHandler&amp;quot; 라 부른다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;  핸들러에서 URL을 지정하는 방법 1 - path 사용&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
public class Controller01_2 {

  @RequestMapping(path = {&amp;quot;/c01_2_h1&amp;quot;}) 
  @ResponseBody
  public String handler() {
    return &amp;quot;c01_2_h1&amp;quot;;
  }&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;  핸들러에서 URL을 지정하는 방법 2 - value 사용&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
public class Controller01_2 {

  @RequestMapping(value = {&amp;quot;/c01_2_h2&amp;quot;}) 
  @ResponseBody
  public String handler2() {
    return &amp;quot;c01_2_h2&amp;quot;;
  }&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;  디렉토리 형식으로 지정하는 방법 1 - path, value 생략&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
public class Controller01_2 {

  @RequestMapping({&amp;quot;/c01_2/h3&amp;quot;}) 
  @ResponseBody
  public String handler3() {
    return &amp;quot;/c01_2/h3&amp;quot;;
  }&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;  디렉토리 형식으로 지정하는 방법 2 - 중괄호 생략&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
public class Controller01_2 {

  @RequestMapping(&amp;quot;/c01_2/h4&amp;quot;)
  @ResponseBody
  public String handler4() {
    return &amp;quot;/c01_2/h4&amp;quot;;
  }&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;  한 개의 RequestHandler에 여러 개의 URL을 매핑하는 방법 - 중괄호 사용&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
public class Controller01_2 {

  @RequestMapping({&amp;quot;/c01_2/h5&amp;quot;, &amp;quot;/c01_2/h6&amp;quot;, &amp;quot;/c01_2/h7&amp;quot;})
  @ResponseBody
  public String handler5() {
    return &amp;quot;/c01_2/h5,h6,h7&amp;quot;;&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;  페이지 컨트롤러 만드는 방법 - 기본 URL과 상세 URL을 분리하여 설정하기&lt;/h2&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
@RequestMapping(&amp;quot;/c01_3&amp;quot;) // 핸들러에 적용될 기본 URL을 지정한다.
public class Controller01_3 {

  @RequestMapping(&amp;quot;/h1&amp;quot;) // 기본 URL에 뒤에 붙는 상세 URL. 예) /c01_3/h1
  @ResponseBody
  public String handler() {
    return &amp;quot;h1&amp;quot;;
  }&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
@RequestMapping(&amp;quot;/c01_3&amp;quot;) // 핸들러에 적용될 기본 URL을 지정한다.
public class Controller01_3 {

  @RequestMapping(&amp;quot;h2&amp;quot;) // 앞에 /를 붙여도 되고 생략해도 된다. 예) /c01_3/h2
  @ResponseBody
  public String handler2() {
    return &amp;quot;h2&amp;quot;;
  }&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
@RequestMapping(&amp;quot;/c01_3&amp;quot;) // 핸들러에 적용될 기본 URL을 지정한다.
public class Controller01_3 {

  @RequestMapping({&amp;quot;h3&amp;quot;, &amp;quot;h4&amp;quot;, &amp;quot;h5&amp;quot;})
  @ResponseBody
  public String handler3() {
    return &amp;quot;h5,h6,h7&amp;quot;;
  }&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Language/Spring</category>
      <category>@RequestHandler</category>
      <category>java</category>
      <category>Page controller</category>
      <category>Spring</category>
      <category>페이지컨트롤러</category>
      <category>프론트컨트롤러</category>
      <author>변사부</author>
      <guid isPermaLink="true">https://enjoydevelop.tistory.com/105</guid>
      <comments>https://enjoydevelop.tistory.com/105#entry105comment</comments>
      <pubDate>Wed, 8 Dec 2021 20:26:26 +0900</pubDate>
    </item>
    <item>
      <title>  Spring : Session</title>
      <link>https://enjoydevelop.tistory.com/104</link>
      <description>&lt;h2&gt;  세션 다루기 - HttpSession 직접 사용하기&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;  HttpSession 객체를 사용하려면 아규먼트로 받아야 한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
@RequestMapping(&amp;quot;/c03_1&amp;quot;)
public class Controller03_1 {
  @GetMapping(value=&amp;quot;h1&amp;quot;, produces=&amp;quot;text/plain;charset=UTF-8&amp;quot;)
  @ResponseBody
  public String handler1(HttpSession session) {

    session.setAttribute(&amp;quot;name&amp;quot;, &amp;quot;홍길동&amp;quot;);
    session.setAttribute(&amp;quot;age&amp;quot;, &amp;quot;20&amp;quot;);

    return &amp;quot;세션에 값을 보관했음!&amp;quot;;
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
@RequestMapping(&amp;quot;/c03_1&amp;quot;)
public class Controller03_1 {
  @GetMapping(value=&amp;quot;h2&amp;quot;, produces=&amp;quot;text/plain;charset=UTF-8&amp;quot;)
  @ResponseBody
  public String handler2(HttpSession session) {

    return String.format(&amp;quot;name=%s, age=%s&amp;quot;,
        session.getAttribute(&amp;quot;name&amp;quot;),
        session.getAttribute(&amp;quot;age&amp;quot;));
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;name=민성, age=28&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;  세션 무효화시키기&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
@RequestMapping(&amp;quot;/c03_1&amp;quot;)
public class Controller03_1 {
  @GetMapping(value=&amp;quot;h3&amp;quot;, produces=&amp;quot;text/plain;charset=UTF-8&amp;quot;)
  @ResponseBody
  public String handler3(HttpSession session) {

    session.invalidate();

    return &amp;quot;세션을 무효화시켰음!&amp;quot;;
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;세션을 무효화시켰음!&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;name=null, age=null&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;  현재 페이지 컨트롤러의 @SessionAttributes 에 지정된 이름이 아니라면, 프론트 컨트롤러는 요청 파라미터에서 해당 이름의 값을 찾아 넘겨준다.&lt;/li&gt;
&lt;li&gt;  요청 파라미터에 해당 이름의 값이 없다면, 프론트 컨트롤러는 빈 문자열을 넘겨준다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
@RequestMapping(&amp;quot;/c03_1&amp;quot;)
public class Controller03_1 {
  @GetMapping(value=&amp;quot;h4&amp;quot;, produces=&amp;quot;text/plain;charset=UTF-8&amp;quot;)
  @ResponseBody
  public String handler4(

      @ModelAttribute(&amp;quot;name&amp;quot;) String name,
      @ModelAttribute(&amp;quot;age&amp;quot;) String age,
      @ModelAttribute(&amp;quot;name2&amp;quot;) String name2,
      @ModelAttribute(&amp;quot;age2&amp;quot;) String age2) {

    return String.format(&amp;quot;name=%s, age=%s, name2=%s, age2=%s&amp;quot;,
        name, age, name2, age2);
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;//@SessionAttributes의 이름을 설정하지 않았기 때문에 세션에 값이 들어있더라도 빈 문자열이 리턴된다.
name=, age=, name2=, age2=&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;  @SessionAttributes, @ModelAttribute&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;  Model 객체에 값을 담으면 프론트 컨트롤러는 ServletRequest 보관소에 값을 옮긴다.&lt;/li&gt;
&lt;li&gt;  만약 @SessionAttributes 에서 지정한 이름의 값이라면 HttpSession 객체에도 보관된다.&lt;/li&gt;
&lt;li&gt;  @SessionAttributes에 등록되지 않은 이름의 값은 세션에 보관되지 않는다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
@RequestMapping(&amp;quot;/c03_2&amp;quot;)
@SessionAttributes({&amp;quot;name2&amp;quot;,&amp;quot;age2&amp;quot;})
public class Controller03_2 {

  @GetMapping(value=&amp;quot;h1&amp;quot;, produces=&amp;quot;text/plain;charset=UTF-8&amp;quot;)
  @ResponseBody
  public String handler1(Model model) {

    model.addAttribute(&amp;quot;name2&amp;quot;, &amp;quot;민성&amp;quot;);
    model.addAttribute(&amp;quot;age2&amp;quot;, &amp;quot;28&amp;quot;);

    model.addAttribute(&amp;quot;tel2&amp;quot;, &amp;quot;1111-2222&amp;quot;);

    return &amp;quot;세션에 값 보관했음!&amp;quot;;
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
@RequestMapping(&amp;quot;/c03_2&amp;quot;)
@SessionAttributes({&amp;quot;name2&amp;quot;,&amp;quot;age2&amp;quot;})
public class Controller03_2 {

 @GetMapping(value=&amp;quot;h2&amp;quot;, produces=&amp;quot;text/plain;charset=UTF-8&amp;quot;)
  @ResponseBody
  public String handler2(HttpSession session) {
    return String.format(&amp;quot;name2=%s, age2=%s, tel2=%s&amp;quot;, 
        session.getAttribute(&amp;quot;name2&amp;quot;),
        session.getAttribute(&amp;quot;age2&amp;quot;),
        session.getAttribute(&amp;quot;tel2&amp;quot;));
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;name2=민성, age2=28, tel2=null&lt;/code&gt;&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;@ModelAttribute 에 지정된 이름이 @SessionAttributes에 있는 경우 &lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;  세션에 해당 값이 있으면 아규먼트에 넣어 준다.&lt;/li&gt;
&lt;li&gt;  세션에 해당 값이 없으면 예외가 발생한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start=&quot;2&quot;&gt;
&lt;li&gt;@ModelAttribute 에 지정된 이름이 @SessionAttributes에 없는 경우 &lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;  요청 파라미터에 값이 있다면 그 값을 넣어준다.&lt;/li&gt;
&lt;li&gt;  요청 파라미터에 값이 없으면 아규먼트에 빈 문자열을 넣어 준다.&lt;/li&gt;
&lt;li&gt;  세션에 있어도 등록되지 않았기 때문에 꺼내지 않는다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
@RequestMapping(&amp;quot;/c03_2&amp;quot;)
@SessionAttributes({&amp;quot;name2&amp;quot;,&amp;quot;age2&amp;quot;})
public class Controller03_2 {

 @GetMapping(value=&amp;quot;h3&amp;quot;, produces=&amp;quot;text/plain;charset=UTF-8&amp;quot;)
  @ResponseBody
  public String handler3(

      @ModelAttribute(&amp;quot;name2&amp;quot;) String name2,
      @ModelAttribute(&amp;quot;age2&amp;quot;) String age2,
      // @ModelAttribute(&amp;quot;ss&amp;quot;) String age3,

      @ModelAttribute(&amp;quot;tel2&amp;quot;) String tel2) {

    return String.format(&amp;quot;name2=%s, age2=%s, tel2=%s&amp;quot;, 
        name2, age2, tel2);
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt; @ModelAttribute(&amp;quot;ss&amp;quot;) String age3,를 넣으면 예외발생 그렇지 않으면

name2=민성, age2=28, tel2=&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Q. 왜 name과 age에는 빈 문자열이 저장될까?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;  @ModelAttribute는 현재 페이지 컨트롤러의 @SessionAttributes에 지정된 이름에 한해서만 세션에서 값을 꺼낸다.  &lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
@RequestMapping(&amp;quot;/c03_2&amp;quot;)
@SessionAttributes({&amp;quot;name2&amp;quot;,&amp;quot;age2&amp;quot;})
public class Controller03_2 {

 @GetMapping(value=&amp;quot;h4&amp;quot;, produces=&amp;quot;text/plain;charset=UTF-8&amp;quot;)
  @ResponseBody
  public String handler4(

      @ModelAttribute(&amp;quot;name&amp;quot;) String name,
      @ModelAttribute(&amp;quot;age&amp;quot;) String age,

      @ModelAttribute(&amp;quot;name2&amp;quot;) String name2,
      @ModelAttribute(&amp;quot;age2&amp;quot;) String age2) {

    return String.format(&amp;quot;name=%s, age=%s, name2=%s, age2=%s&amp;quot;, 
        name, age, name2, age2);
  }

}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;1. @SessionAttributes({&amp;quot;name2&amp;quot;,&amp;quot;age2&amp;quot;})로 설정한 경우
name=, age=, name2=민성, age2=28

2. @SessionAttributes({&amp;quot;name&amp;quot;,&amp;quot;age&amp;quot;,&amp;quot;name2&amp;quot;,&amp;quot;age2&amp;quot;})로 설정한 경우
name=민성, age=28, name2=민성, age2=28&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;  세션의 값을 무효화시키는 방법&lt;/h2&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
@RequestMapping(&amp;quot;/c03_3&amp;quot;)
@SessionAttributes({&amp;quot;name&amp;quot;,&amp;quot;name2&amp;quot;})
public class Controller03_3 {

 @GetMapping(value = &amp;quot;h1&amp;quot;, produces = &amp;quot;text/plain;charset=UTF-8&amp;quot;)
  @ResponseBody
  public String handler1(HttpSession session) {
    return String.format(&amp;quot;name=%s, age=%s, name2=%s, age2=%s&amp;quot;,
        session.getAttribute(&amp;quot;name&amp;quot;),
        session.getAttribute(&amp;quot;age&amp;quot;),
        session.getAttribute(&amp;quot;name2&amp;quot;),
        session.getAttribute(&amp;quot;age2&amp;quot;));
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;  페이지 컨트롤러에 상관없이 모든 세션 값을 삭제할 때&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;  용도 : 세션 자체를 무효화시켜 다음에 요청이 들어 왔을 때 새로 세션을 만들게 한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
@RequestMapping(&amp;quot;/c03_3&amp;quot;)
@SessionAttributes({&amp;quot;name&amp;quot;,&amp;quot;name2&amp;quot;})
public class Controller03_3 {

 GetMapping(value = &amp;quot;h2&amp;quot;, produces = &amp;quot;text/plain;charset=UTF-8&amp;quot;)
  @ResponseBody
  public String handler2(HttpSession session) {

    session.invalidate();

    return &amp;quot;session.invalidate()&amp;quot;;
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;name=null, age=null, name2=null, age2=null&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;  현재 페이지 컨트롤러의 @SessionAttributes에 지정된 값만 무효화시키기&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;  보통 페이지 컨트롤러는 서로 관련된 작업을 처리하는 RequestHandler를 정의한다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;예) BoardController : add(), detail(), list(), update(), delete()&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;  또는 트랜잭션과 관련된 작업을 처리하는 요청 핸들러를 두기도 한다.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;  이렇게 특정 작업에 관계된 RequestHandler가 작업하는 동안 공유할 데이터가 있다면 세션에 보관하면 편할 것이다.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;  작업이 완료되면 그 작업을 처리하는 동안 세션에 보관했던 데이터는 삭제해야 한다. 세션의 모든 데이터가 아니라 현재 페이지 컨트롤러가 보관한 데이터만 삭제하고 싶을 때 이 방식으로 처리하면 된다.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;  즉 세션을 그대로 유지한채로 이 페이지 컨트롤러에서 @SessionAttributes로 지정한 값만 무효화시킬 때 사용한다.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
@RequestMapping(&amp;quot;/c03_3&amp;quot;)
@SessionAttributes({&amp;quot;name&amp;quot;,&amp;quot;name2&amp;quot;})
public class Controller03_3 {

 @GetMapping(value = &amp;quot;h3&amp;quot;, produces = &amp;quot;text/plain;charset=UTF-8&amp;quot;)
  @ResponseBody
  public String handler3(SessionStatus status) {

    status.setComplete();

    return &amp;quot;status.setComplete()&amp;quot;;
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;name=null, age=28, name2=null, age2=28&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Language/Spring</category>
      <category>@ModelAttribute</category>
      <category>@SessionAttributes</category>
      <category>attribute</category>
      <category>invalidate</category>
      <category>java</category>
      <category>session</category>
      <category>Spring</category>
      <author>변사부</author>
      <guid isPermaLink="true">https://enjoydevelop.tistory.com/104</guid>
      <comments>https://enjoydevelop.tistory.com/104#entry104comment</comments>
      <pubDate>Tue, 7 Dec 2021 13:38:33 +0900</pubDate>
    </item>
    <item>
      <title>  Spring : ViewResolver</title>
      <link>https://enjoydevelop.tistory.com/103</link>
      <description>&lt;h2&gt;  기본 View Resolver 사용하기&lt;/h2&gt;
&lt;h3&gt;  ViewResolver란?&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;  실행할 뷰를 찾는 일을 한다.&lt;/li&gt;
&lt;li&gt;  페이지 컨트롤러가 리턴한 뷰 이름에 해당하는 뷰 콤포넌트를 찾는 역할.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;  종류는?&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;  ResourceBundleViewResolver&lt;ul&gt;
&lt;li&gt;  *.properties 에서 뷰 이름에 해당하는 콤포넌트의 URL을 찾는다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;  InternalResouceViewResolver&lt;ul&gt;
&lt;li&gt;  미리 지정된 접두사, 접미사를 사용하여 뷰이름으로 콤포넌트의 URL을 완성해 URL을 지정하기 편리하다.&lt;/li&gt;
&lt;li&gt;  교체 방법은 XML에서 설정하는 방법과 Java Config로 설정하는 방법이 있다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;  실행과정&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;페이지 컨트롤러는 클라이언트가 요청한 작업을 실행한 후 그 결과를 출력할 뷰의 이름을 리턴한다.&lt;/li&gt;
&lt;li&gt;프론트 컨트롤러는 RequestHandler가 리턴한 URL을 ViewResolver에게 전달한다.&lt;/li&gt;
&lt;li&gt;ViewResolver는 자신의 정책에 맞춰서 뷰 URL을 준비한다.&lt;/li&gt;
&lt;li&gt;InternalResourceViewResolver의 경우 RequestHandler가 리턴한 URL 앞, 뒤에 접두사와 접미사를 붙여 JSP를 찾는다.&lt;/li&gt;
&lt;li&gt;프론트 컨트롤러는 ViewResolver가 준비한 URL을 가지고 View 객체를 통해 해당 URL의 자원을 실행한다.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;  참고사항&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;  MVC 모델에서는 JSP는 뷰 콤포넌트로서 출력이라는 역할을 담당한다.&lt;/li&gt;
&lt;li&gt;  출력할 데이터를 준비하는 일은 페이지 컨트롤러가 담당한다.&lt;/li&gt;
&lt;li&gt;  JSP를 실행할 때는 항상 페이지 컨트롤러를 통해 실행해야 한다.&lt;/li&gt;
&lt;li&gt;  페이지 컨트롤러가 하는 일이 없어도 프로그래밍의 일관성을 위해 접 JSP을 요청하지 않고, 페이지 컨트롤러를 통해 요청해야 한다.&lt;/li&gt;
&lt;li&gt;  JSP 파일을 /WEB-INF 폴더 아래에 두는 것을 권장한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;  @ResponseBody - 뷰 이름을 리턴 할 때는 이 애노테이션을 붙이면 안된다.&lt;/li&gt;
&lt;li&gt;  기본 ViewResolver는 리턴 값으로 URL을 받아 웹 애플리케이션 디렉토리에서 JSP를 찾는다.&lt;/li&gt;
&lt;li&gt;  기본 ViewRosolver를 사용할 때는 뷰 이름을 리턴하지 않으면 오류 발생!&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
@RequestMapping(&amp;quot;/c01_1&amp;quot;)
public class Controller01_1 {
    @GetMapping(&amp;quot;h1&amp;quot;)
  public String handler1(Model model) {

    model.addAttribute(&amp;quot;name&amp;quot;, &amp;quot;민성&amp;quot;);
    model.addAttribute(&amp;quot;age&amp;quot;, 28);

    return &amp;quot;/jsp/c01_1.jsp&amp;quot;;
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
@RequestMapping(&amp;quot;/c01_1&amp;quot;)
public class Controller01_1 {
   @GetMapping(&amp;quot;h2&amp;quot;)
  public void handler2(Model model) {
    model.addAttribute(&amp;quot;name&amp;quot;, &amp;quot;민성2&amp;quot;);
    model.addAttribute(&amp;quot;age&amp;quot;, 28);
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
@RequestMapping(&amp;quot;/c01_1&amp;quot;)
public class Controller01_1 {
    @GetMapping(&amp;quot;h3&amp;quot;)
  public String handler3(Map&amp;lt;String, Object&amp;gt; map) {

    map.put(&amp;quot;name&amp;quot;, &amp;quot;민성3&amp;quot;);
    map.put(&amp;quot;age&amp;quot;, 28);

    return &amp;quot;/WEB-INF/jsp/c01_1.jsp&amp;quot;;
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;  기본 View Resolver 교체 - InternalResourceViewResolver 사용하기&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;XML에서 설정하는 방법과 Java Config(@Bean)로 설정하는 방법으로 꼭 등록하고 사용하자.&lt;/li&gt;
&lt;li&gt;RequestHandler가 리턴한 URL 앞, 뒤에 접두사와 접미사를 붙여 JSP를 찾는다.&lt;/li&gt;
&lt;li&gt;RequestHandler가 뷰 이름을 리턴하지 않으면 RequestHandler의 URL을 뷰 이름으로 사용한다. 실무에서 많이 사용하는 방법이다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;  Map 사용하기&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
@RequestMapping(&amp;quot;/c01_2&amp;quot;)
public class Controller01_2 {

  @GetMapping(&amp;quot;h1&amp;quot;)
  public String handler1(Map&amp;lt;String, Object&amp;gt; map) {

    map.put(&amp;quot;name&amp;quot;, &amp;quot;민성&amp;quot;);
    map.put(&amp;quot;age&amp;quot;, 28);

    return &amp;quot;c01_2/h1&amp;quot;;
    ///WEB-INF/jsp2/c01_1/h1.jsp
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
@RequestMapping(&amp;quot;/c01_2&amp;quot;)
public class Controller01_2 {

  @GetMapping(&amp;quot;h3&amp;quot;)
  public Map&amp;lt;String, Object&amp;gt; handler3() {

    HashMap&amp;lt;String, Object&amp;gt; map = new HashMap&amp;lt;&amp;gt;();
    map.put(&amp;quot;name&amp;quot;, &amp;quot;민성3&amp;quot;);
    map.put(&amp;quot;age&amp;quot;, 28);

    return map;
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;  Model 사용하기&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
@RequestMapping(&amp;quot;/c01_2&amp;quot;)
public class Controller01_2 {

  @GetMapping(&amp;quot;h2&amp;quot;)
  public void handler2(Model model) {

    model.addAttribute(&amp;quot;name&amp;quot;, &amp;quot;민성2&amp;quot;);
    model.addAttribute(&amp;quot;age&amp;quot;, 28);
  }

}&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;  ModelAndView 사용하기&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;프론트 컨트롤러는 ModelAndView 객체에 보관되어 있는 값들을 ServletRequest 보관소로 옮기고, 설정된 뷰 이름을 ViewResolver에게 넘긴다.&lt;/li&gt;
&lt;li&gt;뷰 이름을 지정하지 않으면 RequestHandler의 path를 ViewResolver에게 넘긴다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
@RequestMapping(&amp;quot;/c01_2&amp;quot;)
public class Controller01_2 {

  @GetMapping(&amp;quot;h4&amp;quot;)
  public ModelAndView handler4() {

    ModelAndView mv = new ModelAndView();
    mv.addObject(&amp;quot;name&amp;quot;, &amp;quot;민성3&amp;quot;);
    mv.addObject(&amp;quot;age&amp;quot;, 28);
    mv.setViewName(&amp;quot;c01_2/h4&amp;quot;);

    return mv;
  }

}&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
@RequestMapping(&amp;quot;/c01_2&amp;quot;)
public class Controller01_2 {

 @GetMapping(&amp;quot;h5&amp;quot;)
  public ModelAndView handler5() {

    ModelAndView mv = new ModelAndView();
    mv.addObject(&amp;quot;name&amp;quot;, &amp;quot;민성3&amp;quot;);
    mv.addObject(&amp;quot;age&amp;quot;, 28);

    return mv;
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;  URL 에서 값 추출하기 - @PathVariable&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;  REST API에서 값을 호출할 때 주로 많이 사용한다.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;  게시물 삭제를 할 때도 사용한다.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;  클라이언트로부터 값을 받는 일반적인 방법&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;  Query String 으로 받는다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;  URL path에 값을 포함하여 전달할 수 있고, 그 값을 아규먼트로 받을 수 있다.   &lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;  URL path에 포함된 값을 받으려면 &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;=&amp;gt; .../{변수명}/{변수명}&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;  변수명과 아규먼트의 이름이 같다면, 변수명을 생략할 수 있다.    &lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;방법 1&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
@RequestMapping(&amp;quot;/c02_1&amp;quot;)
public class Controller02_1 {
//.../c02_1?name=byun&amp;amp;age=28
  @GetMapping
  @ResponseBody
  public String handler1(String name, int age) {
       return String.format(&amp;quot;name=%s, age=%d&amp;quot;, name, age);
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;name=byun, age=28&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;방법 2&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
@RequestMapping(&amp;quot;/c02_1&amp;quot;)
public class Controller02_1 {
//.../c02_1/byun/28
   @GetMapping(&amp;quot;{name}/{age}&amp;quot;)
  @ResponseBody
  public String handler2(
      /*
      @PathVariable(&amp;quot;name&amp;quot;) String name,
      @PathVariable(&amp;quot;age&amp;quot;) int age
       */
      @PathVariable String name,
      @PathVariable int age
      ) {

    return String.format(&amp;quot;name=%s, age=%d&amp;quot;, name, age);
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;name=byun, age=28&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;방법 3&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
@RequestMapping(&amp;quot;/c02_1&amp;quot;)
public class Controller02_1 {
//.../c02_1/byun_28
  @GetMapping(&amp;quot;{name}_{age}&amp;quot;)
  @ResponseBody
  public String handler3(
      @PathVariable String name,
      @PathVariable int age
      ) {
    return String.format(&amp;quot;name=%s, age=%d&amp;quot;, name, age);
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;name=byun, age=28&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Language/Spring</category>
      <category>@Controller</category>
      <category>@RequestMapping</category>
      <category>java</category>
      <category>Spring</category>
      <category>ViewResolver</category>
      <category>스프링</category>
      <author>변사부</author>
      <guid isPermaLink="true">https://enjoydevelop.tistory.com/103</guid>
      <comments>https://enjoydevelop.tistory.com/103#entry103comment</comments>
      <pubDate>Sun, 5 Dec 2021 18:49:24 +0900</pubDate>
    </item>
    <item>
      <title>  Spring : RequestHandler - @ReponseBody</title>
      <link>https://enjoydevelop.tistory.com/102</link>
      <description>&lt;h2&gt;  RequestHandler - @ReponseBody&lt;/h2&gt;
&lt;h3&gt;  1. 콘텐트를 직접 리턴하기&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;  리턴 값이 클라이언트에게 보내는 콘텐트라면 메서드 선언부에 @ResponseBody를 붙인다.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;  붙이지 않으면 프론트 컨트롤러는 view URL로 인식한다.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;  출력 콘텐트는 브라우저에서 기본으로 HTML로 간주한다.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;  단 한글은 ISO-8859-1 문자표에 정의된 코드가 아니기 때문에 클라이언트로 보낼 때 &amp;#39;?&amp;#39; 문자로 바꿔 보낸다.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
@RequestMapping(&amp;quot;/c05_1&amp;quot;)
public class Controller05_1 {

 @GetMapping(&amp;quot;h1&amp;quot;)
  @ResponseBody
  public String handler1() {    
    return &amp;quot;&amp;lt;html&amp;gt;&amp;lt;body&amp;gt;&amp;lt;h1&amp;gt;minsungbyun &amp;amp;&amp;amp; 변민성&amp;lt;/h1&amp;gt;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&amp;quot;;
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;minsungbyun &amp;amp;&amp;amp; ???&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Q. 한글 ?을 해결하려면 어떻게 해야할까?&lt;/p&gt;
&lt;h3&gt;✔️ 리턴되는 콘텐트의 MIME 타입과 charset을 지정하고 싶다면 어노테이션의 produces 프로퍼티에 설정해준다.&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
@RequestMapping(&amp;quot;/c05_1&amp;quot;)
public class Controller05_1 {

 @GetMapping(value = &amp;quot;h2&amp;quot;, produces = &amp;quot;text/html;charset=UTF-8&amp;quot;)
  @ResponseBody
  public String handler2() {
    return &amp;quot;&amp;lt;html&amp;gt;&amp;lt;body&amp;gt;&amp;lt;h1&amp;gt;minsungbyun &amp;amp;&amp;amp; 변민성&amp;lt;h1&amp;gt;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&amp;quot;;
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;minsungbyun &amp;amp;&amp;amp; 변민성&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;✔️ HttpServletResponse에 대해 다음과 같이 콘텐트 타입을 설정해봐야 소용없다.&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
@RequestMapping(&amp;quot;/c05_1&amp;quot;)
public class Controller05_1 {

 @GetMapping(&amp;quot;h3&amp;quot;)
  @ResponseBody
  public String handler3(HttpServletResponse response) {

    response.setContentType(&amp;quot;text/html;charset=UTF-8&amp;quot;);

    return &amp;quot;&amp;lt;html&amp;gt;&amp;lt;body&amp;gt;&amp;lt;h1&amp;gt;minsungbyun &amp;amp;&amp;amp; 변민성&amp;lt;h1&amp;gt;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&amp;quot;;
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;minsungbyun &amp;amp;&amp;amp; ???&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;✔️ HttpEntity 객체 사용 - @ResponseBody 애노테이션을 붙이지 않아도 된다.&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
@RequestMapping(&amp;quot;/c05_1&amp;quot;)
public class Controller05_1 {

  @GetMapping(&amp;quot;h4&amp;quot;)
  public HttpEntity&amp;lt;String&amp;gt; handler4(HttpServletResponse response) {

    HttpEntity&amp;lt;String&amp;gt; entity = new HttpEntity&amp;lt;&amp;gt;(
        &amp;quot;&amp;lt;html&amp;gt;&amp;lt;body&amp;gt;&amp;lt;h1&amp;gt;minsungbyun &amp;amp;&amp;amp; 변민성&amp;lt;h1&amp;gt;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&amp;quot;);

    return entity;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;minsungbyun &amp;amp;&amp;amp; ???&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;  이 경우에는 출력할 때 ISO-8859-1 문자표의 코드로 변환하여 출력한다. 그래서 한글은 ? 문자로 변환된다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;✔️ HttpEntity 객체 사용 - 한글을 제대로 출력하고 싶으면 위 애노테이션의 produces 속성에 콘텐트 타입을 지정한다.&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
@RequestMapping(&amp;quot;/c05_1&amp;quot;)
public class Controller05_1 {

  @GetMapping(value = &amp;quot;h5&amp;quot;, produces = &amp;quot;text/html;charset=UTF-8&amp;quot;)
  public HttpEntity&amp;lt;String&amp;gt; handler5(HttpServletResponse response) {

    HttpEntity&amp;lt;String&amp;gt; entity = new HttpEntity&amp;lt;&amp;gt;(
        &amp;quot;&amp;lt;html&amp;gt;&amp;lt;body&amp;gt;&amp;lt;h1&amp;gt;minsungbyun &amp;amp;&amp;amp; 변민성&amp;lt;h1&amp;gt;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&amp;quot;);

    return entity;
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;minsungbyun &amp;amp;&amp;amp; 변민성&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;✔️ ResponseEntity 객체 사용 - 응답 헤더에 직접 Content-Type을 설정하기&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;  응답 상태 코드를 추가하기 편하다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
@RequestMapping(&amp;quot;/c05_1&amp;quot;)
public class Controller05_1 {

  @GetMapping(&amp;quot;h7&amp;quot;)
  public ResponseEntity&amp;lt;String&amp;gt; handler7(HttpServletResponse response) {

    HttpHeaders headers = new HttpHeaders();
    headers.add(&amp;quot;Content-Type&amp;quot;, &amp;quot;text/html;charset=UTF-8&amp;quot;);

    // 임의의 응답 헤더를 추가
    headers.add(&amp;quot;MIN-OK&amp;quot;, &amp;quot;minsung&amp;quot;);

    ResponseEntity&amp;lt;String&amp;gt; entity = new ResponseEntity&amp;lt;&amp;gt;(
        &amp;quot;&amp;lt;html&amp;gt;&amp;lt;body&amp;gt;&amp;lt;h1&amp;gt;mminsungbyun &amp;amp;&amp;amp; 변민성&amp;lt;h1&amp;gt;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&amp;quot;,
        headers,
        HttpStatus.OK // 응답 상태 코드를 설정할 수 있다.
        );

    return entity;
  }

}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;minsungbyun &amp;amp;&amp;amp; 변민성&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;✔️ HttpEntity 객체 사용 - 응답 헤더에 직접 Content-Type을 설정하기&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
@RequestMapping(&amp;quot;/c05_1&amp;quot;)
public class Controller05_1 {

  @GetMapping(&amp;quot;h6&amp;quot;)
  public HttpEntity&amp;lt;String&amp;gt; handler6(HttpServletResponse response) {

    HttpHeaders headers = new HttpHeaders();
    headers.add(&amp;quot;Content-Type&amp;quot;, &amp;quot;text/html;charset=UTF-8&amp;quot;);

    HttpEntity&amp;lt;String&amp;gt; entity = new HttpEntity&amp;lt;&amp;gt;(
        &amp;quot;&amp;lt;html&amp;gt;&amp;lt;body&amp;gt;&amp;lt;h1&amp;gt;mminsungbyun &amp;amp;&amp;amp; 변민성&amp;lt;h1&amp;gt;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&amp;quot;,
        headers);

    return entity;
  }

}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;minsungbyun &amp;amp;&amp;amp; 변민성&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/144701521-6d04ac3f-c6bb-41c0-a5a6-22af305bc029.PNG&quot; alt=&quot;응답헤더추가&quot;&gt;&lt;/p&gt;
&lt;h3&gt;  2. view URL 리턴하기, 리다이렉트, forward/include&lt;/h3&gt;
&lt;h4&gt;✔️ 1) 메서드 선언부에 @ResponseBody를 붙이지 않으면 프론트 컨트롤러는 view URL로 간주한다.&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;  리턴 URL의 &amp;#39;/&amp;#39;는 웹 애플리케이션 루트를 의미한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
@RequestMapping(&amp;quot;/c05_2&amp;quot;)
public class Controller05_2 {
    @GetMapping(&amp;quot;h1&amp;quot;)
  public String handler1() {
    return &amp;quot;/jsp/c05_2.jsp&amp;quot;;
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;해당 jsp로 이동하였습니다.&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;✔️ 2) /WEB-INF 폴더에 있는 파일은 클라이언트에서 직접 실행을 요청할 수 없다.&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;  MVC 패턴에서는 항상 Controller에 의해 View가 통제되어야 한다.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;  Controller를 경유하지 않고 View를 실행하게 해서는 안된다.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;  그래야 View에 대해 일관성 있는 제어가 가능하다&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;✔️ view URL로 보내는 3가지 방법&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;String으로 보내기&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@GetMapping(&amp;quot;h2&amp;quot;)
  public String handler2() {
    return &amp;quot;/WEB-INF/jsp/c05_2.jsp&amp;quot;;
  }
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;HTTP 상태 404 – 찾을 수 없음
타입 상태 보고

메시지 파일 [/WEB-INF/jsp/c05_2.jsp]을(를) 찾을 수 없습니다.

설명 Origin 서버가 대상 리소스를 위한 현재의 representation을 찾지 못했거나, 그것이 존재하는지를 밝히려 하지 않습니다.

Apache Tomcat/9.0.54&lt;/code&gt;&lt;/pre&gt;
&lt;ol start=&quot;2&quot;&gt;
&lt;li&gt;View로 보내기&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@GetMapping(&amp;quot;h3&amp;quot;)
  public View handler3() {
    return new JstlView(&amp;quot;/WEB-INF/jsp/c05_2.jsp&amp;quot;);
  }&lt;/code&gt;&lt;/pre&gt;
&lt;ol start=&quot;3&quot;&gt;
&lt;li&gt;ModelAndView로 보내기&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@GetMapping(&amp;quot;h4&amp;quot;)
  public ModelAndView handler4() {
    System.out.println(&amp;quot;===&amp;gt; /app1/c05_2/h4&amp;quot;);
    ModelAndView mv = new ModelAndView();
    mv.setViewName(&amp;quot;/WEB-INF/jsp/c05_2.jsp&amp;quot;);
    return mv;
  }&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;✔️ 3) redirect를 지정할 때는 URL 앞에 &amp;quot;redirect:&amp;quot; 접두어를 붙인다.&lt;/h4&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@GetMapping(&amp;quot;h5&amp;quot;)
  public String handler5() {
    return &amp;quot;redirect:h4&amp;quot;;
  }&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;✔️ 4) forward를 지정할 때는 URL 앞에 &amp;quot;forward:&amp;quot; 접두어를 붙인다. &amp;amp;&amp;amp; 인클루드를 지정할 때는 URL 앞에 &amp;quot;include:&amp;quot; 접두어를 붙인다.&lt;/h4&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@GetMapping(&amp;quot;h6&amp;quot;)
  public String handler6() {
    return &amp;quot;forward:h4&amp;quot;;
  }&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;  3. RequestHandler에서 view 컴포넌트(JSP) 쪽에 데이터 전달하기&lt;/h3&gt;
&lt;h4&gt;✔️ ServletRequest에 담아서 보내기&lt;/h4&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
@RequestMapping(&amp;quot;/c05_3&amp;quot;)
public class Controller05_3 {
     @GetMapping(&amp;quot;h1&amp;quot;)
  public String handler1(
      ServletRequest request) {

    // JSP가 꺼내 쓸 수 있도록 ServletRequest 객체에 직접 담는다.
    request.setAttribute(&amp;quot;name&amp;quot;, &amp;quot;민성&amp;quot;);
    request.setAttribute(&amp;quot;age&amp;quot;, 28); // auto-boxing: int ===&amp;gt; Integer 객체
    request.setAttribute(&amp;quot;working&amp;quot;, true); // auto-boxing: boolean ===&amp;gt; Boolean 객체

    return &amp;quot;/WEB-INF/jsp/c05_3.jsp&amp;quot;;
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;값 꺼내기
name = 민성
age = 28
working = true&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;✔️ Map에 담아서 보내기&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;  아규먼트에 Map 타입의 변수를 선언하면 프론트 컨트롤러는 빈 맵 객체를 만들어 넘겨준다.&lt;/li&gt;
&lt;li&gt;  이 맵 객체의 용도는 JSP에 전달할 값을 담는 용이다.&lt;/li&gt;
&lt;li&gt;  맵 객체에 값을 담아 놓으면 프론트 컨트롤러가 JSP를 실행하기 전에 ServletRequest로 복사한다. 따라서 ServletRequest에 값을 담는 것과 같다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt; @GetMapping(&amp;quot;h2&amp;quot;)
  public String handler2(Map&amp;lt;String,Object&amp;gt; map) {
    map.put(&amp;quot;name&amp;quot;, &amp;quot;민성&amp;quot;);
    map.put(&amp;quot;age&amp;quot;, 28); // auto-boxing
    map.put(&amp;quot;working&amp;quot;, true); // auto-boxing

    return &amp;quot;/WEB-INF/jsp/c05_3.jsp&amp;quot;;
  }&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;값 꺼내기
name = 민성
age = 28
working = true&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;✔️ Model에 담아서 보내기&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;  이 객체의 용도는 Map 객체와 같다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@GetMapping(&amp;quot;h3&amp;quot;)
  public String handler3(Model model) {

    model.addAttribute(&amp;quot;name&amp;quot;, &amp;quot;민성&amp;quot;);
    model.addAttribute(&amp;quot;age&amp;quot;, 28); // auto-boxing
    model.addAttribute(&amp;quot;working&amp;quot;, true); // auto-boxing

    return &amp;quot;/WEB-INF/jsp/c05_3.jsp&amp;quot;;
  }
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;값 꺼내기
name = 민성
age = 28
working = true&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;✔️ ModelAndView 담아서 보내기&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;  RequestHandler에서 ModelAndView 객체를 만들어 리턴한다.&lt;/li&gt;
&lt;li&gt;  이 객체의 용도는 Model과 view URL을 함께 리턴하는 것이다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@GetMapping(&amp;quot;h4&amp;quot;)
  public ModelAndView handler4() {

    ModelAndView mv = new ModelAndView();

    // JSP가 사용할 데이터를 담고
    mv.addObject(&amp;quot;name&amp;quot;, &amp;quot;민성&amp;quot;);
    mv.addObject(&amp;quot;age&amp;quot;, 28); // auto-boxing
    mv.addObject(&amp;quot;working&amp;quot;, true); // auto-boxing

    // JSP 주소도 담는다.
    mv.setViewName(&amp;quot;/WEB-INF/jsp/c05_3.jsp&amp;quot;);

    return mv;
  }
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;결과&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;값 꺼내기
name = 민성
age = 28
working = true&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Language/Spring</category>
      <category>@ResponseBody</category>
      <category>model</category>
      <category>ModelAndView</category>
      <category>RequestHandler</category>
      <category>Spring</category>
      <category>스프링</category>
      <author>변사부</author>
      <guid isPermaLink="true">https://enjoydevelop.tistory.com/102</guid>
      <comments>https://enjoydevelop.tistory.com/102#entry102comment</comments>
      <pubDate>Sat, 4 Dec 2021 18:33:10 +0900</pubDate>
    </item>
    <item>
      <title> ️ Spring : multipart/form-data 형식의 파라미터 값 받기</title>
      <link>https://enjoydevelop.tistory.com/101</link>
      <description>&lt;h2&gt;  RequestHandler - multipart/form-data 형식의 파라미터 값 받기&lt;/h2&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;// 클라이언트가 멀티파트 형식으로 전송한 데이터를 꺼내기
  1. Servlet API에서 제공하는 Part를 사용하거나
  2. Spring에서 제공하는 MultipartFile 타입의 아규먼트를 선언하면 된다.

  // 주의!
   1. DispatcherServlet을 web.xml을 통해 배치했다면, &amp;lt;multipart-config/&amp;gt; 태그를 추가해야 한다.

   2. WebApplicationInitializer를 통해 DispatcherServlet을 배치했다면,
  App1WebApplicationInitializer 클래스를 참고하라!&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;// config 파일
public class App1WebApplicationInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {

  @Override
  protected Class&amp;lt;?&amp;gt;[] getRootConfigClasses() {
    return new Class&amp;lt;?&amp;gt;[] {RootConfig.class};
  }

  @Override
  protected Class&amp;lt;?&amp;gt;[] getServletConfigClasses() {
    return new Class&amp;lt;?&amp;gt;[] {App1Config.class};
  }

  @Override
  protected String[] getServletMappings() {
    //  DispatcherServlet에 대해 URL 매핑 정보를 리턴한다.
    return new String[] {&amp;quot;/app1/*&amp;quot;};
  }

  @Override
  protected String getServletName() {
    // DistpatcherServlet의 이름을 리턴한다.
    return &amp;quot;app1&amp;quot;;
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;  1. Servlet API - Part&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt; @PostMapping(value = &amp;quot;h1&amp;quot;, produces = &amp;quot;text/html;charset=UTF-8&amp;quot;)
  @ResponseBody
  public String handler1(
      String name,
      int age,
      Part photo // Servlet API의 객체
      ) throws Exception {

    String filename = null;
    if (photo.getSize() &amp;gt; 0) {
      filename = UUID.randomUUID().toString();
      String path = sc.getRealPath(&amp;quot;/html/app1/&amp;quot; + filename);
      photo.write(path);
    }

    return &amp;quot;&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&amp;lt;title&amp;gt;c04_8/h1&amp;lt;/title&amp;gt;&amp;lt;/head&amp;gt;&amp;lt;body&amp;gt;&amp;quot; + &amp;quot;&amp;lt;h1&amp;gt;업로드 결과&amp;lt;/h1&amp;gt;&amp;quot; + &amp;quot;&amp;lt;p&amp;gt;이름:&amp;quot; + name
        + &amp;quot;&amp;lt;/p&amp;gt;&amp;quot; + &amp;quot;&amp;lt;p&amp;gt;나이:&amp;quot; + age + &amp;quot;&amp;lt;/p&amp;gt;&amp;quot; +
        // 현재 URL이 다음과 같기 때문에 업로드 이미지의 URL을 이 경로를 기준으로 계산해야 한다.
        // http://localhost:8080/java-spring-webmvc/app1/c04_8/h1
        //
        (filename != null ? &amp;quot;&amp;lt;p&amp;gt;&amp;lt;img src=&amp;#39;../../html/app1/&amp;quot; + filename + &amp;quot;&amp;#39;&amp;gt;&amp;lt;/p&amp;gt;&amp;quot; : &amp;quot;&amp;quot;)
        + &amp;quot;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&amp;quot;;
  }&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;  2. Spring API - MultipartFile&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;MultipartFile로 멀티파트 데이터를 받으려면,&lt;br&gt;Spring WebMVC 설정에서 MultipartResolver 객체를 등록해야 한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@PostMapping(value = &amp;quot;h2&amp;quot;, produces = &amp;quot;text/html;charset=UTF-8&amp;quot;)
  @ResponseBody
  public String handler2(//
      String name, //
      @RequestParam(defaultValue = &amp;quot;0&amp;quot;) int age, //
      MultipartFile photo // Spring API의 객체
      ) throws Exception {

    String filename = null;
    if (!photo.isEmpty()) {
      filename = UUID.randomUUID().toString();
      String path = sc.getRealPath(&amp;quot;/html/app1/&amp;quot; + filename);
      photo.transferTo(new File(path));
    }

    return &amp;quot;&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&amp;lt;title&amp;gt;c04_8/h2&amp;lt;/title&amp;gt;&amp;lt;/head&amp;gt;&amp;lt;body&amp;gt;&amp;quot; + &amp;quot;&amp;lt;h1&amp;gt;업로드 결과&amp;lt;/h1&amp;gt;&amp;quot; + &amp;quot;&amp;lt;p&amp;gt;이름:&amp;quot; + name
        + &amp;quot;&amp;lt;/p&amp;gt;&amp;quot; + &amp;quot;&amp;lt;p&amp;gt;나이:&amp;quot; + age + &amp;quot;&amp;lt;/p&amp;gt;&amp;quot; +
        // 현재 URL이 다음과 같기 때문에 업로드 이미지의 URL을 이 경로를 기준으로 계산해야 한다.
        // http://localhost:8080/java-spring-webmvc/app1/c04_8/h2
        //
        (filename != null ? &amp;quot;&amp;lt;p&amp;gt;&amp;lt;img src=&amp;#39;../../html/app1/&amp;quot; + filename + &amp;quot;&amp;#39;&amp;gt;&amp;lt;/p&amp;gt;&amp;quot; : &amp;quot;&amp;quot;)
        + &amp;quot;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&amp;quot;;
  }&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;  3. Spring API - MultipartFile[]&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@PostMapping(value = &amp;quot;h3&amp;quot;, produces = &amp;quot;text/html;charset=UTF-8&amp;quot;)
  @ResponseBody
  public String handler3(//
      String name, //
      int age, //
      // 같은 이름으로 전송된 여러 개의 파일은 배열로 받으면 된다.
      MultipartFile[] photo //
      ) throws Exception {

    StringWriter out0 = new StringWriter();
    PrintWriter out = new PrintWriter(out0);
    out.println(&amp;quot;&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&amp;lt;title&amp;gt;c04_8/h3&amp;lt;/title&amp;gt;&amp;lt;/head&amp;gt;&amp;lt;body&amp;gt;&amp;quot;);
    out.println(&amp;quot;&amp;lt;h1&amp;gt;업로드 결과&amp;lt;/h1&amp;gt;&amp;quot;);
    out.printf(&amp;quot;&amp;lt;p&amp;gt;이름:%s&amp;lt;/p&amp;gt;\n&amp;quot;, name);
    out.printf(&amp;quot;&amp;lt;p&amp;gt;나이:%s&amp;lt;/p&amp;gt;\n&amp;quot;, age);

    for (MultipartFile f : photo) {
      if (!f.isEmpty()) {
        String filename = UUID.randomUUID().toString();
        String path = sc.getRealPath(&amp;quot;/html/app1/&amp;quot; + filename);
        f.transferTo(new File(path));
        out.printf(&amp;quot;&amp;lt;p&amp;gt;&amp;lt;img src=&amp;#39;../../html/app1/%s&amp;#39;&amp;gt;&amp;lt;/p&amp;gt;\n&amp;quot;, filename);
      }
    }
    out.println(&amp;quot;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&amp;quot;);

    return out0.toString();
  }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;  html&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-html&quot;&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&amp;quot;UTF-8&amp;quot;&amp;gt;
&amp;lt;title&amp;gt;c04_8&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;

&amp;lt;h1&amp;gt;파일 업로드 하기&amp;lt;/h1&amp;gt;

&amp;lt;form action=&amp;quot;../../app1/c04_8/h1&amp;quot; method=&amp;quot;post&amp;quot; 
      enctype=&amp;quot;multipart/form-data&amp;quot;&amp;gt;
이름: &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;name&amp;quot; value=&amp;quot;kim&amp;quot;&amp;gt;&amp;lt;br&amp;gt;
나이: &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;age&amp;quot; value=&amp;quot;20&amp;quot;&amp;gt;&amp;lt;br&amp;gt;
사진: &amp;lt;input type=&amp;quot;file&amp;quot; name=&amp;quot;photo&amp;quot;&amp;gt;&amp;lt;br&amp;gt;
&amp;lt;button&amp;gt;c04_8/h1 실행&amp;lt;/button&amp;gt;
&amp;lt;/form&amp;gt;
&amp;lt;hr&amp;gt;

&amp;lt;form action=&amp;quot;../../app1/c04_8/h2&amp;quot; method=&amp;quot;post&amp;quot; 
      enctype=&amp;quot;multipart/form-data&amp;quot;&amp;gt;
이름: &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;name&amp;quot; value=&amp;quot;kim&amp;quot;&amp;gt;&amp;lt;br&amp;gt;
나이: &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;age&amp;quot; value=&amp;quot;20&amp;quot;&amp;gt;&amp;lt;br&amp;gt;
사진: &amp;lt;input type=&amp;quot;file&amp;quot; name=&amp;quot;photo&amp;quot;&amp;gt;&amp;lt;br&amp;gt;
&amp;lt;button&amp;gt;c04_8/h2 실행&amp;lt;/button&amp;gt;
&amp;lt;/form&amp;gt;
&amp;lt;hr&amp;gt;

&amp;lt;form action=&amp;quot;../../app1/c04_8/h3&amp;quot; method=&amp;quot;post&amp;quot; 
      enctype=&amp;quot;multipart/form-data&amp;quot;&amp;gt;
이름: &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;name&amp;quot; value=&amp;quot;kim&amp;quot;&amp;gt;&amp;lt;br&amp;gt;
나이: &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;age&amp;quot; value=&amp;quot;20&amp;quot;&amp;gt;&amp;lt;br&amp;gt;
사진: &amp;lt;input type=&amp;quot;file&amp;quot; name=&amp;quot;photo&amp;quot;&amp;gt;&amp;lt;br&amp;gt;
사진: &amp;lt;input type=&amp;quot;file&amp;quot; name=&amp;quot;photo&amp;quot;&amp;gt;&amp;lt;br&amp;gt;
사진: &amp;lt;input type=&amp;quot;file&amp;quot; name=&amp;quot;photo&amp;quot;&amp;gt;&amp;lt;br&amp;gt;
&amp;lt;button&amp;gt;c04_8/h3 실행&amp;lt;/button&amp;gt;
&amp;lt;/form&amp;gt;
&amp;lt;hr&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/144699694-3acc22be-36c8-4c5b-8d3e-eb1d28d7bb4d.PNG&quot; alt=&quot;파일 업로드&quot;&gt;&lt;/p&gt;
&lt;h2&gt;  RequestHandler - @RequestBody : 클라이언트가 보낸 데이터를 한 덩어리로 받기&lt;/h2&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;클라이언트가 보낸 데이터를 통째로 받기

=&amp;gt; request handler의 아규먼트 앞에 @RequestBody를 붙이면 된다.&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller 
@RequestMapping(&amp;quot;/c04_9&amp;quot;)
public class Controller04_9 {

  @PostMapping(value=&amp;quot;h1&amp;quot;, produces=&amp;quot;text/html;charset=UTF-8&amp;quot;) 
  @ResponseBody 
  public String handler1(
      String name,
      int age,
      @RequestBody String data
      ) throws Exception {

    StringWriter out0 = new StringWriter();
    PrintWriter out = new PrintWriter(out0);
    out.println(&amp;quot;&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&amp;lt;title&amp;gt;c04_9/h1&amp;lt;/title&amp;gt;&amp;lt;/head&amp;gt;&amp;lt;body&amp;gt;&amp;quot;);
    out.println(&amp;quot;&amp;lt;h1&amp;gt;결과&amp;lt;/h1&amp;gt;&amp;quot;);
    out.printf(&amp;quot;&amp;lt;p&amp;gt;이름:%s&amp;lt;/p&amp;gt;\n&amp;quot;, name);
    out.printf(&amp;quot;&amp;lt;p&amp;gt;나이:%s&amp;lt;/p&amp;gt;\n&amp;quot;, age);
    out.printf(&amp;quot;&amp;lt;p&amp;gt;통데이터:%s&amp;lt;/p&amp;gt;\n&amp;quot;, data);
    out.println(&amp;quot;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&amp;quot;);
    return out0.toString();
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class=&quot;language-html&quot;&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&amp;quot;UTF-8&amp;quot;&amp;gt;
&amp;lt;title&amp;gt;c04_9&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;

&amp;lt;h1&amp;gt;데이터 전송&amp;lt;/h1&amp;gt;

&amp;lt;form action=&amp;quot;../../app1/c04_9/h1&amp;quot; method=&amp;quot;post&amp;quot;&amp;gt;
이름: &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;name&amp;quot; value=&amp;quot;kim&amp;quot;&amp;gt;&amp;lt;br&amp;gt;
나이: &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;age&amp;quot; value=&amp;quot;20&amp;quot;&amp;gt;&amp;lt;br&amp;gt;
&amp;lt;button&amp;gt;c04_9/h1 실행&amp;lt;/button&amp;gt;
&amp;lt;/form&amp;gt;
&amp;lt;hr&amp;gt;

&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;결과 &lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;이름:minsung
나이:28
통데이터:name=minsung&amp;amp;age=28&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Language/Spring</category>
      <category>Multipart</category>
      <category>Spring</category>
      <category>스프링</category>
      <category>파일</category>
      <category>파일업로드</category>
      <author>변사부</author>
      <guid isPermaLink="true">https://enjoydevelop.tistory.com/101</guid>
      <comments>https://enjoydevelop.tistory.com/101#entry101comment</comments>
      <pubDate>Sat, 4 Dec 2021 15:12:17 +0900</pubDate>
    </item>
    <item>
      <title>  Spring : 프론트 컨트롤러(FrontController) &amp;amp; 프로퍼티 에디터(PropertyEditor)</title>
      <link>https://enjoydevelop.tistory.com/100</link>
      <description>&lt;h2&gt;  프론트 컨트롤러로부터 받을 수 있는 파라미터&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;PageController의 메서드를 호출하는데 DispatcherServlet이 메서드가 원하는 파라미터가 뭔지에 따라 꼽아준다.&lt;br&gt;메서드가 뭘 리턴하는지에 따라 적절하게 처리해준다.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;return 값에 따라서 그대로 클라이언트에 응답할 응답데이터로 할지 Jsp이름이라면 Jsp를 실행해서 응답한다. &lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;RequestHandler 요청을 다루는 자&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt; // 프론트 컨트롤러(DispatcherServlet)로부터 받고 싶은 값이 있다면
  // 요청 핸들러를 정의할 때 받고 싶은 타입의 파라미터를 선언하라!
  // 그러면 프론트 컨트롤러가 메서드를 호출할 때 해당 타입의 값을 넘겨줄 것이다.

  // ServletContext는 의존 객체로 주입 받아야 한다.
  // 요청 핸들러에서 파라미터로 받을 수 없다.

Map&amp;lt;String, Object&amp;gt; map
Model model

맵이나 모델에 데이터를 담아서 넘겨주면 DispatcherServlet은 해당 맵이나 모델에 담겨진 데이터를 꺼내서  ServletRequest에 옮겨담는다.

즉 ServletRequest.setAttribute()와 같음

 ServletRequest.setAttribute()을 클래스에서 직접 쓰는 순간 Servlet기술에 종속된다. Servlet API 기술에 종속을 최소화하기위함이고 종속성이 최소화된다는것은 유지보수하기 좋다는 것이다.

Servlet / Jsp가 없어도 실행가능하다는소리&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;클라이언트가 보낸 파라미터 값을 바로 받을 수 있다.&lt;br&gt;요청 핸들러의 파라미터로 선언하면 된다.&lt;br&gt;단 파라미터 앞에 @RequestParam 애노테이션을 붙인다.&lt;br&gt;그리고 클라이언트가 보낸 파라미터 이름을 지정한다.&lt;/p&gt;
&lt;h2&gt;  RequestHandler - @RequestParam&lt;/h2&gt;
&lt;h2&gt;  RequestHandler - 도메인 객체(값 객체; Value Object)로 요청 파라미터 값 받기&lt;/h2&gt;
&lt;p&gt;DispatcherServlet이 메서드에 값을 넘겨줄 때 변수이름과 같은 파라미터가 있으면 그 값을 넘겨준다&lt;/p&gt;
&lt;p&gt;요청 핸들러의 아규먼트가 값 객체라면, 프론트 컨트롤러는 메서드를 호출할 때 값 객체의 인스턴스를 생성한 후 요청 파라미터와 일치하는 프로퍼티에 대해 값을 저장한다. 그리고 호출할 때 넘겨준다.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@Controller
@RequestMapping(&amp;quot;/c04_3&amp;quot;)
public class Controller04_3 {

  @GetMapping(&amp;quot;h1&amp;quot;)
  @ResponseBody
  public void handler1(
      PrintWriter out,
      String model,
      String maker,
      @RequestParam(defaultValue = &amp;quot;100&amp;quot;) int capacity,

    // 프론트 컨트롤러가 String 값을 int로 변환해 준다.
      // 단 변환할 수 없을 경우 예외가 발생한다.

      boolean auto,
      // 프론트 컨트롤러가 String 값을 boolean으로 변환해 준다.
      // 단 변환할 수 없을 경우 예외가 발생한다.
      // &amp;quot;true&amp;quot;, &amp;quot;false&amp;quot;는 대소문자 구분없이 true, false로 변환해 준다.
      // 1 ==&amp;gt; true, 0 ==&amp;gt; false 로 변환해 준다. 그 외 숫자는 예외 발생!

      Car car
      // 아규먼트가 값 객체이면 요청 파라미터 중에서 값 객체의 프로퍼티 이름과 일치하는
      // 항목에 대해 값을 넣어준다.
      // 값 객체 안에 또 값 객체가 있을 때는 OGNL 방식으로 요청 파라미터 값을
      // 지정하면 된다.
      ) {

    out.printf(&amp;quot;model=%s\n&amp;quot;, model);
    out.printf(&amp;quot;maker=%s\n&amp;quot;, maker);
    out.printf(&amp;quot;capacity=%s\n&amp;quot;, capacity);
    out.printf(&amp;quot;auto=%s\n&amp;quot;, auto);
    out.printf(&amp;quot;car=%s\n&amp;quot;, car);
  }

}&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;// http:localhost:8080/c04_3/h1?model=sonata&amp;amp;maker=hyundai&amp;amp;capacity=5&amp;amp;auto=true&amp;amp;engine.model=ok&amp;amp;engine.cc=1980&amp;amp;engine.valve=16

model=sonata
maker=hyundai
capacity=5
auto=true
car=Car [model=sonata, maker=hyundai, auto=true, capacity=5, createdDate=null, engine=Engine [model=ok, cc=1980, valve=16]]&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;  프로퍼티 에디터 사용하기&lt;/h2&gt;
&lt;p&gt;클라이언트가 보낸 요청 파라미터 값(String 타입)을&lt;br&gt;RequestHandler의 아규먼트 타입(String, int, boolean 등)의 값으로 바꿀 때 primitive type에 대해서만 자동으로 변환해 준다. 그 외의 타입에 대해서는 프로퍼티 에디터(타입 변환기)가 없으면 예외를 발생시킨다.&lt;/p&gt;
&lt;h3&gt;  해당 페이지 컨트롤러에서 사용할 프로퍼티 에디터 설정하는 방법&lt;/h3&gt;
&lt;p&gt;프론트 컨트롤러는 RequestHandler를 호출하기 전에&lt;br&gt;그 메서드가 원하는 아규먼트 값을 준비해야 한다.&lt;/p&gt;
&lt;p&gt;각 아규먼트 값을 준비할 때 @InitBinder가 표시된 메서드(RequestHandler를 실행할 때 사용할 도구를 준비하는 메서드)를 호출하여 프로퍼티 에디터(변환기)를 준비시킨다.&lt;/p&gt;
&lt;p&gt;그리고 이 준비된 값 변환기(프로퍼티 에디터)를 이용하여 파라미터 값을 RequestHandler의 아규먼트가 원하는 타입의 값을 바꾼다.&lt;/p&gt;
&lt;p&gt;RequestHandler의 아규먼트 개수 만큼 이 메서드를 호출한다.&lt;br&gt;@InitBinder가 표시된 메서드에 프로퍼티 에디터를 등록하는 코드를 둔다.&lt;/p&gt;
&lt;h3&gt;  프로퍼티 에디터(PropertyEditor)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;p&gt;문자열을 특정 타입의 프로퍼터의 값으로 변환시킬 때 사용하는 에디터이다.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;PropertyEditor를 직접 구현하면 너무 많은 메서드를 오버라이딩 해야 하기 때문에 자바에서는 도우미 클래스인 PropertyEditorSupport 클래스를 제공한다. 이 클래스는 PropertyEditor를 미리 구현하였다. 따라서 이 클래스를 상속 받은 것 더 낫다.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;  프로퍼티 에디터 등록&lt;/h4&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt; @InitBinder
  // =&amp;gt; 메서드 이름은 마음대로.
  // =&amp;gt; 작업하는데 필요한 값이 있다면 파라미터로 선언하라.
  public void initBinder(WebDataBinder binder) {

    // 프로퍼티 에디터를 등록하려면 그 일을 수행할 객체(WebDataBinder)가 필요하다.

    // WebDataBinder에 프로퍼티 에디터 등록하기
    binder.registerCustomEditor(
        java.util.Date.class, // String을 Date 타입으로 바꾸는 에디터임을 지정한다.
        new DatePropertyEditor(); // 바꿔주는 일을 하는 프로퍼티 에디터를 등록한다.
        );


    // WebDataBinder에 프로퍼티 에디터 등록하기
    binder.registerCustomEditor(
        Car.class, // String을 Car 타입으로 바꾸는 에디터임을 지정한다.
        new CarPropertyEditor() // 바꿔주는 일을 하는 프로퍼티 에디터를 등록한다.
        );

    //WebDataBinder에 프로퍼티 에디터 등록하기
    binder.registerCustomEditor(
        Engine.class, // String을 Engine 타입으로 바꾸는 에디터임을 지정한다.
        new EnginePropertyEditor() // 바꿔주는 일을 하는 프로퍼티 에디터를 등록한다.
        );
  }
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;  프로퍼티 에디터 만들기&lt;/h4&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;class DatePropertyEditor extends PropertyEditorSupport {

    @Override
    public void setAsText(String text) throws IllegalArgumentException {

      try {

        // 1) String ==&amp;gt; java.util.Date
        // SimpleDateFormat format = new SimpleDateFormat(&amp;quot;yyyy-MM-dd&amp;quot;);
        // Date date = format.parse(text); // String ===&amp;gt; java.util.Date
        // setValue(date); // 내부에 저장

        // 2) String ==&amp;gt; java.sql.Date
        setValue(java.sql.Date.valueOf(text));

      } catch (Exception e) {
        throw new IllegalArgumentException(e);
      }
    }

 // String ===&amp;gt; Car 프로퍼티 에디터 만들기
  class CarPropertyEditor extends PropertyEditorSupport {
    @Override
    public void setAsText(String text) throws IllegalArgumentException {
      String[] values = text.split(&amp;quot;,&amp;quot;);

      Car car = new Car();
      car.setModel(values[0]);
      car.setCapacity(Integer.parseInt(values[1]));
      car.setAuto(Boolean.parseBoolean(values[2]));
      car.setCreatedDate(java.sql.Date.valueOf(values[3]));

      setValue(car);
    }
  }
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;  글로벌 프로퍼티 에디터 적용하기&lt;/h2&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;// @ControllerAdvice
// =&amp;gt; 페이지 컨트롤러를 실행할 때 충고하는 역할을 수행한다.

즉 프론트 컨트롤러가 페이지 컨트롤러의 RequestHandler를 호출하기 전에 이 애노테이션이 붙은 클래스를 참고하여 적절한 메서드를 호출한다.&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@ControllerAdvice
public class GlobalControllerAdvice {

  // 이 클래스에 프로퍼티 에디터를 등록하는 @InitBinder 메서드를 정의한다.
  @InitBinder
  public void initBinder(WebDataBinder binder) {

    DatePropertyEditor propEditor = new DatePropertyEditor();
    binder.registerCustomEditor(java.util.Date.class, propEditor);

    binder.registerCustomEditor(Car.class, new CarPropertyEditor());

    binder.registerCustomEditor(Engine.class, new EnginePropertyEditor());
  }

  class DatePropertyEditor extends PropertyEditorSupport {
    @Override
    public void setAsText(String text) throws IllegalArgumentException {
      try {
        // String ==&amp;gt; java.util.Date
        // SimpleDateFormat format = new SimpleDateFormat(&amp;quot;yyyy-MM-dd&amp;quot;);
        // Date date = format.parse(text);
        // setValue(date);

        // String ==&amp;gt; java.sql.Date
        setValue(java.sql.Date.valueOf(text));

      } catch (Exception e) {
        throw new IllegalArgumentException(e);
      }
    }
  }

  class CarPropertyEditor extends PropertyEditorSupport {
    @Override
    public void setAsText(String text) throws IllegalArgumentException {
      String[] values = text.split(&amp;quot;,&amp;quot;);

      Car car = new Car();
      car.setModel(values[0]);
      car.setCapacity(Integer.parseInt(values[1]));
      car.setAuto(Boolean.parseBoolean(values[2]));
      car.setCreatedDate(java.sql.Date.valueOf(values[3]));

      setValue(car);
    }
  }

    class EnginePropertyEditor extends PropertyEditorSupport {
      @Override
      public void setAsText(String text) throws IllegalArgumentException {
        String[] values = text.split(&amp;quot;,&amp;quot;);

        Engine engine = new Engine();
        engine.setModel(values[0]);
        engine.setCc(Integer.parseInt(values[1]));
        engine.setValve(Integer.parseInt(values[1]));

        setValue(engine);
      }
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;  RequestHandler - @RequestHeader&lt;/h2&gt;</description>
      <category>Language/Spring</category>
      <category>@RequestParam</category>
      <category>Front-Controller</category>
      <category>page-controller</category>
      <category>Spring</category>
      <category>프로퍼티에디터</category>
      <author>변사부</author>
      <guid isPermaLink="true">https://enjoydevelop.tistory.com/100</guid>
      <comments>https://enjoydevelop.tistory.com/100#entry100comment</comments>
      <pubDate>Thu, 2 Dec 2021 23:54:00 +0900</pubDate>
    </item>
    <item>
      <title>  자바의 강점 : Multi-Thread</title>
      <link>https://enjoydevelop.tistory.com/99</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;다중 클라이언트 접속과 멀티스레드&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  Stateful vs Stateless&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/136724289-bc552726-2e3c-4d10-9bf1-a09e5648f85f.jpg&quot; alt=&quot;다중클라이언트 접속 처리&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;이번에는 다중 클라이언트 접속에 대해서 알아보자!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다중 클라이언트 접속은 크게 2가지로 나눌 수 있다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Stateful 방식&lt;/li&gt;
&lt;li&gt;Stateless 방식&lt;/li&gt;
&lt;/ul&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;첫 번째로 Stateful방식은 상담사화 전화연결을 하는 상황에 빗대어 볼 수 있다. 고객이 상담사에게 전화를 걸면 상담사는 고객이 문의하는 사항을 들어주고 그에 대한 답변을 해주며 추가 질문이 있을 시 서로 대화를 주고받으면서 문제를 해결한다. 문제가 해결되고 나면 연결이 끊어지게 된다.&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;이와 반대로 Stateless 방식은 코로나 인증 전화를 예시로 들어볼 수 있다. 식당에 가서 전화로 인증해본 경험이 있는가? 그 때 식당에 적힌 코로나 인증 전화번호로 전화를 걸어 통화를 하면 음성 메세지에 따라 인증을 하게되면 자동으로 연결이 끊긴다. 바로 이 방식이 대표적인 Stateless 방식이다.&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&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/136724312-6df14247-9d0d-4c12-ab42-42a02ac780d8.jpg&quot; alt=&quot;네트워킹&quot; /&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  자바의 multi-thread&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자바언어가 인기를 얻을 수 있었던 가장 큰 이유가 이 멀티스레드이다.&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&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/136726326-f4238ad2-3d17-4597-b3b8-5d64900cc2e7.jpg&quot; alt=&quot;멀티스레드1&quot; /&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/136726345-c8648c18-0556-4496-a3f5-034456fdca8f.jpg&quot; alt=&quot;멀티스레드2&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;자바에서는 클래스가 로딩되고 난 후 main()가 실행된다. main()의 실행흐름을 따라가다 클라이언트가 접속하게 되면 새&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;바로 이것이 자바에서의 멀티스레드 방식이다. start()를 통해 run()을 실행시키면 되는 간단한 방식으로 되어 있어 부감담이 덜하다.&lt;/p&gt;</description>
      <category>Language/Java</category>
      <category>java</category>
      <category>multi</category>
      <category>stateful</category>
      <category>stateless</category>
      <category>thread</category>
      <category>멀티스레드</category>
      <category>스레드</category>
      <category>자바</category>
      <author>변사부</author>
      <guid isPermaLink="true">https://enjoydevelop.tistory.com/99</guid>
      <comments>https://enjoydevelop.tistory.com/99#entry99comment</comments>
      <pubDate>Mon, 11 Oct 2021 11:53:48 +0900</pubDate>
    </item>
    <item>
      <title>☎️ Observer design pattern &amp;amp; Listener</title>
      <link>https://enjoydevelop.tistory.com/98</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;Observer design pattern &amp;amp; listener&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;옵저버 패턴이라는 것을 알 수 있는 키워드는 &lt;b&gt;&quot;listener&quot;&lt;/b&gt;이다. 만약 자바 코드에서 listener를 발견한다면 아! 옵저버 패턴을 적용하였구나로 이해하면 쉽다.&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&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/136721072-9ad0a41c-7afa-4251-9cc2-4c4071af547f.jpg&quot; alt=&quot;옵저버 패턴과 관찰자&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;위의 그림은 옵저버 패턴에 대한 내용을 나타낸 것이다. 보호관찰사와 가석방죄수의 예를 들면 쉽게 이해할 수 있을 것이다.&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;보호관찰사의 역할은 가석방죄수를 감시하는 것이다. 가석방 죄수는 어떠한 행위를 할 때 보호관찰사에게 보고하도록 시스템화 되어 있다. 즉 보호관찰사가 24시간 감시하는 것이 아니라는 소리다. 이를 똑같이 자바코드에 적용하면 다음과 같다.&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;어떠한 객체는 Observer 객체의 주소를 가지고 있다. 그리고 해당 객체의 상태가 변화할 때마다 Observer 객체에게 알려준다. 사실 감시라고 해서 Observer객체에서 해당 객체의 주소를 가지고 있을것이라고 착각하기 쉬운데 그렇지 않다는 것을 명심하자&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;엄밀히 말하면 Observer(관찰자)보다 Listener(청취자)가 와닿을 수 있다. 어떠한 객체의 변동사항에 대한 보고를 듣는 입장이기 때문이다. 그래서 자바에서는 Listener라는 이름을 자주 사용한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/136722957-6e55354e-b94c-4f61-9df1-d0b70844fe0b.jpg&quot; alt=&quot;옵저버 패턴3&quot; /&gt;&lt;/p&gt;
&lt;pre class=&quot;ini&quot;&gt;&lt;code&gt;Objserver = Listener = Subscriber(수신자)

Subject = Publisher(발행자)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다시한번 정리하자면 어떠한 객체가 특장 상태에 놓이게 되면 Observer interface의 규칙에 따라 메서드를 호출한다. 그 결과 객체가 특정 상태일 때 기능을 추가 삭제하기가 쉬워진다.&lt;/p&gt;
&lt;pre class=&quot;stylus&quot;&gt;&lt;code&gt;addListener() // 리스너를 추가한다.
removeListener() // 리스너를 삭제한다.
listners : List // 리스너를 모아놓은 리스트

contextInitialized() // 시작
contextDestroyed() // 종료&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Language/Java</category>
      <category>java</category>
      <category>listener</category>
      <category>Observer</category>
      <category>publisher</category>
      <category>Subscriber</category>
      <category>디자인패턴</category>
      <category>옵저버디자인패턴</category>
      <category>자바</category>
      <author>변사부</author>
      <guid isPermaLink="true">https://enjoydevelop.tistory.com/98</guid>
      <comments>https://enjoydevelop.tistory.com/98#entry98comment</comments>
      <pubDate>Mon, 11 Oct 2021 11:05:39 +0900</pubDate>
    </item>
    <item>
      <title>  자바에서의 네트워크(Network)</title>
      <link>https://enjoydevelop.tistory.com/97</link>
      <description>&lt;h3&gt;  네트워크의 흐름&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;LAN&lt;/strong&gt;  &lt;strong&gt;WAN&lt;/strong&gt; &lt;strong&gt;Gateway&lt;/strong&gt; &lt;strong&gt;Internet&lt;/strong&gt; &lt;strong&gt;NIC&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/135635525-0317459c-7ce6-4ad8-befe-1fa6a81129aa.jpg&quot; alt=&quot;네트워크 1&quot;&gt;&lt;/p&gt;
&lt;p&gt;✔️ 비록 같은 컴퓨터일지라도 프로그램사이에 직접적으로 데이터를 전달할 수 없다.&lt;/p&gt;
&lt;p&gt;✔️ NIC(Network Interface Card)을 통해서 데이터를 전달할 수 있다.&lt;/p&gt;
&lt;p&gt;✔️ 외부의 다른 컴퓨터와 통신하기 위해서는 HUB를 통해 데이터 전달이 가능하며, 중앙 HUB를 지나 Gateway를 지나서 통신사를 거쳐 다른 컴퓨터와 통신할 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/135635573-224844b4-20d4-43d0-8589-8d3e7a96b569.jpg&quot; alt=&quot;네트워크 2&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/135635611-d2a280c7-a8f8-4a6e-a768-1bfa86d6c8bf.jpg&quot; alt=&quot;네트워크 3&quot;&gt;&lt;/p&gt;
&lt;h3&gt;  포트(Port)번호와 소켓(Socket)&lt;/h3&gt;
&lt;p&gt;✔️ 포트번호는 통신할 대상을 구분하기 위해 부여된 번호를 말한다. &lt;/p&gt;
&lt;p&gt;✔️ Client와 Server 모두 포트번호를 가지고 있다.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/135635646-d8dce6c4-c94d-4e5d-9a87-c2d261ae1fcd.jpg&quot; alt=&quot;네트워크 4&quot;&gt;&lt;/p&gt;
&lt;p&gt;✔️ 자바에서 내부적으로 네트워크 통신을 가능하게 해주는 것이 바로 소켓이다.&lt;/p&gt;
&lt;p&gt;✔️ Client에서 소켓을 만들며, Server에서도 소켓을 만드는데 Server는 Client와 달리 ServerSocket이 존재한다. &lt;/p&gt;
&lt;p&gt;✔️ 예를 들면 대표번호라고 생각하면 쉽다.&lt;br&gt;우리가 대표번호로 전화를 걸면 그 곳에서 나의 요청에 맞는 상담사를 연결해준다.&lt;/p&gt;
&lt;p&gt;✔️ 소켓도 그와같이 서버소켓에 접속해서 서버소켓이 각각의 소켓을 생성해주고 그 소켓에 데이터를 전송하는 방식이다.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/135635672-b8ea7c2d-54fa-4fda-855c-cd1864ffbd13.jpg&quot; alt=&quot;네트워크 5&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/135635710-1495ffdb-a34d-4a16-aafa-fa03c150e319.jpg&quot; alt=&quot;네트워크 6&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/135635754-da7cd413-62ed-40ba-9cc0-0691414987a7.jpg&quot; alt=&quot;네트워크 7&quot;&gt;&lt;/p&gt;
&lt;h3&gt;  데이터를 전달하는 과정&lt;/h3&gt;
&lt;p&gt;✔️ ClientApp에서 Java 객체를 Serialize해서 JSON 문자열로 만들고 소켓으로 ServerApp으로 전달하며&lt;/p&gt;
&lt;p&gt;✔️ ServerApp에서도 소켓으로 데이터를 받고 JSON 문자열을 deSerialize하여 Java 객체로 만들어 파일에 저장한다.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/135635816-b58b9fdd-0efb-49b2-b89b-6e4db15d50c9.jpg&quot; alt=&quot;네트워크 8&quot;&gt;&lt;/p&gt;</description>
      <category>Language/Java</category>
      <category>client</category>
      <category>java</category>
      <category>network</category>
      <category>port</category>
      <category>server</category>
      <category>socket</category>
      <category>네트워크</category>
      <category>자바</category>
      <category>포트번호</category>
      <author>변사부</author>
      <guid isPermaLink="true">https://enjoydevelop.tistory.com/97</guid>
      <comments>https://enjoydevelop.tistory.com/97#entry97comment</comments>
      <pubDate>Fri, 1 Oct 2021 23:37:36 +0900</pubDate>
    </item>
    <item>
      <title>  Network의 필요성 DBMS의 등장?</title>
      <link>https://enjoydevelop.tistory.com/96</link>
      <description>&lt;h2&gt;파일 시스템에서 DB로 변화하는 과정&lt;/h2&gt;
&lt;h3&gt;  현재 사용하고 있는 애플리케이션의 문제점&lt;/h3&gt;
&lt;p&gt;현재 애플리케이션은 네트워크 통신이 가능하지 않다. 각각의 사람들이 앱에 저속해서 파일을 등록하고 읽어올 수 있는 구조이다. 현재의 구조에서 여러명의 사람들에게 파일을 공유할 수 있는 방법은 무엇일까?&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;3명의 사람이 1개의 컴퓨터를 공유한다.&lt;/li&gt;
&lt;li&gt;한 명이 작업하면 다른 사람에게 파일을 공유한다.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;1번, 2번 방식으로 어떻게든 돌릴 수 있겠지만 근본적인 해결책은 아니다.&lt;br&gt;지금 세상에 누가 1개의 컴퓨터로 작업을 하나? 그리고 일일이 1명 1명 체크하면서 파일을 공유하나? 해결책이 필요해보인다.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/134645588-9681f8c4-e5f4-4b7e-b2e6-d6ad33c9b46e.jpg&quot; alt=&quot;네트워크 필요성1&quot;&gt;&lt;/p&gt;
&lt;h3&gt;  데이터를 공유하는 고전적인 방법 : 파일서버 또는 네트워크 드라이브로 파일 공유&lt;/h3&gt;
&lt;p&gt;하나의 pc에 파일을 저장해놓고 각각의 사람들이 pc에 접속하여 파일을 읽고 쓰는 방식이다. 이 방식도 문제점은 있다.&lt;/p&gt;
&lt;p&gt;같은 파일을 접근하기 때문에 프로그램간에 파일을 주고 받을 필요가 없지만, 여러 app.에서 파일을 동시에 접근 할 때 문제가 발생한다. 데이터가 덮여쓰여질 수 있는 위험에 노출된다.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/134645673-e39284fc-c004-4e37-ada2-fe48b8b432fa.jpg&quot; alt=&quot;네트워크 필요성2&quot;&gt;&lt;/p&gt;
&lt;h3&gt;  여러 app에서 같은 파일을 읽고 쓸 때 문제점 해결&lt;/h3&gt;
&lt;p&gt;pc안에 중간에서 데이터를 덮어쓰지 않도록 하는 파일관리 app을 만들었다. 파일관리 app에서 파일을 읽고 쓸 수 있도록 하였다. 문제가 해결되는 듯 하나 또 다른 문제가 발생하게 된다.&lt;/p&gt;
&lt;p&gt;동시에 여러사람이 작업 할 수 없다는 문제는 여전히 존재했다.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/134645691-44e61f6d-12ba-4d85-88c4-360b081fb421.jpg&quot; alt=&quot;네트워크 필요성3&quot;&gt;&lt;/p&gt;
&lt;h3&gt;  프로그램간의 데이터 교류 : 네트워킹 기술의 필요성, DBMS의 등장&lt;/h3&gt;
&lt;p&gt;결국 여러 사람이 동시에 접근하고 파일을 관리하기 위해서 네트워크가 불가피하게 필요하게 되었다.&lt;/p&gt;
&lt;p&gt;Client : 서버에 작업을 요청하는 역할&lt;br&gt;Server : 클라이언트의 요청을 받아서 처리해 주는 역할&lt;/p&gt;
&lt;p&gt;파일에 데이터를 저장, 로딩 파일에서 데이터를 찾고 사용자에 따라 접근을 제어하기 위해 DBMS가 등장하였고 JDBC를 통해 통신을 할 수 있게 되었다.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/134645707-0138c82d-0bb5-4fd9-96dd-f819541dbfe0.jpg&quot; alt=&quot;네트워크 필요성4&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/134645727-498c5e52-f040-4fd4-b3c3-62605e9fdd7d.jpg&quot; alt=&quot;네트워크 필요성5&quot;&gt;&lt;/p&gt;
&lt;h3&gt;  다인용 Application (Enterprise Application Architecture)&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/134645748-0006925a-41da-4601-baa0-c6d56de69845.jpg&quot; alt=&quot;네트워크 필요성6&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/134645771-1891eb77-c23a-4d00-b769-0f14061c2f64.jpg&quot; alt=&quot;네트워크 필요성7&quot;&gt;&lt;/p&gt;</description>
      <category>Language/Java</category>
      <category>DB</category>
      <category>DBMS</category>
      <category>java</category>
      <category>JDBC</category>
      <category>network</category>
      <category>네트워크</category>
      <category>자바</category>
      <author>변사부</author>
      <guid isPermaLink="true">https://enjoydevelop.tistory.com/96</guid>
      <comments>https://enjoydevelop.tistory.com/96#entry96comment</comments>
      <pubDate>Fri, 24 Sep 2021 18:06:58 +0900</pubDate>
    </item>
    <item>
      <title>  Decorator design patter &amp;amp; stream 2</title>
      <link>https://enjoydevelop.tistory.com/95</link>
      <description>&lt;h2&gt;decorator design pattern &amp;amp; file I/O&lt;/h2&gt;
&lt;hr&gt;
&lt;h3&gt;  상속의 한계와 데코레이터 패턴의 필요성&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/133042714-46e6a109-3019-41d8-a358-09f2f277f447.jpg&quot; alt=&quot;데코레이터1&quot;&gt;&lt;/p&gt;
&lt;h3&gt;  기능을 확장하는 방법 : 상속과 포함&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/133042739-7f1273ef-e6fe-474b-a025-043a3d2979cd.jpg&quot; alt=&quot;데코레이터2&quot;&gt;&lt;/p&gt;
&lt;h3&gt;  데코레이터 패턴의 적용 : 바이트 스트림 클래스 vs 캐릭터 스트림 클래스&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/133042790-d4e232af-b7ff-4062-b954-ae911308f49f.jpg&quot; alt=&quot;스트림 1&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/133042767-d0dbfec4-9097-418b-8fdd-0d64547718f4.jpg&quot; alt=&quot;데코레이터3&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/133042811-03fcdd4d-3f98-41a2-81f2-7d6d23022670.jpg&quot; alt=&quot;스트림 2&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/133042839-1d61e8d6-37cb-4b2c-852f-3404e91b28d4.jpg&quot; alt=&quot;스트림 3&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/133042856-6fad696a-bfc0-44d4-bc89-7bc1fc4cc5f5.jpg&quot; alt=&quot;스트림 4&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/133042867-ddf62227-44bd-4c88-a9ad-30e862533e04.jpg&quot; alt=&quot;스트림 5&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/133042893-aad9a221-444d-4e40-8131-92bbf5728e19.jpg&quot; alt=&quot;스트림 6&quot;&gt;&lt;/p&gt;</description>
      <category>Language/Java</category>
      <category>java</category>
      <category>데코레이터</category>
      <category>디자인패턴</category>
      <category>상속</category>
      <category>스트림</category>
      <category>자바</category>
      <category>포함</category>
      <author>변사부</author>
      <guid isPermaLink="true">https://enjoydevelop.tistory.com/95</guid>
      <comments>https://enjoydevelop.tistory.com/95#entry95comment</comments>
      <pubDate>Sun, 19 Sep 2021 20:51:01 +0900</pubDate>
    </item>
    <item>
      <title>  버퍼(buffer)의 필요성을 느껴보자</title>
      <link>https://enjoydevelop.tistory.com/94</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;버퍼는 왜 사용하는 것인가?&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;버퍼(buffer) = 데이터 임시 저장 공간&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  데이터 읽기&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터 읽기 시간 = average seek time + data transfer time&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ex) 1000 바이트를 읽는다고 가정한다면?&lt;/p&gt;
&lt;ol style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;1바이트씩 1000번 읽기&lt;/li&gt;
&lt;li&gt;1000바이트씩 1번 읽기&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1바이트를 여러 번 읽을 경우 매번 바이트의 위치를 찾아야 하기 때문에 평균 탐색시간이 누적되어 한 번에 1000 바이트를 읽는 것 보다 시간이 오래 걸린다.&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;Q. 그러면 한 번에 다 읽으면 되지 않나요?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;메모리를 읽을 때 왕창 읽지 왜 깨작깨작 여러번에 걸쳐 읽냐? 하필 8192바이트씩말이지.. 다쓰면 또 다시 읽고&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;A. PC 처럼 소수의 프로그램이 동시에 실행될 때는 상관없지만,&lt;br /&gt;서버처럼 데이터를 읽는 코드가 동시에 수천개에서 수십만개일 때는 아무리 작은 크기의 메모리라도 매우 많아지게 된다. 서버에서는 웹서버, 운영체제서버, 네트워크 통신서버등 수많은 프로그램이 돌아간다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 프로그램도 메모리를 필요로 한다. 어느정도 여유 메모리 확보는 필요하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;한 번에 왕창 데이터를 읽어버리면 감당이 안된다. 그래서 보통 8KB 정도의 버퍼 크기를 유지하고 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(보통 실무에서는 버퍼를 사용할 때 8k , 16k가 기본이다)&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;gt; 물론 프로그램의 용도나 목적에 따라 버퍼의 크기가 이보다 더 작아지거나&lt;br /&gt;커질 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;버퍼를 사용하는 것과 아닌것은 하늘과 땅 차이다!&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  버퍼 사용 전 - 파일 복사 및 시간 측정&lt;/h3&gt;
&lt;pre class=&quot;pgsql&quot;&gt;&lt;code&gt;import java.io.FileInputStream;
import java.io.FileOutputStream;

public class Exam0310 {

  public static void main(String[] args) throws Exception {
    FileInputStream in = new FileInputStream(&quot;temp/jls11.pdf&quot;);
    FileOutputStream out = new FileOutputStream(&quot;temp/jls11_2.pdf&quot;);

    int b;

    int count = 0;
    long startTime = System.currentTimeMillis(); // 밀리초

    while ((b = in.read()) != -1) {
      out.write(b);
      count++;
    }

    long endTime = System.currentTimeMillis();

    System.out.println(endTime - startTime);
    System.out.println(count);

    in.close();
    out.close();
  }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;basic&quot;&gt;&lt;code&gt;28789  // 28초
3336294&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  버퍼 사용 후 - 파일 복사 및 시간 측정&lt;/h3&gt;
&lt;pre class=&quot;arduino&quot;&gt;&lt;code&gt;import java.io.FileInputStream;
import java.io.FileOutputStream;

public class Exam0320 {

  public static void main(String[] args) throws Exception {
    FileInputStream in = new FileInputStream(&quot;temp/jls11.pdf&quot;);
    FileOutputStream out = new FileOutputStream(&quot;temp/jls11_3.pdf&quot;);

    byte[] buf = new byte[8192]; // 보통 8KB 정도 메모리를 준비한다.
    int len = 0;

    long startTime = System.currentTimeMillis(); // 밀리초

    int count = 0;
    while ((len = in.read(buf)) != -1) {
      out.write(buf, 0, len);
      count++;
    }

    long endTime = System.currentTimeMillis();

    System.out.println(endTime - startTime);
    System.out.println(count);
    in.close();
    out.close();
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;6
408&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  BufferedFileInputStream과 BufferedFileOutputStream을 사용하여 파일 복사 및 시간 측정&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;보통 close() 안에 flush() 가 오버라이딩 되어 있다.&lt;/li&gt;
&lt;li&gt;flush()는 바이트 배열 안에 있는 찌꺼기들 꺼내주는 역할&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;arduino&quot;&gt;&lt;code&gt;public class Exam0330 {

  public static void main(String[] args) throws Exception {
    BufferedFileInputStream in = new BufferedFileInputStream(&quot;temp/jls11.pdf&quot;);
    BufferedFileOutputStream out = new BufferedFileOutputStream(&quot;temp/jls11_4.pdf&quot;);

    int b;

    long startTime = System.currentTimeMillis(); // 밀리초

    int count = 0;
    while ((b = in.read()) != -1) {
      out.write(b);
      count++;
    }

    // 아직 파일로 출력되지 않고 버퍼 남아 있는 데이터를
    // 마무리로 출력한다.
    // out.flush();

    long endTime = System.currentTimeMillis();

    System.out.println(endTime - startTime);
    System.out.println(count);
    in.close();
    out.close(); // close() 안에 flush() 가 오버라이딩 되어 있다.
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;16
3336294&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  BufferedFileOutputStream 클래스&lt;/h3&gt;
&lt;pre class=&quot;java&quot;&gt;&lt;code&gt;import java.io.FileOutputStream;
import java.io.IOException;

public class BufferedFileOutputStream extends FileOutputStream {
  byte[] buf = new byte[8196];
  int cursor;

  public BufferedFileOutputStream(String filename) throws Exception {
    super(filename);
  }

  @Override
  public void write(int b) throws IOException {
    if (cursor == buf.length) { // 버퍼가 다차면
      super.write(buf); // 버퍼에 들어있는 데이터를 한 번에 출력한다.
      cursor = 0; // 다시 커서를 초기화시킨다.
    }

    // 1바이트 출력하라고 하면 일단 버퍼에 저장할 것이다.
    buf[cursor++] = (byte) b;
  }

  @Override
  public void write(byte[] buf) throws IOException {
    for (byte b : buf) {
      this.write(b &amp;amp; 0x000000ff);
    }
  }


  @Override
  public void close() throws IOException {
    this.flush();
    super.close();
  }


  @Override
  public void flush() throws IOException {
    if (cursor &amp;gt; 0) {
      this.write(buf, 0, cursor);
      cursor = 0;
    }
  }
}&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Language/Java</category>
      <category>buffer</category>
      <category>I/O</category>
      <category>java</category>
      <category>버퍼</category>
      <category>자바</category>
      <category>파일입출력</category>
      <author>변사부</author>
      <guid isPermaLink="true">https://enjoydevelop.tistory.com/94</guid>
      <comments>https://enjoydevelop.tistory.com/94#entry94comment</comments>
      <pubDate>Mon, 13 Sep 2021 16:41:43 +0900</pubDate>
    </item>
    <item>
      <title>⛓️ 링킹(linking)과 라이브러리(library)</title>
      <link>https://enjoydevelop.tistory.com/93</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;링킹(linking)과 라이브러리(library)&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;function이나 structure, class 등의 코드를 모아둔 파일을 &lt;b&gt;라이브러리(library)&lt;/b&gt; 라고 한다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  동적 연결 라이브러리(dynamic linking library) vs 정적 연결 라이브러리(static linking library)&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/132627881-6186e52d-d904-4fa6-8227-7b3aeb3c7b2c.jpg&quot; alt=&quot;링킹과 라이브러리1&quot; /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;링킹(linking)은 프로그램에서 호출하는 외부함수가 들어있는 라이브러리를 함께 묶어서 실행 파일을 만드는 것을 말한다.&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;.lib은 파일 전체가 실행파일에 포함되며, .dll 파일은 실행파일에 포함되지 않으며 파일정보만 포함된다.&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;프로그램에서 가리키는 .dll 파일을 메모리에 따로 로딩하며 다른 실행파일이 동일한 .dll을 필요로 하는경우 같이 가리켜서 사용 가능하다. 이를 통해 중복로딩을 막음으로서 메모리를 절약할 수 있다.&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;반면 *lib은 중복으로 로딩이 가능하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/132627894-b2d8290c-ba53-4389-9264-cbaeb0e093fc.jpg&quot; alt=&quot;링킹과 라이브러리2&quot; /&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/132627913-b524f5bc-b03a-4d4c-8c23-b1c5bb1fa62c.jpg&quot; alt=&quot;링킹과 라이브러리3&quot; /&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/132627929-31e0e9b5-66fb-4b5c-9df4-6193eaf21b2e.jpg&quot; alt=&quot;링킹과 라이브러리4&quot; /&gt;&lt;/p&gt;</description>
      <category>IT BASE/IT용어</category>
      <category>library</category>
      <category>linking</category>
      <category>라이브러리</category>
      <category>링킹</category>
      <author>변사부</author>
      <guid isPermaLink="true">https://enjoydevelop.tistory.com/93</guid>
      <comments>https://enjoydevelop.tistory.com/93#entry93comment</comments>
      <pubDate>Thu, 9 Sep 2021 19:12:08 +0900</pubDate>
    </item>
    <item>
      <title>  Decorator design pattern와 stream</title>
      <link>https://enjoydevelop.tistory.com/92</link>
      <description>&lt;h2&gt;Decorator 패턴을 이용해서 파일 I/O를 더 쉽게 출력해보자&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/132300025-7cb999fe-7748-411d-a86c-257047f9ea33.jpg&quot; alt=&quot;디자인패턴1&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/132300046-0e957ebc-ef7d-4805-a059-bcfed189024f.jpg&quot; alt=&quot;디자인패턴2&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/132300076-2981f378-6ea5-44e5-a44e-02d550a6b2f4.jpg&quot; alt=&quot;디자인패턴3&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/132300103-6ee22d79-e82d-44e7-881b-424ea50d7175.jpg&quot; alt=&quot;디자인패턴4&quot;&gt;&lt;/p&gt;
&lt;h3&gt;  DataOutputStream을 사용해보자&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;게시글 출력&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt; // 게시글 데이터를 파일로 내보내기(저장하기, 쓰기)
    try (
        // 파일에 바이트를 출력하는 객체
        FileOutputStream out = new FileOutputStream(&amp;quot;board.data&amp;quot;);
        DataOutputStream out2 = new DataOutputStream(out)) {
      // 출력할 게시글 개수를 먼저 저장한다.
      out2.writeInt(boardList.size());

      for (Board board : boardList) {
        // 1) 게시글 번호 4바이트 출력
        out2.writeInt(board.getNo());

        // 2) 게시글 제목 출력
        out2.writeUTF(board.getTitle());

        // 3) 게시글 내용 출력
        out2.writeUTF(board.getContent());

        // 4) 게시글 등록일 출력
        out2.writeUTF( board.getRegisteredDate().toString());

        // 5) 게시글 조회수 출력
        out2.writeInt(board.getViewCount());

        // 6) 게시글 작성자 번호 출력
        out2.writeInt(board.getWriter().getNo());

        // 7) 게시글 작성자 이름 출력
        out2.writeUTF(board.getWriter().getName());
      }

      System.out.println(&amp;quot;게시글 저장 완료!&amp;quot;);

    } catch (Exception e) {
      System.out.println(&amp;quot;게시글을 파일에 저장 중 오류 발생!&amp;quot;);
    }
&lt;/code&gt;&lt;/pre&gt;
&lt;ol start=&quot;2&quot;&gt;
&lt;li&gt;게시글 저장&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt; // 파일에서 게시글 데이터를 가져오기(로딩하기, 읽기)
    // =&amp;gt; 저장할 때 사용한 규칙에 따라 읽어야 한다.
    // =&amp;gt; 즉 파일 포맷에 맞춰 읽는다.
    try (
        // 파일에서 바이트를 읽어 오는 일을 하는 객체
        FileInputStream in = new FileInputStream(&amp;quot;board.data&amp;quot;);
        // 읽어온 바이트를 가공하여 primitive 타입의 값이나 String 객체로 가공하는 일을 하는 객체
        DataInputStream in2 = new DataInputStream(in); ) {
      int size = (in.read() &amp;lt;&amp;lt; 24) | (in.read() &amp;lt;&amp;lt; 16) | (in.read() &amp;lt;&amp;lt; 8) | in.read();
      for (int i = 0; i &amp;lt; size; i++) {
        Board board = new Board();

        // 1) 게시글 번호 읽기
        board.setNo(in2.readInt()); // writerInt()로 출력한 데이터를 읽을 때 사용

        // 2) 게시글 제목 읽기
        board.setTitle(in2.readUTF()); // writerUTF()로 출력한 데이터를 읽을 때 사용

        // 3) 게시글 내용 읽기
        board.setContent(in2.readUTF());

        // 4) 게시글 등록일 읽기
        board.setRegisteredDate(Date.valueOf(in2.readUTF()));

        // 5) 게시글 조회수 읽기
        board.setViewCount(in2.readInt());

        // 6) 작성자 정보 읽기
        Member writer = new Member();

        // - 작성자 번호 읽기
        writer.setNo(in2.readInt());

        // - 작성자 이름 읽기
        writer.setName(in2.readUTF());

        // - 게시글에 작성자 정보 저장
        board.setWriter(writer);

        // 목록에 게시글 저장
        boardList.add(board);
      }

      System.out.println(&amp;quot;게시글 로딩 완료!&amp;quot;);

    } catch (Exception e) {
      System.out.println(&amp;quot;파일에서 게시글을 읽어 오는 중 오류 발생!&amp;quot;);
    }
  }&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;  serialize&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/132308400-f5a66707-8ea8-44ea-ab03-f0b98ea1895f.jpg&quot; alt=&quot;디자인패턴5&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/132308439-4ed544df-ec87-4e11-8a9c-b93913952741.jpg&quot; alt=&quot;디자인패턴6&quot;&gt;&lt;/p&gt;
&lt;p&gt;implements Serializable : 직렬화 할 수 있어요 표시 / 인터페이스 안에 아무것도 없다.&lt;/p&gt;
&lt;p&gt;[직렬화]&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;@SuppressWarnings(&amp;quot;serial&amp;quot;)
public class Board implements Serializable {
  private int no;
  private String title;
  private String content;
  private Member writer;
  private Date registeredDate;
  private int viewCount;
  private int like;&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;  ObjectOutputStream을 사용해보자&lt;/h3&gt;
&lt;p&gt;[출력]&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt; try (
        // 파일에 바이트를 출력하는 객체
        FileOutputStream out = new FileOutputStream(&amp;quot;board.data2&amp;quot;);

        // 출력할 객체의 모든 필드 값을 바이트 배열에 담는 일을 하는 객체
        ObjectOutputStream out2 = new ObjectOutputStream(out)) {

      // 출력할 게시글 개수를 먼저 저장한다.
      out2.writeInt(boardList.size());

      for (Board board : boardList) {
        out2.writeObject(board);
      }

      System.out.println(&amp;quot;게시글 저장 완료!&amp;quot;);

    } catch (Exception e) {
      System.out.println(&amp;quot;게시글을 파일에 저장 중 오류 발생!&amp;quot;);
      e.printStackTrace();
    }

  }&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;[리팩토링]&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt; // 게시글 데이터를 파일로 내보내기(저장하기, 쓰기)
    try (

        ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(&amp;quot;board.data3&amp;quot;))) {

      out.writeObject(boardList);

      System.out.println(&amp;quot;게시글 저장 완료!&amp;quot;);

    } catch (Exception e) {
      System.out.println(&amp;quot;게시글을 파일에 저장 중 오류 발생!&amp;quot;);
      e.printStackTrace();
    }

  }&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;[입력]&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt; try (
        // 파일에서 바이트를 읽어 오는 일을 하는 객체
        FileInputStream in = new FileInputStream(&amp;quot;board.data&amp;quot;);

        // 직렬화 방식으로 출력된 바이트를 읽어 객체의 필드 값으로 복원하는 일을 하는 객체
        ObjectInputStream in2 = new ObjectInputStream(in); ) {

      int size = in2.readInt();

      for (int i = 0; i &amp;lt; size; i++) {
        boardList.add((Board)in2.readObject());
      }

      System.out.println(&amp;quot;게시글 로딩 완료!&amp;quot;);

    } catch (Exception e) {
      System.out.println(&amp;quot;파일에서 게시글을 읽어 오는 중 오류 발생!&amp;quot;);
    }
  }&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;[리팩토링]&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;try (ObjectInputStream in = new ObjectInputStream(new FileInputStream(&amp;quot;board.data3&amp;quot;)); ) {
      boardList.addAll((List&amp;lt;Board&amp;gt;) in.readObject());


      System.out.println(&amp;quot;게시글 로딩 완료!&amp;quot;);

    } catch (Exception e) {
      System.out.println(&amp;quot;파일에서 게시글을 읽어 오는 중 오류 발생!&amp;quot;);
    }
  }&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;  어떤 스트림을 쓸 것인지는 판단에 맡긴다.&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/132308464-78fcf9b1-b5a2-4980-92ac-086d9e09743f.jpg&quot; alt=&quot;디자인패턴7&quot;&gt;&lt;/p&gt;</description>
      <category>Language/Java</category>
      <category>Decorator</category>
      <category>Design</category>
      <category>java</category>
      <category>스트림</category>
      <category>자바</category>
      <author>변사부</author>
      <guid isPermaLink="true">https://enjoydevelop.tistory.com/92</guid>
      <comments>https://enjoydevelop.tistory.com/92#entry92comment</comments>
      <pubDate>Thu, 9 Sep 2021 09:30:43 +0900</pubDate>
    </item>
    <item>
      <title>  자바에서는 어떻게 파일 입출력을 할까?</title>
      <link>https://enjoydevelop.tistory.com/91</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;  Streaming API 유래와 파일 I/O&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;과거에는 장비를 사용할 때 각각의 장비에 맞는 I/O API를 사용해야 했다.&lt;br /&gt;각 디바이스에 따라 데이터 I/O를 할 수 있는 함수가 달랐다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;그래서 개발자는 각 장비별로 데이터 I/O의 사용법을 학습하고 물어봐야하는 문제가 있었다.&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;장비제어를 하기위해 &lt;b&gt;Device Driver(장비 드라이브 : H/W 제조사에서 제공 / 자기네 장비 제어할 때 호출할 function이 들어있는 app 제공 (.dll))&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;[drive(이끌다) - 장비 진단 통제 제어하기 위함]&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;덕분에 개발자는 &lt;b&gt;장비에 상관없이&lt;/b&gt; 일관된 방법으로 데이터 I/O를 할 수 있게 되었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/132279911-c7a2c3be-fe5d-45a3-b81b-ceecf7ad4319.jpg&quot; alt=&quot;파일입출력1&quot; /&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  Binary file vs Text file&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 두개의 파일의 가장 큰 차이는 &lt;b&gt;전용 App을 사용해서 읽어야하냐 그렇지 않냐&lt;/b&gt;이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/132279947-a49743f9-2111-4270-b7c5-0a4f8c677841.jpg&quot; alt=&quot;파일입출력2&quot; /&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  Java에서 사용하는 파일 입출력에 관하여&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/132279968-94dec776-3359-4a01-8414-86125b7084d0.jpg&quot; alt=&quot;파일입출력3&quot; /&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/132279977-bc572ffa-4c45-4d4e-998b-e757ea21e37a.jpg&quot; alt=&quot;파일입출력4&quot; /&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/132279989-d3e24529-6a8d-48e6-be13-70f5ac929039.jpg&quot; alt=&quot;파일입출력5&quot; /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;FileOutputStream의 write() 메서드는 파라미터로 받은 int 값 중에서 맨 하위 1byte만 출력한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(앞에있는 3바이트는 날려버린다)&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;Q. 그러면 어떻게 온전한 값으로 출력하죠?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;A. 비트 이동시키면 된다.&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;ex) int no = 1000; &amp;gt; 00 00 03 E8&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;맨 앞의 바이트를 맨 뒤로출력&lt;br /&gt;두 번째 바이트 맨 뒤로 출력&lt;br /&gt;세 번째 바이트 맨 뒤로 출력&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;erlang&quot;&gt;&lt;code&gt; 이렇게 게시글 데이터를 저장할 때 다음과 같이 나름의 형식에 따라 데이터를 출력한다.
     - 처음 4바이트는 저장할 게시글의 개수이다,
     - 그 다음 4바이트는 게시글 번호이고,
     - 그 다음 2바이트는 제목의 바이트 개수이고 등등

     파일에 데이터를 출력할 때 사용하는 규칙을 &quot;파일 포맷(format)&quot; 이라 부른다.
     당연히 파일에서 데이터를 읽을 때는 저장한 규칙에 맞춰 읽어야 한다.
     즉 &quot;파일 포맷&quot;에 맞춰 읽어야 한다.

     .ppt 파일을 읽을 때는 ppt 파일 포맷에 맞춰 읽어야한다.
     만약 파일 포맷을 모른다면 해당 파일을 재대로 읽을 수가 없다.&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  예시를 통해 알아보는 파일 입출력&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 게시글 번호 출력&lt;/p&gt;
&lt;pre class=&quot;pgsql&quot;&gt;&lt;code&gt; try (FileOutputStream out = new FileOutputStream(&quot;board.data&quot;)) {
      for (Board board : boardList) {
        // 1) 게시글 번호 4바이트 출력
        out.write(board.getNo() &amp;gt;&amp;gt; 24);
        out.write(board.getNo() &amp;gt;&amp;gt; 16);
        out.write(board.getNo() &amp;gt;&amp;gt; 8);
        out.write(board.getNo());
      }
    } catch (Exception e) {
      System.out.println(&quot;게시글을 파일에 저장 중 오류 발생!&quot;);
    }
&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;basic&quot;&gt;&lt;code&gt;00 00 03 E8 (1000)
00 00 07 D0 (2000)
00 00 0B B8 (3000)&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;2. 게시글 제목 출력&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;getByte(&quot;UTF-8&quot;) &amp;lt;&amp;lt; 뒤에 어떤 형식으로 인코딩 할지 지정해준다.&lt;br /&gt;안하면 운영체제에 기본적으로 가지고 있는 인코딩 형식으로 지정된다.&lt;br /&gt;윈도우의 경우 MS-949&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 우리는 &lt;b&gt;국제표준인 UTF-8을 사용한다.&lt;/b&gt;&lt;/p&gt;
&lt;pre class=&quot;reasonml&quot;&gt;&lt;code&gt;    // 게시글 데이터를 파일로 내보내기 (저장하기, 쓰기)
    try (FileOutputStream out = new FileOutputStream(&quot;board.data&quot;)) {
      for (Board board : boardList) {
        // 1) 게시글 번호 4바이트 출력
        out.write(board.getNo() &amp;gt;&amp;gt; 24);
        out.write(board.getNo() &amp;gt;&amp;gt; 16);
        out.write(board.getNo() &amp;gt;&amp;gt; 8);
        out.write(board.getNo());

        // 2) 게시글 제목
        byte[] bytes = board.getTitle().getBytes(&quot;UTF-8&quot;);
        out.write(bytes);

      }
    } catch (Exception e) {
      System.out.println(&quot;게시글을 파일에 저장 중 오류 발생!&quot;);
    }
&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;basic&quot;&gt;&lt;code&gt;00 00 03 E8 41 42 EA B0 80 EA B0 81
00 00 07 D0 61 62 EA B0 80 EA B0 81
00 00 0B B8 41 42 61 62&lt;/code&gt;&lt;/pre&gt;
&lt;ol style=&quot;list-style-type: disc;&quot; start=&quot;3&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;게시글 내용 출력&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;제목과 내용을 분리시켜야하는데 어떻게 구별하지?? 제목과 내용을 똑같은 문자를 쓴다면?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어디서 어디까지가 제목이고 내용인지 알려줘야한다.&lt;/p&gt;
&lt;pre class=&quot;reasonml&quot;&gt;&lt;code&gt; try (FileOutputStream out = new FileOutputStream(&quot;board.data&quot;)) {
      for (Board board : boardList) {
        // 1) 게시글 번호 4바이트 출력
        out.write(board.getNo() &amp;gt;&amp;gt; 24);
        out.write(board.getNo() &amp;gt;&amp;gt; 16);
        out.write(board.getNo() &amp;gt;&amp;gt; 8);
        out.write(board.getNo());

        // 2) 게시글 제목
        byte[] bytes = board.getTitle().getBytes(&quot;UTF-8&quot;);
        out.write(bytes.length &amp;gt;&amp;gt; 8); // 바이트의 개수를 2바이트로 먼저 출력한다.
        out.write(bytes.length); // 바이트의 개수를 2바이트로 먼저 출력한다.
        out.write(bytes); // 그런 후에 바이트를 출력한다.

        // 2) 게시글 내용 출력
        bytes = board.getContent().getBytes(&quot;UTF-8&quot;);
        out.write(bytes.length &amp;gt;&amp;gt; 8); // 2바이트로 바이트 배열의 크기를 먼저 출력한다.
        out.write(bytes.length);
        out.write(bytes); // 그런 후에 바이트를 출력한다.

      }
    } catch (Exception e) {
      System.out.println(&quot;게시글을 파일에 저장 중 오류 발생!&quot;);
    }&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;reasonml&quot;&gt;&lt;code&gt;  // 게시글 데이터를 파일로 내보내기 (저장하기, 쓰기)
    try (FileOutputStream out = new FileOutputStream(&quot;board.data&quot;)) {
      // 출력할 게시글 개수를 먼저 저장한다.
      out.write(boardList.size() &amp;gt;&amp;gt; 24);
      out.write(boardList.size() &amp;gt;&amp;gt; 16);
      out.write(boardList.size() &amp;gt;&amp;gt; 8);
      out.write(boardList.size());

      for (Board board : boardList) {
        // 1) 게시글 번호 4바이트 출력
        out.write(board.getNo() &amp;gt;&amp;gt; 24);
        out.write(board.getNo() &amp;gt;&amp;gt; 16);
        out.write(board.getNo() &amp;gt;&amp;gt; 8);
        out.write(board.getNo());

        // 2) 게시글 제목
        byte[] bytes = board.getTitle().getBytes(&quot;UTF-8&quot;);
        out.write(bytes.length &amp;gt;&amp;gt; 8); // 바이트의 개수를 2바이트로 먼저 출력한다.
        out.write(bytes.length); // 바이트의 개수를 2바이트로 먼저 출력한다.
        out.write(bytes); // 그런 후에 바이트를 출력한다.

        // 3) 게시글 내용 출력
        bytes = board.getContent().getBytes(&quot;UTF-8&quot;);
        out.write(bytes.length &amp;gt;&amp;gt; 8); // 2바이트로 바이트 배열의 크기를 먼저 출력한다.
        out.write(bytes.length);
        out.write(bytes); // 그런 후에 바이트를 출력한다.

        // 4) 게시글 등록일 출력
        //        long millis = board.getRegisteredDate().getTime();
        //        out.write((int)millis &amp;gt;&amp;gt; 56);

        String dateStr = board.getRegisteredDate().toString(); // &quot;2021-09-07&quot;
        bytes = dateStr.getBytes(&quot;UTF-8&quot;);
        out.write(bytes.length &amp;gt;&amp;gt; 8);
        out.write(bytes.length);
        out.write(bytes);

        // 5) 게시글 조회수 출력
        out.write(board.getViewCount() &amp;gt;&amp;gt; 24);
        out.write(board.getViewCount() &amp;gt;&amp;gt; 16);
        out.write(board.getViewCount() &amp;gt;&amp;gt; 8);
        out.write(board.getViewCount());

        // 6) 게시글 작성자 번호 출력
        out.write(board.getWriter().getNo() &amp;gt;&amp;gt; 24);
        out.write(board.getWriter().getNo() &amp;gt;&amp;gt; 16);
        out.write(board.getWriter().getNo() &amp;gt;&amp;gt; 8);
        out.write(board.getWriter().getNo());

        // 7) 게시글 작성자 이름 출력
        bytes = board.getWriter().getName().getBytes(&quot;UTF-8&quot;);
        out.write(bytes.length &amp;gt;&amp;gt; 8); // 바이트의 개수를 2바이트로 먼저 출력한다.
        out.write(bytes.length); // 바이트의 개수를 2바이트로 먼저 출력한다.
        out.write(bytes); // 그런 후에 바이트를 출력한다.

      }
    } catch (Exception e) {
      System.out.println(&quot;게시글을 파일에 저장 중 오류 발생!&quot;);
    }&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Language/Java</category>
      <category>FileInputStream</category>
      <category>FileOutputStream</category>
      <category>I/O</category>
      <category>java</category>
      <category>입출력</category>
      <category>자바</category>
      <category>파일</category>
      <author>변사부</author>
      <guid isPermaLink="true">https://enjoydevelop.tistory.com/91</guid>
      <comments>https://enjoydevelop.tistory.com/91#entry91comment</comments>
      <pubDate>Tue, 7 Sep 2021 18:25:14 +0900</pubDate>
    </item>
    <item>
      <title>  권한(Authorization)은 어떻게 설정할까요?</title>
      <link>https://enjoydevelop.tistory.com/90</link>
      <description>&lt;h2&gt;비트 연산자를 활용한 사용자 메뉴 접근권한 통제&lt;/h2&gt;
&lt;p&gt;비트 연산자 - 사용자 권한 관리에 적용&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;public class Exam0480 {
  public static void main(String[] args) {

    // 1) 사용자 권한을 값으로 정의

    final int LOGOUT = 0x01; // 0000 0001     - 로그아웃
    final int GENERAL = 0x02; // 0000 0010    - 일반 로그인
    final int ADMIN = 0x04; // 0000 0100    - 관리자 로그인


    // 2) 메뉴의 접근 범위 설정

    int menu1 = LOGOUT;  // 로그아웃 상태에서만 접근 가능한 메뉴
    int menu2 = GENERAL; // 일반으로 로그인 된 접근 가능한 메뉴
    int menu3 = ADMIN; // 관리자로 로그인 된 사용자만 접근 가능한 메뉴
    int menu4 = LOGOUT | GENERAL | ADMIN; // 로그아웃 되었든, 일반으로 로그인 되었든, 관리자로 로그인 되었든 모두 접근 가능한 메뉴

    // 3) 접근 테스트
    // =&amp;gt; menu1이 로그아웃에서 접근 가능한 것인지 검사한다.
    System.out.println((menu1 &amp;amp; LOGOUT) &amp;gt; 0);
    // 계산원리
    // menu1  : 0000 0001
    // LOGOUT : 0000 0001 &amp;lt;-- 얘는 항상 1임
    //      &amp;amp; -----------
    //          0000 0001 &amp;lt;--- 0 보다 큰 값이 나온다.

    // 어떤 값에 대해 LOGOUT 값을 &amp;amp; 한다는 것은
    // LOGOUT 비트가(오른쪽에서 첫 번째 비트) 1이라는 의미다.
    // LOGOUT 비트가 1이야 아니야?

    System.out.println((menu1 &amp;amp; GENERAL) &amp;gt; 0);
    // 계산원리
    // menu1  : 0000 0001
    // GENERAL: 0000 0010
    //      &amp;amp; -----------
    //          0000 0000 &amp;lt;--- 0 이 나온다.

    // GENERAL 비트가(오른쪽에서 두 번째 비트) 1이라는 의미다.

    System.out.println((menu1 &amp;amp; ADMIN) &amp;gt; 0);
    // 계산원리
    // menu1  : 0000 0001
    // ADMIN  : 0000 0100
    //      &amp;amp; -----------
    //          0000 0000 &amp;lt;--- 0 이 나온다.

    // ADMIN 비트가(오른쪽에서 세 번째 비트) 1이라는 의미다.
  }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;package com.eomcs.lang.ex05;

//# 비트 연산자 : 응용 V - 사용자 권한 관리에 적용
//
public class Exam0481 {
  public static void main(String[] args) {

    // 1) 사용자 권한을 값으로 정의

    final int LOGOUT = 0x01; // 0000 0001     - 로그아웃
    final int GENERAL = 0x02; // 0000 0010    - 일반 로그인
    final int ADMIN = 0x04; // 0000 0100    - 관리자 로그인


    // 2) 메뉴의 접근 범위 설정

    int menu1 = LOGOUT;  // 로그아웃 상태에서만 접근 가능한 메뉴
    int menu2 = GENERAL; // 일반으로 로그인 된 접근 가능한 메뉴
    int menu3 = ADMIN; // 관리자로 로그인 된 사용자만 접근 가능한 메뉴
    int menu4 = LOGOUT | GENERAL | ADMIN; // 로그아웃 되었든, 일반으로 로그인 되었든, 관리자로 로그인 되었든 모두 접근 가능한 메뉴
    int menu5 = GENERAL | ADMIN; //

    // 3) 접근 테스트
    System.out.println(&amp;quot;메뉴1에 접근 가능한 범위&amp;quot;);
    System.out.println((menu1 &amp;amp; LOGOUT) &amp;gt; 0);
    System.out.println((menu1 &amp;amp; GENERAL) &amp;gt; 0);
    System.out.println((menu1 &amp;amp; ADMIN) &amp;gt; 0);

    System.out.println(&amp;quot;------------------------------&amp;quot;);
    System.out.println(&amp;quot;메뉴2에 접근 가능한 범위&amp;quot;);
    System.out.println((menu2 &amp;amp; LOGOUT) &amp;gt; 0);
    System.out.println((menu2 &amp;amp; GENERAL) &amp;gt; 0);
    System.out.println((menu2 &amp;amp; ADMIN) &amp;gt; 0);

    System.out.println(&amp;quot;------------------------------&amp;quot;);
    System.out.println(&amp;quot;메뉴3에 접근 가능한 범위&amp;quot;);
    System.out.println((menu3 &amp;amp; LOGOUT) &amp;gt; 0);
    System.out.println((menu3 &amp;amp; GENERAL) &amp;gt; 0);
    System.out.println((menu3 &amp;amp; ADMIN) &amp;gt; 0);

    System.out.println(&amp;quot;------------------------------&amp;quot;);
    System.out.println(&amp;quot;메뉴4에 접근 가능한 범위&amp;quot;);
    System.out.println((menu4 &amp;amp; LOGOUT) &amp;gt; 0);
    System.out.println((menu4 &amp;amp; GENERAL) &amp;gt; 0);
    System.out.println((menu4 &amp;amp; ADMIN) &amp;gt; 0);

    System.out.println(&amp;quot;------------------------------&amp;quot;);
    System.out.println(&amp;quot;메뉴5에 접근 가능한 범위&amp;quot;);
    System.out.println((menu5 &amp;amp; LOGOUT) &amp;gt; 0);
    System.out.println((menu5 &amp;amp; GENERAL) &amp;gt; 0);
    System.out.println((menu5 &amp;amp; ADMIN) &amp;gt; 0);
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;[결과]&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;메뉴1에 접근 가능한 범위
true
false
false
------------------------------
메뉴2에 접근 가능한 범위
false
true
false
------------------------------
메뉴3에 접근 가능한 범위
false
false
true
------------------------------
메뉴4에 접근 가능한 범위
true
true
true
------------------------------
메뉴5에 접근 가능한 범위
false
true
true
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;1단계 - 메뉴의 접근 범위를 지정할 상수와 생성자를 정의한다.&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;public abstract class Menu {

  public static final int ACCESS_LOGOUT = 0x01;     // 0001
  public static final int ACCESS_GENERAL = 0x02;    // 0010
  public static final int ACCESS_ADMIN = 0x04;      // 0100

  String title;

  int accessScope;

  public Menu(String title) {
    this(title, ACCESS_LOGOUT | ACCESS_GENERAL | ACCESS_ADMIN); // 모든 사람 접근 가능
  }

  public Menu(String title, int accessScope) {
    this.title = title;
    this.accessScope = accessScope;
  }

  public abstract void execute();
}&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;2단계 - 로그인/로그아웃 할 때 사용자의 권한을 설정한다.&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;public class AuthLoginHandler implements Command {

  List&amp;lt;Member&amp;gt; memberList;

  static Member loginUser;
  static int userAccessLevel = Menu.ACCESS_LOGOUT; // 기본은 로그아웃 된 상태이다.

  public static Member getLoginUser() {
    return loginUser;
  }
  public static int getUserAccessLevel() {
    return userAccessLevel;
  }

  ....
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;조건 1줄이면 끝난다. 이 식은 바꿀 필요 없다&lt;br&gt;조건문을 덕지덕지 할 필요없다&lt;br&gt;그사람의 접근 권한과 메뉴에 대한 접근권한을 비교해서 한 방에 끝낸다.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt; private List&amp;lt;Menu&amp;gt; getMenuList() {
    ArrayList&amp;lt;Menu&amp;gt; menuList = new ArrayList&amp;lt;&amp;gt;();
    for (Menu menu : childs) {
      // 사용자가 해당 메뉴에 접근 할 수 있는지 검사한다.
      // 예) 메뉴의 접근 범위   : 0100 = 관리자만 접근 가능
      //     사용자의 접근 수준 : 0110
      if ((menu.accessScope &amp;amp; AuthLoginHandler.getUserAccessLevel()) &amp;gt; 0) {
        menuList.add(menu);
      }
    }
    return menuList;
  }&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;3단계 - 메뉴를 구성할 때 접근 범위를 설정한다.&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;Menu createMainMenu() {
    MenuGroup mainMenuGroup = new MenuGroup(&amp;quot;메인&amp;quot;);
    mainMenuGroup.setPrevMenuTitle(&amp;quot;종료&amp;quot;);

    mainMenuGroup.add(new MenuItem(&amp;quot;로그인&amp;quot;, ACCESS_LOGOUT , &amp;quot;/auth/login&amp;quot;));
    mainMenuGroup.add(new MenuItem(&amp;quot;내정보&amp;quot;, ACCESS_GENERAL, &amp;quot;/auth/userinfo&amp;quot;));
    mainMenuGroup.add(new MenuItem(&amp;quot;로그아웃&amp;quot;, ACCESS_GENERAL, &amp;quot;/auth/logout&amp;quot;));

    mainMenuGroup.add(createBoardMenu());
    mainMenuGroup.add(createMemberMenu());
    mainMenuGroup.add(createProjectMenu());
    mainMenuGroup.add(createTaskMenu());
    mainMenuGroup.add(createAdminMenu());

    return mainMenuGroup;
  }&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Menu.ACCESS_권한&lt;br&gt;여기서 Menu를 지우고 싶다면 import static으로 설정하라&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;import static com.eomcs.menu.Menu.ACCESS_ADMIN;
import static com.eomcs.menu.Menu.ACCESS_GENERAL;
import static com.eomcs.menu.Menu.ACCESS_LOGOUT;&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Language/Java</category>
      <category>&amp;amp;</category>
      <category>java</category>
      <category>|</category>
      <category>권한</category>
      <category>권한설정</category>
      <category>비트연산자</category>
      <category>자바</category>
      <author>변사부</author>
      <guid isPermaLink="true">https://enjoydevelop.tistory.com/90</guid>
      <comments>https://enjoydevelop.tistory.com/90#entry90comment</comments>
      <pubDate>Fri, 3 Sep 2021 23:39:18 +0900</pubDate>
    </item>
    <item>
      <title>  자바 : Command design pattern</title>
      <link>https://enjoydevelop.tistory.com/89</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;Command 디자인 패턴&lt;/h2&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;이를 해결하기 위해서 나온게 Command 디자인 패턴이다.&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;Command 디자인 패턴은 하나의 명령 처리를 하나의 메서드가 담당하고 있다면 메서드를 별도의 클래스로 분리한다. 즉 기존의 클래스에 손 안대면서 추가할 수 있으며 유지보수에 용이하다.&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;Q. 클래스가 늘어나는데요?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;A. 클래스 파일이 늘어나서 불편한거보다 Command 패턴을 적용시킴으로써 얻는 이점이 더 크다. (클래스가 늘어나는 것은 감수해야한다) 서블릿이 전형적인 커멘드 패턴의 한 예라고 할 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/131596243-19eae41e-246c-4014-8ee0-c6320a3f3fb2.jpg&quot; alt=&quot;커멘드 디자인 패턴 1&quot; /&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/131596269-02e0bcc6-ebe4-4417-a29f-31fb8392dd92.jpg&quot; alt=&quot;커멘드 디자인 패턴 2&quot; /&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;공통분모가 없다면 generalization 할 필요없다&lt;br /&gt;그리고 abstract 클래스 만들때 각각 클래스에서 따로 사용하는 부분이 있으면 넣지 않는다.&lt;/li&gt;
&lt;li&gt;서브클래스에 사용하지 않고 외부클래스에서 사용하는 기능은 슈퍼클래스에 두지 말고 별도의 클래스를 만들어 분리하는것이 낫다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;커맨드 패턴을 적용 &amp;gt;&amp;gt; 마지막 인터페이스로 설정한다.&lt;/p&gt;</description>
      <category>Language/Java</category>
      <category>command</category>
      <category>java</category>
      <category>디자인패턴</category>
      <category>자바</category>
      <author>변사부</author>
      <guid isPermaLink="true">https://enjoydevelop.tistory.com/89</guid>
      <comments>https://enjoydevelop.tistory.com/89#entry89comment</comments>
      <pubDate>Thu, 2 Sep 2021 00:15:31 +0900</pubDate>
    </item>
    <item>
      <title>  bitcamp TIL (21.09.01)</title>
      <link>https://enjoydevelop.tistory.com/88</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;  알게 된 점&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;로그인 정보가 저장되있으면 로그인 된 것&lt;/li&gt;
&lt;li&gt;로그인 정보가 저장되어 있지 않으면 로그인이 되지 않는다.&lt;/li&gt;
&lt;li&gt;직접 사용하던지 게터로 사용하던지 하지만 유지보수에는 게터로 꺼내는게 좋다.&lt;br /&gt;인스턴스 필드를 직접 사용하지말고 게터로 쓰는게 유지보수에 좋다.&lt;/li&gt;
&lt;li&gt;회원관리를 하는 핸들러와 dto를 따로 만들어서 거기에서만 멤버를 관리한다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;등록된 멤버를 확인하는 핸들러이다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;로그아웃 로그인 된 것을 null로 하면됨&lt;/li&gt;
&lt;li&gt;기존코드를 손 대지 않는 것이 깔끔하다 손 대더라도 최소한으로 대야함
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;버그가 생길 가능성이 있다. 이를 해결하기 위해서 나온게 command 디자인 패턴&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;메서드를 먼저 만들고 코드를 작성해도되고&lt;br /&gt;코드를 완성하고 메서드를 호출해도 된다.&lt;/li&gt;
&lt;li&gt;게시글을 삭제했다고 게시글 번호가 당겨지지 않는다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;주민번호 땡기는 거도 말이안됨&lt;/li&gt;
&lt;li&gt;회사사번 땡기는 거도 말이안됨&lt;/li&gt;
&lt;li&gt;번 게시글 번호가 부여되면 고유번호로 사용해야한다. 그래야 게시글을 찾지&lt;/li&gt;
&lt;li&gt;회사에서 사용하는 게시판은 매우 복잡하다. (권한이 부여되어있기 때문에)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;공통분모가 없다면 generalization 할 필요없다&lt;br /&gt;그리고 abstract 클래스 만들때 각각 클래스에서 따로 사용하는 부분이 있으면 넣지 않는다.&lt;/li&gt;
&lt;li&gt;인스턴스 필드를 안쓰면 스태틱&lt;/li&gt;
&lt;li&gt;무조건 public으로 메서드 만드는 것이 아닌 최소한의 공개만 하고 나중에 필요시 사용한다.&lt;/li&gt;
&lt;li&gt;서브클래스에 사용하지 않고 외부클래스에서 사용하는 기능은 슈퍼클래스에 두지 말고 별도의 클래스를 만들어 분리하는것이 낫다.&lt;/li&gt;
&lt;li&gt;출력은 도메인의 역할이 아니다 핸들러의 역할이다&lt;/li&gt;
&lt;li&gt;커맨드 패턴을 적용 &amp;gt;&amp;gt; 마지막 인터페이스로 설정한다.&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>TIL</category>
      <category>bitcamp</category>
      <category>국비학원</category>
      <category>비트캠프</category>
      <author>변사부</author>
      <guid isPermaLink="true">https://enjoydevelop.tistory.com/88</guid>
      <comments>https://enjoydevelop.tistory.com/88#entry88comment</comments>
      <pubDate>Wed, 1 Sep 2021 23:55:07 +0900</pubDate>
    </item>
    <item>
      <title> ️ 자바에서 꼭 필요한 예외처리(Exception )</title>
      <link>https://enjoydevelop.tistory.com/87</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;1 .예외 처리 문법을 적용하기 전 - 리턴 값으로 오류 여부를 알릴 때의 문제점&lt;/h3&gt;
&lt;pre class=&quot;arduino&quot;&gt;&lt;code&gt;public class Calculator {

  public static int compute(String op, int a, int b) {
    switch (op) {
      case &quot;+&quot;:
        return a + b;
      case &quot;-&quot;:
        return a - b;
      case &quot;*&quot;:
        return a * b;
      case &quot;/&quot;:
        return a / b;
      case &quot;%&quot;:
        return a % b;
      default:
        // 만약 유효한 연산자가 아닐 경우 계산 결과는?
        // =&amp;gt; 보통 리턴 값으로 알린다.
        return -1;
    }
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;arduino&quot;&gt;&lt;code&gt;public class Exception1 {
  public static void main(String[] args) {

    int result = Calculator.compute(&quot;-&quot;, 6, 7);

    if (result == -1) {
      System.out.println(&quot;유효하지 않은 연산자입니다!&quot;);
    } else {
      System.out.println(result);
    }
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;정상적인 계산 결과도 오류로 취급할 수 있다&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. 예외 처리 문법을 적용하기 전 - 리턴 값으로 오류를 알릴 때의 문제를 극복&lt;/h3&gt;
&lt;pre class=&quot;reasonml&quot;&gt;&lt;code&gt;public class Exception2 {
  public static void main(String[] args) {

    int result = Calculator2.compute(&quot;#&quot;, 100, 200);


    if (result == -1212121212) {
      System.out.println(&quot;유효하지 않은 연산자입니다!&quot;);
    } else {
      System.out.println(result);
    }


    result = Calculator2.compute(&quot;-&quot;, 6, 7);
    if (result == -1212121212) {
      System.out.println(&quot;유효하지 않은 연산자입니다!&quot;);
    } else {
      System.out.println(result);
    }
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3. 던지는 예외 받기 - catch 블록의 순서&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;서브클래스 예외부터 받아라&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[예1]&lt;/p&gt;
&lt;pre class=&quot;arduino&quot;&gt;&lt;code&gt;public static void main(String[] args) {

    try {

      m(3);
      System.out.println(&quot;실행 성공!&quot;);

    } catch (IOException e) {

      System.out.println(&quot;IOException 발생&quot;);

    } catch (SQLException e) {
      System.out.println(&quot;SQLException 발생&quot;);

    } catch (RuntimeException e) {
      System.out.println(&quot;RuntimeException 발생&quot;);

    } catch (Exception e) {
      System.out.println(&quot;기타 Exception 발생&quot;);
    }
  }&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[예2]&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;OR 연산자를 사용하여 여러 개의 예외를 묶어 받을 수 있다.&lt;br /&gt;일반 메서드에는 적용되지 않는다.&lt;/p&gt;
&lt;pre class=&quot;arduino&quot;&gt;&lt;code&gt;public static void main(String[] args) {

    try {

      m(1);

    } catch (RuntimeException | SQLException | IOException e) {

    } catch (Exception e) {

    }
  }
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;4. 예외 처리 후 마무리 작업 - finally 블록&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정상적으로 실행하든, 아니면 예외가 발생하여 catch 블록을 실행하든&lt;br /&gt;finally 블록은 무조건 실행한다.&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;try 에서 사용한 자원을 해제시키는 코드를 주로 둔다.&lt;br /&gt;ex) 파일, DB 커넥션, 소켓 커넥션, 대량의 메모리&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;catch문 없이 finally를 적을 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[예1]&lt;/p&gt;
&lt;pre class=&quot;arduino&quot;&gt;&lt;code&gt;public static void main(String[] args) {
    try {
      m(3);
      System.out.println(&quot;try&quot;);

    } catch (RuntimeException | SQLException | IOException e) {
      System.out.println(&quot;catch 1&quot;);

    } catch (Exception e) {
      System.out.println(&quot;catch 2&quot;);

    } finally {

      System.out.println(&quot;finally&quot;);
    }
  }&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[예2] 자원해제&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;보통 자원해제시키는 메서드의 이름이 &quot;close()&quot;이다&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;우리는 365일 24시간 내내 실행되는 서버쪽 프로그램을 개발하는 것이기 때문에, 항상 자원을 사용한 후 해제시키는 것을 습관적으로 해야 한다.&lt;/p&gt;
&lt;pre class=&quot;cs&quot;&gt;&lt;code&gt;public class Exam0620 {

  public static void main(String[] args) {
    Scanner keyScan = null;
    try {
      keyScan = new Scanner(System.in);

      System.out.print(&quot;입력&amp;gt; &quot;);
      int value = keyScan.nextInt();
      System.out.println(value * value);

    } finally {

      keyScan.close();
      System.out.println(&quot;스캐너 자원 해제!&quot;);
    }
  }

}&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;4. try-with-resources - finally 블록 귀찮아&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자원해제시키는 코드를 매번 finally 블록을 만들어 작성하기가 귀찮다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;=&amp;gt; try-with-resources 라는 문법을 사용하면 굳이 finally 블록에서 close()를 직접 호출할 필요가 없다.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;pre class=&quot;nimrod&quot;&gt;&lt;code&gt;try (java.lang.AutoCloseable 구현체) {...}

// 반드시 AutoCloseable 구현체이어야 한다.
//String s = &quot;Hello&quot;; // 컴파일 오류!

// 변수 선언만 올 수 있다.
//if (true) {} // 컴파일 오류!&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;reasonml&quot;&gt;&lt;code&gt;  try (Scanner keyScan = new Scanner(System.in); // OK!

  //FileReader 클래스도 java.lang.AutoCloseable 구현체이다.
        FileReader in = new FileReader(&quot;Hello.java&quot;)); // OK!
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;5. 사용자 정의 예외 만들기 - 예외 클래스 상속 받기&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실무에서는 개발자에게 예외의 의미를 직관적으로 알 수 있도록&lt;br /&gt;RuntimeException 같은 평범한, 의미가 모호한 이름의 클래스를 사용하지 않고 대신에 기존 예외를 상속 받아 의미있는 이름으로 서브 클래스를 정의한 다음에 그 예외 클래스를 사용한다&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;예외보면 아 여기서 문제 생겼구나 바로 알 수 있음!&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;예외처리 문법의 등장이유&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;리턴 값으로 예외상황을 알리는 방식의 한계극복&lt;/li&gt;
&lt;li&gt;예외가 발생하더라도 JVM을 멈추지 않고 계속 정상적으로 실행되게 만드는 문법&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;예외 처리 문법을 적용한 후 - 메서드가 던지는 예외 정보를 받는다.&lt;/h3&gt;
&lt;pre class=&quot;arduino&quot;&gt;&lt;code&gt;public class Exception3 {
  public static void main(String[] args) {
    String op = &quot;#&quot;;
    int a = 100;
    int b = 200;


    try {

      int result = Calculator3.compute(op, a, b);
      System.out.println(result);

    } catch (RuntimeException e) {

      System.out.println(e.getMessage());

    }
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;중간에서 예외를 try catch로 받지 않으면 그 다음으로 던져진다.&lt;br /&gt;만약 메인마저 예외처리를 안한다면? JVM에게 전달된다.&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;JVM이 예외를 받는다면 무조건 예외 정보를 출력한 후 프로그램을 종료한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;JVM에게 예외가 전달되지 않게끔 하는 것이 중요하다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;예외처리의 기본 개념&lt;/h4&gt;
&lt;ol style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;예외를 던지는 것&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class=&quot;haxe&quot;&gt;&lt;code&gt;throw new RuntimeException(&quot;예외가 발생했습니다!&quot;);&lt;/code&gt;&lt;/pre&gt;
&lt;ol style=&quot;list-style-type: disc;&quot; start=&quot;2&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;예외를 받는 것&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class=&quot;reasonml&quot;&gt;&lt;code&gt;try {

} catch (RuntimeException e) {
  System.out.println(e.getMessage());
}&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;less&quot;&gt;&lt;code&gt;Throwable  - Error (시스템 오류, 개발자가 던져서는 안된다.)         ｜
          ｜
           - Exception (애플리케이션 오류)&lt;/code&gt;&lt;/pre&gt;
&lt;pre class=&quot;routeros&quot;&gt;&lt;code&gt;Exception  - RuntimeException (메서드 선언부 표시 안해도 된다.)
           - IOException (메서드 선언부 표시 해야한다.)
           - SQLExcemption (메서드 선언부 표시 해야한다.)
           - ................
&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Throwable 계열의 예외를 던질 경우, 메서드 선언부에 어떤 예외를 던지는지 지정하지 않아도 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예외를 던질 때 Throwable 클래스를 직접 사용하지 말고 그 하위 클래스를 사용하라&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;Exception 계열의 예외를 던질 경우, 반드시 메서드 선언부에 어떤 예외를 던지는지 지정해야 한다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Exception의 서브 클래스임에도 불구하고 RuntimeException 객체를 던질 경우,&lt;br /&gt;메서드 선언부에 예외를 던진다고 표시하지 않아도 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;RuntimeException 계열의 예외는 굳이 throws 문장을 선언하지 않아도 되지만, 해당 클래스,메서드를 호출하는 개발자에게 어떤 예외가 발생할 수 있는지 명확하게 제시해주는 것이 유지보수에 도움이 되기 때문에 메서드 선언부에 발생되는 예외를 명시하는 것이 좋다.&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;main()에서 예외를 던진다면 용서받지 못할 코드가 된다.&lt;br /&gt;main()은 최후의 보루로 try catch로 막아줘야한다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;예외 처리 방법 1:&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예외를 처리하고 싶지 않다면 상위 호출자에게 책임을 떠넘길 수 있다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;예외 처리 방법 2:&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;try ~ catch 를 사용하여 코드 실행 중에 발생된 예외를 중간에 가로챈다.&lt;/p&gt;</description>
      <category>Language/Java</category>
      <category>exception</category>
      <category>java</category>
      <category>trycatch</category>
      <category>예외</category>
      <category>자바</category>
      <author>변사부</author>
      <guid isPermaLink="true">https://enjoydevelop.tistory.com/87</guid>
      <comments>https://enjoydevelop.tistory.com/87#entry87comment</comments>
      <pubDate>Mon, 30 Aug 2021 19:10:13 +0900</pubDate>
    </item>
    <item>
      <title> ️ 람다(lambda) : 스태틱 메서드 레퍼런스</title>
      <link>https://enjoydevelop.tistory.com/86</link>
      <description>&lt;h2&gt;  스태틱 메서드 레퍼런스란?&lt;/h2&gt;
&lt;p&gt;인터페이스 구현한다는건 쉬운 일이 아니다.&lt;/p&gt;
&lt;p&gt;기존 메서드와 같은 일을 하는 코드가 있다면 인터페이스 구현하는데 재활용한다면 편하다.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;메서드 레퍼런스를 지정할 때 리턴 타입의 규칙:
    // 1) 같은 리턴 타입
    // 2) 암시적 형변환 가능한 타입
    // 3) auto-boxing 가능한 타입
    // 4) void

    클래스명::메서드명&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;  메서드 한 개짜리 인터페이스의 구현체를 만드는 방법&lt;/h3&gt;
&lt;h4&gt;0. 기존 코드&lt;/h4&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;public class Exam0510 {

  static class MyCalculator {
    public static int plus(int a, int b) {return a + b;}
  }

  interface Calculator {
    int compute(int x, int y);
  }

  public static void main(String[] args) {
      ..............
  }&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;1. 익명 클래스 활용&lt;/h4&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;    Calculator obj1 = new Calculator() {
      @Override
      public int compute(int x, int y) {
        return x + y;
      }
    };&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;2. 람다 문법 활용&lt;/h4&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;Calculator obj2 = (x, y) -&amp;gt; x + y;&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;3. 기존에 작성한 클래스의 스태틱 메서드를 재활용하기&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;인터페이스의 메서드 규격과 일치하는 메서드가 있다면 그 메서드를 람다 구현체로 사용할 수 있다.&lt;/li&gt;
&lt;li&gt;새로 코드를 작성할 필요가 없어 매우 편리하다&lt;/li&gt;
&lt;li&gt;단 인터페이스에 선언된 메서드의 규격과 일치해야 한다&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt; Calculator c1 = MyCalculator::plus;

System.out.println(c1.compute(200, 17)); // compute() ==&amp;gt; plus()&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;인터페이스에 정의된 메서드(예: compute())가 호출되었을 때,&lt;br&gt;그 파라미터 값은 메서드 레퍼런스로 지정된 스태틱 메서드(예: plus())에게 전달된다.&lt;/p&gt;
&lt;p&gt;결국 plus()를 호출하는 것과 같다. (재활용)&lt;/p&gt;
&lt;p&gt;스태틱 메서드의 리턴 타입은 인터페이스 메서드의 리턴 타입과 일치하거나 그 타입으로 바꿀 수 있어야 한다&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;  Calculator1 c1 = MyCalculator::plus; // MyCalculator객체에 대해 plus() 메서드를 실행하라
// 위 문장은 다음 문장과 같다.
      Calculator1 c1 = new Calculator1() {
        @Override
        public int compute(int a, int b) {
            return MyCalculator.plus(a, b);
          }
        };
    System.out.println(c1.compute(100, 200));&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;복습&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;// 1) 로컬 클래스로 인터페이스 구현체 만들기
    class MyPredicate&amp;lt;T&amp;gt; implements Predicate&amp;lt;T&amp;gt; {
      @Override
      public boolean test(T value) {
        return ((String)value).isEmpty();
      }
    }
    Predicate&amp;lt;String&amp;gt; p1 = new MyPredicate&amp;lt;&amp;gt;();

    // 2) 익명 클래스로 인터페이스 구현체 만들기
    Predicate&amp;lt;String&amp;gt; p2 = new Predicate&amp;lt;&amp;gt;() {
      @Override
      public boolean test(String value) {
        return value.isEmpty();
      }
    };

    // 3) 람다로 인터페이스 구현체 만들기
    Predicate&amp;lt;String&amp;gt; p3 = value -&amp;gt; value.isEmpty();

    // 4) 메서드 레퍼런스를 사용하여 기존 클래스의 메서드를 인터페이스 구현체로 사용하기
    //  Predicate 인터페이스 구현체 따로 만들지 않고 String의 isEmpty()를 사용하겠다.

    // 왼쪽은 무조건 functional interface 여야 한다.
    Predicate&amp;lt;String&amp;gt; p4 = String::isEmpty;
  }&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;public class Exam0710 {

  interface ListFactory {
    List create();
  }

  public static void main(String[] args) {

    // 인터페이스에 정의된 메서드가
    // 생성자의 형식과 일치하다면
    // 메서드 레퍼런스로 생성자를 지정할 수 있다.
    //
    // 1) 익명 클래스로 인터페이스 구현
    //    ListFactory f1 = new ListFactory() {
    //      public List create() {
    //        return new ArrayList();
    //      }
    //    };


    // 2) 람다 문법으로 인터페이스 구현
    //  ListFactory f1 = () -&amp;gt; new ArrayList();

    // 3) 메서드 레퍼런스로 인터페이스 구현
    // create() 하면 ArrayList 기본생성자 호출하는 것과 같다.
    ListFactory f1 = ArrayList::new;






    // 인터페이스의 메서드를 호출하면
    // 지정된 클래스의 인스턴스를 만든 후 생성자를 호출한다.
    List list = f1.create(); // new ArrayList();
&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Language/Java</category>
      <category>java</category>
      <category>lambda</category>
      <category>static</category>
      <category>StaticMethod</category>
      <category>람다</category>
      <category>자바</category>
      <author>변사부</author>
      <guid isPermaLink="true">https://enjoydevelop.tistory.com/86</guid>
      <comments>https://enjoydevelop.tistory.com/86#entry86comment</comments>
      <pubDate>Sat, 28 Aug 2021 21:52:55 +0900</pubDate>
    </item>
    <item>
      <title>  자바 컬렉션 : hashSet , hashMap , hashTable</title>
      <link>https://enjoydevelop.tistory.com/85</link>
      <description>&lt;h2&gt;hashSet , hashMap , hashTable&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/130885182-fa694a47-7646-4f2a-8c5f-fcfd67ebde7d.jpg&quot; alt=&quot;1&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/130885242-e4cf15cc-c1bf-4f8e-bb27-db3ef0f412e6.jpg&quot; alt=&quot;2&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/130885255-f3b04675-41eb-44a7-a3aa-ce46bb38dee6.jpg&quot; alt=&quot;3&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ArrayList vs HashSet&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;✔️ ArrayList 한 줄에서 쫙 관리, 순서 o 중복 o&lt;/li&gt;
&lt;li&gt;✔️ HashSet 여러 줄에서 관리, 순서 x 중복 x&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;1. hashSet&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;public class Exam0310 {

  // 사용자 정의 데이터 타입
  static class Member {
    String name;
    int age;

    public Member(String name, int age) {
      this.name = name;
      this.age = age;
    }

    @Override
    public String toString() {
      return &amp;quot;Member [name=&amp;quot; + name + &amp;quot;, age=&amp;quot; + age + &amp;quot;]&amp;quot;;
    }

  }

  public static void main(String[] args) {
    Member v1 = new Member(&amp;quot;홍길동&amp;quot;, 20);
    Member v2 = new Member(&amp;quot;임꺽정&amp;quot;, 30);
    Member v3 = new Member(&amp;quot;유관순&amp;quot;, 16);
    Member v4 = new Member(&amp;quot;안중근&amp;quot;, 20);
    Member v5 = new Member(&amp;quot;유관순&amp;quot;, 16);

    HashSet&amp;lt;Member&amp;gt; set = new HashSet&amp;lt;&amp;gt;();
    set.add(v1);
    set.add(v2);
    set.add(v3);
    set.add(v4);

    set.add(v5); // 기대? v3와 같은 값이기 때문에 저장되지 않을 것이다!

    System.out.println(set);
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;출력해보면 &amp;quot;유관순, 16&amp;quot; 데이터가 중복해서 저장되었음을 알 수 있다.&lt;/p&gt;
&lt;p&gt;✔️ HashSet이 중복여부를 검사할 때 hashCode()와 equals()의 리턴값으로 판단한다.&lt;/p&gt;
&lt;p&gt;Member 클래스에서 hashCode()와 equals()를 오버라이딩 하지 않았기 때문에&lt;br&gt;Object로부터 상속 받은 hashCode()와 equals()를 그대로 사용하였고, Object의 hashCode()는&lt;br&gt;인스턴스가 다르면 무조건 다른 해시값을 리턴한다. 그래서 &amp;quot;유관순,16&amp;quot; 데이터가 같더라도 인스턴스가 다르기 때문에 같은 값으로 간주하지 않은 것이다.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;[Member [name=유관순, age=16], Member [name=유관순, age=16], Member [name=안중근, age=20], Member [name=임꺽정, age=30], Member [name=홍길동, age=20]]
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;2. hashMap&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/130890627-509ca29f-33e8-4456-a0ff-b7e5f3ba2226.jpg&quot; alt=&quot;4&quot;&gt;&lt;/p&gt;
&lt;p&gt;equals()와 hashCode()를 함께 비교하기 때문에 hashCode() 만 오버라이딩 해봐야 소용없다.&lt;/p&gt;
&lt;p&gt;  &lt;strong&gt;전세계 개발자들은 hashMap을 사용할 때 Integer , string 을 key로 많이 사용한다.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;hashCode()의 리턴 값이 같고, equals()의 결과가 true이기 때문에 같은 key로 간주한다.&lt;/p&gt;
&lt;p&gt;HashMap의 key 객체로 사용할 클래스는 반드시 hashCode()와 equals()를 오버라이딩 하여 같은 값을 갖는 경우 같은 해시 값을 리턴하게 하라!&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;✔️ 개발자가 만든 클래스(사용자 정의 클래스)를 key 객체로 사용하려면 이런 번거로움이 있다.&lt;/li&gt;
&lt;li&gt;✔️ 대부분 현업에서는 그냥 String을 key로 사용한다. 또는 Wrapper 클래스인 Integer를 사용하기도 한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;key가 들어있는 Set에서 값을 꺼내는 방법&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/130893925-574cd457-6a9d-48f8-b21e-adacd282c7c5.jpg&quot; alt=&quot;5&quot;&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;Set&amp;lt;String&amp;gt; keys = map.keySet();&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;// 1) Iterator 사용
    Iterator&amp;lt;String&amp;gt; 키를꺼내주는객체 = keys.iterator();
    while (키를꺼내주는객체.hasNext()) {
      String key = 키를꺼내주는객체.next();
      System.out.println(map.get(key)); // key를 사용하여 값을 꺼낸다.
    }&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt; // 2) 배열을 사용
    String[] keyArray = new String[keys.size()];
    keys.toArray(keyArray);
    for (String key : keyArray) {
      System.out.println(map.get(key)); // key를 사용하여 값을 꺼낸다.
    }&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;// 3) 만약 컬렉션 객체가 java.util.Iterable 규칙을 따라 만든 클래스라면
    //    for(:) 반복문을 바로 사용할 수 있다.
    for (String key : keys/* 배열 또는 Iterable 객체 */) {
      System.out.println(map.get(key));
    }
    System.out.println(&amp;quot;---------------------&amp;quot;);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;value 객체는 중복 저장될 수 있기 때문에&lt;br&gt;value 객체 목록은 Collection 에 담아서 리턴한다.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt; java.util.Collection&amp;lt;Member&amp;gt; values = map.values();
    for (Member value : values) {
      System.out.println(value);
    }&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;Set&amp;lt;Entry&amp;lt;String,Member&amp;gt;&amp;gt; entrySet = map.entrySet();
    // key,value가 한쌍으로 묶여있는 객체들이 들어있다.

    for (Entry&amp;lt;String,Member&amp;gt; entry : entrySet) {
      System.out.printf(&amp;quot;%s ===&amp;gt; %s\n&amp;quot;,
          entry.getKey(),
          entry.getValue());
    }&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Iterator는 재활용이 불가능하다. 다시 사용해줘야한다.&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;  Iterator&amp;lt;String&amp;gt; 키를꺼내주는객체 = keys.iterator();&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;3. hashMap vs hashTable&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;key나 value에 null이 될 수 있는지의 여부&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;  hashMap&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;✔️ null을 key로 사용할 수 있다.&lt;/li&gt;
&lt;li&gt;✔️ value가 null이 될 수 있다.&lt;/li&gt;
&lt;li&gt;✔️ 동기화를 지원하지 않는다.&lt;br&gt;멀티스레드가 동시에 사용할 때 문제가 발생할 수 있다.&lt;br&gt;=&amp;gt; 대신 실행 속도가 빠르다.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;  hashTable&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;✔️ key가 null이 될 수 없다.&lt;/li&gt;
&lt;li&gt;✔️ value가 null이 될 수 없다.&lt;/li&gt;
&lt;li&gt;✔️ 동기화 지원&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;=&amp;gt; key나 value에 null을 사용하고 싶다면 HashMap을 사용하라. &lt;br&gt;&lt;br&gt;=&amp;gt; key나 value가 null이 되어서는 안된다면 Hashtable을 사용하라.&lt;/p&gt;</description>
      <category>Language/Java</category>
      <category>ArrayList</category>
      <category>Collection</category>
      <category>hashmap</category>
      <category>Hashtable</category>
      <category>Iterator</category>
      <category>java</category>
      <category>자바</category>
      <category>컬렉션</category>
      <author>변사부</author>
      <guid isPermaLink="true">https://enjoydevelop.tistory.com/85</guid>
      <comments>https://enjoydevelop.tistory.com/85#entry85comment</comments>
      <pubDate>Thu, 26 Aug 2021 12:26:20 +0900</pubDate>
    </item>
    <item>
      <title>  인터페이스 너.. 이 부분에서 유용하지</title>
      <link>https://enjoydevelop.tistory.com/84</link>
      <description>&lt;h2&gt;  인터페이스의 유용성을 다시 생각해보기(객체 호출 규칙)&lt;/h2&gt;
&lt;p&gt;✔️ 만약 ArrayList 사용법과 LinkedList 사용법이 다르다면?&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;ArrayList     vs    LinkedList
append()            add()
delete()            remove()
update()            set()&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;메서드 이름을 개발자에 따라 다르게 지으면 어떤 문제점이 있을까요?&lt;br&gt;&lt;br&gt;✔️ 클래스의 사용법이 달라져서 프로그래밍의 일관성이 없게 됩니다.&lt;/p&gt;
&lt;p&gt;이를 해결하기 위해 나온 인터페이스!!&lt;/p&gt;
&lt;p&gt;✔️ 인터페이스를 사용한다면 개발자가 클래스를 정의할 때, 인터페이스에서 정한 규칙에 따라 메서드를 만들어야합니다.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-java&quot;&gt;List (규칙 즉 객체 사용법을 정의)
add()
remove()
set()&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;                     List
                     /  \
              ArrayList LinkedList
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;ArrayList와 LinkedList의 사용 규칙이 같기 때문에 프로그래밍의 일관성이 생기죠.&lt;br&gt;&lt;br&gt;ArrayList를 LinkedList로 고치더라도 변경해야 할 코드가 적어지게 되고요.&lt;br&gt;✔️ 즉 유지보수에 도움이 됩니다.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://user-images.githubusercontent.com/86590036/130710783-58586ef0-32c5-4593-8145-11d53aaac996.jpg&quot; alt=&quot;유용성1&quot;&gt;&lt;/p&gt;</description>
      <category>Language/Java</category>
      <category>Interface</category>
      <category>java</category>
      <category>인터페이스</category>
      <category>자바</category>
      <author>변사부</author>
      <guid isPermaLink="true">https://enjoydevelop.tistory.com/84</guid>
      <comments>https://enjoydevelop.tistory.com/84#entry84comment</comments>
      <pubDate>Thu, 26 Aug 2021 00:38:22 +0900</pubDate>
    </item>
    <item>
      <title>  bitcamp TIL (21.08.24)</title>
      <link>https://enjoydevelop.tistory.com/82</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;  41일차(2021-08-24,화)&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;자바 객체지향 문법(eomcs-java/com.eomcs.oop)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ex12(Exam0210 ~ ): 람다(lambda) 기본 사용법&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;자바 컬렉션 API(eomcs-java/com.eomcs.basic)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ex03: ArrayList 사용법(계속)&lt;/li&gt;
&lt;/ul&gt;
 알게 된 점&lt;/li&gt;
&lt;li&gt;람다식인지 어떻게 아냐? 앞에 타입보고 안다&lt;/li&gt;
&lt;li&gt;왜나면 functional interface만 람다식을 사용할 수 있기 때문에 해당 인터페이스에는&lt;br /&gt;추상메서드가 1개다. 그 1개를 구현한 것이다.&lt;/li&gt;
&lt;li&gt;익명클래스는 클래스를 상속받거나 인터페이스를 구현하거나&lt;/li&gt;
&lt;li&gt;팩토리 메서드 디자인 패턴
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;메서드가 인스턴스를 만들어서 준다.&lt;/li&gt;
&lt;li&gt;인스턴스 생성 과정이 복잡한 경우 사용&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;바깥메서드의 로컬변수를 사용함다면&lt;/li&gt;
&lt;li&gt;인스턴스 필드랑 로컬 변수를 사용한다면 굳이 중첩클래스 안에서 생성자로 변수등록하는 것을&lt;br /&gt;만들 필요없다. 알아서 컴파일러가 만들어준다.&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>TIL</category>
      <category>bitcamp</category>
      <category>국비학원</category>
      <category>비트캠프</category>
      <author>변사부</author>
      <guid isPermaLink="true">https://enjoydevelop.tistory.com/82</guid>
      <comments>https://enjoydevelop.tistory.com/82#entry82comment</comments>
      <pubDate>Tue, 24 Aug 2021 23:58:14 +0900</pubDate>
    </item>
  </channel>
</rss>