<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>천방지축 어리둥절 돌아가는 WooJ's 개발 모험</title>
    <link>https://wooj-coding-fordeveloper.tistory.com/</link>
    <description>Github : https://github.com/WOOOOJI</description>
    <language>ko</language>
    <pubDate>Thu, 9 Apr 2026 13:54:30 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>WOOOOJI</managingEditor>
    <image>
      <title>천방지축 어리둥절 돌아가는 WooJ's 개발 모험</title>
      <url>https://tistory1.daumcdn.net/tistory/5758903/attach/70a6e766bd7c4fb5a007d1cdcd185080</url>
      <link>https://wooj-coding-fordeveloper.tistory.com</link>
    </image>
    <item>
      <title>AWS IoT Core - 디바이스에 클라우드 연결하기 (MQTT 간단한 테스트 방법)</title>
      <link>https://wooj-coding-fordeveloper.tistory.com/88</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000; font-size: 1.875rem; letter-spacing: -1px; font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif;&quot;&gt;AWS - IoT (Internet of Things)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;div class=&quot;page-body&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;905&quot; data-origin-height=&quot;400&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bcF3QD/btr7Rriqwn9/HzQx6BHquu43vqOr32A2w0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bcF3QD/btr7Rriqwn9/HzQx6BHquu43vqOr32A2w0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bcF3QD/btr7Rriqwn9/HzQx6BHquu43vqOr32A2w0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbcF3QD%2Fbtr7Rriqwn9%2FHzQx6BHquu43vqOr32A2w0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;905&quot; height=&quot;400&quot; data-origin-width=&quot;905&quot; data-origin-height=&quot;400&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;h3 id=&quot;38964c8b-e160-4842-9205-2399863b6202&quot; class=&quot;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;border-bottom: 0.05em solid;&quot;&gt;&lt;b&gt;IoT == 사물인터넷&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p id=&quot;6e741d16-baf3-4842-9674-836126e5a7ab&quot; class=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;즉 한마디로 표현하자면, 인터넷 네트워크에 무선으로 연결될 수 있는 모든 물체를 의미합니다.&lt;/p&gt;
&lt;p id=&quot;9b34542e-cf94-4eae-a21e-d0072081f6ee&quot; class=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;좀 더 구체화 된 의미로는 사용자에게 정보를 제공하거나 작업을 자동화 하기 위해 데이터 송수신을 지원하는 센서, 소프트웨어 및 기타 기술을 탑재하고 있으며, 서로 연결된 사물을 의미합니다.&lt;/p&gt;
&lt;p id=&quot;9cb9de7d-ea00-4905-b054-3636302ffe64&quot; class=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;mark class=&quot;highlight-yellow&quot;&gt;&lt;b&gt;즉 IoT 개념이 적용되는 사물(장치)들을 IoT 디바이스라고 말할 수 있습니다.&lt;/b&gt;&lt;/mark&gt;
&lt;p id=&quot;334fa796-6c75-40d4-8ecb-1022fd11413d&quot; class=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p id=&quot;19195ff8-5496-4075-8bd0-9c181cfe79e2&quot; class=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;쉽게 예를 들자면 :&lt;/code&gt; 교통 관리 시스템, 차량 연결, 스마트 홈과 같이 특정 디바이스의 상태(데이터)을 분석하고 전송하며 그 데이터들로 무언가를 처리하여 관리하는 시스템들이 해당됩니다. 교통 관리 시스템 처럼 CCTV를 이용하여 교통량 등을 파악하여 신호등의 시간을 조정하여 교통 흐름을 원할하게 만들 수 있습니다.&lt;/p&gt;
&lt;p id=&quot;c4936d7a-0879-4ef5-add6-d0de9ebfb0c9&quot; class=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p id=&quot;7d7fc4af-98d1-4f8c-be84-b105514e1a74&quot; class=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr id=&quot;a1650203-aa26-4594-93e6-e989285dc226&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p id=&quot;65563756-bc3e-41e3-b73b-58db90246986&quot; class=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;2f0a67e2-87b4-469d-a723-d3749290db53&quot; class=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;AWS IoT ?&lt;/b&gt;&lt;/h2&gt;
&lt;p id=&quot;d028a98f-67ae-4b75-bda1-bbaa76a32fbc&quot; class=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;연결된 디바이스가 클라우드 애플리케이션 및 다른 디바이스와 간편하고 안전하게 상호작용할 수 있게 해주는 클라우드 서비스 입니다 !&lt;/p&gt;
&lt;p id=&quot;7886fbb2-4b12-4946-80cb-2caaeb02f267&quot; class=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p id=&quot;c40da3d3-7ed6-4eb9-a381-ce1ebbbfb650&quot; class=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;AWS 에서 제공하는 IoT서비스는 AI와 IoT를 결합하여 비지니스 결과를 개선합니다.&lt;/p&gt;
&lt;p id=&quot;3ed7bb11-e05e-4107-9a8d-0fb96f1685d9&quot; class=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;데이터를 관리하고 분석하여 대용량 IoT 데이터용으로 설계된 사용하기 쉬운 서비스를 제공합니다.&lt;/p&gt;
&lt;p id=&quot;405dfa7f-80c9-498a-8a76-0f0f2cda944d&quot; class=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p id=&quot;484e1e73-4094-4923-8e74-37695637a88b&quot; class=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;보안, 데이터 암호화 및 디바이스 데이터에 대한 액세스 제어 등의 서비스를 포함하고 있으며, 다른 AWS서비스와 통합이 가능하므로 솔루션 생성이 용이합니다.&lt;/p&gt;
&lt;p id=&quot;f97dd374-a3c6-4144-9598-61abfb459756&quot; class=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p id=&quot;62a7501b-90e8-41c6-9a6a-eb3148786e8c&quot; class=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr id=&quot;a68076ab-227d-4990-b5c5-de955a52c57d&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p id=&quot;cda7e853-4f72-4a88-af2f-36eab19a6ec5&quot; class=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p id=&quot;9e4f0bcb-bb47-409d-9950-3b4a61987b6d&quot; class=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;760b34b1-0049-4251-bf17-67d27c0f3008&quot; class=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;AWS IoT 에서 사용하는 프로토콜&lt;/b&gt;&lt;/h2&gt;
&lt;ul id=&quot;4fe8e0f7-3e8a-466c-bb7c-957cb8ec900d&quot; class=&quot;bulleted-list&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;b&gt;MQTT&lt;/b&gt;
&lt;ul id=&quot;902cfc2a-8652-41e1-be3b-3384f0625809&quot; class=&quot;bulleted-list&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: circle;&quot;&gt;자원이 한정적인 디바이스용으로 설계된 경량의 메시징 프로토콜&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul id=&quot;65b92977-3798-49e7-9606-9806ed28a716&quot; class=&quot;bulleted-list&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;b&gt;HTTPS&lt;/b&gt;
&lt;ul id=&quot;a598fb05-99b7-464f-83a1-a8dc9dbf144f&quot; class=&quot;bulleted-list&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: circle;&quot;&gt;URL을 통해 REST API 요청을 하는것&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul id=&quot;cbea9ecf-6891-4191-bbfc-133db652375f&quot; class=&quot;bulleted-list&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;b&gt;LoRaWAN&lt;/b&gt;
&lt;ul id=&quot;d341a2fb-a82f-449d-bf5e-73b197cac2d7&quot; class=&quot;bulleted-list&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: circle;&quot;&gt;저전력 장거리 광역 네트워크&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p id=&quot;4773fb6d-347b-4391-b1dc-2b08f3fa0411&quot; class=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p id=&quot;f23769d0-6263-4592-8723-d57009b4bcb3&quot; class=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr id=&quot;081e8e8b-f774-46f6-8861-8b73f01e6680&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p id=&quot;7ecdcd00-5b6c-479f-b348-0a97a3260e21&quot; class=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p id=&quot;0d5b7b71-aa18-4550-ae9f-c7be714ad058&quot; class=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;05210426-beea-4c5a-bb10-72896324e239&quot; class=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;AWS IoT Device SDK&lt;/b&gt;&lt;/h2&gt;
&lt;p id=&quot;d5d8c696-e366-4b83-9130-50ead338a3c8&quot; class=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;ldquo;네트워크 통신이 가능한 디바이스&amp;rdquo;를 이용하여 AWS IoT와 통신을 하여 데이터를 주고 받으며 처리하는 시스템입니다. 앞서 말했듯이 &amp;ldquo;디바이스&amp;rdquo;가 필요한걸 알수 있습니다.&lt;/p&gt;
&lt;p id=&quot;e1d63acb-2c3a-4a68-aa1a-ebe0665eb145&quot; class=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p id=&quot;3cf7c69b-4c58-4622-a3ab-821907607150&quot; class=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;하지만 꼭 필수는 아닙니다. AWS IoT Device SDK를 사용하여 가상 디바이스를 만들고 AWS IoT 서비스와 통신할 수 있습니다. AWS IoT Device SDK는 여러 언어(C++, Python, JavaScript 등)로 제공되며, 이를 사용하여 다양한 플랫폼에서 가상 디바이스를 구현할 수 있습니다. 이 SDK를 사용하면 다양한 프로토콜(MQTT, HTTP, WebSocket)을 통해 AWS IoT 서비스와 상호 작용할 수 있습니다.&lt;/p&gt;
&lt;p id=&quot;54fb25f3-3c40-4177-9497-512623ce9c68&quot; class=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote id=&quot;5f3ad32c-a9e7-4cfb-9892-0ed5e4cd145f&quot; class=&quot;&quot; data-ke-style=&quot;style1&quot;&gt;또한, AWS IoT Core 콘솔에서도 가상 디바이스를 생성하고 관리할 수 있습니다. 이를 통해 디바이스 관리, 시뮬레이션, 테스트 등을 수행할 수 있습니다.&lt;/blockquote&gt;
&lt;p id=&quot;dfd5bfd3-0de8-43b7-b205-0528cb1405c9&quot; class=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p id=&quot;70b48782-d25f-4f08-b34d-240667277a72&quot; class=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p id=&quot;e5e0c70e-fdc1-49b5-be1d-e3f8e77b0de3&quot; class=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr id=&quot;223e3870-8d49-4364-ae2e-78a20d1a5321&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p id=&quot;70fc4d1f-2496-4289-8cf7-b8a4fc75ff7d&quot; class=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p id=&quot;88f39bfa-a4c9-41c0-9a1f-71f03ce308b8&quot; class=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;253e91dc-bb40-4973-9091-117492f6a3d2&quot; class=&quot;&quot; data-ke-size=&quot;size26&quot;&gt;How to &lt;span style=&quot;border-bottom: 0.05em solid;&quot;&gt;&lt;b&gt;AWS&lt;/b&gt;&lt;/span&gt; IoT Quick test?&lt;/h2&gt;
&lt;p id=&quot;8069403d-bce7-442c-8c52-761ec14718fa&quot; class=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;앞서 말했듯이 IoT는 네트워킹이 가능한 사물을 의미합니다. 즉 테스트를 해보기 위해서는 IoT디바이스가 필요하게 됩니다.&lt;/p&gt;
&lt;p id=&quot;6dbaa8eb-1bad-4b2f-9fd0-ed710e4af4d8&quot; class=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_스크린샷 2023-04-04 오전 12.09.08.png&quot; data-origin-width=&quot;1608&quot; data-origin-height=&quot;946&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/92Vuv/btr7PiGdpSd/clBprRe3zI6bweJ9peiKok/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/92Vuv/btr7PiGdpSd/clBprRe3zI6bweJ9peiKok/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/92Vuv/btr7PiGdpSd/clBprRe3zI6bweJ9peiKok/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F92Vuv%2Fbtr7PiGdpSd%2FclBprRe3zI6bweJ9peiKok%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1608&quot; height=&quot;946&quot; data-filename=&quot;edited_스크린샷 2023-04-04 오전 12.09.08.png&quot; data-origin-width=&quot;1608&quot; data-origin-height=&quot;946&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;ol id=&quot;1e42036a-5e2b-4dfb-b981-85ce64137a5e&quot; class=&quot;numbered-list&quot; style=&quot;list-style-type: decimal;&quot; start=&quot;1&quot; type=&quot;1&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;디바이스(PC, Raspberry Pi 등) 의 전원을 킵니다.&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ol id=&quot;1938d7ea-0a91-4a26-856f-2e4f18310ed9&quot; class=&quot;numbered-list&quot; style=&quot;list-style-type: decimal;&quot; start=&quot;2&quot; type=&quot;1&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;디바이스가 브라우저를 지원하는 경우 AWS IoT콘솔을 열고 직접 파일을 다운로드합니다.&lt;/b&gt;
&lt;ol id=&quot;5d1e1047-3074-4ac8-830c-04ec56913825&quot; class=&quot;numbered-list&quot; style=&quot;list-style-type: decimal;&quot; start=&quot;1&quot; type=&quot;a&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;IF NOT &amp;rarr; PC에서 디바이스로 파일을 전송합니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;ol id=&quot;487c36d5-22af-45e5-95f0-c941a39f018e&quot; class=&quot;numbered-list&quot; style=&quot;list-style-type: decimal;&quot; start=&quot;2&quot; type=&quot;a&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;혹은 USB와 같은 수단을 활용해 파일을 전송합니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;ol id=&quot;f5a82ca6-1807-4504-9f8a-c6863f6cc695&quot; class=&quot;numbered-list&quot; style=&quot;list-style-type: decimal;&quot; start=&quot;3&quot; type=&quot;1&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;명령어 인터프리터에 액세스 가능 여부&lt;/b&gt;&amp;nbsp;
&lt;ol id=&quot;5868c271-750f-4318-a143-39d660662bb2&quot; class=&quot;numbered-list&quot; style=&quot;list-style-type: decimal;&quot; start=&quot;1&quot; type=&quot;a&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;YES &amp;rarr;&amp;nbsp; 터미널(명령 프롬프트)에 제공되는 명령어 입력후 ping 응답을 지속적으로 받는다면 다음단계로 넘어갑니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;ol id=&quot;b74b4807-961e-48ba-aede-a452500392d6&quot; class=&quot;numbered-list&quot; style=&quot;list-style-type: decimal;&quot; start=&quot;2&quot; type=&quot;a&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;NO &amp;rarr; SSH 터미널 창을 통해 IoT디바이스에 접근하여 위 과정을 진행합니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;pre id=&quot;code_1680534910989&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ ping [제공되는 명령어]&lt;/code&gt;&lt;/pre&gt;
&lt;ol id=&quot;2a2d3d9c-1381-49e0-9e84-0f01dac7f362&quot; class=&quot;numbered-list&quot; style=&quot;list-style-type: decimal;&quot; start=&quot;4&quot; type=&quot;1&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;새 사물 생성하기 (테스트용이기 때문에 이름은 임의로 지었습니다)&amp;nbsp;&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-04-04 오전 12.09.43.png&quot; data-origin-width=&quot;1602&quot; data-origin-height=&quot;1028&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bsgtyz/btr7NO0ei1t/ZH1RVkIziZ2Q2ndXa9jH3K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bsgtyz/btr7NO0ei1t/ZH1RVkIziZ2Q2ndXa9jH3K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bsgtyz/btr7NO0ei1t/ZH1RVkIziZ2Q2ndXa9jH3K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbsgtyz%2Fbtr7NO0ei1t%2FZH1RVkIziZ2Q2ndXa9jH3K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1602&quot; height=&quot;1028&quot; data-filename=&quot;스크린샷 2023-04-04 오전 12.09.43.png&quot; data-origin-width=&quot;1602&quot; data-origin-height=&quot;1028&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;ol id=&quot;3590bca6-7b3c-4a42-a51d-59e25478c501&quot; class=&quot;numbered-list&quot; style=&quot;list-style-type: decimal;&quot; start=&quot;5&quot; type=&quot;1&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;디바이스의 플랫폼 운영 체제 선택 및 SDK 선택 ( Linux/macOS, Python을 선택하였습니다.)&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-04-04 오전 12.10.16.png&quot; data-origin-width=&quot;1598&quot; data-origin-height=&quot;1052&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/VwDQp/btr7LrRKNUZ/vkcnuJ7suDQ4pEjUFvSBk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/VwDQp/btr7LrRKNUZ/vkcnuJ7suDQ4pEjUFvSBk1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/VwDQp/btr7LrRKNUZ/vkcnuJ7suDQ4pEjUFvSBk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVwDQp%2Fbtr7LrRKNUZ%2FvkcnuJ7suDQ4pEjUFvSBk1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1598&quot; height=&quot;1052&quot; data-filename=&quot;스크린샷 2023-04-04 오전 12.10.16.png&quot; data-origin-width=&quot;1598&quot; data-origin-height=&quot;1052&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;ol id=&quot;feba2d58-a6e3-4ceb-830b-42f09f2913f3&quot; class=&quot;numbered-list&quot; style=&quot;list-style-type: decimal;&quot; start=&quot;6&quot; type=&quot;1&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;AWS IoT에서 제공하는 연결 키트를 다운로드 하여 압축을 풉니다.&amp;nbsp;&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-04-04 오전 12.10.33.png&quot; data-origin-width=&quot;541&quot; data-origin-height=&quot;615&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wOrtf/btr7RrvYxYt/99slfh2YAmJXtOqKO6bMTk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wOrtf/btr7RrvYxYt/99slfh2YAmJXtOqKO6bMTk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wOrtf/btr7RrvYxYt/99slfh2YAmJXtOqKO6bMTk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwOrtf%2Fbtr7RrvYxYt%2F99slfh2YAmJXtOqKO6bMTk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;541&quot; height=&quot;615&quot; data-filename=&quot;스크린샷 2023-04-04 오전 12.10.33.png&quot; data-origin-width=&quot;541&quot; data-origin-height=&quot;615&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-04-04 오전 12.10.46.png&quot; data-origin-width=&quot;552&quot; data-origin-height=&quot;395&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dNVBG4/btr7TloCpN0/xQpUCyJxwdmRLlMGlwP6pK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dNVBG4/btr7TloCpN0/xQpUCyJxwdmRLlMGlwP6pK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dNVBG4/btr7TloCpN0/xQpUCyJxwdmRLlMGlwP6pK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdNVBG4%2Fbtr7TloCpN0%2FxQpUCyJxwdmRLlMGlwP6pK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;552&quot; height=&quot;395&quot; data-filename=&quot;스크린샷 2023-04-04 오전 12.10.46.png&quot; data-origin-width=&quot;552&quot; data-origin-height=&quot;395&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;ol id=&quot;4f5e8698-19f0-4269-90bc-f52ec24b9a97&quot; class=&quot;numbered-list&quot; style=&quot;list-style-type: decimal;&quot; start=&quot;7&quot; type=&quot;1&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;실행 권한을 추가 및 실행&amp;nbsp;&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-04-04 오전 12.11.01.png&quot; data-origin-width=&quot;550&quot; data-origin-height=&quot;889&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cYRlgY/btr7OJKPHva/ImRpP0HQ2ymJJCh30xrDW1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cYRlgY/btr7OJKPHva/ImRpP0HQ2ymJJCh30xrDW1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cYRlgY/btr7OJKPHva/ImRpP0HQ2ymJJCh30xrDW1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcYRlgY%2Fbtr7OJKPHva%2FImRpP0HQ2ymJJCh30xrDW1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;550&quot; height=&quot;889&quot; data-filename=&quot;스크린샷 2023-04-04 오전 12.11.01.png&quot; data-origin-width=&quot;550&quot; data-origin-height=&quot;889&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;ol id=&quot;9bbdd8b7-e8c4-4284-abf0-cdfc79123da0&quot; class=&quot;numbered-list&quot; style=&quot;list-style-type: decimal;&quot; start=&quot;8&quot; type=&quot;1&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;실행 결과 메시지가 잘 전달되는걸 확인할 수 있습니다.&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-04-04 오전 12.11.19.png&quot; data-origin-width=&quot;523&quot; data-origin-height=&quot;992&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bmeC14/btr7Ow57bRg/6GZSxOUYxL4u2MfI5X7BX1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bmeC14/btr7Ow57bRg/6GZSxOUYxL4u2MfI5X7BX1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bmeC14/btr7Ow57bRg/6GZSxOUYxL4u2MfI5X7BX1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbmeC14%2Fbtr7Ow57bRg%2F6GZSxOUYxL4u2MfI5X7BX1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;523&quot; height=&quot;992&quot; data-filename=&quot;스크린샷 2023-04-04 오전 12.11.19.png&quot; data-origin-width=&quot;523&quot; data-origin-height=&quot;992&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;p id=&quot;7f501d4c-b16f-475c-8e17-c1f4489746a4&quot; class=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p id=&quot;f2b10e45-eafc-4aeb-9d1c-054f9ed7deb6&quot; class=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr id=&quot;51d4ad6e-29d9-40da-9c0b-e6e81d26d6de&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p id=&quot;5c89be20-bc34-4bab-87f2-f753f886f904&quot; class=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p id=&quot;25d87734-7ebe-44a2-bbd1-8a0a2b2710be&quot; class=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <author>WOOOOJI</author>
      <guid isPermaLink="true">https://wooj-coding-fordeveloper.tistory.com/88</guid>
      <comments>https://wooj-coding-fordeveloper.tistory.com/88#entry88comment</comments>
      <pubDate>Tue, 4 Apr 2023 00:01:56 +0900</pubDate>
    </item>
    <item>
      <title>[C/C++] 포인터란? 간단한 코드 예시로 이해해보자 !</title>
      <link>https://wooj-coding-fordeveloper.tistory.com/87</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;460&quot; data-origin-height=&quot;261&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rkZnB/btr681LgyAX/MIWi1wjUjrZUIOoz51hbF1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rkZnB/btr681LgyAX/MIWi1wjUjrZUIOoz51hbF1/img.jpg&quot; data-alt=&quot;너는 나 나는 너 - 지코&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rkZnB/btr681LgyAX/MIWi1wjUjrZUIOoz51hbF1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrkZnB%2Fbtr681LgyAX%2FMIWi1wjUjrZUIOoz51hbF1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;460&quot; height=&quot;261&quot; data-origin-width=&quot;460&quot; data-origin-height=&quot;261&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;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;br /&gt;&lt;b&gt;Pointer(포인터)&lt;/b&gt;&lt;br /&gt;&lt;/span&gt;메모리 &lt;b&gt;&quot;주소&quot;&lt;/b&gt;를 저장하는 &lt;b&gt;&lt;b&gt;&quot;변수&quot;&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;/b&gt;&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/blockquote&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&quot;아니 그게 뭔말이에요...? 그건 뭐 언제 왜 쓰는데요;;;;&quot;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;만약에, a라는 변수가 있다고 해봅시다.&lt;/p&gt;
&lt;pre id=&quot;code_1680236503061&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;int a = 10;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;해당 변수는 메모리 영역 어딘가에 &quot;주소&quot;를 가지고 자리 잡고 있을겁니다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;그리고 그 주소안에는 10이라는 정수가 살고있죠. 만약에 a가 가지고 있는 값을 다른 주소에 저장하고 싶다면?&lt;/p&gt;
&lt;pre id=&quot;code_1680236560267&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;int a = 10;
int b = a;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;위 코드와 같이 int b = a 와 같다고 선언함으로써 b는 a값을 가지게 됩니다!&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;근데 뭔가 궁금한게 생기지 않나요?&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;저렇게 b = a 라고 선언하면 b가 a의 주소를 가지고 주소안에 있는 값을 가지는 걸까?&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;아니면 a값을 복사해서 b의 주소안에 넣는 걸까?&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;위와 같이 선언하게 되면 b는 a의 주소안에 있는 10이라는 값을 복사해서 b의 주소에 저장하게 됩니다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;즉, 값이 똑같은데 메모리 영역은 2개를 차지하게 되는거죠 !!! 이렇게 되면 불필요한 메모리를 사용하게 되는겁니다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Pointer&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;자 그러면 포인터는 &lt;b&gt;&quot;주소&quot;를 &quot;변수&quot;&lt;/b&gt;에 저장한다고 했습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;그렇게 되면 메모리는 하나뿐인데 a, b는 같은 값을 가지게 되겠죠? 코드로 한번 해봅시다.&lt;/p&gt;
&lt;pre id=&quot;code_1680236956869&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;  int a = 10;
  int* b = &amp;amp;a;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;u&gt;*, &amp;amp;라는 연산자를 활용한걸 확인 할 수 있습니다.&lt;/u&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;* 연산자&lt;/b&gt; : 포인터 변수가 가리키는 메모리 주소에 저장된 값을 가져옵니다. &lt;u&gt;int* b&lt;/u&gt; 는 포인터 변수라고 선언하는것 입니다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;amp; 연산자&lt;/b&gt;&lt;span style=&quot;color: #333333; text-align: center;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;: &lt;span style=&quot;color: #ffffff;&quot;&gt;변수의 메모리 주소를 구할 때 사용됩니다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;pre id=&quot;code_1680237126416&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// 변수 a선언
int a = 10;

// b는 포인터를 의미한다. 초기화 값은 a변수의 메모리 주소다.
int* b = &amp;amp;a;&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1680237152704&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;std::cout &amp;lt;&amp;lt; *b &amp;lt;&amp;lt; std::endl; // 10&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;amp;a를 사용하여 a변수의 메모리 주소값을 가져옵니다. 그리고 *b 포인터 변수에 메모리 주소값을 저장합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;*b를 통해 메모리 주소에 저장된 값을 가져옵니다 -&amp;gt; 10&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;b에 들어가 있는 값을 초기화 하면 a도 변할까?&lt;/h3&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;b에는 a변수의 메모리 주소값이 들어가있습니다. 그안에 값에 접근을 하여 다른 값으로 초기화 한다면 a값도 변하지 않을까요???&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1680237421189&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;  int a = 10;
  int* b = &amp;amp;a;

  *b = 40;
  std::cout &amp;lt;&amp;lt; a &amp;lt;&amp;lt; std::endl; // 40&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예상했던것 처럼 똑같은 메모리를 사용하기에 포인터 b에서 값에 접근하여 초기화시 a의 값도 변하는걸 확인할 수 있습니다 :)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;심화 - 메모리 영역내에서 포인터의 위치&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;626&quot; data-origin-height=&quot;226&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/W7ipW/btr62XDdYlY/um4B06bWHPVfPxf5a4fAB0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/W7ipW/btr62XDdYlY/um4B06bWHPVfPxf5a4fAB0/img.png&quot; data-alt=&quot;배열의 메모리 영역&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/W7ipW/btr62XDdYlY/um4B06bWHPVfPxf5a4fAB0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FW7ipW%2Fbtr62XDdYlY%2Fum4B06bWHPVfPxf5a4fAB0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;626&quot; height=&quot;226&quot; data-origin-width=&quot;626&quot; data-origin-height=&quot;226&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;배열의 메모리 영역&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;자 포인터가 메모리 영역에 대해 나타내는걸 알았으니, 메모리 영역의 구조에 대해 간단하게 나마 알아봐야겠죠?&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;다음과 같이 변수를 선언했다고 해봅시다.&lt;/p&gt;
&lt;pre id=&quot;code_1680238844013&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;  int a = 10;
  int b = 20;
  int* c = &amp;amp;a;


  std::cout &amp;lt;&amp;lt; *c &amp;lt;&amp;lt; std::endl; // 10&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;포인터 c의 메모리 주소는 a변수 메모리 주소를 가지고 있습니다. 그래서 출력 시 10이라는 값이 나오죠!&lt;/p&gt;
&lt;pre id=&quot;code_1680238902344&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;int* c = &amp;amp;a+1;

std::cout &amp;lt;&amp;lt; *c &amp;lt;&amp;lt; std::endl; //1861923792&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;a변수 다음으로 b를 선언했기에 a주소값 다음은 b가 나올거라 예상을 보통 합니다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;하지만 포인터에 +1 만큼 주소를 이동시키고 출력을 해보면 예상치 못한 값이 나오게 됩니다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;즉, 메모리는 순서대로 딱딱 옆에 붙어서 할당되는게 아니라 랜덤으로 어딘가에 위치하게 됩니다 :)&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;그렇다면, 메모리가 옆으로 나열되는 경우는 언제일까요???&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;배열의 메모리 영역&lt;/h3&gt;
&lt;pre id=&quot;code_1680239219405&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;  int arr[] = {1,6,4,5,2};
  int* ptr = arr;

  std::cout &amp;lt;&amp;lt; *ptr &amp;lt;&amp;lt; std::endl; // 1
  std::cout &amp;lt;&amp;lt; *(ptr+1) &amp;lt;&amp;lt; std::endl; // 6&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;*ptr은 arr의 메모리 주소값을 가지고 있습니다. 그래서 ptr을 출력 해보면 첫번째 메모리 값인 1이 출력됩니다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;여기서 포인터의 위치를 +1 이동시키면 다음 메모리 주소의 값인 6이 출력됩니다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;이와 같이 배열과 같은 구조에서는 메모리영역이 순서대로 나열되 있는 형태를 띄우게 됩니다 :)&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;오늘도 슬기로운 코딩 생활 하시길 바라며,&lt;/h4&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;궁금하신 점이나 잘못 기재된 점에 대한 피드백은 언제나 환영입니다 !&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>C++</category>
      <category>c</category>
      <category>C++</category>
      <category>Pointer</category>
      <category>배열</category>
      <category>변수</category>
      <category>포인터</category>
      <author>WOOOOJI</author>
      <guid isPermaLink="true">https://wooj-coding-fordeveloper.tistory.com/87</guid>
      <comments>https://wooj-coding-fordeveloper.tistory.com/87#entry87comment</comments>
      <pubDate>Fri, 31 Mar 2023 14:09:23 +0900</pubDate>
    </item>
    <item>
      <title>[잡담] 취직에 성공했다....취뽀후기!</title>
      <link>https://wooj-coding-fordeveloper.tistory.com/86</link>
      <description>&lt;blockquote data-ke-style=&quot;style3&quot;&gt;본 취직후기는 지인의 소개로 인해 면접을 보고 통과한 케이스입니다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;500&quot; data-origin-height=&quot;547&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/R2O2k/btr6N25Cv3q/brnh8vbn7dmevZNm3CLJj0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/R2O2k/btr6N25Cv3q/brnh8vbn7dmevZNm3CLJj0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/R2O2k/btr6N25Cv3q/brnh8vbn7dmevZNm3CLJj0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FR2O2k%2Fbtr6N25Cv3q%2Fbrnh8vbn7dmevZNm3CLJj0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;547&quot; data-origin-width=&quot;500&quot; data-origin-height=&quot;547&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;안녕하세요. 요즘 블로그에 글을 많이 안올렸는데, 사실 그동안 토익 공부랑 면접 준비를 하느라 바빴습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;시험도 끝나고 면접도 잘 봐서 합격하게 되었고, 저는 C++, Linux 소프트웨어 개발자로 취직하게 되었습니다?.......&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;제 글들을 보면 아시겠지만, 저는 자바 스프링 개발자입니다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;그래서 원래는 웹 백엔드 개발자로 취직을 할려고 목표를 세웠지만. 사실 웹 개발자가 저의 최종 목표는 아니였고, 최종적으로는 클라우드나 임베디드 소프트웨어를 개발하는 것이 저의 목표였습니다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;그때 마침 지인의 소개로 IVI를 개발하는 회사에서 연락이 왔고, 면접을 보고 합격했습니다 허허...&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;저는 Java, Spring이 주 스킬이여서 사실 많은 걱정도 있었습니다만. 고작 학원에서 배운 것들이 전부이고 프로젝트도 한번 밖에 안해본 저로써는 아직 자바와 스프링의 온전히 저의 핵심 스킬이라고 말하기도 애매하였습니다. 그래서 아직은 젊고 하고싶은것도 많으니 한번 도전해보고자 C++, Linux 주니어 개발자로 취직하여서 배우면서 일을 하게 되었습니다 :)&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;현재 많은 분들이 개발자가 되기 위해 많은 노력을 하고 진로를 설정하고 있는 시즌인걸로 알고 있습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;개인적으로 처음 부터 공부하면서 취직하기 까지의 과정을 되새겨 보면, 명심해야될것은 하나 인거 같습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;내가 세상을 좀 더 나은 세상으로 만들기 위해서 무언가를 만들어냈다는 사실이 나를 재밌게 한다.&lt;br /&gt;&lt;/span&gt;그래서 배우는것을 두려워 하지 말고, 도전하는걸 즐기자.&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;</description>
      <author>WOOOOJI</author>
      <guid isPermaLink="true">https://wooj-coding-fordeveloper.tistory.com/86</guid>
      <comments>https://wooj-coding-fordeveloper.tistory.com/86#entry86comment</comments>
      <pubDate>Wed, 29 Mar 2023 19:55:52 +0900</pubDate>
    </item>
    <item>
      <title>[Git &amp;amp; Github] Pull Request? 하는 방법과 이유.</title>
      <link>https://wooj-coding-fordeveloper.tistory.com/85</link>
      <description>&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;Pull Request는 누군가의 레파지토리를 가져다가 수정하고 그게 반영되게 해주세요 ㅠ&lt;br /&gt;&lt;/span&gt;라고 말하는거랄까?......&lt;/b&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-03-24 오후 4.15.27.png&quot; data-origin-width=&quot;1062&quot; data-origin-height=&quot;478&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EvRbf/btr5OxYPtsv/rFH21ZjOm1qJ4xB1lL1XTk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EvRbf/btr5OxYPtsv/rFH21ZjOm1qJ4xB1lL1XTk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EvRbf/btr5OxYPtsv/rFH21ZjOm1qJ4xB1lL1XTk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEvRbf%2Fbtr5OxYPtsv%2FrFH21ZjOm1qJ4xB1lL1XTk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1062&quot; height=&quot;478&quot; data-filename=&quot;스크린샷 2023-03-24 오후 4.15.27.png&quot; data-origin-width=&quot;1062&quot; data-origin-height=&quot;478&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;내가 깃허브에서 검색을 하던 도중 맘에드는 Someone's Repo를 발견했다.&lt;/h4&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;흠.... 이걸 뭔가 가져다가 조금 수정하면 되게 좋은 작업이 될거 같다!! 그렇다면 어떡해야 하지?......&lt;/h4&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;일단, Someone's Repo를 복제해다가 나의 로컬 저장소에 저장을 먼저 해야 될 것이고, 로컬에서 코드를 업데이트하고 Commite을 한 다음에 Someone's Repo에도 적용이 되게 요청을 하면 될것이다 !!&lt;/h4&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;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;복제를 한다 -&amp;gt; Fork&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;My Repo에 저장된 것을 로컬 저장소에 저장한다 -&amp;gt; Clone&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;코드를 업데이트한다.&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Commite을 한다.&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;My Repo코드를 Someone's Repo에 적용되게 Pull Request(요청)을 한다.&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;h1 data-ke-size=&quot;size26&quot;&gt;1. Fork 하기&lt;/h1&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_스크린샷 2023-03-24 오후 4.28.17.png&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;1131&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8jKfv/btr5FbcqdI9/IABXLxSnE2ueT93dRYVhQ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8jKfv/btr5FbcqdI9/IABXLxSnE2ueT93dRYVhQ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8jKfv/btr5FbcqdI9/IABXLxSnE2ueT93dRYVhQ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8jKfv%2Fbtr5FbcqdI9%2FIABXLxSnE2ueT93dRYVhQ1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3000&quot; height=&quot;1131&quot; data-filename=&quot;edited_스크린샷 2023-03-24 오후 4.28.17.png&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;1131&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원하는 Repo에 들어가 우측 상단에 Fork를 눌러서 복제를 합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1712&quot; data-origin-height=&quot;1090&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bTgddK/btr5N9qrLry/pBAcs1wJJ3Jpx8ViTnjhkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bTgddK/btr5N9qrLry/pBAcs1wJJ3Jpx8ViTnjhkk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bTgddK/btr5N9qrLry/pBAcs1wJJ3Jpx8ViTnjhkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbTgddK%2Fbtr5N9qrLry%2FpBAcs1wJJ3Jpx8ViTnjhkk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1712&quot; height=&quot;1090&quot; data-origin-width=&quot;1712&quot; data-origin-height=&quot;1090&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Repository name : 저장소 이름 (원하는대로!)&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;Description : 설명&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-03-24 오후 4.31.54.png&quot; data-origin-width=&quot;2080&quot; data-origin-height=&quot;958&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Btyyk/btr5NwzN2wg/1zb5jV3VwymPj8XmkYJxE1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Btyyk/btr5NwzN2wg/1zb5jV3VwymPj8XmkYJxE1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Btyyk/btr5NwzN2wg/1zb5jV3VwymPj8XmkYJxE1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBtyyk%2Fbtr5NwzN2wg%2F1zb5jV3VwymPj8XmkYJxE1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2080&quot; height=&quot;958&quot; data-filename=&quot;스크린샷 2023-03-24 오후 4.31.54.png&quot; data-origin-width=&quot;2080&quot; data-origin-height=&quot;958&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;h1 data-ke-size=&quot;size26&quot;&gt;2. Clone 하기&lt;/h1&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-03-24 오후 4.33.47.png&quot; data-origin-width=&quot;1132&quot; data-origin-height=&quot;794&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bqSU6E/btr5NydcDFO/XFDqxvJu6VoFt2wyQK2uuK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bqSU6E/btr5NydcDFO/XFDqxvJu6VoFt2wyQK2uuK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bqSU6E/btr5NydcDFO/XFDqxvJu6VoFt2wyQK2uuK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbqSU6E%2Fbtr5NydcDFO%2FXFDqxvJu6VoFt2wyQK2uuK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1132&quot; height=&quot;794&quot; data-filename=&quot;스크린샷 2023-03-24 오후 4.33.47.png&quot; data-origin-width=&quot;1132&quot; data-origin-height=&quot;794&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Code 클릭시 뜨는 화면에서 HTTPS URL 주소를 복사합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1679643411855&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ cd [저장할 로컬 저장소 위치]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원격 저장소의 파일을 저장할 위치로 이동합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1679643384270&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ git clone [원격 저장소 URL]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;git clone 명령어를 통해 해당 위치에 파일을 복제합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-03-24 오후 4.35.52.png&quot; data-origin-width=&quot;1810&quot; data-origin-height=&quot;460&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bx9kUZ/btr5M7Ak2hv/T7gE7QQambjdqWwJrxqMgk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bx9kUZ/btr5M7Ak2hv/T7gE7QQambjdqWwJrxqMgk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bx9kUZ/btr5M7Ak2hv/T7gE7QQambjdqWwJrxqMgk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbx9kUZ%2Fbtr5M7Ak2hv%2FT7gE7QQambjdqWwJrxqMgk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1810&quot; height=&quot;460&quot; data-filename=&quot;스크린샷 2023-03-24 오후 4.35.52.png&quot; data-origin-width=&quot;1810&quot; data-origin-height=&quot;460&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h1 data-ke-size=&quot;size26&quot;&gt;3. 코드 수정 후 commit 다음 Pull Request 요청하기.&lt;/h1&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-03-24 오후 4.40.59.png&quot; data-origin-width=&quot;1642&quot; data-origin-height=&quot;110&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/drd4sW/btr5OzJd4Ju/q82nDxQzVLmHkBfcOKmy7K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/drd4sW/btr5OzJd4Ju/q82nDxQzVLmHkBfcOKmy7K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/drd4sW/btr5OzJd4Ju/q82nDxQzVLmHkBfcOKmy7K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdrd4sW%2Fbtr5OzJd4Ju%2Fq82nDxQzVLmHkBfcOKmy7K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1642&quot; height=&quot;110&quot; data-filename=&quot;스크린샷 2023-03-24 오후 4.40.59.png&quot; data-origin-width=&quot;1642&quot; data-origin-height=&quot;110&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일단 Test이니 코드 몇줄 삭제하고 커밋한 다음 푸쉬해서 진행해보도록 하겠습니다 !&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-03-24 오후 4.41.30.png&quot; data-origin-width=&quot;1156&quot; data-origin-height=&quot;454&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b4ec3r/btr5Od7mbeN/0g9eUNEoKZnio289Hbjkj0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b4ec3r/btr5Od7mbeN/0g9eUNEoKZnio289Hbjkj0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b4ec3r/btr5Od7mbeN/0g9eUNEoKZnio289Hbjkj0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb4ec3r%2Fbtr5Od7mbeN%2F0g9eUNEoKZnio289Hbjkj0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1156&quot; height=&quot;454&quot; data-filename=&quot;스크린샷 2023-03-24 오후 4.41.30.png&quot; data-origin-width=&quot;1156&quot; data-origin-height=&quot;454&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;푸쉬 후 원격 Repo로 들어와 Pull Request로 들어와주세용.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-03-24 오후 4.41.55.png&quot; data-origin-width=&quot;980&quot; data-origin-height=&quot;456&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bnzvQD/btr5NL4vmKn/ezzws1J2m8E7NCoD8B1dek/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bnzvQD/btr5NL4vmKn/ezzws1J2m8E7NCoD8B1dek/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bnzvQD/btr5NL4vmKn/ezzws1J2m8E7NCoD8B1dek/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbnzvQD%2Fbtr5NL4vmKn%2Fezzws1J2m8E7NCoD8B1dek%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;980&quot; height=&quot;456&quot; data-filename=&quot;스크린샷 2023-03-24 오후 4.41.55.png&quot; data-origin-width=&quot;980&quot; data-origin-height=&quot;456&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우측에 New pull Request를 클릭해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-03-24 오후 4.42.24.png&quot; data-origin-width=&quot;2996&quot; data-origin-height=&quot;1576&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ckwCZZ/btr5OP6f1QD/MJiKWWSFmItHxuFHNmxHGK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ckwCZZ/btr5OP6f1QD/MJiKWWSFmItHxuFHNmxHGK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ckwCZZ/btr5OP6f1QD/MJiKWWSFmItHxuFHNmxHGK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FckwCZZ%2Fbtr5OP6f1QD%2FMJiKWWSFmItHxuFHNmxHGK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2996&quot; height=&quot;1576&quot; data-filename=&quot;스크린샷 2023-03-24 오후 4.42.24.png&quot; data-origin-width=&quot;2996&quot; data-origin-height=&quot;1576&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;변경사항을 인지하고 보여줍니다. 브렌치를 선택하여 비교를 할 수도 있습니다. 우측 중앙에 Create pull Request를 클릭해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-03-24 오후 4.43.12.png&quot; data-origin-width=&quot;2580&quot; data-origin-height=&quot;1246&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LiUti/btr5HpauV1O/KLihwD5pq4nF4SypQrjVc0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LiUti/btr5HpauV1O/KLihwD5pq4nF4SypQrjVc0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LiUti/btr5HpauV1O/KLihwD5pq4nF4SypQrjVc0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLiUti%2Fbtr5HpauV1O%2FKLihwD5pq4nF4SypQrjVc0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2580&quot; height=&quot;1246&quot; data-filename=&quot;스크린샷 2023-03-24 오후 4.43.12.png&quot; data-origin-width=&quot;2580&quot; data-origin-height=&quot;1246&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 alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-03-24 오후 4.43.52.png&quot; data-origin-width=&quot;1900&quot; data-origin-height=&quot;998&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BJUjG/btr5LRErdau/qaApg248MmNVbLPkQeP2yK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BJUjG/btr5LRErdau/qaApg248MmNVbLPkQeP2yK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BJUjG/btr5LRErdau/qaApg248MmNVbLPkQeP2yK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBJUjG%2Fbtr5LRErdau%2FqaApg248MmNVbLPkQeP2yK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1900&quot; height=&quot;998&quot; data-filename=&quot;스크린샷 2023-03-24 오후 4.43.52.png&quot; data-origin-width=&quot;1900&quot; data-origin-height=&quot;998&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기까지가 Pull Request를 하는 방법 이였습니다 !!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-03-24 오후 4.44.42.png&quot; data-origin-width=&quot;1876&quot; data-origin-height=&quot;1392&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cWlRiB/btr5ORbVm0w/b1YxQHCRjK5uPuUHAYm4TK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cWlRiB/btr5ORbVm0w/b1YxQHCRjK5uPuUHAYm4TK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cWlRiB/btr5ORbVm0w/b1YxQHCRjK5uPuUHAYm4TK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcWlRiB%2Fbtr5ORbVm0w%2Fb1YxQHCRjK5uPuUHAYm4TK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1876&quot; height=&quot;1392&quot; data-filename=&quot;스크린샷 2023-03-24 오후 4.44.42.png&quot; data-origin-width=&quot;1876&quot; data-origin-height=&quot;1392&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;소유자 아이디로 접속하여 확인해보면 해당 요청이 정상적으로 이루어진걸 확인 할 수 있으며, 해당 코드를 Merge를 하지 말지 결정을 하게 됩니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-03-24 오후 4.45.31.png&quot; data-origin-width=&quot;1114&quot; data-origin-height=&quot;1068&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/boZ2Tn/btr5ORbVIYZ/mjQNQaWBc6kqqbi2VN47zK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/boZ2Tn/btr5ORbVIYZ/mjQNQaWBc6kqqbi2VN47zK/img.png&quot; data-alt=&quot;Pull Request를 해서 Merge를 하게 되면 귀여운 Pull Shark 아이콘도 주니 공부할겸 다들 한번 해보세요 !&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/boZ2Tn/btr5ORbVIYZ/mjQNQaWBc6kqqbi2VN47zK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FboZ2Tn%2Fbtr5ORbVIYZ%2FmjQNQaWBc6kqqbi2VN47zK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1114&quot; height=&quot;1068&quot; data-filename=&quot;스크린샷 2023-03-24 오후 4.45.31.png&quot; data-origin-width=&quot;1114&quot; data-origin-height=&quot;1068&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Pull Request를 해서 Merge를 하게 되면 귀여운 Pull Shark 아이콘도 주니 공부할겸 다들 한번 해보세요 !&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;여러 오픈 소스들에 직접적으로 기여할 수 있는 방법이며, 프로젝트 진행시 PM이 코드를 보고 반영할지 말지를 선택하는 업무 방식이 될 수도 있으며, 여러명과 함께 작업시 꼭 필요한 방법입니다 :)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;궁금하신점이나 잘못 기재된점에 대한 피드백은 언제나 환영입니다 :)&lt;/blockquote&gt;</description>
      <category>Git &amp;amp; Github</category>
      <category>clone</category>
      <category>Fork</category>
      <category>git</category>
      <category>github</category>
      <category>Merge</category>
      <category>pull request</category>
      <category>깃</category>
      <category>깃허브</category>
      <author>WOOOOJI</author>
      <guid isPermaLink="true">https://wooj-coding-fordeveloper.tistory.com/85</guid>
      <comments>https://wooj-coding-fordeveloper.tistory.com/85#entry85comment</comments>
      <pubDate>Thu, 23 Mar 2023 23:40:47 +0900</pubDate>
    </item>
    <item>
      <title>[잡담] 코딩테스트를 풀 때 나의 접근 방식.</title>
      <link>https://wooj-coding-fordeveloper.tistory.com/84</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zK1tx/btr5oN9Iqlr/euBcQ8WwLkIcl7g1Yt8upK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zK1tx/btr5oN9Iqlr/euBcQ8WwLkIcl7g1Yt8upK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zK1tx/btr5oN9Iqlr/euBcQ8WwLkIcl7g1Yt8upK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzK1tx%2Fbtr5oN9Iqlr%2FeuBcQ8WwLkIcl7g1Yt8upK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;609&quot; height=&quot;343&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;이 문제가 나한테서 검증하고 싶은게 뭘까?&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;저는 항상 이 마인드로 접근을 합니다 :)&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;세상에 존재하는 모든 문제, 테스트들은 검증을 하고자 하는게 있고 결과를 원합니다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;그 중 에서도 많은 기업들에서 코딩 테스트를 보게 하는 이유는 분명히 존재합니다. 여러분들의 실력이 혹시는 구라가 아닌지 ㅋ&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;+ 이 사람이 문제 해결을 잘 하는지.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;그래서 문제를 읽어보고 제일 먼저 생각이 들어야 하는 것은....&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;1. 이 문제에서 주어진 값들로 어떤 결과가 나오면 될까?&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size14&quot;&gt;말 그대로 매개변수를 가지고 어떤 결과를 만들면 되는 것인가? 이것을 제일 먼저 파악해야 합니다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. 구하기 위해서는 어떤 자료구조와 알고리즘이 필요한가?&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size14&quot;&gt;여기서부터가 중요합니다. 구해야 하는 결과를 알았다면 일단 어떤 자료구조를 쓰는게 효율적이면서 정확한지 파악해야 합니다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;예를 들면 중복 자료를 제거해서 담아야 한다면 -&amp;gt; Set, HashMap 등&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;Index개념을 활용해야 한다면 -&amp;gt; ArrayList, LinkedList 등&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size14&quot;&gt;자료구조를 처음에 잘 선택함으로써 알고리즘적으로 몇가지 문제들은 이미 해결한거나 다름 없을것 입니다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size14&quot;&gt;그다음으로 어떻게 풀어야할까? 에 대해서 접근해봐야 합니다. 이 때 본인이 알고 있는 알고리즘들이 몇가지 생각날텐데 그것을 잘 활용하는게 매우 중요합니다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;완전탐색으로 총 경우의 수를 구한다 -&amp;gt; Brute Force, DPS 등&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;정렬을 해야한다 -&amp;gt; 퀵정렬, 분할정복 등&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;그리고 무조건 문제를 풀기전에 종이든 아이패드든 어딘가에 과정을 적어보십쇼 !&lt;/b&gt;&lt;/h2&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;생각보다 매우 중요합니다.&lt;br /&gt;&lt;/span&gt;무작정 머리에 생각나는대로 바로 달려들어버리면 결과값을 구했을때 만약 내가 생각했던거와 다른 값이 나온다. 그러면 다시 거꾸로 생각해보고, 이상이 없는데 라는 생각이 드는 순간 망합니다....&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;무조건 처음에 차근차근 어딘가에 정리하면서 문제를 해결해보시고, 그다음에 코드로 작업을 하는게 개인적으로 훨씬 정확도가 높다고 생각 듭니다 :)&lt;/blockquote&gt;</description>
      <category>프로그래머스 코딩 테스트</category>
      <author>WOOOOJI</author>
      <guid isPermaLink="true">https://wooj-coding-fordeveloper.tistory.com/84</guid>
      <comments>https://wooj-coding-fordeveloper.tistory.com/84#entry84comment</comments>
      <pubDate>Wed, 22 Mar 2023 21:19:48 +0900</pubDate>
    </item>
    <item>
      <title>[잡다한 생각들] 첫 외주 프로젝트와 코드에 대한 고민들...</title>
      <link>https://wooj-coding-fordeveloper.tistory.com/83</link>
      <description>&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;297&quot; data-origin-height=&quot;170&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ndzFv/btr40ETzSgL/GMCo4aByMpNz4HbRyAhUR1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ndzFv/btr40ETzSgL/GMCo4aByMpNz4HbRyAhUR1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ndzFv/btr40ETzSgL/GMCo4aByMpNz4HbRyAhUR1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FndzFv%2Fbtr40ETzSgL%2FGMCo4aByMpNz4HbRyAhUR1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;297&quot; height=&quot;170&quot; data-origin-width=&quot;297&quot; data-origin-height=&quot;170&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;드디어 실제로 사용자들에게 서비스를 할 웹프로젝트를 개발하게 됬습니다 :)&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;사실은 아무나 붙잡고 외주하겠다 이러면서 구하게 된 일은 아닙니다 하핳 !&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;어머니가 작은 인테리어 디자인 회사를 운영중이신데, 아직은 규모가 작다보니 많은 견적문의를 받기 힘드신 상황입니다...&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;블로그와 인스타그램에서 적극적으로 홍보중이시지만, 불규칙적인 견적서 형태와 요청이 많다보니 일일히 보면서 처리하기에 힘이 드는편입니다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;그래서 회사에서 진행했던 디자인 포트폴리오를 소개하면서 견적문의를 만들어 정형화된 문항을 작성하게 함으로써 견적서를 통일시켜 업무에 있어서 좀 더 쉽게 진행할 수 있도록 할 예정이며, 홍보에 힘이 될 수 있도록 여러 시스템 개발을 고려중입니다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;무엇보다 필요에 의해서 편리하기 위해서 개발을 한다는 사실이 제일 저에겐 흥미스럽고 재밌는 점이였고, 전에 했던 팀프로젝트에서는 그냥 &quot;난 이런걸 배워서 이렇게 만들어봤어 !&quot; 이였기 때문에 사실 어떻게 구현을 했고 어떤 점에서 이렇게 구현을 했는지에 대해 명확한 표현들을 쓰기 힘들었다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;. 하지만 지금 하게 될 이 프로젝트는 내가 필요에 의해서, 편리하기 위해서 만들기에 전보다 훨씬 더 많은 고민을 하게 될 것이고, 재밌을거 같다 헤헤헤헿!!!!&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;262&quot; data-origin-height=&quot;192&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dhRFc0/btr5cEdaPRE/gtry23UkmwsCUwb4euPzHK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dhRFc0/btr5cEdaPRE/gtry23UkmwsCUwb4euPzHK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dhRFc0/btr5cEdaPRE/gtry23UkmwsCUwb4euPzHK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdhRFc0%2Fbtr5cEdaPRE%2Fgtry23UkmwsCUwb4euPzHK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;262&quot; height=&quot;192&quot; data-origin-width=&quot;262&quot; data-origin-height=&quot;192&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;b&gt;코드에 대한 많은 고민들....&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;아직까지 저는 레거시 코드를 작성하는 주니어 개발자라고 생각이 듭니다...지금 기획중인 웹프로젝트는 앞으로 계속 유지보수 및 보완을 해가며 발전시키는 방식으로 유지될 프로젝트입니다. 그런 점에서 처음부터 코드를 잘 작성하여 유지보수와 성능적인 면을 잘 보여줄 수 있어야 한다는 고민이 많이 듭니다 :)&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;처음으로 팀 프로젝트를 했을때는 일단 기간내에 완성을 해야하는게 문제였는데(프로젝트 기간이 1달이였기 때문이다;;;)&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;이제는 실제로 서비스를 제공하고 유지를 해야하기에 걱정, 근심, 고민이 많다....그래서 어떻게 해야 할까? 라는 생각이 계속 드는데&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;정답을 알 것 같다.&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;그냥 일단 저질러 보자.&amp;nbsp;&lt;/b&gt;내가 코드를 거지같이 짜든 잘 짜든 아무 상관없다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;거지같은 코드를 완성시켰다면, 유지보수를 하는 입장에서 배워가는것 역시 많을것이기 때문입니다. 내가 항상 나의 코드만 보고 수정하고 업그레이드 시키는게 아니라 남의 코드를 보고도 개발해야 할 수 있어야 하니 오히려 좋은 방향이 될 것 같다는 생각이 든다 !&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <author>WOOOOJI</author>
      <guid isPermaLink="true">https://wooj-coding-fordeveloper.tistory.com/83</guid>
      <comments>https://wooj-coding-fordeveloper.tistory.com/83#entry83comment</comments>
      <pubDate>Tue, 21 Mar 2023 13:37:25 +0900</pubDate>
    </item>
    <item>
      <title>[Java Error] java.lang.IndexOutOfBoundsException 해결법</title>
      <link>https://wooj-coding-fordeveloper.tistory.com/82</link>
      <description>&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;IndexOutOfBoundsException&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;br /&gt;&lt;/span&gt;배열의 범위를 벗어난 인덱스에 접근하여서 발생합니다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;pre id=&quot;code_1679364732252&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;    int[] arr = {1,2,3,4,5,6,7,8};
    int a = arr[9];&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 코드에서 배열은 총 길이가 8입니다. 하지만 인덱싱 개념으로는 7까지 존재합니다. 그런데 밑에서 배열의 9번째 값을 꺼낼려고 시도합니다. 바로 이 순간 &lt;b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;IndexOutOfBoundsException&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;이 발생하게 됩니다 :(&lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;보통 많이 하는 실수...&lt;/b&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1679365114626&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;        for(int i = 0; i &amp;lt;= 8; i++){
            arr[i];
        }&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아마 프로그래밍을 접한지 얼마 안됬을때 제일 많이 하는 실수일거 같습니다. i 반복의 종료시점이 INDEX범위를 벗어납니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1~8까지의 숫자가 있다면 인덱스는 0~7까지 존재합니다. 하지만 1~8까지 있으니까 8이 될때를 종료시점으로 해야겠다! 라는 실수를 처음에 많이 할 수 있습니다. i &amp;lt; 8 과 같이 코드를 수정해줘야 합니다.&lt;/p&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;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;br /&gt;오늘도 슬기로운 코딩생활 하시길 바라며,&lt;br /&gt;궁금하신점이나 잘못기재된 점에 대한 피드백은 언제나 환영입니다 :)&lt;/span&gt;&lt;/blockquote&gt;</description>
      <category>Error</category>
      <author>WOOOOJI</author>
      <guid isPermaLink="true">https://wooj-coding-fordeveloper.tistory.com/82</guid>
      <comments>https://wooj-coding-fordeveloper.tistory.com/82#entry82comment</comments>
      <pubDate>Mon, 20 Mar 2023 23:01:23 +0900</pubDate>
    </item>
    <item>
      <title>[AWS] Amazon Web Serivce 란?</title>
      <link>https://wooj-coding-fordeveloper.tistory.com/81</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-03-19 오후 11.35.03.png&quot; data-origin-width=&quot;2556&quot; data-origin-height=&quot;803&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dM8WA8/btr4wLlcdEW/QC4KKzzFoYN1hsk1LqkTW0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dM8WA8/btr4wLlcdEW/QC4KKzzFoYN1hsk1LqkTW0/img.png&quot; data-alt=&quot;AWS 공식 홈페이지&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dM8WA8/btr4wLlcdEW/QC4KKzzFoYN1hsk1LqkTW0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdM8WA8%2Fbtr4wLlcdEW%2FQC4KKzzFoYN1hsk1LqkTW0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2556&quot; height=&quot;803&quot; data-filename=&quot;스크린샷 2023-03-19 오후 11.35.03.png&quot; data-origin-width=&quot;2556&quot; data-origin-height=&quot;803&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;AWS 공식 홈페이지&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&amp;nbsp;AWS(Amazon Web Service)&lt;br /&gt;뭔가 들으면 어렵고 사용하기 힘들것 같지만 실제로 그렇지 않습니다.&lt;br /&gt;Amazon에서 Server를 돈을 받고 제공하는 시스템이며, 여러가지 인프라 시스템과 기능들을 제공하고 있어서 서버를 효율적으로 사용하며 관리가 가능하여 인기가 많습니다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;AWS (Amazon Web Service)&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AWS는 190개 이상의 서비스를 제공하고 있으며 스토리지, DB, 인프라 기술, AI, 데이터 분석 등과 같은 많은 기능을 제공합니다. 아마존의 모든 서비스는 API중심으로 설계되어 있어 모든 기능을 API로 사용이 가능합니다. 세계 점유율 1위를 달리고 있는 클라우드 이며, 총 128개 이상의 Edge Location을 보유해 글로벌 서비스를 최적의 환경속에서 제공합니다.&lt;/p&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;왜 사용할까? 인기가 많은 이유는?&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;이유는 간단합니다.&amp;nbsp;&lt;/b&gt;&lt;b&gt;비용이 저렴하고 간편하기 때문입니다 :)&amp;nbsp;&lt;/b&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;b&gt;하지만 클라우드 서비스를 이용하면 위와 같은 문제를 신경 쓸 필요가 없습니다.&amp;nbsp;&lt;/b&gt;비용만 지불 한다면 아마존과 같은 클라우드 회사에서 여러 인프라 및 서버를 제공하는것이죠. 직접 서버를 위해 하드웨어를 구매하거나 업그레이드를 시키는 걱정을 안해도 됩니다 :)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; 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;어느 정도 수준의 &quot;서비스&quot;를 제공하냐가 기준으로 분류됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;u&gt;&lt;b&gt;IaaS(Infra as a Service)&lt;/b&gt;&lt;/u&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;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Server, Networt Devices, OS 등을 빌려주는 서비스&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;u&gt;&lt;b&gt;PaaS(Platform as a Service)&lt;/b&gt;&lt;/u&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;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;인프라와 IT기술을 빌려준다. 다양한 서비스도 함께 제공.&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;임대 서버에 해당된다. OS가 설치된 서버에 사용자가 어플리케이션 등을 직접 설치하여서 사용한다.&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;u&gt;&lt;b&gt;SaaS(Software as a Service)&lt;/b&gt;&lt;/u&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;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;설치해서 사용해야 됬던 소프트웨어를 제공해준다.&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대부분의 모든 클라우드 서비스가 위에 세가지 종류를 모두 지원해준다. 대표적인게 AWS이고 국내기업으로는 Naver의 NCP(Naver Cloud Platform)에서도 모두 지원을 한다.&lt;/p&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>
      <author>WOOOOJI</author>
      <guid isPermaLink="true">https://wooj-coding-fordeveloper.tistory.com/81</guid>
      <comments>https://wooj-coding-fordeveloper.tistory.com/81#entry81comment</comments>
      <pubDate>Sun, 19 Mar 2023 22:57:16 +0900</pubDate>
    </item>
    <item>
      <title>[Java] POJO (Plain Old Java Object) 란? feat. 코드로 알아보자!</title>
      <link>https://wooj-coding-fordeveloper.tistory.com/80</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;229&quot; data-origin-height=&quot;220&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TSlSh/btr4uIIOaJU/iUPeV2KMp5BnpOHnRM9eS0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TSlSh/btr4uIIOaJU/iUPeV2KMp5BnpOHnRM9eS0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TSlSh/btr4uIIOaJU/iUPeV2KMp5BnpOHnRM9eS0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTSlSh%2Fbtr4uIIOaJU%2FiUPeV2KMp5BnpOHnRM9eS0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;229&quot; height=&quot;220&quot; data-origin-width=&quot;229&quot; data-origin-height=&quot;220&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;POJO (Plain Old Java Object)&lt;br /&gt;&lt;/span&gt;말 그대로 &quot;오래된 방식의 간단한 자바 객체&quot; 이다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;POJO&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;간단하게 말해서 필드와 Getter, Setter와 같은 기본 기능만을 갖는 기본 객체를 의미한다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;자세히는 특정 &quot;기술&quot;에 종속되 있는 상태로 개발하지 않는 개념을 위해 등장한 언어이다. 종속성으로 인해 시스템 업그레이드, 모듈 교체와 같은 상황에서 많은 불편함이 있었기에 POJO라는 개념이 탄생했다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;(특정 기술 == Framework)&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #1b711d;&quot;&gt;&lt;b&gt;아마 자바 스프링 개발자이기에 해당 내용이 궁금할 것이다.&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;Spring이 POJO개념을 잘 지킨 프레임워크이기 때문이다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;IOC, DI, AOP 와 같은 개념들이 모두 결합력을 느슨하게 하여 의존성을 낮춤으로써 종속성이 낮아지는 현상이 발생한다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;즉, 위에서 말한 POJO에 가까운 개발이 가능하다는 뜻이다. 그렇다면 왜 POJO가 중요하냐?&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;특정 기술들이 종속성을 띄우게 되면, 객체지향적인 설계가 힘들거나 불가능한 경우가 발생한다. 그렇다보니 코드의 유지보수와 재사용이 매우 불편해진다. 당연히 모든 개발자라면 객체지향개념의 중요성과 편리함을 알고 있을테니 그러한 개념을 사용하지 못한다는건 매우 불편한 일이 될것이다. 말로만 해서 이해가 안갈테니 코드로 보자!&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;POJO를 지킨 코드&lt;/b&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1679108682444&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;package com.jpasample.service;

public class POJOClass {
    private String name;
    private int age;

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }


}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단순한 Getter, Setter로 POJO의 개념을 매우 잘 지킨 것을 알 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;POJO를 무시한 코드&lt;/b&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1679108774965&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public class POJOClass extends UserService{

    private String name;
    private int age;

    @Override
    public List&amp;lt;User&amp;gt; findUsers() {
        return super.findUsers();
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;UserService클래스의 기능을 사용하기 위해 Extends를 받은 코드이다. 이렇게 되면 UserService의 메소드를 사용하기 위해 많은 양의 코드를 리펙토링 해야하며, 코드의 가독성 및 유지보수나 확장 측면에서 어려움이 생길 수 밖에 없다^........&lt;/p&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 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Spring의 POJO개념을 지킨 코드&lt;/b&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1679109024227&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public class POJOClass{

    @Autowired
    UserRepository userRepository;
    
    private String name;
    private int age;
    
    public void test(){
        userRepository.findAll();
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음과 같이 @Autowired를 활용하여 의존성 주입을 하여 느슨한 결합력을 갖게 되면서, 직접적으로 extends, implements를 하지 않아도 해당 클래스의 메소드에 접근할 수 있게 된다. 이렇게 되면 당연히 POJO를 무시한 코드에 비해 많은 장점이 존재하는데, extends를 하여 직접 메소드를 Override하여 작성하지 않아도 되면서 UserRepository 코드에 변경이 생겨도 같이 변하는 장점이 있다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;POJO 규칙&lt;/b&gt;&lt;/h2&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;특정 기술에 종속되어 있지 않은가?&lt;/li&gt;
&lt;li&gt;테스트가 간편하고 용이한가?&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;딱 이 세가지만 기억하자.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;오늘도 슬기로운 코딩생활 하시길 바라며 !&lt;br /&gt;&lt;/span&gt;궁금하신점이나 잘못기재된 점에 대한 피드백은 언제나 감사합니다 :)&lt;/blockquote&gt;</description>
      <category>Java</category>
      <category>POJO</category>
      <category>Spring</category>
      <category>객체지향개념</category>
      <category>객체지향적</category>
      <category>스프링</category>
      <category>스프링 POJO</category>
      <category>자바 POJO 코드</category>
      <category>자바 객체</category>
      <author>WOOOOJI</author>
      <guid isPermaLink="true">https://wooj-coding-fordeveloper.tistory.com/80</guid>
      <comments>https://wooj-coding-fordeveloper.tistory.com/80#entry80comment</comments>
      <pubDate>Sat, 18 Mar 2023 12:14:05 +0900</pubDate>
    </item>
    <item>
      <title>[Spring] test코드 실행 시 NullPointerException 발생 (Serivce 증명시)</title>
      <link>https://wooj-coding-fordeveloper.tistory.com/79</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-03-17 오후 7.00.57.png&quot; data-origin-width=&quot;927&quot; data-origin-height=&quot;237&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NSnOu/btr4sk2Pdkk/S8P5t0WxlC8BwvnaeDpP31/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NSnOu/btr4sk2Pdkk/S8P5t0WxlC8BwvnaeDpP31/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NSnOu/btr4sk2Pdkk/S8P5t0WxlC8BwvnaeDpP31/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNSnOu%2Fbtr4sk2Pdkk%2FS8P5t0WxlC8BwvnaeDpP31%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;927&quot; height=&quot;237&quot; data-filename=&quot;스크린샷 2023-03-17 오후 7.00.57.png&quot; data-origin-width=&quot;927&quot; data-origin-height=&quot;237&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;NPE(NullPointerException)&amp;nbsp;&lt;/h2&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;u&gt;null 값을 참조할 경우 발생시키는 예외이다.&lt;/u&gt; 개발자가 두려워 하는 에러 중 하나.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;text-align: center;&quot; data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;상황은 이러하다.&lt;br /&gt;Service클래스에서 만든 JPA를 활용한 DB접근 메소드를 검증하고자, test클래스를 만들어 실행 시켰다.&lt;br /&gt;자세한 코드는 다음과 같다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;h1 style=&quot;text-align: center;&quot;&gt;&lt;b&gt;Service&lt;/b&gt;&lt;/h1&gt;
&lt;pre id=&quot;code_1679047400344&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@Service
public class UserService {

    @Autowired
    UserRepository userRepository;


    public Long join(User user){
        userRepository.save(user); // JpaRepository 메소드 활용
        return user.getId();
    }&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h1 style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/h1&gt;
&lt;h1 style=&quot;text-align: center;&quot;&gt;&lt;b&gt;Test&lt;/b&gt;&lt;/h1&gt;
&lt;pre id=&quot;code_1679047448416&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;class UserServiceTest {

    @Autowired
    UserService userService;
    @Test
    void join() {
        User user = User.builder().id(2L).name(&quot;woojin&quot;).build();
        assertThat(userService.join(user)).isEqualTo(2L);
    }&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1 style=&quot;text-align: center;&quot;&gt;&lt;b&gt;Result&lt;/b&gt;&lt;/h1&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-03-17 오후 7.00.57.png&quot; data-origin-width=&quot;927&quot; data-origin-height=&quot;237&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NSnOu/btr4sk2Pdkk/S8P5t0WxlC8BwvnaeDpP31/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NSnOu/btr4sk2Pdkk/S8P5t0WxlC8BwvnaeDpP31/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NSnOu/btr4sk2Pdkk/S8P5t0WxlC8BwvnaeDpP31/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNSnOu%2Fbtr4sk2Pdkk%2FS8P5t0WxlC8BwvnaeDpP31%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;927&quot; height=&quot;237&quot; data-filename=&quot;스크린샷 2023-03-17 오후 7.00.57.png&quot; data-origin-width=&quot;927&quot; data-origin-height=&quot;237&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 style=&quot;text-align: center;&quot; data-ke-size=&quot;size26&quot;&gt;역추적으로 null인 부분을 찾고자 했지만 모든 필드는 초기화가 잘 되있었다....&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;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;그렇다. 여기서 눈 여겨 볼점은 user라는 객체안에 있는 필드가 null이여서 발생한 오류가 아닙니다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;user라는 객체 자체가 null이라는 뜻입니다 !&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;왜 이러한 에러가 발생하였을까...? Builder패턴을 사용하는데 내가 고려하지 못한 부분이 존재한건가?..........&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;정답은 간단간단 쏘 간단했습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1679047663461&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;class UserServiceTest {

    @Autowired
    UserService userService;
    @Test
    void join() {
        User user = User.builder().id(2L).name(&quot;woojin&quot;).build();
        assertThat(userService.join(user)).isEqualTo(2L);
    }&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;위 코드에서 이상한 점은?&lt;/p&gt;
&lt;pre id=&quot;code_1679047728912&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@SpringBootTest
class UserServiceTest {&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;@SpringBootTest 어노테이션을 쓰지 않았다............하.........&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;인텔리제이 툴을 사용하여 &quot;테스트 생성&quot;을 눌러서 클래스를 생성하다보니 @SpringBootTest가 명시가 안되있을거라고는 상상도 못했다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;얼마전까지만 해도 이클립스를 쓰다가 넘어와서 그런지 정말 황당한 실수를 했다...&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;@SpringBootTest는&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #555555; text-align: start;&quot;&gt;&lt;b&gt;단위 테스트와 같이 기능 검증을 위한 것이 아니라 spring framework에서 전체적으로 플로우가 제대로 동작하는지 검증하기 위해 사용 한다. 그래서 Spring Container가 돌아가지 않아서 @Autowired가 안된것이다.&lt;/b&gt;&lt;/span&gt;&amp;nbsp;&lt;b&gt;명시하지 않으면 @Service가 명시된 Bean를 사용하고자 해도 생성이 안되있기에 불가능하다.&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;즉 User를 생성하는 과정에선 문제가 없었지만 Serivce객체를 사용하는 과정에서 NPE가 발생한거였다 ^^&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Error</category>
      <author>WOOOOJI</author>
      <guid isPermaLink="true">https://wooj-coding-fordeveloper.tistory.com/79</guid>
      <comments>https://wooj-coding-fordeveloper.tistory.com/79#entry79comment</comments>
      <pubDate>Fri, 17 Mar 2023 19:12:22 +0900</pubDate>
    </item>
  </channel>
</rss>