<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>개발자가 되고싶은 개발일기</title>
    <link>https://gaebaldiary.tistory.com/</link>
    <description>스마트한 개발자가 되고 싶은 개발자가 적은 개발일기들 방문하시는 분들 도움이 되시길 바랍니다.</description>
    <language>ko</language>
    <pubDate>Sat, 30 May 2026 17:51:27 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>코멧</managingEditor>
    <image>
      <title>개발자가 되고싶은 개발일기</title>
      <url>https://tistory1.daumcdn.net/tistory/3198165/attach/abdea4c1040d4c14a442cbe591a82421</url>
      <link>https://gaebaldiary.tistory.com</link>
    </image>
    <item>
      <title>[배달] 배민커넥트 쿠팡배달 도보60 도보배달 후기 수익 3일차!</title>
      <link>https://gaebaldiary.tistory.com/51</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;배민커넥트로 배달을 하면서 &quot;어떻게 하면 수익을 더 창출할 수 있을까?&quot;라는 생각을 했습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다양한 플랫폼으로 주문을 받는다면 대기시간이 없어지고 빠르게 배달을 받을 수 있지 않을까 라는 생각으로 해보았습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리하여 여러 유투브 시청을 통해 가장 각광받는 플랫폼 쿠팡과 도보60으로도 도보 배달이 가능하다는 것을 알게 되어 교육 시청 및 플랫폼을 켜서 시도해보았습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;2021.10.13 (3일 차 수익)&lt;/b&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;b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;총 건수 : 배민 2건&amp;nbsp; + 쿠팡1건 + 도보60 3건 = 6건&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;수익 : 배민 6100 + 쿠팡 2500 + 도보60 7000 = 15600 원&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;걸음 : 20836&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;거리 : 16.28km&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;시간 : 3시간&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;background-color: #f1f1f1; color: #000000;&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; width=&quot;295&quot; height=&quot;656&quot; data-origin-width=&quot;576&quot; data-origin-height=&quot;1280&quot; data-filename=&quot;KakaoTalk_20211019_120015548.jpg&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dWqsc0/btrh6Ih3Iou/TSovD967US6Zyai327Dz1K/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dWqsc0/btrh6Ih3Iou/TSovD967US6Zyai327Dz1K/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dWqsc0/btrh6Ih3Iou/TSovD967US6Zyai327Dz1K/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdWqsc0%2Fbtrh6Ih3Iou%2FTSovD967US6Zyai327Dz1K%2Fimg.jpg&quot; width=&quot;295&quot; height=&quot;656&quot; data-origin-width=&quot;576&quot; data-origin-height=&quot;1280&quot; data-filename=&quot;KakaoTalk_20211019_120015548.jpg&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;후기&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3일차로 해보고 느낀 점은 배달이 끊이지 않게 할 수 있다는 장점이 있었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대신 건 당 단가는 크게 줄어 가격은 크지 않다는 게 아쉬운 점이었습니다. 하지만 배민커넥트만 했다면 10000원도 넘기지 못했을 텐데 다양한 플랫폼으로 한 결과 15000원 이상 수익을 냈다는 점이 고무적이었습니다.&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;일 끝나고 집 도착하면 7시~8시쯤 되는데 집 도착하고 준비하고 나오면 너무 시간이 늦어져서 배달 건수가 많이 없기에 3가지 플랫폼을 사용하겠다고 마음먹었습니다.&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;제가 3일 동안 6만보를 걸으면서 자전거 킥보드까지 같이 하다 보니깐 다리 발목 인대가 부어 걷지도 못하겠더라고요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;병원 가보니 2주일 쉬라고 합니다.&lt;/p&gt;
&lt;figure contenteditable=&quot;false&quot; data-ke-type=&quot;emoticon&quot; data-ke-align=&quot;alignCenter&quot; data-emoticon-type=&quot;friends1&quot; data-emoticon-name=&quot;035&quot; data-emoticon-isanimation=&quot;false&quot; data-emoticon-src=&quot;https://t1.daumcdn.net/keditor/emoticon/friends1/large/035.gif&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/keditor/emoticon/friends1/large/035.gif&quot; width=&quot;150&quot; /&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;/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;</description>
      <category>일상/배달일기</category>
      <category>도보 배달 알바</category>
      <category>도보 후기</category>
      <category>도보60 도보 배달</category>
      <category>도보60 배달</category>
      <category>배달 도보</category>
      <category>배민커넥트 도보 배달</category>
      <category>배민커넥트 배달</category>
      <category>쿠팡이츠 도보 배달</category>
      <category>쿠팡이츠 배달</category>
      <author>코멧</author>
      <guid isPermaLink="true">https://gaebaldiary.tistory.com/51</guid>
      <comments>https://gaebaldiary.tistory.com/51#entry51comment</comments>
      <pubDate>Tue, 19 Oct 2021 12:16:35 +0900</pubDate>
    </item>
    <item>
      <title>투잡! 배민커넥트 도보 후기 수익 2일차!(배달 도보 후기)</title>
      <link>https://gaebaldiary.tistory.com/50</link>
      <description>&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;몸무게 : 77kg&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;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;2021.10.12 (2일 차 수익)&lt;/b&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;b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;건수 : 5건&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;수익 : 17100&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;걸음 : 19670&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;거리 : 15.26km&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;시간 : 3시간&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;576&quot; data-origin-height=&quot;1280&quot; data-filename=&quot;KakaoTalk_20211018_102546246_01.jpg&quot; width=&quot;408&quot; height=&quot;907&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bj6BgX/btrh4MKJhQr/Avm1Oe5Kj4fE1eUXCmsz71/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bj6BgX/btrh4MKJhQr/Avm1Oe5Kj4fE1eUXCmsz71/img.jpg&quot; data-alt=&quot;10월 12일 걸음&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bj6BgX/btrh4MKJhQr/Avm1Oe5Kj4fE1eUXCmsz71/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbj6BgX%2Fbtrh4MKJhQr%2FAvm1Oe5Kj4fE1eUXCmsz71%2Fimg.jpg&quot; data-origin-width=&quot;576&quot; data-origin-height=&quot;1280&quot; data-filename=&quot;KakaoTalk_20211018_102546246_01.jpg&quot; width=&quot;408&quot; height=&quot;907&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;10월 12일 걸음&lt;/figcaption&gt;
&lt;/figure&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;가격도 싸고 공간도 넓고 저 처럼 배민커넥트 처음 시도하시는 분들은 사용하기 좋을 것 같아서 URL을 첨부합니다!&lt;/p&gt;
&lt;figure contenteditable=&quot;false&quot; data-ke-type=&quot;emoticon&quot; data-ke-align=&quot;alignCenter&quot; data-emoticon-type=&quot;friends2&quot; data-emoticon-name=&quot;009&quot; data-emoticon-isanimation=&quot;false&quot; data-emoticon-src=&quot;https://t1.daumcdn.net/keditor/emoticon/friends2/large/009.png&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/keditor/emoticon/friends2/large/009.png&quot; width=&quot;150&quot; /&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://coupa.ng/b80uTP&quot;&gt;https://coupa.ng/b80uTP&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1634520908863&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;대성 접이식 배달가방백팩 57L 배달백팩 백팩배달가방&quot; data-og-description=&quot;COUPANG&quot; data-og-host=&quot;www.coupang.com&quot; data-og-source-url=&quot;https://coupa.ng/b80uTP&quot; data-og-url=&quot;https://www.coupang.com/vp/products/5624353013&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/DDtMa/hyLZQjGsO6/pb1ww9UKwbKOfxdgI2ZDu1/img.jpg?width=230&amp;amp;height=230&amp;amp;face=0_0_230_230&quot;&gt;&lt;a href=&quot;https://coupa.ng/b80uTP&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://coupa.ng/b80uTP&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/DDtMa/hyLZQjGsO6/pb1ww9UKwbKOfxdgI2ZDu1/img.jpg?width=230&amp;amp;height=230&amp;amp;face=0_0_230_230');&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;대성 접이식 배달가방백팩 57L 배달백팩 백팩배달가방&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;COUPANG&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.coupang.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f7f7f7; color: #3c3d3f;&quot;&gt;&lt;span style=&quot;color: #e56a2c;&quot;&gt;&quot;이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.&quot;&lt;/span&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;2일 차의 특이점은 친구가 전기 자전거와 킥보드가 있어 빌렸습니다!&lt;br /&gt;이후 테스트를 위해 두 가지 배달 수단으로 1건씩 수행했습니다.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하다 보니 도보 시간 대비 1.5배는&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;앞으로 더 꾸준히 하여 성과를 낼 예정입니다.&lt;/p&gt;</description>
      <category>일상/배달일기</category>
      <category>도보 배달</category>
      <category>도보 후기</category>
      <category>배달의민족</category>
      <category>배민커넥트</category>
      <category>배민커넥트 도보</category>
      <category>투잡</category>
      <author>코멧</author>
      <guid isPermaLink="true">https://gaebaldiary.tistory.com/50</guid>
      <comments>https://gaebaldiary.tistory.com/50#entry50comment</comments>
      <pubDate>Mon, 18 Oct 2021 10:42:08 +0900</pubDate>
    </item>
    <item>
      <title>투잡! 배민커넥트 도보 후기 수익 1일차!(배달 도보 후기) 2021.10.11</title>
      <link>https://gaebaldiary.tistory.com/49</link>
      <description>&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;현재 몸무게 77kg&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;과연 1달 정도 하면 얼마나 빠질지.... ?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이후 도보가 익숙해지면 킥보드, 전기자전거 변경할 예정입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그렇다면 다이어트 효과가 줄어들려나...&lt;/p&gt;

&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;2021.10.11 (1일 차 수익)&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;건수 : 10건&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;수익 : 31500원&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;걸음 : 21558&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;거리 : 17.48km&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;576&quot; data-origin-height=&quot;1280&quot; data-filename=&quot;KakaoTalk_20211014_154238670.jpg&quot; width=&quot;334&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/SWnBK/btrhHoYNK84/Pt3z4YrkfkcICIH57gQIGK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/SWnBK/btrhHoYNK84/Pt3z4YrkfkcICIH57gQIGK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/SWnBK/btrhHoYNK84/Pt3z4YrkfkcICIH57gQIGK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSWnBK%2FbtrhHoYNK84%2FPt3z4YrkfkcICIH57gQIGK%2Fimg.jpg&quot; data-origin-width=&quot;576&quot; data-origin-height=&quot;1280&quot; data-filename=&quot;KakaoTalk_20211014_154238670.jpg&quot; width=&quot;334&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가입 후 교육 이수만 한다면 바로 시작할 수 있는 배민커넥트!!&lt;br /&gt;가입하실 때 추천인 코드를 작성하고 14일 이내에 1건만 배달해도 2만 원이 지급됩니다!&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;추천인 코드&lt;/b&gt; : &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;jky87&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;처음 해보는 배달! 1일차 두근거리는 마음으로 시작하였습니다.&lt;/p&gt;
&lt;figure contenteditable=&quot;false&quot; data-ke-type=&quot;emoticon&quot; data-ke-align=&quot;alignCenter&quot; data-emoticon-type=&quot;friends1&quot; data-emoticon-name=&quot;027&quot; data-emoticon-isanimation=&quot;false&quot; data-emoticon-src=&quot;https://t1.daumcdn.net/keditor/emoticon/friends1/large/027.gif&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/keditor/emoticon/friends1/large/027.gif&quot; width=&quot;150&quot; /&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;부천에서 가장 번화가라 생각하는 현대백화점으로 걸어가 배달대기를 했습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;18:27 첫 배달 콜이 들어왔습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&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;약 700m 거리를 걸어서 가며 배달을 시켰을 때 어떻게 멘트를 하고 했던 것들을 상상하며 도보로 열심히 걸었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;딩동을 누르고 &quot;배달 왔습니다&quot; 하며 고객과 눈 마주치며 &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;이후 잡히는 콜 마다 다 잡아서 배달한 결과 31,500원의 이득을 취할 수 있었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;운동도 되고 돈도 벌 수 있는 1석 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;앞으로도 매일매일 일기 형식으로 글을 작성하여 배민에 대한 노하우를 익혀나가며 한 달에 투잡으로 200만원을 버는 그 날까지 계속 할 것 입니다!!&lt;/p&gt;
&lt;figure contenteditable=&quot;false&quot; data-ke-type=&quot;emoticon&quot; data-ke-align=&quot;alignCenter&quot; data-emoticon-type=&quot;friends1&quot; data-emoticon-name=&quot;032&quot; data-emoticon-isanimation=&quot;false&quot; data-emoticon-src=&quot;https://t1.daumcdn.net/keditor/emoticon/friends1/large/032.gif&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/keditor/emoticon/friends1/large/032.gif&quot; width=&quot;150&quot; /&gt;&lt;/figure&gt;</description>
      <category>일상/배달일기</category>
      <category>도보 배달</category>
      <category>도보 후기</category>
      <category>배달의민족</category>
      <category>배민커넥트</category>
      <category>배민커넥트 도보</category>
      <category>투잡</category>
      <author>코멧</author>
      <guid isPermaLink="true">https://gaebaldiary.tistory.com/49</guid>
      <comments>https://gaebaldiary.tistory.com/49#entry49comment</comments>
      <pubDate>Thu, 14 Oct 2021 15:48:59 +0900</pubDate>
    </item>
    <item>
      <title>[Linux] 리눅스 운영체제(OS) 확인 (CentOS Ubuntu 확인)</title>
      <link>https://gaebaldiary.tistory.com/48</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Linux를 사용하다보면 SSH로 접속을 하더라도 운영체제에 대해서 정확히 모를때가 많습니다.&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;Linux의 커널의 버전은 /proc/version에서 관리합니다.&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;b&gt;cat 명령어&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;cat명령어를 사용해 /proc/version을 확인해 보면 아래와 같이 커널 정보를 확인할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;cat /proc/version&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;654&quot; data-origin-height=&quot;80&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CD5o5/btrdHfb2ETl/0H4B8mVQsGP0lkGeKikIy1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CD5o5/btrdHfb2ETl/0H4B8mVQsGP0lkGeKikIy1/img.png&quot; data-alt=&quot;cat 명령어&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CD5o5/btrdHfb2ETl/0H4B8mVQsGP0lkGeKikIy1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCD5o5%2FbtrdHfb2ETl%2F0H4B8mVQsGP0lkGeKikIy1%2Fimg.png&quot; data-origin-width=&quot;654&quot; data-origin-height=&quot;80&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;cat 명령어&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;일반적 커널 정보 확인&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;uname이란 명령어를 통해 확인이 가능합니다.&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;uname은 옵션은 아래와 같습니다.&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 : 상세정보&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;r : 커널의 릴리즈 버전을 확인합니다.&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라는 옵션을 사용해 사용합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;647&quot; data-origin-height=&quot;50&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wQ4fg/btrdylFmmm0/3j3XK8DwGkHe0wXa6CkEyk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wQ4fg/btrdylFmmm0/3j3XK8DwGkHe0wXa6CkEyk/img.png&quot; data-alt=&quot;uname 명령어&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wQ4fg/btrdylFmmm0/3j3XK8DwGkHe0wXa6CkEyk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwQ4fg%2FbtrdylFmmm0%2F3j3XK8DwGkHe0wXa6CkEyk%2Fimg.png&quot; data-origin-width=&quot;647&quot; data-origin-height=&quot;50&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;uname 명령어&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;

&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;OS 버전 정보 확인&lt;/b&gt;&lt;/h3&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;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: #ee2323;&quot;&gt;&lt;b&gt;cat /etc/redhat-release&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;358&quot; data-origin-height=&quot;47&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/k3zWL/btrdCyRvw7m/e95jgz7FktGrmNtIXQDrq1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/k3zWL/btrdCyRvw7m/e95jgz7FktGrmNtIXQDrq1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/k3zWL/btrdCyRvw7m/e95jgz7FktGrmNtIXQDrq1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fk3zWL%2FbtrdCyRvw7m%2Fe95jgz7FktGrmNtIXQDrq1%2Fimg.png&quot; data-origin-width=&quot;358&quot; data-origin-height=&quot;47&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;cat /etc/*release*&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;408&quot; data-origin-height=&quot;368&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CKBvm/btrdwSDnGks/GOa4XdhKcrkPfsNaiOFvmk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CKBvm/btrdwSDnGks/GOa4XdhKcrkPfsNaiOFvmk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CKBvm/btrdwSDnGks/GOa4XdhKcrkPfsNaiOFvmk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCKBvm%2FbtrdwSDnGks%2FGOa4XdhKcrkPfsNaiOFvmk%2Fimg.png&quot; data-origin-width=&quot;408&quot; data-origin-height=&quot;368&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;script async src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8720911335503994&quot;
     crossorigin=&quot;anonymous&quot;&gt;&lt;/script&gt;
&lt;!-- 광고! --&gt;
&lt;ins class=&quot;adsbygoogle&quot;
     style=&quot;display:block&quot;
     data-ad-client=&quot;ca-pub-8720911335503994&quot;
     data-ad-slot=&quot;6890907175&quot;
     data-ad-format=&quot;auto&quot;
     data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;OS 비트 확인&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;OS에 대해 비트에 대해 확인해서 설치를 해야될때가 있습니다.&lt;/b&gt;&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;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;getconf LONG_BIT&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;286&quot; data-origin-height=&quot;43&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/doDGOy/btrdETmHBWI/Il7vOxkVKYTJLz1ko74vAK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/doDGOy/btrdETmHBWI/Il7vOxkVKYTJLz1ko74vAK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/doDGOy/btrdETmHBWI/Il7vOxkVKYTJLz1ko74vAK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdoDGOy%2FbtrdETmHBWI%2FIl7vOxkVKYTJLz1ko74vAK%2Fimg.png&quot; data-origin-width=&quot;286&quot; data-origin-height=&quot;43&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>네트워크/리눅스(Linux)</category>
      <category>CentOS</category>
      <category>centOS ubuntu 확인</category>
      <category>ubuntu</category>
      <category>리눅스 OS 확인</category>
      <category>리눅스 운영체제 확인</category>
      <author>코멧</author>
      <guid isPermaLink="true">https://gaebaldiary.tistory.com/48</guid>
      <comments>https://gaebaldiary.tistory.com/48#entry48comment</comments>
      <pubDate>Tue, 31 Aug 2021 10:41:17 +0900</pubDate>
    </item>
    <item>
      <title>[ORACLE]테이블(TABLE) 컬럼(COLUMN) Procedure, Function 검색&amp;amp;조회</title>
      <link>https://gaebaldiary.tistory.com/47</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;span&gt;1.&amp;nbsp;테이블&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;조회하기&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;span&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp;- 테이블 목록 조회&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;SELECT * &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;FROM ALL_ALL_TABLES &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;SELECT * &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;FROM DBA_TABLES &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;SELECT * &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;FROM ALL_OBJECTS &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;WHERE OBJECT_TYPE = 'TABLE'&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;b&gt;&lt;span&gt;- 테이블 목록 조회 (접속한 계정)&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;SELECT * &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;FROM TABS &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SELECT&amp;nbsp;* &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;USER_OBJECTS &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WHERE&amp;nbsp;OBJECT_TYPE&amp;nbsp;=&amp;nbsp;'TABLE' &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SELECT&amp;nbsp;* &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;USER_TABLES&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;span&gt;&lt;b&gt;&lt;span&gt;- 테이블 코멘트 조회&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SELECT&amp;nbsp;* &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;ALL_TAB_COMMENTS &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WHERE&amp;nbsp;TABLE_NAME&amp;nbsp;=&amp;nbsp;'테이블명' &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SELECT&amp;nbsp;* &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;USER_TAB_COMMENTS&lt;/p&gt;

&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;span&gt;2.&amp;nbsp;컬럼&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;조회하기&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp; -&amp;nbsp;컬럼 조회&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SELECT&amp;nbsp;* &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;COLS &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WHERE&amp;nbsp;TABLE_NAME&amp;nbsp;=&amp;nbsp;'테이블명' &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SELECT&amp;nbsp;* &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;ALL_TAB_COLUMNS &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WHERE&amp;nbsp;TABLE_NAME&amp;nbsp;=&amp;nbsp;'테이블명' &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SELECT&amp;nbsp;* &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;USER_TAB_COLUMNS&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;span&gt;&amp;nbsp; -&amp;nbsp;컬럼 코멘트 조회&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;SELECT * &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;FROM USER_COL_COMMENTS&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;3. PROCEDURE, TRIGGER, FUNCTION, JAVA SOURCE 등 조회&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&amp;nbsp;- TYPE 별 조회&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; SELECT *&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; FROM USER_SOURCE&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; WHERE TYPE = 값 &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; (PROCEDURE, TRIGGER, FUNCTION, JAVA SOURCE)&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&amp;nbsp;- TEXT VALUE 값으로 조회&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; SELECT *&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; FROM USER_SOURCE&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; WHERE TEXT LIKE '%값%' &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; (찾고싶은 TEXT)&lt;/p&gt;</description>
      <category>DB/ORACLE</category>
      <category>function 조회</category>
      <category>procedure 조회</category>
      <category>trigger 조회</category>
      <category>오라클 테이블 조회</category>
      <category>컬럼 조회</category>
      <category>테이블 조회</category>
      <category>테이블 코멘트 조회</category>
      <author>코멧</author>
      <guid isPermaLink="true">https://gaebaldiary.tistory.com/47</guid>
      <comments>https://gaebaldiary.tistory.com/47#entry47comment</comments>
      <pubDate>Tue, 10 Aug 2021 18:50:47 +0900</pubDate>
    </item>
    <item>
      <title>Linux svn repository 저장소 생성</title>
      <link>https://gaebaldiary.tistory.com/46</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;형상관리를 쓰다 보면 repository를 생성해야 될 일이 많이 생깁니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각각 사이트에서 Jenkins와 연동되기 위해서라도 repository 각각 생성하여 관리하는 것이 훨씬 관리적인 측면에서 좋기 때문에 리눅스에서 SVN repository 생성하는 방법에 대해서 포스팅하려고 합니다.&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;b&gt;1. Repositry 생성&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당되는 svn 폴더로 들어갑니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;68&quot; data-origin-height=&quot;22&quot; width=&quot;90&quot; height=&quot;29&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/DFNud/btq8FVqHzMS/m2SJMeiJe40AACsNLU9woK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/DFNud/btq8FVqHzMS/m2SJMeiJe40AACsNLU9woK/img.png&quot; data-alt=&quot;접속 명령어&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/DFNud/btq8FVqHzMS/m2SJMeiJe40AACsNLU9woK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDFNud%2Fbtq8FVqHzMS%2Fm2SJMeiJe40AACsNLU9woK%2Fimg.png&quot; data-origin-width=&quot;68&quot; data-origin-height=&quot;22&quot; width=&quot;90&quot; height=&quot;29&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;접속 명령어&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래와 같이 repository 생성 명령어로 생성합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;290&quot; data-origin-height=&quot;18&quot; width=&quot;435&quot; height=&quot;27&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bf2S8Q/btq8DRbrzKZ/TKIh2QeRkUvtLNkz5cq2P0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bf2S8Q/btq8DRbrzKZ/TKIh2QeRkUvtLNkz5cq2P0/img.png&quot; data-alt=&quot;repository 생성 명령어&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bf2S8Q/btq8DRbrzKZ/TKIh2QeRkUvtLNkz5cq2P0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbf2S8Q%2Fbtq8DRbrzKZ%2FTKIh2QeRkUvtLNkz5cq2P0%2Fimg.png&quot; data-origin-width=&quot;290&quot; data-origin-height=&quot;18&quot; width=&quot;435&quot; height=&quot;27&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;repository 생성 명령어&lt;/figcaption&gt;
&lt;/figure&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&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;101&quot; data-origin-height=&quot;18&quot; width=&quot;163&quot; height=&quot;29&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdmH3c/btq8HTSt9Br/TQB64FFD3TZG6S3EpqrKWK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdmH3c/btq8HTSt9Br/TQB64FFD3TZG6S3EpqrKWK/img.png&quot; data-alt=&quot;repository 삭제 명령어&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdmH3c/btq8HTSt9Br/TQB64FFD3TZG6S3EpqrKWK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdmH3c%2Fbtq8HTSt9Br%2FTQB64FFD3TZG6S3EpqrKWK%2Fimg.png&quot; data-origin-width=&quot;101&quot; data-origin-height=&quot;18&quot; width=&quot;163&quot; height=&quot;29&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;repository 삭제 명령어&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2. ID/권한을 생성&lt;/b&gt;&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;a href=&quot;https://gaebaldiary.tistory.com/41&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://gaebaldiary.tistory.com/41&lt;/a&gt;&lt;/p&gt;
</description>
      <category>형상관리/SVN</category>
      <category>Linux Repository 생성</category>
      <category>svn repository 생성</category>
      <category>svn 저장소</category>
      <category>SVN 저장소 생성</category>
      <category>리눅스 저장소 생성</category>
      <author>코멧</author>
      <guid isPermaLink="true">https://gaebaldiary.tistory.com/46</guid>
      <comments>https://gaebaldiary.tistory.com/46#entry46comment</comments>
      <pubDate>Fri, 2 Jul 2021 18:46:03 +0900</pubDate>
    </item>
    <item>
      <title>리눅스&amp;amp;window mac 주소 확인</title>
      <link>https://gaebaldiary.tistory.com/45</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;프로젝트를 진행하다 보면 보안에 따라 mac주소를 넘겨야 하는 경우가 많이 생깁니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대표적인 OS 리눅스&amp;amp;WINDOW mac 주소 확인하는 방법에 대해 포스팅하려고 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;WINDOW&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Window에서는 시작 버튼을 누른 후 cmd로 콘솔 창을 열어 준 후 명령어를 통해 확인이 가능합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;명령어로는 아래 2가지로 확인이 가능합니다.&lt;/p&gt;
&lt;script async src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8720911335503994&quot;
     crossorigin=&quot;anonymous&quot;&gt;&lt;/script&gt;
&lt;!-- URL 근처 --&gt;
&lt;ins class=&quot;adsbygoogle&quot;
     style=&quot;display:block&quot;
     data-ad-client=&quot;ca-pub-8720911335503994&quot;
     data-ad-slot=&quot;7207081532&quot;
     data-ad-format=&quot;auto&quot;
     data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;1. ipconfig -all&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;671&quot; data-origin-height=&quot;907&quot; data-filename=&quot;window.png&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ly5we/btq7VZNSLuM/f3e1JQDuAmA8aOufVKPWL1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ly5we/btq7VZNSLuM/f3e1JQDuAmA8aOufVKPWL1/img.png&quot; data-alt=&quot;ipconfig -all 실행화면&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ly5we/btq7VZNSLuM/f3e1JQDuAmA8aOufVKPWL1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fly5we%2Fbtq7VZNSLuM%2Ff3e1JQDuAmA8aOufVKPWL1%2Fimg.png&quot; data-origin-width=&quot;671&quot; data-origin-height=&quot;907&quot; data-filename=&quot;window.png&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;ipconfig -all 실행화면&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;cmd 창을 실행시킨 후 ipconfig -all 을 통해 전체 IP 정보와 mac주소 정보를 확인할 수가 있습니다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;2.getmac -v&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;1151&quot; data-origin-height=&quot;176&quot; data-filename=&quot;window2.png&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ewj0ws/btq7UN1JpDM/fa5H2wrIS8UkR90IkaxP71/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ewj0ws/btq7UN1JpDM/fa5H2wrIS8UkR90IkaxP71/img.png&quot; data-alt=&quot;getmac -v 실행화면&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ewj0ws/btq7UN1JpDM/fa5H2wrIS8UkR90IkaxP71/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fewj0ws%2Fbtq7UN1JpDM%2Ffa5H2wrIS8UkR90IkaxP71%2Fimg.png&quot; data-origin-width=&quot;1151&quot; data-origin-height=&quot;176&quot; data-filename=&quot;window2.png&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;getmac -v 실행화면&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;cmd 창을 실행시킨 후 getmac -v 명령어를 통해 mac 주소를 직관적으로 볼수가 있습니다.&lt;/p&gt;
&lt;!-- URL 근처 --&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;window에서는 위에 2가지 명령어로 간단하게 확인이 가능합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;리눅스(Linux)&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;리눅스 terminal에 접속 후 ifconfig -a | grep eth 명령어를 통해 확인이 가능합니다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;613&quot; data-origin-height=&quot;83&quot; data-filename=&quot;리눅스1.png&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cM4WI9/btq7UOl7Ujp/DgL1fb19KezqWWDO90rZkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cM4WI9/btq7UOl7Ujp/DgL1fb19KezqWWDO90rZkk/img.png&quot; data-alt=&quot;ifconfig -a grep eth&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cM4WI9/btq7UOl7Ujp/DgL1fb19KezqWWDO90rZkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcM4WI9%2Fbtq7UOl7Ujp%2FDgL1fb19KezqWWDO90rZkk%2Fimg.png&quot; data-origin-width=&quot;613&quot; data-origin-height=&quot;83&quot; data-filename=&quot;리눅스1.png&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;ifconfig -a grep eth&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>네트워크/리눅스(Linux)</category>
      <category>mac 주소 확인</category>
      <category>window 물리적주소</category>
      <category>리눅스 mac</category>
      <category>리눅스 물리적주소</category>
      <category>물리적주소 확인</category>
      <author>코멧</author>
      <guid isPermaLink="true">https://gaebaldiary.tistory.com/45</guid>
      <comments>https://gaebaldiary.tistory.com/45#entry45comment</comments>
      <pubDate>Wed, 23 Jun 2021 14:39:47 +0900</pubDate>
    </item>
    <item>
      <title>공유기 포트포워딩(IPTIME) 하는법</title>
      <link>https://gaebaldiary.tistory.com/44</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;개발서버를 구성하다 보면 한 공유기(ex. IPTIME)에 다양한 외부 포트에 대한 접근을 내부 포트로 보내는 포트 포워딩을 하게 됩니다. 이에 따라 한 공유기로 다양한 서버를 구성을 할 수 있게 됩니다.&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;이와 같은 작업은 아래 3가지의 간단한 작업을 통해 포트포워딩 구성이 가능합니다.&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;li&gt;새 규칙 추가&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 IPTIME 관리자 페이지로 접근합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;보통 192.168.0.1로 접근하면 페이지가 열리게 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약 접속이 안된다면 주소를 확인하여 접속을 하게 됩니다. cmd에서 &quot;ipconfig&quot; 명령어를 실행한다면 아래와 같은 화면이 나옵니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;647&quot; data-origin-height=&quot;364&quot; data-filename=&quot;ipconfig.png&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/AwiMC/btq7ytolq60/68ZzYx7VsKWbaseIIfG8Lk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/AwiMC/btq7ytolq60/68ZzYx7VsKWbaseIIfG8Lk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/AwiMC/btq7ytolq60/68ZzYx7VsKWbaseIIfG8Lk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAwiMC%2Fbtq7ytolq60%2F68ZzYx7VsKWbaseIIfG8Lk%2Fimg.png&quot; data-origin-width=&quot;647&quot; data-origin-height=&quot;364&quot; data-filename=&quot;ipconfig.png&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;빨간색으로 구성된 부분에 IP로 접근하면 접속이 가능할 겁니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;1. 로그인&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;IPTIME admin 아이디로 로그인을 해주시면 됩니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;402&quot; data-origin-height=&quot;376&quot; data-filename=&quot;공유기로그인.PNG&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/PYhPq/btq7yr46W7g/MUX5B94Gzz4bbQtgqX0mx0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/PYhPq/btq7yr46W7g/MUX5B94Gzz4bbQtgqX0mx0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/PYhPq/btq7yr46W7g/MUX5B94Gzz4bbQtgqX0mx0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPYhPq%2Fbtq7yr46W7g%2FMUX5B94Gzz4bbQtgqX0mx0%2Fimg.png&quot; data-origin-width=&quot;402&quot; data-origin-height=&quot;376&quot; data-filename=&quot;공유기로그인.PNG&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;387&quot; data-origin-height=&quot;360&quot; data-filename=&quot;관리도구 클릭.PNG&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/clXzxl/btq7x94MUdn/WpgmnBno8G5yiWI3yUkIx1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/clXzxl/btq7x94MUdn/WpgmnBno8G5yiWI3yUkIx1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/clXzxl/btq7x94MUdn/WpgmnBno8G5yiWI3yUkIx1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FclXzxl%2Fbtq7x94MUdn%2FWpgmnBno8G5yiWI3yUkIx1%2Fimg.png&quot; data-origin-width=&quot;387&quot; data-origin-height=&quot;360&quot; data-filename=&quot;관리도구 클릭.PNG&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;관리 도구를 클릭해주시면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;2. 메뉴 접근&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;249&quot; data-origin-height=&quot;577&quot; data-filename=&quot;메뉴.PNG&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pPZbd/btq7CiF3Xmf/OkTgY2dgsbFLAERcINpEK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pPZbd/btq7CiF3Xmf/OkTgY2dgsbFLAERcINpEK0/img.png&quot; data-alt=&quot;IPTIME 메뉴&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pPZbd/btq7CiF3Xmf/OkTgY2dgsbFLAERcINpEK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpPZbd%2Fbtq7CiF3Xmf%2FOkTgY2dgsbFLAERcINpEK0%2Fimg.png&quot; data-origin-width=&quot;249&quot; data-origin-height=&quot;577&quot; data-filename=&quot;메뉴.PNG&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;IPTIME 메뉴&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;메뉴 &lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;포트 포워딩 설정&lt;/span&gt;&lt;/b&gt;으로 접근합니다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;3. 새 규칙 추가&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;806&quot; data-origin-height=&quot;194&quot; data-filename=&quot;포트포워딩 새규칙 추가.PNG&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/WBM3w/btq7y3wmTtg/bZgRUh2k70iRY9xc0ku3pK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/WBM3w/btq7y3wmTtg/bZgRUh2k70iRY9xc0ku3pK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/WBM3w/btq7y3wmTtg/bZgRUh2k70iRY9xc0ku3pK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWBM3w%2Fbtq7y3wmTtg%2FbZgRUh2k70iRY9xc0ku3pK%2Fimg.png&quot; data-origin-width=&quot;806&quot; data-origin-height=&quot;194&quot; data-filename=&quot;포트포워딩 새규칙 추가.PNG&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;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;이와 같이 공유기의 포트 포워딩은 단순하게 끝납니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저 또한 포트 포워딩을 하는데 처음에는 그냥 단순한 사용법을 몰라서 헤매는 바람에 이와 같은 포스팅을 하게 되었습니다.&lt;/p&gt;</description>
      <category>네트워크</category>
      <category>iptime 포트포워딩</category>
      <category>공유기 포트포워딩</category>
      <category>공유기 포트포워딩 하는법</category>
      <category>포트포워딩</category>
      <category>포트포워딩 하는법</category>
      <author>코멧</author>
      <guid isPermaLink="true">https://gaebaldiary.tistory.com/44</guid>
      <comments>https://gaebaldiary.tistory.com/44#entry44comment</comments>
      <pubDate>Fri, 18 Jun 2021 13:50:06 +0900</pubDate>
    </item>
    <item>
      <title>ORA-04031: unable to allocate nn bytes of shared memory</title>
      <link>https://gaebaldiary.tistory.com/43</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;회사에 도착 후 서버 점검을 하는데 오라클 ORA-04031 에러로 인해 개발서버가 실행되지 않고 있었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 에러 내용은 nn byte에 공유 메모리를 할당할 수 없다는 내용으로 shared memory를 필요로 하지만 적재를 하지 못해 나는 에러입니다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;발생원인&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ORA-04031 에러는 Shared Pool의 관리가 원활히 되지 않아 수행되는 SQL이 적재할 Memory가 없어 error가 발생해서 생기는 게 원인입니다.&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;Shared Pool Fragmentation (Shared Pool 과도한 조각화)&lt;/li&gt;
&lt;li&gt;Too many pinned packages&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt; (고정된 패키지가 많음)&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;!-- URL 근처 --&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8720911335503994&quot; data-ad-slot=&quot;7207081532&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;해결방안&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;347&quot; data-origin-height=&quot;214&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dx9AI3/btq7tGAVE3V/qRkEVCIrt0Gi2fbK0lKSTk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dx9AI3/btq7tGAVE3V/qRkEVCIrt0Gi2fbK0lKSTk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dx9AI3/btq7tGAVE3V/qRkEVCIrt0Gi2fbK0lKSTk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdx9AI3%2Fbtq7tGAVE3V%2FqRkEVCIrt0Gi2fbK0lKSTk%2Fimg.png&quot; data-origin-width=&quot;347&quot; data-origin-height=&quot;214&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;125&quot; data-origin-height=&quot;35&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbOUpx/btq7wQbHB8u/xvTfFk8XqKHUTH7tDZfDfk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbOUpx/btq7wQbHB8u/xvTfFk8XqKHUTH7tDZfDfk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbOUpx/btq7wQbHB8u/xvTfFk8XqKHUTH7tDZfDfk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbOUpx%2Fbtq7wQbHB8u%2FxvTfFk8XqKHUTH7tDZfDfk%2Fimg.png&quot; data-origin-width=&quot;125&quot; data-origin-height=&quot;35&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같은 방식으로 오라클을 내렸다 올리면 바로 해결이 가능합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 구체적인 에러 원인에 대해 해결을 해야 에러가 반복되지 않을 것이라 생각하기에 아래와 같은 작업을 하였습니다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1. Shared Pool Fragmentation (Shared Pool 과도한 조각화)&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 과도한 조각화를 방지하기 위해서는 Literal SQL &amp;gt; Bind Variable SQL로 바꿔주는 작업이 가장 좋은 방법입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;하드코딩으로 박힌 SQL은 각각 마다 Shared Pool을 잡아 먹습니다. 하지만 Bind Variable SQL은 한 번 Shared Pool에 올라가서 Bind만 되는 것이기 때문에 하나의 Shared Pool만 잡아먹기 때문에 Bind Variable SQL로 대부분 바꿔주는 것이 좋습니다.&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;b&gt;2. Too many pinned packages&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;(고정된 패키지가 많음)&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;dbms_shared_pool.keep을 통해 크기가 큰 sql은 패키지를 해두어 빠르게 사용할 수 있도록 해둡니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 너무 많은 keep이 일어나게 되면 새 작업을 위한 shared pool 부족 현상으로 ORA-04031의 에러가 발생할 수 있습니다. keep 해둔 것에 대한 unkeep을 통해 조절해야 될 것입니다.&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;shared_pool_size , shared_pool_reserved_size에 RAM을 추가하거나&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;11g 이상에서는 memory_max_size를 늘려주는 방법이 있습니다.&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;memory_max_size를 늘리는 방법은 아래 URL에서 확인 가능합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;http://haisins.epac.to/wordpress/?p=354&quot;&gt;http://haisins.epac.to/wordpress/?p=354&lt;/a&gt;(출처:DB의 정석)&lt;/p&gt;</description>
      <category>DB/ORACLE</category>
      <category>ORA-04031</category>
      <category>ORA-04031: unable to allocate nn bytes of shared memory</category>
      <category>shared memory</category>
      <category>Shared Pool</category>
      <category>공유 메모리 할당</category>
      <category>오라클 에러</category>
      <author>코멧</author>
      <guid isPermaLink="true">https://gaebaldiary.tistory.com/43</guid>
      <comments>https://gaebaldiary.tistory.com/43#entry43comment</comments>
      <pubDate>Thu, 17 Jun 2021 14:45:12 +0900</pubDate>
    </item>
    <item>
      <title>카카오톡 생일 설정 변경(비공개)</title>
      <link>https://gaebaldiary.tistory.com/42</link>
      <description>&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;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;카카오톡 생일 설정 변경&lt;/b&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1. 카카오톡을 열어서 가장 위에 있는 본인을 클릭해줍니다.&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 아래와 같은 화면이 나옵니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;622&quot; data-origin-height=&quot;1287&quot; data-filename=&quot;홈화면.jpg&quot; width=&quot;210&quot; height=&quot;434&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/4YSoL/btq7myXhtQ5/Kr6shbc28akw32dKweghD1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/4YSoL/btq7myXhtQ5/Kr6shbc28akw32dKweghD1/img.jpg&quot; data-alt=&quot;카카오톡 홈 화면 예시&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/4YSoL/btq7myXhtQ5/Kr6shbc28akw32dKweghD1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4YSoL%2Fbtq7myXhtQ5%2FKr6shbc28akw32dKweghD1%2Fimg.jpg&quot; data-origin-width=&quot;622&quot; data-origin-height=&quot;1287&quot; data-filename=&quot;홈화면.jpg&quot; width=&quot;210&quot; height=&quot;434&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;카카오톡 홈 화면 예시&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2. 위 그림에서 보이는 화살표에 있는 톱니바퀴 모양을 클릭합니다.&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래와 같은 화면이 나옵니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;648&quot; data-origin-height=&quot;1440&quot; data-filename=&quot;프로필 관리.jpg&quot; width=&quot;300&quot; height=&quot;667&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bRwZ8P/btq7oIkupQh/X8OBBkscOac2lU0MXG259K/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bRwZ8P/btq7oIkupQh/X8OBBkscOac2lU0MXG259K/img.jpg&quot; data-alt=&quot;프로필 관리 예시&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bRwZ8P/btq7oIkupQh/X8OBBkscOac2lU0MXG259K/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbRwZ8P%2Fbtq7oIkupQh%2FX8OBBkscOac2lU0MXG259K%2Fimg.jpg&quot; data-origin-width=&quot;648&quot; data-origin-height=&quot;1440&quot; data-filename=&quot;프로필 관리.jpg&quot; width=&quot;300&quot; height=&quot;667&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;프로필 관리 예시&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p 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;나의 생일에 대한 정보를 변경하고 싶다면,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예시에서 보이는 &quot;계정관리&quot;로 클릭하면 아래와 같은 화면이 나옵니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;648&quot; data-origin-height=&quot;1440&quot; data-filename=&quot;프로필 관리 후 접속.jpg&quot; width=&quot;270&quot; height=&quot;600&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/4YJ5f/btq7jycADLZ/GfzcKce6o42haHPGyJ9011/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/4YJ5f/btq7jycADLZ/GfzcKce6o42haHPGyJ9011/img.jpg&quot; data-alt=&quot;프로필 관리 예시&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/4YJ5f/btq7jycADLZ/GfzcKce6o42haHPGyJ9011/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4YJ5f%2Fbtq7jycADLZ%2FGfzcKce6o42haHPGyJ9011%2Fimg.jpg&quot; data-origin-width=&quot;648&quot; data-origin-height=&quot;1440&quot; data-filename=&quot;프로필 관리 후 접속.jpg&quot; width=&quot;270&quot; height=&quot;600&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;프로필 관리 예시&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 예시에 표시된 내정보관리를 클릭합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;648&quot; data-origin-height=&quot;1440&quot; data-filename=&quot;내정보 관리에서 로그인.jpg&quot; width=&quot;300&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lJMOd/btq7iO0UfzD/wpbRwOCqankZlQxtK9pK00/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lJMOd/btq7iO0UfzD/wpbRwOCqankZlQxtK9pK00/img.jpg&quot; data-alt=&quot;로그인 화면&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lJMOd/btq7iO0UfzD/wpbRwOCqankZlQxtK9pK00/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlJMOd%2Fbtq7iO0UfzD%2FwpbRwOCqankZlQxtK9pK00%2Fimg.jpg&quot; data-origin-width=&quot;648&quot; data-origin-height=&quot;1440&quot; data-filename=&quot;내정보 관리에서 로그인.jpg&quot; width=&quot;300&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;로그인 화면&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&quot;내 정보관리&quot;를 들어가기 위해서는 로그인이 필요합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 화면에서 본인의 ID와 비밀번호를 입력하고 로그인을 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;726&quot; data-origin-height=&quot;1438&quot; data-filename=&quot;KakaoTalk_20210615_174036048.jpg&quot; width=&quot;300&quot; height=&quot;594&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cS0rFq/btq7oG74i8l/ETVx3rUeg24x7YzYH8ZXk0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cS0rFq/btq7oG74i8l/ETVx3rUeg24x7YzYH8ZXk0/img.jpg&quot; data-alt=&quot;내정보관리 화면&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cS0rFq/btq7oG74i8l/ETVx3rUeg24x7YzYH8ZXk0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcS0rFq%2Fbtq7oG74i8l%2FETVx3rUeg24x7YzYH8ZXk0%2Fimg.jpg&quot; data-origin-width=&quot;726&quot; data-origin-height=&quot;1438&quot; data-filename=&quot;KakaoTalk_20210615_174036048.jpg&quot; width=&quot;300&quot; height=&quot;594&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;내정보관리 화면&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p 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;여기서 &quot;생일&quot;을 클릭해주면 아래와 같은 화면이 나옵니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;648&quot; data-origin-height=&quot;1440&quot; data-filename=&quot;생일변경 화면.jpg&quot; width=&quot;300&quot; height=&quot;667&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/de6DFA/btq7kj0yjlJ/OtKqewNvHCrLcG1gKnZCbK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/de6DFA/btq7kj0yjlJ/OtKqewNvHCrLcG1gKnZCbK/img.jpg&quot; data-alt=&quot;생일 변경 창&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/de6DFA/btq7kj0yjlJ/OtKqewNvHCrLcG1gKnZCbK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fde6DFA%2Fbtq7kj0yjlJ%2FOtKqewNvHCrLcG1gKnZCbK%2Fimg.jpg&quot; data-origin-width=&quot;648&quot; data-origin-height=&quot;1440&quot; data-filename=&quot;생일변경 화면.jpg&quot; width=&quot;300&quot; height=&quot;667&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;생일 변경 창&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p 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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;도움이 되었다면 좋겠습니다.&lt;/p&gt;</description>
      <category>알아두면 좋은거</category>
      <category>카카오톡 내 정보 변경</category>
      <category>카카오톡 생일 공개</category>
      <category>카카오톡 생일 변경</category>
      <category>카카오톡 생일 비공개</category>
      <category>카카오톡 설정 변경</category>
      <author>코멧</author>
      <guid isPermaLink="true">https://gaebaldiary.tistory.com/42</guid>
      <comments>https://gaebaldiary.tistory.com/42#entry42comment</comments>
      <pubDate>Tue, 15 Jun 2021 18:18:07 +0900</pubDate>
    </item>
    <item>
      <title>리눅스 svn 계정 추가 및 변경</title>
      <link>https://gaebaldiary.tistory.com/41</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;형상관리 tool svn을 리눅스에서 설치 후 사용하면 계정 추가 및 변경을 해야될 필요성이 많이 생깁니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그에 따라 어디에 svn이 설치되어있고 그에 따라 어떤 것을 변경해야 계정 추가 및 변경을 할 수 있을지 잘 모를때가 많습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;svn 계정 추가 및 변경&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 리눅스에 root권한으로 접속을 하게되면 모든 폴더를 들어갈 수 있기에 root권한으로 접속 후 아래와 같은 폴더에 들어갑니다.&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;svn/repo/프로젝트명/conf&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;svn의 폴더를 구조를 어떻게 가졌는지에 따라서 다를 수 있기에 만약 폴더를 찾기 어렵다면&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: #000000;&quot;&gt;&lt;b&gt;find / -name svnserve.conf&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;위에 명령어를 사용하여 폴더를 찾아서 repo 폴더를 들어갑니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;664&quot; data-origin-height=&quot;75&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qXwqN/btq6MAbzKUZ/3kk7K84At4ifjXk1HZxto1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qXwqN/btq6MAbzKUZ/3kk7K84At4ifjXk1HZxto1/img.png&quot; data-alt=&quot;svn repo 폴더 파일들&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qXwqN/btq6MAbzKUZ/3kk7K84At4ifjXk1HZxto1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqXwqN%2Fbtq6MAbzKUZ%2F3kk7K84At4ifjXk1HZxto1%2Fimg.png&quot; data-origin-width=&quot;664&quot; data-origin-height=&quot;75&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;svn repo 폴더 파일들&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3가지의 실행 파일로 svn 계정 추가 및 변경이 가능합니다.&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;!-- URL 근처 --&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1. authz&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 파일은 svn 계정에 다른 권한을 설정해주는 파일 입니다.&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;vi authz&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 명령어를 통해 편집기능을 활성화 시킵니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;324&quot; data-origin-height=&quot;143&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ehrXph/btq6RMH0HI7/nJNFN8FGnTBmOKNXjtejrk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ehrXph/btq6RMH0HI7/nJNFN8FGnTBmOKNXjtejrk/img.png&quot; data-alt=&quot;권한 설정&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ehrXph/btq6RMH0HI7/nJNFN8FGnTBmOKNXjtejrk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FehrXph%2Fbtq6RMH0HI7%2FnJNFN8FGnTBmOKNXjtejrk%2Fimg.png&quot; data-origin-width=&quot;324&quot; data-origin-height=&quot;143&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;권한 설정&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p 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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;유저명 = 유저명과 권한을 사용합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;r = read&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;w = write&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;b&gt;2. passwd&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;유저아이디와 password를 생성 및 변경을 해주는 파일입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;vi passwd&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 명령어를 통해 편집기능을 활성화 시킵니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;200&quot; data-origin-height=&quot;107&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/uelee/btq6Qyw3BRZ/c2BJjhkVYyiTl1xKtYfeL0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/uelee/btq6Qyw3BRZ/c2BJjhkVYyiTl1xKtYfeL0/img.png&quot; data-alt=&quot;user 추가&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/uelee/btq6Qyw3BRZ/c2BJjhkVYyiTl1xKtYfeL0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fuelee%2Fbtq6Qyw3BRZ%2Fc2BJjhkVYyiTl1xKtYfeL0%2Fimg.png&quot; data-origin-width=&quot;200&quot; data-origin-height=&quot;107&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;user 추가&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아이디 = password 로 구성하여 설정해주면 svn 유저 추가 및 변경이 가능합니다.&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;b&gt;3. svnserve.conf&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;authz파일은 개개인의 계정에 대한 권한을 설정하였다면&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;비인증/인증 계정 권한 및 저장소 설명 등 svn에 대한 전반적인 info 및 권한을 보여줍니다.&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;anon-access = 비인증계정&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;auth-access = 인증계정&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;password-db = 인증계정정보&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;authz-db = 인증 계정의 저장소 권한 설정 파일&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;realm = 인증할 때 보여주는 간단한 저장소 설명&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-origin-width=&quot;193&quot; data-origin-height=&quot;109&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dg4uNb/btq6QxEVZBI/5Ayq43tbyKF4O2kkEXJOk0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dg4uNb/btq6QxEVZBI/5Ayq43tbyKF4O2kkEXJOk0/img.png&quot; data-alt=&quot;svnserve.conf 예시&amp;amp;amp;nbsp;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dg4uNb/btq6QxEVZBI/5Ayq43tbyKF4O2kkEXJOk0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdg4uNb%2Fbtq6QxEVZBI%2F5Ayq43tbyKF4O2kkEXJOk0%2Fimg.png&quot; data-origin-width=&quot;193&quot; data-origin-height=&quot;109&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;svnserve.conf 예시&amp;nbsp;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위에 예시로 설명을 하자면&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;비인증계정은 비인가 처리&lt;/li&gt;
&lt;li&gt;인증계정은 write 권한&lt;/li&gt;
&lt;li&gt;인증계정정보 파일은 passwd라는 파일 참조&lt;/li&gt;
&lt;li&gt;저장소 권한 설정파일은 authz 파일 참조&lt;/li&gt;
&lt;li&gt;저장소 설명은 Repository1이라는 설명&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;앞서 설정된 passwd 파일과 authz 파일명 변경 후 svnserve.conf 파일에서 password-db, authz-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;&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>형상관리/SVN</category>
      <category>svn 계정 비밀번호 변경</category>
      <category>svn 계정 추가</category>
      <category>svn 계정 추가 및 변경</category>
      <category>리눅스</category>
      <author>코멧</author>
      <guid isPermaLink="true">https://gaebaldiary.tistory.com/41</guid>
      <comments>https://gaebaldiary.tistory.com/41#entry41comment</comments>
      <pubDate>Wed, 9 Jun 2021 11:00:26 +0900</pubDate>
    </item>
    <item>
      <title>실시간 서버 상태 Check(Top 명령어)</title>
      <link>https://gaebaldiary.tistory.com/40</link>
      <description>&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;top 명령어&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그걸 위해 리눅스에서는 Top 명령어를 지원해줍니다.&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;리눅스 서버를 접근 후 top명령어를 실행하면 아래와 같은 화면이 나옵니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;892&quot; data-origin-height=&quot;213&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bja43n/btq6BD6MfEB/DEkeeBH16CHSDTTwQxlB10/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bja43n/btq6BD6MfEB/DEkeeBH16CHSDTTwQxlB10/img.png&quot; data-alt=&quot;top 명령어 실행 화면&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bja43n/btq6BD6MfEB/DEkeeBH16CHSDTTwQxlB10/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbja43n%2Fbtq6BD6MfEB%2FDEkeeBH16CHSDTTwQxlB10%2Fimg.png&quot; data-origin-width=&quot;892&quot; data-origin-height=&quot;213&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;top 명령어 실행 화면&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;위에 실행화면으로 line 별로 대략적으로 설명을 하자면 아래와 같습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;1 Line - 서버시간 10:17:44 , 1 user 사용자 접속,&amp;nbsp; load average 서버 부하율&lt;/li&gt;
&lt;li&gt;2 Line - 전체 프로세스 tasks 247 total , 실행 중인 프로세스 1 running, 대기 중인 프로세스 246 sleeping, 멈춘 프로세스 0 stopped , 좀비 상태 프로세스 0 zombie&amp;nbsp;&lt;/li&gt;
&lt;li&gt;3 Line - 유저 cpu 비중 0.6 us, 시스템 cpu 비중 0.1 sy, 나이스 한 cpu 비중 0.0, 99.1&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;해당 실행화면은 오라클 DB서버에 접속한 것 입니다.&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 54.651%; height: 402px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 15px;&quot;&gt;
&lt;td style=&quot;width: 49.9419%; height: 15px;&quot;&gt;PID&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 49.9419%; height: 15px;&quot;&gt;프로세스 ID&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 49.9419%; height: 20px;&quot;&gt;USER&lt;/td&gt;
&lt;td style=&quot;width: 49.9419%; height: 20px;&quot;&gt;프로세스 실행시킨 사용자&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 49.9419%; height: 20px;&quot;&gt;PRI&lt;/td&gt;
&lt;td style=&quot;width: 49.9419%; height: 20px;&quot;&gt;우선순위&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 49.9419%; height: 20px;&quot;&gt;NI&lt;/td&gt;
&lt;td style=&quot;width: 49.9419%; height: 20px;&quot;&gt;NICE 값&lt;br /&gt;마이너스를 가지는 Nice value 우선순위 높음&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 49.9419%; height: 20px;&quot;&gt;VIRT&lt;/td&gt;
&lt;td style=&quot;width: 49.9419%; height: 20px;&quot;&gt;가상 메모리 사용량&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 49.9419%; height: 20px;&quot;&gt;RES&lt;/td&gt;
&lt;td style=&quot;width: 49.9419%; height: 20px;&quot;&gt;현재 페이지 크기&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 49.9419%; height: 20px;&quot;&gt;SHR&lt;/td&gt;
&lt;td style=&quot;width: 49.9419%; height: 20px;&quot;&gt;분할된 페이지, 사용된 메모리를 나눈 총합&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 49.9419%; height: 20px;&quot;&gt;S&lt;/td&gt;
&lt;td style=&quot;width: 49.9419%; height: 20px;&quot;&gt;프로세스 상태&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 49.9419%; height: 20px;&quot;&gt;%CPU&lt;/td&gt;
&lt;td style=&quot;width: 49.9419%; height: 20px;&quot;&gt;프로세스가 사용하는 CPU 사용율&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 49.9419%; height: 20px;&quot;&gt;%MEM&lt;/td&gt;
&lt;td style=&quot;width: 49.9419%; height: 20px;&quot;&gt;프로세스가 사용하는 메모리 사용율&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 49.9419%;&quot;&gt;COMMAND&lt;/td&gt;
&lt;td style=&quot;width: 49.9419%;&quot;&gt;실행된 명령어&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이러한 top 명령어를 통해 실행되는 프로세스의 cpu 사용량을 체크하여 해당 프로세스를 kill 해주어 서버 지연 상태를 해결합니다.&lt;/p&gt;</description>
      <category>네트워크/리눅스(Linux)</category>
      <category>top명령어</category>
      <category>리눅스</category>
      <category>실시간 서버</category>
      <category>실시간 서버 상태</category>
      <author>코멧</author>
      <guid isPermaLink="true">https://gaebaldiary.tistory.com/40</guid>
      <comments>https://gaebaldiary.tistory.com/40#entry40comment</comments>
      <pubDate>Tue, 8 Jun 2021 13:34:06 +0900</pubDate>
    </item>
    <item>
      <title>[ORACLE] Instance &amp;amp; Service 용어 개념정리</title>
      <link>https://gaebaldiary.tistory.com/39</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;939&quot; data-origin-height=&quot;331&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rzEfv/btq6qSB5yYD/lOvvlrqjPv2ZqtCXexSGM0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rzEfv/btq6qSB5yYD/lOvvlrqjPv2ZqtCXexSGM0/img.png&quot; data-alt=&quot;ORACLE&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rzEfv/btq6qSB5yYD/lOvvlrqjPv2ZqtCXexSGM0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrzEfv%2Fbtq6qSB5yYD%2FlOvvlrqjPv2ZqtCXexSGM0%2Fimg.png&quot; data-origin-width=&quot;939&quot; data-origin-height=&quot;331&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;ORACLE&lt;/figcaption&gt;
&lt;/figure&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;Service는 왜 올리는 것이며, Instance는 왜 올리는 것인지에 대해서 정확한 개념을 알 수가 없었습니다.&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;일반적으로 로컬에서 사용하는 테스트 환경에서는 한 Instance에 한 Service가 올라가는것이라 잘 이해가 되지 않았습니다. 하지만 클라우드 환경이나 서비스 업체에서는 다양한 Sid를 사용하여 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;Instance는 Oracle에서는 sid라고 명명합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를들어 sid1, sid2라고 명명된 2가지 sid가 있다고 한다면 하나의 Service에서 2개의 Instance를 운영하고 있다고 생각하시면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비교할 수 있는 예시로는, Web서버에서 우리는 여러 대의 Was를 운영하는 것처럼 이해하시면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Web서버가 내려가면 Was가 기동이 안될 것 입니다. 하지만 #1 Was가 Stop 된다 하더라도 #2 Was에서 영향이 가지는 않을 것입니다.&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;Service = Web Server&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Instance = Was&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;&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;&amp;nbsp;&lt;/p&gt;</description>
      <category>DB/ORACLE</category>
      <category>instance</category>
      <category>oracle</category>
      <category>Service</category>
      <category>오라클 INSTANCE</category>
      <category>오라클 SERVICE</category>
      <author>코멧</author>
      <guid isPermaLink="true">https://gaebaldiary.tistory.com/39</guid>
      <comments>https://gaebaldiary.tistory.com/39#entry39comment</comments>
      <pubDate>Thu, 3 Jun 2021 10:18:12 +0900</pubDate>
    </item>
    <item>
      <title>도커(Docker) 란?</title>
      <link>https://gaebaldiary.tistory.com/38</link>
      <description>&lt;p&gt;최근에 클라우드가 성행하게 되면서 클라우드 가상화 기술 중 하나인 도커(Docker)를 많은 기업에서 사용하고 있습니다.&lt;/p&gt;
&lt;p&gt;이러한 도커(Docker)라는 개념을 정확히 알고 나면 머릿속에 많은 개념들이 잡혔습니다. 저 또한 처음에 도커(Docker)라는 의미가 머릿속에 들어오지 않기 때문에 도커를 진짜 모른다는 사람에게 설명한다는 식으로 이 포스팅으로 최대한 쉽게 풀어내려고 합니다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;도커란 무엇인가?&lt;/b&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;b&gt;도커(Docker)의 개념&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;이미지(Image) 란?&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;컨테이너(Container) 란?&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;2013년 도커는 처음 등장한 &lt;b&gt;컨테이너(Container)&lt;/b&gt;&amp;nbsp;기반 가상화 도구입니다. 도커는 Google Go Language로 개발되고 있으며 현재까지 지속적으로 업데이트를 지속하며 컨테이너 가상화 도구 중 핵심으로 잡아가고 있습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;도커는 리눅스 OS 기반이며 컨테이너 방식으로 관리를 통해 프로세스 실행 환경을 구축할 수 있게 해 줍니다.&lt;/p&gt;
&lt;p&gt;프로세스 실행 환경을 도커에서는 &lt;b&gt;이미지(Image)라고&lt;/b&gt; 부릅니다.&lt;/p&gt;
&lt;p&gt;컨테이너의 이미지를 관리 및 실행을 통해 어느 환경에서도 컨테이너를 실행하여 쉽게 서버 실행 환경을 구축할 수 있도록 도와줍니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;위에 설명한 글은 제가 알고 있는 지식을 풀어냈으나 정확하게 이해가 안 가실 수 있습니다.&lt;/p&gt;
&lt;p&gt;각각의 의미를 추적하여 정확하게 이해가 갈 수 있도록 설명하겠습니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;이미지(IMAGE) 란?&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;도커에서 프로세스가 사용하는 자원들(서버 프로그램, 소스 등)을 도커 이미지(Image)라 부릅니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;컨테이너(Container) 생성하기 위하여 필요한 모든 파일과 설정값을 가지고 있는 것이라 생각하면 됩니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;이미지의 특징&lt;/b&gt;&lt;/h4&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;DockerHub를 통해 형상 관리 가능&lt;/li&gt;
&lt;li&gt;API를 통한 자동화 기능 가능&lt;/li&gt;
&lt;li&gt;이미지 생성과정을 확인 및 수정 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;컨테이너(Container) 란?&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;400&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kSBEG/btq26EUW29A/hJ2MVdwzLEBPkGwWwsAenk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kSBEG/btq26EUW29A/hJ2MVdwzLEBPkGwWwsAenk/img.png&quot; data-alt=&quot;도커 컨테이너&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kSBEG/btq26EUW29A/hJ2MVdwzLEBPkGwWwsAenk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkSBEG%2Fbtq26EUW29A%2FhJ2MVdwzLEBPkGwWwsAenk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;400&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;도커 컨테이너&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;컨테이너는 네이버 백과사전에서는 아래와 같이 정의합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;span style=&quot;color: #000000;&quot; data-hook=&quot;tip&quot; data-type=&quot;arken&quot; data-lang=&quot;ko&quot;&gt;화물&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot; data-hook=&quot;tip&quot; data-type=&quot;arken&quot; data-lang=&quot;ko&quot;&gt;수송에&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot; data-hook=&quot;tip&quot; data-type=&quot;arken&quot; data-lang=&quot;ko&quot;&gt;주로&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot; data-hook=&quot;tip&quot; data-type=&quot;arken&quot; data-lang=&quot;ko&quot;&gt;쓰는&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot; data-hook=&quot;tip&quot; data-type=&quot;arken&quot; data-lang=&quot;ko&quot;&gt;쇠로&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot; data-hook=&quot;tip&quot; data-type=&quot;arken&quot; data-lang=&quot;ko&quot;&gt;만들어진&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot; data-hook=&quot;tip&quot; data-type=&quot;arken&quot; data-lang=&quot;ko&quot;&gt;큰&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot; data-hook=&quot;tip&quot; data-type=&quot;arken&quot; data-lang=&quot;ko&quot;&gt;상자&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot; data-hook=&quot;tip&quot; data-type=&quot;arken&quot; data-lang=&quot;ko&quot;&gt;짐&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot; data-hook=&quot;tip&quot; data-type=&quot;arken&quot; data-lang=&quot;ko&quot;&gt;꾸리기가&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot; data-hook=&quot;tip&quot; data-type=&quot;arken&quot; data-lang=&quot;ko&quot;&gt;편하고&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot; data-hook=&quot;tip&quot; data-type=&quot;arken&quot; data-lang=&quot;ko&quot;&gt;운반이&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot; data-hook=&quot;tip&quot; data-type=&quot;arken&quot; data-lang=&quot;ko&quot;&gt;쉬우며&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot; data-hook=&quot;tip&quot; data-type=&quot;arken&quot; data-lang=&quot;ko&quot;&gt;안에&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot; data-hook=&quot;tip&quot; data-type=&quot;arken&quot; data-lang=&quot;ko&quot;&gt;들어&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot; data-hook=&quot;tip&quot; data-type=&quot;arken&quot; data-lang=&quot;ko&quot;&gt;있는&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot; data-hook=&quot;tip&quot; data-type=&quot;arken&quot; data-lang=&quot;ko&quot;&gt;화물을&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot; data-hook=&quot;tip&quot; data-type=&quot;arken&quot; data-lang=&quot;ko&quot;&gt;보호할&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot; data-hook=&quot;tip&quot; data-type=&quot;arken&quot; data-lang=&quot;ko&quot;&gt;수&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot; data-hook=&quot;tip&quot; data-type=&quot;arken&quot; data-lang=&quot;ko&quot;&gt;있는&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot; data-hook=&quot;tip&quot; data-type=&quot;arken&quot; data-lang=&quot;ko&quot;&gt;장점이&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot; data-hook=&quot;tip&quot; data-type=&quot;arken&quot; data-lang=&quot;ko&quot;&gt;있다&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;우리 사전의 의미만 알고 있기 때문에 그림과 같은 컨테이너를 상상하실 겁니다. 우리가 컨테이너 없던 시절은 배에다가 짐을 싣을때 많은 짐을 쌓을 수가 없었습니다. 하지만 이제 종류/구분 별로 컨테이너에 짐을 실어 컨테이너만 싣어 운반하고 있어 관리 및 효율적인 측면에서 배송이 쉬워졌습니다.&lt;/p&gt;
&lt;p&gt;마찬가지로 도커는 가상화 기술 중 하나로 도커의 컨테이너는 프로세스가 사용하는 자원들을 격리하는 환경을 컨테이너로써 만드는 것입니다. 그래서 그 컨테이너를 명령어를 통해 그 자원들을 그대로 사용할 수 있게 만들어 주는 역할을 합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;컨테이너 특징&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-ke-size=&quot;size23&quot;&gt;이식성이 좋다&lt;/li&gt;
&lt;li data-ke-size=&quot;size23&quot;&gt;컨테이너의 격리공간이 있어 버전 간 관리에 있어 충돌이 없다.&lt;/li&gt;
&lt;li data-ke-size=&quot;size23&quot;&gt;빠른 배포와 서비스가 가능하여 애플리케이션 라이프사이클의 자동화가 가능하다&lt;/li&gt;
&lt;li data-ke-size=&quot;size23&quot;&gt;개발 환경을 실제 운영환경과 동일하게 사용이 가능하게 격리공간으로 활용해서 개발/운영 프로세스가 단순해진다.&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>네트워크</category>
      <category>Container</category>
      <category>docker</category>
      <category>도커</category>
      <category>도커란</category>
      <category>컨테이너</category>
      <author>코멧</author>
      <guid isPermaLink="true">https://gaebaldiary.tistory.com/38</guid>
      <comments>https://gaebaldiary.tistory.com/38#entry38comment</comments>
      <pubDate>Sun, 25 Apr 2021 17:07:32 +0900</pubDate>
    </item>
    <item>
      <title>다음 부동산 매물 매매 이용방법</title>
      <link>https://gaebaldiary.tistory.com/37</link>
      <description>&lt;p&gt;최근에 집을 알아보기 위해 여러 웹사이트와 앱을 찾아보았습니다.&lt;/p&gt;
&lt;p&gt;우리가 흔히 알고 있는 웹 사이트 부동산으로는 네이버, 다음이 있습니다. 그 외에 직방, 다방 등 다양한 앱 사이트가 있습니다.&lt;/p&gt;
&lt;p&gt;이 중에서 제가 여러군데를 방문하고 유투버 등 Search를 통해 찾아본 결과, 다음 부동산이 심사가 까다로워 허위매물이 없고 괜찮다는 것을 알았습니다.&lt;/p&gt;
&lt;p&gt;그래서 다음 부동산을 매물 이용방법에 포스팅하려고 합니다.&lt;/p&gt;
&lt;script async src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;!-- URL 근처 --&gt;
&lt;ins class=&quot;adsbygoogle&quot;
     style=&quot;display:block&quot;
     data-ad-client=&quot;ca-pub-8720911335503994&quot;
     data-ad-slot=&quot;7207081532&quot;
     data-ad-format=&quot;auto&quot;
     data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;다음 부동산 매물 이용방법&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;400&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bOBN1j/btq2OpwWTcZ/KMrUT2M9ftknNZSh0Td621/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bOBN1j/btq2OpwWTcZ/KMrUT2M9ftknNZSh0Td621/img.png&quot; data-alt=&quot;다음 부동산&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bOBN1j/btq2OpwWTcZ/KMrUT2M9ftknNZSh0Td621/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbOBN1j%2Fbtq2OpwWTcZ%2FKMrUT2M9ftknNZSh0Td621%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;400&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;다음 부동산&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;위와 같이 다음 부동산으로 접근을 하시면 간단하게 접근이 가능합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;500&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bjD3Mw/btq2NyBaYpa/EPtMdG9xWFMQjKexFiVxA0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bjD3Mw/btq2NyBaYpa/EPtMdG9xWFMQjKexFiVxA0/img.png&quot; data-alt=&quot;다음 부동산 메뉴&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bjD3Mw/btq2NyBaYpa/EPtMdG9xWFMQjKexFiVxA0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbjD3Mw%2Fbtq2NyBaYpa%2FEPtMdG9xWFMQjKexFiVxA0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;500&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;다음 부동산 메뉴&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;들어가시며 다양한 카테고리 별로 검색이 가능하게 되어있습니다.&lt;/p&gt;
&lt;p&gt;원하시는 항목에 들어가셔서 검색이 가능합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;많이 사용하시는 &quot;주거&quot; 메뉴를 통해 &quot;아파트&quot; 메뉴에서 파주 지역을 검색하시게 되면&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;400&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bpcZaw/btq2MuGdJjs/cweb7S8cX0xwuhBRPngqs1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bpcZaw/btq2MuGdJjs/cweb7S8cX0xwuhBRPngqs1/img.png&quot; data-alt=&quot;파주 부동산&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bpcZaw/btq2MuGdJjs/cweb7S8cX0xwuhBRPngqs1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbpcZaw%2Fbtq2MuGdJjs%2Fcweb7S8cX0xwuhBRPngqs1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;400&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;파주 부동산&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;각 평수대의 가격과 시세 변동 등의 정보를 알수가 있습니다.&lt;/p&gt;
&lt;p&gt;또한 그 지역의 학교정보, 교통정보 등 아파트의 시세뿐만 아니라 주변 정보도 알 수가 있어 괜찮다고 생각합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; width=&quot;300&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b8W8KO/btq2SMx9Nwb/z8uDDAkew0vOxscDiUKwzk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b8W8KO/btq2SMx9Nwb/z8uDDAkew0vOxscDiUKwzk/img.png&quot; data-alt=&quot;빌라,투룸 필터 검색조건 예시&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b8W8KO/btq2SMx9Nwb/z8uDDAkew0vOxscDiUKwzk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb8W8KO%2Fbtq2SMx9Nwb%2Fz8uDDAkew0vOxscDiUKwzk%2Fimg.png&quot; width=&quot;300&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;빌라,투룸 필터 검색조건 예시&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;이 외에도 주거에서도 단위별로 나뉘어져있는 아파트, 빌라, 원룸 등 카테고리 별로 검색조건도 다르게 잘 구성되어 있어&lt;/p&gt;
&lt;p&gt;찾는 고객에 맞게 잘 구성되어 있다고 생각하며 저는 찾기가 쉬웠습니다.&lt;/p&gt;
&lt;script async src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;!-- URL 근처 --&gt;
&lt;ins class=&quot;adsbygoogle&quot;
     style=&quot;display:block&quot;
     data-ad-client=&quot;ca-pub-8720911335503994&quot;
     data-ad-slot=&quot;7207081532&quot;
     data-ad-format=&quot;auto&quot;
     data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;경매를 하시는 분들에게는 가격 비교 및 검색 등의 서비스를 제공하고 있습니다.&lt;/p&gt;
&lt;p&gt;인테리어의 항목에서는 즉각 상담 등 다른 곳에서 찾고 고생할 필요 없이 다음 부동산 하나의 플랫폼에서 사용이 가능하여 편리하다고 느껴졌습니다. 아파트에 들어가서 인테리어를 새롭게 하실 분들에게는 유용해 보입니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;저는 집을 구하기 위해 다음 부동산에 찾아보고 직접 방문했을 때와 큰 차이가 없어 나름 만족하며 신뢰하고 있습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;혹시나 집을 구하기위해 찾아보시는 분들에게는 다음 부동산에서 매물을 검색하여 직접 방문해보시길 추천드립니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>알아두면 좋은거</category>
      <category>다음 부동산</category>
      <category>다음부동산 매물</category>
      <category>매물</category>
      <category>부동산</category>
      <author>코멧</author>
      <guid isPermaLink="true">https://gaebaldiary.tistory.com/37</guid>
      <comments>https://gaebaldiary.tistory.com/37#entry37comment</comments>
      <pubDate>Sun, 18 Apr 2021 15:29:11 +0900</pubDate>
    </item>
    <item>
      <title>자바(java) 특정 폴더에 있는 파일 읽기</title>
      <link>https://gaebaldiary.tistory.com/15</link>
      <description>&lt;p&gt;개발자로서 많이 마주치는 상황 중 하나는 자바 특정폴더 파일을 읽어와서 다운로드 기능을 많이 마주칩니다.&lt;/p&gt;
&lt;p&gt;저 또한 이러한 요청사항을 받아서 하다가 정리하면 좋을 것 같아서 해당 기능을 설명하려고 이 글을 쓰려고 합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;파일 경로에 있는 폴더에 있는 전체 파일을 갖고 와서 단순하게 파일 이름을 출력하는 알고리즘입니다.&lt;/p&gt;
&lt;script async src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;!-- URL 근처 --&gt;
&lt;ins class=&quot;adsbygoogle&quot;
     style=&quot;display:block&quot;
     data-ad-client=&quot;ca-pub-8720911335503994&quot;
     data-ad-slot=&quot;7207081532&quot;
     data-ad-format=&quot;auto&quot;
     data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;******************************************************************&lt;span style=&quot;color: #333333;&quot;&gt;************************************************************&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;String fileName = &quot;&quot;;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;/*파일 경로에 있는 파일 가져오기*/&lt;/p&gt;
&lt;p&gt;File rw = new File(filePath);&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;/*파일 경로에 있는 파일 리스트 fileList[] 에 넣기*/&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;File []fileList = rw.listfiles();&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;/*fileList에 있는거 for 문 돌려서 출력*/&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;for(File file : fileList) {&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; if(file.isFile()) {&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fileName = file.getName();&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println(&quot;fileName : &quot; + fileName);&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;******************************************************************&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;************************************************************&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이러한 구조로 파일 목록을 가져와서 API로 특정폴더에 쌓여있는 파일을 가져오거나 하는 작업들을 합니다.&lt;/p&gt;</description>
      <category>java/자바코딩</category>
      <category>자바</category>
      <category>특정폴더</category>
      <category>파일</category>
      <category>파일목록</category>
      <category>파일읽기</category>
      <category>폴더</category>
      <author>코멧</author>
      <guid isPermaLink="true">https://gaebaldiary.tistory.com/15</guid>
      <comments>https://gaebaldiary.tistory.com/15#entry15comment</comments>
      <pubDate>Sun, 18 Apr 2021 13:54:41 +0900</pubDate>
    </item>
    <item>
      <title>[SPRING] 의존성 주입 DI(Dependency Injection) 란?</title>
      <link>https://gaebaldiary.tistory.com/36</link>
      <description>&lt;p data-ke-size=&quot;size18&quot;&gt;SPRING을 공부하면서 많이 듣던 개념 중 하나는 의존성 주입입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;개발자들은 정말 많이 들었지만 이 개념에 대해서 정확하게 알지 못하고 연차가 쌓이는 경우가 대부분입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;연차가 쌓일수록 코딩은 기초가 가장 중요하다고 생각합니다. 그래서 저 또한 의존성 주입에 대해 정확하게 알고 가기 위해서 이렇게 포스팅으로 정리하고자 합니다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;의존성 주입 DI(Dependency Injection) 개념&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DI는 디자인 패턴 중 하나입니다. 객체 간의 의존성을 단순하게 외부에서 주입해서 사용한다는 의미이다.&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;A 로봇은 3m짜리 팔이 필요하고, B 로봇은 6m짜리 팔이 필요하다고 생각했을 때&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우리는 팔을 만드는 공장에 &quot;3m의 팔이 필요해&quot;라고만 전달해주면 3m짜리 팔을 만들 수 있습니다.&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;하지만 전체 로봇 공정 자체가 5m짜리의 팔의 로봇만 만들어진다고 생각했을 때는 3m짜리 팔을 만들 때는 그 전체 로봇 팔을 만드는 공장 프로세스 자체를 바꿔버려야 합니다. 그러므로 각기 다른 팔 길이의 로봇을 생산할 수가 없습니다.&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;의존성 주입이란 로봇을 만드는 공장에 팔을 만드는 공정만 의존성 주입을 하여 각기 다른 팔 길이 (3m, 5m 등)을 생성하여 다양한 로봇의 팔을 만들 수 있게끔 해줍니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;의존성 주입 DI(Dependency Injection) 주입 방법&lt;span&gt;&lt;/span&gt;&lt;/b&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;Setter 주입&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;script async src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8720911335503994&quot;
     crossorigin=&quot;anonymous&quot;&gt;&lt;/script&gt;
&lt;!-- URL 근처 --&gt;
&lt;ins class=&quot;adsbygoogle&quot;
     style=&quot;display:block&quot;
     data-ad-client=&quot;ca-pub-8720911335503994&quot;
     data-ad-slot=&quot;7207081532&quot;
     data-ad-format=&quot;auto&quot;
     data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1. 생성자 주입&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;720&quot; data-origin-height=&quot;219&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c2HuTs/btq2LmAtiFb/U7CEaSdDBKUQTSegygwg01/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c2HuTs/btq2LmAtiFb/U7CEaSdDBKUQTSegygwg01/img.png&quot; data-alt=&quot;생성자를 통한 의존관계 주입 예제&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c2HuTs/btq2LmAtiFb/U7CEaSdDBKUQTSegygwg01/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc2HuTs%2Fbtq2LmAtiFb%2FU7CEaSdDBKUQTSegygwg01%2Fimg.png&quot; data-origin-width=&quot;720&quot; data-origin-height=&quot;219&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;생성자를 통한 의존관계 주입 예제&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예제와 같이 생성자는 생성자를 처음 생성할 때 1회 주입만 가능합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;객체의 주입을 해야지만 사용되는 프로그램이라면 강제로 주입을 할 경우에 사용됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 기본적으로 Spring은 Autowired가 없어도 주입이 가능하도록 편의를 제공하고 있습니다.&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;b&gt;2. 필드 주입&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;262&quot; data-origin-height=&quot;69&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pCXM5/btq2MpjaUs1/fBdU0KXv03rcsxy8fJAJcK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pCXM5/btq2MpjaUs1/fBdU0KXv03rcsxy8fJAJcK/img.png&quot; data-alt=&quot;필드 주입 예제&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pCXM5/btq2MpjaUs1/fBdU0KXv03rcsxy8fJAJcK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpCXM5%2Fbtq2MpjaUs1%2FfBdU0KXv03rcsxy8fJAJcK%2Fimg.png&quot; data-origin-width=&quot;262&quot; data-origin-height=&quot;69&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;필드 주입 예제&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;필드 주입을 통해 단순하게 코드를 짜면 간결하게 짤 수가 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 외부에서 변경을 하고 싶어도 불가능하기 때문에 테스트 코드를 할 때 불편함이 있고, 또한 무조건 DI 프레임워크가 존재해야 되므로 점차 사장되는 중입니다.&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3. Setter 주입&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;423&quot; data-origin-height=&quot;155&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ceRbKf/btq2HHFJizX/hA4j31xIXIvEIV18Rs07c1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ceRbKf/btq2HHFJizX/hA4j31xIXIvEIV18Rs07c1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ceRbKf/btq2HHFJizX/hA4j31xIXIvEIV18Rs07c1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FceRbKf%2Fbtq2HHFJizX%2FhA4j31xIXIvEIV18Rs07c1%2Fimg.png&quot; data-origin-width=&quot;423&quot; data-origin-height=&quot;155&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Setter를 통한 주입은 주입받은 객체가 변경이 필요할 때 사용이 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;맺은 말&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;의존성 주입 DI(Dependency Injection)을 통해 우리는 코드를 간결하게 하여 직관성과 편리성을 얻을 수 있습니다. 또한 간단히 DI를 통해 테스트 코드 작성도 쉽게 할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;우리가 많이 쓰는 spring에서 잘 지원하고 있기 때문에 생성자 주입을 적시적소에 사용한다면 좋은 코딩 편리한 코딩을 하시는데 도움이 되실 겁니다.&lt;/p&gt;</description>
      <category>java/기본용어</category>
      <category>dependency injection</category>
      <category>di</category>
      <category>디자인패턴</category>
      <category>의존성주입</category>
      <category>의존성주입이란</category>
      <author>코멧</author>
      <guid isPermaLink="true">https://gaebaldiary.tistory.com/36</guid>
      <comments>https://gaebaldiary.tistory.com/36#entry36comment</comments>
      <pubDate>Fri, 16 Apr 2021 17:01:10 +0900</pubDate>
    </item>
    <item>
      <title>자바(JAVA)란 무엇이며 특징은 무엇인가?</title>
      <link>https://gaebaldiary.tistory.com/35</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;자바(JAVA)란 무엇인가?&lt;/b&gt;&lt;/h2&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;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;945&quot; data-origin-height=&quot;148&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/k1YRb/btq2yt1XyH9/c6BlYq6CtOq820xo9NywTK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/k1YRb/btq2yt1XyH9/c6BlYq6CtOq820xo9NywTK/img.png&quot; data-alt=&quot;자바 순위&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/k1YRb/btq2yt1XyH9/c6BlYq6CtOq820xo9NywTK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fk1YRb%2Fbtq2yt1XyH9%2Fc6BlYq6CtOq820xo9NywTK%2Fimg.png&quot; data-origin-width=&quot;945&quot; data-origin-height=&quot;148&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;자바 순위&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;자바 공식사이트에서는 아래 사진과 같이 자바 기술과 필요한 이유에 대해서 정리합니다.&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;597&quot; data-origin-height=&quot;122&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BF7K6/btq2AE20dG6/qfExHaxAZynW4vOUnaIYqk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BF7K6/btq2AE20dG6/qfExHaxAZynW4vOUnaIYqk/img.png&quot; data-alt=&quot;JAVA 기술&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BF7K6/btq2AE20dG6/qfExHaxAZynW4vOUnaIYqk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBF7K6%2Fbtq2AE20dG6%2FqfExHaxAZynW4vOUnaIYqk%2Fimg.png&quot; data-origin-width=&quot;597&quot; data-origin-height=&quot;122&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;JAVA 기술&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;자바의 특징은 무엇인가?&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1. 객체지향언어&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자바는 객체지향 언어로 하나하나의 재료들을 가지고 객체를 만들고 그 객체들을 모으고 연결하여 객체지향 프로그래밍(OOP) 개념으로 프로그램을 완성할 수 있게 합니다.&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;!-- URL 근처 --&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8720911335503994&quot; data-ad-slot=&quot;7207081532&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&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;b&gt;2. 이식성&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어떠한 환경에서도 이식성이 뛰어나 프로그램 실행이 가능합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어 자바 프로그램을 Window OS에서 실행하던 프로그램을 리눅스에서 실행해도 정상적으로 작동합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉 자바 실행환경(JRE)만 설치가 되어 있으면 어떠한 운영체제에서도 실행 가능합니다.&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;b&gt;3. 메모리 자동관리(Garbage Collector)&lt;/b&gt;&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;그렇다면 자바는 어떻게 메모리를 관리할 것 인지에 대해 의문이 생기실겁니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그렇게 나타난 것이 Garbage Collector 줄여서 GC라고 부릅니다. GC를 실행하여 메모리 사용을 마친 것들을 찾아 자바에서 메모리를 해제를 시켜줍니다.&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;4. 함수적 스타일 코딩 지원&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;JAVA 8 &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;b&gt;&lt;/b&gt;&lt;b&gt;람다식 장점&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;코드를 간결하게 작성&lt;/li&gt;
&lt;li&gt;개발자의 의도가 명확해져 가독성이 향상&lt;/li&gt;
&lt;li&gt;함수를 따로 구현 없이 처리 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;5. 멀티스레드 빠르게 구현&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하나의 프로그램이 동시에 여러 작업을 처리해야 하는 경우, 병렬 처리가 가능한 멀티스레드를 구현해야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자바는 멀티쓰레드 구현에 필요한 API를 제공해주어 멀티쓰레드를 빠르게 구현이 가능합니다.&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;b&gt;6. 동적 로딩 지원&lt;/b&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;/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;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;</description>
      <category>java/자바코딩</category>
      <category>Java</category>
      <category>자바</category>
      <category>자바개념</category>
      <category>자바란</category>
      <category>자바특징</category>
      <author>코멧</author>
      <guid isPermaLink="true">https://gaebaldiary.tistory.com/35</guid>
      <comments>https://gaebaldiary.tistory.com/35#entry35comment</comments>
      <pubDate>Thu, 15 Apr 2021 13:52:42 +0900</pubDate>
    </item>
    <item>
      <title>ORA-04021: 객체의 잠금 대기중 시간이 초과됐습니다</title>
      <link>https://gaebaldiary.tistory.com/34</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bcbVOo/btq2zDhp6O6/hKC31aKAwyHEEbz8vzckL0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bcbVOo/btq2zDhp6O6/hKC31aKAwyHEEbz8vzckL0/img.png&quot; data-alt=&quot;ORA-04021 에러&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bcbVOo/btq2zDhp6O6/hKC31aKAwyHEEbz8vzckL0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbcbVOo%2Fbtq2zDhp6O6%2FhKC31aKAwyHEEbz8vzckL0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;ORA-04021 에러&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;문제 원인&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;ORA-04021:&amp;nbsp;객체의&amp;nbsp;잠금&amp;nbsp;대기중&amp;nbsp;시간이&amp;nbsp;초과됐습니다&lt;/p&gt;
&lt;p&gt;오라클을 사용하시다 보면 해당 에러를 종종 보실 수도 있습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;해당 프로시저가 돌아가는 동안에 구조를 변경할수가 없습니다. 이와같은 경우를 방지하기 위해 library lock 과 pin에 의해 lock이 걸립니다.&lt;/p&gt;
&lt;p&gt;그러므로 해당하는 프로시저의 실행되고 있는 object 의 lock을 풀어 해결할수가 있습니다.&lt;/p&gt;
&lt;script async src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;!-- URL 근처 --&gt;
&lt;ins class=&quot;adsbygoogle&quot;
     style=&quot;display:block&quot;
     data-ad-client=&quot;ca-pub-8720911335503994&quot;
     data-ad-slot=&quot;7207081532&quot;
     data-ad-format=&quot;auto&quot;
     data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;해결 방법&lt;/b&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1. 오류난 해당 PRCEDURE의 SID를 추출합니다.&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;SELECT SID&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;FROM v$access&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;WHERE&amp;nbsp;OBJECT&amp;nbsp;=&amp;nbsp;'PROCEDURE&amp;nbsp;명';&lt;b&gt;&lt;br /&gt;&lt;br /&gt;2.&amp;nbsp;해당&amp;nbsp;SID의&amp;nbsp;실행중인&amp;nbsp;SESSION&amp;nbsp;점검합니다.&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&amp;nbsp; &amp;nbsp; SELECT SID, SERIAL#, USERNAME, STATUS&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FROM&amp;nbsp;&amp;nbsp;V$SESSION&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WHERE&amp;nbsp;SID&amp;nbsp;=&amp;nbsp;'1번에서&amp;nbsp;추출&amp;nbsp;된&amp;nbsp;SID';&lt;b&gt;&lt;br /&gt;&lt;br /&gt;3.&amp;nbsp;해당&amp;nbsp;PROCEDURE의&amp;nbsp;실행중인&amp;nbsp;SESSION&amp;nbsp;죽입니다.&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt; &lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ALTER&amp;nbsp;SYSTEM&amp;nbsp;KILL&amp;nbsp;SESSION&amp;nbsp;'SID,SERIAL#';&lt;/h4&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;* SESSION 을 죽여도 해결되지 않을 경우&lt;/b&gt;&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1. SESSION에 걸린 PROCESS 추출&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp; &amp;nbsp;SELECT A.SPID&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp; &amp;nbsp;FROM&amp;nbsp; V$PROCESS A&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;, V$SESSION B&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp; &amp;nbsp;WHERE A.ADDR = B.PADDR&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp; &amp;nbsp;AND&amp;nbsp; &amp;nbsp; &amp;nbsp;B.SID&amp;nbsp; &amp;nbsp; = '1번에서 추출된 SID';&lt;br /&gt;&lt;b&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2. 서버 접속 후 실행중인 프로시저 찾기&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp; &amp;nbsp;ps -ef|grep 1번에서 추출된 SPID&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3. 프로시저 죽이기&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp; &amp;nbsp;KILL -9 1번에서 추출된 SPID&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;위와 같이 실행해보시면&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&quot;ORA-04021: 객체의 잠금 대기중 시간이 초과됐습니다&quot;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;이와 같은 에러들은 거의 다 처리 가능할 것으로 생각됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;감사합니다~!&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>DB/ORACLE</category>
      <category>LOCK</category>
      <category>ORA-04021</category>
      <category>ORA-04021: 객체의 잠금 대기중 시간이 초과됐습니다</category>
      <category>PROCEDURE LOCK</category>
      <category>프로시저 락</category>
      <author>코멧</author>
      <guid isPermaLink="true">https://gaebaldiary.tistory.com/34</guid>
      <comments>https://gaebaldiary.tistory.com/34#entry34comment</comments>
      <pubDate>Wed, 14 Apr 2021 11:46:21 +0900</pubDate>
    </item>
    <item>
      <title>AJP 란? 아파치(Apahce)서버에서 톰캣(Tomcat)까지</title>
      <link>https://gaebaldiary.tistory.com/33</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;AJP&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AJP는 웹서버(Apache)에서 요청되는 것을 WAS에서 들어오는 요청을 위임하는 프로토콜 입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;웹 WAS를 구축하는 사람들은 AJP를 통해 웹서버로부터의 오는 요청들을 로드 밸런스 역할로 이용합니다.&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;예를 들어 TOMCAT SERVER.XML에서 AJP를 사용해 각 PORT에 맞는것을 요청해 어떤 PORT로 들어오면 이 WAS를 탈 수 있게 해줍니다.&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-origin-width=&quot;534&quot; data-origin-height=&quot;137&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bmi6AW/btq2rxCsRs8/Hd8HMqeUKk60oGVDtO1P0K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bmi6AW/btq2rxCsRs8/Hd8HMqeUKk60oGVDtO1P0K/img.png&quot; data-alt=&quot;Tomcat Server.xml 예시&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bmi6AW/btq2rxCsRs8/Hd8HMqeUKk60oGVDtO1P0K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbmi6AW%2Fbtq2rxCsRs8%2FHd8HMqeUKk60oGVDtO1P0K%2Fimg.png&quot; data-origin-width=&quot;534&quot; data-origin-height=&quot;137&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Tomcat Server.xml 예시&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위에 사진은 웹서버에서 7019로 들어온 Port를 이 server.xml로 설정된 TOMCAT(WAS)에서 받는 예시입니다.&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;letter-spacing: 0px;&quot;&gt;위에 AJP를 사용하기 전 아파치(웹) 서버에서 톰캣으로 보내기 위해 mod_jk라는 모듈을 사용합니다.&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;왜 굳이 웹 서버와 WAS를 나뉘어서 설정을 하는지에 대해서는 아래 포스팅을 보시면 이해가 되실것이라 생각합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 URL에서 확인하시면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://gaebaldiary.tistory.com/27&quot;&gt;URL : (gaebaldiary.tistory.com/27)&lt;/a&gt;&lt;!-- URL 근처 --&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;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;mod_jk&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;그렇다면 mod_jk는 무엇인가에 대해 알아보도록 하겠습니다.&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;letter-spacing: 0px;&quot;&gt;1. 사용자가 아파치 웹 서버에 접속 Request를 보냅니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;2. 웹 서버는 맞는 URL과 PORT를 점검한 후 WAS로 보냅니다. (mod_jk역할)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;3. 해당 WAS에 설정되어 있는 AJP포트에 맞는 것을 받아 해당 WAS에 소스를 실행합니다.&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;letter-spacing: 0px;&quot;&gt;즉 mod_jk는 (APACHE)WEB 서버와 (TOMCAT)WAS를 연결해주는 중간역할 및 로드밸런스 역할을 해준다고 생각하면 됩니다. 그리하여 웹 서버하나로 다중의 WAS를 구현할 수 있게 해주는 프로토콜 입니다.&lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;mod_jk 설정방법&lt;/b&gt;&lt;/h2&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;letter-spacing: 0px;&quot;&gt;아래는 해당 mod_jk 설정방법을 간략하게 설명했습니다.&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;아파치 웹 서버의 httpd.conf에 property로 정리해둔 파일을 include 해주어 아래와 같이 property에 코딩을 해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;379&quot; data-origin-height=&quot;90&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bztrVu/btq2kqK80o2/VzKIkTbZDK6LtIhbuFVOxk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bztrVu/btq2kqK80o2/VzKIkTbZDK6LtIhbuFVOxk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bztrVu/btq2kqK80o2/VzKIkTbZDK6LtIhbuFVOxk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbztrVu%2Fbtq2kqK80o2%2FVzKIkTbZDK6LtIhbuFVOxk%2Fimg.png&quot; data-origin-width=&quot;379&quot; data-origin-height=&quot;90&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 어떤 url에 따라서 worker3으로 갈지도 설정을 해줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;EX) /*.do = worker3&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;그렇다면 해당 URL로 접속 시 AJP포트 7019에 접속을 하여 &lt;b&gt;Tomcat Server.xml&lt;/b&gt; 예시에 있는 WAS로 접속을 하게 되어 실행되게 됩니다.&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;</description>
      <category>네트워크/서버 구축</category>
      <category>AJP</category>
      <category>AJP 란</category>
      <category>mod_jk</category>
      <category>was</category>
      <category>Web서버</category>
      <category>웹서버구축</category>
      <author>코멧</author>
      <guid isPermaLink="true">https://gaebaldiary.tistory.com/33</guid>
      <comments>https://gaebaldiary.tistory.com/33#entry33comment</comments>
      <pubDate>Tue, 13 Apr 2021 13:25:40 +0900</pubDate>
    </item>
    <item>
      <title>클라우드 (Cloud)란?</title>
      <link>https://gaebaldiary.tistory.com/32</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;최근에 굉장히 정부에서도 밀어주고 제일 각광받고 있는 기술 중 하나인 클라우드에 대해서 소개할까 합니다.&lt;/p&gt;
&lt;!-- URL 근처 --&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;클라우드 란?&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;클라우드(Cloud)는 한글 그대로 직역하면 &quot;구름&quot;이라는 의미로 위에 떠있는 존재를 가져다가 쓰는 서비스라고 생각하시면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인터넷 통신망 어디서도 구름에 싸여 보이지 않는 자원 컴퓨팅(ex. 아마존 AWS 서버)을 원하는 대로 가져다 쓸 수 것을 말합니다. 구름에 싸여 있어 보이지 않는 (ex. 아마존 AWS 서버)를 굳이 보지 않아도 어느 곳에서든 서비스를 등록하고 사용하면 쓸 수 있는 것입니다. 그러므로 클라우드란 단어가 붙어 사용하게 됩니다.&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-origin-width=&quot;1130&quot; data-origin-height=&quot;728&quot; width=&quot;500&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/meCqS/btq2krVDfsn/pzkkIoJjwV0DnwczAVRfR0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/meCqS/btq2krVDfsn/pzkkIoJjwV0DnwczAVRfR0/img.png&quot; data-alt=&quot;출처: 클라우드 정보보호 안내서, KISA, 2017&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/meCqS/btq2krVDfsn/pzkkIoJjwV0DnwczAVRfR0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmeCqS%2Fbtq2krVDfsn%2FpzkkIoJjwV0DnwczAVRfR0%2Fimg.png&quot; data-origin-width=&quot;1130&quot; data-origin-height=&quot;728&quot; width=&quot;500&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;출처: 클라우드 정보보호 안내서, KISA, 2017&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;

&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;클라우드의 예시&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;전세계적으로 클라우드 서비스를 하고 있는 아마존&lt;span&gt; AWS&lt;/span&gt;&lt;/span&gt;&amp;nbsp;예를 들겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아마존 AWS는 서버를 공유해주는 서비스로 많은 사랑을 받고 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기업들은 서버를 보유하려면 서버를 설치할 수 있는 공간이 필요합니다. 또한 사용 후 서버를 설치 해제하는 비용 또한 사용자가 감당해야 될 숙제였습니다. On-premise 형태의 서버만 가지고 있던 기업들은 서버 설치 비용 및 유연성 있는 공간 활용 등 다양한 비용들을 절감하고 싶은 문제를 안고 있었습니다.&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;하지만 아마존 AWS는 아마존에서 대량의 서버부지를 확보하여 서버를 설치하고 그에 따른 서비스를 해주어 필요할 때만 사용할 수 있게 서비스를 해주었습니다. 기업들은 굳이 서버를 On-premise 형태가 아니더라도 사용할 수 있게 되어 비용절감 및 공간 활용 등 다양한 장점을 가질 수 있었습니다.&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;* On-premise 단어를 모르는 분들 클릭!(&lt;a href=&quot;https://gaebaldiary.tistory.com/14?category=804511&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;gaebaldiary.tistory.com/14?category=804511&lt;/a&gt;)&lt;/p&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;!-- URL 근처 --&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8720911335503994&quot; data-ad-slot=&quot;7207081532&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;클라우드(Cloud) 장점&lt;/b&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;1. 초기 선투자 비용이 없다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &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;2. 운영비용 예측 및 절감&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;- 클라우드 서비스비용만 생각하면 되기 때문에 정확한 비용 지출이 예상되며, 사용자/용량 등 다양한 정량화된 수치로 서비스 비용이 측정되기 때문에 절감을 할 수 있는 측면이 많습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;3. 인력 낭비 절감 및 비지니스에 집중&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;- 이 전에는 기업들이 비지니스 뿐만 아니라 서비스를 하는 모든 것들이 On-premise였기 때문에 내부적으로 인력을 대기해야 됐으며 신경 써야 되는 부분이 많았습니다. 하지만 이제는 클라우드 서비스 업체의 서비스 비용만 지불하면 되기 때문에 그에 따른 인력낭비가 없어졌으며 비즈니스에 집중할 수 있게 되었습니다.&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;&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>IT/기본용어</category>
      <category>Cloud</category>
      <category>클라우드</category>
      <category>클라우드 서비스</category>
      <category>클라우드 장점</category>
      <category>클라우드 컴퓨팅</category>
      <author>코멧</author>
      <guid isPermaLink="true">https://gaebaldiary.tistory.com/32</guid>
      <comments>https://gaebaldiary.tistory.com/32#entry32comment</comments>
      <pubDate>Sat, 10 Apr 2021 23:21:28 +0900</pubDate>
    </item>
    <item>
      <title>프록시(Proxy) 서버란? (프록시 서버 설정 및 해제)</title>
      <link>https://gaebaldiary.tistory.com/31</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;IT에 종사하는 분들이라면 정말 많이 들어본 단어 일 것 입니다.&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;프록시(Proxy) 서버란?&lt;/b&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우리의 네트워크 구조 대부분이 클라이언트가 Request 요청 하면 서버에서 Response를 합니다. 그 중간에 프록시 서버가 끼어서 대리인 역할을 하여 통신을 수행해주는 역할을 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;1190&quot; data-origin-height=&quot;894&quot; width=&quot;500&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bgE7qS/btq12wQvqn3/ZvgMEab4RAcCK5348Kt0KK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bgE7qS/btq12wQvqn3/ZvgMEab4RAcCK5348Kt0KK/img.png&quot; data-alt=&quot;출처 : 위키피디아&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bgE7qS/btq12wQvqn3/ZvgMEab4RAcCK5348Kt0KK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbgE7qS%2Fbtq12wQvqn3%2FZvgMEab4RAcCK5348Kt0KK%2Fimg.png&quot; data-origin-width=&quot;1190&quot; data-origin-height=&quot;894&quot; width=&quot;500&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;출처 : 위키피디아&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위에 그림으로 Alice(Client), Bob(Server)라고 생각하고 설명을 드리자면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. &lt;span style=&quot;color: #333333;&quot;&gt;Alice(Client)&lt;/span&gt;가 프록시 서버에 현재 시간 알려줘. Request를 요청&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 프록시서버가 이 Request를 받고 &lt;span style=&quot;color: #333333;&quot;&gt;Bob(Server)&lt;/span&gt;에게 전달&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. Bob(Server) 는 7.PM이라는 Response를 프록시 서버에 전달&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 프록시 서버는 &lt;span style=&quot;color: #333333;&quot;&gt;Alice(Client)에게 Response를 전달&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;/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;자 그렇다면 그냥 바로 서버(Server)로 접근하면 더 빠를텐데 프록시서버에 접근하는 이유에 의아할 것 입니다.&lt;/p&gt;

&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;br /&gt;&lt;b&gt;프록시(Proxy) 서버 사용 목적&lt;/b&gt;&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1. 캐시 데이터 사용을 위해&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프록시 서버는 캐시를 사용해 저장해둔다. 그렇다면 Request를 서버에 접근할 필요 없이 캐시에 저장된 데이터를 Client에게 전달하면 됩니다. 전송 시간 및 트래픽 감소에 도움이 되어 서버 과부하 및 네트워크 병목 현상도 방지에 좋습니다.&lt;b&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;b&gt;2. 보안&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프록시 서버는 중간에 경유하게 되면 IP를 숨기는 것이 가능합니다.&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;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;3.&amp;nbsp; 접속우회&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;접속이 제한되어 있는 사이트를 다른나라로 우회하여 접근이 가능합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그렇다면 많은 분들이 프록시 서버와 vpn의 차이를 궁금하실 겁니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그냥 접속우회의 관점은 똑같으나 하나의 차이가 있다면 프록시 서버는 데이터의 내용을 암호화 하지 않습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 vpn의 경우는 데이터 내용까지 암호화하기 때문에 더 보안에 좋다고 생각하시면 됩니다.&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;b&gt;프록시 서버 설정 및 해제 (Chrome)&lt;/b&gt;&lt;/h4&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&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;724&quot; data-origin-height=&quot;882&quot; width=&quot;300&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/HCqaY/btq1XTGbWbu/ACLKZjKQnTJXomlMXclkIK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/HCqaY/btq1XTGbWbu/ACLKZjKQnTJXomlMXclkIK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/HCqaY/btq1XTGbWbu/ACLKZjKQnTJXomlMXclkIK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHCqaY%2Fbtq1XTGbWbu%2FACLKZjKQnTJXomlMXclkIK%2Fimg.png&quot; data-origin-width=&quot;724&quot; data-origin-height=&quot;882&quot; width=&quot;300&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&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 alignLeft&quot; data-origin-width=&quot;1530&quot; data-origin-height=&quot;614&quot; width=&quot;600&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bvByP0/btq1WfiTYeK/U7hrQQPe686PvGs4mGckk0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bvByP0/btq1WfiTYeK/U7hrQQPe686PvGs4mGckk0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bvByP0/btq1WfiTYeK/U7hrQQPe686PvGs4mGckk0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbvByP0%2Fbtq1WfiTYeK%2FU7hrQQPe686PvGs4mGckk0%2Fimg.png&quot; data-origin-width=&quot;1530&quot; data-origin-height=&quot;614&quot; width=&quot;600&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;스크롤을 끝까지 내린 후 고급을 클릭합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;1436&quot; data-origin-height=&quot;386&quot; width=&quot;600&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/m76k1/btq10MfwZcX/xWlvzPSlWCMDSnsC2sn08k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/m76k1/btq10MfwZcX/xWlvzPSlWCMDSnsC2sn08k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/m76k1/btq10MfwZcX/xWlvzPSlWCMDSnsC2sn08k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fm76k1%2Fbtq10MfwZcX%2FxWlvzPSlWCMDSnsC2sn08k%2Fimg.png&quot; data-origin-width=&quot;1436&quot; data-origin-height=&quot;386&quot; width=&quot;600&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;고급을 클릭하면 밑에 메뉴들이 펼쳐지는데 다시 한 번 스크롤을 끝까지 내린 후 컴퓨터 프록시 설정 열기를 클릭합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 MAC의 경우 아래와 같이 접속됩니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;1228&quot; data-origin-height=&quot;620&quot; width=&quot;600&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/brMX1Z/btq1WLoFQE9/ogaciphSs9rKqFEfk1Y7AK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/brMX1Z/btq1WLoFQE9/ogaciphSs9rKqFEfk1Y7AK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/brMX1Z/btq1WLoFQE9/ogaciphSs9rKqFEfk1Y7AK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbrMX1Z%2Fbtq1WLoFQE9%2FogaciphSs9rKqFEfk1Y7AK%2Fimg.png&quot; data-origin-width=&quot;1228&quot; data-origin-height=&quot;620&quot; width=&quot;600&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;웹 프록시에 대해서 &lt;span style=&quot;color: #333333;&quot;&gt;우회할 서버 &lt;/span&gt;ip와 포트를 설정 후 확인을 누르면 설정이 됩니다.&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;윈도우도 마찬가지로 제가 설명해드린 프로세스대로 들어가신 다음에 우회할 서버 IP와 PORT를 설정하시고 확인을 누르시면 됩니다&lt;/p&gt;</description>
      <category>네트워크/기본용어</category>
      <category>proxy</category>
      <category>프록시 서버</category>
      <category>프록시 서버 설정</category>
      <category>프록시 서버 해제</category>
      <category>프록시 서버란</category>
      <category>프록시 설정</category>
      <category>프록시 해제</category>
      <author>코멧</author>
      <guid isPermaLink="true">https://gaebaldiary.tistory.com/31</guid>
      <comments>https://gaebaldiary.tistory.com/31#entry31comment</comments>
      <pubDate>Tue, 6 Apr 2021 23:19:36 +0900</pubDate>
    </item>
    <item>
      <title>맥북 (mac) 한글오피스 무료 설치</title>
      <link>https://gaebaldiary.tistory.com/30</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;얼마 전 윈도우에서 맥북으로 교체하면서 다양한 설치프로그램을 깔았습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;맥 OS 에서는 한글오피스를 직접 구입해서 사용해야 했습니다.&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;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;2398&quot; data-origin-height=&quot;912&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/brVnZo/btq1QmUDYmY/MiVwUiBHkkH2uH33kgEMb0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/brVnZo/btq1QmUDYmY/MiVwUiBHkkH2uH33kgEMb0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/brVnZo/btq1QmUDYmY/MiVwUiBHkkH2uH33kgEMb0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbrVnZo%2Fbtq1QmUDYmY%2FMiVwUiBHkkH2uH33kgEMb0%2Fimg.png&quot; data-origin-width=&quot;2398&quot; data-origin-height=&quot;912&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;왜 이렇게 비싼건지....&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 난 그래도 정식 툴로 컴퓨터에서 깔아놓고 쓰겠다 하시는 분들은 아래 URL에 접속 후 구매해서 사용하시면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.hancom.com/main/main.do&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;www.hancom.com/main/main.do&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1617512028580&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;website&quot; data-og-title=&quot;글로벌 소프트웨어의 리더, 한글과컴퓨터&quot; data-og-description=&quot;웹한글기안기 웹과 문서의 경계를 허무는 시작! 데스크탑 한글을 웹에서도 동일하게 사용하세요. HTML5 기반 Non ActiveX 방식으로 IE, Chrome 등 브라우저 지원 완벽한 HWP 호환은 기본, 한글의 단축키 &quot; data-og-host=&quot;www.hancom.com&quot; data-og-source-url=&quot;https://www.hancom.com/main/main.do&quot; data-og-url=&quot;https://www.hancom.com/main/main.do&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/t4v7z/hyJK692pYr/6JiYwQowchQpw9MoWlZglK/img.png?width=1150&amp;amp;height=423&amp;amp;face=964_206_1046_297,https://scrap.kakaocdn.net/dn/KAAdm/hyJMoOMMYh/WnTtvZtdAy2XOzG36Bvz1k/img.jpg?width=370&amp;amp;height=379&amp;amp;face=0_0_370_379&quot;&gt;&lt;a href=&quot;https://www.hancom.com/main/main.do&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.hancom.com/main/main.do&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/t4v7z/hyJK692pYr/6JiYwQowchQpw9MoWlZglK/img.png?width=1150&amp;amp;height=423&amp;amp;face=964_206_1046_297,https://scrap.kakaocdn.net/dn/KAAdm/hyJMoOMMYh/WnTtvZtdAy2XOzG36Bvz1k/img.jpg?width=370&amp;amp;height=379&amp;amp;face=0_0_370_379');&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;웹한글기안기 웹과 문서의 경계를 허무는 시작! 데스크탑 한글을 웹에서도 동일하게 사용하세요. HTML5 기반 Non ActiveX 방식으로 IE, Chrome 등 브라우저 지원 완벽한 HWP 호환은 기본, 한글의 단축키&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.hancom.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 저는 한글오피스를 많이 사용하는 편도 아니기에 간단한 편집이랑 viewer 역할만 있으면 된다는 입장이라&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;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;한글오피스 무료 사용법&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;한글오피스를 WEB에서 편집가능하게 해주는 한컴 스페이스라는 tool이 존재했습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 아래 url로 접속해줍니다.&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;URL : (&lt;a href=&quot;https://space.malangmalang.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;space.malangmalang.com/)&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;
&lt;!-- URL 근처 --&gt;&lt;!-- URL 근처 --&gt;&lt;!-- URL 근처 --&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;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;1892&quot; data-origin-height=&quot;538&quot; width=&quot;572&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oByTY/btq1KecIJGL/yMbk3I1RCH7kQC3kTeHyl1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oByTY/btq1KecIJGL/yMbk3I1RCH7kQC3kTeHyl1/img.png&quot; data-alt=&quot;한컴스페이스 Main&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oByTY/btq1KecIJGL/yMbk3I1RCH7kQC3kTeHyl1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoByTY%2Fbtq1KecIJGL%2FyMbk3I1RCH7kQC3kTeHyl1%2Fimg.png&quot; data-origin-width=&quot;1892&quot; data-origin-height=&quot;538&quot; width=&quot;572&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;한컴스페이스 Main&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우리는 무료로 사용하기 위한 것 이니 &quot;무료로 시작하기&quot;를 클릭해줍니다.&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;&quot;무료로 시작하기&quot; 버튼을 누르면 아래와 같은 화면이 나오실 겁니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;2826&quot; data-origin-height=&quot;1166&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/clQkmy/btq1QnsuN8E/0f9ISkwwSlqJRmtP18Kg91/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/clQkmy/btq1QnsuN8E/0f9ISkwwSlqJRmtP18Kg91/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/clQkmy/btq1QnsuN8E/0f9ISkwwSlqJRmtP18Kg91/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FclQkmy%2Fbtq1QnsuN8E%2F0f9ISkwwSlqJRmtP18Kg91%2Fimg.png&quot; data-origin-width=&quot;2826&quot; data-origin-height=&quot;1166&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&quot;한컴스페이스&quot; tool 자체는 WEB에서 office 관련된 파일들을 편집만 viewer기능을 제공하며 무료로는 총 2GB까지 제공을 합니다.&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;&quot;업로드&quot; 버튼을 통해 내 PC에 있는 한글파일을 업로드하여 직접 편집 및 Viewer가 가능합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;614&quot; data-origin-height=&quot;366&quot; width=&quot;250&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/u13OD/btq1MroS3VZ/UNqF5uf1amtTkGpmRUAHWk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/u13OD/btq1MroS3VZ/UNqF5uf1amtTkGpmRUAHWk/img.png&quot; data-alt=&quot;업로드&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/u13OD/btq1MroS3VZ/UNqF5uf1amtTkGpmRUAHWk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fu13OD%2Fbtq1MroS3VZ%2FUNqF5uf1amtTkGpmRUAHWk%2Fimg.png&quot; data-origin-width=&quot;614&quot; data-origin-height=&quot;366&quot; width=&quot;250&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;업로드&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;편집을 하고 저장한 파일들을 다시 내 PC로 다운로드한 후 올린 파일을 삭제해주시면 2GB로 무료로 꾸준하게 사용하실 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&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;&quot;새로만들기&quot;를 통한 한글문서를 열게 되면 아래와 같은 화면으로 편집을 가능하게 해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;2866&quot; data-origin-height=&quot;1398&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/btW9mv/btq1JUZPM0n/0Xn29mPBgT98EEmP4QOgM0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/btW9mv/btq1JUZPM0n/0Xn29mPBgT98EEmP4QOgM0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/btW9mv/btq1JUZPM0n/0Xn29mPBgT98EEmP4QOgM0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbtW9mv%2Fbtq1JUZPM0n%2F0Xn29mPBgT98EEmP4QOgM0%2Fimg.png&quot; data-origin-width=&quot;2866&quot; data-origin-height=&quot;1398&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;2294&quot; data-origin-height=&quot;1582&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/byKZLJ/btq1QodRq9R/KTzdUFyFXJfyihvNwqmHIK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/byKZLJ/btq1QodRq9R/KTzdUFyFXJfyihvNwqmHIK/img.png&quot; data-alt=&quot;한글스페이스 가격&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/byKZLJ/btq1QodRq9R/KTzdUFyFXJfyihvNwqmHIK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbyKZLJ%2Fbtq1QodRq9R%2FKTzdUFyFXJfyihvNwqmHIK%2Fimg.png&quot; data-origin-width=&quot;2294&quot; data-origin-height=&quot;1582&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;한글스페이스 가격&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;유료로 사용하는 경우 혜택 면에서는 pc 설치 사용가능 및 다양한 혜택이 있지만 저 같은 경우는 한글을 많이 사용하지 않는 입장에서는 무료 사용하기로 충분히 사용이 가능했습니다.&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;</description>
      <category>알아두면 좋은거</category>
      <category>mac 한글오피스</category>
      <category>맥 오피스</category>
      <category>맥 한글오피스</category>
      <category>맥북 한글</category>
      <category>맥북 한글오피스</category>
      <author>코멧</author>
      <guid isPermaLink="true">https://gaebaldiary.tistory.com/30</guid>
      <comments>https://gaebaldiary.tistory.com/30#entry30comment</comments>
      <pubDate>Sun, 4 Apr 2021 14:22:43 +0900</pubDate>
    </item>
    <item>
      <title>[자바] 디자인 패턴(Design Pattern) 이란?</title>
      <link>https://gaebaldiary.tistory.com/29</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 data-ke-size=&quot;size16&quot;&gt;'디자인 패턴' 단순하게 이야기 하자면 '패턴' 이라는 말에 주목하면 된다. 지금까지 개발을 해왔던 사람들이 고심고심하여 만들어지고 만들어졌던 몇가지 일정한 패턴 중에 하나를 선택/개발하여 올바른 설계를 해라 라는 의도로 만들어진 패턴들을 '디자인 패턴' 이라고 합니다.&lt;/p&gt;
&lt;!-- URL 근처 --&gt;
&lt;script async src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8720911335503994&quot;
     crossorigin=&quot;anonymous&quot;&gt;&lt;/script&gt;
&lt;!-- URL 근처 --&gt;
&lt;ins class=&quot;adsbygoogle&quot;
     style=&quot;display:block&quot;
     data-ad-client=&quot;ca-pub-8720911335503994&quot;
     data-ad-slot=&quot;7207081532&quot;
     data-ad-format=&quot;auto&quot;
     data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&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;&lt;b&gt;1. Context&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 문제발생 상황 기술 &amp;gt; 패턴이 적용될 상황 기술&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;패턴은 상황에 맞게 써야 됨. 항상 유효하지 않는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. Problem&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 패턴 적용으로 해결되어야 할 디자인 이슈들을 기술&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 여러 제약사항과 영향력도 문제 해결을 위해 고려&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. Solution&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;문제를 해결하도록 설계를 구성하는 요소들과 그 요소들 사이의 관계, 책임, 협력 기술&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;Solution은 구체적인 구현 방법 및 다양한 상황에 적용할 수 있는 템플릿&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;디자인 패턴&lt;/b&gt;&lt;/h3&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;디자인 패턴에는 총 3가지의 카테고리가 있습니다.&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;1. 생성 패턴 (Creational Pattern)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; - 객체 생성 Pattern으로 객체의 생성 및 조합을 캡슐화해 객체가 생성되거나 변경되어도 프로그램에 영향을 미치지 않게 하는 유연성을 제공하는 패턴&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;2. 구조 패턴 (Structural Pattern)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; - 클래스나 객체를 합성에 관해 더 큰 구조로 만드는 패턴입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. 행동 패턴 (Behavioral Pattern)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; - 객체나 클래스 사이에서 상호작용하는 방법과 책임을 분산하는 방법을 정의하는 패턴입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 194px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 54px; background-color: #808080;&quot;&gt;
&lt;td style=&quot;width: 33.3333%; height: 54px;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;생성 패턴 (Creational Pattern)&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 54px;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;구조 패턴 (Structural Pattern)&lt;/span&gt;&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 54px;&quot;&gt;&lt;span&gt;&lt;b&gt;행동 패턴 (Behavioral Pattern)&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 33.3333%; height: 20px;&quot;&gt;Singleton&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 20px;&quot;&gt;Adapter&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 20px;&quot;&gt;Command&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 33.3333%; height: 20px;&quot;&gt;Abstarct Factory&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 20px;&quot;&gt;Composite&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 20px;&quot;&gt;Interpreter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 33.3333%; height: 20px;&quot;&gt;Factroy Method&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 20px;&quot;&gt;Decorator&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 20px;&quot;&gt;iterator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 33.3333%; height: 20px;&quot;&gt;Builder&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 20px;&quot;&gt;Facade&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 20px;&quot;&gt;Mediator&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 33.3333%; height: 20px;&quot;&gt;protoType&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 20px;&quot;&gt;Flyweight&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 20px;&quot;&gt;Memento&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 33.3333%; height: 20px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 20px;&quot;&gt;proxy&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 20px;&quot;&gt;Observer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 33.3333%; height: 20px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 20px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; height: 20px;&quot;&gt;State&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;Strategy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;Template Method&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&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가지 디자인 패턴의 카테고리에 종류에 대해서 정리한 표 입니다.&lt;/p&gt;</description>
      <category>java/기본용어</category>
      <category>Design Pattern</category>
      <category>디자인 패턴이란</category>
      <category>디자인패턴</category>
      <category>디자인패턴이란</category>
      <category>자바 디자인패턴</category>
      <author>코멧</author>
      <guid isPermaLink="true">https://gaebaldiary.tistory.com/29</guid>
      <comments>https://gaebaldiary.tistory.com/29#entry29comment</comments>
      <pubDate>Tue, 30 Mar 2021 18:04:33 +0900</pubDate>
    </item>
    <item>
      <title>[자바] 컬렉션(Collection) framework 설명 및 예시</title>
      <link>https://gaebaldiary.tistory.com/28</link>
      <description>&lt;p&gt;자바를 사용하시다 보면 우리가 모르는 많은 freamwork를 사용하게 될 것입니다.&lt;/p&gt;
&lt;p&gt;알아야 보인다는 것 처럼 어떠한 장점이 있고 연차가 쌓였을 때 정확한 오더를 할 수 있을 것 입니다.&lt;/p&gt;
&lt;p&gt;지금부터 알아볼 &lt;span style=&quot;color: #333333;&quot;&gt;자바에서 제공하는 &lt;/span&gt;Collection Framework는 우리가 많이 사용하지만 정확한 개념을 모르는 것들을 소개하고자 합니다.&lt;/p&gt;
&lt;script async src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;!-- URL 근처 --&gt;
&lt;ins class=&quot;adsbygoogle&quot;
     style=&quot;display:block&quot;
     data-ad-client=&quot;ca-pub-8720911335503994&quot;
     data-ad-slot=&quot;7207081532&quot;
     data-ad-format=&quot;auto&quot;
     data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Collection framework 란?&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;DATA를 더 쉽게 더 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스 즉 인터페이스의 집합을 의미합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;자 그렇다면 인터페이스에는 무엇이 있는지 살펴보도록 하겠습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bThzkH/btq1atozZl2/9Vjomzk7LxwKI7rKmAeaQk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bThzkH/btq1atozZl2/9Vjomzk7LxwKI7rKmAeaQk/img.png&quot; data-alt=&quot;컬렉션 framework&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bThzkH/btq1atozZl2/9Vjomzk7LxwKI7rKmAeaQk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbThzkH%2Fbtq1atozZl2%2F9Vjomzk7LxwKI7rKmAeaQk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;컬렉션 framework&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;위에 그림과 같이 인터페이스는 총개에서 파생됩니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1. List 인터페이스&lt;/p&gt;
&lt;p&gt;2. Set&amp;nbsp;인터페이스&lt;/p&gt;
&lt;p&gt;3. Map&amp;nbsp;인터페이스&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;위에 3가지 인터페이스는 아래 표로 간단히 정리를 해보았습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 99.6515%; height: 227px;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;background-color: #808080;&quot;&gt;
&lt;td style=&quot;width: 20%; height: 20px;&quot;&gt;&lt;b&gt;인터페이스&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 40%; height: 20px;&quot;&gt;&lt;b&gt;설명&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 40%; height: 20px;&quot;&gt;&lt;b&gt;예시&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 40px;&quot;&gt;
&lt;td style=&quot;height: 40px;&quot;&gt;List&amp;lt;E&amp;gt;&lt;/td&gt;
&lt;td style=&quot;height: 40px;&quot;&gt;- 순서가 있는 데이터의 집합.&lt;br /&gt;- 데이터의 중복을 허용.&lt;/td&gt;
&lt;td style=&quot;height: 40px;&quot;&gt;Vector, ArrayList, LinkedList, Stack, Queue 등&lt;br /&gt;ex) 대기자 명단&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 40px;&quot;&gt;
&lt;td style=&quot;height: 40px;&quot;&gt;Set&amp;lt;E&amp;gt;&lt;/td&gt;
&lt;td style=&quot;height: 40px;&quot;&gt;- 순서가 없는 데이터의 집합.&lt;br /&gt;- 데이터의 중복을 허용하지 않음.&lt;/td&gt;
&lt;td style=&quot;height: 40px;&quot;&gt;HashSet, TreeSet 등&lt;br /&gt;ex) 양의 정수 집합, 소수의 집합&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 127px;&quot;&gt;
&lt;td style=&quot;height: 127px;&quot;&gt;Map&amp;lt;K, V&amp;gt;&lt;/td&gt;
&lt;td style=&quot;height: 127px;&quot;&gt;
&lt;p&gt;- 키(key)와 값(value)의 한 쌍(Pair)으로 이루어지는 데이터의 집합&lt;br /&gt;- 순서가 없음.&lt;br /&gt;- 키는 중복을 허용하지 않음&lt;br /&gt;- 값은 중복 허용.&lt;/p&gt;
&lt;/td&gt;
&lt;td style=&quot;height: 127px;&quot;&gt;HashMap, TreeMap, Hashtable, Properties 등&lt;br /&gt;ex) 우편번호, 지역번호(전화번호)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;List&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;배열과 같이 순서가 있는 List 인터페이스는 객체들을 일렬로 늘어놓는 구조를 가지고 있습니다.&lt;/p&gt;
&lt;p&gt;객체를 인덱스(순번을 매긴다)를 매겨 객체를 저장하여 검색/삭제 등을 할 수 있는 기능을 가지고 있습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이 인덱스를 기준으로 각각의 객체는 Array를 가지고 있습니다. 그리하여 동일한(중복) 값을 참조하더라도 객체들은 값을 참조하는 게 아닌 그것에 있는 Array를 참조하여 값을 가지고 옵니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;그러므로 다수의 사용자들이 동일한 값을 변경하려고 할 때 문제가 생기기도 합니다.&lt;/p&gt;
&lt;p&gt;그래서 ArrayList의 경우는 Thread Safety하지 않다라고도 합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;하지만 여기서 Vertor는 Thread에서도 Safety 합니다.&lt;/p&gt;
&lt;p&gt;이유는 Vertor는 synchronized가 되어 있어 들어온 순서대로 값을 변경하기에 Thread Safety 합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;그러므로 싱글 스레드 환경에서는 Vertor는 쓸데없이 synchronizd를 하기 때문에 성능면에서는 좋지 않아 쓰지 않는 것을 추천합니다.&lt;/p&gt;
&lt;script async src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;!-- URL 근처 --&gt;
&lt;ins class=&quot;adsbygoogle&quot;
     style=&quot;display:block&quot;
     data-ad-client=&quot;ca-pub-8720911335503994&quot;
     data-ad-slot=&quot;7207081532&quot;
     data-ad-format=&quot;auto&quot;
     data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Set&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;순서가 없는 데이터의 집합이고 데이터의 중복을 허용하지 않습니다.&lt;/p&gt;
&lt;p&gt;Set은 ArrayList 대신에 iterator를 사용합니다.&lt;/p&gt;
&lt;p&gt;LinkedList도 순서는 있지만 인데스가 없으므로 iterator를 사용합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- HashSet&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 빠른 접근 속도를 가지고 있음.&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 순서를 모름.&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 객체 중복 허용하지 않음.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Set &amp;lt;E&amp;gt; = new HashSet&amp;lt;E&amp;gt;();&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- LinkedHashSet&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 추가된 순서대로 접근 가능&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Set&amp;lt;E&amp;gt; = new LinkedHashSet&amp;lt;E&amp;gt;();&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- TreeSet&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 정렬방법을 지정하지 않음.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Set&amp;lt;E&amp;gt; = new TreeSet&amp;lt;E&amp;gt;();&lt;/span&gt;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Map&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;키(Key) 값(Value)의 한 쌍(Pair)으로 구성된 객체를 저장하는 구조를 가지고 있다.&lt;/p&gt;
&lt;p&gt;키는 중복이 허용되지 않지만 값은 중복을 허용할 수가 있다.&lt;/p&gt;
&lt;p&gt;기존에 저장된 키와 동일한 키로 값을 저장하면 새로운 값으로 Replace 된다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- HashMap&lt;/p&gt;
&lt;p&gt;Map 인터페이스를 대표하는 Map Collection.&lt;/p&gt;
&lt;p&gt;주로 Key는 String 타입을 사용하며, String이 문자열이 같을 경우 동등 객체로 사용되게 한다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;HashMap&amp;lt;String, String&amp;gt; hashMap = new HashMap&amp;lt;String, String&amp;gt;();&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- TreeMap&lt;/p&gt;
&lt;p&gt;이진트리를 기반으로 한 Map Collection&lt;/p&gt;
&lt;p&gt;키와 값을 저장하는 동시에 키를 정렬합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;* 정렬되는 순서&lt;/p&gt;
&lt;p&gt;1. 숫자&lt;/p&gt;
&lt;p&gt;2. 알파벳 대문자&lt;/p&gt;
&lt;p&gt;3. 알파벳 소문자&lt;/p&gt;
&lt;p&gt;4. 한글&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;정렬을 해야 될 필요가 있다면 HashMap 보다는 TreeMap으로 사용하면 성능면에서 좋습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;TreeMap&amp;lt;String, String&amp;gt; treeMap = new TreeMap&amp;lt;String, String&amp;gt;();&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>java/기본용어</category>
      <author>코멧</author>
      <guid isPermaLink="true">https://gaebaldiary.tistory.com/28</guid>
      <comments>https://gaebaldiary.tistory.com/28#entry28comment</comments>
      <pubDate>Mon, 29 Mar 2021 13:10:13 +0900</pubDate>
    </item>
    <item>
      <title>[자바] 파일 전송 (OKHttpClient REST API) 예제</title>
      <link>https://gaebaldiary.tistory.com/23</link>
      <description>&lt;p&gt;최근에는 비대면 문화가 만연해지면서 파일을 전송할 일이 많아서 우리의 개발자들은 파일 전송 코딩을 많이 하게 됩니다.&lt;/p&gt;
&lt;p&gt;파일 전송은 편리한 여러 라이브러리가 많이 사용됩니다.&lt;/p&gt;
&lt;p&gt;그중 하나인 REST API로 보낼 수 있는 OKHTTPClient를 소개해 드리고자 합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;OKHttp 라이브러리는 REST API, HTTP 통신을 간편하게 구현할 수 있는 JAVA 라이브러리입니다.&lt;/p&gt;
&lt;p&gt;&quot;&lt;span&gt;Square&quot;라는 회사에서 만든 것으로 간편하게 파라미터만 세팅해주면 파일 전송할 수 있는 괜찮은 라이브러리입니다.&lt;/span&gt;&lt;/p&gt;
&lt;script async src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;!-- URL 근처 --&gt;
&lt;ins class=&quot;adsbygoogle&quot;
     style=&quot;display:block&quot;
     data-ad-client=&quot;ca-pub-8720911335503994&quot;
     data-ad-slot=&quot;7207081532&quot;
     data-ad-format=&quot;auto&quot;
     data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;파일 전송(OK파일&amp;nbsp;전송&amp;nbsp;(OKHttpClient&amp;nbsp;REST&amp;nbsp;API)&amp;nbsp;예제&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span&gt;자 다음은 OKHttp 라이브러리로 만든 파일 전송의 간단한 예제입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;583&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vQkqe/btq0TuUZNDj/QwzsFXVUbsMpy3t7Xabi8K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vQkqe/btq0TuUZNDj/QwzsFXVUbsMpy3t7Xabi8K/img.png&quot; data-alt=&quot;api접속하기 위한 변수들&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vQkqe/btq0TuUZNDj/QwzsFXVUbsMpy3t7Xabi8K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvQkqe%2Fbtq0TuUZNDj%2FQwzsFXVUbsMpy3t7Xabi8K%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;583&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;api접속하기 위한 변수들&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;위에 사진에 대한 설명입니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;FILENAME : 파일 이름&lt;/p&gt;
&lt;p&gt;APIURL&amp;nbsp; &amp;nbsp; &amp;nbsp;: 접속할 API URL&lt;/p&gt;
&lt;p&gt;FILEPATH&amp;nbsp; : 내가 가져올 파일 경로&lt;/p&gt;
&lt;p&gt;APIKEY&amp;nbsp; &amp;nbsp; &amp;nbsp;: API URL에 접속하기 위한 API key(고객에게 받은 key)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/7wQHk/btq0Xpk0ZI6/si4Zp4QddZyLvqSyYauhq1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/7wQHk/btq0Xpk0ZI6/si4Zp4QddZyLvqSyYauhq1/img.png&quot; data-alt=&quot;파일 가져오기&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/7wQHk/btq0Xpk0ZI6/si4Zp4QddZyLvqSyYauhq1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7wQHk%2Fbtq0Xpk0ZI6%2Fsi4Zp4QddZyLvqSyYauhq1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;파일 가져오기&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;csvfile 변수에 위에 지정한 filePath와 fileName으로 내가 보낼 파일을 가져옵니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bLQKOS/btq0SGadXCu/lPGDMWpULL8f6rTfsNTjv0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bLQKOS/btq0SGadXCu/lPGDMWpULL8f6rTfsNTjv0/img.png&quot; data-alt=&quot;OkHttpClient 객체 생성&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bLQKOS/btq0SGadXCu/lPGDMWpULL8f6rTfsNTjv0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbLQKOS%2Fbtq0SGadXCu%2FlPGDMWpULL8f6rTfsNTjv0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;OkHttpClient 객체 생성&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;그리고 파일을 보내기 위해서는 꼭 필요한&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;OKHTTPClient의 파일 전송 객체를 만듭니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;아래 사진들은 Request.Builder를 이용하여&lt;/p&gt;
&lt;p&gt;전송방식 put 이용하여 만든 Request 객체 예시입니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;564&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/SsDov/btq0SkL2ebW/KWxZqK5FSdhUZkZsAnoH9k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/SsDov/btq0SkL2ebW/KWxZqK5FSdhUZkZsAnoH9k/img.png&quot; data-alt=&quot;Rest API put 예시&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/SsDov/btq0SkL2ebW/KWxZqK5FSdhUZkZsAnoH9k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSsDov%2Fbtq0SkL2ebW%2FKWxZqK5FSdhUZkZsAnoH9k%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;564&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Rest API put 예시&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;위에 예시를 설명드리면,&lt;/p&gt;
&lt;p&gt;addHeader를 메서드로 header 정보를 포함해야 됩니다.&lt;/p&gt;
&lt;p&gt;그러므로 우리가 위에 지정한 apiKey를 넣어줍니다. 그 이외에 다른 Header정보가 필요하다면 넣어주시면 됩니다.&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;url 메서드는 당연히 접속할 URL apiURl을 넣어줍니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;RestUrl 중 put 전송방식을 통해 파일을 보냅니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;RequestBody 객체 create 메서드를 통해 csvFile을 넣어줍니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;첫 번째 매개변수에는 MediaType Class에 parse메서드에서 파일 형식을 보내고, 두 번째 매개변수에서는 내가 보낼 파일을 넣어줍니다. 저는 csvfile을 보내야 하기 때문에 csvfile을 넣어주고 build메서드를 통해 Request 객체를 생성했습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이후, 위에서 생성된 OKHttpClient 객체를 통해 execute 메서드를 사용하면 전송을 실행하게 됩니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cCBBMs/btq0Twd8paQ/jif25StuL3SGMEBfg8rtQk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cCBBMs/btq0Twd8paQ/jif25StuL3SGMEBfg8rtQk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cCBBMs/btq0Twd8paQ/jif25StuL3SGMEBfg8rtQk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcCBBMs%2Fbtq0Twd8paQ%2Fjif25StuL3SGMEBfg8rtQk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;정말 단순하게 파라미터만 넘겨도 파일이 전송이 되는 OKHttp 라이브러리는 직접 사용해보니 편하고 좋더라고요.&lt;/p&gt;
&lt;p&gt;혹시 파일을 전송할 일이 있으신 분들은 사용하시면 좋을 것 같습니다~&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;수고하세요~!&lt;/p&gt;</description>
      <category>java/자바코딩</category>
      <category>OKHTTPCLIENT</category>
      <category>rest api</category>
      <category>restAPI</category>
      <category>자바파일전송</category>
      <category>파일전송</category>
      <category>파일전송예시</category>
      <category>파일전송예제</category>
      <author>코멧</author>
      <guid isPermaLink="true">https://gaebaldiary.tistory.com/23</guid>
      <comments>https://gaebaldiary.tistory.com/23#entry23comment</comments>
      <pubDate>Mon, 29 Mar 2021 11:48:23 +0900</pubDate>
    </item>
    <item>
      <title>아파치 톰캣 (Apache Tomcat) 란?</title>
      <link>https://gaebaldiary.tistory.com/27</link>
      <description>&lt;p&gt;자바개발자로 처음 입문하시면 제일 먼저 보시는 부분이 &quot;아파치 톰캣&quot; 이라는 단어일 것 입니다.&lt;/p&gt;
&lt;p&gt;Apache Tomcat에 대해 설명드리겠습니다.&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;아파치 (Apache)&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;아파치는 아파치 재단에서 만든 소프트웨어 입니다.&lt;/p&gt;
&lt;p&gt;다시 말해 아파치 재단에서 만든 웹서버 입니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;웹서버는 정적리소스 (html,이미지 등)를 취급하는 항상 실행되어 있는 서버라고 생각하시면 됩니다.&lt;/p&gt;
&lt;p&gt;그러므로 웹 서버는 클라이언트의 요청에 대해서만 반응하여 요청한 값을 return 을 해주는 기능을 합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;웹서버 종류에는 Microsoft - IIS 등이 있습니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;아파치 톰캣 (Apache Tomcat)&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;아파치 톰캣은 아파치 - 웹서버 기능(정적리소스) + 톰캣 - (동적 리소스)를 함께 다루는 서버라고 생각하시면 됩니다.&lt;/p&gt;
&lt;p&gt;즉 이러한 것들은 WAS 라고 부르며 아파치 톰캣은 WAS입니다.&lt;/p&gt;
&lt;p&gt;WAS의 종류에는 IBM - WebSphere , JEUS 등 이 있습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;그렇다면&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1. '정적 리소스(텍스트, 이미지) 만 쓰는 홈페이지 에서만 웹서버가 쓰이고, 그 외에는 전부 WAS 서버인가요?'&lt;/p&gt;
&lt;p&gt;2. 'WEB서버를 쓰지 않고 모두 WAS만 쓰면 되겠네요?'&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;위와 같은 2가지 의문점이 생길수도 있습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;1번에 대한 의문점에 대해서는 반은 맞고 반은 틀리다고 할 수 있습니다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;정적리소스만 쓰는 홈페이지에서 웹서버만 쓰이는 업체들은 존재합니다. 하지만 그 외에는 전부 WAS만 쓰지 않습니다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;그 이유는 무엇일까요?&lt;/b&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;WAS만 안쓰고 WEB 서버와 WAS를 따로 쓰는 이유?&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbVa1z/btq1bfXfO75/cgmZWvYzyO9zCi1G3gJCb0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbVa1z/btq1bfXfO75/cgmZWvYzyO9zCi1G3gJCb0/img.png&quot; data-alt=&quot;WEB Service 구조&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbVa1z/btq1bfXfO75/cgmZWvYzyO9zCi1G3gJCb0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbVa1z%2Fbtq1bfXfO75%2FcgmZWvYzyO9zCi1G3gJCb0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;WEB Service 구조&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1. WAS만 쓰게 되면 서버의 과부하가 걸리기가 쉽습니다.&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;WAS는 DATABASE의 connection 및 다양한 로직을 처리하기 위해 부하가 부하가 걸려있어 정적 리소스를 호출할때 만큼은 웹서버를 따로 두어 과부하를 방지합니다. 그러므로 WAS와 WEB서버를 함께 사용합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2. 따로 쓰게 되면 보안에 장점이 있습니다.&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;WAS와 WEB서버를 분리해서 쓰게 되면 WEB서버의 보안모듈(SSL 등)을 설정하여 타인이 WAS에 접근하더라도 WEB서버에 접근하지 못하여 보안 상 따로두면 유리한 점이 많습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;3. 여러개의 서버 운용이 가능합니다. (무중단)&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;네이버의 경우 절대 서버가 중단되지 않습니다. 그 이유는 서버가 여러대이기 때문입니다.&lt;/p&gt;
&lt;p&gt;웹서버 하나에서 로드밸런싱을 통해 많은 WAS서버를 가지고 있어 WAS 1개가 중단되더라도 2번째 WAS로 로드밸런싱을 해주면 문제가 되지 않습니다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이러한 장점으로 오류 발생으로 배포과정에서 있어 고객이 서버의 끊김에 대한 불편함을 느끼지 않는 장점들이 있습니다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;맺음말&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;웹서버와 WAS는 대부분 회사가 분리해서 사용하고 있으며 위에 설명과 같이 장점들이 많이 있습니다.&lt;/p&gt;
&lt;p&gt;저러한 장점들로 인해 서버관리에도 유용하며 대용량 어플리케이션을 사용하는 기업들은 특히 분리해서 사용하고 있습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;제가 느낀점들을 최대한 자세하게 쓰려고 노력했는데 잘 이해가 되셨는지 모르겠습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;추가적으로 앞으로는 WEB서버와 WAS를 구축하는 포스팅을 하여 정확한 이해를 돕도록 하겠습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;감사합니다~!&lt;/p&gt;</description>
      <category>tomcat</category>
      <category>was</category>
      <category>Web서버</category>
      <category>아파치</category>
      <category>아파치톰캣</category>
      <category>웹서버</category>
      <category>톰캣</category>
      <author>코멧</author>
      <guid isPermaLink="true">https://gaebaldiary.tistory.com/27</guid>
      <comments>https://gaebaldiary.tistory.com/27#entry27comment</comments>
      <pubDate>Sun, 28 Mar 2021 17:35:12 +0900</pubDate>
    </item>
    <item>
      <title>1. JPA (Java Persistent API) 란?</title>
      <link>https://gaebaldiary.tistory.com/2</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;JPA를 접하게 되면서&lt;br /&gt;&lt;br /&gt;왜 JPA를 공부해야되는지 ??&lt;br /&gt;왜 기업들은 JPA을 쓰고 있는지 ??&lt;br /&gt;&lt;br /&gt;의문점을 가졌는데 그러한 의문점에 대해서 설명하려고 글을 작성했습니다.&lt;/b&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;1) JPA가 나오게 된 배경&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;script async src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8720911335503994&quot;
     crossorigin=&quot;anonymous&quot;&gt;&lt;/script&gt;
&lt;!-- URL 근처 --&gt;
&lt;ins class=&quot;adsbygoogle&quot;
     style=&quot;display:block&quot;
     data-ad-client=&quot;ca-pub-8720911335503994&quot;
     data-ad-slot=&quot;7207081532&quot;
     data-ad-format=&quot;auto&quot;
     data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현재 나와있는 다양한 에플리케이션을 개발하면서 개발자들은 CRUD용 SQL을 반복해서 작성해야 했고 이런 과정은 비 생산적이었습니다. 그래서&amp;nbsp; CRUD를 자동으로 생성해주는 도구를 만들어서 사용하기도 했지만 애플리케이션의 요구사항이 추가되는 것 까지는 해결해주지 못했습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;객체 모델링을 SQL로 풀어내는 데 너무 많은 코드와 노력이 필요했고, 객체 모델은 점점 데이터 중심의 모델로 변해갔습니다. 많은 개발자들이 이러한 부분을 많이 고민하게 되면서 ORM 프레임워크를 알게 되었고,&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt; JPA&lt;/b&gt;&lt;/span&gt;는 자바 진영의 &lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;ORM&lt;/span&gt; &lt;/b&gt;기술 표준입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2) 왜 JPA를 사용해야 하는가?&lt;/b&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;&amp;nbsp; ● 생산성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; - 위에서 설명했듯이 귀찮고, 비생산적인 CRUD 반복적인 SQL 쿼리를 JPA가 대신 처리해주므로 개발자가 직접 SQL을 작성하지 않게 되었습니다. 이에 따라 생산성이 올라가고 데이터중심의 설계에서 객체 중심의 설계로 변화시킬 수가 있게 되었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #333333;&quot;&gt;▶ &lt;/span&gt;기존&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;각 테이블마다 SELECT, INSERT, UPDATE, DELETE 쿼리를 작성해놓고 변경 될때마다 수정해야 됨.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;그리고 이를 갖고오기 위해 mybatis 등으로 갖고오고 binding 처리를 해야됨.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #333333;&quot;&gt;▶ &lt;/span&gt;JPA&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;em.persist(); 저장&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; , em.find(); 조회 등&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Entity만 제대로 설계되어 있다면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;이러한 단순한 명령어 하나로 저장, 조회 등 CRUD의 전반적인 작업을 가능하게 됨.&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;&quot;&gt;&amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;● 유지보수&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp;- SQL에 의존적인 개발에서는 엔티티에 필드 하나만 추가해도 CRUD 쿼리에 결과를 매핑하기 위해 전체 SQL을 수정해야만 했습니다. 하지만 JPA에서는 자바 엔티티 클래스에 필드만 추가해도 자동으로 생성되고 매핑이 되므로 유지보수하기에 편리합니다.&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;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;* 예시로 USER테이블에 직무코드 컬럼 추가&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ▶&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;기존&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;INSERT, UPDATE, SELECT SQL를 쿼리를 수정해야되고, USER테이블에 관련된 모든 테이블에 직무코드 컬럼을 추&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;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;▶&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;JPA&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;해당 USER 테이블에 ENTITY를 추가하면 끝!&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;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;● 관계형데이터베이스 객체 사이의 불일치 문제 해결&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&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;&quot;&gt;&lt;span style=&quot;color: #333333;&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;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &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;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &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;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;그래서 만약 Human 와 Student 을 저장하려면 INSERT문을 두번 써야되는 문제가 있습니다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;EX ) INSERT Human&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;INSERT &lt;span style=&quot;color: #333333;&quot;&gt;Student&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 하지만 JPA는 이러한 점을 Persist메소드로 해결했습니다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; EX ) Entity로 Student에서 Human을 상속하고&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;jpa.persist(MEMBER) 만 넣으면 간단하게 해결됩니다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&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;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 이러한 예시 처럼 간단하게 JPA는 상속에 있어서 객체지향으로 변경하여 해결했습니다.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&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 data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #333333;&quot;&gt;▶ 연관관계&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&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;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp; &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;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;마찬가지로 두 Entity를 각각 연결시켜 jpa.find();로 해결합니다.&lt;/span&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;b&gt;3) JPA 단점&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #333333;&quot;&gt;● 통계쿼리 등 복잡한 쿼리는 구현하기 어려움&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - 단순한 명령어 하나로 CRUD 구현이 가능하기 때문에 복잡한 관계의 쿼리를&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 구현하기는 어려움이 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 대처방법으로는 mybatis로 따로 쿼리를 작성하여 구현하면 됩니다.&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;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;● 학습하기가 어려움&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;- 기존의 자바 개발자들이 JPA를 공부하기 위해서는 ORM 개념으로 개념 자체를 바꿔야 하기 때문에&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;생각보다 학습하기 어려운 부분이 있습니다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;● 최적화가 필요&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &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;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 성능향상을 위해서는 최적화가 필요합니다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;4) 정리&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;전세계 기업들이 추구하는 것은 이윤입니다. 이윤을 위해서는 비용절감, 상품의 퀄리티를 높이는 방법 등이 있습니다. 이러한 기업 이윤추구와 발전과정에서 저는 동일한 시간에 양질의 퀄리티와 비용절감 효과를 이룰 수 있는 JPA가 나오는 것은 다양한 수순이라고 생각합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;JPA는 많은 관계형 데이터베이스와 객체지향의 불일치의 문제를 해결했고, 반복적이고 불 필요한 시간낭비 코드를 줄였습니다. JPA 이러한 점들은 기업들이 추구하는 이윤추구와도 많은 부분에서 일맥상통하다고 생각합니다. 그리하여 최근 기업들은 기존 SQL의존의 JAVA 기술들을 JPA로 업그레이드 하는 추세이며 JPA를 배우는 것은 JAVA 개발자로서 가져야 할 소양이라 생각합니다. 앞으로 JPA를 익힌 부분을 꾸준히 업로드 할 것이며 저의 블로그를 통해 조금이나마 JPA를 알아가셨으면 좋겠습니다.&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>java/jpa</category>
      <category>crud</category>
      <category>Entity</category>
      <category>Find</category>
      <category>Java</category>
      <category>JPA</category>
      <category>ORM</category>
      <category>persist</category>
      <category>persistent</category>
      <category>관계형데이터베이스</category>
      <author>코멧</author>
      <guid isPermaLink="true">https://gaebaldiary.tistory.com/2</guid>
      <comments>https://gaebaldiary.tistory.com/2#entry2comment</comments>
      <pubDate>Sun, 28 Mar 2021 15:41:44 +0900</pubDate>
    </item>
    <item>
      <title>카카오톡 멀티프로필 설정 및 사용방법</title>
      <link>https://gaebaldiary.tistory.com/26</link>
      <description>&lt;p&gt;최근에 카카오톡에서 멀티프로필이란 기능을 추가하면서 많은 사람들이 이 기능을 어떻게 쓰는지 궁금해 하실 것 같아서&lt;/p&gt;
&lt;p&gt;제가 블로그로 정리해서 글을 올려보려고 합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;카카오톡 멀티프로필&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;카카오톡 멀티프로필은 내 프로필을 각기 다른 친구들에게 각각 다른 프로필로 보여지게 하는 기능입니다.&lt;/p&gt;
&lt;p&gt;예를들어 나는 홍길동이란 사람에게는 '내 정면 사진' 프로필을 보여지게 할 수 있고, '김철수'이란 사람에게는 사진없는 프로필을 보여지게 할 수 있는 것 입니다.&lt;/p&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;!-- 자주쓰는광고 --&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8720911335503994&quot; data-ad-slot=&quot;6073947352&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;카카오톡 멀티프로필 설정 및 사용방법&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;카카오톡 멀티프로필은 사용하기에 앞서 신원증빙으로 제공되는 서비스이므로 신원증빙이 기반이 되어야 합니다.&lt;/p&gt;
&lt;p&gt;그러므로&amp;nbsp; 카카오톡에서 제공하는 '카카오톡 지갑'을 통해 신원을 증빙 후 사용해야 합니다.&lt;/p&gt;
&lt;p&gt;이 후 카카오톡 멀티프로필 설정을 하면 됩니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;아래는 카카오톡 멀티프로필 설정 및 사용방법을 순서대로 설명했습니다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1. 카카오톡 지갑 만들기&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&amp;nbsp;지갑을 만들기 위해 미리 알아둬야 되는 점들을 말씀드립니다.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 1. 만 14세 미만의 경우 보호자의 동의로 서비스 가입이 가능&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 2. 인증서 발급은 발입일로 부터 2년&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 3. 앱 삭제 (핸드폰 변경) 시 재 발급&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;카카오톡 지갑 만드는 것은 아래 사진에 QR코드를 찍어 진행하시면 됩니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;494&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bCI5qf/btq1dyIeXi0/Xqc8D3ZTfM6tZy5pZ54LV1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bCI5qf/btq1dyIeXi0/Xqc8D3ZTfM6tZy5pZ54LV1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bCI5qf/btq1dyIeXi0/Xqc8D3ZTfM6tZy5pZ54LV1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbCI5qf%2Fbtq1dyIeXi0%2FXqc8D3ZTfM6tZy5pZ54LV1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;494&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자세한 설명은 URL(&lt;a href=&quot;https://gusujung.tistory.com/390&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;gusujung.tistory.com/390&lt;/a&gt;)을 클릭해주세요! (출처 : 미스구의 Too much information 티스토리 블로그)&lt;/p&gt;
&lt;script async src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;!-- URL 근처 --&gt;
&lt;ins class=&quot;adsbygoogle&quot;
     style=&quot;display:block&quot;
     data-ad-client=&quot;ca-pub-8720911335503994&quot;
     data-ad-slot=&quot;7207081532&quot;
     data-ad-format=&quot;auto&quot;
     data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2. 카카오톡 멀티프로필 설정&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;472&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/chx9m1/btq082YNkJw/NKR2VHqQnT3DzFYtO7i0qK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/chx9m1/btq082YNkJw/NKR2VHqQnT3DzFYtO7i0qK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/chx9m1/btq082YNkJw/NKR2VHqQnT3DzFYtO7i0qK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fchx9m1%2Fbtq082YNkJw%2FNKR2VHqQnT3DzFYtO7i0qK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;472&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;모바일 카카오톡 친구목록에 들어가면 내 프로필 밑에 위와 같은 내 멀티프로필이란 창이 뜰겁니다.&lt;/p&gt;
&lt;p&gt;이곳에서 나만의 멀티프로필을 만들게 될 것이며 총 3개가 MAX로 멀티프로필을 만들수가 있습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;위에 프로필 설정 터치하여 들어가게 되면 아래와 같은 화면이 나옵니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;253&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/PB6UH/btq081Mn4Cx/vcCvRkYgbvjk3tCZjgJkCK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/PB6UH/btq081Mn4Cx/vcCvRkYgbvjk3tCZjgJkCK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/PB6UH/btq081Mn4Cx/vcCvRkYgbvjk3tCZjgJkCK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPB6UH%2Fbtq081Mn4Cx%2FvcCvRkYgbvjk3tCZjgJkCK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;253&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;이 화면에서 이름, 사진 상태메세지 등 다양한 프로필에 대해서 변경이 가능합니다.&lt;/p&gt;
&lt;p&gt;본인이 원하는 멀티프로필을 작성해보세요. 이쁘게 다양하게!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;그리고 나의 멀티프로필을 완성하고 완료를 누르게 되면 나만의 멀티프로필을 생성이 최종적으로 완료 된 것입니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;635&quot; data-origin-height=&quot;201&quot; data-filename=&quot;blob&quot; width=&quot;300&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bjF26R/btq09zIAi71/CRkCi52UpBE5QK2D4f0kQ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bjF26R/btq09zIAi71/CRkCi52UpBE5QK2D4f0kQ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bjF26R/btq09zIAi71/CRkCi52UpBE5QK2D4f0kQ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbjF26R%2Fbtq09zIAi71%2FCRkCi52UpBE5QK2D4f0kQ0%2Fimg.png&quot; data-origin-width=&quot;635&quot; data-origin-height=&quot;201&quot; data-filename=&quot;blob&quot; width=&quot;300&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;저 또한 위와 사진과 같이 TEST라는 멀티프로필을 생성했습니다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;3. 멀티프로필 친구설정&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;멀티프로필을 완료했으면 이제 어떠한 친구에게 내 멀티프로필을 보여줄 것 인지에 대해 설정을 해야겠죠?&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;위에 사진에 있는 멀티프로필을 클릭(터치)한 후 들어갑니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;200&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bspFXx/btq081Mof5D/jd1HfJ9ecEBm0mPU32p1eK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bspFXx/btq081Mof5D/jd1HfJ9ecEBm0mPU32p1eK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bspFXx/btq081Mof5D/jd1HfJ9ecEBm0mPU32p1eK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbspFXx%2Fbtq081Mof5D%2Fjd1HfJ9ecEBm0mPU32p1eK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;200&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;위에 캡처화면과 같이 멀티프로필이 뜹니다.&lt;/p&gt;
&lt;p&gt;여기서 친구관리로 들어갑니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;200&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dbi8hD/btq1atA5VO3/Vn3y7nrIxqO3VHUNPUgcb0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dbi8hD/btq1atA5VO3/Vn3y7nrIxqO3VHUNPUgcb0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dbi8hD/btq1atA5VO3/Vn3y7nrIxqO3VHUNPUgcb0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdbi8hD%2Fbtq1atA5VO3%2FVn3y7nrIxqO3VHUNPUgcb0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;200&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;위와 화면으로 이동되며 이제 지정친구 추가라는 버튼을 클릭(터치)를 합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;200&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bNaL7k/btq09zIABXt/hKsklDCWkj4TjGFdOZKaKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bNaL7k/btq09zIABXt/hKsklDCWkj4TjGFdOZKaKK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bNaL7k/btq09zIABXt/hKsklDCWkj4TjGFdOZKaKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbNaL7k%2Fbtq09zIABXt%2FhKsklDCWkj4TjGFdOZKaKK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;200&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;위와 같이 친구 및 채팅방에서 내가 설정한 멀티프로필을 지정할수가 있으며 지정 후 확인 버튼을 클릭(터치) 하면 됩니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;결론&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;카카오톡 멀티프로필은 자기PR이 중요한 요즘시대에 대중에 Needs를 잘 파악하여 만든 획기적인 기능이라고 생각합니다.&lt;/p&gt;
&lt;p&gt;사용하시는 분들이 잘 사용만 하신다면 각기 다른사람에게 본인PR도 가능한 부분이며, 또 한 내 프로필을 보여주기 싫은 사람들에게 다른 프로필을 보여줄 수 있는 차단 기능도 있다고 생각합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;제 블로그 글을 보시는 분들께서는 카카오톡 멀티프로필 설정 및 사용방법에 대해 알아가시고 잘 활용하시면 좋겠습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>알아두면 좋은거</category>
      <category>멀티프로필</category>
      <category>멀티프로필 사용방법</category>
      <category>멀티프로필 설정</category>
      <category>멀티프로필 하는법</category>
      <category>카카오톡 멀티프로필</category>
      <category>카카오톡 멀티프로필 사용방법</category>
      <category>카카오톡 멀티프로필 설정</category>
      <category>카카오톡 멀티프로필 하는법</category>
      <category>카톡 멀티프로필 사용방법</category>
      <category>카톡 멀티프로필 설정</category>
      <author>코멧</author>
      <guid isPermaLink="true">https://gaebaldiary.tistory.com/26</guid>
      <comments>https://gaebaldiary.tistory.com/26#entry26comment</comments>
      <pubDate>Sat, 27 Mar 2021 17:08:24 +0900</pubDate>
    </item>
    <item>
      <title>오라클(ORACLE) 삭제(delete)하고 commit한 데이터 복구</title>
      <link>https://gaebaldiary.tistory.com/25</link>
      <description>&lt;p&gt;데이터들을 실수로 DELETE, UPDATE 등을 하여 잘못 COMMIT하여 난감하실때가 많으실 겁니다.&lt;/p&gt;
&lt;p&gt;저도 이러한 사항을 많이 겪어봤고 많이 혼났을 때가 있었네요.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이럴 때 오라클에서 데이터 복구를 위해 지원해주는 것이 있습니다.&lt;/p&gt;
&lt;script async src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;!-- URL 근처 --&gt;
&lt;ins class=&quot;adsbygoogle&quot;
     style=&quot;display:block&quot;
     data-ad-client=&quot;ca-pub-8720911335503994&quot;
     data-ad-slot=&quot;7207081532&quot;
     data-ad-format=&quot;auto&quot;
     data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;TIMESTAMP를 통한 복구 쿼리입니다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 83.1395%; height: 60px;&quot; border=&quot;3&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 40px;&quot;&gt;
&lt;td style=&quot;width: 100%; height: 40px;&quot;&gt;&amp;nbsp;SELECT [컬럼]&lt;br /&gt;&amp;nbsp;FROM [테이블] AS OF TIMESTAMP 함수&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;예시로는 아래와 같습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;예시1) 시간 전 조회&lt;/b&gt;&lt;/h4&gt;
&lt;table style=&quot;border-collapse: collapse; width: 65.2325%; height: 71px;&quot; border=&quot;3&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 71px;&quot;&gt;
&lt;td style=&quot;width: 100%; height: 71px;&quot;&gt;&amp;nbsp;SELECT *&lt;br /&gt;&amp;nbsp;FROM TEST AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '10' MINUTE)&lt;b&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;이렇게 조회하면 10분 이전의 데이터를&lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;조회할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;뒤에 단위는&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;SECOND&lt;/b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;MINUTE&lt;/b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;HOUR&lt;/b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;DAY&lt;/b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;로 바꿔 쓸 수 있습니다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;예시2) 특정 날짜 조회&lt;/b&gt;&lt;/h4&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;3&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;&lt;/span&gt;SELECT *&lt;br /&gt;&amp;nbsp;FROM&amp;nbsp; TEST AS OF&lt;span&gt;&amp;nbsp;&lt;/span&gt;TIMESTAMP(TO_DATE('20210316000000', 'YYYYMMDDHH24MISS'))&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;이렇게 조회하면 2021년 03월 16일에 테이블 데이터를 조회할 수 있습니다.&lt;/p&gt;
&lt;p&gt;또한 삭제된 시간도 적절하게 조절해서 검색가능 합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;예시3) INSERT SELECT를 통한 데이터 복구&lt;/b&gt;&lt;/h4&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;3&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&amp;nbsp;INSERT INTO [테이블]&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;SELECT [컬럼]&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;FROM [테이블] AS OF TIMESTAMP 함수&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;SELECT INSERT 쿼리로 간단히 테이블 삭제 후 데이터 복구 하시면 됩니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;데이터변경 하고 COMMIT해서 망했다 생각하실 때 이 쿼리로 당황하지 말고 바로 데이터 복구하시길 바랍니다.&lt;/p&gt;</description>
      <category>DB/ORACLE</category>
      <category>데이터복구</category>
      <category>삭제</category>
      <category>삭제하고복구</category>
      <category>오라클데이터복구</category>
      <category>쿼리</category>
      <author>코멧</author>
      <guid isPermaLink="true">https://gaebaldiary.tistory.com/25</guid>
      <comments>https://gaebaldiary.tistory.com/25#entry25comment</comments>
      <pubDate>Fri, 26 Mar 2021 15:24:53 +0900</pubDate>
    </item>
    <item>
      <title>프로시저(Procedure) 사용법 및 예시</title>
      <link>https://gaebaldiary.tistory.com/24</link>
      <description>&lt;p&gt;저는 오라클을 쓰면서 많은 프로시저(Procedure)를 사용하고 있습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;최근에는 프로시저가 많이 사용하지 않는 추세이긴 합니다.&lt;/p&gt;
&lt;p&gt;왜 많이 쓰이는 않는지에 대한 포스팅은 이후에 진행하도록 하겠습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;우선 Procedure에 대해서 말씀드리겠습니다.&lt;/p&gt;
&lt;script async src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;!-- URL 근처 --&gt;
&lt;ins class=&quot;adsbygoogle&quot;
     style=&quot;display:block&quot;
     data-ad-client=&quot;ca-pub-8720911335503994&quot;
     data-ad-slot=&quot;7207081532&quot;
     data-ad-format=&quot;auto&quot;
     data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;프로시저(Procedure)&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;특정 작업을 수행하는 PL/SQL BLOCK입니다.&lt;/p&gt;
&lt;p&gt;매개 변수 및 반복적으로 사용할 수 있는 BLOCK이라고 생각하시면 됩니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;생성&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/HPEP6/btq03Gzym8M/sipjsimETCzgskk0ZE3sK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/HPEP6/btq03Gzym8M/sipjsimETCzgskk0ZE3sK1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/HPEP6/btq03Gzym8M/sipjsimETCzgskk0ZE3sK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHPEP6%2Fbtq03Gzym8M%2FsipjsimETCzgskk0ZE3sK1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;위에 예시는 PROCEDURE를 생성하는 간단한 예제입니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;LINE별로 설명을 드리면&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;1 LINE&amp;nbsp; &lt;/span&gt;&lt;b&gt;CREATE OR REPLACE PROCEDURE 프로시저명 (&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;- 프로시저명으로 CREATE 한다라고 생각하면 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;2~5 LINE &lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;매개변수 IN/OUT/INOUT 데이터 타입&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp;&lt;span style=&quot;color: #000000;&quot;&gt;- 매개변수를 통해 IN/OUT/INOUT을 통해 입출입을 정해주고, 데이터 타입(VARCHAR2, NUMBER 등)을 정해준다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;7 LINE&lt;/span&gt; &lt;b&gt;변수 데이터 타입;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;- 프로시저에 맞게 변수랑 사용할 것들을 적어준다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;8 LINE&lt;/span&gt; &lt;b&gt;BEGIN&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;- 프로시저 시작&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;9~12 LINE &lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;실행되어야 될 내용&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;13 LINE &lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;EXCEPTION&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;- EXCEPTION이 실행되면 THROW 되는 곳&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;14 LINE &lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;WHEN OTHERS THEN&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;- OTHERS 예외는, 모든 예외를 포괄하는 예외명이며, 예외 처리의 마지막에 기술해야 한다 아니면 compile error가 된다.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;15 LINE&lt;/span&gt; &lt;b&gt;ROLLBACK;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;- 프로시저 실행된 부분 전체 ROLLBACK&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;17 LINE&lt;/span&gt; RETURN&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;- 프로시저 전체 RETURN&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;실행&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;b&gt;실행은 2가지로 구분이 된다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;1. 파라미터가 없거나, IN 파라미터만 있을 때 실행&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CALL&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;프로시저명 (파라미터들);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;EXEC&amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #000000;&quot;&gt;프로시저명 (파라미터들);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;EXECUTE&amp;nbsp; &lt;span style=&quot;color: #000000;&quot;&gt;프로시저명 (파라미터들);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;예시)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CALL &lt;span style=&quot;color: #000000;&quot;&gt;TESTTESTTEST(1,2,3);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;EXEC &lt;span style=&quot;color: #000000;&quot;&gt;TESTTESTTEST(1,2,3);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;EXECUTE &lt;span style=&quot;color: #000000;&quot;&gt;TESTTESTTEST(1,2,3);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;2. 프로시저 매개변수가 IN/OUT 두 개 다 존재할 때 실행&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;위에 예제로 만들어진 IN/OUT 두 개 다 존재할 때의 프로시저를 실행한다고 할 때&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;아래오 같이 실행하면 된다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DECLARE&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;A NUMBER;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;BEGIN&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;TESTTESTTEST(1,2,3, A);&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; END;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>DB/ORACLE</category>
      <author>코멧</author>
      <guid isPermaLink="true">https://gaebaldiary.tistory.com/24</guid>
      <comments>https://gaebaldiary.tistory.com/24#entry24comment</comments>
      <pubDate>Thu, 25 Mar 2021 15:58:12 +0900</pubDate>
    </item>
    <item>
      <title>DBEaver 편리하게 사용하기 위한 환경설정 사용법</title>
      <link>https://gaebaldiary.tistory.com/22</link>
      <description>&lt;p&gt;DBeaver를 사용하면서 제가 편리하게 사용했던 환경설정 및 단축키에 대해서 정리하려고 합니다.&lt;/p&gt;
&lt;p&gt;저도 처음 DBeaver를 시작할 때는 차근차근 배운다는 마인드로 하나하나 찾아가면서 시작했습니다. 그렇게 익힌 제가 아는 지식들을 정리해서 블로그에 남기도록 하려고 합니다. 이걸 보시는 분들이 도움되셨으면 좋겠습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1. 라인&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;협업하는 입장에서는 쿼리를 보내주고 &quot;몇 번째 라인을 보면 됩니다&quot; 라고 말을 종종 합니다.&lt;/p&gt;
&lt;p&gt;그러므로 필요한 라인을 표시하는 방법을 말씀드리겠습니다.&lt;/p&gt;
&lt;script async src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;!-- URL 근처 --&gt;
&lt;ins class=&quot;adsbygoogle&quot;
     style=&quot;display:block&quot;
     data-ad-client=&quot;ca-pub-8720911335503994&quot;
     data-ad-slot=&quot;7207081532&quot;
     data-ad-format=&quot;auto&quot;
     data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;387&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cjoJdK/btq0SGAzsKB/78nOskHIY9lk4b0iJxq5h1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cjoJdK/btq0SGAzsKB/78nOskHIY9lk4b0iJxq5h1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cjoJdK/btq0SGAzsKB/78nOskHIY9lk4b0iJxq5h1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcjoJdK%2Fbtq0SGAzsKB%2F78nOskHIY9lk4b0iJxq5h1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;387&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;윈도우(W) &amp;gt; 설정에 들어갑니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;412&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/brYlwC/btq0Nw62uP5/5RdfKxGQAPZQRNXFOLnS71/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/brYlwC/btq0Nw62uP5/5RdfKxGQAPZQRNXFOLnS71/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/brYlwC/btq0Nw62uP5/5RdfKxGQAPZQRNXFOLnS71/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbrYlwC%2Fbtq0Nw62uP5%2F5RdfKxGQAPZQRNXFOLnS71%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;412&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;환경설정 &amp;gt; 편집기 &amp;gt; 문서편집기로 들어가서&lt;/p&gt;
&lt;p&gt;노란색 쳐져 있는 행 번호 표시 체크박스를 누르면 됩니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2. 개발/운영 스크립트 창 색깔 적용&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;개발을 하다보면 간혹 엉뚱하게도 운영에 insert, update, delete를 하여 당황스러운 적도 있을 수 있습니다.&lt;/p&gt;
&lt;p&gt;이러한 부분을 사전 방지하게 위하여 스크립트 창에 색깔을 적용하여 사용하면 식별이 가능해집니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; width=&quot;387&quot; height=&quot;NaN&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cjoJdK/btq0SGAzsKB/78nOskHIY9lk4b0iJxq5h1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cjoJdK/btq0SGAzsKB/78nOskHIY9lk4b0iJxq5h1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cjoJdK/btq0SGAzsKB/78nOskHIY9lk4b0iJxq5h1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcjoJdK%2Fbtq0SGAzsKB%2F78nOskHIY9lk4b0iJxq5h1%2Fimg.png&quot; width=&quot;387&quot; height=&quot;NaN&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;윈도우(W) &amp;gt; 설정에 들어갑니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;498&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/benKCv/btq0Ub08Mcz/bRMG7uzalJPopPVEUH5kw1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/benKCv/btq0Ub08Mcz/bRMG7uzalJPopPVEUH5kw1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/benKCv/btq0Ub08Mcz/bRMG7uzalJPopPVEUH5kw1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbenKCv%2Fbtq0Ub08Mcz%2FbRMG7uzalJPopPVEUH5kw1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;498&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;환경설정 &amp;gt; 연결 &amp;gt; 연결 유형에 들어갑니다.&lt;/p&gt;
&lt;p&gt;이곳에서 각각의 컬러와 name 명 들을 설정하면 됩니다.&lt;/p&gt;
&lt;p&gt;설정을 완료 하시면 다음 단계로 각각의 DataBase에 연결해주시면 됩니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;tempsnip.png&quot; data-origin-width=&quot;368&quot; data-origin-height=&quot;495&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MJIVJ/btq0Nw0imva/4eecbVByRCutEXbuaFMBb1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MJIVJ/btq0Nw0imva/4eecbVByRCutEXbuaFMBb1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MJIVJ/btq0Nw0imva/4eecbVByRCutEXbuaFMBb1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMJIVJ%2Fbtq0Nw0imva%2F4eecbVByRCutEXbuaFMBb1%2Fimg.png&quot; data-filename=&quot;tempsnip.png&quot; data-origin-width=&quot;368&quot; data-origin-height=&quot;495&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Navigator &amp;gt; 오른마우스버튼 &amp;gt; Edit Connection으로 들어가서&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;557&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nJJsO/btq0NvfYzun/Nz8g4EBRKlTQLYvYletQX1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nJJsO/btq0NvfYzun/Nz8g4EBRKlTQLYvYletQX1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nJJsO/btq0NvfYzun/Nz8g4EBRKlTQLYvYletQX1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnJJsO%2Fbtq0NvfYzun%2FNz8g4EBRKlTQLYvYletQX1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;557&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;여기서 각각에 맞는 connection Type을 설정하여 사용하시면 됩니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3. SQL 키워드 소문자 &amp;gt; 대문자로 자동변환&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;저는 무조건 대문자로 쓰는 버릇이 있어 소문자로 쓰여있으면 대문자로 다 바꿔줍니다.&lt;/p&gt;
&lt;p&gt;저같이 이러한 분들이 계시다면 이 설정을 해두시면 좋습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; width=&quot;387&quot; height=&quot;NaN&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cjoJdK/btq0SGAzsKB/78nOskHIY9lk4b0iJxq5h1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cjoJdK/btq0SGAzsKB/78nOskHIY9lk4b0iJxq5h1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cjoJdK/btq0SGAzsKB/78nOskHIY9lk4b0iJxq5h1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcjoJdK%2Fbtq0SGAzsKB%2F78nOskHIY9lk4b0iJxq5h1%2Fimg.png&quot; width=&quot;387&quot; height=&quot;NaN&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;윈도우 &amp;gt; 설정에 들어갑니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;495&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bge9Oc/btq0VprjYYF/Jeu14qkp3PfC3KgHKkLAI0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bge9Oc/btq0VprjYYF/Jeu14qkp3PfC3KgHKkLAI0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bge9Oc/btq0VprjYYF/Jeu14qkp3PfC3KgHKkLAI0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbge9Oc%2Fbtq0VprjYYF%2FJeu14qkp3PfC3KgHKkLAI0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; width=&quot;495&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;편집기 &amp;gt; SQL 포맷에 들어가서 노란색 쳐져 잇는 keyword case에서 &quot;Upper&quot;로 변경하셔서 쓰시면 대문자로 사용 가능합니다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>tool/DBeaver</category>
      <category>dbeaver</category>
      <category>DBeaver 사용법</category>
      <category>DBeaver 설정</category>
      <category>Dbeaver 환경설정</category>
      <author>코멧</author>
      <guid isPermaLink="true">https://gaebaldiary.tistory.com/22</guid>
      <comments>https://gaebaldiary.tistory.com/22#entry22comment</comments>
      <pubDate>Wed, 24 Mar 2021 11:47:50 +0900</pubDate>
    </item>
    <item>
      <title>DBeaver 설치 및 사용법(무료 tool)</title>
      <link>https://gaebaldiary.tistory.com/21</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;얼마 전 &lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;IDE를 &lt;/span&gt;Eclipse에서 IntelliJ로 DB Tool도 무료 DB Tool 중 가장 괜찮은 DBeaver로 바꾸었습니다.&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;DBeaver 다운로드&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 URL에 접속하여 설치를 진행하면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dbeaver.io/download/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;dbeaver.io/download/&lt;/a&gt;&lt;/p&gt;
&lt;!-- URL 근처 --&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 alignLeft&quot; data-origin-width=&quot;1894&quot; data-origin-height=&quot;1280&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vZlsp/btq0Ap03SN3/D911cYVJ808A08TGUwnyZ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vZlsp/btq0Ap03SN3/D911cYVJ808A08TGUwnyZ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vZlsp/btq0Ap03SN3/D911cYVJ808A08TGUwnyZ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvZlsp%2Fbtq0Ap03SN3%2FD911cYVJ808A08TGUwnyZ1%2Fimg.png&quot; data-origin-width=&quot;1894&quot; data-origin-height=&quot;1280&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위에 OS(Window, Mac) 에 맞게 설치파일을 다운로드 받은 후 설치하면 됩니다.&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;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;406&quot; data-origin-height=&quot;229&quot; width=&quot;335&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oxy72/btq0BDRYLvW/cbEW3mXuRKhFblEsmAk811/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oxy72/btq0BDRYLvW/cbEW3mXuRKhFblEsmAk811/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oxy72/btq0BDRYLvW/cbEW3mXuRKhFblEsmAk811/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Foxy72%2Fbtq0BDRYLvW%2FcbEW3mXuRKhFblEsmAk811%2Fimg.png&quot; data-origin-width=&quot;406&quot; data-origin-height=&quot;229&quot; width=&quot;335&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당되는 언어와 함께 &quot;OK&quot;를 클릭합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;723&quot; data-origin-height=&quot;450&quot; width=&quot;406&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/18uic/btq0BFba6yl/VmtfYkFORlkKg5RbVf0xN0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/18uic/btq0BFba6yl/VmtfYkFORlkKg5RbVf0xN0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/18uic/btq0BFba6yl/VmtfYkFORlkKg5RbVf0xN0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F18uic%2Fbtq0BFba6yl%2FVmtfYkFORlkKg5RbVf0xN0%2Fimg.png&quot; data-origin-width=&quot;723&quot; data-origin-height=&quot;450&quot; width=&quot;406&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&quot;다음 &amp;gt;&quot;을 클릭합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;709&quot; data-origin-height=&quot;428&quot; width=&quot;474&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdr4Ol/btq0ECZkms3/FMZAsRdHgNWvKCccAMSr9k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdr4Ol/btq0ECZkms3/FMZAsRdHgNWvKCccAMSr9k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdr4Ol/btq0ECZkms3/FMZAsRdHgNWvKCccAMSr9k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbdr4Ol%2Fbtq0ECZkms3%2FFMZAsRdHgNWvKCccAMSr9k%2Fimg.png&quot; data-origin-width=&quot;709&quot; data-origin-height=&quot;428&quot; width=&quot;474&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&quot;동의함&quot; 클릭합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;568&quot; data-origin-height=&quot;354&quot; width=&quot;479&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xSFbh/btq0Hbf45vL/hbANeE2fQEJBJivKCkb60k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xSFbh/btq0Hbf45vL/hbANeE2fQEJBJivKCkb60k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xSFbh/btq0Hbf45vL/hbANeE2fQEJBJivKCkb60k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxSFbh%2Fbtq0Hbf45vL%2FhbANeE2fQEJBJivKCkb60k%2Fimg.png&quot; data-origin-width=&quot;568&quot; data-origin-height=&quot;354&quot; width=&quot;479&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모든사람이 쓰는 컴퓨터인지 개인용인지 체크 후 &quot;다음 &amp;gt;&quot; 클릭합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;737&quot; data-origin-height=&quot;468&quot; width=&quot;483&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bDCt1v/btq0ApmzVa7/rkkk4RZFGkg0RVIlCEB7rk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bDCt1v/btq0ApmzVa7/rkkk4RZFGkg0RVIlCEB7rk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bDCt1v/btq0ApmzVa7/rkkk4RZFGkg0RVIlCEB7rk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbDCt1v%2Fbtq0ApmzVa7%2Frkkk4RZFGkg0RVIlCEB7rk%2Fimg.png&quot; data-origin-width=&quot;737&quot; data-origin-height=&quot;468&quot; width=&quot;483&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&quot;다음 &amp;gt;&quot;을 클릭합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;747&quot; data-origin-height=&quot;480&quot; width=&quot;492&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c1ShrV/btq0AH1BIe5/JxzE7vx0nSkPMoc1ccX9l0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c1ShrV/btq0AH1BIe5/JxzE7vx0nSkPMoc1ccX9l0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c1ShrV/btq0AH1BIe5/JxzE7vx0nSkPMoc1ccX9l0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc1ShrV%2Fbtq0AH1BIe5%2FJxzE7vx0nSkPMoc1ccX9l0%2Fimg.png&quot; data-origin-width=&quot;747&quot; data-origin-height=&quot;480&quot; width=&quot;492&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&quot;다음&quot; 클릭합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;tempsnip.png&quot; data-origin-width=&quot;739&quot; data-origin-height=&quot;466&quot; width=&quot;488&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bYAJKB/btq0AqsgTBb/IqPcz7OR1Uh66UTWZzNXx0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bYAJKB/btq0AqsgTBb/IqPcz7OR1Uh66UTWZzNXx0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bYAJKB/btq0AqsgTBb/IqPcz7OR1Uh66UTWZzNXx0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbYAJKB%2Fbtq0AqsgTBb%2FIqPcz7OR1Uh66UTWZzNXx0%2Fimg.png&quot; data-filename=&quot;tempsnip.png&quot; data-origin-width=&quot;739&quot; data-origin-height=&quot;466&quot; width=&quot;488&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&quot;설치&quot;를 클릭하면 설치가 됩니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;DBeaver 기본 사용법&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;DBeaver를 실행합니다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;1910&quot; data-origin-height=&quot;899&quot; width=&quot;641&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/x3yCd/btq0LPXSIVz/sXFWIp0PSg7dg7gR2yjcz0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/x3yCd/btq0LPXSIVz/sXFWIp0PSg7dg7gR2yjcz0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/x3yCd/btq0LPXSIVz/sXFWIp0PSg7dg7gR2yjcz0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fx3yCd%2Fbtq0LPXSIVz%2FsXFWIp0PSg7dg7gR2yjcz0%2Fimg.png&quot; data-origin-width=&quot;1910&quot; data-origin-height=&quot;899&quot; width=&quot;641&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;파일 &amp;gt; 새로만들기를 &quot;클릭&quot;합니다.&lt;/p&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;!-- URL 근처 --&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8720911335503994&quot; data-ad-slot=&quot;7207081532&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;623&quot; data-origin-height=&quot;528&quot; width=&quot;455&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FFRkd/btq0Hahck6M/qkubco6HlPTSBwAk9lVvO1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FFRkd/btq0Hahck6M/qkubco6HlPTSBwAk9lVvO1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FFRkd/btq0Hahck6M/qkubco6HlPTSBwAk9lVvO1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFFRkd%2Fbtq0Hahck6M%2Fqkubco6HlPTSBwAk9lVvO1%2Fimg.png&quot; data-origin-width=&quot;623&quot; data-origin-height=&quot;528&quot; width=&quot;455&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터베이스 연결 선택 후 &quot;다음&quot;을 클릭합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;626&quot; data-origin-height=&quot;695&quot; width=&quot;347&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c59Fco/btq0Hb8d2Yp/qqBkd8bb0kBWlCwKwc0ir0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c59Fco/btq0Hb8d2Yp/qqBkd8bb0kBWlCwKwc0ir0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c59Fco/btq0Hb8d2Yp/qqBkd8bb0kBWlCwKwc0ir0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc59Fco%2Fbtq0Hb8d2Yp%2FqqBkd8bb0kBWlCwKwc0ir0%2Fimg.png&quot; data-origin-width=&quot;626&quot; data-origin-height=&quot;695&quot; width=&quot;347&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당하는 db를 선택합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;644&quot; data-origin-height=&quot;690&quot; width=&quot;457&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/I1PwX/btq0EDcRr13/gy14ALU8f4s8CI9xjKh5wk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/I1PwX/btq0EDcRr13/gy14ALU8f4s8CI9xjKh5wk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/I1PwX/btq0EDcRr13/gy14ALU8f4s8CI9xjKh5wk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FI1PwX%2Fbtq0EDcRr13%2Fgy14ALU8f4s8CI9xjKh5wk%2Fimg.png&quot; data-origin-width=&quot;644&quot; data-origin-height=&quot;690&quot; width=&quot;457&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각 해당하는 host/port/service name 등 각 정보를 입력한 후 &quot;완료&quot; 버튼을 클릭하면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;맺음말&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개발하시는 분들은 아시다시피 기존에 익숙했던 Tool을 바꾸는것은 무척 짜증나는 일입니다. 단축키도 다르고요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 편안하고 괜찮은 Tool이 있다면 지속적으로 개발자들은 바꿔야겠죠? 신기술이 나오면 계속 배워야 하는 것처럼 말이죠. 저도 앞으로 신기술이 나오거나 괜찮은 Tool이 나오면 지속적으로 바꾸고 익숙해지도록 노력할겁니다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;수고하세요!&lt;/p&gt;</description>
      <category>tool/DBeaver</category>
      <category>dbeaver</category>
      <category>DBeaver 사용법</category>
      <category>DBeaver 설치</category>
      <author>코멧</author>
      <guid isPermaLink="true">https://gaebaldiary.tistory.com/21</guid>
      <comments>https://gaebaldiary.tistory.com/21#entry21comment</comments>
      <pubDate>Mon, 22 Mar 2021 11:53:17 +0900</pubDate>
    </item>
    <item>
      <title>IntelliJ IDEA 쓰는 이유는 무엇 일까요??</title>
      <link>https://gaebaldiary.tistory.com/20</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;개발자들 중에서 제일 많이 쓰는 IDE는 무엇일까요?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최근에는 Eclipse, VsCode, &lt;b&gt;IntelliJ&amp;nbsp;IDEA&lt;/b&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;저는 최근 이클립스를 6년 넘게 쓰다가 &lt;b&gt;IntelliJ&amp;nbsp;IDEA&lt;/b&gt;로 바꾼 지 1년이 됐습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처음에는 익숙했던 단축키를 잘 못 누르는 것부터 사용법을 잘 모르고 개발 시간이 오래 걸려 &quot;아 다시 Eclipse로 넘어갈까?&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;b&gt;Eclipse&lt;/b&gt;에 비해 &lt;b&gt;IntelliJ&amp;nbsp;IDEA&lt;/b&gt; 만의 장점들을 인지하고 바꾸었기 때문에 익숙해지면 훨씬 나은 IDE에서 개발할 수 있겠다는 생각이 들어 꾸준히 사용한 결과, 이제는 &lt;b&gt;Eclipse&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;b&gt;Eclipse&lt;/b&gt;를 안 쓰고 &lt;b&gt;IntelliJ&amp;nbsp;IDEA&lt;/b&gt;를 쓰는 이유를 써 내려가겠습니다.&lt;/p&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;!-- URL 근처 --&gt;
&lt;p&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8720911335503994&quot; data-ad-slot=&quot;7207081532&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;&lt;/p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&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;b&gt;Eclipse 보다 좋은 이유?&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp;1) 자동 Indexcing 처리&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - 처음 IntelliJ를 체험판으로 접할 때 드는 생각은 &quot;아 이거 왜 이렇게 빨라?&quot;였습니다. Eclipse는 프로젝트가 무거워질수록 느려지며&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 개발을 하면서 project clean을 해야지만 해결이 되는 다양한 코딩 에러가 아닌 IDE만의 에러가 발생하는 경우가 많습니다. 하지만&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; IntelliJ는 모든 것이 Indexcing가 되어 있어 빠르게 처리가 가능하여 이러한 에러가 잘 발생하지가 않습니다. 또 한 스마트한 자동완&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;성 기능과 그것을 컨트롤할 수 있는 기능들이 있어, 나만의 intellij를 만들어 사용이 가능합니다.&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;&amp;nbsp; &amp;nbsp;2) 개발의 질을 높여질 수 있는 Plug in을 간편하게 설치하여 사용 가능&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; - 간단하게 내부에서 plug in을 설치하는 것으로 개발의 질을 높일 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;그 종류에는 Grep console, Key promoter X, Lombok, Rainbow Brackets 등이 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2021-03-21 오후 3.01.24.png&quot; data-origin-width=&quot;1078&quot; data-origin-height=&quot;958&quot; width=&quot;606&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wnpQe/btq0AGOL0Uv/yIVqrc5Sfxkht7FfPKGM8K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wnpQe/btq0AGOL0Uv/yIVqrc5Sfxkht7FfPKGM8K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wnpQe/btq0AGOL0Uv/yIVqrc5Sfxkht7FfPKGM8K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwnpQe%2Fbtq0AGOL0Uv%2FyIVqrc5Sfxkht7FfPKGM8K%2Fimg.png&quot; data-filename=&quot;스크린샷 2021-03-21 오후 3.01.24.png&quot; data-origin-width=&quot;1078&quot; data-origin-height=&quot;958&quot; width=&quot;606&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;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;&amp;nbsp; &amp;nbsp; 3) 검색이 빠르고 편하다&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;- ctrl + f(문자 검색) , ctrl + n(파일 검색) 등으로 빠르게 검색이 가능합니다. Eclipse를 사용하시는 모든 분들은 검색을 하실 때&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ctrl + h를 누르고 검색을 누른 후 검색 대기를 지켜보신 분들이 많으실 겁니다. 하지만 &lt;b&gt;Intelli J의&lt;/b&gt; 경우 모든 것들이 Indexcing 처리&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;위와 같은 이유들 외에도 추가적으로 Intelli J가 더 좋은 이유들이 있겠지만 그러한 이유들은 앞으로 지속적으로 개발하거나 지식을 얻게 되면 추가적으로 덧 붙여서 글을 수정하도록 하겠습니다. 저는 현재 개발을 하면서 &lt;b&gt;IntelliJ IDEA&lt;/b&gt;에 대해 큰 만족감을 느끼며 개발을 하고 있습니다. 또 한 &lt;b&gt;Eclipse를&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;이러한 이유들로 앞으로 IDE를 고민하는 모든 분들 중 &lt;b&gt;Eclipse vs IntelliJ&lt;/b&gt; 중에 고민을 하신다면 저는 무조건&lt;b&gt; IntelliJ IDEA를&lt;/b&gt; 추천하겠습니다.&lt;/p&gt;</description>
      <category>tool/인텔리J(Intellij J)</category>
      <category>eclipse</category>
      <category>IDE 추천</category>
      <category>idea</category>
      <category>Intellij</category>
      <category>intellij idea</category>
      <category>IntelliJ 장점</category>
      <author>코멧</author>
      <guid isPermaLink="true">https://gaebaldiary.tistory.com/20</guid>
      <comments>https://gaebaldiary.tistory.com/20#entry20comment</comments>
      <pubDate>Sun, 21 Mar 2021 15:23:12 +0900</pubDate>
    </item>
    <item>
      <title>SVN(subversion) 이란?</title>
      <link>https://gaebaldiary.tistory.com/19</link>
      <description>&lt;p&gt;형상관리의 대중적으로 대표적인 Tool 중 하나인 SVN에 대해서 공부해보려고 합니다.&lt;/p&gt;
&lt;p&gt;형상관리는 간단히 얘기해서 &quot;소스의 변화/history들을 관리&quot;라고 생각하면 됩니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;형상관리의 대표 적인 툴 중 하나인 SVN은&lt;/p&gt;
&lt;p&gt;여러 명이서 프로젝트의 버전 관리 및 각자 만든 소스의 통합과 같은 문제를 해결하기 위해 사용합니다. 즉 저장소(Repository)를 만들어 그곳에 소스를 저장해 소스 중복이나 여러 문제를 해결하기 위한 형상관리 Tool입니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;그럼 SVN에서 사용하는 대표적인 용어들을 찾아서 정리해보았습니다.&lt;/p&gt;
&lt;script async src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;!-- URL 근처 --&gt;
&lt;ins class=&quot;adsbygoogle&quot;
     style=&quot;display:block&quot;
     data-ad-client=&quot;ca-pub-8720911335503994&quot;
     data-ad-slot=&quot;7207081532&quot;
     data-ad-format=&quot;auto&quot;
     data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;1. Repository(저장소)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Repository는 단순하게 얘기하자면 집이라고 생각하면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모든 프로젝트 파일 및 변경정보가 저장되는 장소입니다. 한 프로젝트마다 하나의 집(Repository)이 필요하며, 네트워크(SVN 주소 공유)를 통해 Repository에 접근하여 commit, update, delete , branch 추가 등 다양한 기능들을 사용합니다.&lt;/p&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;b&gt;2. Trunk&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Repository에서 가장 중추가 되는 소스의 저장소라고 생각하면 됩니다. 가장 중심이 되는 Directory로 개발 소스를 commit 하거나 할 때 주로 이 부분에 commit 해서 사용합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;3. Branch&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Trunk가 중추가 되는 소스의 저장소라면 Branch는 프로젝트의 가지라고 생각하면 되며, 각각의 프로젝트 안에 프로젝트로 소스 관리를 하는 저장소입니다. Branch에서 소스 작업을 하고 후에 Trunk와 소스를 Merge 하여 사용합니다.&lt;/p&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;b&gt;4. Check out&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저장소(Repository)에 있는 파일들을 내 local 저장소에 다운로드하는 것입니다.&lt;/p&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;b&gt;5. Commit&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Local 저장소의 변경된 내용을 Repository에 전송 / Check out 한 파일의 수정사항을 갱신&lt;/p&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;b&gt;6. Update&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Local 저장소에 있는 파일들을 Repository에 최신 버전으로 Update&lt;/p&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;b&gt;7. Revert&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Local 저장소의 내용을 이전 상태로 돌림.&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;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>형상관리/SVN</category>
      <category>Branch</category>
      <category>check out</category>
      <category>COMMIT</category>
      <category>Repository</category>
      <category>revert</category>
      <category>subversion</category>
      <category>svn</category>
      <category>trunk</category>
      <category>Update</category>
      <author>코멧</author>
      <guid isPermaLink="true">https://gaebaldiary.tistory.com/19</guid>
      <comments>https://gaebaldiary.tistory.com/19#entry19comment</comments>
      <pubDate>Mon, 15 Mar 2021 12:29:42 +0900</pubDate>
    </item>
    <item>
      <title>Build 란?</title>
      <link>https://gaebaldiary.tistory.com/18</link>
      <description>&lt;p&gt;&lt;b&gt;&quot;Build&quot;&lt;/b&gt; 개발하면서 정말 많이 듣는 말이지만 개념을 모르고 가는 경우가 많습니다.&lt;/p&gt;
&lt;p&gt;저 또한 마찬가지로 개념을 정확히 모르다가 개발을 많이 해보다가 익히게 된 개념입니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;우선 Build에 대해서 간략하게 얘기하자면 2가지 개념으로 회사/개인마다 다르게 쓰이고 있습니다.&lt;/p&gt;
&lt;script async src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;!-- URL 근처 --&gt;
&lt;ins class=&quot;adsbygoogle&quot;
     style=&quot;display:block&quot;
     data-ad-client=&quot;ca-pub-8720911335503994&quot;
     data-ad-slot=&quot;7207081532&quot;
     data-ad-format=&quot;auto&quot;
     data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;첫번째 Build 개념&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;소스코드 자체를 컴퓨터에서 실행할 수 있게끔 만드는 과정입니다.&lt;/p&gt;
&lt;p&gt;그 과정에는 Compile testing inspection deploy 등 다양한 과정이 포함이 됩니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;좀 더 자세하게 얘기하자면 소프트웨어가 응집력 있는 하나의 단위로써 작동하는 확인하는 과정이라 할 수 있습니다.&lt;/p&gt;
&lt;p&gt;소프트웨어를 생성하고 테스트하고 검사하여 배포하기 위한 행위의 집합어 입니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;두번째 Build 개념&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;첫번재 개념에서는 Compile &amp;gt; Deploy 개념을 통합적으로&amp;nbsp; Build라고 하지만,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;두번째 개념은 Compile &amp;gt; Build &amp;gt; Deploy 의 통합이 아닌 부분의 단계로 생각합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;즉, &lt;span style=&quot;color: #333333;&quot;&gt;컴파일 된 코드를 실제 실행할 수 있는 상태로 만드는 일을 Build 라는 개념으로 생각하시면 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;예를들어, JAVA 웹 코딩으로 말씀드리면&lt;/p&gt;
&lt;p&gt;코드를 짜고나서 Run 코드 실행 ( 컴파일 + 실행) .java &amp;gt; .class 파일로 변환&lt;/p&gt;
&lt;p&gt;war 파일로 뽑아서(Build) 서버에 Deploy&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;라고 생각하시면 됩니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>IT/기본용어</category>
      <category>build</category>
      <category>deploy</category>
      <category>네트워크</category>
      <category>배포</category>
      <category>빌드</category>
      <category>빌드란</category>
      <category>자바코딩</category>
      <author>코멧</author>
      <guid isPermaLink="true">https://gaebaldiary.tistory.com/18</guid>
      <comments>https://gaebaldiary.tistory.com/18#entry18comment</comments>
      <pubDate>Fri, 12 Mar 2021 12:57:16 +0900</pubDate>
    </item>
    <item>
      <title>이클립스(Eclipse) vs 인텔리J(IntelliJ) 단축키</title>
      <link>https://gaebaldiary.tistory.com/17</link>
      <description>&lt;p&gt;얼마 전 이클립스에서 인텔리 J로 옮기면서 단축키를 애를 먹었습니다.&lt;/p&gt;
&lt;p&gt;그러면서 익힌 이클립스와 인텔리 J 단축키를 정리해보았습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;* 아래 표에 대문자 알파벳은 소문자로도 가능합니다.&lt;/p&gt;
&lt;p&gt;사용하면서 알 수 있는 단축키들도 계속해서 수정하겠습니다&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style15&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 25%;&quot;&gt;설명&lt;/td&gt;
&lt;td style=&quot;width: 37.5%;&quot;&gt;이클립스(Eclipse)&lt;/td&gt;
&lt;td style=&quot;width: 37.5%;&quot;&gt;인텔리J(IntelliJ)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 25%;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;특정 line 옮기기&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 37.5%;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;alt + &amp;uarr;, alt + &amp;darr;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 37.5%;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;ctrl + alt + &amp;uarr;, ctrl + alt + &amp;darr;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 25%;&quot;&gt;메소드 단위로 커서 이동&lt;/td&gt;
&lt;td style=&quot;width: 37.5%;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 37.5%;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;alt + &amp;uarr;, alt + &amp;darr;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 25%;&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;특정 line 번호로&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;이동&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 37.5%;&quot;&gt;ctrl + L&lt;/td&gt;
&lt;td style=&quot;width: 37.5%;&quot;&gt;ctrl + G&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 25%;&quot;&gt;rename&lt;/td&gt;
&lt;td style=&quot;width: 37.5%;&quot;&gt;F2&lt;/td&gt;
&lt;td style=&quot;width: 37.5%;&quot;&gt;shift+F6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 25%;&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;특정 line&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;복제&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 37.5%;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;ctrl + alt + &amp;uarr;, &lt;span style=&quot;color: #333333;&quot;&gt;ctrl + &lt;/span&gt;alt + &amp;darr;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 37.5%;&quot;&gt;ctrl + D&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 25%;&quot;&gt;특정 line 삭제&lt;/td&gt;
&lt;td style=&quot;width: 37.5%;&quot;&gt;ctrl + D&lt;/td&gt;
&lt;td style=&quot;width: 37.5%;&quot;&gt;ctrl + Y&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 25%;&quot;&gt;import 정비&lt;/td&gt;
&lt;td style=&quot;width: 37.5%;&quot;&gt;ctrl + shift + O&lt;/td&gt;
&lt;td style=&quot;width: 37.5%;&quot;&gt;ctrl + alt + O&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 25%;&quot;&gt;call depth 보기&lt;/td&gt;
&lt;td style=&quot;width: 37.5%;&quot;&gt;ctrl + alt + H&lt;/td&gt;
&lt;td style=&quot;width: 37.5%;&quot;&gt;ctrl + alt + H&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 25%;&quot;&gt;창닫기&lt;/td&gt;
&lt;td style=&quot;width: 37.5%;&quot;&gt;ctrl + W&lt;/td&gt;
&lt;td style=&quot;width: 37.5%;&quot;&gt;ctrl + F4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 25%;&quot;&gt;창 크게하기&lt;/td&gt;
&lt;td style=&quot;width: 37.5%;&quot;&gt;ctrl + M&lt;/td&gt;
&lt;td style=&quot;width: 37.5%;&quot;&gt;ctrl + shift + F12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 25%;&quot;&gt;재실행(redo)&lt;/td&gt;
&lt;td style=&quot;width: 37.5%;&quot;&gt;ctrl + Y&lt;/td&gt;
&lt;td style=&quot;width: 37.5%;&quot;&gt;ctrl + shift + z&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 25%;&quot;&gt;Method into&lt;/td&gt;
&lt;td style=&quot;width: 37.5%;&quot;&gt;F3&lt;/td&gt;
&lt;td style=&quot;width: 37.5%;&quot;&gt;F4 or ctrl + B&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 25%;&quot;&gt;호출하는 곳 보기&lt;/td&gt;
&lt;td style=&quot;width: 37.5%;&quot;&gt;ctrl + alt + G&lt;/td&gt;
&lt;td style=&quot;width: 37.5%;&quot;&gt;ctrl + alt + F7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 25%;&quot;&gt;Find 한 것 Next&lt;/td&gt;
&lt;td style=&quot;width: 37.5%;&quot;&gt;ctrl + K&lt;/td&gt;
&lt;td style=&quot;width: 37.5%;&quot;&gt;F3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 25%;&quot;&gt;Run&lt;/td&gt;
&lt;td style=&quot;width: 37.5%;&quot;&gt;ctrl + F11&lt;/td&gt;
&lt;td style=&quot;width: 37.5%;&quot;&gt;shift + F10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 25%;&quot;&gt;[Debug]Run&lt;/td&gt;
&lt;td style=&quot;width: 37.5%;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 37.5%;&quot;&gt;shift + F9&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>tool/인텔리J(Intellij J)</category>
      <category>eclipse</category>
      <category>Eclipse 단축키</category>
      <category>Intellij</category>
      <category>단축키</category>
      <category>이클립스</category>
      <category>이클립스 단축키</category>
      <category>인텔리J</category>
      <category>인텔리j단축키</category>
      <author>코멧</author>
      <guid isPermaLink="true">https://gaebaldiary.tistory.com/17</guid>
      <comments>https://gaebaldiary.tistory.com/17#entry17comment</comments>
      <pubDate>Thu, 11 Mar 2021 12:44:54 +0900</pubDate>
    </item>
    <item>
      <title>Yum 이란?</title>
      <link>https://gaebaldiary.tistory.com/16</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;리눅스에서 가장 보는 명령어 중 &quot;Yum&quot; 입니다.&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;size18&quot;&gt;&lt;b&gt;Yum(Yellodog Update Modified) 이란?&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;리눅스에서 사용하는 인스톨(Install) 파일이라고 생각하면 될 것 같습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;구체적으로 말씀드리면, 레드햇 계열의 리눅스 배포판에서 사용하는 (패키지) 설치 관리 도구입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기존에 rpm 명령어가 해결하지 못한 패키지 의존성 문제를 해결한 똑똑한 패키지 관리 tool 입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Yum 명령어를 통해 설치,업데이트, 삭제를 진행할 수 있습니다.&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;size18&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;B라는 패키지를 사용하기 위해서는 A 패키지 설치가 선행되어야 한다라는 것입니다. 즉 A라는 패키지 설치 없이는 B패키지를 사용할 수 없다는 의미입니다.&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;그렇다면 여기서, 패키지 의존성을 Yum은 어떻게 해결한 것인가에 대해 의문점이 있을 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Yum은 자동으로 필요한 패키지까지 설치해 줌으로써 패키지 의존성문제를 해결했습니다. 필요한 패키치를 Yum 명령어 하나만 치면 알아서 서버로부터 다운받고 설치까지 합니다.&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;간단한 yum 명령어는 아래와 같습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;222&quot; data-origin-height=&quot;29&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b4Qa8h/btqZMn3UdjV/4vMwn7QbEoPoQmSuF0jaD1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b4Qa8h/btqZMn3UdjV/4vMwn7QbEoPoQmSuF0jaD1/img.png&quot; data-alt=&quot;Yum 명령어 사용&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b4Qa8h/btqZMn3UdjV/4vMwn7QbEoPoQmSuF0jaD1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb4Qa8h%2FbtqZMn3UdjV%2F4vMwn7QbEoPoQmSuF0jaD1%2Fimg.png&quot; data-origin-width=&quot;222&quot; data-origin-height=&quot;29&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Yum 명령어 사용&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;178&quot; data-origin-height=&quot;37&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bqH8UO/btqZKACGzhk/XEn0jGCG7GbQxGDm63oEa0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bqH8UO/btqZKACGzhk/XEn0jGCG7GbQxGDm63oEa0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bqH8UO/btqZKACGzhk/XEn0jGCG7GbQxGDm63oEa0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbqH8UO%2FbtqZKACGzhk%2FXEn0jGCG7GbQxGDm63oEa0%2Fimg.png&quot; data-origin-width=&quot;178&quot; data-origin-height=&quot;37&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>네트워크/기본용어</category>
      <category>rpm</category>
      <category>yum</category>
      <category>yum 설치</category>
      <category>리눅스</category>
      <category>패키지의존성</category>
      <author>코멧</author>
      <guid isPermaLink="true">https://gaebaldiary.tistory.com/16</guid>
      <comments>https://gaebaldiary.tistory.com/16#entry16comment</comments>
      <pubDate>Thu, 11 Mar 2021 09:51:56 +0900</pubDate>
    </item>
    <item>
      <title>온프레미스(On-premise) 란?</title>
      <link>https://gaebaldiary.tistory.com/14</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;온프레미스(On-premise)란?&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;소프트웨어 등 솔루션을 오프라인 전산실 서버에 직접 설치해 운영하는 방식을 말합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;온프레미스(On-premise)는 클라우드 컴퓨팅 기술이 나오기 전까지 기업 인프라 구축의 일반적인 방식이었기 때문에 이전 또는 전통적인 이라는 단어와 함께 사용됩니다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;온프레미스 시스템을 구축하는데도 많은 시간이 걸렸고 부지비용, 설치비용, 운영비용 등 비용측면에서 현재 클라우딩 시스템과 비교하면 너무 비효율적이었습니다. 그리하여 클라우드가 &lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;온프레미스 환경이 금방이라도 모두 사라질 것 같았습니다. 하지만 보안 적인 이유로 비즈니스에 중요하고 보안이 필요한 서비스와 데이터는 온프레미스 환경에서, 덜 중요한 것은 퍼블릭 클라우드 환경을 사용하는 하이브리드 IT 인프라가 대세를 이루고 있습니다.&lt;/span&gt;&lt;/p&gt;</description>
      <category>IT/기본용어</category>
      <author>코멧</author>
      <guid isPermaLink="true">https://gaebaldiary.tistory.com/14</guid>
      <comments>https://gaebaldiary.tistory.com/14#entry14comment</comments>
      <pubDate>Tue, 25 Aug 2020 16:08:38 +0900</pubDate>
    </item>
    <item>
      <title>[자바] FTP 서버로 파일 업로드(File Upload) 예제</title>
      <link>https://gaebaldiary.tistory.com/12</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;자바로 FTP 파일 전송(File Upload)&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;FTP tool(파일질라 등)로 우리들은 많은 파일들을 업로드를 해보았을 것 입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 저는 FTP를 통해 업로드를 많이 했지만 실제로 자바로 구현해본적은 많지 않았기에 공부를 위해 한 번 해보기로 결심했습니다.&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;저는 NAS장비가 있어 연결했고, 다른분들은 다른 것으로 연결하셔도 됩니다.&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;b&gt;Commons Net API&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Apache 에서 제공하는 API로 다양한 프로토콜에 대한 지원을 할 수 있는 구조를 갖고 있습니다.&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: #000000;&quot;&gt;FTP 업로드 코드에서 핵심이 되는 클래스는 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;org.apache.commons.net.ftp.FTPClient &lt;/b&gt;입니다&lt;b&gt;.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;FTP 프로토콜 처리를 &lt;/span&gt;&lt;span style=&quot;color: #000000;&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;&lt;span style=&quot;color: #000000;&quot;&gt;아래부터는 파일 업로드 예제로 코딩을 시작하도록 하겠습니다.&lt;/span&gt;&lt;/p&gt;
&lt;!-- URL 근처 --&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;코딩 시작&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;1. POM.XML 추가&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;400&quot; data-origin-height=&quot;130&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/blZGFO/btqHhQIRg1c/ZQ7BHbZCUpD7LNMi3HrWp0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/blZGFO/btqHhQIRg1c/ZQ7BHbZCUpD7LNMi3HrWp0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/blZGFO/btqHhQIRg1c/ZQ7BHbZCUpD7LNMi3HrWp0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FblZGFO%2FbtqHhQIRg1c%2FZQ7BHbZCUpD7LNMi3HrWp0%2Fimg.png&quot; data-origin-width=&quot;400&quot; data-origin-height=&quot;130&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;2. FTP import&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;515&quot; data-origin-height=&quot;84&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbeya8/btqG78jVOYe/3WRTbzEoXKFHa9Cadm5xs0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbeya8/btqG78jVOYe/3WRTbzEoXKFHa9Cadm5xs0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbeya8/btqG78jVOYe/3WRTbzEoXKFHa9Cadm5xs0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbbeya8%2FbtqG78jVOYe%2F3WRTbzEoXKFHa9Cadm5xs0%2Fimg.png&quot; data-origin-width=&quot;515&quot; data-origin-height=&quot;84&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;3. FTPclient를 생성&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;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;* ftp Client common-net api로 생성&lt;/span&gt;&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;250&quot; data-origin-height=&quot;68&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bnK1IN/btqG9Atv2Dv/f0d9FMQg6gtoZKH8jclfFK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bnK1IN/btqG9Atv2Dv/f0d9FMQg6gtoZKH8jclfFK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bnK1IN/btqG9Atv2Dv/f0d9FMQg6gtoZKH8jclfFK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbnK1IN%2FbtqG9Atv2Dv%2Ff0d9FMQg6gtoZKH8jclfFK%2Fimg.png&quot; data-origin-width=&quot;250&quot; data-origin-height=&quot;68&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;4. 호스트 연결 &amp;amp; 응답코드 체크&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;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp; * ftp.connect로 연결 후 응답코드 체크&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;876&quot; data-origin-height=&quot;190&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/RE3A6/btqHelimFK2/Cvdmof5KnDOGMIoERDWEn0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/RE3A6/btqHelimFK2/Cvdmof5KnDOGMIoERDWEn0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/RE3A6/btqHelimFK2/Cvdmof5KnDOGMIoERDWEn0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRE3A6%2FbtqHelimFK2%2FCvdmof5KnDOGMIoERDWEn0%2Fimg.png&quot; data-origin-width=&quot;876&quot; data-origin-height=&quot;190&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;&lt;b&gt;5. 서버 응답코드 정상인지 확인&lt;/b&gt;&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;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp; * FTPReply.isPositiveCompletion을 통해 응답코드로 정상인지 확인&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp; * 정상이 아니면 disConnect&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;575&quot; data-origin-height=&quot;83&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cjTWXi/btqHetASDYo/UVg08vptAiSSwKIRblYfF0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cjTWXi/btqHetASDYo/UVg08vptAiSSwKIRblYfF0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cjTWXi/btqHetASDYo/UVg08vptAiSSwKIRblYfF0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcjTWXi%2FbtqHetASDYo%2FUVg08vptAiSSwKIRblYfF0%2Fimg.png&quot; data-origin-width=&quot;575&quot; data-origin-height=&quot;83&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;!-- URL 근처 --&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;&amp;nbsp;6. showServerReply 함수 생성&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;598&quot; data-origin-height=&quot;174&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/n49Ju/btqHhQaYA8s/C1lmpYjAOKEGfcjWr2TWM0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/n49Ju/btqHhQaYA8s/C1lmpYjAOKEGfcjWr2TWM0/img.png&quot; data-alt=&quot;server응답 확인 하는 함수&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/n49Ju/btqHhQaYA8s/C1lmpYjAOKEGfcjWr2TWM0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fn49Ju%2FbtqHhQaYA8s%2FC1lmpYjAOKEGfcjWr2TWM0%2Fimg.png&quot; data-origin-width=&quot;598&quot; data-origin-height=&quot;174&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;server응답 확인 하는 함수&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;7. 로그인 후 폴더 생성 및 작업디렉터리 변경&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;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp; * 폴더 생성을 위해서 date로 현재 날짜와 시간을 날짜를 받음.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp; * ftp.login(유저아이디, 비번) 으로 로그인&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp; * showServerReply 함수로 서버 응답 로그 확인&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp; * ftp.changeWorkingDirectory로 작업디렉터리로 변경&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;734&quot; data-origin-height=&quot;463&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lGd0Y/btqHjroukEp/FSdbCsVCcvZ4qdbKmTVbIK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lGd0Y/btqHjroukEp/FSdbCsVCcvZ4qdbKmTVbIK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lGd0Y/btqHjroukEp/FSdbCsVCcvZ4qdbKmTVbIK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlGd0Y%2FbtqHjroukEp%2FFSdbCsVCcvZ4qdbKmTVbIK%2Fimg.png&quot; data-origin-width=&quot;734&quot; data-origin-height=&quot;463&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;7. 파일 저장&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;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp;&lt;b&gt; * Active Mode -&amp;gt; PassvieMode로 변경&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;FTP의 active Mode, Passive Mode &lt;br /&gt;&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; Active Mode : Server가 client의 해당 포트 접속해 데이터를 보내줌. &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Passive Mode : Server에서 클라이언트에 port 전달 , 그 Port로 server는 보내줌.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 방화벽, 네트워크 구조 신경쓸 필요 없음.&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp; &amp;nbsp; 이러한 이유로 방화벽 및 네트워크 구조에 신경 안쓰기 위해 Passive Mode로 변경&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp; * FTP.setFileType FTP.BINARY_FILE_TYPE으로 변경&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp; * storeFile 함수로 파일 저장&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;nbsp; * 업로드 성공 로그 남기기&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;677&quot; data-origin-height=&quot;313&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bhHS7S/btqHemuMpYE/S7YtyvGgCKIDtbZzKKRKg1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhHS7S/btqHemuMpYE/S7YtyvGgCKIDtbZzKKRKg1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhHS7S/btqHemuMpYE/S7YtyvGgCKIDtbZzKKRKg1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbhHS7S%2FbtqHemuMpYE%2FS7YtyvGgCKIDtbZzKKRKg1%2Fimg.png&quot; data-origin-width=&quot;677&quot; data-origin-height=&quot;313&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;전체코드&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;904&quot; data-origin-height=&quot;893&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vd8Mu/btqG7TmxJ82/5Hx9ktB43jCIfLQ2LUv4pk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vd8Mu/btqG7TmxJ82/5Hx9ktB43jCIfLQ2LUv4pk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vd8Mu/btqG7TmxJ82/5Hx9ktB43jCIfLQ2LUv4pk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fvd8Mu%2FbtqG7TmxJ82%2F5Hx9ktB43jCIfLQ2LUv4pk%2Fimg.png&quot; data-origin-width=&quot;904&quot; data-origin-height=&quot;893&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;결론&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;apache 에서 제공하는 commons-net FTPClient 클래스를 통해 FTP를 구현해봤습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;commons-net&lt;/span&gt; API는 FTP 이외에도 SMTP, Telnet 등 다양한 프로토콜을 처리를 할 수 있다고 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 API를 사용해서 다양한 기능 등을 빠르게 개발할 수 있을 것 입니다.&lt;/p&gt;</description>
      <category>java/자바코딩</category>
      <category>fileUpload</category>
      <category>FTP</category>
      <category>FTP파일업로드</category>
      <category>upload</category>
      <category>파일업로드</category>
      <category>파일업로드예제</category>
      <author>코멧</author>
      <guid isPermaLink="true">https://gaebaldiary.tistory.com/12</guid>
      <comments>https://gaebaldiary.tistory.com/12#entry12comment</comments>
      <pubDate>Tue, 25 Aug 2020 15:23:27 +0900</pubDate>
    </item>
    <item>
      <title>IP에 대한 모든 것(IPv4, 유동Ip, 고정Ip, 공인Ip..)</title>
      <link>https://gaebaldiary.tistory.com/10</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;IP(Internet&amp;nbsp;Protocol)&amp;nbsp;란?&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;사전적으로 인터넷 상에서 독립적으로 운영되고 있는 통신망들을 서로 연결하는 규칙입니다.&lt;br /&gt;&lt;br /&gt;IP는 인터넷과 연결할 때의 고유 ID라고 생각하면 됩니다. &lt;br /&gt;&lt;br /&gt;생활 예시로는 우리를 고유하게 나타내는 주민등록번호라고 생각할 수 있습니다. &lt;br /&gt;동일한&amp;nbsp;주민등록번호가&amp;nbsp;존재한다면&amp;nbsp;우리나라에는&amp;nbsp;많은&amp;nbsp;혼란이&amp;nbsp;야기될&amp;nbsp;것&amp;nbsp;입니다. &lt;br /&gt;&lt;br /&gt;이러한&amp;nbsp;현상을&amp;nbsp;방지하기&amp;nbsp;위해서&amp;nbsp;웹&amp;nbsp;에서는&amp;nbsp;유니크한&amp;nbsp;IP를&amp;nbsp;만들어&amp;nbsp;혼란을&amp;nbsp;방지하고&amp;nbsp;있습니다. &lt;br /&gt;&lt;br /&gt;IP는 전 세계적으로 동일하게 컴퓨터 마다 IP주소를 부여 받아 사용합니다. &lt;br /&gt;각 나라마다 나라의 공인기관에서 IP를 할당하고 관리합니다. &lt;br /&gt;&lt;br /&gt;한국은 한국인터넷진흥원에서 할당 관리를 하며&lt;br /&gt;이를 통신사가 받아 모뎀을 통해 PC에 IP를 할당해 줍니다.&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;h2 data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;IPv4&amp;nbsp;vs&amp;nbsp;IPv6?&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;* IPv4&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;IPv4는 32비트의 값을 가지며, 각 숫자는 8비트씩 0~255의 10진수 숫자로 나타냅니다.&lt;br /&gt;총 32비트의 정보를 가지고 약 40억개의 고유한 주소를 부여됩니다.&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;예) 211.111.111.111&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;하지만 &lt;span style=&quot;color: #333333;&quot;&gt;(IETF:Internet Engineering Task Force)에서 &lt;/span&gt;2008 ~ 2011년 IP의 숫자가 부족하게 될거라는 예측이 나오면서 새로운 기술의 대한 요구가 나왔습니다. 이 후 IPv6가 나오게 되었습니다.&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;span style=&quot;color: #f89009;&quot;&gt;* IPv6&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;IPv6는 128비트 의 값을 가지며, 각 숫자는 16비트씩 8부분으로 나누어 16진수 숫자로 나타냅니다.&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&gt;예&lt;/span&gt;&lt;span&gt;) 2005:230:aaaa:bbbb:1111:1111:cccc:1111&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&gt;최대&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;조개 이상&lt;/span&gt;&lt;span&gt;(2^128)&lt;/span&gt;&lt;span&gt;을 마련할 수 있는 점이 특징입니다&lt;/span&gt;&lt;span&gt;. IPv6&lt;/span&gt;&lt;span&gt;가 쓰이게 되면 많은 IP를 확보하게 되면서 &lt;/span&gt;&lt;span&gt;전자제품의 일부 회로가 서로 다른&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;IP&lt;/span&gt;&lt;span&gt;주소를 갖게 되며 무궁무진한 발전을 할 수 있게 될수 있는 발판을 마련해줬습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;또한 서비스에 따라 각기 다른 대역폭을 확보할 수 있도록 지원&lt;/span&gt;&lt;span&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;일정한 수준의 서비스 품질&lt;/span&gt;&lt;span&gt;(QoS)&lt;/span&gt;&lt;span&gt;을 요구하는 실시간 서비스를 더욱 쉽게 제공할 수 있고 인증&lt;/span&gt;&lt;span&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;데이터 무결성&lt;/span&gt;&lt;span&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;데이터 기밀성을 지원하도록 보안기능을 강화한 것이 IPv6입니다.&lt;/span&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;b&gt;&lt;span&gt;고정 IP vs 유동 IP&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;* 유동 IP&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;말 그대로 유동적인 IP라고 할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;통신업체에서는 하루에도 많은 고객들이 해지하고 가입을 합니다. 그럴때마다 IP를 다시 분배하고 해지하는 것을 반복하는 낭비비용은 엄청 클 것 입니다. 이러한 낭비를 방지하기 위해 나타낸 유동IP는 IP주소 관리 방법이라고도 할 수 있습니다.&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;고객에게 분배해주는 IP를 고정IP로 주는 것이 아니라, 일정한 주기 또는 새로운 접속시마다 새로운 IP 즉 유동IP로 주는 것입니다.&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;span style=&quot;color: #f89009;&quot;&gt;* 고정 IP&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;고정 IP방식은 서버를 운영 목적으로 사용시에는 IP를 고정해야할 경우가 생기기 때문에 그럴 시에 사용하는 방법입니다.&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;b&gt;공인 IP vs 사설 IP&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;* 공인 IP&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;전 세계에서 유일한 IP인 공인 IP는 인터넷 상에 접속되어 고유한 주소를 가지게 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;다른 사람들이 그 주소로 찾아가며, 집으로 들어오는 공인 IP는 1개 입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;ISP에서 IP를 부여합니다.&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;b&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;* 사설 IP&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;장비만 있으면 어디서든 사용하는 사설 네트워크로 사설 IP를&amp;nbsp; 사용가능하며&lt;/span&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;사설 IP는 네트워크 상에서 유일하며 &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;공유기를 통해 부여됩니다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 10%;&quot;&gt;클래스&lt;/td&gt;
&lt;td style=&quot;width: 30%;&quot;&gt;주소&lt;/td&gt;
&lt;td style=&quot;width: 60%;&quot;&gt;사용 처&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 10%;&quot;&gt;A &lt;span style=&quot;color: #333333;&quot;&gt;Class&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 30%;&quot;&gt;10.0.0.1 ~ 126.255.255.255&lt;/td&gt;
&lt;td style=&quot;width: 60%;&quot;&gt;로컬, 지역, 국가&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 10%;&quot;&gt;B &lt;span style=&quot;color: #333333;&quot;&gt;Class&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 30%;&quot;&gt;127.0.0.1 ~ 191.255.255.255&lt;/td&gt;
&lt;td style=&quot;width: 60%;&quot;&gt;회사, 공공기관&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 10%;&quot;&gt;C &lt;span style=&quot;color: #333333;&quot;&gt;Class&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 30%;&quot;&gt;192.168.0.1 ~ 223.255.255.255&lt;/td&gt;
&lt;td style=&quot;width: 60%;&quot;&gt;집&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 10%;&quot;&gt;D &lt;span style=&quot;color: #333333;&quot;&gt;Class&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 30%;&quot;&gt;224.0.0.0 ~ 239.255.255.255&lt;/td&gt;
&lt;td style=&quot;width: 60%;&quot;&gt;멀티캐스팅 용 주소 개인 및 단체 사용 x&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 10%;&quot;&gt;E Class&lt;/td&gt;
&lt;td style=&quot;width: 30%;&quot;&gt;240.0.0.0 ~ 255.255.255.255&lt;/td&gt;
&lt;td style=&quot;width: 60%;&quot;&gt;연구 목적용 개인 및 단체 사용 x&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</description>
      <category>네트워크/기본용어</category>
      <category>ip</category>
      <category>ipv4</category>
      <category>IPv6</category>
      <category>공인IP</category>
      <category>사설IP</category>
      <category>아이피</category>
      <category>유동IP</category>
      <author>코멧</author>
      <guid isPermaLink="true">https://gaebaldiary.tistory.com/10</guid>
      <comments>https://gaebaldiary.tistory.com/10#entry10comment</comments>
      <pubDate>Wed, 19 Aug 2020 13:33:43 +0900</pubDate>
    </item>
    <item>
      <title>리눅스 쉘(Shell) 이란?</title>
      <link>https://gaebaldiary.tistory.com/9</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;우리는 리눅스 즉 서버에 대해서 이야기할 때 쉘이라는 말을 수도 없이 많이 들을 것입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;쉘 스크립트로 많은 리눅스 서버는 실행이 되고 활용이 됩니다. 또한 서버에 연동되어 사용되는 Jenkins 등 여러 페이지는 쉘 스크립트를 만들어 활용이 됩니다. 그렇다면 리눅스 프로그래밍에서 가장 기초인 쉘이란 무엇인지 알아보도록 하겠습니다.&lt;/p&gt;
&lt;!-- URL 근처 --&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;쉘(Shell) 이란?&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;쉘은 &lt;span style=&quot;color: #333333;&quot;&gt;리눅스에서&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;명령어와 프로그래밍을 실행할 때 사용되는 인터페이스입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;커널(Kernel)과 사용자 간의 다리 역할을 하는 것으로 사용자로부터 명령을 받아 그것을 해석하고 프로그램을 실행하는 역할을 합니다.&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-origin-width=&quot;674&quot; data-origin-height=&quot;419&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pAxJ3/btqGNCddYdL/fHPiMoukg436rJ8jEbail1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pAxJ3/btqGNCddYdL/fHPiMoukg436rJ8jEbail1/img.png&quot; data-alt=&quot;쉘 환경 화면(Putty)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pAxJ3/btqGNCddYdL/fHPiMoukg436rJ8jEbail1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpAxJ3%2FbtqGNCddYdL%2FfHPiMoukg436rJ8jEbail1%2Fimg.png&quot; data-origin-width=&quot;674&quot; data-origin-height=&quot;419&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;쉘 환경 화면(Putty)&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;b&gt;리눅스 &amp;amp; 유닉스에서 많이 사용하는 주요 쉘 종류&lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 81.3953%; height: 223px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th style=&quot;width: 10%;&quot;&gt;&lt;b&gt;구분&lt;/b&gt;&lt;/th&gt;
&lt;th style=&quot;width: 25%;&quot;&gt;&lt;b&gt;위치&lt;/b&gt;&lt;/th&gt;
&lt;th style=&quot;width: 65%;&quot;&gt;&lt;b&gt;비고&lt;/b&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 10%;&quot;&gt;sh&lt;/td&gt;
&lt;td style=&quot;width: 25%;&quot;&gt;/bin/sh&lt;/td&gt;
&lt;td style=&quot;width: 65%;&quot;&gt;대부분의 유닉스와 리눅스에 설치된 쉘&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 10%;&quot;&gt;bash&lt;/td&gt;
&lt;td style=&quot;width: 25%;&quot;&gt;/bin/bash&lt;/td&gt;
&lt;td style=&quot;width: 65%;&quot;&gt;리눅스의 기본 쉘, sh와 호환&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 10%;&quot;&gt;ksh&lt;/td&gt;
&lt;td style=&quot;width: 25%;&quot;&gt;/bin/ksh&lt;/td&gt;
&lt;td style=&quot;width: 65%;&quot;&gt;1980년대 벨 연구소에서 개발, 부동 소수점 계산 가능&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 10%;&quot;&gt;csh&lt;/td&gt;
&lt;td style=&quot;width: 25%;&quot;&gt;/bin/csh&lt;/td&gt;
&lt;td style=&quot;width: 65%;&quot;&gt;C와 비슷한 스타일, 스크립트 작성 가능&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 10%;&quot;&gt;tcsh&lt;/td&gt;
&lt;td style=&quot;width: 25%;&quot;&gt;/bin/tcsh&lt;/td&gt;
&lt;td style=&quot;width: 65%;&quot;&gt;csh에 커멘드 히스토리 등을 추가 기능 보완&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;쉘 스크립트 장점&lt;/b&gt;&lt;/h3&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;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;* 리다이렉션(Redirection) 연산자 예시&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;&lt;span style=&quot;color: #333333;&quot;&gt;리다이렉션 &quot;&amp;gt;&quot; 연산자로&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;파일이 존재하지 않으면 새로운 파일을 만들고, 같은 파일이 있으면 생성하여 hello.txt로 생성했고&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;cat을 통해 출력한 예시입니다.&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-origin-width=&quot;671&quot; data-origin-height=&quot;417&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b9lCH9/btqGG1yQ8ZE/JAB13pK14QeowcIgDMxkR1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b9lCH9/btqGG1yQ8ZE/JAB13pK14QeowcIgDMxkR1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b9lCH9/btqGG1yQ8ZE/JAB13pK14QeowcIgDMxkR1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb9lCH9%2FbtqGG1yQ8ZE%2FJAB13pK14QeowcIgDMxkR1%2Fimg.png&quot; data-origin-width=&quot;671&quot; data-origin-height=&quot;417&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #009a87;&quot;&gt;&lt;b&gt;* 좀 더 자세한 리다이렉션 참고자료&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;&lt;a href=&quot;https://whitehats.tistory.com/37&quot;&gt;https://whitehats.tistory.com/37&lt;/a&gt;&lt;/p&gt;



&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;장점 정리&lt;/b&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;1. 동일한 작업을 반복하거나 스케줄에 의한 자동화 구현 가능합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;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;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;&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>네트워크/리눅스(Linux)</category>
      <category>Bash</category>
      <category>linux</category>
      <category>sh</category>
      <category>Shell</category>
      <category>리눅스</category>
      <category>쉘</category>
      <category>쉘의 장점</category>
      <category>쉘이란</category>
      <category>유닉스</category>
      <author>코멧</author>
      <guid isPermaLink="true">https://gaebaldiary.tistory.com/9</guid>
      <comments>https://gaebaldiary.tistory.com/9#entry9comment</comments>
      <pubDate>Tue, 18 Aug 2020 11:30:02 +0900</pubDate>
    </item>
    <item>
      <title>초보자들을 위한 리눅스(Linux) 명령어 BEST 10</title>
      <link>https://gaebaldiary.tistory.com/8</link>
      <description>&lt;p&gt;노련한 Linux 사용자가 되기 위해서는 리눅스(Linux) 명령어를 마스터하는 것은 필수적인 요소입니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;모든 명령어를 암기하는 것은 힘들지만 많이 쓰이는 명령어는 필수적으로 알아야 된다고 생각하며 이 정도는 외워야 된다는 것들만&lt;/p&gt;
&lt;p&gt;간추려고 포스팅 하게&amp;nbsp;되었습니다.&lt;/p&gt;
&lt;script async src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;!-- URL 근처 --&gt;
&lt;ins class=&quot;adsbygoogle&quot;
     style=&quot;display:block&quot;
     data-ad-client=&quot;ca-pub-8720911335503994&quot;
     data-ad-slot=&quot;7207081532&quot;
     data-ad-format=&quot;auto&quot;
     data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;1. pwd&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Print Work Directory&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;현재 사용자가 작업 중인 디렉토리를 보여줍니다.&lt;/p&gt;
&lt;p&gt;사용자의 작업 위치를 알고 정확하게 작업을 할 수 있게 도와주는 역할을 합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;2. ls&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;List Segments&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;유닉스 세계에서 가장 유명한 명령어 중 하나 일 것입니다.&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;현재 위치해 있는 곳의 파일, 디렉토리의 정보를 제공합니다. pwd와 함께 사용하면 파일의 위치 및 정보를 알아내는데 유용합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 74.7675%; height: 121px;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 20%; height: 20px;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;ls -l&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 80%; height: 20px;&quot;&gt;파일 상세정보 리스트로 표현&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 20%; height: 20px;&quot;&gt;ls -a&lt;/td&gt;
&lt;td style=&quot;width: 80%; height: 20px;&quot;&gt;숨어있는 파일들까지 리스트로 표현&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 20%; height: 20px;&quot;&gt;ls -t&lt;/td&gt;
&lt;td style=&quot;width: 80%; height: 20px;&quot;&gt;파일들을 생성된 순으로 리스트로 표현&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 20%; height: 20px;&quot;&gt;ls -rt&lt;/td&gt;
&lt;td style=&quot;width: 80%; height: 20px;&quot;&gt;파일들을 오래된 순으로 리스트로 표현&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 20%; height: 21px;&quot;&gt;ls -F&lt;/td&gt;
&lt;td style=&quot;width: 80%; height: 21px;&quot;&gt;파일을 표시할 때 마지막에 유형을 나타내는 파일명을 끝에 표현&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 20%; height: 20px;&quot;&gt;ls -lrt&lt;/td&gt;
&lt;td style=&quot;width: 80%; height: 20px;&quot;&gt;파일들의 상세정보, 오래된 순으로 리스트로 표현&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;3. cd&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Change Directory&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;경로를 이동할 때 사용하는 명령어 입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 74.7675%; height: 121px;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 20%; height: 20px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;cd ~&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 80%; height: 20px;&quot;&gt;어느 곳에서든지 홈 디렉토리로 바로 이동&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 20%; height: 20px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;cd ..&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 80%; height: 20px;&quot;&gt;상위 디렉토리로 이동&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 20%; height: 20px;&quot;&gt;cd /dir&lt;/td&gt;
&lt;td style=&quot;width: 80%; height: 20px;&quot;&gt;절대경로 dir로 이동&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 20%; height: 20px;&quot;&gt;cd -&lt;/td&gt;
&lt;td style=&quot;width: 80%; height: 20px;&quot;&gt;이동하기 직 전 디렉토리로 이동&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;4. touch&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;유효한 빈 파일을 작성하기 위한 명령어, 타임스탬프를 변경하기 위한 이동 명령어입니다.&lt;/p&gt;
&lt;p&gt;터미널에서 이동 중에 파일을 생성하고 요구 사항에 따라 실시간으로 파일을 채울 수가 있습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;* fn = filename&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 74.7675%; height: 121px;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 20%; height: 20px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;touch fn&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 80%; height: 20px;&quot;&gt;fn 파일 생성&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 20%; height: 20px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;touch -c fn&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 80%; height: 20px;&quot;&gt;fn의 시간을 현재시간으로 변경&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 20%; height: 20px;&quot;&gt;touch -t 날짜 fn&lt;/td&gt;
&lt;td style=&quot;width: 80%; height: 20px;&quot;&gt;fn의 시간을 날짜정보 (YYYYMMDDhhmm)로 변경&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 20%; height: 20px;&quot;&gt;touch -r fn1 fn2&lt;/td&gt;
&lt;td style=&quot;width: 80%; height: 20px;&quot;&gt;fn2의 날짜정보를 f1의 날짜정보와 같게 변경&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;5. cat&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Catenate&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;여러 파일을 연결하기 위해 고안된 cat&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;* fn = filename&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 74.7675%; height: 121px;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 25%; height: 20px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;cat fn&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 75%; height: 20px;&quot;&gt;fn 내용 출력&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 25%; height: 20px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;cat fn1 fn2&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 75%; height: 20px;&quot;&gt;fn1과 fn2의 내용을 이어서 출력&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 25%; height: 20px;&quot;&gt;cat fn1 fn2 | more&lt;/td&gt;
&lt;td style=&quot;width: 75%; height: 20px;&quot;&gt;fn1과 fn2를 페이지 별로 출력&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 25%; height: 20px;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;cat fn1 fn2 | head&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 75%; height: 20px;&quot;&gt;fn1과 fn2를 처음부터 10번째까지 출력&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 25%;&quot;&gt;cat fn1 fn2 | tail&lt;/td&gt;
&lt;td style=&quot;width: 75%;&quot;&gt;fn1과 fn2를 끝에서 부터 10번째까지 출력&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;script async src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;!-- URL 근처 --&gt;
&lt;ins class=&quot;adsbygoogle&quot;
     style=&quot;display:block&quot;
     data-ad-client=&quot;ca-pub-8720911335503994&quot;
     data-ad-slot=&quot;7207081532&quot;
     data-ad-format=&quot;auto&quot;
     data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;6. mkdir&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Make Drirectory&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;새로운 디렉터리를 생성하는 명령어로 mkdir에 필요한 권한을 가지고 있다면 사용 가능합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;* dn&amp;nbsp; = dirname&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 74.7675%; height: 100px;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 25%; height: 20px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;mkdir dn&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 75%; height: 20px;&quot;&gt;현재 디렉토리에 dn 디렉토리 생성&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 25%; height: 20px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;mkdir /dn&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 75%; height: 20px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;/fnxm 디렉토리에 dn 디렉토리 생성&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 25%; height: 20px;&quot;&gt;mkdir dn1 dn2 dn3&lt;/td&gt;
&lt;td style=&quot;width: 75%; height: 20px;&quot;&gt;현재 디렉토리에 dn1, dn2, dn3 디렉토리 생성&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 25%;&quot;&gt;mkdir dn1/dn2/dn3&lt;/td&gt;
&lt;td style=&quot;width: 75%;&quot;&gt;현재 디렉토리에 dn1 생성, 그 하위에 dn2 생성, 그 하위에 dn3 생성&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;7. cp&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Copy&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;파일을 복사하는 명령어입니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;* fn = filename&lt;/p&gt;
&lt;p&gt;* dir = directory&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 74.7675%; height: 62px;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 25%; height: 20px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;cp fn fn1&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 75%; height: 20px;&quot;&gt;f을 f1 이라는 이름으로 복사&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 25%; height: 20px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;cp -f fn fn1&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 75%; height: 20px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;복사할 떄 복사대상이 있으면 지우고 강제 복사&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 25%; height: 22px;&quot;&gt;cp -R dir dir1&lt;/td&gt;
&lt;td style=&quot;width: 75%; height: 22px;&quot;&gt;디렉토리 복사, 폴더안의 모든 하위경로 파일도 복사&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;8. rm&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Remove&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;파일 또는 디렉터리를 삭제할 때 사용하는 명령어입니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;* fn&amp;nbsp; = filename&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 74.7675%; height: 62px;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 25%; height: 20px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;rm fn&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 75%; height: 20px;&quot;&gt;fn을 삭제&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 25%; height: 20px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;rm -f fn&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 75%; height: 20px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;fn을 묻지 않고 삭제&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 25%; height: 22px;&quot;&gt;rm -r dir&lt;/td&gt;
&lt;td style=&quot;width: 75%; height: 22px;&quot;&gt;dir을 삭제. 디렉토리는 -r 옵션 없이는 삭제 불가&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;9. mv&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Move&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;파일 이동하는 명령어입니다. cp와 비슷하지만 다른 점은 cp는 파일을 복사하여 원본 파일이 남아있지만&lt;/p&gt;
&lt;p&gt;mv는 원본 파일이 남아있지 않습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;* fn&amp;nbsp; = filename&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 74.7675%; height: 62px;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 25%; height: 20px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;mv fn fn1&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 75%; height: 20px;&quot;&gt;fn의 파일을 fn1의 이름으로 이동 및 변경&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 25%; height: 20px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;mv -b fn fn1&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 75%; height: 20px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;fn1의 파일이 존재하면 백업 후 이동&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 25%; height: 22px;&quot;&gt;mv -f fn fn1&lt;/td&gt;
&lt;td style=&quot;width: 75%; height: 22px;&quot;&gt;fn1의 파일이 존재하면 백업 없이 덮어쓰기&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;10. less&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;텍스트 파일을 한 번에 한 화면씩 보여주는 터미널 페이지입니다. 기능적으로 more와 유사하나 파일의 앞쪽과&lt;/p&gt;
&lt;p&gt;뒤쪽으로 이동할 수 있는 more의 개량형 명령어입니다. less 내부 명령어를 이용하여 문서를 자유롭게 볼 수가 있습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;* fn&amp;nbsp; = filename&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;less 내부 명령어&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 74.7675%; height: 202px;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 30%; height: 20px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;page up &amp;amp; b&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 70%; height: 20px;&quot;&gt;한 페이지 위로&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 30%; height: 20px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;page down &amp;amp; 스페이스바&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 70%; height: 20px;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;한 페이지 아래로&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 30%; height: 22px;&quot;&gt;위쪽 방향키&lt;/td&gt;
&lt;td style=&quot;width: 70%; height: 22px;&quot;&gt;한 줄 위로&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 30%; height: 20px;&quot;&gt;아래쪽 방향키&lt;/td&gt;
&lt;td style=&quot;width: 70%; height: 20px;&quot;&gt;한 줄 아래로&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 30%; height: 20px;&quot;&gt;G&lt;/td&gt;
&lt;td style=&quot;width: 70%; height: 20px;&quot;&gt;텍스트 파일의 맨 마지막으로 이동&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 30%; height: 20px;&quot;&gt;1G 또는 g&lt;/td&gt;
&lt;td style=&quot;width: 70%; height: 20px;&quot;&gt;텍스트 파일의 맨 처음으로 이동&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 30%; height: 20px;&quot;&gt;/문자열&lt;/td&gt;
&lt;td style=&quot;width: 70%; height: 20px;&quot;&gt;아래 방향으로 진행하여 입력된 문자열 찾기&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 30%; height: 20px;&quot;&gt;n&lt;/td&gt;
&lt;td style=&quot;width: 70%; height: 20px;&quot;&gt;이전 검색어의 다음 찾기&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 30%; height: 20px;&quot;&gt;h&lt;/td&gt;
&lt;td style=&quot;width: 70%; height: 20px;&quot;&gt;도움말 보기&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 30%; height: 20px;&quot;&gt;q&lt;/td&gt;
&lt;td style=&quot;width: 70%; height: 20px;&quot;&gt;프로그램 종료&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Linux에서 주로 많이 쓰이는 총 10가지의 기본 명령어에 대해서 정리해봤습니다.&lt;/p&gt;
&lt;p&gt;이것뿐만 아니라 많은 명령어가 있지만 이 10가지의 기본 명령어를 익힌다면 Linux 사용하는데&lt;/p&gt;
&lt;p&gt;크게 어려움은 없지 않을까??라고 생각합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;글을 읽고 큰 도움이 되길 바랍니다.&lt;/p&gt;</description>
      <category>네트워크/리눅스(Linux)</category>
      <category>less</category>
      <category>linux</category>
      <category>putty</category>
      <category>Unix</category>
      <category>리눅스</category>
      <category>리눅스 파일</category>
      <category>리눅스 파일 삭제</category>
      <category>리눅스명령어</category>
      <category>명령어</category>
      <author>코멧</author>
      <guid isPermaLink="true">https://gaebaldiary.tistory.com/8</guid>
      <comments>https://gaebaldiary.tistory.com/8#entry8comment</comments>
      <pubDate>Fri, 14 Aug 2020 13:52:02 +0900</pubDate>
    </item>
    <item>
      <title>[자바] Static(스태틱) 란?</title>
      <link>https://gaebaldiary.tistory.com/7</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;static&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;static은 Java 개발자에게는 제일 익숙한 용어입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;그렇다면 static이란 무엇인지, 어떻게 Java에서 쓰이는지 설명하겠습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Java에서 static 키워드를 사용한다는 것은 어떠한 값이 메모리에 한번 할당되어 프로그램이 끝날 때까지 그 메모리에 값이 유지된다는 것을 의미한다. 쉽게 설명하자면 특정한 값을 공유를 해야 하는 경우라면 static 사용 시 메모리의 이점을 얻을 수 있다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;static에서 가장 중요한 키워드는 class입니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;static class 란?&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;static class는 &lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;하나 이상&lt;/span&gt;&lt;/b&gt;의 static method를 가지고 있는것을 의미합니다.&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #8a3db6;&quot;&gt;&lt;b&gt;static class 예시&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;public class Test {&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public static void String testtest() {&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; System.out.println(&quot;TEST!!!!!!&quot;);&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;그렇다면 static method는 어떻게 사용되는가?.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #8a3db6;&quot;&gt;&lt;b&gt;static 사용 예시&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;예시 1)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Test.&lt;span style=&quot;color: #333333;&quot;&gt;testtest();&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;예시 2)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Test test111 = new Test();&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;test111.testtest();&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;예시1, 예시2에서 에러 나는 것은 &lt;span style=&quot;color: #333333;&quot;&gt;예시2 입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;즉 결론을 말하자면 static 메소드를 사용하기 위해서는 예시1에서 처럼 class를 직접 불러와야만 사용이 가능하며&lt;/p&gt;
&lt;p&gt;인스턴스에서는 사용을 할수가 없습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>java/기본용어</category>
      <category>CLASS</category>
      <category>static</category>
      <category>인스턴스</category>
      <category>클래스</category>
      <author>코멧</author>
      <guid isPermaLink="true">https://gaebaldiary.tistory.com/7</guid>
      <comments>https://gaebaldiary.tistory.com/7#entry7comment</comments>
      <pubDate>Wed, 12 Aug 2020 11:25:59 +0900</pubDate>
    </item>
    <item>
      <title>PuTTY 설치 및 인증키로 접속</title>
      <link>https://gaebaldiary.tistory.com/6</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;PuTTY&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;PuTTY는 Simon Tatham이 개발한 오픈소스 터미널 에뮬레이터입니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;개인 PC 운영체제에서도 서버로 접속할 수 있도록 물리적인 단말장비가 아닌 논리적인 가상 단말기를 제공됩니다.&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;접속 방식으로는 Telet, SSH, Rlogin 등 다양한 방법을 제공하는&amp;nbsp;&lt;/span&gt;무료 오픈소스 프로그램 중 하나가 PuTTY입니다.&lt;/p&gt;
&lt;script async src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;!-- URL 근처 --&gt;
&lt;ins class=&quot;adsbygoogle&quot;
     style=&quot;display:block&quot;
     data-ad-client=&quot;ca-pub-8720911335503994&quot;
     data-ad-slot=&quot;7207081532&quot;
     data-ad-format=&quot;auto&quot;
     data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;PuTTY 접속 방법&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;초기화면.png&quot; data-origin-width=&quot;479&quot; data-origin-height=&quot;455&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/UqdB2/btqGuF25Xvk/ZPtgoN2eBAXMA5Qa7jyKKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/UqdB2/btqGuF25Xvk/ZPtgoN2eBAXMA5Qa7jyKKk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/UqdB2/btqGuF25Xvk/ZPtgoN2eBAXMA5Qa7jyKKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUqdB2%2FbtqGuF25Xvk%2FZPtgoN2eBAXMA5Qa7jyKKk%2Fimg.png&quot; data-filename=&quot;초기화면.png&quot; data-origin-width=&quot;479&quot; data-origin-height=&quot;455&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;1. 푸티를 사용하는데 필요한 설정 및 기능 목록&lt;/p&gt;
&lt;p&gt;2. 원격 서버 IP&lt;/p&gt;
&lt;p&gt;3. 원격 서버 PORT&lt;/p&gt;
&lt;p&gt;4. 서버 설정을 저장해서 사용하는 목록&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;2번 밑에 ContentType 즉 서버 접속방식을 선택하고&lt;/p&gt;
&lt;p&gt;알맞은 IP와 Port를 입력하고 Open 버튼을 누르면 서버 접속이 완료됩니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;인증키가 있는 경우&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;접속을 눌렀는데&lt;/span&gt;&lt;b&gt; putty no supported authentication methods available public key라는&lt;/b&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 오류가 발생하게 되면&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;인증키가 필요하다는 겁니다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;PUTTY SSH키.png&quot; data-origin-width=&quot;498&quot; data-origin-height=&quot;473&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cZaZ93/btqGvYnCr25/ydSnMXsIKwC4aD6iIab6Y1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cZaZ93/btqGvYnCr25/ydSnMXsIKwC4aD6iIab6Y1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cZaZ93/btqGvYnCr25/ydSnMXsIKwC4aD6iIab6Y1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcZaZ93%2FbtqGvYnCr25%2FydSnMXsIKwC4aD6iIab6Y1%2Fimg.png&quot; data-filename=&quot;PUTTY SSH키.png&quot; data-origin-width=&quot;498&quot; data-origin-height=&quot;473&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;1. 키에 발급된 인증키를 갖고 옵니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1을 작업을 실행하고 접속하면 정상적으로 실행됩니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;참고로 Saved Session에 저장된 것으로 open을 시키려면 다시 저장을 시켜주고 접속을 해야 합니다.&lt;/p&gt;</description>
      <category>네트워크/리눅스(Linux)</category>
      <category>public key</category>
      <category>putty</category>
      <category>개발</category>
      <category>네트워크</category>
      <category>원격접속</category>
      <category>인증키</category>
      <author>코멧</author>
      <guid isPermaLink="true">https://gaebaldiary.tistory.com/6</guid>
      <comments>https://gaebaldiary.tistory.com/6#entry6comment</comments>
      <pubDate>Wed, 12 Aug 2020 10:59:55 +0900</pubDate>
    </item>
    <item>
      <title>2. JPA 시작하기</title>
      <link>https://gaebaldiary.tistory.com/3</link>
      <description>&lt;p&gt;&lt;b&gt;1) 프로그램 설치&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;JPA를 시작하기 위해서 저는 InteliJ를 다운받아서 사용하겠습니다.&lt;/p&gt;
&lt;p&gt;참고하시는 분들은 이클립스, Visual Code 등 자신에게 맞는 것을 사용해도 무방합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.jetbrains.com/ko-kr/idea/download/#section=windows&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;IntelliJ 다운로드&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1593225424603&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;website&quot; data-og-title=&quot;다운로드 IntelliJ IDEA: JetBrains가 만든 전문 개발자용 Java IDE&quot; data-og-description=&quot;최신 버전 다운로드: IntelliJ IDEA (Windows, macOS, Linux)&quot; data-og-host=&quot;www.jetbrains.com&quot; data-og-source-url=&quot;https://www.jetbrains.com/ko-kr/idea/download/#section=windows&quot; data-og-url=&quot;https://www.jetbrains.com/ko-kr/idea/download/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/zKWXo/hyGzcxyf3y/cLhNofPUCpr3HjTWDLYsEk/img.png?width=1281&amp;amp;height=800&amp;amp;face=0_0_1281_800&quot;&gt;&lt;a href=&quot;https://www.jetbrains.com/ko-kr/idea/download/#section=windows&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.jetbrains.com/ko-kr/idea/download/#section=windows&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/zKWXo/hyGzcxyf3y/cLhNofPUCpr3HjTWDLYsEk/img.png?width=1281&amp;amp;height=800&amp;amp;face=0_0_1281_800');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;다운로드 IntelliJ IDEA: JetBrains가 만든 전문 개발자용 Java IDE&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;최신 버전 다운로드: IntelliJ IDEA (Windows, macOS, Linux)&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;www.jetbrains.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&amp;nbsp;또 한 H2 데이터베이스를 설치하여 진행하겠습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.h2database.com&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;http://www.h2database.com&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1593225516406&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;website&quot; data-og-title=&quot;H2 Database Engine (redirect)&quot; data-og-description=&quot;H2 Database Engine Welcome to H2, the free SQL database. The main feature of H2 are: It is free to use for everybody, source code is included Written in Java, but also available as native executable JDBC and (partial) ODBC API Embedded and client/server mo&quot; data-og-host=&quot;www.h2database.com&quot; data-og-source-url=&quot;http://www.h2database.com&quot; data-og-url=&quot;http://www.h2database.com&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;http://www.h2database.com&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;http://www.h2database.com&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;H2 Database Engine (redirect)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;H2 Database Engine Welcome to H2, the free SQL database. The main feature of H2 are: It is free to use for everybody, source code is included Written in Java, but also available as native executable JDBC and (partial) ODBC API Embedded and client/server mo&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;www.h2database.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;위에 사이트에 들어가서 각자 OS에 맞는 것을 다운로드 받아 설치해주면 됩니다.&lt;/p&gt;
&lt;p&gt;그런 다음에 H2 데이터베이스를 서버 모드로 실행한 후에 웹 브라우저에서 http://localhost:8082를 입력하면 접속할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>java/jpa</category>
      <category>DATABASE</category>
      <category>H2</category>
      <category>Intellij</category>
      <category>jpa 시작하기</category>
      <category>데이터베이스</category>
      <category>프로그램</category>
      <author>코멧</author>
      <guid isPermaLink="true">https://gaebaldiary.tistory.com/3</guid>
      <comments>https://gaebaldiary.tistory.com/3#entry3comment</comments>
      <pubDate>Wed, 24 Jun 2020 15:43:17 +0900</pubDate>
    </item>
  </channel>
</rss>