(503,-503,'',503,0,0,'','','html1','[ETC] MPU9250으로 AHRS만들기','<div class=\"se-component se-sectionTitle se-l-default\" id=\"SE-dbe70bc8-d377-4e56-b68b-f490a386e99b\" style=\"margin: 0px; padding: 0px; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; line-height: inherit; font-family: se-nanumgothic, &quot;\\\\B098눔고딕&quot;, nanumgothic, sans-serif, Meiryo; vertical-align: baseline; position: relative; background-color: #ffffff;\">\r\n   <div class=\"se-component-content\" style=\"font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; margin: 0px auto; padding: 0px 40px; border: 0px; vertical-align: baseline; max-width: 100%;\">\r\n      <div class=\"se-section se-section-sectionTitle se-l-default\" style=\"font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;\">\r\n         <div class=\"se-module se-module-text\" style=\"font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;\">\r\n            <div class=\"se-component se-sectionTitle se-l-default\" id=\"SE-dbe70bc8-d377-4e56-b68b-f490a386e99b\" style=\"color: #333333; font-size: inherit; margin: 0px; padding: 0px; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; line-height: inherit; vertical-align: baseline; position: relative;\">\r\n               <div class=\"se-component-content\" style=\"margin: 0px auto; padding: 0px 40px; border: 0px; font: inherit; vertical-align: baseline; max-width: 100%;\">\r\n                  <div class=\"se-section se-section-sectionTitle se-l-default\" style=\"margin: 0px; padding: 0px; border: 0px; font: inherit; vertical-align: baseline;\">\r\n                     <div class=\"se-module se-module-text\" style=\"margin: 0px; padding: 0px; border: 0px; font: inherit; vertical-align: baseline;\">\r\n                        <p class=\"se-text-paragraph se-text-paragraph-align- \" id=\"SE-7be86f55-8506-4bf4-962d-41a80feed4ec\" style=\"padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; font-size: 0px; line-height: 1.5; font-family: inherit; vertical-align: baseline; word-break: break-word; overflow-wrap: break-word; white-space: pre-wrap;\"><span class=\"se-fs- se-ff-   \" id=\"SE-f8674065-b3dd-48d7-8e52-08d86a299112\" style=\"margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; font-size: 30px; line-height: inherit; vertical-align: baseline;\">AHRS란?</span></p>\r\n                        </div>\r\n                     </div>\r\n                  </div>\r\n               </div>\r\n            <div class=\"se-component se-text se-l-default\" id=\"SE-397b2387-337f-4015-8099-dbf398cf3aac\" style=\"margin: 10px 0px 0px; padding: 0px; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; line-height: inherit; vertical-align: baseline; position: relative;\">\r\n               <div class=\"se-component-content\" style=\"font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; margin: 0px auto; padding: 0px 40px; border: 0px; vertical-align: baseline; max-width: 100%;\">\r\n                  <div class=\"se-section se-section-text se-l-default\" style=\"font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;\">\r\n                     <div class=\"se-module se-module-text\" style=\"font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;\">\r\n                        <p class=\"se-text-paragraph se-text-paragraph-align- \" id=\"SE-0e4549b1-5d4a-432f-b82e-1ed3475e5228\" style=\"color: #333333; font-size: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.8; font-family: inherit; vertical-align: baseline; word-break: break-word; overflow-wrap: break-word; white-space: pre-wrap;\"><span class=\"se-fs- se-ff-   \" id=\"SE-2cfeb825-5328-4da2-a09a-4afa2331fdbd\" style=\"margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; font-size: 15px; line-height: inherit; vertical-align: baseline; color: #000000;\">자세방위시스템을 말하며 Attitude, Heading Reference System의 약자이다. 주로 IMU센서와 Magnetometer를 융합하여 자세와 절대 방위각을 찾을 수 있는 시스템 을 의미하여 종종 MARG(Magnetic, Angular Rate, and Gravity라고도 불리기도 한다. AHRS가 부족한 정보인 공간상의 위치정보를 얻기위한 고도계와 GPS를 추가적으로 융합시키면 관성항법시스템(INS: Inertial Navigation System)이 된다.</span></p>\r\n                        <p class=\"se-text-paragraph se-text-paragraph-align- \" id=\"SE-0e4549b1-5d4a-432f-b82e-1ed3475e5228\" style=\"padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: 1.8; font-family: inherit; vertical-align: baseline; word-break: break-word; overflow-wrap: break-word; white-space: pre-wrap;\"></p>\r\n                        </div>\r\n                     </div>\r\n                  </div>\r\n               </div>\r\n            </div>\r\n         </div>\r\n      </div>\r\n   </div>\r\n<div class=\"se-component se-text se-l-default\" id=\"SE-9fb13621-e712-449e-a8f5-91d59039db61\" style=\"font-size: medium; margin: 30px 0px 0px; padding: 0px; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; line-height: inherit; font-family: se-nanumgothic, &quot;\\\\B098눔고딕&quot;, nanumgothic, sans-serif, Meiryo; vertical-align: baseline; position: relative; color: #333333; background-color: #ffffff;\">\r\n   <div class=\"se-component-content\" style=\"margin: 0px auto; padding: 0px 40px; border: 0px; font: inherit; vertical-align: baseline; max-width: 100%;\">\r\n      <div class=\"se-section se-section-text se-l-default\" style=\"margin: 0px; padding: 0px; border: 0px; font: inherit; vertical-align: baseline;\">\r\n         <div class=\"se-module se-module-text\" style=\"margin: 0px; padding: 0px; border: 0px; font: inherit; vertical-align: baseline;\"></div>\r\n         </div>\r\n      </div>\r\n   </div>\r\n<div class=\"se-component se-image se-l-default\" id=\"SE-104508dc-af71-4795-927e-b239bed28363\" style=\"font-size: medium; margin: 20px 0px 0px; padding: 0px; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; line-height: inherit; font-family: se-nanumgothic, &quot;\\\\B098눔고딕&quot;, nanumgothic, sans-serif, Meiryo; vertical-align: baseline; position: relative; color: #333333; background-color: #ffffff;\">\r\n   <div class=\"se-component-content se-component-content-normal\" style=\"margin: 0px auto; padding: 0px 40px; border: 0px; font: inherit; vertical-align: baseline; max-width: 100%;\">\r\n      <div class=\"se-section se-section-image se-l-default se-section-align-center\" style=\"margin: 0px auto; padding: 0px; border: 0px; font: inherit; vertical-align: baseline; max-width: 400px;\">&nbsp;</div>\r\n      </div>\r\n   </div>','https://blog.naver.com/alexpark0922/221651198651','',7,0,10,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2021-11-03 09:28:49',2,'2021-11-03 09:28:49','112.222.138.204','','','','','','','','','','','',''),(505,-505,'',505,0,0,'','','html1','[Linux] Give Your Cinnamon Desktop Fresh And Elegant Look With Orchis GTK Theme','<p><iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/npn8ZktlKEs\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen=\"\"></iframe></p>','https://www.youtube.com/watch?v=npn8ZktlKEs','',0,0,1,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2021-11-06 18:36:15',0,'2021-11-06 18:36:15','192.168.219.101','','','','','','','','','','','',''),(506,-506,'',506,0,0,'','','html1','[빌리브마이크론㈜] 모션 감지 레이다 센서 MRS-10G','<table width=\"1200\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"color: #505050; margin: 0px auto; border-spacing: 0px; empty-cells: show; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif; background-color: #ffffff; font-size: 15px !important;\">\r\n   <tbody>\r\n      <tr>\r\n         <td style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 0px; font-family: &quot;Nanum Gothic&quot;; color: #666666;\">\r\n            <h3 class=\"support_title\" style=\"margin: 20px 0px 10px; padding: 0px 0px 0px 20px; color: #0f7fdd; font-size: 18px; line-height: 1.5; background: url(&quot;../img/icon_goods_v.gif&quot;) 0px 6px no-repeat; max-width: 1200px; width: 1200px;\">소개</h3>\r\n            <p style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\">MS-10G는 10GHz에서 동작하는 도플러(Doppler) 방식의 FMCW 레이더 센서 모듈입니다. 객체의 모션을 감지하고, 모션 인식된 객체와의 거리를 검출하는 모션 감지 센서로, 동작 범위는 RCS 1㎡ (성인 인체)를 기준으로 약 10m입니다. 모션감지 된 객체의 거리를 출력하므로 모션 감지 및 객체와의 거리 정보가 필요한 응용 제품에 적합합니다. 또한, 아두이노나 라즈베리파이와 연동하여 바로 사용이 가능 합니다.(센서구동 아두이노 코드 제공)</p>\r\n            <p class=\"text_1\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif; font-size: 14px; font-weight: bold;\">&nbsp;</p>\r\n            <p class=\"text_1\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif; font-size: 14px; font-weight: bold; text-align: center;\"><img src=\"https://www.devicemart.co.kr/data/editor/temp_16297786719342.png\" class=\"txc-image\" style=\"border: 0px none; vertical-align: top; max-width: 100%; clear: none; float: none;\" /></p>\r\n            <p style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><br /></p>\r\n            <table width=\"500\" cellpadding=\"0\" cellspacing=\"0\" style=\"color: #505050; margin: 0px auto; border-spacing: 0px; empty-cells: show; font-size: 15px !important;\"><colgroup><col width=\"37\" /><col width=\"76\" /><col width=\"83\" /><col width=\"60\" /><col width=\"109\" /></colgroup>\r\n               <tbody>\r\n                  <tr>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">Pin</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">MRS-10G&nbsp;</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">아두이노&nbsp;</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">Type</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">Description</span></p>\r\n                        </td>\r\n                     </tr>\r\n                  <tr>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">1</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">VCC</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">5V</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">Power</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">3.3V ~ 5.5V</span></p>\r\n                        </td>\r\n                     </tr>\r\n                  <tr>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">2</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">I2C_SCL</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">A5(SCL)</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">input</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">I2C clock</span></p>\r\n                        </td>\r\n                     </tr>\r\n                  <tr>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">3</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">I2C_SDA</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">A4(SDA)</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">In/out</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">I2C Data in/out</span></p>\r\n                        </td>\r\n                     </tr>\r\n                  <tr>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">4</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">ISR</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">A2</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">Output</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">Interrupt,</span></p>\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">Active Low</span></p>\r\n                        </td>\r\n                     </tr>\r\n                  <tr>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">5</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">EN</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">A1</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">Input</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">Enable,</span></p>\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">Active High</span></p>\r\n                        </td>\r\n                     </tr>\r\n                  <tr>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">6</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">GND</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">Ground</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">Ground</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">Ground</span></p>\r\n                        </td>\r\n                     </tr>\r\n                  <tr>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">7</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">NC</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">-</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">-</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">-</span></p>\r\n                        </td>\r\n                     </tr>\r\n                  <tr>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">8</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">NC</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">-</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">-</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">-</span></p>\r\n                        </td>\r\n                     </tr>\r\n                  <tr>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">9</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">NC</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">-</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">-</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">-</span></p>\r\n                        </td>\r\n                     </tr>\r\n                  <tr>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">10</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">NC</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">-</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">-</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-9da8bb94-7fff-a47d-e4de-242f8b941cb7\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">-</span></p>\r\n                        </td>\r\n                     </tr>\r\n                  </tbody>\r\n               </table>\r\n            <p class=\"text_1\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif; font-size: 14px; font-weight: bold; text-align: center;\">&nbsp;</p>\r\n            <p class=\"text_1\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif; font-size: 14px; font-weight: bold;\"><br /></p>\r\n            <p class=\"text_1\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif; font-size: 14px; font-weight: bold; text-align: center;\"><img src=\"https://www.devicemart.co.kr/data/editor/goods/1/2021/08/14068489_16354736245233.jpg\" class=\"txc-image\" style=\"border: 0px none; vertical-align: top; max-width: 100%; clear: none; float: none;\" /></p>\r\n            <p class=\"text_1\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif; font-size: 14px; font-weight: bold;\"><br /></p>\r\n            <p align=\"center\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\">&nbsp;</p>\r\n            <h3 class=\"support_title\" style=\"margin: 20px 0px 10px; padding: 0px 0px 0px 20px; color: #0f7fdd; font-size: 18px; line-height: 1.5; background: url(&quot;../img/icon_goods_v.gif&quot;) 0px 6px no-repeat; max-width: 1200px; width: 1200px;\">응용 분야</h3>\r\n            <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\">보안 및 감지 분야: 재실 센서, PIR센서 대치, IP카메라, 도어센서</p>\r\n            <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\">절전 분야: LED등, 자판기, 차량용 블랙박스&nbsp;</p>\r\n            <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\">가전 제품: 스마트 가전(편리성, 절전, 보안)</p>\r\n            <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\">모센 센싱 반응형 광고 : 자판기광고, 버스정류장광고, 지하철 광고</p>\r\n            <br />\r\n            <p style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\">&nbsp;</p>\r\n            <p style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\">&nbsp;</p>\r\n            <p style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\">&nbsp;</p>\r\n            <p align=\"center\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\">&nbsp;</p>\r\n            <h3 class=\"support_title\" style=\"margin: 20px 0px 10px; padding: 0px 0px 0px 20px; color: #0f7fdd; font-size: 18px; line-height: 1.5; background: url(&quot;../img/icon_goods_v.gif&quot;) 0px 6px no-repeat; max-width: 1200px; width: 1200px;\">사양</h3>\r\n            <ul style=\"margin: 0px; padding: 0px 0px 0px 20px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif; vertical-align: middle; list-style-position: initial; list-style-image: initial; float: none;\">\r\n               <li style=\"margin: 0px; padding: 0px; vertical-align: middle; list-style: disc; float: none;\">기능 : 모션감지&nbsp; 및 인식 거리 출력</li>\r\n               <li style=\"margin: 0px; padding: 0px; vertical-align: middle; list-style: disc; float: none;\">주파수&nbsp; : 10GHz&nbsp;</li>\r\n               <li style=\"margin: 0px; padding: 0px; vertical-align: middle; list-style: disc; float: none;\">동작 방식: 도플러 방식 레이더 FMCW 방식</li>\r\n               <li style=\"margin: 0px; padding: 0px; vertical-align: middle; list-style: disc; float: none;\">내장 마이크로 스트립 안테나&nbsp;</li>\r\n               <li style=\"margin: 0px; padding: 0px; vertical-align: middle; list-style: disc; float: none;\">감지 거리 : 10m</li>\r\n               <li style=\"margin: 0px; padding: 0px; vertical-align: middle; list-style: disc; float: none;\">열, 열 차단제 영향 없음</li>\r\n               <li style=\"margin: 0px; padding: 0px; vertical-align: middle; list-style: disc; float: none;\">주간 사용 가능&nbsp;</li>\r\n               <li style=\"margin: 0px; padding: 0px; vertical-align: middle; list-style: disc; float: none;\">통신방식 : I2C 10kbit/s(저속모드), 100kbit/s(표준모드), 400Kbps(Fast mode)</li>\r\n               <li style=\"margin: 0px; padding: 0px; vertical-align: middle; list-style: disc; float: none;\">감지 각도 : 시야 각도: 115*80°</li>\r\n               </ul>\r\n            <p style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\">&nbsp;</p>\r\n            <p style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\">&nbsp;</p>\r\n            <p style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\">&nbsp;</p>\r\n            <p style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\">&nbsp;</p>\r\n            <p align=\"center\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\">&nbsp;</p>\r\n            <h3 class=\"support_title\" style=\"margin: 20px 0px 10px; padding: 0px 0px 0px 20px; color: #0f7fdd; font-size: 18px; line-height: 1.5; background: url(&quot;../img/icon_goods_v.gif&quot;) 0px 6px no-repeat; max-width: 1200px; width: 1200px;\">제품 규격</h3>\r\n            <table cellpadding=\"0\" cellspacing=\"0\" style=\"color: #505050; margin: 0px auto; border-spacing: 0px; empty-cells: show; font-size: 15px !important;\"><colgroup><col width=\"137\" /><col width=\"256\" /></colgroup>\r\n               <tbody>\r\n                  <tr>\r\n                     <td colspan=\"2\" class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-2f53f7d6-7fff-fadc-7db2-c9cbada789c8\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">규격</span></p>\r\n                        </td>\r\n                     </tr>\r\n                  <tr>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-2f53f7d6-7fff-fadc-7db2-c9cbada789c8\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">주파수</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-2f53f7d6-7fff-fadc-7db2-c9cbada789c8\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">10.5 ~10.55GHz</span></p>\r\n                        </td>\r\n                     </tr>\r\n                  <tr>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-2f53f7d6-7fff-fadc-7db2-c9cbada789c8\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">변조방식</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-2f53f7d6-7fff-fadc-7db2-c9cbada789c8\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">FMCW</span></p>\r\n                        </td>\r\n                     </tr>\r\n                  <tr>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-2f53f7d6-7fff-fadc-7db2-c9cbada789c8\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">전원 방식</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-2f53f7d6-7fff-fadc-7db2-c9cbada789c8\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">DC 5V</span></p>\r\n                        </td>\r\n                     </tr>\r\n                  <tr>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-2f53f7d6-7fff-fadc-7db2-c9cbada789c8\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">안테나반사손실</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-2f53f7d6-7fff-fadc-7db2-c9cbada789c8\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">&lt;-12dB</span></p>\r\n                        </td>\r\n                     </tr>\r\n                  <tr>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-2f53f7d6-7fff-fadc-7db2-c9cbada789c8\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">전력 소모</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-2f53f7d6-7fff-fadc-7db2-c9cbada789c8\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">124mA</span></p>\r\n                        </td>\r\n                     </tr>\r\n                  <tr>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-2f53f7d6-7fff-fadc-7db2-c9cbada789c8\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">안테나 이득</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-2f53f7d6-7fff-fadc-7db2-c9cbada789c8\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">8dB</span></p>\r\n                        </td>\r\n                     </tr>\r\n                  <tr>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-2f53f7d6-7fff-fadc-7db2-c9cbada789c8\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">송신 출력 범위</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-2f53f7d6-7fff-fadc-7db2-c9cbada789c8\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">4 ~ 5dBm</span></p>\r\n                        </td>\r\n                     </tr>\r\n                  <tr>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-2f53f7d6-7fff-fadc-7db2-c9cbada789c8\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">FOV</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-2f53f7d6-7fff-fadc-7db2-c9cbada789c8\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">115 degree</span></p>\r\n                        </td>\r\n                     </tr>\r\n                  <tr>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-2f53f7d6-7fff-fadc-7db2-c9cbada789c8\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">외형 치수</span></p>\r\n                        </td>\r\n                     <td class=\"table_line\" style=\"overflow-wrap: break-word; word-break: break-all; line-height: 1.5; margin: 0px; padding: 10px; color: #666666; border-style: solid; border-color: #dddddd;\">\r\n                        <p dir=\"ltr\" style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\"><span id=\"docs-internal-guid-2f53f7d6-7fff-fadc-7db2-c9cbada789c8\" style=\"margin: 0px; padding: 0px; font-weight: 600;\">35 x 40 x 4.6 (mm)</span></p>\r\n                        </td>\r\n                     </tr>\r\n                  </tbody>\r\n               </table>\r\n            <p style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\">&nbsp;</p>\r\n            <p style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\">■ KC인증필 : R-R-VLV-MRS-10G</p>\r\n            <p style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\">■ 제조국 : 대한민국</p>\r\n            <p style=\"padding: 0px; font-family: &quot;Nanum Gothic&quot;, &quot;Malgun Gothic&quot;, Dotum, Gulim, &quot;Helvetica Neue&quot;, Helvetica, AppleGothic, Verdana, Arial, sans-serif;\">&nbsp;</p>\r\n            </td>\r\n         </tr>\r\n      </tbody>\r\n   </table>','https://www.devicemart.co.kr/goods/view?no=14068489','',2,0,5,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2021-12-03 11:04:10',2,'2021-12-03 11:04:10','112.222.138.204','','','','','','','','','','','',''),(504,-504,'',504,0,0,'','','html1','[ETC] DWM1000을 이용한 실내위치추적 기술','<p><iframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/znBaonH0uV8\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen=\"\"></iframe></p>','https://blog.naver.com/PostView.naver?blogId=mapes_khkim&logNo=222329691453&parentCategoryNo=&categoryNo=&viewDate=&isShowPopularPosts=false&from=postView','https://www.decawave.com/product/dwm1000-module/',2,1,5,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2021-11-05 09:03:09',1,'2021-11-05 09:03:09','112.222.138.204','','','','','','','','','','','',''),(507,-507,'',507,0,0,'','','html1','[Arduino] ESP32Time Library','<h1 style=\"font-size: 2.25rem; letter-spacing: 0.01em; font-family: &quot;Open Sans&quot;, &quot;Lucida Grande&quot;, Lucida, Verdana, sans-serif; font-weight: 400; line-height: 35px; margin-top: 0px;\">ESP32Time</h1>\r\n<p class=\"categories\" style=\"font-size: 16px; letter-spacing: 0.01em; font-family: &quot;Open Sans&quot;, &quot;Lucida Grande&quot;, Lucida, Verdana, sans-serif; line-height: 27.2px;\"><mark style=\"background-color: #f39c12; color: #ffffff; font-size: 13px; padding: 1px 5px;\">Timing</mark></p>\r\n<p class=\"description\" style=\"font-size: 16px; letter-spacing: 0.01em; font-family: &quot;Open Sans&quot;, &quot;Lucida Grande&quot;, Lucida, Verdana, sans-serif; line-height: 27.2px;\">Set and retrieve internal RTC time on ESP32 boards.<br />No need for external RTC module or NTP time synchronization.</p>\r\n<p class=\"author\" style=\"font-size: 16px; letter-spacing: 0.01em; font-family: &quot;Open Sans&quot;, &quot;Lucida Grande&quot;, Lucida, Verdana, sans-serif; line-height: 27.2px;\">Author:&nbsp;fbiego</p>\r\n<p class=\"maintainer\" style=\"font-size: 16px; letter-spacing: 0.01em; font-family: &quot;Open Sans&quot;, &quot;Lucida Grande&quot;, Lucida, Verdana, sans-serif; line-height: 27.2px;\">Maintainer:&nbsp;fbiego</p>\r\n<p style=\"font-size: 16px; letter-spacing: 0.01em; font-family: &quot;Open Sans&quot;, &quot;Lucida Grande&quot;, Lucida, Verdana, sans-serif; line-height: 27.2px;\"><a href=\"https://github.com/fbiego/ESP32Time\" style=\"cursor: pointer; color: #00979d; text-decoration-line: none; transition-duration: 0.2s; transition-property: color;\" target=\"_blank\">Read the documentation</a></p>\r\n<h3 style=\"color: #e67e22; font-family: &quot;Open Sans&quot;, &quot;Lucida Grande&quot;, Lucida, Verdana, sans-serif; font-size: 18px; font-weight: normal; letter-spacing: 1px; line-height: 25px; margin-bottom: 3px; margin-top: 32px;\">Compatibility</h3>\r\n<p class=\"compatibility\" style=\"font-size: 16px; letter-spacing: 0.01em; font-family: &quot;Open Sans&quot;, &quot;Lucida Grande&quot;, Lucida, Verdana, sans-serif; line-height: 27.2px;\">This library is compatible with&nbsp;<b>all</b>&nbsp;architectures so you should be able to use it on all the Arduino boards.</p>\r\n<h3 style=\"color: #e67e22; font-family: &quot;Open Sans&quot;, &quot;Lucida Grande&quot;, Lucida, Verdana, sans-serif; font-size: 18px; font-weight: normal; letter-spacing: 1px; line-height: 25px; margin-bottom: 3px; margin-top: 32px;\">Releases</h3>\r\n<p style=\"font-size: 16px; letter-spacing: 0.01em; font-family: &quot;Open Sans&quot;, &quot;Lucida Grande&quot;, Lucida, Verdana, sans-serif; line-height: 27.2px;\">To use this library, open the&nbsp;<a href=\"https://www.arduino.cc/en/Guide/Libraries\" style=\"cursor: pointer; color: #00979d; text-decoration-line: none; transition-duration: 0.2s; transition-property: color;\" target=\"_blank\">Library Manager</a>&nbsp;in the Arduino IDE and install it from there.</p>\r\n<ul style=\"margin: 0px; padding: 0px 24px; color: #434f54; font-family: &quot;Open Sans&quot;, &quot;Lucida Grande&quot;, Lucida, Verdana, sans-serif; font-size: 16px;\">\r\n   <li style=\"color: #7f8c8d;\"><a href=\"https://downloads.arduino.cc/libraries/github.com/fbiego/ESP32Time-1.0.4.zip\" style=\"cursor: pointer; color: #00979d; text-decoration-line: none; transition-duration: 0.2s; transition-property: color;\" target=\"_blank\">1.0.4</a>&nbsp;(latest)</li>\r\n   <li style=\"color: #7f8c8d;\"><a href=\"https://downloads.arduino.cc/libraries/github.com/fbiego/ESP32Time-1.0.3.zip\" style=\"cursor: pointer; color: #00979d; text-decoration-line: none; transition-duration: 0.2s; transition-property: color;\" target=\"_blank\">1.0.3</a></li>\r\n   <li style=\"color: #7f8c8d;\"><a href=\"https://downloads.arduino.cc/libraries/github.com/fbiego/ESP32Time-1.0.2.zip\" style=\"cursor: pointer; color: #00979d; text-decoration-line: none; transition-duration: 0.2s; transition-property: color;\" target=\"_blank\">1.0.2</a></li>\r\n   <li style=\"color: #7f8c8d;\"><a href=\"https://downloads.arduino.cc/libraries/github.com/fbiego/ESP32Time-1.0.1.zip\" style=\"cursor: pointer; color: #00979d; text-decoration-line: none; transition-duration: 0.2s; transition-property: color;\" target=\"_blank\">1.0.1</a></li>\r\n   <li style=\"color: #7f8c8d;\"><a href=\"https://downloads.arduino.cc/libraries/github.com/fbiego/ESP32Time-1.0.0.zip\" style=\"cursor: pointer; color: #00979d; text-decoration-line: none; transition-duration: 0.2s; transition-property: color;\" target=\"_blank\">1.0.0</a></li>\r\n   </ul>','https://github.com/kerikun11/ESP32Time','https://www.arduino.cc/reference//en/libraries/esp32time/',2,1,5,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2021-12-05 21:35:07',1,'2021-12-05 21:35:07','192.168.219.101','','','','','','','','','','','',''),(508,-508,'',508,0,0,'','','html1','[Arduino] Arduino CLI - 리눅스 터미널에서 아두이노 개발','<header style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #3d4144; font-family: -apple-system, BlinkMacSystemFont, Roboto, &quot;Segoe UI&quot;, &quot;Helvetica Neue&quot;, &quot;Lucida Grande&quot;, Arial, sans-serif; font-size: 18px; background-color: #ffffff;\">\r\n   <h1 id=\"page-title\" class=\"page__title\" itemprop=\"headline\" style=\"box-sizing: border-box; margin: 0px 0px 0.5em; line-height: 1; font-size: 1.563em; transition: all 0.2s ease-in-out 0s;\">Arduino CLI - 리눅스 터미널에서 아두이노 개발</h1>\r\n   <p class=\"page__meta\" style=\"box-sizing: border-box; margin-top: -0.5em; margin-bottom: 1.3em; orphans: 3; widows: 3; transition: all 0.2s ease-in-out 0s; color: #646769; font-size: 0.75em; position: relative; float: left; width: 724px; clear: both;\"><svg class=\"svg-inline--fa fa-clock fa-w-16\" aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"clock\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\" data-fa-i2svg=\"\"><path fill=\"currentColor\" d=\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm61.8-104.4l-84.9-61.7c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v141.7l66.8 48.6c5.4 3.9 6.5 11.4 2.6 16.8L334.6 349c-3.9 5.3-11.4 6.5-16.8 2.6z\"></path></svg>&nbsp;9 분 소요</p>\r\n   </header>\r\n<section class=\"page__content\" itemprop=\"text\" style=\"box-sizing: border-box; position: relative; float: left; margin-left: 0px; margin-right: 0px; width: 724px; clear: both; color: #3d4144; font-family: -apple-system, BlinkMacSystemFont, Roboto, &quot;Segoe UI&quot;, &quot;Helvetica Neue&quot;, &quot;Lucida Grande&quot;, Arial, sans-serif; font-size: 18px; background-color: #ffffff;\">\r\n   <aside class=\"sidebar__right sticky\" style=\"box-sizing: border-box; clear: both; position: sticky; top: 2em; margin-bottom: 1em; right: 0px; width: 260px; margin-right: -260px; padding-left: 1em; z-index: 10; float: right;\"><nav class=\"toc\" style=\"box-sizing: border-box; color: #7a8288; border: 1px solid rgb(242, 243, 243); border-radius: 4px; box-shadow: rgba(0, 0, 0, 0.125) 0px 1px 1px;\">\r\n         <header style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s;\">\r\n            <h4 class=\"nav__title\" style=\"box-sizing: border-box; margin: 0px; line-height: 1.2; font-size: 0.75em; padding: 0.5rem 0.75rem; color: #ffffff; background: rgb(111, 119, 125); border-top-left-radius: 4px; border-top-right-radius: 4px;\"><svg class=\"svg-inline--fa fa-file-alt fa-w-12\" aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fas\" data-icon=\"file-alt\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\" data-fa-i2svg=\"\"><path fill=\"currentColor\" d=\"M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 236c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-64c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-72v8c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm96-114.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z\"></path></svg>&nbsp;On This Page</h4>\r\n            </header>\r\n         <ul class=\"toc__menu\" style=\"box-sizing: border-box; orphans: 3; widows: 3; margin: 0px; padding: 0px; width: 240px; list-style: none; font-size: 0.6875em;\">\r\n            <li class=\"\" style=\"box-sizing: border-box; margin-bottom: 0px; list-style: none; font-size: 1em;\"><a href=\"https://ukayzm.github.io/arduino-cli/#arduino-cli\" style=\"box-sizing: border-box; color: #646769; transition: all 0.2s ease-in-out 0s; text-decoration-line: none; display: block; padding: 0.25rem 0.75rem; font-weight: bold; line-height: 1.5; border-bottom: 1px solid rgb(242, 243, 243);\" target=\"_blank\">Arduino CLI</a></li>\r\n            <li class=\"\" style=\"box-sizing: border-box; margin-bottom: 0px; list-style: none; font-size: 1em;\"><a href=\"https://ukayzm.github.io/arduino-cli/#ardunio-cli-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0\" style=\"box-sizing: border-box; color: #646769; transition: all 0.2s ease-in-out 0s; text-decoration-line: none; display: block; padding: 0.25rem 0.75rem; font-weight: bold; line-height: 1.5; border-bottom: 1px solid rgb(242, 243, 243);\" target=\"_blank\">Ardunio CLI 설치하기</a></li>\r\n            <li style=\"box-sizing: border-box; margin-bottom: 0px; list-style: none; font-size: 1em;\"><a href=\"https://ukayzm.github.io/arduino-cli/#%EC%95%84%EB%91%90%EC%9D%B4%EB%85%B8-%EB%B3%B4%EB%93%9C-%EC%84%A4%EC%A0%95\" style=\"box-sizing: border-box; color: #646769; transition: all 0.2s ease-in-out 0s; text-decoration-line: none; display: block; padding: 0.25rem 0.75rem; font-weight: bold; line-height: 1.5; border-bottom: 1px solid rgb(242, 243, 243);\" target=\"_blank\">아두이노 보드 설정</a>\r\n               <ul style=\"box-sizing: border-box; margin: 0px; padding: 0px;\">\r\n                  <li class=\"\" style=\"box-sizing: border-box; margin-bottom: 0px; list-style: none; font-size: 1em;\"><a href=\"https://ukayzm.github.io/arduino-cli/#%EC%95%84%EB%91%90%EC%9D%B4%EB%85%B8-%EC%A0%95%ED%92%88-%EB%B3%B4%EB%93%9C\" style=\"box-sizing: border-box; color: #646769; transition: all 0.2s ease-in-out 0s; text-decoration-line: none; display: block; padding: 0.25rem 0.75rem 0.25rem 1.25rem; line-height: 1.5; border-bottom: 1px solid rgb(242, 243, 243);\" target=\"_blank\">아두이노 정품 보드</a></li>\r\n                  <li class=\"\" style=\"box-sizing: border-box; margin-bottom: 0px; list-style: none; font-size: 1em;\"><a href=\"https://ukayzm.github.io/arduino-cli/#%EC%95%84%EB%91%90%EC%9D%B4%EB%85%B8-%ED%81%B4%EB%A1%A0-%EB%B3%B4%EB%93%9C\" style=\"box-sizing: border-box; color: #646769; transition: all 0.2s ease-in-out 0s; text-decoration-line: none; display: block; padding: 0.25rem 0.75rem 0.25rem 1.25rem; line-height: 1.5; border-bottom: 1px solid rgb(242, 243, 243);\" target=\"_blank\">아두이노 클론 보드</a></li>\r\n                  </ul>\r\n               </li>\r\n            <li class=\"\" style=\"box-sizing: border-box; margin-bottom: 0px; list-style: none; font-size: 1em;\"><a href=\"https://ukayzm.github.io/arduino-cli/#%EB%B3%B4%EB%93%9C%EC%9D%98-fqbn-%EC%95%8C%EC%95%84%EB%82%B4%EA%B8%B0\" style=\"box-sizing: border-box; color: #646769; transition: all 0.2s ease-in-out 0s; text-decoration-line: none; display: block; padding: 0.25rem 0.75rem; font-weight: bold; line-height: 1.5; border-bottom: 1px solid rgb(242, 243, 243);\" target=\"_blank\">보드의 FQBN 알아내기</a></li>\r\n            <li class=\"\" style=\"box-sizing: border-box; margin-bottom: 0px; list-style: none; font-size: 1em;\"><a href=\"https://ukayzm.github.io/arduino-cli/#%ED%85%8C%EC%8A%A4%ED%8A%B8%ED%95%B4-%EB%B3%B4%EA%B8%B0\" style=\"box-sizing: border-box; color: #646769; transition: all 0.2s ease-in-out 0s; text-decoration-line: none; display: block; padding: 0.25rem 0.75rem; font-weight: bold; line-height: 1.5; border-bottom: 1px solid rgb(242, 243, 243);\" target=\"_blank\">테스트해 보기</a>\r\n               <ul style=\"box-sizing: border-box; margin: 0px; padding: 0px;\">\r\n                  <li class=\"\" style=\"box-sizing: border-box; margin-bottom: 0px; list-style: none; font-size: 1em;\"><a href=\"https://ukayzm.github.io/arduino-cli/#%EC%8A%A4%EC%BC%80%EC%B9%98%EB%A5%BC-%EC%BB%B4%ED%8C%8C%EC%9D%BC%ED%95%98%EA%B3%A0-%EC%97%85%EB%A1%9C%EB%93%9C%ED%95%98%EA%B8%B0\" style=\"box-sizing: border-box; color: #646769; transition: all 0.2s ease-in-out 0s; text-decoration-line: none; display: block; padding: 0.25rem 0.75rem 0.25rem 1.25rem; line-height: 1.5; border-bottom: 1px solid rgb(242, 243, 243);\" target=\"_blank\">스케치를 컴파일하고 업로드하기</a></li>\r\n                  <li class=\"\" style=\"box-sizing: border-box; margin-bottom: 0px; list-style: none; font-size: 1em;\"><a href=\"https://ukayzm.github.io/arduino-cli/#%EC%BB%B4%ED%8C%8C%EC%9D%BC%EC%9D%98-%EC%A4%91%EA%B0%84-%ED%8C%8C%EC%9D%BC-%EC%A7%80%EC%9A%B0%EA%B8%B0\" style=\"box-sizing: border-box; color: #646769; transition: all 0.2s ease-in-out 0s; text-decoration-line: none; display: block; padding: 0.25rem 0.75rem 0.25rem 1.25rem; line-height: 1.5; border-bottom: 1px solid rgb(242, 243, 243);\" target=\"_blank\">컴파일의 중간 파일 지우기</a></li>\r\n                  </ul>\r\n               </li>\r\n            <li class=\"\" style=\"box-sizing: border-box; margin-bottom: 0px; list-style: none; font-size: 1em;\"><a href=\"https://ukayzm.github.io/arduino-cli/#%EC%8B%9C%EB%A6%AC%EC%96%BC-%ED%8F%AC%ED%8A%B8%EB%A1%9C-%EB%94%94%EB%B2%84%EA%B9%85\" style=\"box-sizing: border-box; color: #646769; transition: all 0.2s ease-in-out 0s; text-decoration-line: none; display: block; padding: 0.25rem 0.75rem; font-weight: bold; line-height: 1.5; border-bottom: 1px solid rgb(242, 243, 243);\" target=\"_blank\">시리얼 포트로 디버깅</a>\r\n               <ul style=\"box-sizing: border-box; margin: 0px; padding: 0px;\">\r\n                  <li class=\"\" style=\"box-sizing: border-box; margin-bottom: 0px; list-style: none; font-size: 1em;\"><a href=\"https://ukayzm.github.io/arduino-cli/#%EC%8B%9C%EB%A6%AC%EC%96%BC-%ED%8F%AC%ED%8A%B8-%EC%9E%85%EC%B6%9C%EB%A0%A5\" style=\"box-sizing: border-box; color: #646769; transition: all 0.2s ease-in-out 0s; text-decoration-line: none; display: block; padding: 0.25rem 0.75rem 0.25rem 1.25rem; line-height: 1.5; border-bottom: 1px solid rgb(242, 243, 243);\" target=\"_blank\">시리얼 포트 입출력</a></li>\r\n                  <li class=\"\" style=\"box-sizing: border-box; margin-bottom: 0px; list-style: none; font-size: 1em;\"><a href=\"https://ukayzm.github.io/arduino-cli/#%EC%BD%94%EB%93%9C-%EC%97%85%EB%A1%9C%EB%93%9C%EC%8B%9C-%EC%A3%BC%EC%9D%98%EC%82%AC%ED%95%AD\" style=\"box-sizing: border-box; color: #646769; transition: all 0.2s ease-in-out 0s; text-decoration-line: none; display: block; padding: 0.25rem 0.75rem 0.25rem 1.25rem; line-height: 1.5; border-bottom: 1px solid rgb(242, 243, 243);\" target=\"_blank\">코드 업로드시 주의사항</a></li>\r\n                  </ul>\r\n               </li>\r\n            <li class=\"\" style=\"box-sizing: border-box; margin-bottom: 0px; list-style: none; font-size: 1em;\"><a href=\"https://ukayzm.github.io/arduino-cli/#library-%EC%B6%94%EA%B0%80%ED%95%98%EA%B8%B0\" style=\"box-sizing: border-box; color: #646769; transition: all 0.2s ease-in-out 0s; text-decoration-line: none; display: block; padding: 0.25rem 0.75rem; font-weight: bold; line-height: 1.5; border-bottom: 1px solid rgb(242, 243, 243);\" target=\"_blank\">Library 추가하기</a></li>\r\n            <li class=\"\" style=\"box-sizing: border-box; margin-bottom: 0px; list-style: none; font-size: 1em;\"><a href=\"https://ukayzm.github.io/arduino-cli/#esp8266-esp32-%EC%A7%80%EC%9B%90\" style=\"box-sizing: border-box; color: #646769; transition: all 0.2s ease-in-out 0s; text-decoration-line: none; display: block; padding: 0.25rem 0.75rem; font-weight: bold; line-height: 1.5; border-bottom: 1px solid rgb(242, 243, 243);\" target=\"_blank\">ESP8266, ESP32 지원</a>\r\n               <ul style=\"box-sizing: border-box; margin: 0px; padding: 0px;\">\r\n                  <li class=\"\" style=\"box-sizing: border-box; margin-bottom: 0px; list-style: none; font-size: 1em;\"><a href=\"https://ukayzm.github.io/arduino-cli/#arduino-cliyaml-%ED%8E%B8%EC%A7%91\" style=\"box-sizing: border-box; color: #646769; transition: all 0.2s ease-in-out 0s; text-decoration-line: none; display: block; padding: 0.25rem 0.75rem 0.25rem 1.25rem; line-height: 1.5; border-bottom: 1px solid rgb(242, 243, 243);\" target=\"_blank\">arduino-cli.yaml 편집</a></li>\r\n                  <li class=\"\" style=\"box-sizing: border-box; margin-bottom: 0px; list-style: none; font-size: 1em;\"><a href=\"https://ukayzm.github.io/arduino-cli/#esp8266-esp32-%EC%BD%94%EC%96%B4-%EC%84%A4%EC%B9%98\" style=\"box-sizing: border-box; color: #646769; transition: all 0.2s ease-in-out 0s; text-decoration-line: none; display: block; padding: 0.25rem 0.75rem 0.25rem 1.25rem; line-height: 1.5; border-bottom: 1px solid rgb(242, 243, 243);\" target=\"_blank\">ESP8266, ESP32 코어 설치</a></li>\r\n                  <li style=\"box-sizing: border-box; margin-bottom: 0px; list-style: none; font-size: 1em;\"><a href=\"https://ukayzm.github.io/arduino-cli/#%EC%8B%9C%EB%A6%AC%EC%96%BC-%EB%93%9C%EB%9D%BC%EC%9D%B4%EB%B2%84-%EC%84%A4%EC%B9%98\" style=\"box-sizing: border-box; color: #646769; transition: all 0.2s ease-in-out 0s; text-decoration-line: none; display: block; padding: 0.25rem 0.75rem 0.25rem 1.25rem; line-height: 1.5; border-bottom: 1px solid rgb(242, 243, 243);\" target=\"_blank\">시리얼 드라이버 설치</a></li>\r\n                  </ul>\r\n               </li>\r\n            <li class=\"active\" style=\"box-sizing: border-box; margin-bottom: 0px; list-style: none; font-size: 1em;\"><a href=\"https://ukayzm.github.io/arduino-cli/#reference\" style=\"box-sizing: border-box; color: #3d4144; transition: all 0.2s ease-in-out 0s; text-decoration-line: none; display: block; padding: 0.25rem 0.75rem; font-weight: bold; line-height: 1.5; border-bottom: 1px solid rgb(242, 243, 243); background-color: #e2e4e5;\" target=\"_blank\">Reference</a></li>\r\n            </ul>\r\n         </nav></aside>\r\n   <p style=\"box-sizing: border-box; margin-bottom: 1.3em; orphans: 3; widows: 3; transition: all 0.2s ease-in-out 0s; font-size: 1em;\">아두이노에서 기본으로 제공하는 IDE를 사용하면 코드 작성, 컴파일, 업로드, 시리얼 디버깅을 한 곳에서 할 수 있습니다. 하지만 IDE없이 리눅스 터미널 만으로도 코드 작성, 컴파일, 업로드, 시리얼 디버깅을 할 수 있는 방법이 있습니다. 여기에서는 터미널 명령어 만으로 아두이노 코드를 컴파일, 업로드할 수 있는 Arduino CLI를 소개하고 방법을 설명합니다.</p>\r\n   <h1 id=\"arduino-cli\" class=\"\" style=\"box-sizing: border-box; margin: 0px 0px 0.5em; line-height: 1.2; font-size: 1.563em; transition: all 0.2s ease-in-out 0s; padding-top: 2em; padding-bottom: 0.5em;\">Arduino CLI<a class=\"header-link\" href=\"https://ukayzm.github.io/arduino-cli/#arduino-cli\" title=\"Permalink\" style=\"box-sizing: border-box; color: #2f7d95; transition: opacity 0.2s ease-in-out 0.1s; text-decoration-line: none; position: relative; left: 0.5em; opacity: 0; font-size: 0.8em;\" target=\"_blank\"><span class=\"sr-only\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; border: 0px; clip: rect(0px, 0px, 0px, 0px); height: 1px; margin: -1px; overflow: hidden; padding: 0px; position: absolute; width: 1px;\">Permalink</span><svg class=\"svg-inline--fa fa-link fa-w-16\" aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fa\" data-icon=\"link\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\" data-fa-i2svg=\"\"><path fill=\"currentColor\" d=\"M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z\"></path></svg></a></h1>\r\n   <p style=\"box-sizing: border-box; margin-bottom: 1.3em; orphans: 3; widows: 3; transition: all 0.2s ease-in-out 0s; font-size: 1em;\">간단한 코드를 작성하는 경우라면 아두이노의 기본 IDE만으로도 충분합니다만, 소스 코드가 커지면 소스코드 내비게이션이 없어서 불편함을 많이 느낍니다. 소스코드 작성은 선호하는 에디터로 하고, 컴파일, 업로드, 시리얼 디버깅은 IDE를 이용할 수도 있습니다. 하지만&nbsp;<a href=\"https://github.com/arduino/arduino-cli\" style=\"box-sizing: border-box; color: #2f7d95; transition: all 0.2s ease-in-out 0s; text-decoration-line: none;\" target=\"_blank\">Arduino CLI</a>를 이용하면 이 모든 것을 터미널에서 명령어로 작업할 수 있습니다.</p>\r\n   <p style=\"box-sizing: border-box; margin-bottom: 1.3em; orphans: 3; widows: 3; transition: all 0.2s ease-in-out 0s; font-size: 1em;\"><img src=\"https://ukayzm.github.io/assets/img/posts/CLI_Logo_small.png\" alt=\"arduino-cli-logo\" style=\"box-sizing: border-box; max-width: 100%; height: auto; vertical-align: middle; border: 0px; transition: all 0.2s ease-in-out 0s;\" /></p>\r\n   <p style=\"box-sizing: border-box; margin-bottom: 1.3em; orphans: 3; widows: 3; transition: all 0.2s ease-in-out 0s; font-size: 1em;\">Arduino CLI는 글을 쓰는 2020년 5월 현재 Github에서 개발이 진행중이고, GPL v3 라이센스로 코드가 공개되어 있고, 누구나 설치하고 사용할 수 있습니다. ARM CPU도 지원하여, 라즈베리 파이에서도 실행할 수도 있다고 합니다.</p>\r\n   <h1 id=\"ardunio-cli-설치하기\" class=\"\" style=\"box-sizing: border-box; margin: 0px 0px 0.5em; line-height: 1.2; font-size: 1.563em; transition: all 0.2s ease-in-out 0s; padding-top: 2em; padding-bottom: 0.5em;\">Ardunio CLI 설치하기<a class=\"header-link\" href=\"https://ukayzm.github.io/arduino-cli/#ardunio-cli-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0\" title=\"Permalink\" style=\"box-sizing: border-box; color: #2f7d95; transition: opacity 0.2s ease-in-out 0.1s; text-decoration-line: none; position: relative; left: 0.5em; opacity: 0; font-size: 0.8em;\" target=\"_blank\"><span class=\"sr-only\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; border: 0px; clip: rect(0px, 0px, 0px, 0px); height: 1px; margin: -1px; overflow: hidden; padding: 0px; position: absolute; width: 1px;\">Permalink</span><svg class=\"svg-inline--fa fa-link fa-w-16\" aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fa\" data-icon=\"link\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\" data-fa-i2svg=\"\"><path fill=\"currentColor\" d=\"M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z\"></path></svg></a></h1>\r\n   <p style=\"box-sizing: border-box; margin-bottom: 1.3em; orphans: 3; widows: 3; transition: all 0.2s ease-in-out 0s; font-size: 1em;\">Arduino CLI는 설치 스크립트를 다운받아서 실행하는 방식으로 설치가 가능합니다. 아래 첫번째 명령은 디폴트로&nbsp;\r\n      <code class=\"language-plaintext highlighter-rouge\" style=\"box-sizing: border-box; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; padding-top: 0.1rem; padding-bottom: 0.1rem; font-size: 0.8em; background: rgb(250, 250, 250); border-radius: 4px;\">~/bin</code>\r\n      &nbsp;디렉토리에 설치하는 것이고, 두번째 명령과 같이 BINDIR을 지정하여 설치 디렉토리를 변경할 수도 있으니, 둘 중 하나를 실행하세요.</p>\r\n   <div class=\"language-bash highlighter-rouge\" style=\"box-sizing: border-box; position: relative; margin-bottom: 1em; background: rgb(38, 50, 56); color: #eeffff; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; font-size: 0.75em; line-height: 1.8; border-radius: 4px;\">\r\n      <div class=\"highlight\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s;\">\r\n         <pre class=\"highlight\" style=\"box-sizing: border-box; orphans: 3; widows: 3; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; overflow-x: auto; transition: all 0.2s ease-in-out 0s; width: 724px; margin-top: 0px; margin-bottom: 0px; padding: 1em;\">\r\n            <code style=\"box-sizing: border-box; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace;\"><span class=\"nv\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #f07178;\">$ </span>curl <span class=\"nt\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">-fsSL</span> https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | sh\r\n<span class=\"nv\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #f07178;\">$ </span>curl <span class=\"nt\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">-fsSL</span> https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | <span class=\"nv\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #f07178;\">BINDIR</span><span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">=</span>~/local/bin sh\r\n</code>\r\n            </pre>\r\n         </div>\r\n      </div>\r\n   <p style=\"box-sizing: border-box; margin-bottom: 1.3em; orphans: 3; widows: 3; transition: all 0.2s ease-in-out 0s; font-size: 1em;\">아두이노는 시리얼 포트를 이용해서 호스트와 통신합니다. 유저에게 시리얼 포트의 접근 권한을 주기 위해서, 아래와 같이 유저를 dialout 그룹에 추가합니다. 그룹 추가 후에는 로그인을 다시 하거나 호스트 PC를 재부팅 합니다.</p>\r\n   <div class=\"language-bash highlighter-rouge\" style=\"box-sizing: border-box; position: relative; margin-bottom: 1em; background: rgb(38, 50, 56); color: #eeffff; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; font-size: 0.75em; line-height: 1.8; border-radius: 4px;\">\r\n      <div class=\"highlight\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s;\">\r\n         <pre class=\"highlight\" style=\"box-sizing: border-box; orphans: 3; widows: 3; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; overflow-x: auto; transition: all 0.2s ease-in-out 0s; width: 724px; margin-top: 0px; margin-bottom: 0px; padding: 1em;\">\r\n            <code style=\"box-sizing: border-box; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace;\"><span class=\"nv\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #f07178;\">$ </span><span class=\"nb\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s;\">sudo </span>usermod <span class=\"nt\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">-a</span><span class=\"nt\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">-G</span> dialout <span class=\"nv\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #f07178;\">$USER</span><span class=\"c\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #b2ccd6;\"># add this user to dialout group</span><span class=\"c\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #b2ccd6;\"># You need to reopen the terminal or reboot the computer</span><span class=\"nv\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #f07178;\">$ </span><span class=\"nb\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s;\">id</span><span class=\"nv\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #f07178;\">$USER</span><span class=\"c\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #b2ccd6;\"># check that you have 20(dialout)</span><span class=\"nv\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #f07178;\">uid</span><span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">=</span>1000<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">(</span>rostude<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">)</span><span class=\"nv\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #f07178;\">gid</span><span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">=</span>1000<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">(</span>rostude<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">)</span><span class=\"nb\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s;\">groups</span><span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">=</span>1000<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">(</span>rostude<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">)</span>,4<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">(</span>adm<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">)</span>,20<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">(</span>dialout<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">)</span>,24<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">(</span>cdrom<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">)</span>,27<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">(</span><span class=\"nb\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s;\">sudo</span><span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">)</span>,30<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">(</span>dip<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">)</span>,46<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">(</span>plugdev<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">)</span>,116<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">(</span>lpadmin<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">)</span>,122<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">(</span>sambashare<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">)</span></code>\r\n            </pre>\r\n         </div>\r\n      </div>\r\n   <p style=\"box-sizing: border-box; margin-bottom: 1.3em; orphans: 3; widows: 3; transition: all 0.2s ease-in-out 0s; font-size: 1em;\">설치가 완료되면 다음과 같이 초기 설정을 해 주어야 합니다.</p>\r\n   <div class=\"language-bash highlighter-rouge\" style=\"box-sizing: border-box; position: relative; margin-bottom: 1em; background: rgb(38, 50, 56); color: #eeffff; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; font-size: 0.75em; line-height: 1.8; border-radius: 4px;\">\r\n      <div class=\"highlight\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s;\">\r\n         <pre class=\"highlight\" style=\"box-sizing: border-box; orphans: 3; widows: 3; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; overflow-x: auto; transition: all 0.2s ease-in-out 0s; width: 724px; margin-top: 0px; margin-bottom: 0px; padding: 1em;\">\r\n            <code style=\"box-sizing: border-box; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace;\"><span class=\"nv\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #f07178;\">$ </span>arduino-cli config init\r\nConfig file written to: /home/rostude/.arduino15/arduino-cli.yaml\r\n<span class=\"nv\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #f07178;\">$ </span>arduino-cli core update-index\r\nUpdating index: package_index.json downloaded\r\n</code>\r\n            </pre>\r\n         </div>\r\n      </div>\r\n   <h1 id=\"아두이노-보드-설정\" style=\"box-sizing: border-box; margin: 0px 0px 0.5em; line-height: 1.2; font-size: 1.563em; transition: all 0.2s ease-in-out 0s; padding-top: 2em; padding-bottom: 0.5em;\">아두이노 보드 설정<a class=\"header-link\" href=\"https://ukayzm.github.io/arduino-cli/#%EC%95%84%EB%91%90%EC%9D%B4%EB%85%B8-%EB%B3%B4%EB%93%9C-%EC%84%A4%EC%A0%95\" title=\"Permalink\" style=\"box-sizing: border-box; color: #2f7d95; transition: opacity 0.2s ease-in-out 0.1s; text-decoration-line: none; position: relative; left: 0.5em; opacity: 0; font-size: 0.8em;\" target=\"_blank\"><span class=\"sr-only\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; border: 0px; clip: rect(0px, 0px, 0px, 0px); height: 1px; margin: -1px; overflow: hidden; padding: 0px; position: absolute; width: 1px;\">Permalink</span><svg class=\"svg-inline--fa fa-link fa-w-16\" aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fa\" data-icon=\"link\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\" data-fa-i2svg=\"\"><path fill=\"currentColor\" d=\"M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z\"></path></svg></a></h1>\r\n   <p style=\"box-sizing: border-box; margin-bottom: 1.3em; orphans: 3; widows: 3; transition: all 0.2s ease-in-out 0s; font-size: 1em;\">다음으로 아두이노 종류에 맞는 설정을 합니다. 아두이노는 우노, 나노 등의 종류도 있지만 값싼 중국산 클론도 있습니다. 보드에 맞는 정확한&nbsp;\r\n      <code class=\"language-plaintext highlighter-rouge\" style=\"box-sizing: border-box; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; padding-top: 0.1rem; padding-bottom: 0.1rem; font-size: 0.8em; background: rgb(250, 250, 250); border-radius: 4px;\">FQBN</code>\r\n      을 알아야 합니다.</p>\r\n   <h2 id=\"아두이노-정품-보드\" class=\"\" style=\"box-sizing: border-box; margin: 2em 0px 0.5em; line-height: 1.2; font-size: 1.25em; transition: all 0.2s ease-in-out 0s; padding-bottom: 0.5em; border-bottom: 1px solid rgb(242, 243, 243);\">아두이노 정품 보드<a class=\"header-link\" href=\"https://ukayzm.github.io/arduino-cli/#%EC%95%84%EB%91%90%EC%9D%B4%EB%85%B8-%EC%A0%95%ED%92%88-%EB%B3%B4%EB%93%9C\" title=\"Permalink\" style=\"box-sizing: border-box; color: #2f7d95; transition: opacity 0.2s ease-in-out 0.1s; text-decoration-line: none; position: relative; left: 0.5em; opacity: 0; font-size: 0.8em;\" target=\"_blank\"><span class=\"sr-only\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; border: 0px; clip: rect(0px, 0px, 0px, 0px); height: 1px; margin: -1px; overflow: hidden; padding: 0px; position: absolute; width: 1px;\">Permalink</span><svg class=\"svg-inline--fa fa-link fa-w-16\" aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fa\" data-icon=\"link\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\" data-fa-i2svg=\"\"><path fill=\"currentColor\" d=\"M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z\"></path></svg></a></h2>\r\n   <p style=\"box-sizing: border-box; margin-bottom: 1.3em; orphans: 3; widows: 3; transition: all 0.2s ease-in-out 0s; font-size: 1em;\">아두이노 보드를 USB에 꽂고 dmesg 명령을 내리면 자기가 가지고 있는 아두이노 보드의 종류를 알아내기 위한 힌트를 얻을 수 있습니다. 아래 화면은 아두이노 우노 보드 정품의 경우 입니다. Manufacturer가 Arduino이고 시리얼 포트인 ttyACM0를 볼 수 있습니다.</p>\r\n   <div class=\"language-bash highlighter-rouge\" style=\"box-sizing: border-box; position: relative; margin-bottom: 1em; background: rgb(38, 50, 56); color: #eeffff; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; font-size: 0.75em; line-height: 1.8; border-radius: 4px;\">\r\n      <div class=\"highlight\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s;\">\r\n         <pre class=\"highlight\" style=\"box-sizing: border-box; orphans: 3; widows: 3; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; overflow-x: auto; transition: all 0.2s ease-in-out 0s; width: 724px; margin-top: 0px; margin-bottom: 0px; padding: 1em;\">\r\n            <code style=\"box-sizing: border-box; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace;\"><span class=\"nv\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #f07178;\">$ </span>dmesg\r\n<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">[</span> 3021.890686] usb 1-5: new full-speed USB device number 3 using xhci_hcd\r\n<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">[</span> 3022.044856] usb 1-5: New USB device found, <span class=\"nv\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #f07178;\">idVendor</span><span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">=</span>2341, <span class=\"nv\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #f07178;\">idProduct</span><span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">=</span>0043, <span class=\"nv\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #f07178;\">bcdDevice</span><span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">=</span> 0.01\r\n<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">[</span> 3022.044859] usb 1-5: New USB device strings: <span class=\"nv\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #f07178;\">Mfr</span><span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">=</span>1, <span class=\"nv\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #f07178;\">Product</span><span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">=</span>2, <span class=\"nv\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #f07178;\">SerialNumber</span><span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">=</span>220\r\n<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">[</span> 3022.044861] usb 1-5: Manufacturer: Arduino <span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">(</span>www.arduino.cc<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">)</span><span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">[</span> 3022.044863] usb 1-5: SerialNumber: 8563233323635130E152\r\n<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">[</span> 3022.114039] cdc_acm 1-5:1.0: ttyACM0: USB ACM device\r\n<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">[</span> 3022.114287] usbcore: registered new interface driver cdc_acm\r\n<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">[</span> 3022.114288] cdc_acm: USB Abstract Control Model driver <span class=\"k\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #c792ea;\">for </span>USB modems and ISDN adapters\r\n</code>\r\n            </pre>\r\n         </div>\r\n      </div>\r\n   <p style=\"box-sizing: border-box; margin-bottom: 1.3em; orphans: 3; widows: 3; transition: all 0.2s ease-in-out 0s; font-size: 1em;\">정품 우노 보드의 경우에는 auduino-cli가 자동으로 인식합니다.&nbsp;\r\n      <code class=\"language-plaintext highlighter-rouge\" style=\"box-sizing: border-box; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; padding-top: 0.1rem; padding-bottom: 0.1rem; font-size: 0.8em; background: rgb(250, 250, 250); border-radius: 4px;\">arduino-cli board list</code>\r\n      &nbsp;명령을 내리면 아래와 같이 시리얼포트는&nbsp;\r\n      <code class=\"language-plaintext highlighter-rouge\" style=\"box-sizing: border-box; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; padding-top: 0.1rem; padding-bottom: 0.1rem; font-size: 0.8em; background: rgb(250, 250, 250); border-radius: 4px;\">/dev/ttyACM0</code>\r\n      이고 fqbn은&nbsp;\r\n      <code class=\"language-plaintext highlighter-rouge\" style=\"box-sizing: border-box; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; padding-top: 0.1rem; padding-bottom: 0.1rem; font-size: 0.8em; background: rgb(250, 250, 250); border-radius: 4px;\">arduino:avr:uno</code>\r\n      로 인식되었음을 알 수 있습니다.</p>\r\n   <div class=\"language-bash highlighter-rouge\" style=\"box-sizing: border-box; position: relative; margin-bottom: 1em; background: rgb(38, 50, 56); color: #eeffff; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; font-size: 0.75em; line-height: 1.8; border-radius: 4px;\">\r\n      <div class=\"highlight\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s;\">\r\n         <pre class=\"highlight\" style=\"box-sizing: border-box; orphans: 3; widows: 3; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; overflow-x: auto; transition: all 0.2s ease-in-out 0s; width: 724px; margin-top: 0px; margin-bottom: 0px; padding: 1em;\">\r\n            <code style=\"box-sizing: border-box; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace;\"><span class=\"nv\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #f07178;\">$ </span>arduino-cli board list\r\nPort         Type              Board Name  FQBN            Core\r\n/dev/ttyACM0 Serial Port <span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">(</span>USB<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">)</span> Arduino Uno arduino:avr:uno arduino:avr\r\n</code>\r\n            </pre>\r\n         </div>\r\n      </div>\r\n   <p style=\"box-sizing: border-box; margin-bottom: 1.3em; orphans: 3; widows: 3; transition: all 0.2s ease-in-out 0s; font-size: 1em;\">이제,&nbsp;\r\n      <code class=\"language-plaintext highlighter-rouge\" style=\"box-sizing: border-box; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; padding-top: 0.1rem; padding-bottom: 0.1rem; font-size: 0.8em; background: rgb(250, 250, 250); border-radius: 4px;\">arduino-cli core install arduino:avr</code>\r\n      &nbsp;명령으로 정품 보드용 코어를 설치하고,&nbsp;\r\n      <code class=\"language-plaintext highlighter-rouge\" style=\"box-sizing: border-box; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; padding-top: 0.1rem; padding-bottom: 0.1rem; font-size: 0.8em; background: rgb(250, 250, 250); border-radius: 4px;\">arduino-cli board listall</code>\r\n      &nbsp;명령으로 설치된 코어를 확인합니다.</p>\r\n   <div class=\"language-bash highlighter-rouge\" style=\"box-sizing: border-box; position: relative; margin-bottom: 1em; background: rgb(38, 50, 56); color: #eeffff; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; font-size: 0.75em; line-height: 1.8; border-radius: 4px;\">\r\n      <div class=\"highlight\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s;\">\r\n         <pre class=\"highlight\" style=\"box-sizing: border-box; orphans: 3; widows: 3; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; overflow-x: auto; transition: all 0.2s ease-in-out 0s; width: 724px; margin-top: 0px; margin-bottom: 0px; padding: 1em;\">\r\n            <code style=\"box-sizing: border-box; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace;\"><span class=\"nv\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #f07178;\">$ </span>arduino-cli core <span class=\"nb\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s;\">install </span>arduino:avr      <span class=\"c\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #b2ccd6;\"># Install Arduino:avr core</span>\r\nDownloading packages...\r\narduino:avr-gcc@7.3.0-atmel3.6.1-arduino5 downloaded\r\narduino:avrdude@6.3.0-arduino17 downloaded\r\narduino:arduinoOTA@1.3.0 downloaded\r\narduino:avr@1.8.2 downloaded\r\nInstalling arduino:avr-gcc@7.3.0-atmel3.6.1-arduino5...\r\narduino:avr-gcc@7.3.0-atmel3.6.1-arduino5 installed\r\nInstalling arduino:avrdude@6.3.0-arduino17...\r\narduino:avrdude@6.3.0-arduino17 installed\r\nInstalling arduino:arduinoOTA@1.3.0...\r\narduino:arduinoOTA@1.3.0 installed\r\nInstalling arduino:avr@1.8.2...\r\narduino:avr@1.8.2 installed\r\n<span class=\"nv\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #f07178;\">$ </span>arduino-cli board listall                 <span class=\"c\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #b2ccd6;\"># Confirm the installation</span>\r\nBoard Name                          FQBN\r\nAdafruit Circuit Playground         arduino:avr:circuitplay32u4cat\r\nArduino BT                          arduino:avr:bt\r\nArduino Duemilanove or Diecimila    arduino:avr:diecimila\r\nArduino Esplora                     arduino:avr:esplora\r\nArduino Ethernet                    arduino:avr:ethernet\r\nArduino Fio                         arduino:avr:fio\r\nArduino Gemma                       arduino:avr:gemma\r\nArduino Industrial 101              arduino:avr:chiwawa\r\nArduino Leonardo                    arduino:avr:leonardo\r\nArduino Leonardo ETH                arduino:avr:leonardoeth\r\nArduino Mega ADK                    arduino:avr:megaADK\r\nArduino Mega or Mega 2560           arduino:avr:mega\r\nArduino Micro                       arduino:avr:micro\r\nArduino Mini                        arduino:avr:mini\r\nArduino NG or older                 arduino:avr:atmegang\r\nArduino Nano                        arduino:avr:nano\r\nArduino Pro or Pro Mini             arduino:avr:pro\r\nArduino Robot Control               arduino:avr:robotControl\r\nArduino Robot Motor                 arduino:avr:robotMotor\r\nArduino Uno                         arduino:avr:uno\r\nArduino Uno WiFi                    arduino:avr:unowifi\r\nArduino Yún                         arduino:avr:yun\r\nArduino Yún Mini                    arduino:avr:yunmini\r\nLilyPad Arduino                     arduino:avr:lilypad\r\nLilyPad Arduino USB                 arduino:avr:LilyPadUSB\r\nLinino One                          arduino:avr:one\r\n</code>\r\n            </pre>\r\n         </div>\r\n      </div>\r\n   <h2 id=\"아두이노-클론-보드\" class=\"\" style=\"box-sizing: border-box; margin: 2em 0px 0.5em; line-height: 1.2; font-size: 1.25em; transition: all 0.2s ease-in-out 0s; padding-bottom: 0.5em; border-bottom: 1px solid rgb(242, 243, 243);\">아두이노 클론 보드<a class=\"header-link\" href=\"https://ukayzm.github.io/arduino-cli/#%EC%95%84%EB%91%90%EC%9D%B4%EB%85%B8-%ED%81%B4%EB%A1%A0-%EB%B3%B4%EB%93%9C\" title=\"Permalink\" style=\"box-sizing: border-box; color: #2f7d95; transition: opacity 0.2s ease-in-out 0.1s; text-decoration-line: none; position: relative; left: 0.5em; opacity: 0; font-size: 0.8em;\" target=\"_blank\"><span class=\"sr-only\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; border: 0px; clip: rect(0px, 0px, 0px, 0px); height: 1px; margin: -1px; overflow: hidden; padding: 0px; position: absolute; width: 1px;\">Permalink</span><svg class=\"svg-inline--fa fa-link fa-w-16\" aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fa\" data-icon=\"link\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\" data-fa-i2svg=\"\"><path fill=\"currentColor\" d=\"M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z\"></path></svg></a></h2>\r\n   <p style=\"box-sizing: border-box; margin-bottom: 1.3em; orphans: 3; widows: 3; transition: all 0.2s ease-in-out 0s; font-size: 1em;\">중국산 클론의 경우는 자동 인식이 안됩니다. 클론 보드를 USB에 꽂은 다음&nbsp;\r\n      <code class=\"language-plaintext highlighter-rouge\" style=\"box-sizing: border-box; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; padding-top: 0.1rem; padding-bottom: 0.1rem; font-size: 0.8em; background: rgb(250, 250, 250); border-radius: 4px;\">dmesg</code>\r\n      &nbsp;명령으로 커널 로그를 보면, 아래와 같이 Arduino 글자가 보이지 않고, 저가형 시리얼 칩인 ch341 글자가 보입니다.&nbsp;\r\n      <code class=\"language-plaintext highlighter-rouge\" style=\"box-sizing: border-box; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; padding-top: 0.1rem; padding-bottom: 0.1rem; font-size: 0.8em; background: rgb(250, 250, 250); border-radius: 4px;\">arduino-cli board list</code>\r\n      를 해 보면 board name이 unknown으로 나오지요.</p>\r\n   <div class=\"language-bash highlighter-rouge\" style=\"box-sizing: border-box; position: relative; margin-bottom: 1em; background: rgb(38, 50, 56); color: #eeffff; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; font-size: 0.75em; line-height: 1.8; border-radius: 4px;\">\r\n      <div class=\"highlight\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s;\">\r\n         <pre class=\"highlight\" style=\"box-sizing: border-box; orphans: 3; widows: 3; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; overflow-x: auto; transition: all 0.2s ease-in-out 0s; width: 724px; margin-top: 0px; margin-bottom: 0px; padding: 1em;\">\r\n            <code style=\"box-sizing: border-box; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace;\"><span class=\"nv\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #f07178;\">$ </span>dmesg\r\n<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">[</span> 3059.826341] usbcore: registered new interface driver ch341\r\n<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">[</span> 3059.827087] usbserial: USB Serial support registered <span class=\"k\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #c792ea;\">for </span>ch341-uart\r\n<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">[</span> 3059.828153] ch341 1-1:1.0: ch341-uart converter detected\r\n<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">[</span> 3059.828944] usb 1-1: ch341-uart converter now attached to ttyUSB0\r\n<span class=\"nv\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #f07178;\">$ </span>arduino-cli board list      <span class=\"c\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #b2ccd6;\"># Check the connection to the board</span>\r\nPort         Type              Board Name              FQBN                 Core\r\n/dev/ttyUSB0 Serial Port <span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">(</span>USB<span class=\"o\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; color: #89ddff;\">)</span> Unknown\r\n</code>\r\n            </pre>\r\n         </div>\r\n      </div>\r\n   <p style=\"box-sizing: border-box; margin-bottom: 1.3em; orphans: 3; widows: 3; transition: all 0.2s ease-in-out 0s; font-size: 1em;\">자동 인식이 안된다고 해서 사용을 못하는 것은 아니니, 걱정할 필요는 없습니다. ch340/ch341의 시리얼 포트는&nbsp;\r\n      <code class=\"language-plaintext highlighter-rouge\" style=\"box-sizing: border-box; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; padding-top: 0.1rem; padding-bottom: 0.1rem; font-size: 0.8em; background: rgb(250, 250, 250); border-radius: 4px;\">/dev/ttyUSB0</code>\r\n      &nbsp;또는&nbsp;\r\n      <code class=\"language-plaintext highlighter-rouge\" style=\"box-sizing: border-box; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; padding-top: 0.1rem; padding-bottom: 0.1rem; font-size: 0.8em; background: rgb(250, 250, 250); border-radius: 4px;\">/dev/ttyUSB1</code>\r\n      &nbsp;입니다. 그리고, 코어는 정품과 같습니다. 따라서, 정품의 경우와 동일하게&nbsp;\r\n      <code class=\"language-plaintext highlighter-rouge\" style=\"box-sizing: border-box; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; padding-top: 0.1rem; padding-bottom: 0.1rem; font-size: 0.8em; background: rgb(250, 250, 250); border-radius: 4px;\">arduino-cli core install arduino:avr</code>\r\n      &nbsp;명령으로 정품 보드용 코어를 설치하고,&nbsp;\r\n      <code class=\"language-plaintext highlighter-rouge\" style=\"box-sizing: border-box; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; padding-top: 0.1rem; padding-bottom: 0.1rem; font-size: 0.8em; background: rgb(250, 250, 250); border-radius: 4px;\">arduino-cli board listall</code>\r\n      &nbsp;명령으로 설치된 코어를 확인합니다.</p>\r\n   <h1 id=\"보드의-fqbn-알아내기\" class=\"\" style=\"box-sizing: border-box; margin: 0px 0px 0.5em; line-height: 1.2; font-size: 1.563em; transition: all 0.2s ease-in-out 0s; padding-top: 2em; padding-bottom: 0.5em;\">보드의 FQBN 알아내기<a class=\"header-link\" href=\"https://ukayzm.github.io/arduino-cli/#%EB%B3%B4%EB%93%9C%EC%9D%98-fqbn-%EC%95%8C%EC%95%84%EB%82%B4%EA%B8%B0\" title=\"Permalink\" style=\"box-sizing: border-box; color: #2f7d95; transition: opacity 0.2s ease-in-out 0.1s; text-decoration-line: none; position: relative; left: 0.5em; opacity: 0; font-size: 0.8em;\" target=\"_blank\"><span class=\"sr-only\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; border: 0px; clip: rect(0px, 0px, 0px, 0px); height: 1px; margin: -1px; overflow: hidden; padding: 0px; position: absolute; width: 1px;\">Permalink</span><svg class=\"svg-inline--fa fa-link fa-w-16\" aria-hidden=\"true\" focusable=\"false\" data-prefix=\"fa\" data-icon=\"link\" role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\" data-fa-i2svg=\"\"><path fill=\"currentColor\" d=\"M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z\"></path></svg></a></h1>\r\n   <p style=\"box-sizing: border-box; margin-bottom: 1.3em; orphans: 3; widows: 3; transition: all 0.2s ease-in-out 0s; font-size: 1em;\">위에서, 중국산 클론 보드를 위해서는&nbsp;\r\n      <code class=\"language-plaintext highlighter-rouge\" style=\"box-sizing: border-box; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; padding-top: 0.1rem; padding-bottom: 0.1rem; font-size: 0.8em; background: rgb(250, 250, 250); border-radius: 4px;\">FQBN</code>\r\n      을 지정해 주어야 한다고 했는데요. 내가 가지고 있는 보드의 fqbn 값을 어떻게 알아낼까요? 아두이노 기본 IDE를 이용하여 알아낼 수 있는 방법이 있습니다.</p>\r\n   <ol style=\"box-sizing: border-box; orphans: 3; widows: 3;\">\r\n      <li style=\"box-sizing: border-box; margin-bottom: 0.5em; font-size: 1em;\">보드를 PC에 연결하고 아두이노 기본 IDE를 실행합니다.</li>\r\n      <li style=\"box-sizing: border-box; margin-bottom: 0.5em; font-size: 1em;\">파일 &gt; 환경설정 &gt; 다음 동작중 자세한 출력 보이기 &gt; 컴파일을 체크합니다.</li>\r\n      <li style=\"box-sizing: border-box; margin-bottom: 0.5em; font-size: 1em;\">툴 &gt; 보드 메뉴에서 보드를 지정합니다.</li>\r\n      <li style=\"box-sizing: border-box; margin-bottom: 0.5em; font-size: 1em;\">필요시 툴 &gt; 프로세서에서 프로세서를 지정합니다. 필자가 가지고 있는 아두이노 나노 보드는 ATmeta328P (Old Bootloader)로 했습니다.</li>\r\n      <li style=\"box-sizing: border-box; margin-bottom: 0.5em; font-size: 1em;\">스케치 &gt; 확인/컴파일을 합니다.</li>\r\n      </ol>\r\n   <p style=\"box-sizing: border-box; margin-bottom: 1.3em; orphans: 3; widows: 3; transition: all 0.2s ease-in-out 0s; font-size: 1em;\">컴파일이 끝나면, 검은 바탕 컴파일 화면의 스크롤을 올려 맨 윗줄을 봅니다.</p>\r\n   <div class=\"language-plaintext highlighter-rouge\" style=\"box-sizing: border-box; position: relative; margin-bottom: 1em; background: rgb(38, 50, 56); color: #eeffff; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; font-size: 0.75em; line-height: 1.8; border-radius: 4px;\">\r\n      <div class=\"highlight\" style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s;\">\r\n         <pre class=\"highlight\" style=\"box-sizing: border-box; orphans: 3; widows: 3; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; overflow-x: auto; transition: all 0.2s ease-in-out 0s; width: 724px; margin-top: 0px; margin-bottom: 0px; padding: 1em;\">\r\n            <code style=\"box-sizing: border-box; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace;\">C:\\Program Files (x86)\\Arduino\\arduino-builder -dump-prefs -logger=machine -hardware C:\\Program Files (x86)\\Arduino\\hardware -tools C:\\Program Files (x86)\\Arduino\\tools-builder -tools C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr -built-in-libraries C:\\Program Files (x86)\\Arduino\\libraries -libraries D:\\Users\\kjeom\\Documents\\Arduino\\libraries -fqbn=arduino:avr:nano:cpu=atmega328old -vid-pid=1A86_7523 -ide-version=10812 -build-path C:\\Users\\kjeom\\AppData\\Local\\Temp\\arduino_build_337148 -warnings=none -build-cache C:\\Users\\kjeom\\AppData\\Local\\Temp\\arduino_cache_981687 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avr-gcc.path=C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr -prefs=runtime.tools.avr-gcc-7.3.0-atmel3.6.1-arduino5.path=C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr -prefs=runtime.tools.avrdude.path=C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr -prefs=runtime.tools.avrdude-6.3.0-arduino17.path=C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr -prefs=runtime.tools.arduinoOTA.path=C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr -prefs=runtime.tools.arduinoOTA-1.3.0.path=C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr -verbose D:\\temp\\sketch_apr17a\\sketch_apr17a.ino\r\n</code>\r\n            </pre>\r\n         </div>\r\n      </div>\r\n   <p style=\"box-sizing: border-box; margin-bottom: 1.3em; orphans: 3; widows: 3; transition: all 0.2s ease-in-out 0s; font-size: 1em;\">위와 같이 긴 줄이 있는데, 중간에&nbsp;\r\n      <code class=\"language-plaintext highlighter-rouge\" style=\"box-sizing: border-box; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; padding-top: 0.1rem; padding-bottom: 0.1rem; font-size: 0.8em; background: rgb(250, 250, 250); border-radius: 4px;\">-fqbn=arduino:avr:nano:cpu=atmega328old</code>\r\n      &nbsp;이런 부분이 보이죠.&nbsp;\r\n      <code class=\"language-plaintext highlighter-rouge\" style=\"box-sizing: border-box; font-family: Monaco, Consolas, &quot;Lucida Console&quot;, monospace; padding-top: 0.1rem; padding-bottom: 0.1rem; font-size: 0.8em; background: rgb(250, 250, 250); border-radius: 4px;\">arduino:avr:nano:cpu=atmega328old</code>\r\n      가 바로 내가 가지고 있는 보드의 FQBN 값입니다.</p>\r\n   <p style=\"box-sizing: border-box; margin-bottom: 1.3em; orphans: 3; widows: 3; transition: all 0.2s ease-in-out 0s; font-size: 1em;\">참고로, 필자가 가지고 있는 보드의 fqbn은 다음과 같습니다.</p>\r\n   <table style=\"orphans: 3; widows: 3; display: block; margin-bottom: 1em; width: 724px; font-size: 0.75em; overflow-x: auto;\">\r\n      <thead style=\"box-sizing: border-box; background-color: #f2f3f3; border-bottom: 2px solid rgb(182, 182, 182);\">\r\n         <tr style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; vertical-align: middle;\">\r\n            <th style=\"box-sizing: border-box; padding: 0.5em; text-align: left; vertical-align: middle;\">보드</th>\r\n            <th style=\"box-sizing: border-box; padding: 0.5em; text-align: left; vertical-align: middle;\">FQBN</th>\r\n            <th style=\"box-sizing: border-box; padding: 0.5em; text-align: left; vertical-align: middle;\">시리얼 포트</th>\r\n            </tr>\r\n         </thead>\r\n      <tbody style=\"box-sizing: border-box;\">\r\n         <tr style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; vertical-align: middle;\">\r\n            <td style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; padding: 0.5em; border-bottom-style: solid; border-bottom-color: #b6b6b6; vertical-align: middle;\">아두이노 우노 정품</td>\r\n            <td style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; padding: 0.5em; border-bottom-style: solid; border-bottom-color: #b6b6b6; vertical-align: middle;\">arduino:avr:uno</td>\r\n            <td style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; padding: 0.5em; border-bottom-style: solid; border-bottom-color: #b6b6b6; vertical-align: middle;\">/dev/ttyACM0</td>\r\n            </tr>\r\n         <tr style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; vertical-align: middle;\">\r\n            <td style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; padding: 0.5em; border-bottom-style: solid; border-bottom-color: #b6b6b6; vertical-align: middle;\">아두이노 우노 클론</td>\r\n            <td style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; padding: 0.5em; border-bottom-style: solid; border-bottom-color: #b6b6b6; vertical-align: middle;\">arduino:avr:uno</td>\r\n            <td style=\"box-sizing: border-box; transition: all 0.2s ease-in-out 0s; padding: 0.5em; border-bottom-style: solid; border-bottom-color: #b6b6b6; vertical-align: middle;\">/dev/ttyUSB0</td>\r\n            </tr>\r\n       ','https://ukayzm.github.io/arduino-cli/','',0,0,2,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2021-12-11 22:06:48',0,'2021-12-11 22:06:48','192.168.219.101','','','','','','','','','','','',''),(509,-509,'',509,0,0,'','','html1','[Arduino] MPU-9260, MPU-6050 기울기 각도 구하기','<p>MPU-9260, MPU-6050 기울기 각도 구하기</p>\r\n<p>&gt;속력, 속도, 가속도외의 관계식</p>\r\n<p>&nbsp;</p>\r\n<p>&nbsp;</p>','https://rasino.tistory.com/325','',5,0,8,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2021-12-19 10:13:30',2,'2021-12-19 10:13:30','192.168.219.101','','','','','','','','','','','',''),(510,-510,'',510,0,0,'','','html1','[ETC] 앱인벤터에서 MQTT 사용하기','<p><strong style=\"font-family: Helvetica, Arial, sans-serif; font-size: xx-large; background-color: #ffffff;\">This version is out of date. Instead, use the new version&nbsp;<a href=\"https://ullisroboterseite.de/android-AI2-PahoMQTT.html\" target=\"_blank\">UrsAI2PahoMqtt</a>, which is based on the Eclipse Paho Java Client.</strong></p>','https://ullisroboterseite.de/android-AI2-MQTT-en.html','https://bota.tistory.com/1675',2,4,5,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2022-01-03 12:45:54',1,'2022-01-03 12:45:54','112.222.138.204','','','','','','','','','','','',''),(511,-511,'',511,0,0,'','','html1','[Linux] 라즈베리파이 고정 ip 설정','<p style=\"margin-right: auto; margin-bottom: 28px; margin-left: auto; padding-right: 0px; padding-left: 0px; font-size: 15px; line-height: 28px; color: #555555; font-family: &quot;Spoqa Han Sans&quot;, sans-serif; background-color: #ffffff; text-align: center; padding-top: 0px !important; padding-bottom: 0px !important;\">라즈베리파이를 매번 모니터에 연결하고, 키보드랑 마우스를 연결하고</p>\r\n<p style=\"margin-right: auto; margin-bottom: 28px; margin-left: auto; padding-right: 0px; padding-left: 0px; font-size: 15px; line-height: 28px; color: #555555; font-family: &quot;Spoqa Han Sans&quot;, sans-serif; background-color: #ffffff; text-align: center; padding-top: 0px !important; padding-bottom: 0px !important;\">ifconfig로 ip주소를 찾아보고&nbsp;</p>\r\n<p style=\"margin-right: auto; margin-bottom: 28px; margin-left: auto; padding-right: 0px; padding-left: 0px; font-size: 15px; line-height: 28px; color: #555555; font-family: &quot;Spoqa Han Sans&quot;, sans-serif; background-color: #ffffff; text-align: center; padding-top: 0px !important; padding-bottom: 0px !important;\">또 PuTTY로 접속하는게 너무 귀찮아서 IP를 고정 설정했습니다.</p>\r\n<p style=\"margin-right: auto; margin-bottom: 28px; margin-left: auto; padding-right: 0px; padding-left: 0px; font-size: 15px; line-height: 28px; color: #555555; font-family: &quot;Spoqa Han Sans&quot;, sans-serif; background-color: #ffffff; text-align: center; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p style=\"margin-right: auto; margin-bottom: 28px; margin-left: auto; padding-right: 0px; padding-left: 0px; font-size: 15px; line-height: 28px; color: #555555; font-family: &quot;Spoqa Han Sans&quot;, sans-serif; background-color: #ffffff; text-align: center; padding-top: 0px !important; padding-bottom: 0px !important;\">우선 ifconfig 명령어로 현재 ip주소를 확인해줍니다.</p>\r\n<p style=\"margin-right: auto; margin-bottom: 28px; margin-left: auto; padding-right: 0px; padding-left: 0px; font-size: 15px; line-height: 28px; color: #555555; font-family: &quot;Spoqa Han Sans&quot;, sans-serif; background-color: #ffffff; text-align: center; padding-top: 0px !important; padding-bottom: 0px !important;\">무선과 유선이 다른데, 무선의 경우 wlan0에 inet 192.~을 보시면 됩니다.</p>\r\n<p style=\"margin-right: auto; margin-bottom: 28px; margin-left: auto; padding-right: 0px; padding-left: 0px; font-size: 15px; line-height: 28px; color: #555555; font-family: &quot;Spoqa Han Sans&quot;, sans-serif; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<figure class=\"imageblock alignCenter\" data-origin-width=\"0\" data-origin-height=\"0\" width=\"600\" data-ke-mobilestyle=\"widthContent\" style=\"margin: 0px auto 20px; max-width: 100%; clear: both; display: table; position: relative; text-align: center; color: #5c5c5c; font-family: &quot;Spoqa Han Sans&quot;, sans-serif; font-size: 14px; background-color: #ffffff; width: auto !important; height: auto !important;\"><span data-url=\"https://blog.kakaocdn.net/dn/dftXl5/btq4CsGBC62/lrJJADeraCjj9Rh0bKvW4K/img.png\" data-lightbox=\"lightbox\" data-alt=\"\" style=\"cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/dftXl5/btq4CsGBC62/lrJJADeraCjj9Rh0bKvW4K/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdftXl5%2Fbtq4CsGBC62%2FlrJJADeraCjj9Rh0bKvW4K%2Fimg.png\" data-origin-width=\"0\" data-origin-height=\"0\" width=\"600\" data-ke-mobilestyle=\"widthContent\" style=\"border: 0px none; max-width: 100%; display: inline-block; height: auto; margin: 0px;\" /></span></figure>\r\n<p style=\"margin-right: auto; margin-bottom: 28px; margin-left: auto; padding-right: 0px; padding-left: 0px; font-size: 15px; line-height: 28px; color: #555555; font-family: &quot;Spoqa Han Sans&quot;, sans-serif; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p style=\"margin-right: auto; margin-bottom: 28px; margin-left: auto; padding-right: 0px; padding-left: 0px; font-size: 15px; line-height: 28px; color: #555555; font-family: &quot;Spoqa Han Sans&quot;, sans-serif; background-color: #ffffff; text-align: center; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p style=\"margin-right: auto; margin-bottom: 28px; margin-left: auto; padding-right: 0px; padding-left: 0px; font-size: 15px; line-height: 28px; color: #555555; font-family: &quot;Spoqa Han Sans&quot;, sans-serif; background-color: #ffffff; text-align: center; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p style=\"margin-right: auto; margin-bottom: 28px; margin-left: auto; padding-right: 0px; padding-left: 0px; font-size: 15px; line-height: 28px; color: #555555; font-family: &quot;Spoqa Han Sans&quot;, sans-serif; background-color: #ffffff; text-align: center; padding-top: 0px !important; padding-bottom: 0px !important;\">sudo vi /etc/dhcpcd.conf 명령어로 /etc/dhcpcd.conf 파일을 열어줍니다.</p>\r\n<p style=\"margin-right: auto; margin-bottom: 28px; margin-left: auto; padding-right: 0px; padding-left: 0px; font-size: 15px; line-height: 28px; color: #555555; font-family: &quot;Spoqa Han Sans&quot;, sans-serif; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<figure class=\"imageblock alignCenter\" data-origin-width=\"0\" data-origin-height=\"0\" width=\"600\" data-ke-mobilestyle=\"widthContent\" style=\"margin: 0px auto 20px; max-width: 100%; clear: both; display: table; position: relative; text-align: center; color: #5c5c5c; font-family: &quot;Spoqa Han Sans&quot;, sans-serif; font-size: 14px; background-color: #ffffff; width: auto !important; height: auto !important;\"><span data-url=\"https://blog.kakaocdn.net/dn/bgvVDg/btq4EseNbFq/iVhf4ZJQd5cWKbRT5RyIi0/img.png\" data-lightbox=\"lightbox\" data-alt=\"\" style=\"cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/bgvVDg/btq4EseNbFq/iVhf4ZJQd5cWKbRT5RyIi0/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbgvVDg%2Fbtq4EseNbFq%2FiVhf4ZJQd5cWKbRT5RyIi0%2Fimg.png\" data-origin-width=\"0\" data-origin-height=\"0\" width=\"600\" data-ke-mobilestyle=\"widthContent\" style=\"border: 0px none; max-width: 100%; display: inline-block; height: auto; margin: 0px;\" /></span></figure>\r\n<p style=\"margin-right: auto; margin-bottom: 28px; margin-left: auto; padding-right: 0px; padding-left: 0px; font-size: 15px; line-height: 28px; color: #555555; font-family: &quot;Spoqa Han Sans&quot;, sans-serif; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p style=\"margin-right: auto; margin-bottom: 28px; margin-left: auto; padding-right: 0px; padding-left: 0px; font-size: 15px; line-height: 28px; color: #555555; font-family: &quot;Spoqa Han Sans&quot;, sans-serif; background-color: #ffffff; text-align: center; padding-top: 0px !important; padding-bottom: 0px !important;\">맨 아래에</p>\r\n<pre id=\"code_1620724288971\" class=\"html xml\" data-ke-language=\"html\" data-ke-type=\"codeblock\" style=\"overflow: auto; margin: 28px auto; padding: 0px; color: #555555; background-color: #f6f7f8; overflow-wrap: break-word; font-family: Menlo, Consolas, Monaco, monospace; font-size: 14px; line-height: 20px;\">\r\n   <code style=\"margin: 0px; padding: 0px; font-family: Menlo, Consolas, Monaco, monospace;\">interface wlan0\r\nstatic ip_address=\" \"\r\nstatic routers=\" \"</code>\r\n   </pre>\r\n<p style=\"margin-right: auto; margin-bottom: 28px; margin-left: auto; padding-right: 0px; padding-left: 0px; font-size: 15px; line-height: 28px; color: #555555; font-family: &quot;Spoqa Han Sans&quot;, sans-serif; background-color: #ffffff; text-align: center; padding-top: 0px !important; padding-bottom: 0px !important;\">를 입력해주시면 됩니다.</p>\r\n<p style=\"margin-right: auto; margin-bottom: 28px; margin-left: auto; padding-right: 0px; padding-left: 0px; font-size: 15px; line-height: 28px; color: #555555; font-family: &quot;Spoqa Han Sans&quot;, sans-serif; background-color: #ffffff; text-align: center; padding-top: 0px !important; padding-bottom: 0px !important;\">(wlan0: 무선, eth0: 유선)</p>\r\n<p style=\"margin-right: auto; margin-bottom: 28px; margin-left: auto; padding-right: 0px; padding-left: 0px; font-size: 15px; line-height: 28px; color: #555555; font-family: &quot;Spoqa Han Sans&quot;, sans-serif; background-color: #ffffff; text-align: center; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p style=\"margin-right: auto; margin-bottom: 28px; margin-left: auto; padding-right: 0px; padding-left: 0px; font-size: 15px; line-height: 28px; color: #555555; font-family: &quot;Spoqa Han Sans&quot;, sans-serif; background-color: #ffffff; text-align: center; padding-top: 0px !important; padding-bottom: 0px !important;\">ip_address에는 ifconfig에서 확인한 inet을,</p>\r\n<p style=\"margin-right: auto; margin-bottom: 28px; margin-left: auto; padding-right: 0px; padding-left: 0px; font-size: 15px; line-height: 28px; color: #555555; font-family: &quot;Spoqa Han Sans&quot;, sans-serif; background-color: #ffffff; text-align: center; padding-top: 0px !important; padding-bottom: 0px !important;\">routers에는 ip_address에서 마지막만 1로 바꿔서 입력해주시면 됩니다.</p>\r\n<p style=\"margin-right: auto; margin-bottom: 28px; margin-left: auto; padding-right: 0px; padding-left: 0px; font-size: 15px; line-height: 28px; color: #555555; font-family: &quot;Spoqa Han Sans&quot;, sans-serif; background-color: #ffffff; text-align: center; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p style=\"margin-right: auto; margin-bottom: 28px; margin-left: auto; padding-right: 0px; padding-left: 0px; font-size: 15px; line-height: 28px; color: #555555; font-family: &quot;Spoqa Han Sans&quot;, sans-serif; background-color: #ffffff; text-align: center; padding-top: 0px !important; padding-bottom: 0px !important;\">아래 명령어를 통해 networking service를 재시작해줍니다.</p>\r\n<pre id=\"code_1620724409972\" class=\"html xml\" data-ke-language=\"html\" data-ke-type=\"codeblock\" style=\"overflow: auto; margin: 28px auto; padding: 0px; color: #555555; background-color: #f6f7f8; overflow-wrap: break-word; font-family: Menlo, Consolas, Monaco, monospace; font-size: 14px; line-height: 20px;\">\r\n   <code style=\"margin: 0px; padding: 0px; font-family: Menlo, Consolas, Monaco, monospace;\">sudo /etc/init.d/networking restart</code>\r\n   </pre>\r\n<p style=\"margin-right: auto; margin-bottom: 28px; margin-left: auto; padding-right: 0px; padding-left: 0px; font-size: 15px; line-height: 28px; color: #555555; font-family: &quot;Spoqa Han Sans&quot;, sans-serif; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<figure class=\"imageblock alignCenter\" data-origin-width=\"0\" data-origin-height=\"0\" data-ke-mobilestyle=\"widthContent\" style=\"margin: 0px auto 20px; max-width: 100%; clear: both; display: table; position: relative; text-align: center; color: #5c5c5c; font-family: &quot;Spoqa Han Sans&quot;, sans-serif; font-size: 14px; background-color: #ffffff; width: auto !important; height: auto !important;\"><span data-url=\"https://blog.kakaocdn.net/dn/bKMVbK/btq4CiDS2D0/h3xtGDyNkQKSWYa5ENDqSK/img.png\" data-lightbox=\"lightbox\" data-alt=\"\" style=\"cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/bKMVbK/btq4CiDS2D0/h3xtGDyNkQKSWYa5ENDqSK/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbKMVbK%2Fbtq4CiDS2D0%2Fh3xtGDyNkQKSWYa5ENDqSK%2Fimg.png\" data-origin-width=\"0\" data-origin-height=\"0\" data-ke-mobilestyle=\"widthContent\" style=\"border: 0px none; max-width: 100%; display: inline-block; height: auto; width: 798px; margin: 0px;\" /></span></figure>\r\n<p style=\"margin-right: auto; margin-bottom: 28px; margin-left: auto; padding-right: 0px; padding-left: 0px; font-size: 15px; line-height: 28px; color: #555555; font-family: &quot;Spoqa Han Sans&quot;, sans-serif; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p style=\"margin-right: auto; margin-bottom: 28px; margin-left: auto; padding-right: 0px; padding-left: 0px; font-size: 15px; line-height: 28px; color: #555555; font-family: &quot;Spoqa Han Sans&quot;, sans-serif; background-color: #ffffff; text-align: center; padding-top: 0px !important; padding-bottom: 0px !important;\">마지막으로 라즈베리파이를 재시작해줍니다!</p>','https://khstu-98.tistory.com/38','',1,0,3,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2022-01-06 09:33:36',0,'2022-01-06 09:33:36','112.222.138.204','','','','','','','','','','','',''),(512,-512,'',512,0,0,'','','html1','[Arduino] Atmega2560 핀맵','<p>Atmega2560 핀맵</p>','','',0,0,1,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2022-01-11 13:45:55',1,'2022-01-11 13:45:55','112.222.138.204','','','','','','','','','','','',''),(513,-513,'',513,0,0,'','','html1','[Arduino] ESP8266 / ESP32 - time.h 라이브러리 이용 시간 출력 및 NTP 서버 시간 동기화 하기','<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">ESP32 / ESP8266 아두이노 IDE 코어의 기본 라이브러리 time.h를 이용하여 NTP 서버와 시간 동기화를 시키고 각 시간 및 날짜, 요일 값을 각각 지정 변수에 저장시켜 크리스털 LCD나 기타 디스플레이 모듈에 출력할 수 있도록 하고, 필요시 사용자가 특정 시간으로 변경할 수 있도록 코드를 수정해 보자.&nbsp;&nbsp;</p>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">&nbsp;</p>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">1. ESP32</p>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">아두이노 IDE에서 파일 -&gt; 예제 -&gt; ESP32 -&gt; Time -&gt; SimpleTime를 실행한다.&nbsp;</p>\r\n<figure class=\"imageblock alignCenter\" data-filename=\"esp32_simpletime.png\" data-origin-width=\"0\" data-origin-height=\"0\" style=\"margin: 0px auto 20px; max-width: 100%; clear: both; display: table; position: relative; text-align: center; font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\"><span data-url=\"https://blog.kakaocdn.net/dn/yNslK/btqzkDEX8NW/W6zdlC16kX1qJxKd9G3ms0/img.png\" data-lightbox=\"lightbox\" data-alt=\"\" style=\"box-sizing: border-box; cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/yNslK/btqzkDEX8NW/W6zdlC16kX1qJxKd9G3ms0/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyNslK%2FbtqzkDEX8NW%2FW6zdlC16kX1qJxKd9G3ms0%2Fimg.png\" data-filename=\"esp32_simpletime.png\" data-origin-width=\"0\" data-origin-height=\"0\" style=\"border: 0px; max-width: 100%; display: inline-block; width: 734px; margin: 0px; height: auto;\" /></span></figure>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">아래 코드는 기본 예제의 변수 const long&nbsp;&nbsp;gmtOffset_sec = 3600;과 const int&nbsp;&nbsp;&nbsp;daylightOffset_sec = 3600;를 timezone과 summertime 변수로 변경하고 단순화시킨 코드이다.</p>\r\n<figure class=\"fileblock\" data-ke-align=\"alignCenter\" style=\"margin: 28px auto 20px; max-width: 100%; clear: both; width: 470px; height: 71px; border: 1px solid rgb(233, 233, 233); position: relative; border-radius: 1px; font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\"><a href=\"https://blog.kakaocdn.net/dn/cyAQ1R/btqzmkqwIEH/fEpzWVgWlhqA8ECgU5tjck/ESP32_SimpleTime_example.ino?attach=1&amp;knm=tfile.ino\" class=\"\" style=\"color: #000000; text-decoration-line: none; transition: all 0.3s ease 0s; display: block; height: 71px;\" target=\"_blank\">\r\n      <div class=\"image\" style=\"box-sizing: border-box; position: absolute; left: 0px; top: 0px; width: 30px; height: 30px; background-image: url(&quot;https://t1.daumcdn.net/tistory_admin/static/manage/post-editor/img_editor_content.svg&quot;); background-position: 0px 0px; margin: 21px 17px 20px 22px;\">&nbsp;</div>\r\n      <div class=\"desc\" style=\"box-sizing: border-box; position: absolute; inset: 0px 60px 0px 70px;\">\r\n         <div class=\"filename\" style=\"box-sizing: border-box; color: #333333; font-size: 14px; text-overflow: ellipsis; height: 20px; margin: 17px 0px 0px;\"><span class=\"name\" style=\"box-sizing: border-box; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 272px; height: 20px; display: block;\">ESP32_SimpleTime_example.ino</span></div>\r\n         <div class=\"size\" style=\"box-sizing: border-box; font-family: &quot;Avenir Next&quot;, sans-serif; font-size: 12px; color: #777777; height: 16px; margin: 2px 0px 0px;\">0.00MB</div>\r\n         </div>\r\n      </a></figure>\r\n<pre id=\"code_1572237388495\" class=\"c++ cpp arduino\" data-ke-language=\"c++\" data-ke-type=\"codeblock\" style=\"overflow: auto hidden; padding: 10px; margin-top: 5px; margin-bottom: 5px; max-width: 100%; border: 1px solid rgb(221, 221, 221); font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; line-height: 21.6px; font-family: &quot;Lucida Console&quot;; background-color: #fafafa; border-radius: 3px;\">\r\n   <code class=\"hljs cpp\" style=\"border: 1px solid rgb(238, 238, 238); background: rgb(40, 44, 52); color: #abb2bf; border-radius: 5px; padding: 0.5em; margin: 3px 0px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 17px; line-height: 1.3em; font-family: D2Coding, monospace; display: block; overflow-x: auto;\"><span class=\"hljs-meta\" style=\"box-sizing: border-box; color: #61aeee;\">#<span class=\"hljs-meta-keyword\" style=\"box-sizing: border-box;\">include</span><span class=\"hljs-meta-string\" style=\"box-sizing: border-box; color: #98c379;\">&lt;WiFi.h&gt;</span></span><span class=\"hljs-meta\" style=\"box-sizing: border-box; color: #61aeee;\">#<span class=\"hljs-meta-keyword\" style=\"box-sizing: border-box;\">include</span><span class=\"hljs-meta-string\" style=\"box-sizing: border-box; color: #98c379;\">\"time.h\"</span></span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">const</span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">char</span>* ssid       = <span class=\"hljs-string\" style=\"box-sizing: border-box; color: #98c379;\">\"YOUR_SSID\"</span>;\r\n<span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">const</span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">char</span>* password   = <span class=\"hljs-string\" style=\"box-sizing: border-box; color: #98c379;\">\"YOUR_PASS\"</span>;\r\n<span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">const</span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">char</span>* ntpServer = <span class=\"hljs-string\" style=\"box-sizing: border-box; color: #98c379;\">\"pool.ntp.org\"</span>;\r\n<span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">uint8_t</span> timeZone = <span class=\"hljs-number\" style=\"box-sizing: border-box; color: #d19a66;\">9</span>;\r\n<span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">uint8_t</span> summerTime = <span class=\"hljs-number\" style=\"box-sizing: border-box; color: #d19a66;\">0</span>; <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 3600</span><span class=\"hljs-function\" style=\"box-sizing: border-box; color: #61aeee;\"><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">void</span><span class=\"hljs-title\" style=\"box-sizing: border-box;\">printLocalTime</span><span class=\"hljs-params\" style=\"box-sizing: border-box; color: #a6e22e;\">()</span></span>{\r\n  <span class=\"hljs-class\" style=\"box-sizing: border-box;\"><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">struct</span><span class=\"hljs-title\" style=\"box-sizing: border-box; color: #e6c07b;\">tm</span><span class=\"hljs-title\" style=\"box-sizing: border-box; color: #e6c07b;\">timeinfo</span>;</span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">if</span>(!getLocalTime(&amp;timeinfo)){\r\n    Serial.println(<span class=\"hljs-string\" style=\"box-sizing: border-box; color: #98c379;\">\"Failed to obtain time\"</span>);\r\n    <span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">return</span>;\r\n  }\r\n  Serial.println(&amp;timeinfo, <span class=\"hljs-string\" style=\"box-sizing: border-box; color: #98c379;\">\"%A, %B %d %Y %H:%M:%S\"</span>);\r\n}\r\n<span class=\"hljs-function\" style=\"box-sizing: border-box; color: #61aeee;\"><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">void</span><span class=\"hljs-title\" style=\"box-sizing: border-box;\">setup</span><span class=\"hljs-params\" style=\"box-sizing: border-box; color: #a6e22e;\">()</span></span>{\r\n  Serial.begin(<span class=\"hljs-number\" style=\"box-sizing: border-box; color: #d19a66;\">115200</span>);\r\n  Serial.<span class=\"hljs-built_in\" style=\"box-sizing: border-box; color: #e6c07b;\">printf</span>(<span class=\"hljs-string\" style=\"box-sizing: border-box; color: #98c379;\">\"Connecting to %s \"</span>, ssid);  <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">//connect to WiFi</span>\r\n  WiFi.begin(ssid, password);\r\n  <span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">while</span> (WiFi.status() != WL_CONNECTED) {\r\n      delay(<span class=\"hljs-number\" style=\"box-sizing: border-box; color: #d19a66;\">500</span>);\r\n      Serial.print(<span class=\"hljs-string\" style=\"box-sizing: border-box; color: #98c379;\">\".\"</span>);\r\n  }\r\n  Serial.println(<span class=\"hljs-string\" style=\"box-sizing: border-box; color: #98c379;\">\" CONNECTED\"</span>);\r\n  configTime(<span class=\"hljs-number\" style=\"box-sizing: border-box; color: #d19a66;\">3600</span> * timeZone, <span class=\"hljs-number\" style=\"box-sizing: border-box; color: #d19a66;\">3600</span> * summerTime, ntpServer); <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">//init and get the time</span>\r\n  printLocalTime();\r\n  WiFi.disconnect(<span class=\"hljs-literal\" style=\"box-sizing: border-box; color: #56b6c2;\">true</span>);  <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">//disconnect WiFi as it\'s no longer needed</span>\r\n  WiFi.mode(WIFI_OFF);\r\n}\r\n<span class=\"hljs-function\" style=\"box-sizing: border-box; color: #61aeee;\"><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">void</span><span class=\"hljs-title\" style=\"box-sizing: border-box;\">loop</span><span class=\"hljs-params\" style=\"box-sizing: border-box; color: #a6e22e;\">()</span></span>{\r\n  delay(<span class=\"hljs-number\" style=\"box-sizing: border-box; color: #d19a66;\">1000</span>);\r\n  printLocalTime();\r\n}</code>\r\n   </pre>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">상기 스케치에 사용 중인 와이파이 공유기의 SSID와 비밀번호를 입력해주고 아두이노에 업로드해준다.&nbsp; &nbsp;</p>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">const&nbsp;char*&nbsp;ssid&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;\"YOUR_SSID\";&nbsp;&nbsp;//&nbsp;공유기&nbsp;wifi&nbsp;접속&nbsp;ID&nbsp;<br />const&nbsp;char*&nbsp;password&nbsp;&nbsp;&nbsp;=&nbsp;\"YOUR_PASS\";&nbsp;&nbsp;//&nbsp;비밀번호</p>\r\n<figure class=\"imageblock alignCenter\" data-filename=\"esp32_simpletime_monitor.jpg\" width=\"600\" data-origin-width=\"0\" data-origin-height=\"0\" style=\"margin: 0px auto 20px; max-width: 100%; clear: both; display: table; position: relative; text-align: center; font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\"><span data-url=\"https://blog.kakaocdn.net/dn/moveU/btqzBr3wHkG/OZNXvEPoJ49NwDaRCkUnL0/img.jpg\" data-lightbox=\"lightbox\" data-alt=\"\" style=\"box-sizing: border-box; cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/moveU/btqzBr3wHkG/OZNXvEPoJ49NwDaRCkUnL0/img.jpg\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmoveU%2FbtqzBr3wHkG%2FOZNXvEPoJ49NwDaRCkUnL0%2Fimg.jpg\" data-filename=\"esp32_simpletime_monitor.jpg\" width=\"600\" data-origin-width=\"0\" data-origin-height=\"0\" style=\"border: 0px; max-width: 100%; display: inline-block; margin: 0px; height: auto;\" /></span></figure>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">와이파이가 연결되면 NTP 서버와 동기화가 되고 현재 시간이 시리얼 모니터에 출력된다.&nbsp;</p>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">&nbsp;</p>\r\n<div style=\"box-sizing: border-box; font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1; position: relative; text-align: center; overflow: hidden; margin: auto;\"><ins class=\"adsbygoogle\" data-ad-layout=\"in-article\" data-ad-format=\"fluid\" data-ad-client=\"ca-pub-8269928309278636\" data-ad-slot=\"7589244047\" data-adsbygoogle-status=\"done\" data-ad-status=\"filled\" style=\"display: block; height: 108px; width: 879px;\"><ins id=\"aswift_2_expand\" tabindex=\"0\" title=\"Advertisement\" aria-label=\"Advertisement\" style=\"border: none; height: 108px; width: 879px; margin: 0px; padding: 0px; position: relative; visibility: visible; background-color: transparent; display: inline-table;\"><ins id=\"aswift_2_anchor\" style=\"border: none; height: 108px; width: 879px; margin: 0px; padding: 0px; position: relative; visibility: visible; background-color: transparent; display: block; overflow: hidden;\"><iframe id=\"aswift_2\" name=\"aswift_2\" sandbox=\"allow-forms allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-top-navigation-by-user-activation\" width=\"879\" height=\"108\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" vspace=\"0\" hspace=\"0\" allowtransparency=\"true\" scrolling=\"no\" allowfullscreen=\"true\" src=\"https://googleads.g.doubleclick.net/pagead/ads?client=ca-pub-8269928309278636&amp;output=html&amp;h=200&amp;slotname=7589244047&amp;adk=3278490821&amp;adf=1597229448&amp;pi=t.ma~as.7589244047&amp;w=879&amp;fwrn=4&amp;lmt=1642077912&amp;rafmt=11&amp;psa=0&amp;format=879x200&amp;url=https%3A%2F%2Fpostpop.tistory.com%2F84&amp;flash=0&amp;host=ca-host-pub-9691043933427338&amp;wgl=1&amp;uach=WyJXaW5kb3dzIiwiMTAuMC4wIiwieDg2IiwiIiwiOTcuMC40NjkyLjcxIixbXSxudWxsLG51bGwsIjY0Il0.&amp;dt=1642077912621&amp;bpp=1&amp;bdt=659&amp;idt=179&amp;shv=r20220110&amp;mjsv=m202201040101&amp;ptt=9&amp;saldr=aa&amp;abxe=1&amp;cookie=ID%3Dc94963fbc3dd591a-22cdf34e8acf0086%3AT%3D1640687636%3ART%3D1640687636%3AS%3DALNI_MZda89KtmEfIh3gOEJUkRlNH2OqzA&amp;prev_fmts=0x0%2C300x250&amp;nras=1&amp;correlator=3201282353056&amp;frm=20&amp;pv=1&amp;ga_vid=559507242.1640687637&amp;ga_sid=1642077913&amp;ga_hid=1915058806&amp;ga_fc=1&amp;rplot=4&amp;u_tz=540&amp;u_his=5&amp;u_h=1440&amp;u_w=2560&amp;u_ah=1400&amp;u_aw=2560&amp;u_cd=24&amp;u_sd=1&amp;dmc=8&amp;adx=336&amp;ady=2364&amp;biw=1261&amp;bih=1287&amp;scr_x=0&amp;scr_y=0&amp;eid=31063752%2C21067496&amp;oid=2&amp;pvsid=2900713002779533&amp;pem=365&amp;tmod=350&amp;ref=https%3A%2F%2Fwww.google.com%2F&amp;eae=0&amp;fc=1920&amp;brdim=-7%2C0%2C-7%2C0%2C2560%2C0%2C1294%2C1407%2C1278%2C1287&amp;vis=1&amp;rsz=%7C%7CeoEbr%7C&amp;abl=CS&amp;pfx=0&amp;fu=128&amp;bc=31&amp;ifi=3&amp;uci=a!3&amp;btvi=1&amp;fsb=1&amp;xpc=3RO8atDGal&amp;p=https%3A//postpop.tistory.com&amp;dtd=183\" data-google-container-id=\"a!3\" data-google-query-id=\"CK_Lu_XgrvUCFRzJfAodogEPAQ\" data-load-complete=\"true\" style=\"max-width: 100%; left: 0px; position: absolute; top: 0px; border-width: 0px; border-style: initial; width: 879px; height: 108px;\"></iframe></ins></ins></ins></div>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">&nbsp;</p>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">코드 분석</p>\r\n<table border=\"1\" style=\"color: #000000; font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; width: 4799.28px; border-style: solid; border-color: #99cefa; background-color: #f6f9fd;\">\r\n   <tbody>\r\n      <tr>\r\n         <td style=\"width: 4777.28px; padding: 10px;\">\r\n            <p>configTime(3600 * timeZone, 3600 * summerTime, ntpServer); //init and get the time</p>\r\n            </td>\r\n         </tr>\r\n      </tbody>\r\n   </table>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">상기 코드는 NTP 서버에 연결하고 서버로부터&nbsp;유닉스 UTC 값을 수신하여 시간 값에 반영하고 time.h에 의해 시간 값(10자리&nbsp;UTC 값)은 매 1초마다 자동으로 증가한다(시계 작동 시작). NTP 서버로부터 값을 받지 못하면 시간 값은 1970년&nbsp; 1월 1일 09 : 00 : 00에서 증가하게 된다.&nbsp;</p>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">&nbsp;</p>\r\n<table border=\"1\" style=\"color: #000000; font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; width: 4799.28px; border-style: solid; border-color: #99cefa; background-color: #f6f9fd;\">\r\n   <tbody>\r\n      <tr>\r\n         <td style=\"width: 4777.28px; padding: 10px;\">\r\n            <p>void&nbsp;printLocalTime()&nbsp;{&nbsp;<br />&nbsp;&nbsp;struct tm timeinfo;&nbsp; // 구조체 변수 선언<br />&nbsp;&nbsp;if(!getLocalTime(&amp;timeinfo)){&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;Serial.println(\"Failed&nbsp;to&nbsp;obtain&nbsp;time\");&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;return;&nbsp;<br />&nbsp;&nbsp;}&nbsp;<br />&nbsp;&nbsp;Serial.println(&amp;timeinfo,&nbsp;\"%A,&nbsp;%B&nbsp;%d&nbsp;%Y&nbsp;%H:%M:%S\");&nbsp;<br />}</p>\r\n            </td>\r\n         </tr>\r\n      </tbody>\r\n   </table>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">상기 코드는 구조체 변수&nbsp;timeinfo를 선언하고&nbsp;UTC형식 시간 값을 로컬 시간으로 변경해주는 함수와 변경된 로컬 시간을 서식에 맞게 출력해주는 코드이다.</p>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</p>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">시간 출력이 서식에 맞게 잘되고 있다. 하지만 상기 코드로는 ESP32를 리셋시켜야만&nbsp;NTP 서버와 시간 동기화를 할 수 있어서 매일 1회 또는 정해진 시간마다 NTP 서버와 시간 동기화를 시킬 수가 없다.</p>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">또한, 크리스탈 LCD 등에 출력하기에는 서식 출력 코드를 사용하는데 제약이 있고 사용자 시간을 설정 역시 할 수 없다.</p>\r\n<div class=\"google-auto-placed ap_container\" style=\"box-sizing: border-box; font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1; width: 4799.28px; height: auto; clear: both; text-align: center;\"><ins data-ad-format=\"auto\" class=\"adsbygoogle adsbygoogle-noablate\" data-ad-client=\"ca-pub-8269928309278636\" data-adsbygoogle-status=\"done\" data-ad-status=\"filled\" style=\"display: block; margin: auto; background-color: transparent; height: 280px;\"><ins id=\"aswift_6_expand\" tabindex=\"0\" title=\"Advertisement\" aria-label=\"Advertisement\" style=\"border: none; height: 280px; width: 879px; margin: 0px; padding: 0px; position: relative; visibility: visible; background-color: transparent; display: inline-table;\"><ins id=\"aswift_6_anchor\" style=\"border: none; height: 280px; width: 879px; margin: 0px; padding: 0px; position: relative; visibility: visible; background-color: transparent; display: block; overflow: visible;\"><iframe id=\"aswift_6\" name=\"aswift_6\" sandbox=\"allow-forms allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-top-navigation-by-user-activation\" width=\"879\" height=\"280\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" vspace=\"0\" hspace=\"0\" allowtransparency=\"true\" scrolling=\"no\" allowfullscreen=\"true\" src=\"https://googleads.g.doubleclick.net/pagead/ads?client=ca-pub-8269928309278636&amp;output=html&amp;h=280&amp;adk=854006705&amp;adf=4195724218&amp;pi=t.aa~a.3057235084~i.51~rp.4&amp;w=879&amp;fwrn=4&amp;fwrnh=100&amp;lmt=1642077913&amp;num_ads=1&amp;rafmt=1&amp;armr=3&amp;sem=mc&amp;pwprc=6730866626&amp;psa=0&amp;ad_type=text_image&amp;format=879x280&amp;url=https%3A%2F%2Fpostpop.tistory.com%2F84&amp;flash=0&amp;host=ca-host-pub-9691043933427338&amp;fwr=0&amp;pra=3&amp;rh=200&amp;rw=879&amp;rpe=1&amp;resp_fmts=3&amp;wgl=1&amp;fa=27&amp;uach=WyJXaW5kb3dzIiwiMTAuMC4wIiwieDg2IiwiIiwiOTcuMC40NjkyLjcxIixbXSxudWxsLG51bGwsIjY0Il0.&amp;dt=1642077913491&amp;bpp=1&amp;bdt=1529&amp;idt=-M&amp;shv=r20220110&amp;mjsv=m202201040101&amp;ptt=9&amp;saldr=aa&amp;abxe=1&amp;cookie=ID%3Dc94963fbc3dd591a-22cdf34e8acf0086%3AT%3D1640687636%3ART%3D1640687636%3AS%3DALNI_MZda89KtmEfIh3gOEJUkRlNH2OqzA&amp;prev_fmts=0x0%2C300x250%2C879x200&amp;nras=2&amp;correlator=3201282353056&amp;frm=20&amp;pv=1&amp;ga_vid=559507242.1640687637&amp;ga_sid=1642077913&amp;ga_hid=1915058806&amp;ga_fc=1&amp;u_tz=540&amp;u_his=5&amp;u_h=1440&amp;u_w=2560&amp;u_ah=1400&amp;u_aw=2560&amp;u_cd=24&amp;u_sd=1&amp;dmc=8&amp;adx=336&amp;ady=3373&amp;biw=1261&amp;bih=1287&amp;scr_x=0&amp;scr_y=0&amp;eid=31063752%2C21067496&amp;oid=2&amp;pvsid=2900713002779533&amp;pem=365&amp;tmod=350&amp;ref=https%3A%2F%2Fwww.google.com%2F&amp;eae=0&amp;fc=1408&amp;brdim=-7%2C0%2C-7%2C0%2C2560%2C0%2C1294%2C1407%2C1278%2C1287&amp;vis=1&amp;rsz=%7C%7Cs%7C&amp;abl=NS&amp;fu=128&amp;bc=31&amp;ifi=7&amp;uci=a!7&amp;btvi=2&amp;fsb=1&amp;xpc=K99Qc6hLzj&amp;p=https%3A//postpop.tistory.com&amp;dtd=20\" data-google-container-id=\"a!7\" data-google-query-id=\"CJ7K5vXgrvUCFYZgvQodbKQGfg\" data-load-complete=\"true\" style=\"max-width: 100%; margin: 0px auto; left: 0px; position: absolute; top: 0px; border-width: 0px; border-style: initial; width: 879px; height: 280px;\"></iframe></ins></ins></ins></div>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">&nbsp;</p>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">원하는 시간에 NTP 서버와 시간 동기화를 할 수 있도록 사용자 함수 get_NTP() 함수를 만들어 주었다. 만약 어떠한 이유로 동기화가 되지 않는다면 약 5초 정도 시간 동기화 시도 후 사용자 시간 설정 set_time() 함수가 실행되어 미리 설정해둔 시간 값을 시작 값으로 하여 시계가 작동하게 된다.&nbsp;&nbsp;</p>\r\n<table border=\"1\" style=\"color: #000000; font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; width: 4799.28px; border-style: solid; border-color: #99cefa; background-color: #f6f9fd;\">\r\n   <tbody>\r\n      <tr>\r\n         <td style=\"width: 4777.28px; padding: 10px;\">\r\n            <p>void&nbsp;get_NTP()&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;NTP&nbsp;서버&nbsp;시간&nbsp;동기화&nbsp;&nbsp;<br />&nbsp;&nbsp;configTime(3600&nbsp;*&nbsp;timeZone,&nbsp;3600&nbsp;*&nbsp;summerTime,&nbsp;ntpServer);&nbsp;&nbsp;//&nbsp;NTP&nbsp;서버&nbsp;접속&nbsp;및&nbsp;동기화&nbsp;함수<br />&nbsp;&nbsp;while(!getLocalTime(&amp;timeinfo)){&nbsp;&nbsp;//&nbsp;로컬&nbsp;시간&nbsp;반영 함수의&nbsp;리턴&nbsp;값이&nbsp;false이면,&nbsp;시간 값없으면&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;Serial.println(\"Failed&nbsp;to&nbsp;obtain&nbsp;time\");&nbsp;&nbsp;//&nbsp;메시지&nbsp;표시&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;set_time();&nbsp;&nbsp;&nbsp;// set time&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 초기값으로 시간 설정&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;return;&nbsp;<br />&nbsp;&nbsp;}&nbsp;<br />}</p>\r\n            </td>\r\n         </tr>\r\n      </tbody>\r\n   </table>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">&nbsp;</p>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">시, 분, 초, 년, 월, 일에 해당하는 변수의 값을 변경하고 set_time() 사용자 함수를 실행하면 시계의 시간을 원하는 시간으로 변경할 수 있다.&nbsp;&nbsp;</p>\r\n<table border=\"1\" style=\"color: #000000; font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; width: 4799.28px; border-style: solid; border-color: #99cefa; background-color: #f6f9fd;\">\r\n   <tbody>\r\n      <tr>\r\n         <td style=\"width: 4777.28px; padding: 10px;\">\r\n            <p>void&nbsp;set_time()&nbsp;{&nbsp;&nbsp;&nbsp;//&nbsp;사용자&nbsp;시간&nbsp;설정&nbsp;함수&nbsp;<br />&nbsp;&nbsp;struct&nbsp;tm&nbsp;tm;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;사용자&nbsp;시간&nbsp;설정용&nbsp;구조체&nbsp;변수&nbsp;선언&nbsp;<br />&nbsp;&nbsp;tm.tm_year&nbsp;=&nbsp;s_yy&nbsp;-&nbsp;1900;&nbsp;&nbsp;<br />&nbsp;&nbsp;tm.tm_mon&nbsp;=&nbsp;s_MM&nbsp;-&nbsp;1;&nbsp;<br />&nbsp;&nbsp;tm.tm_mday&nbsp;=&nbsp;s_dd;&nbsp;<br />&nbsp;&nbsp;tm.tm_hour&nbsp;=&nbsp;s_hh;&nbsp;<br />&nbsp;&nbsp;tm.tm_min&nbsp;=&nbsp;s_mm;&nbsp;<br />&nbsp;&nbsp;tm.tm_sec&nbsp;=&nbsp;s_ss;&nbsp;<br />&nbsp;&nbsp;time_t&nbsp;t&nbsp;=&nbsp;mktime(&amp;tm);&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;UTC&nbsp;값으로&nbsp;변환&nbsp;<br />&nbsp;&nbsp;printf(\"Setting&nbsp;time:&nbsp;%s\",&nbsp;asctime(&amp;tm));&nbsp;//&nbsp;설정&nbsp;시간을&nbsp;문자열로&nbsp;출력&nbsp;<br />&nbsp;&nbsp;struct&nbsp;timeval&nbsp;now&nbsp;=&nbsp;{&nbsp;.tv_sec&nbsp;=&nbsp;t&nbsp;};&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;설정시간을&nbsp;현재&nbsp;시간에&nbsp;반영&nbsp;&nbsp;<br />&nbsp;&nbsp;settimeofday(&amp;now,&nbsp;NULL);&nbsp;&nbsp;<br />}</p>\r\n            </td>\r\n         </tr>\r\n      </tbody>\r\n   </table>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">&nbsp;</p>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">시간 서식 출력 코드를 시, 분, 초 등으로 쪼개어 사용할 수 있도록 시간 출력용 사용자 함수&nbsp;printLocalTime()를 만들어 주었다.&nbsp;&nbsp;\"time(&amp;now)\"는 시간 동기화가 되거나 또는 set_time() 함수에 의해 사용자 시간 설정이 되면 시계 라이브러리를 통해 자동으로 매 초마다 1씩 증가하는&nbsp;10자리의 UTC 시간 값이다. 이렇게 증가하는 UTC 시간 값과 이전 시간 값을 저장해준 prevEpoch와 비교하여 다르면 시간 출력 코드를 실행하도록 해주었다. 즉 별도의 millis() 함수를 사용하지 않고도 1초가 증가할 때마다 조건을 만족하여 코드를 반복적으로&nbsp;실행하게 된다.&nbsp;&nbsp;</p>\r\n<div class=\"google-auto-placed ap_container\" style=\"box-sizing: border-box; font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1; width: 4799.28px; height: auto; clear: both; text-align: center;\"><ins data-ad-format=\"auto\" class=\"adsbygoogle adsbygoogle-noablate\" data-ad-client=\"ca-pub-8269928309278636\" data-adsbygoogle-status=\"done\" data-ad-status=\"filled\" style=\"display: block; margin: auto; background-color: transparent; height: 280px;\"><ins id=\"aswift_7_expand\" tabindex=\"0\" title=\"Advertisement\" aria-label=\"Advertisement\" style=\"border: none; height: 280px; width: 879px; margin: 0px; padding: 0px; position: relative; visibility: visible; background-color: transparent; display: inline-table;\"><ins id=\"aswift_7_anchor\" style=\"border: none; height: 280px; width: 879px; margin: 0px; padding: 0px; position: relative; visibility: visible; background-color: transparent; display: block; overflow: visible;\"><iframe id=\"aswift_7\" name=\"aswift_7\" sandbox=\"allow-forms allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-top-navigation-by-user-activation\" width=\"879\" height=\"280\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" vspace=\"0\" hspace=\"0\" allowtransparency=\"true\" scrolling=\"no\" allowfullscreen=\"true\" src=\"https://googleads.g.doubleclick.net/pagead/ads?client=ca-pub-8269928309278636&amp;output=html&amp;h=280&amp;adk=854006705&amp;adf=92370475&amp;pi=t.aa~a.3057235084~i.67~rp.4&amp;w=879&amp;fwrn=4&amp;fwrnh=100&amp;lmt=1642077913&amp;num_ads=1&amp;rafmt=1&amp;armr=3&amp;sem=mc&amp;pwprc=6730866626&amp;psa=0&amp;ad_type=text_image&amp;format=879x280&amp;url=https%3A%2F%2Fpostpop.tistory.com%2F84&amp;flash=0&amp;host=ca-host-pub-9691043933427338&amp;fwr=0&amp;pra=3&amp;rh=200&amp;rw=879&amp;rpe=1&amp;resp_fmts=3&amp;wgl=1&amp;fa=27&amp;uach=WyJXaW5kb3dzIiwiMTAuMC4wIiwieDg2IiwiIiwiOTcuMC40NjkyLjcxIixbXSxudWxsLG51bGwsIjY0Il0.&amp;dt=1642077913491&amp;bpp=1&amp;bdt=1529&amp;idt=1&amp;shv=r20220110&amp;mjsv=m202201040101&amp;ptt=9&amp;saldr=aa&amp;abxe=1&amp;cookie=ID%3Dc94963fbc3dd591a-22cdf34e8acf0086%3AT%3D1640687636%3ART%3D1640687636%3AS%3DALNI_MZda89KtmEfIh3gOEJUkRlNH2OqzA&amp;prev_fmts=0x0%2C300x250%2C879x200%2C879x280&amp;nras=3&amp;correlator=3201282353056&amp;frm=20&amp;pv=1&amp;ga_vid=559507242.1640687637&amp;ga_sid=1642077913&amp;ga_hid=1915058806&amp;ga_fc=1&amp;u_tz=540&amp;u_his=5&amp;u_h=1440&amp;u_w=2560&amp;u_ah=1400&amp;u_aw=2560&amp;u_cd=24&amp;u_sd=1&amp;dmc=8&amp;adx=336&amp;ady=4615&amp;biw=1261&amp;bih=1287&amp;scr_x=0&amp;scr_y=0&amp;eid=31063752%2C21067496&amp;oid=2&amp;pvsid=2900713002779533&amp;pem=365&amp;tmod=350&amp;ref=https%3A%2F%2Fwww.google.com%2F&amp;eae=0&amp;fc=1408&amp;brdim=-7%2C0%2C-7%2C0%2C2560%2C0%2C1294%2C1407%2C1278%2C1287&amp;vis=1&amp;rsz=%7C%7Cs%7C&amp;abl=NS&amp;fu=128&amp;bc=31&amp;ifi=8&amp;uci=a!8&amp;btvi=3&amp;fsb=1&amp;xpc=dZbdMqspCD&amp;p=https%3A//postpop.tistory.com&amp;dtd=25\" data-google-container-id=\"a!8\" data-google-query-id=\"CML95vXgrvUCFZDQfAod5qME9w\" data-load-complete=\"true\" style=\"max-width: 100%; margin: 0px auto; left: 0px; position: absolute; top: 0px; border-width: 0px; border-style: initial; width: 879px; height: 280px;\"></iframe></ins></ins></ins></div>\r\n<table border=\"1\" style=\"color: #000000; font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; width: 4799.28px; border-style: solid; border-color: #99cefa; background-color: #f6f9fd;\">\r\n   <tbody>\r\n      <tr>\r\n         <td style=\"width: 4777.28px; padding: 10px;\">\r\n            <p>void&nbsp;printLocalTime()&nbsp;{&nbsp;<br />&nbsp;&nbsp;if&nbsp;(time(&amp;now)&nbsp;!=&nbsp;prevEpoch)&nbsp;{&nbsp;//&nbsp;현재&nbsp;UTC&nbsp;시간&nbsp;값과&nbsp;이전&nbsp;UTC&nbsp;시간&nbsp;값이&nbsp;다르면&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;Serial.println(time(&amp;now));&nbsp;&nbsp;//&nbsp;현재&nbsp;UTC&nbsp;시간&nbsp;값&nbsp;출력&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;getLocalTime(&amp;timeinfo);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;로컬&nbsp;변경 함수 이용&nbsp;UTC&nbsp;시간 값&nbsp;변경&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;dd&nbsp;=&nbsp;timeinfo.tm_mday;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;구조체&nbsp;내&nbsp;해당 값&nbsp;가져오기&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;MM&nbsp;=&nbsp;timeinfo.tm_mon&nbsp;+&nbsp;1;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;yy&nbsp;=&nbsp;timeinfo.tm_year&nbsp;+1900;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;ss&nbsp;=&nbsp;timeinfo.tm_sec;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;mm&nbsp;=&nbsp;timeinfo.tm_min;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;hh&nbsp;=&nbsp;timeinfo.tm_hour;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;week&nbsp;=&nbsp;timeinfo.tm_wday;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;Serial.print(week);&nbsp;Serial.print(\".&nbsp;\");&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;Serial.print(yy);&nbsp;Serial.print(\".&nbsp;\");&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;Serial.print(MM);&nbsp;Serial.print(\".&nbsp;\");&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;Serial.print(dd);&nbsp;Serial.print(\"&nbsp;\");&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;Serial.print(hh);&nbsp;Serial.print(\":&nbsp;\");&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;Serial.print(mm);&nbsp;Serial.print(\":&nbsp;\");&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;Serial.println(ss);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;prevEpoch&nbsp;=&nbsp;time(&amp;now);&nbsp;//&nbsp;현재&nbsp;UTC&nbsp;시간&nbsp;값을&nbsp;저장하여&nbsp;1초마다&nbsp;실행되도록&nbsp;함.&nbsp;<br />&nbsp;&nbsp;}&nbsp;<br />}</p>\r\n            </td>\r\n         </tr>\r\n      </tbody>\r\n   </table>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">&nbsp;</p>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">ESP32 아두이노 IDE 코어의 time.h 라이브러리에 정의된 로컬 시간 관련 구조체 변수는 아래와 같다.&nbsp;</p>\r\n<table border=\"1\" style=\"color: #000000; font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; width: 4799.28px; border-style: solid; border-color: #99cefa; background-color: #f6f9fd;\">\r\n   <tbody>\r\n      <tr>\r\n         <td style=\"width: 4777.28px; padding: 10px;\">\r\n            <p>struct&nbsp;tm&nbsp;{&nbsp;<br />&nbsp;&nbsp;int tm_sec;&nbsp;<br />&nbsp;&nbsp;int&nbsp;tm_min;&nbsp;<br />&nbsp;&nbsp;int&nbsp;tm_hour;&nbsp;<br />&nbsp;&nbsp;int&nbsp;tm_mday;&nbsp;<br />&nbsp;&nbsp;int&nbsp;tm_mon;&nbsp;<br />&nbsp;&nbsp;int&nbsp;tm_year;&nbsp;<br />&nbsp;&nbsp;int&nbsp;tm_wday;&nbsp;<br />&nbsp;&nbsp;int&nbsp;tm_yday;&nbsp;<br />&nbsp;&nbsp;int&nbsp;tm_isdst;&nbsp;<br />#ifdef&nbsp;__TM_GMTOFF&nbsp;<br />&nbsp;&nbsp;long&nbsp;&nbsp;__TM_GMTOFF;&nbsp;<br />#endif&nbsp;<br />#ifdef&nbsp;__TM_ZONE&nbsp;<br />&nbsp;&nbsp;const&nbsp;char&nbsp;*__TM_ZONE;&nbsp;<br />#endif&nbsp;<br />};</p>\r\n            </td>\r\n         </tr>\r\n      </tbody>\r\n   </table>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">week값은 \"0 = 일요일, 1 = 월요일, , , 6 = 토요일\"이다.</p>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">&nbsp;</p>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">시리얼 모니터에서 전송 옵션을 \"새 글\"로 하고 \"1\"을 입력하면 시간 설정 함수가 실행되고 \"2\"를 입력하면 NTP 서버 동기화가 실행되도록 시리얼 통신 제어 코드를 아래와 같이 작성해 주었다.&nbsp;</p>\r\n<table border=\"1\" style=\"color: #000000; font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; width: 4799.28px; border-style: solid; border-color: #99cefa; background-color: #f6f9fd;\">\r\n   <tbody>\r\n      <tr>\r\n         <td style=\"width: 4777.28px; padding: 10px;\">\r\n            <p>&nbsp;&nbsp;if(Serial.available()&nbsp;&gt;&nbsp;0){&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;temp&nbsp;=&nbsp;Serial.readStringUntil(\'\\n\');&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(temp&nbsp;==&nbsp;\"1\")&nbsp;set_time();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;set&nbsp;time&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;if&nbsp;(temp&nbsp;==&nbsp;\"2\")&nbsp;get_NTP();&nbsp;//&nbsp;NTP&nbsp;Sync&nbsp;<br />&nbsp;&nbsp;}</p>\r\n            </td>\r\n         </tr>\r\n      </tbody>\r\n   </table>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">&nbsp;</p>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">아래 스케치는 상기 코드를 반영한 것이다.</p>\r\n<figure class=\"fileblock\" data-ke-align=\"alignCenter\" style=\"margin: 28px auto 20px; max-width: 100%; clear: both; width: 470px; height: 71px; border: 1px solid rgb(233, 233, 233); position: relative; border-radius: 1px; font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\"><a href=\"https://blog.kakaocdn.net/dn/cm9LI8/btqzoATTTC7/waX7uAtei08DDjKUrZQEI1/ESP32_SimpleTime.ino?attach=1&amp;knm=tfile.ino\" class=\"\" style=\"color: #000000; text-decoration-line: none; transition: all 0.3s ease 0s; display: block; height: 71px;\" target=\"_blank\">\r\n      <div class=\"image\" style=\"box-sizing: border-box; position: absolute; left: 0px; top: 0px; width: 30px; height: 30px; background-image: url(&quot;https://t1.daumcdn.net/tistory_admin/static/manage/post-editor/img_editor_content.svg&quot;); background-position: 0px 0px; margin: 21px 17px 20px 22px;\">&nbsp;</div>\r\n      <div class=\"desc\" style=\"box-sizing: border-box; position: absolute; inset: 0px 60px 0px 70px;\">\r\n         <div class=\"filename\" style=\"box-sizing: border-box; color: #333333; font-size: 14px; text-overflow: ellipsis; height: 20px; margin: 17px 0px 0px;\"><span class=\"name\" style=\"box-sizing: border-box; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 272px; height: 20px; display: block;\">ESP32_SimpleTime.ino</span></div>\r\n         <div class=\"size\" style=\"box-sizing: border-box; font-family: &quot;Avenir Next&quot;, sans-serif; font-size: 12px; color: #777777; height: 16px; margin: 2px 0px 0px;\">0.00MB</div>\r\n         </div>\r\n      </a></figure>\r\n<pre id=\"code_1572237388523\" class=\"c++ cpp arduino\" data-ke-language=\"c++\" data-ke-type=\"codeblock\" style=\"overflow: auto hidden; padding: 10px; margin-top: 5px; margin-bottom: 5px; max-width: 100%; border: 1px solid rgb(221, 221, 221); font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; line-height: 21.6px; font-family: &quot;Lucida Console&quot;; background-color: #fafafa; border-radius: 3px;\">\r\n   <code class=\"hljs cpp\" style=\"border: 1px solid rgb(238, 238, 238); background: rgb(40, 44, 52); color: #abb2bf; border-radius: 5px; padding: 0.5em; margin: 3px 0px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 17px; line-height: 1.3em; font-family: D2Coding, monospace; display: block; overflow-x: auto;\"><span class=\"hljs-meta\" style=\"box-sizing: border-box; color: #61aeee;\">#<span class=\"hljs-meta-keyword\" style=\"box-sizing: border-box;\">include</span><span class=\"hljs-meta-string\" style=\"box-sizing: border-box; color: #98c379;\">&lt;WiFi.h&gt;  // 와이파이 라이브러리</span></span><span class=\"hljs-meta\" style=\"box-sizing: border-box; color: #61aeee;\">#<span class=\"hljs-meta-keyword\" style=\"box-sizing: border-box;\">include</span><span class=\"hljs-meta-string\" style=\"box-sizing: border-box; color: #98c379;\">\"time.h\"</span><span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 시계 라이브러리</span></span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">const</span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">char</span>* ssid       = <span class=\"hljs-string\" style=\"box-sizing: border-box; color: #98c379;\">\"SK_WiFiGIGA40F7\"</span>; <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 공유기 SSID</span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">const</span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">char</span>* password   = <span class=\"hljs-string\" style=\"box-sizing: border-box; color: #98c379;\">\"1712037218\"</span>;      <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 공유기 비밀번호</span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">const</span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">char</span>* ntpServer = <span class=\"hljs-string\" style=\"box-sizing: border-box; color: #98c379;\">\"pool.ntp.org\"</span>;     <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// NTP 서버</span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">uint8_t</span> timeZone = <span class=\"hljs-number\" style=\"box-sizing: border-box; color: #d19a66;\">9</span>;                       <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 한국 타임존 설정</span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">uint8_t</span> summerTime = <span class=\"hljs-number\" style=\"box-sizing: border-box; color: #d19a66;\">0</span>; <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 3600             // 썸머타임 시간</span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">int</span> s_hh = <span class=\"hljs-number\" style=\"box-sizing: border-box; color: #d19a66;\">12</span>;         <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 시간 설정용 시 변수 및 초기값, &lt; 0 조건 위해 자료형 int</span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">int</span> s_mm = <span class=\"hljs-number\" style=\"box-sizing: border-box; color: #d19a66;\">59</span>;         <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 시간 설정용 분 변수 및 초기값 </span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">uint8_t</span> s_ss = <span class=\"hljs-number\" style=\"box-sizing: border-box; color: #d19a66;\">45</span>;     <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 시간 설정용 초 변수 및 초기값</span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">uint16_t</span> s_yy = <span class=\"hljs-number\" style=\"box-sizing: border-box; color: #d19a66;\">2017</span>;  <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 시간 설정용 년 변수 및 초기값 </span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">uint8_t</span> s_MM = <span class=\"hljs-number\" style=\"box-sizing: border-box; color: #d19a66;\">11</span>;     <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 시간 설정용 월 변수 및 초기값 </span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">uint8_t</span> s_dd = <span class=\"hljs-number\" style=\"box-sizing: border-box; color: #d19a66;\">19</span>;     <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 시간 설정용 일 변수 및 초기값 </span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">time_t</span> now;          <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 현재 시간 변수 </span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">time_t</span> prevEpoch;    <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 이전 UTC 시간 변수</span><span class=\"hljs-class\" style=\"box-sizing: border-box;\"><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">struct</span><span class=\"hljs-title\" style=\"box-sizing: border-box; color: #e6c07b;\">tm</span><span class=\"hljs-title\" style=\"box-sizing: border-box; color: #e6c07b;\">timeinfo</span>;</span><span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 로컬 시간 반영용 구조체 변수 선언</span><span class=\"hljs-function\" style=\"box-sizing: border-box; color: #61aeee;\"><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">void</span><span class=\"hljs-title\" style=\"box-sizing: border-box;\">get_NTP</span><span class=\"hljs-params\" style=\"box-sizing: border-box; color: #a6e22e;\">()</span></span>{     <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// NTP 서버 시간 동기화 </span>\r\n  configTime(<span class=\"hljs-number\" style=\"box-sizing: border-box; color: #d19a66;\">3600</span> * timeZone, <span class=\"hljs-number\" style=\"box-sizing: border-box; color: #d19a66;\">3600</span> * summerTime, ntpServer); <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// NTP 서버 접속 및 동기화 함수</span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">while</span>(!getLocalTime(&amp;timeinfo)){  <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 로컬 시간 반영함수이 리턴 값이 false이면, 시간값 없으면</span>\r\n    Serial.println(<span class=\"hljs-string\" style=\"box-sizing: border-box; color: #98c379;\">\"Failed to obtain time\"</span>);  <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 메시지 표시</span>\r\n    set_time();   <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// set time                 // 초기값으로 시간 설정</span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">return</span>;\r\n  }\r\n}\r\n<span class=\"hljs-function\" style=\"box-sizing: border-box; color: #61aeee;\"><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">void</span><span class=\"hljs-title\" style=\"box-sizing: border-box;\">set_time</span><span class=\"hljs-params\" style=\"box-sizing: border-box; color: #a6e22e;\">()</span></span>{   <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 사용자 시간 설정 함수</span><span class=\"hljs-class\" style=\"box-sizing: border-box;\"><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">struct</span><span class=\"hljs-title\" style=\"box-sizing: border-box; color: #e6c07b;\">tm</span><span class=\"hljs-title\" style=\"box-sizing: border-box; color: #e6c07b;\">tm</span>;</span><span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 사용자 시간 설정용 구조체 변수 선언</span>\r\n  tm.tm_year = s_yy - <span class=\"hljs-number\" style=\"box-sizing: border-box; color: #d19a66;\">1900</span>; \r\n  tm.tm_mon = s_MM - <span class=\"hljs-number\" style=\"box-sizing: border-box; color: #d19a66;\">1</span>;\r\n  tm.tm_mday = s_dd;\r\n  tm.tm_hour = s_hh;\r\n  tm.tm_min = s_mm;\r\n  tm.tm_sec = s_ss;\r\n  <span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">time_t</span> t = mktime(&amp;tm);    <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// UTC 값으로 변환</span><span class=\"hljs-built_in\" style=\"box-sizing: border-box; color: #e6c07b;\">printf</span>(<span class=\"hljs-string\" style=\"box-sizing: border-box; color: #98c379;\">\"Setting time: %s\"</span>, asctime(&amp;tm)); <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 설정 시간을 문자열로 출력</span><span class=\"hljs-class\" style=\"box-sizing: border-box;\"><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">struct</span><span class=\"hljs-title\" style=\"box-sizing: border-box; color: #e6c07b;\">timeval</span><span class=\"hljs-title\" style=\"box-sizing: border-box; color: #e6c07b;\">now</span> = {</span> .tv_sec = t };     <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 설정시간을 현재 시간에 반영 </span>\r\n  settimeofday(&amp;now, <span class=\"hljs-literal\" style=\"box-sizing: border-box; color: #56b6c2;\">NULL</span>); \r\n}\r\n<span class=\"hljs-function\" style=\"box-sizing: border-box; color: #61aeee;\"><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">void</span><span class=\"hljs-title\" style=\"box-sizing: border-box;\">printLocalTime</span><span class=\"hljs-params\" style=\"box-sizing: border-box; color: #a6e22e;\">()</span></span>{\r\n  <span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">if</span> (time(&amp;now) != prevEpoch) { <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 현재 UTC 시간 값과 이전 UTC 시간 값이 다르면 </span>\r\n    Serial.println(time(&amp;now));  <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 현재 UTC 시간 값 출력</span>\r\n    getLocalTime(&amp;timeinfo);     <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 로컬 변경함수이용 UTC 시간값 변경</span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">int</span> dd = timeinfo.tm_mday;       <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 구조체 내 해당값 가져오기</span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">int</span> MM = timeinfo.tm_mon + <span class=\"hljs-number\" style=\"box-sizing: border-box; color: #d19a66;\">1</span>;\r\n    <span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">int</span> yy = timeinfo.tm_year +<span class=\"hljs-number\" style=\"box-sizing: border-box; color: #d19a66;\">1900</span>;\r\n    <span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">int</span> ss = timeinfo.tm_sec;\r\n    <span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">int</span> mm = timeinfo.tm_min;\r\n    <span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">int</span> hh = timeinfo.tm_hour;\r\n    <span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">int</span> week = timeinfo.tm_wday;\r\n    Serial.print(week); Serial.print(<span class=\"hljs-string\" style=\"box-sizing: border-box; color: #98c379;\">\". \"</span>);\r\n    Serial.print(yy); Serial.print(<span class=\"hljs-string\" style=\"box-sizing: border-box; color: #98c379;\">\". \"</span>);\r\n    Serial.print(MM); Serial.print(<span class=\"hljs-string\" style=\"box-sizing: border-box; color: #98c379;\">\". \"</span>);\r\n    Serial.print(dd); Serial.print(<span class=\"hljs-string\" style=\"box-sizing: border-box; color: #98c379;\">\" \"</span>);\r\n    Serial.print(hh); Serial.print(<span class=\"hljs-string\" style=\"box-sizing: border-box; color: #98c379;\">\": \"</span>);\r\n    Serial.print(mm); Serial.print(<span class=\"hljs-string\" style=\"box-sizing: border-box; color: #98c379;\">\": \"</span>);\r\n    Serial.println(ss);\r\n    prevEpoch = time(&amp;now); <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 현재 UTC 시간 값을 저장하여 1초마다 실행되도록 함.</span>\r\n  }\r\n}\r\n<span class=\"hljs-function\" style=\"box-sizing: border-box; color: #61aeee;\"><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">void</span><span class=\"hljs-title\" style=\"box-sizing: border-box;\">setup</span><span class=\"hljs-params\" style=\"box-sizing: border-box; color: #a6e22e;\">()</span></span>{\r\n  Serial.begin(<span class=\"hljs-number\" style=\"box-sizing: border-box; color: #d19a66;\">115200</span>);\r\n  Serial.<span class=\"hljs-built_in\" style=\"box-sizing: border-box; color: #e6c07b;\">printf</span>(<span class=\"hljs-string\" style=\"box-sizing: border-box; color: #98c379;\">\"Connecting to %s \"</span>, ssid); <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 공유기 아이디 표시</span>\r\n  WiFi.begin(ssid, password);               <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 와이파이 STA모드 시작 및 연결</span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">while</span> (WiFi.status() != WL_CONNECTED) {   <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 와이파이 연결이 안된 상태이면 </span>\r\n    delay(<span class=\"hljs-number\" style=\"box-sizing: border-box; color: #d19a66;\">500</span>);                             <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 0.5초마다</span>\r\n    Serial.print(<span class=\"hljs-string\" style=\"box-sizing: border-box; color: #98c379;\">\".\"</span>);                      <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// \'.\' 표시</span>\r\n  }\r\n  Serial.println(<span class=\"hljs-string\" style=\"box-sizing: border-box; color: #98c379;\">\" CONNECTED\"</span>);\r\n  get_NTP();                                <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// NTP 서버 시간 동기화 시작</span>\r\n}\r\n<span class=\"hljs-function\" style=\"box-sizing: border-box; color: #61aeee;\"><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">void</span><span class=\"hljs-title\" style=\"box-sizing: border-box;\">loop</span><span class=\"hljs-params\" style=\"box-sizing: border-box; color: #a6e22e;\">()</span></span>{\r\n  <span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">if</span>(Serial.available() &gt; <span class=\"hljs-number\" style=\"box-sizing: border-box; color: #d19a66;\">0</span>){\r\n    String temp = Serial.readStringUntil(<span class=\"hljs-string\" style=\"box-sizing: border-box; color: #98c379;\">\'\\n\'</span>);\r\n    <span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">if</span> (temp == <span class=\"hljs-string\" style=\"box-sizing: border-box; color: #98c379;\">\"1\"</span>) set_time();     <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// set time</span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">else</span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">if</span> (temp == <span class=\"hljs-string\" style=\"box-sizing: border-box; color: #98c379;\">\"2\"</span>) get_NTP(); <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// NTP Sync</span>\r\n  }\r\n  printLocalTime();                  <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 로컬 시간 출력</span>\r\n}</code>\r\n   </pre>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">&nbsp;</p>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">상기 코드에서는 매 초에 대한 오차값 보정을 해줄 수는 없다. 이전 글&nbsp;<b><a href=\"https://postpop.tistory.com/39\" style=\"color: #000000; text-decoration-line: none; transition: all 0.3s ease 0s;\" target=\"_blank\">아두이노 시계 예제, ESP01 WiFi 이용 시간 동기화 하기</a></b>&nbsp;는 자체 millis() 함수를 사용하여 시계를 구현했으므로 실제 초와 millis() 함수의 초값에 발생하는 오차를 측정하고 millis() 함수의 조건 범위를 조정하여 좀 더 정확한 시계를 구현할 수 있었다.&nbsp;</p>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">&nbsp;</p>\r\n<div style=\"box-sizing: border-box; font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1; position: relative; text-align: center; overflow: hidden; margin: auto;\"><ins class=\"kakao_ad_area\" data-ad-unit=\"DAN-1k1zja6dnrfj7\" data-ad-width=\"728\" data-ad-height=\"90\" id=\"kakao_ad_KX2KPc\" style=\"display: inline-block; text-decoration-line: none; height: 90px; max-height: inherit; min-height: 90px; min-width: 728px; width: 728px;\">\r\n      <div data-ad-creative-wrap=\"outer\" class=\"adfit__html-banner\" style=\"box-sizing: border-box; position: relative; overflow: hidden; max-height: inherit; min-width: 728px; min-height: 90px;\">\r\n         <div data-ad-creative-wrap=\"inner\" class=\"adfit__html-banner__inner\" style=\"box-sizing: border-box; overflow: hidden; border: 0px; margin: 0px auto; height: 90px;\">\r\n            <div style=\"box-sizing: border-box;\"><iframe src=\"https://t1.daumcdn.net/adfit/adunit_style/3901799efbe401fc1813f3f94e575a9eb944204d\" width=\"100%\" frameborder=\"0\" scrolling=\"no\" marginheight=\"0\" marginwidth=\"0\" name=\"%5B%7B%22usePrefersColorScheme%22%3A%22N%22%2C%22usePreferColorScheme%22%3A%22N%22%2C%22frameId%22%3A%227c4d694b-2f0d-45c6-a4e7-7ffba0785004%22%2C%22frameName%22%3A%227c4d694b-2f0d-45c6-a4e7-7ffba0785004%22%2C%22title%22%3A%22%EB%8C%80%EA%B5%AC%ED%95%9C%EA%B5%AD%EA%B3%B5%EB%AC%B4%EC%9B%90%ED%95%99%EC%9B%90%22%2C%22body%22%3A%22%EB%8C%80%EA%B5%AC%EA%B2%BD%EB%B6%81%20%EC%98%A4%ED%94%84%EB%9D%BC%EC%9D%B8%201%EC%9C%84%2C%ED%95%A9%EA%B2%A9%ED%9B%84%EA%B8%B0%208000%EB%AA%85%2C11%EC%9B%94%2015%EC%9D%BC%202%EC%B0%A8%20%EA%B0%9C%EA%B0%95%20%EB%93%B1%EB%A1%9D%EC%A4%91%22%2C%22adInfoIcon%22%3A%7B%22url%22%3A%22https%3A%2F%2Ft1.daumcdn.net%2Fbiz%2Fui%2Fad%2FADmark%2Fi_mark_200803.png%22%2C%22width%22%3A15%2C%22height%22%3A15%7D%2C%22adInfoUrl%22%3A%22https%3A%2F%2Finfo.ad.daum.net%2Foptout.do%22%2C%22landingUrl%22%3A%22https%3A%2F%2Fka.ad.daum.net%2Fclick%2Fhttp%253A%252F%252Ftestb.com%253Futm_source%253Dkakao%2526utm_medium%253Dkeyword%2526utm_campaign%253DPREMIUM_LINK%2526k_campaign%253D244548035410108416%2526k_adgroup%253D244549374898839552%2526k_media%253DPREMIUM_LINK_CONTENT%2526k_creative%253D246349500930752512%2526k_creativelink%253D246349501006249984%2526k_rank%253D1%2FTpn9jrMaHHPsWmxn2b6D508UiU86WqTukyuiDIXBMwww34YrIF9k6ArjBotdGLzU0tHLgnfVdeKf2dZdOgs3Prt4wTzs_OQEpUC8vKLdyUCobcnt5c9KKFBjjLFKDT_um9cyCT6HE5jnnZqbYWVWx4-AUDzP7_a8P9o4bX3AfTZD38q3TeMZlPtrGx6GclpHEKH563A1vlpfA0LZJl1Oe7J_JhQSxMEFMnlMsLOAwUpxnMClKl-5j3yUBVxmrwuAFCcqc1piMBoA5p48OXjIoA_xKQrOooNl434PaliNbZeXHSJ2j6mHw6ASV_1SFdkbgcygQc808H737OZH6HPdy92tgY-Esc5AoMwLx7Zm1wtIXNRtmoKW0YNxbuI1dg%3D%3D%3Fp%3DQQe_TsL00pHe_Io9C4WKHw%22%2C%22useAdInfoIcon%22%3Atrue%2C%22useAdInfoUrl%22%3Atrue%2C%22events%22%3A%5B%7B%22type%22%3A%22viewable%22%2C%22url%22%3A%22https%3A%2F%2Fka.ad.daum.net%2Fvimp%2FTpn9jrMaHHPsWmxn2b6D508UiU86WqTukyuiDIXBMwww34YrIF9k6ArjBotdGLzU0tHLgnfVdeKf2dZdOgs3Prt4wTzs_OQEpUC8vKLdyUCobcnt5c9KKFBjjLFKDT_um9cyCT6HE5jnnZqbYWVWx4-AUDzP_Pe-aIUQYn2IZ3pcmIPyEoQC%3Fp%3DQQe_TsL00pHe_Io9C4WKHw%22%7D%2C%7B%22type%22%3A%22rendered%22%2C%22url%22%3A%22https%3A%2F%2Fka.ad.daum.net%2Frimp%2FTpn9jrMaHHPsWmxn2b6D508UiU86WqTukyuiDIXBMwww34YrIF9k6ArjBotdGLzU0tHLgnfVdeKf2dZdOgs3Prt4wTzs_OQEpUC8vKLdyUCobcnt5c9KKFBjjLFKDT_um9cyCT6HE5jnnZqbYWVWx4-AUDzP_Pe-aIUQYn2IZ3pcmIPyEoQC%3Fp%3DQQe_TsL00pHe_Io9C4WKHw%22%7D%2C%7B%22type%22%3A%22rendered%22%2C%22url%22%3A%22https%3A%2F%2Fkyson.ad.daum.net%2Fad%2Frendered%3Frequest_id%3D364e5521-7e13-46fb-960a-520c8244d960%26adunit_id%3DDAN-1k1zja6dnrfj7%26bid_id%3Df6da1965-2dfe-47bf-aec6-64b86184fd0d1%26dsp_id%3DKEYWORDAD%26med_dsp_id%3DKAAS%26network_type%3DGENERAL%26sdk_type%3Dweb%26sdk_version%3D4.1.4%26ad_type%3DBanner%26w%3D728%26h%3D90%26template_seq%3D27%22%7D%2C%7B%22type%22%3A%22viewable%22%2C%22url%22%3A%22https%3A%2F%2Fkyson.ad.daum.net%2Fad%2Fviewable%3Frequest_id%3D364e5521-7e13-46fb-960a-520c8244d960%26adunit_id%3DDAN-1k1zja6dnrfj7%26bid_id%3Df6da1965-2dfe-47bf-aec6-64b86184fd0d1%26dsp_id%3DKEYWORDAD%26med_dsp_id%3DKAAS%26network_type%3DGENERAL%26sdk_type%3Dweb%26sdk_version%3D4.1.4%26ad_type%3DBanner%26w%3D728%26h%3D90%26template_seq%3D27%22%7D%2C%7B%22type%22%3A%22click%22%2C%22url%22%3A%22https%3A%2F%2Fkyson.ad.daum.net%2Fad%2Fclick%3Frequest_id%3D364e5521-7e13-46fb-960a-520c8244d960%26adunit_id%3DDAN-1k1zja6dnrfj7%26bid_id%3Df6da1965-2dfe-47bf-aec6-64b86184fd0d1%26dsp_id%3DKEYWORDAD%26med_dsp_id%3DKAAS%26network_type%3DGENERAL%26sdk_type%3Dweb%26sdk_version%3D4.1.4%26ad_type%3DBanner%26w%3D728%26h%3D90%26template_seq%3D27%22%7D%2C%7B%22type%22%3A%22duration%22%2C%22url%22%3A%22https%3A%2F%2Fkyson.ad.daum.net%2Fad%2Fduration%3Frequest_id%3D364e5521-7e13-46fb-960a-520c8244d960%26adunit_id%3DDAN-1k1zja6dnrfj7%26bid_id%3Df6da1965-2dfe-47bf-aec6-64b86184fd0d1%26dsp_id%3DKEYWORDAD%26med_dsp_id%3DKAAS%26network_type%3DGENERAL%26sdk_type%3Dweb%26sdk_version%3D4.1.4%26ad_type%3DBanner%26w%3D728%26h%3D90%26template_seq%3D27%22%7D%2C%7B%22type%22%3A%22rendered%22%2C%22url%22%3A%22https%3A%2F%2Fserv.ds.kakao.com%2Fdspr%2Fsync%3Fdspr%3DalHgmZ_rq05OpnPWXKqO-R1ac5RlRCnJcXuv3-y0kdqiWlg47tPEoJn7xQlhJ51M_oWcuWmn42H-OukDOErSL1X3BAy_ZaBhT2SJOhQftUn3XRUwCdGaZBcogvPNfqDeZlB5_6MxbUAcBeA6PwnS9LhVoOr0vghgcaB2YrN04vIYFMstJ364POVK5vnH3rvhsvRkXnIRQDb37WDRqkiG7lre_TK6XrnTmabC4xunlx6fF0HUykRUGGcAZY2-Lu_u9n5g1miwlD0A88yBijy-UmEgerNaAfyBvC1vrg3jk50hzZwX-ZgZ-lQz6YRUX4Fjab3STiM6NhKSHv0BMPDFof5K7S4EgXeeRj92PTxyNFBMyYNVbf-b0LKibWwYEvhJLT2FdgpPttz0-3-JfAquexCi437hBX4NVwwsWZKiMIxGZkq4i1I9aEwm8EsLLvTi6A15kLkvnbsnhXfF0PKPCaiGKX1RHDBcrf5_sJsqNvgpAl7qTnNKz8dB9DR8WjSeHJEn0RAtyD0hIM6c6u822TV7b4_nJ6c5d6BLbDfRwjalVjzrWAkWOz8JCNWkt0gq%22%7D%5D%2C%22dspId%22%3A%22KEYWORDAD%22%2C%22bodyLink%22%3A%7B%22url%22%3A%22https%3A%2F%2Fka.ad.daum.net%2Fclick%2Fhttp%253A%252F%252Ftestb.com%253Futm_source%253Dkakao%2526utm_medium%253Dkeyword%2526utm_campaign%253DPREMIUM_LINK%2526k_campaign%253D244548035410108416%2526k_adgroup%253D244549374898839552%2526k_media%253DPREMIUM_LINK_CONTENT%2526k_creative%253D246349500930752512%2526k_creativelink%253D246349501006249984%2526k_rank%253D1%2FTpn9jrMaHHPsWmxn2b6D508UiU86WqTukyuiDIXBMwww34YrIF9k6ArjBotdGLzU0tHLgnfVdeKf2dZdOgs3Prt4wTzs_OQEpUC8vKLdyUCobcnt5c9KKFBjjLFKDT_um9cyCT6HE5jnnZqbYWVWx4-AUDzP7_a8P9o4bX3AfTZD38q3TeMZlPtrGx6GclpHEKH563A1vlpfA0LZJl1Oe7J_JhQSxMEFMnlMsLOAwUpxnMClKl-5j3yUBVxmrwuAFCcqc1piMBoA5p48OXjIoA_xKQrOooNl434PaliNbZeXHSJ2j6mHw6ASV_1SFdkbgcygQc808H737OZH6HPdy92tgY-Esc5AoMwLx7Zm1wtIXNRtmoKW0YNxbrNKaGyYdu8eNjDx1bG6UkQ6LoOaBG5qCfY1r_aX%3Fp%3DQQe_TsL00pHe_Io9C4WKHw%22%7D%2C%22displayUrl%22%3A%22http%3A%2F%2Ftestb.com%22%2C%22nasTemplateSeq%22%3A27%2C%22type%22%3A%22native%22%7D%5D\" id=\"7c4d694b-2f0d-45c6-a4e7-7ffba0785004\" style=\"max-width: 100%; position: absolute; top: 0px; left: 0px; display: block; border-width: initial; border-style: none; height: 90px; width: 728px; min-width: 728px; min-height: 90px; overflow: hidden; padding: 0px; margin: 0px auto;\"></iframe></div>\r\n            </div>\r\n         </div>\r\n      </ins></div>\r\n<div style=\"box-sizing: border-box; font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1; position: relative; text-align: center; overflow: hidden; margin: auto;\"><ins class=\"adsbygoogle\" data-ad-client=\"ca-pub-8269928309278636\" data-ad-slot=\"5172369234\" data-ad-format=\"auto\" data-full-width-responsive=\"true\" data-adsbygoogle-status=\"done\" data-ad-status=\"filled\" style=\"display: block; height: 227px; width: 879px;\"><ins id=\"aswift_3_expand\" tabindex=\"0\" title=\"Advertisement\" aria-label=\"Advertisement\" style=\"border: none; height: 227px; width: 879px; margin: 0px; padding: 0px; position: relative; visibility: visible; background-color: transparent; display: inline-table;\"><ins id=\"aswift_3_anchor\" style=\"border: none; height: 227px; width: 879px; margin: 0px; padding: 0px; position: relative; visibility: visible; background-color: transparent; display: block; overflow: hidden;\"></ins></ins></ins></div>','https://postpop.tistory.com/84','',2,0,4,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2022-01-13 21:55:33',2,'2022-01-13 21:55:33','192.168.219.101','','','','','','','','','','','',''),(514,-514,'',514,0,0,'','','html1','[Arduino] ESP32-CAM 스틸사진 캡쳐 & FTP 업로드','<div class=\"area-main\" style=\"box-sizing: inherit; width: 640px; max-width: 640px; margin-top: 0px;\">\r\n   <div class=\"area-view\" style=\"box-sizing: inherit;\">\r\n      <div class=\"article-view\" style=\"box-sizing: inherit; margin-bottom: 12px;\">\r\n         <div class=\"tt_article_useless_p_margin contents_style\" style=\"box-sizing: inherit;\">\r\n            <p style=\"box-sizing: inherit; margin-bottom: 28px; font-size: 16px; line-height: 26px; color: #555555; padding-top: 0px !important; padding-bottom: 0px !important;\">ESP32-CAM은 저가이지만 와이파이 와 카메라를 장착한 소형 모듈입니다.</p>\r\n            <p style=\"box-sizing: inherit; margin-bottom: 28px; font-size: 16px; line-height: 26px; color: #555555; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n            <p style=\"box-sizing: inherit; margin-bottom: 28px; font-size: 16px; line-height: 26px; color: #555555; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n            <figure class=\"imageblock alignCenter\" data-origin-width=\"0\" data-origin-height=\"0\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: inherit; margin: 0px auto 20px; max-width: 100%; clear: both; display: table; position: relative; text-align: center;\"><span data-url=\"https://blog.kakaocdn.net/dn/cfGVeM/btqFo5Crc4s/QKdKeQn1XyfkFaO3oxEulK/img.png\" data-lightbox=\"lightbox\" data-alt=\"\" style=\"box-sizing: inherit; cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/cfGVeM/btqFo5Crc4s/QKdKeQn1XyfkFaO3oxEulK/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcfGVeM%2FbtqFo5Crc4s%2FQKdKeQn1XyfkFaO3oxEulK%2Fimg.png\" data-origin-width=\"0\" data-origin-height=\"0\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: inherit; border-style: none; max-width: 100%; display: inline-block; width: 640px; margin: 0px; height: auto;\" /></span></figure>\r\n            <p style=\"box-sizing: inherit; margin-bottom: 28px; font-size: 16px; line-height: 26px; color: #555555; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n            <h3 data-ke-size=\"size23\" style=\"box-sizing: inherit; font-size: 20px; margin-bottom: 24px; font-weight: normal; color: rgba(0, 0, 0, 0.87); line-height: 1.4;\">버튼 기능 구현</h3>\r\n            <p style=\"box-sizing: inherit; margin-bottom: 28px; font-size: 16px; line-height: 26px; color: #555555; padding-top: 0px !important; padding-bottom: 0px !important;\">D16 번 핀을 버튼과 연결하여 버튼 신호를 받습니다.</p>\r\n            <p style=\"box-sizing: inherit; margin-bottom: 28px; font-size: 16px; line-height: 26px; color: #555555; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n            <p style=\"box-sizing: inherit; margin-bottom: 28px; font-size: 16px; line-height: 26px; color: #555555; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n            <figure class=\"imageblock alignCenter\" data-origin-width=\"0\" data-origin-height=\"0\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: inherit; margin: 0px auto 20px; max-width: 100%; clear: both; display: table; position: relative; text-align: center;\"><span data-url=\"https://blog.kakaocdn.net/dn/Pvw6H/btqFpKSfklp/0AjBJ4TSbSgTSUk3dzqeV0/img.png\" data-lightbox=\"lightbox\" data-alt=\"\" style=\"box-sizing: inherit; cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/Pvw6H/btqFpKSfklp/0AjBJ4TSbSgTSUk3dzqeV0/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPvw6H%2FbtqFpKSfklp%2F0AjBJ4TSbSgTSUk3dzqeV0%2Fimg.png\" data-origin-width=\"0\" data-origin-height=\"0\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: inherit; border-style: none; max-width: 100%; display: inline-block; width: 640px; margin: 0px; height: auto;\" /></span></figure>\r\n            <p style=\"box-sizing: inherit; margin-bottom: 28px; font-size: 16px; line-height: 26px; color: #555555; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n            <figure data-ke-type=\"video\" data-ke-style=\"alignCenter\" data-video-host=\"kakaotv\" data-video-url=\"https://tv.kakao.com/channel/2723244/cliplink/410534878\" data-video-thumbnail=\"https://scrap.kakaocdn.net/dn/H9iij/hyGHkoay8L/7ZMYvs6ksFY86SRYlFmiU1/img.png?width=854&amp;height=429&amp;face=0_0_854_429,https://scrap.kakaocdn.net/dn/NleTp/hyGFLuabXj/rUxoknSaFK8wxlwpOptRf0/img.jpg?width=640&amp;height=360&amp;face=0_0_640_360\" data-video-width=\"854\" data-video-height=\"429\" data-video-origin-width=\"854\" data-video-origin-height=\"429\" data-ke-mobilestyle=\"widthContent\" data-video-play-service=\"daum_tistory\" style=\"box-sizing: inherit; margin: 0px auto 20px; max-width: 100%; clear: both; justify-content: center; align-items: center; position: relative; text-align: center; color: #bdbdbd; letter-spacing: -0.7px; font-size: 16px; line-height: 30px;\"><iframe src=\"https://play-tv.kakao.com/embed/player/cliplink/410534878?service=daum_tistory\" width=\"854\" height=\"429\" frameborder=\"0\" allowfullscreen=\"true\" style=\"box-sizing: inherit; max-width: 100%; margin: 0px;\"></iframe>\r\n               <figcaption style=\"box-sizing: inherit; font-size: 14px; word-break: break-word; padding-top: 10px; min-height: 20px; caption-side: bottom; color: #666666;\"></figcaption>\r\n               </figure>\r\n            <p style=\"box-sizing: inherit; margin-bottom: 28px; font-size: 16px; line-height: 26px; color: #555555; padding-top: 0px !important; padding-bottom: 0px !important;\">사진 촬영 &amp; FTP 업로드 함수를 프로그래밍합니다.</p>\r\n            <p style=\"box-sizing: inherit; margin-bottom: 28px; font-size: 16px; line-height: 26px; color: #555555; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n            <figure class=\"imageblock alignCenter\" data-origin-width=\"0\" data-origin-height=\"0\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: inherit; margin: 0px auto 20px; max-width: 100%; clear: both; display: table; position: relative; text-align: center;\"><span data-url=\"https://blog.kakaocdn.net/dn/qRbOz/btqFpAI20Yf/yMnvgOMFfhyG1L9Y4lglpk/img.png\" data-lightbox=\"lightbox\" data-alt=\"\" style=\"box-sizing: inherit; cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/qRbOz/btqFpAI20Yf/yMnvgOMFfhyG1L9Y4lglpk/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqRbOz%2FbtqFpAI20Yf%2FyMnvgOMFfhyG1L9Y4lglpk%2Fimg.png\" data-origin-width=\"0\" data-origin-height=\"0\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: inherit; border-style: none; max-width: 100%; display: inline-block; width: 640px; margin: 0px; height: auto;\" /></span></figure>\r\n            <p style=\"box-sizing: inherit; margin-bottom: 28px; font-size: 16px; line-height: 26px; color: #555555; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n            <h3 data-ke-size=\"size23\" style=\"box-sizing: inherit; font-size: 20px; margin-bottom: 24px; font-weight: normal; color: rgba(0, 0, 0, 0.87); line-height: 1.4;\">버튼을 눌러 사진 촬영후 FTP로 이미지 업로드</h3>\r\n            <p style=\"box-sizing: inherit; margin-bottom: 28px; font-size: 16px; line-height: 26px; color: #555555; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n            <p style=\"box-sizing: inherit; margin-bottom: 28px; font-size: 16px; line-height: 26px; color: #555555; padding-top: 0px !important; padding-bottom: 0px !important;\">버튼을 누르면 사진을 촬영하고 FTP 로 이미지를 업로드합니다.</p>\r\n            <p style=\"box-sizing: inherit; margin-bottom: 28px; font-size: 16px; line-height: 26px; color: #555555; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n            <figure data-ke-type=\"video\" data-ke-style=\"alignCenter\" data-video-host=\"kakaotv\" data-video-url=\"https://tv.kakao.com/channel/2723244/cliplink/410536702\" data-video-thumbnail=\"https://scrap.kakaocdn.net/dn/bwaCj0/hyGFQ3m9EC/3pc8IKWXpqhp3GRyBrD73k/img.png?width=672&amp;height=480&amp;face=0_0_672_480,https://scrap.kakaocdn.net/dn/cOgBJC/hyGFWJgrtp/Z8HHyL8jinrSRPagR7M4H1/img.jpg?width=640&amp;height=360&amp;face=0_0_640_360\" data-video-width=\"672\" data-video-height=\"480\" data-video-origin-width=\"672\" data-video-origin-height=\"480\" data-ke-mobilestyle=\"widthContent\" data-video-play-service=\"daum_tistory\" style=\"box-sizing: inherit; margin: 0px auto 20px; max-width: 100%; clear: both; justify-content: center; align-items: center; position: relative; text-align: center; color: #bdbdbd; letter-spacing: -0.7px; font-size: 16px; line-height: 30px;\"><iframe src=\"https://play-tv.kakao.com/embed/player/cliplink/410536702?service=daum_tistory\" width=\"672\" height=\"480\" frameborder=\"0\" allowfullscreen=\"true\" style=\"box-sizing: inherit; max-width: 100%; margin: 0px;\"></iframe>\r\n               <figcaption style=\"box-sizing: inherit; font-size: 14px; word-break: break-word; padding-top: 10px; min-height: 20px; caption-side: bottom; color: #666666;\"></figcaption>\r\n               </figure>\r\n            <p style=\"box-sizing: inherit; margin-bottom: 28px; font-size: 16px; line-height: 26px; color: #555555; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n            <h2 data-ke-size=\"size26\" style=\"box-sizing: inherit; font-size: 24px; margin-bottom: 24px; font-weight: normal; color: rgba(0, 0, 0, 0.87); line-height: 1.38;\">NTP 현재시간 얻어오기</h2>\r\n            <p style=\"box-sizing: inherit; margin-bottom: 28px; font-size: 16px; line-height: 26px; color: #555555; padding-top: 0px !important; padding-bottom: 0px !important;\"><a href=\"https://www.arduinolibraries.info/libraries/ntp-client\" style=\"box-sizing: inherit; display: inline-block; color: #3d62ce;\" target=\"_blank\">https://www.arduinolibraries.info/libraries/ntp-client</a></p>\r\n            <figure id=\"og_1594090506803\" contenteditable=\"false\" data-ke-type=\"opengraph\" data-og-type=\"website\" data-og-title=\"NTPClient\" data-og-description=\"An NTPClient to connect to a time server\" data-og-host=\"www.arduinolibraries.info\" data-og-source-url=\"https://www.arduinolibraries.info/libraries/ntp-client\" data-og-url=\"https://www.arduinolibraries.info/libraries/ntp-client\" data-og-image=\"\" style=\"box-sizing: inherit; margin: 30px 0px; max-width: 100%; clear: both;\"><a href=\"https://www.arduinolibraries.info/libraries/ntp-client\" target=\"_blank\" rel=\"noopener\" data-source-url=\"https://www.arduinolibraries.info/libraries/ntp-client\" style=\"box-sizing: border-box; display: block; color: #000000; position: relative; height: 200px; border: 1px solid rgb(217, 217, 217); text-decoration-line: none; z-index: 1;\">\r\n                  <div class=\"og-image\" style=\"box-sizing: inherit; position: absolute; top: 0px; bottom: 0px; left: 0px; width: 200px; border-right: 1px solid rgb(217, 217, 217); background-size: cover; background-position: center center; background-image: url(&quot;&quot;);\">&nbsp;</div>\r\n                  <div class=\"og-text\" style=\"box-sizing: border-box; position: absolute; inset: 0px 0px 0px 201px; padding: 33px 46px 0px 39px;\">\r\n                     <p class=\"og-title\" style=\"box-sizing: inherit; font-size: 22px; line-height: 28px; max-width: 467px; text-overflow: ellipsis; white-space: nowrap; overflow: hidden; font-family: &quot;Noto Sans DemiLight&quot;, &quot;Noto Sans KR&quot;, sans-serif; padding-top: 0px !important; padding-bottom: 0px !important; margin-bottom: 10px !important;\">NTPClient</p>\r\n                     <p class=\"og-desc\" style=\"box-sizing: inherit; font-size: 14px; line-height: normal; color: #909090; text-overflow: ellipsis; overflow: hidden; font-family: &quot;Noto Sans DemiLight&quot;, &quot;Noto Sans KR&quot;, sans-serif; font-stretch: normal; max-height: 42px; -webkit-line-clamp: 2; -webkit-box-orient: vertical; display: -webkit-box; padding-top: 0px !important; padding-bottom: 0px !important;\">An NTPClient to connect to a time server</p>\r\n                     <p class=\"og-host\" style=\"box-sizing: inherit; font-size: 14px; line-height: 26px; color: #909090; position: absolute; bottom: 24px; font-family: AvenirNext, sans-serif; padding-top: 0px !important; padding-bottom: 0px !important;\">www.arduinolibraries.info</p>\r\n                     </div>\r\n                  </a></figure>\r\n            <p style=\"box-sizing: inherit; margin-bottom: 28px; font-size: 16px; line-height: 26px; color: #555555; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n            <figure class=\"imageblock alignCenter\" data-origin-width=\"0\" data-origin-height=\"0\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: inherit; margin: 0px auto 20px; max-width: 100%; clear: both; display: table; position: relative; text-align: center;\"><span data-url=\"https://blog.kakaocdn.net/dn/2A19u/btqFrotVcqy/Lcea5jPi8RwiFVnYsOFoPK/img.png\" data-lightbox=\"lightbox\" data-alt=\"\" style=\"box-sizing: inherit; cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/2A19u/btqFrotVcqy/Lcea5jPi8RwiFVnYsOFoPK/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2A19u%2FbtqFrotVcqy%2FLcea5jPi8RwiFVnYsOFoPK%2Fimg.png\" data-origin-width=\"0\" data-origin-height=\"0\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: inherit; border-style: none; max-width: 100%; display: inline-block; width: 640px; margin: 0px; height: auto;\" /></span></figure>\r\n            <p style=\"box-sizing: inherit; margin-bottom: 28px; font-size: 16px; line-height: 26px; color: #555555; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n            <h2 data-ke-size=\"size26\" style=\"box-sizing: inherit; font-size: 24px; margin-bottom: 24px; font-weight: normal; color: rgba(0, 0, 0, 0.87); line-height: 1.38;\">일정시간마다 사진 촬영후 업로드</h2>\r\n            <p style=\"box-sizing: inherit; margin-bottom: 28px; font-size: 16px; line-height: 26px; color: #555555; padding-top: 0px !important; padding-bottom: 0px !important;\">1분마다 FTP업로드하도록 프로그래밍 합니다.</p>\r\n            <p style=\"box-sizing: inherit; margin-bottom: 28px; font-size: 16px; line-height: 26px; color: #555555; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n            <figure class=\"imageblock alignCenter\" data-origin-width=\"0\" data-origin-height=\"0\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: inherit; margin: 0px auto 20px; max-width: 100%; clear: both; display: table; position: relative; text-align: center;\"><span data-url=\"https://blog.kakaocdn.net/dn/duKuTi/btqFqNucPKV/WVkECraeAoO0TxDYPiBnh0/img.png\" data-lightbox=\"lightbox\" data-alt=\"\" style=\"box-sizing: inherit; cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/duKuTi/btqFqNucPKV/WVkECraeAoO0TxDYPiBnh0/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FduKuTi%2FbtqFqNucPKV%2FWVkECraeAoO0TxDYPiBnh0%2Fimg.png\" data-origin-width=\"0\" data-origin-height=\"0\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: inherit; border-style: none; max-width: 100%; display: inline-block; width: 640px; margin: 0px; height: auto;\" /></span></figure>\r\n            <figure class=\"imageblock alignCenter\" data-origin-width=\"0\" data-origin-height=\"0\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: inherit; margin: 0px auto 20px; max-width: 100%; clear: both; display: table; position: relative; text-align: center;\"><span data-url=\"https://blog.kakaocdn.net/dn/mFznW/btqFroOhGas/C58wv6aFx1EjDnd3qYGM3k/img.png\" data-lightbox=\"lightbox\" data-alt=\"\" style=\"box-sizing: inherit; cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/mFznW/btqFroOhGas/C58wv6aFx1EjDnd3qYGM3k/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmFznW%2FbtqFroOhGas%2FC58wv6aFx1EjDnd3qYGM3k%2Fimg.png\" data-origin-width=\"0\" data-origin-height=\"0\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: inherit; border-style: none; max-width: 100%; display: inline-block; width: 640px; margin: 0px; height: auto;\" /></span></figure>\r\n            <p style=\"box-sizing: inherit; margin-bottom: 28px; font-size: 16px; line-height: 26px; color: #555555; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n            <p style=\"box-sizing: inherit; margin-bottom: 28px; font-size: 16px; line-height: 26px; color: #555555; padding-top: 0px !important; padding-bottom: 0px !important;\">esp32_CameraWebServer.ino</p>\r\n            <pre id=\"code_1594091186175\" class=\"java\" data-ke-language=\"java\" data-ke-type=\"codeblock\" style=\"box-sizing: inherit; overflow: auto; font-family: monospace, monospace; font-size: 16px; padding: 20px; background: rgba(0, 0, 0, 0.05); color: rgba(34, 85, 51, 0.87); white-space: pre-wrap;\">\r\n               <code class=\"hljs\" style=\"box-sizing: inherit; font-family: monospace, monospace; font-size: 1em; display: block; overflow-x: auto; padding: 0.5em; color: #333333; background: rgb(248, 248, 248);\">#include <span class=\"hljs-string\" style=\"box-sizing: inherit; color: #dd1144;\">\"esp_camera.h\"</span>\r\n#include &lt;WiFi.h&gt;\r\n#include &lt;WiFiClient.h&gt; \r\n#include &lt;ESP32_FTPClient.h&gt;\r\n#include &lt;NTPClient.h&gt;\r\n#include &lt;WiFiUdp.h&gt;\r\n#include <span class=\"hljs-string\" style=\"box-sizing: inherit; color: #dd1144;\">\"time.h\"</span><span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">// Define NTP Client to get time</span>\r\nWiFiUDP ntpUDP;\r\n<span class=\"hljs-function\" style=\"box-sizing: inherit;\">NTPClient <span class=\"hljs-title\" style=\"box-sizing: inherit; color: #990000; font-weight: bold;\">timeClient</span><span class=\"hljs-params\" style=\"box-sizing: inherit;\">(ntpUDP)</span></span>;\r\n<span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">// Variables to save date and time</span>\r\nString formattedDate;\r\nString dayStamp;\r\nString timeStamp;\r\n<span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">//</span><span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">// WARNING!!! Make sure that you have either selected ESP32 Wrover Module,</span><span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">//            or another board which has PSRAM enabled</span><span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">//</span><span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">// Select camera model</span><span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">// #define CAMERA_MODEL_WROVER_KIT</span><span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">//#define CAMERA_MODEL_ESP_EYE</span><span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">//#define CAMERA_MODEL_M5STACK_PSRAM</span><span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">//#define CAMERA_MODEL_M5STACK_WIDE</span>\r\n#define CAMERA_MODEL_AI_THINKER\r\n#include <span class=\"hljs-string\" style=\"box-sizing: inherit; color: #dd1144;\">\"camera_pins.h\"</span><span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">const</span><span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">char</span>* ssid = <span class=\"hljs-string\" style=\"box-sizing: inherit; color: #dd1144;\">\"ZEROWIN\"</span>;\r\n<span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">const</span><span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">char</span>* password = <span class=\"hljs-string\" style=\"box-sizing: inherit; color: #dd1144;\">\"zzzzzzzz\"</span>;\r\n<span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">char</span> ftp_server[] = <span class=\"hljs-string\" style=\"box-sizing: inherit; color: #dd1144;\">\"192.168.0.3\"</span>;\r\n<span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">char</span> ftp_user[]   = <span class=\"hljs-string\" style=\"box-sizing: inherit; color: #dd1144;\">\"admin\"</span>;\r\n<span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">char</span> ftp_pass[]   = <span class=\"hljs-string\" style=\"box-sizing: inherit; color: #dd1144;\">\"admin\"</span>;\r\n<span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">// you can pass a FTP timeout and debbug mode on the last 2 arguments</span><span class=\"hljs-function\" style=\"box-sizing: inherit;\">ESP32_FTPClient <span class=\"hljs-title\" style=\"box-sizing: inherit; color: #990000; font-weight: bold;\">ftp</span><span class=\"hljs-params\" style=\"box-sizing: inherit;\">(ftp_server,ftp_user,ftp_pass, <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">5000</span>, <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">2</span>)</span></span>;\r\n<span class=\"hljs-function\" style=\"box-sizing: inherit;\"><span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">void</span><span class=\"hljs-title\" style=\"box-sizing: inherit; color: #990000; font-weight: bold;\">startCameraServer</span><span class=\"hljs-params\" style=\"box-sizing: inherit;\">()</span></span>;\r\n<span class=\"hljs-function\" style=\"box-sizing: inherit;\"><span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">void</span><span class=\"hljs-title\" style=\"box-sizing: inherit; color: #990000; font-weight: bold;\">setup</span><span class=\"hljs-params\" style=\"box-sizing: inherit;\">()</span></span>{\r\n  Serial.begin(<span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">115200</span>);\r\n  Serial.setDebugOutput(<span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">true</span>);\r\n  Serial.println();\r\n  pinMode(<span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">16</span>, INPUT);\r\n  camera_config_t config;\r\n  config.ledc_channel = LEDC_CHANNEL_0;\r\n  config.ledc_timer = LEDC_TIMER_0;\r\n  config.pin_d0 = Y2_GPIO_NUM;\r\n  config.pin_d1 = Y3_GPIO_NUM;\r\n  config.pin_d2 = Y4_GPIO_NUM;\r\n  config.pin_d3 = Y5_GPIO_NUM;\r\n  config.pin_d4 = Y6_GPIO_NUM;\r\n  config.pin_d5 = Y7_GPIO_NUM;\r\n  config.pin_d6 = Y8_GPIO_NUM;\r\n  config.pin_d7 = Y9_GPIO_NUM;\r\n  config.pin_xclk = XCLK_GPIO_NUM;\r\n  config.pin_pclk = PCLK_GPIO_NUM;\r\n  config.pin_vsync = VSYNC_GPIO_NUM;\r\n  config.pin_href = HREF_GPIO_NUM;\r\n  config.pin_sscb_sda = SIOD_GPIO_NUM;\r\n  config.pin_sscb_scl = SIOC_GPIO_NUM;\r\n  config.pin_pwdn = PWDN_GPIO_NUM;\r\n  config.pin_reset = RESET_GPIO_NUM;\r\n  config.xclk_freq_hz = <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">20000000</span>;\r\n  config.pixel_format = PIXFORMAT_JPEG;\r\n  <span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">//init with high specs to pre-allocate larger buffers</span><span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">if</span>(psramFound()){\r\n    config.frame_size = FRAMESIZE_UXGA;\r\n    config.jpeg_quality = <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">10</span>;\r\n    config.fb_count = <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">2</span>;\r\n  } <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">else</span> {\r\n    config.frame_size = FRAMESIZE_SVGA;\r\n    config.jpeg_quality = <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">12</span>;\r\n    config.fb_count = <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">1</span>;\r\n  }\r\n#<span class=\"hljs-function\" style=\"box-sizing: inherit;\"><span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">if</span><span class=\"hljs-title\" style=\"box-sizing: inherit; color: #990000; font-weight: bold;\">defined</span><span class=\"hljs-params\" style=\"box-sizing: inherit;\">(CAMERA_MODEL_ESP_EYE)</span><span class=\"hljs-title\" style=\"box-sizing: inherit; color: #990000; font-weight: bold;\">pinMode</span><span class=\"hljs-params\" style=\"box-sizing: inherit;\">(<span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">13</span>, INPUT_PULLUP)</span></span>;\r\n  pinMode(<span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">14</span>, INPUT_PULLUP);\r\n#endif\r\n  <span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">// camera init</span>\r\n  esp_err_t err = esp_camera_init(&amp;config);\r\n  <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">if</span> (err != ESP_OK) {\r\n    Serial.printf(<span class=\"hljs-string\" style=\"box-sizing: inherit; color: #dd1144;\">\"Camera init failed with error 0x%x\"</span>, err);\r\n    <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">return</span>;\r\n  }\r\n  sensor_t * s = esp_camera_sensor_get();\r\n  <span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">//initial sensors are flipped vertically and colors are a bit saturated</span><span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">if</span> (s-&gt;id.PID == OV3660_PID) {\r\n    s-&gt;set_vflip(s, <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">1</span>);<span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">//flip it back</span>\r\n    s-&gt;set_brightness(s, <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">1</span>);<span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">//up the blightness just a bit</span>\r\n    s-&gt;set_saturation(s, -<span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">2</span>);<span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">//lower the saturation</span>\r\n  }\r\n  <span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">//drop down frame size for higher initial frame rate</span>\r\n  s-&gt;set_framesize(s, FRAMESIZE_QVGA);\r\n#<span class=\"hljs-function\" style=\"box-sizing: inherit;\"><span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">if</span><span class=\"hljs-title\" style=\"box-sizing: inherit; color: #990000; font-weight: bold;\">defined</span><span class=\"hljs-params\" style=\"box-sizing: inherit;\">(CAMERA_MODEL_M5STACK_WIDE)</span>\r\n  s-&gt;<span class=\"hljs-title\" style=\"box-sizing: inherit; color: #990000; font-weight: bold;\">set_vflip</span><span class=\"hljs-params\" style=\"box-sizing: inherit;\">(s, <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">1</span>)</span></span>;\r\n  s-&gt;set_hmirror(s, <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">1</span>);\r\n#endif\r\n  WiFi.begin(ssid, password);\r\n  <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">while</span> (WiFi.status() != WL_CONNECTED) {\r\n    delay(<span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">500</span>);\r\n    Serial.print(<span class=\"hljs-string\" style=\"box-sizing: inherit; color: #dd1144;\">\".\"</span>);\r\n  }\r\n  Serial.println(<span class=\"hljs-string\" style=\"box-sizing: inherit; color: #dd1144;\">\"\"</span>);\r\n  Serial.println(<span class=\"hljs-string\" style=\"box-sizing: inherit; color: #dd1144;\">\"WiFi connected\"</span>);\r\n  startCameraServer();\r\n  Serial.print(<span class=\"hljs-string\" style=\"box-sizing: inherit; color: #dd1144;\">\"Camera Ready! Use \'http://\"</span>);\r\n  Serial.print(WiFi.localIP());\r\n  Serial.println(<span class=\"hljs-string\" style=\"box-sizing: inherit; color: #dd1144;\">\"\' to connect\"</span>);\r\n  <span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">// Initialize a NTPClient to get time</span>\r\n  timeClient.begin();\r\n  <span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">// Set offset time in seconds to adjust for your timezone, for example:</span><span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">// GMT +1 = 3600</span><span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">// GMT +8 = 28800</span><span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">// GMT -1 = -3600</span><span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">// GMT 0 = 0</span>\r\n  timeClient.setTimeOffset(<span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">32400</span>); \r\n  {\r\n      <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">while</span>(!timeClient.update()) {\r\n        timeClient.forceUpdate();\r\n      }\r\n      <span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">// The formattedDate comes with the following format:</span><span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">// 2018-05-28T16:00:13Z</span><span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">// We need to extract date and time</span>\r\n      formattedDate = timeClient.getFormattedDate();\r\n      Serial.println(formattedDate);\r\n      <span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">// Extract date</span><span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">int</span> splitT = formattedDate.indexOf(<span class=\"hljs-string\" style=\"box-sizing: inherit; color: #dd1144;\">\"T\"</span>);\r\n      dayStamp = formattedDate.substring(<span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">0</span>, splitT);\r\n      Serial.print(<span class=\"hljs-string\" style=\"box-sizing: inherit; color: #dd1144;\">\"DATE: \"</span>);\r\n      Serial.println(dayStamp);\r\n      <span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">// Extract time</span>\r\n      timeStamp = formattedDate.substring(splitT+<span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">1</span>, formattedDate.length()-<span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">1</span>);\r\n      Serial.print(<span class=\"hljs-string\" style=\"box-sizing: inherit; color: #dd1144;\">\"HOUR: \"</span>);\r\n      Serial.println(timeStamp);\r\n  }\r\n<span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">/*\r\n    struct tm tm;\r\n    tm.tm_year = 2018 - 1900;\r\n    tm.tm_mon = 10;\r\n    tm.tm_mday = 15;\r\n    tm.tm_hour = 14;\r\n    tm.tm_min = 10;\r\n    tm.tm_sec = 10;\r\n    time_t t = mktime(&amp;tm); */</span>\r\n    time_t t = timeClient.getEpochTime();\r\n    <span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">// printf(\"Setting time: %s\", asctime(&amp;tm));</span>\r\n    struct timeval now = { .tv_sec = t };\r\n    settimeofday(&amp;now, NULL);\r\n    timeClient.end();\r\n}\r\n<span class=\"hljs-function\" style=\"box-sizing: inherit;\"><span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">int</span><span class=\"hljs-title\" style=\"box-sizing: inherit; color: #990000; font-weight: bold;\">FTP_uploadImage</span><span class=\"hljs-params\" style=\"box-sizing: inherit;\">(int64_t t, unsigned <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">char</span> * pdata, unsigned <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">int</span> size)</span></span>{\r\n  <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">char</span> filename[<span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">32</span>] = <span class=\"hljs-string\" style=\"box-sizing: inherit; color: #dd1144;\">\"\"</span>;\r\n  Serial.print(<span class=\"hljs-string\" style=\"box-sizing: inherit; color: #dd1144;\">\"FTP_uploadImage=\"</span>);\r\n  Serial.println(size);\r\n  ftp.OpenConnection();\r\n  struct tm timeinfo;\r\n  <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">if</span>(!getLocalTime(&amp;timeinfo)){\r\n    Serial.println(<span class=\"hljs-string\" style=\"box-sizing: inherit; color: #dd1144;\">\"Failed to obtain time\"</span>);\r\n    <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">return</span> -<span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">1</span>;\r\n  }\r\n  sprintf(filename, <span class=\"hljs-string\" style=\"box-sizing: inherit; color: #dd1144;\">\"CAPTURE_%04d%02d%02d_%02d%02d%02d.jpg\"</span>,\r\n    timeinfo.tm_year + <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">1900</span>,\r\n    timeinfo.tm_mon+<span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">1</span>,\r\n    timeinfo.tm_mday,\r\n    timeinfo.tm_hour,\r\n    timeinfo.tm_min,\r\n    timeinfo.tm_sec\r\n    );\r\n  <span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">//ftp.InitFile(\"Type A\");</span><span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">//ftp.ChangeWorkDir(\"/\");</span>\r\n  ftp.InitFile(<span class=\"hljs-string\" style=\"box-sizing: inherit; color: #dd1144;\">\"Type I\"</span>);\r\n  ftp.NewFile(filename); <span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">// \"capture.jpg\");</span>\r\n  ftp.WriteData( pdata, size );\r\n  ftp.CloseFile();\r\n  ftp.CloseConnection();\r\n  <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">return</span><span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">0</span>;\r\n}\r\n<span class=\"hljs-function\" style=\"box-sizing: inherit;\"><span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">void</span><span class=\"hljs-title\" style=\"box-sizing: inherit; color: #990000; font-weight: bold;\">printLocalTime</span><span class=\"hljs-params\" style=\"box-sizing: inherit;\">()</span></span>{\r\n  struct tm timeinfo;\r\n  <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">if</span>(!getLocalTime(&amp;timeinfo)){\r\n    Serial.println(<span class=\"hljs-string\" style=\"box-sizing: inherit; color: #dd1144;\">\"Failed to obtain time\"</span>);\r\n    <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">return</span>;\r\n  }\r\n  Serial.println(&amp;timeinfo, <span class=\"hljs-string\" style=\"box-sizing: inherit; color: #dd1144;\">\"%A, %B %d %Y %H:%M:%S\"</span>);\r\n}\r\n<span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">int</span> timeout = <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">0</span>;\r\n<span class=\"hljs-function\" style=\"box-sizing: inherit;\">extern <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">int</span><span class=\"hljs-title\" style=\"box-sizing: inherit; color: #990000; font-weight: bold;\">capture_ftpupload</span><span class=\"hljs-params\" style=\"box-sizing: inherit;\">(<span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">void</span>)</span></span>;\r\n<span class=\"hljs-function\" style=\"box-sizing: inherit;\"><span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">void</span><span class=\"hljs-title\" style=\"box-sizing: inherit; color: #990000; font-weight: bold;\">loop</span><span class=\"hljs-params\" style=\"box-sizing: inherit;\">()</span></span>{\r\n  <span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">// put your main code here, to run repeatedly:</span>\r\n  timeout += <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">1</span>;\r\n  delay(<span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">100</span>);\r\n  <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">int</span> value = digitalRead(<span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">16</span>);\r\n  <span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">// Serial.println(value);</span><span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">if</span>(value == <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">0</span>) {\r\n    capture_ftpupload();\r\n  }\r\n  <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">if</span>(timeout % <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">100</span> == <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">0</span>) { <span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">// display time per 10 sec</span>\r\n      printLocalTime();\r\n  }\r\n  <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">if</span>(timeout % (<span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">60</span> * <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">10</span>) == <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">0</span>) { <span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">// capture &amp; upload per 1 min</span>\r\n    capture_ftpupload();\r\n  }\r\n}\r\n</code>\r\n               </pre>\r\n            <p style=\"box-sizing: inherit; margin-bottom: 28px; font-size: 16px; line-height: 26px; color: #555555; padding-top: 0px !important; padding-bottom: 0px !important;\"><a href=\"http://app_httpd.cpp/\" target=\"_blank\" rel=\"noopener\" style=\"box-sizing: inherit; display: inline-block; color: #3d62ce;\">app_httpd.cpp</a></p>\r\n            <pre id=\"code_1594093565710\" class=\"java\" data-ke-language=\"java\" data-ke-type=\"codeblock\" style=\"box-sizing: inherit; overflow: auto; font-family: monospace, monospace; font-size: 16px; padding: 20px; background: rgba(0, 0, 0, 0.05); color: rgba(34, 85, 51, 0.87); white-space: pre-wrap;\">\r\n               <code class=\"hljs\" style=\"box-sizing: inherit; font-family: monospace, monospace; font-size: 1em; display: block; overflow-x: auto; padding: 0.5em; color: #333333; background: rgb(248, 248, 248);\"><span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD</span><span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">//</span><span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">// Licensed under the Apache License, Version 2.0 (the \"License\");</span><span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">// you may not use this file except in compliance with the License.</span><span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">// You may obtain a copy of the License at</span><span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">//</span><span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">//     http://www.apache.org/licenses/LICENSE-2.0</span><span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">//</span><span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">// Unless required by applicable law or agreed to in writing, software</span><span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">// distributed under the License is distributed on an \"AS IS\" BASIS,</span><span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span><span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">// See the License for the specific language governing permissions and</span><span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">// limitations under the License.</span>\r\n#include <span class=\"hljs-string\" style=\"box-sizing: inherit; color: #dd1144;\">\"esp_http_server.h\"</span>\r\n#include <span class=\"hljs-string\" style=\"box-sizing: inherit; color: #dd1144;\">\"esp_timer.h\"</span>\r\n#include <span class=\"hljs-string\" style=\"box-sizing: inherit; color: #dd1144;\">\"esp_camera.h\"</span>\r\n#include <span class=\"hljs-string\" style=\"box-sizing: inherit; color: #dd1144;\">\"img_converters.h\"</span>\r\n#include <span class=\"hljs-string\" style=\"box-sizing: inherit; color: #dd1144;\">\"camera_index.h\"</span>\r\n#include <span class=\"hljs-string\" style=\"box-sizing: inherit; color: #dd1144;\">\"Arduino.h\"</span>\r\n#include <span class=\"hljs-string\" style=\"box-sizing: inherit; color: #dd1144;\">\"fb_gfx.h\"</span>\r\n#include <span class=\"hljs-string\" style=\"box-sizing: inherit; color: #dd1144;\">\"fd_forward.h\"</span>\r\n#include <span class=\"hljs-string\" style=\"box-sizing: inherit; color: #dd1144;\">\"fr_forward.h\"</span>\r\n#define ENROLL_CONFIRM_TIMES <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">5</span>\r\n#define FACE_ID_SAVE_NUMBER <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">7</span>\r\n#define FACE_COLOR_WHITE  <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">0x00FFFFFF</span>\r\n#define FACE_COLOR_BLACK  <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">0x00000000</span>\r\n#define FACE_COLOR_RED    <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">0x000000FF</span>\r\n#define FACE_COLOR_GREEN  <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">0x0000FF00</span>\r\n#define FACE_COLOR_BLUE   <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">0x00FF0000</span>\r\n#<span class=\"hljs-function\" style=\"box-sizing: inherit;\">define <span class=\"hljs-title\" style=\"box-sizing: inherit; color: #990000; font-weight: bold;\">FACE_COLOR_YELLOW</span><span class=\"hljs-params\" style=\"box-sizing: inherit;\">(FACE_COLOR_RED | FACE_COLOR_GREEN)</span>\r\n#define <span class=\"hljs-title\" style=\"box-sizing: inherit; color: #990000; font-weight: bold;\">FACE_COLOR_CYAN</span><span class=\"hljs-params\" style=\"box-sizing: inherit;\">(FACE_COLOR_BLUE | FACE_COLOR_GREEN)</span>\r\n#define <span class=\"hljs-title\" style=\"box-sizing: inherit; color: #990000; font-weight: bold;\">FACE_COLOR_PURPLE</span><span class=\"hljs-params\" style=\"box-sizing: inherit;\">(FACE_COLOR_BLUE | FACE_COLOR_RED)</span>\r\ntypedef struct </span>{\r\n        size_t size; <span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">//number of values used for filtering</span>\r\n        size_t index; <span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">//current value index</span>\r\n        size_t count; <span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">//value count</span><span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">int</span> sum;\r\n        <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">int</span> * values; <span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">//array to be filled with values</span>\r\n} ra_filter_t;\r\ntypedef struct {\r\n        httpd_req_t *req;\r\n        size_t len;\r\n} jpg_chunking_t;\r\n#define PART_BOUNDARY <span class=\"hljs-string\" style=\"box-sizing: inherit; color: #dd1144;\">\"123456789000000000000987654321\"</span><span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">static</span><span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">const</span><span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">char</span>* _STREAM_CONTENT_TYPE = <span class=\"hljs-string\" style=\"box-sizing: inherit; color: #dd1144;\">\"multipart/x-mixed-replace;boundary=\"</span> PART_BOUNDARY;\r\n<span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">static</span><span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">const</span><span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">char</span>* _STREAM_BOUNDARY = <span class=\"hljs-string\" style=\"box-sizing: inherit; color: #dd1144;\">\"\\r\\n--\"</span> PART_BOUNDARY <span class=\"hljs-string\" style=\"box-sizing: inherit; color: #dd1144;\">\"\\r\\n\"</span>;\r\n<span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">static</span><span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">const</span><span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">char</span>* _STREAM_PART = <span class=\"hljs-string\" style=\"box-sizing: inherit; color: #dd1144;\">\"Content-Type: image/jpeg\\r\\nContent-Length: %u\\r\\n\\r\\n\"</span>;\r\n<span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">static</span> ra_filter_t ra_filter;\r\nhttpd_handle_t stream_httpd = NULL;\r\nhttpd_handle_t camera_httpd = NULL;\r\n<span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">static</span> mtmn_config_t mtmn_config = {<span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">0</span>};\r\n<span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">static</span> int8_t detection_enabled = <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">0</span>;\r\n<span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">static</span> int8_t recognition_enabled = <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">0</span>;\r\n<span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">static</span> int8_t is_enrolling = <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">0</span>;\r\n<span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">static</span> face_id_list id_list = {<span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">0</span>};\r\n<span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">static</span> ra_filter_t * ra_filter_init(ra_filter_t * filter, size_t sample_size){\r\n    memset(filter, <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">0</span>, sizeof(ra_filter_t));\r\n    filter-&gt;values = (<span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">int</span> *)malloc(sample_size * sizeof(<span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">int</span>));\r\n    <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">if</span>(!filter-&gt;values){\r\n        <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">return</span> NULL;\r\n    }\r\n    memset(filter-&gt;values, <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">0</span>, sample_size * sizeof(<span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">int</span>));\r\n    filter-&gt;size = sample_size;\r\n    <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">return</span> filter;\r\n}\r\n<span class=\"hljs-function\" style=\"box-sizing: inherit;\"><span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">static</span><span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">int</span><span class=\"hljs-title\" style=\"box-sizing: inherit; color: #990000; font-weight: bold;\">ra_filter_run</span><span class=\"hljs-params\" style=\"box-sizing: inherit;\">(ra_filter_t * filter, <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">int</span> value)</span></span>{\r\n    <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">if</span>(!filter-&gt;values){\r\n        <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">return</span> value;\r\n    }\r\n    filter-&gt;sum -= filter-&gt;values[filter-&gt;index];\r\n    filter-&gt;values[filter-&gt;index] = value;\r\n    filter-&gt;sum += filter-&gt;values[filter-&gt;index];\r\n    filter-&gt;index++;\r\n    filter-&gt;index = filter-&gt;index % filter-&gt;size;\r\n    <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">if</span> (filter-&gt;count &lt; filter-&gt;size) {\r\n        filter-&gt;count++;\r\n    }\r\n    <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">return</span> filter-&gt;sum / filter-&gt;count;\r\n}\r\n<span class=\"hljs-function\" style=\"box-sizing: inherit;\"><span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">static</span><span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">void</span><span class=\"hljs-title\" style=\"box-sizing: inherit; color: #990000; font-weight: bold;\">rgb_print</span><span class=\"hljs-params\" style=\"box-sizing: inherit;\">(dl_matrix3du_t *image_matrix, uint32_t color, <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">const</span><span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">char</span> * str)</span></span>{\r\n    fb_data_t fb;\r\n    fb.width = image_matrix-&gt;w;\r\n    fb.height = image_matrix-&gt;h;\r\n    fb.data = image_matrix-&gt;item;\r\n    fb.bytes_per_pixel = <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">3</span>;\r\n    fb.format = FB_BGR888;\r\n    fb_gfx_print(&amp;fb, (fb.width - (strlen(str) * <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">14</span>)) / <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">2</span>, <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">10</span>, color, str);\r\n}\r\n<span class=\"hljs-function\" style=\"box-sizing: inherit;\"><span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">static</span><span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">int</span><span class=\"hljs-title\" style=\"box-sizing: inherit; color: #990000; font-weight: bold;\">rgb_printf</span><span class=\"hljs-params\" style=\"box-sizing: inherit;\">(dl_matrix3du_t *image_matrix, uint32_t color, <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">const</span><span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">char</span> *format, ...)</span></span>{\r\n    <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">char</span> loc_buf[<span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">64</span>];\r\n    <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">char</span> * temp = loc_buf;\r\n    <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">int</span> len;\r\n    va_list arg;\r\n    va_list copy;\r\n    va_start(arg, format);\r\n    va_copy(copy, arg);\r\n    len = vsnprintf(loc_buf, sizeof(loc_buf), format, arg);\r\n    va_end(copy);\r\n    <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">if</span>(len &gt;= sizeof(loc_buf)){\r\n        temp = (<span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">char</span>*)malloc(len+<span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">1</span>);\r\n        <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">if</span>(temp == NULL) {\r\n            <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">return</span><span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">0</span>;\r\n        }\r\n    }\r\n    vsnprintf(temp, len+<span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">1</span>, format, arg);\r\n    va_end(arg);\r\n    rgb_print(image_matrix, color, temp);\r\n    <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">if</span>(len &gt; <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">64</span>){\r\n        free(temp);\r\n    }\r\n    <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">return</span> len;\r\n}\r\n<span class=\"hljs-function\" style=\"box-sizing: inherit;\"><span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">static</span><span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">void</span><span class=\"hljs-title\" style=\"box-sizing: inherit; color: #990000; font-weight: bold;\">draw_face_boxes</span><span class=\"hljs-params\" style=\"box-sizing: inherit;\">(dl_matrix3du_t *image_matrix, box_array_t *boxes, <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">int</span> face_id)</span></span>{\r\n    <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">int</span> x, y, w, h, i;\r\n    uint32_t color = FACE_COLOR_YELLOW;\r\n    <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">if</span>(face_id &lt; <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">0</span>){\r\n        color = FACE_COLOR_RED;\r\n    } <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">else</span><span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">if</span>(face_id &gt; <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">0</span>){\r\n        color = FACE_COLOR_GREEN;\r\n    }\r\n    fb_data_t fb;\r\n    fb.width = image_matrix-&gt;w;\r\n    fb.height = image_matrix-&gt;h;\r\n    fb.data = image_matrix-&gt;item;\r\n    fb.bytes_per_pixel = <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">3</span>;\r\n    fb.format = FB_BGR888;\r\n    <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">for</span> (i = <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">0</span>; i &lt; boxes-&gt;len; i++){\r\n        <span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">// rectangle box</span>\r\n        x = (<span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">int</span>)boxes-&gt;box[i].box_p[<span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">0</span>];\r\n        y = (<span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">int</span>)boxes-&gt;box[i].box_p[<span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">1</span>];\r\n        w = (<span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">int</span>)boxes-&gt;box[i].box_p[<span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">2</span>] - x + <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">1</span>;\r\n        h = (<span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">int</span>)boxes-&gt;box[i].box_p[<span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">3</span>] - y + <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">1</span>;\r\n        fb_gfx_drawFastHLine(&amp;fb, x, y, w, color);\r\n        fb_gfx_drawFastHLine(&amp;fb, x, y+h-<span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">1</span>, w, color);\r\n        fb_gfx_drawFastVLine(&amp;fb, x, y, h, color);\r\n        fb_gfx_drawFastVLine(&amp;fb, x+w-<span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">1</span>, y, h, color);\r\n#<span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">if</span><span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">0</span><span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">// landmark</span><span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">int</span> x0, y0, j;\r\n        <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">for</span> (j = <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">0</span>; j &lt; <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">10</span>; j+=<span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">2</span>) {\r\n            x0 = (<span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">int</span>)boxes-&gt;landmark[i].landmark_p[j];\r\n            y0 = (<span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">int</span>)boxes-&gt;landmark[i].landmark_p[j+<span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">1</span>];\r\n            fb_gfx_fillRect(&amp;fb, x0, y0, <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">3</span>, <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">3</span>, color);\r\n        }\r\n#endif\r\n    }\r\n}\r\n<span class=\"hljs-function\" style=\"box-sizing: inherit;\"><span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">static</span><span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">int</span><span class=\"hljs-title\" style=\"box-sizing: inherit; color: #990000; font-weight: bold;\">run_face_recognition</span><span class=\"hljs-params\" style=\"box-sizing: inherit;\">(dl_matrix3du_t *image_matrix, box_array_t *net_boxes)</span></span>{\r\n    dl_matrix3du_t *aligned_face = NULL;\r\n    <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">int</span> matched_id = <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">0</span>;\r\n    aligned_face = dl_matrix3du_alloc(<span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">1</span>, FACE_WIDTH, FACE_HEIGHT, <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">3</span>);\r\n    <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">if</span>(!aligned_face){\r\n        Serial.println(<span class=\"hljs-string\" style=\"box-sizing: inherit; color: #dd1144;\">\"Could not allocate face recognition buffer\"</span>);\r\n        <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">return</span> matched_id;\r\n    }\r\n    <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">if</span> (align_face(net_boxes, image_matrix, aligned_face) == ESP_OK){\r\n        <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">if</span> (is_enrolling == <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">1</span>){\r\n            int8_t left_sample_face = enroll_face(&amp;id_list, aligned_face);\r\n            <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">if</span>(left_sample_face == (ENROLL_CONFIRM_TIMES - <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">1</span>)){\r\n                Serial.printf(<span class=\"hljs-string\" style=\"box-sizing: inherit; color: #dd1144;\">\"Enrolling Face ID: %d\\n\"</span>, id_list.tail);\r\n            }\r\n            Serial.printf(<span class=\"hljs-string\" style=\"box-sizing: inherit; color: #dd1144;\">\"Enrolling Face ID: %d sample %d\\n\"</span>, id_list.tail, ENROLL_CONFIRM_TIMES - left_sample_face);\r\n            rgb_printf(image_matrix, FACE_COLOR_CYAN, <span class=\"hljs-string\" style=\"box-sizing: inherit; color: #dd1144;\">\"ID[%u] Sample[%u]\"</span>, id_list.tail, ENROLL_CONFIRM_TIMES - left_sample_face);\r\n            <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">if</span> (left_sample_face == <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">0</span>){\r\n                is_enrolling = <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">0</span>;\r\n                Serial.printf(<span class=\"hljs-string\" style=\"box-sizing: inherit; color: #dd1144;\">\"Enrolled Face ID: %d\\n\"</span>, id_list.tail);\r\n            }\r\n        } <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">else</span> {\r\n            matched_id = recognize_face(&amp;id_list, aligned_face);\r\n            <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">if</span> (matched_id &gt;= <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">0</span>) {\r\n                Serial.printf(<span class=\"hljs-string\" style=\"box-sizing: inherit; color: #dd1144;\">\"Match Face ID: %u\\n\"</span>, matched_id);\r\n                rgb_printf(image_matrix, FACE_COLOR_GREEN, <span class=\"hljs-string\" style=\"box-sizing: inherit; color: #dd1144;\">\"Hello Subject %u\"</span>, matched_id);\r\n            } <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">else</span> {\r\n                Serial.println(<span class=\"hljs-string\" style=\"box-sizing: inherit; color: #dd1144;\">\"No Match Found\"</span>);\r\n                rgb_print(image_matrix, FACE_COLOR_RED, <span class=\"hljs-string\" style=\"box-sizing: inherit; color: #dd1144;\">\"Intruder Alert!\"</span>);\r\n                matched_id = -<span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">1</span>;\r\n            }\r\n        }\r\n    } <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">else</span> {\r\n        Serial.println(<span class=\"hljs-string\" style=\"box-sizing: inherit; color: #dd1144;\">\"Face Not Aligned\"</span>);\r\n        <span class=\"hljs-comment\" style=\"box-sizing: inherit; color: #999988; font-style: italic;\">//rgb_print(image_matrix, FACE_COLOR_YELLOW, \"Human Detected\");</span>\r\n    }\r\n    dl_matrix3du_free(aligned_face);\r\n    <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">return</span> matched_id;\r\n}\r\n<span class=\"hljs-function\" style=\"box-sizing: inherit;\"><span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">static</span> size_t <span class=\"hljs-title\" style=\"box-sizing: inherit; color: #990000; font-weight: bold;\">jpg_encode_stream</span><span class=\"hljs-params\" style=\"box-sizing: inherit;\">(<span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">void</span> * arg, size_t index, <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">const</span><span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">void</span>* data, size_t len)</span></span>{\r\n    jpg_chunking_t *j = (jpg_chunking_t *)arg;\r\n    <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">if</span>(!index){\r\n        j-&gt;len = <span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">0</span>;\r\n    }\r\n    <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">if</span>(httpd_resp_send_chunk(j-&gt;req, (<span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">const</span><span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">char</span> *)data, len) != ESP_OK){\r\n        <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">return</span><span class=\"hljs-number\" style=\"box-sizing: inherit; color: #008080;\">0</span>;\r\n    }\r\n    j-&gt;len += len;\r\n    <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">return</span> len;\r\n}\r\n<span class=\"hljs-function\" style=\"box-sizing: inherit;\">extern <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">int</span><span class=\"hljs-title\" style=\"box-sizing: inherit; color: #990000; font-weight: bold;\">FTP_uploadImage</span><span class=\"hljs-params\" style=\"box-sizing: inherit;\">(int64_t t, unsigned <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">char</span> * pdata, unsigned <span class=\"hljs-keyword\" style=\"box-sizing: inherit; font-weight: bold;\">int</span> size)</span></span>;\r\n<span class=\"hljs-function\" style=\"box-sizing: inh','https://zerowincoding.tistory.com/entry/ESP32-CAM-%EC%8A%A4%ED%8B%B8%EC%82%AC%EC%A7%84-%EC%BA%A1%EC%B3%90-FTP-%EC%97%85%EB%A1%9C%EB%93%9C','',0,0,2,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2022-01-16 11:20:27',1,'2022-01-16 11:20:27','112.222.138.204','','','','','','','','','','','',''),(515,-515,'',515,0,0,'','','html1','[Arduino] ESP32 BLE Keyboard 블루투스 키보드 만들기','<p>&nbsp;#include &lt;BleKeyboard.h&gt;</p>\r\n<p><br /></p>\r\n<p>&nbsp;</p>\r\n<p>BleKeyboard bleKeyboard(\"MY_Keyboard\", \"mykey\", 80);&nbsp; &nbsp;// 첫번째가 검색시 나오는 이름, 두번째는 제조사 지정, 세번재는 배터리 레벨</p>\r\n<p>&nbsp;</p>\r\n<p>void setup() {</p>\r\n<p>&nbsp; Serial.begin(115200);</p>\r\n<p>&nbsp; Serial.println(\"Starting BLE work!\");</p>\r\n<p>&nbsp; bleKeyboard.begin();</p>\r\n<p>}</p>\r\n<p><br /></p>\r\n<p>void loop() {</p>\r\n<p>&nbsp; bleKeyboard.write(KEY_RETURN);&nbsp; &nbsp;// 리턴키 입력&nbsp;&nbsp;</p>\r\n<p>&nbsp; bleKeyboard.print(\"Hello world\");&nbsp; &nbsp;// 특정 문자열 입력전송</p>\r\n<p>&nbsp; /* 아래처럼 ctrl+alt+del 기능도 되는듯...</p>\r\n<p>&nbsp; &nbsp; Serial.println(\"Sending Ctrl+Alt+Delete...\");</p>\r\n<p>&nbsp; &nbsp; bleKeyboard.press(KEY_LEFT_CTRL);</p>\r\n<p>&nbsp; &nbsp; bleKeyboard.press(KEY_LEFT_ALT);</p>\r\n<p>&nbsp; &nbsp; bleKeyboard.press(KEY_DELETE);</p>\r\n<p>&nbsp; &nbsp; delay(100);</p>\r\n<p>&nbsp; &nbsp; bleKeyboard.releaseAll();</p>\r\n<p>&nbsp; &nbsp; */</p>\r\n<p>}</p>','https://github.com/T-vK/ESP32-BLE-Keyboard','',3,0,6,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2022-01-17 22:41:47',1,'2022-01-17 22:41:47','192.168.219.101','','','','','','','','','','','',''),(516,-516,'',516,0,0,'','','html1','[ETC] DC JACK에서 플러그가 접속되었는지를 확인하는 방법 팁','<p>DC JACK의 경우 2, 3번핀이 short상태였다가 어뎁터 플러그가 연결되면 open됨.</p>\r\n<p>이를이용해 그림처럼 회로 구성시 플러그 연결상태정보를 확인 할 수 있음.</p>','','',0,0,2,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2022-01-19 14:18:22',1,'2022-01-19 14:18:22','112.222.138.204','','','','','','','','','','','',''),(517,-517,'',517,0,0,'','','html1','[Linux] 윈도우/ubuntu 듀얼부팅시 grub이 작동하지 않을때','<p style=\"margin-right: auto; margin-bottom: 28px; margin-left: auto; padding-right: 0px; padding-left: 0px; font-size: 16px; line-height: 28px; color: #5c5c5c; font-family: &quot;Spoqa Han Sans&quot;, sans-serif; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">윈도우에서 command prompt를 관리자 권한으로 실행하고</p>\r\n<p style=\"margin-right: auto; margin-bottom: 28px; margin-left: auto; padding-right: 0px; padding-left: 0px; font-size: 16px; line-height: 28px; color: #5c5c5c; font-family: &quot;Spoqa Han Sans&quot;, sans-serif; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">아래 command를 실행</p>\r\n<p style=\"margin-right: auto; margin-bottom: 28px; margin-left: auto; padding-right: 0px; padding-left: 0px; font-size: 16px; line-height: 28px; color: #5c5c5c; font-family: &quot;Spoqa Han Sans&quot;, sans-serif; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<pre id=\"code_1591348778888\" class=\"html xml\" data-ke-language=\"html\" data-ke-type=\"codeblock\" style=\"overflow: auto; margin: 28px auto; padding: 16px; background-color: #f6f7f8; overflow-wrap: break-word; font-family: Menlo, Consolas, Monaco, monospace; font-size: 14px; line-height: 20px; color: #5c5c5c;\">\r\n   <code style=\"margin: 0px; padding: 0px;\">bcdedit /set {bootmgr} path \\EFI\\ubuntu\\grubx64.efi</code>\r\n   </pre>\r\n<p style=\"margin-right: auto; margin-bottom: 28px; margin-left: auto; padding-right: 0px; padding-left: 0px; font-size: 16px; line-height: 28px; color: #5c5c5c; font-family: &quot;Spoqa Han Sans&quot;, sans-serif; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">뭔가 이상하다? 다시 돌려놓으려면&nbsp;</p>\r\n<pre id=\"code_1591348818991\" class=\"html xml\" data-ke-language=\"html\" data-ke-type=\"codeblock\" style=\"overflow: auto; margin: 28px auto; padding: 16px; background-color: #f6f7f8; overflow-wrap: break-word; font-family: Menlo, Consolas, Monaco, monospace; font-size: 14px; line-height: 20px; color: #5c5c5c;\">\r\n   <code style=\"margin: 0px; padding: 0px;\">bcdedit /deletevalue {bootmgr} path \\EFI\\ubuntu\\grubx64.efi\r\nbcdedit /set {bootmgr} path \\EFI\\Microsoft\\Boot\\bootmgfw.efi</code>\r\n   </pre>','https://cacheblossom.tistory.com/40','',0,0,7,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2022-02-03 12:50:49',0,'2022-02-03 12:50:49','112.222.138.204','','','','','','','','','','','',''),(518,-518,'',518,0,0,'','','html1','[Linux] 우분투 20.04 카카오톡 설치','<p>1. wine 설치</p>\r\n<p>https://itlearningcenter.tistory.com/entry/%E3%80%90Ubuntu-2004-LTS%E3%80%91%EC%B9%B4%EC%B9%B4%EC%98%A4%ED%86%A1-%EC%84%A4%EC%B9%98</p>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">리눅스 환경에서 윈도우 프로그램들을 실행시켜줄 수 있는 방법이 있습니다. 바로 Wine 프로그램을 설치해서 사용하면 됩니다. Wine을 사용하기 위해서 32bit 지원이 필수입니다. 대부분 우분투 64bit를 설치해서 사용합니다. 저도 그렇고요. 그래서 64bit 우분투에서 32bit가 지원되도록 활성화하기 위해 아래 명령어를 터미널에 입력합니다.</p>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<pre id=\"code_1617868032777\" class=\"html xml\" data-ke-language=\"html\" data-ke-type=\"codeblock\" style=\"box-sizing: border-box; overflow: auto; font-family: Consolas, Menlo, Monaco, &quot;Courier New&quot;, monospace; font-size: 13px; margin-top: 20px; margin-bottom: 20px; padding: 8px 12px; border: 1px solid rgb(188, 188, 188); white-space: pre-wrap; color: #333333; text-align: justify; background-color: #ffffff;\">\r\n   <code class=\"hljs xml\" style=\"box-sizing: border-box; font-family: Consolas, Menlo, Monaco, &quot;Courier New&quot;, monospace; padding: 0.5em; background: rgb(240, 240, 240); text-align: left; display: block; overflow-x: auto; color: #444444;\">sudo dpkg --add-architecture i386</code>\r\n   </pre>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">이제 Wine을 설치하기 위해서 아래 명령어를 터미널에 입력합니다.</p>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<pre id=\"code_1617868229322\" class=\"html xml\" data-ke-language=\"html\" data-ke-type=\"codeblock\" style=\"box-sizing: border-box; overflow: auto; font-family: Consolas, Menlo, Monaco, &quot;Courier New&quot;, monospace; font-size: 13px; margin-top: 20px; margin-bottom: 20px; padding: 8px 12px; border: 1px solid rgb(188, 188, 188); white-space: pre-wrap; color: #333333; text-align: justify; background-color: #ffffff;\">\r\n   <code class=\"hljs xml\" style=\"box-sizing: border-box; font-family: Consolas, Menlo, Monaco, &quot;Courier New&quot;, monospace; padding: 0.5em; background: rgb(240, 240, 240); text-align: left; display: block; overflow-x: auto; color: #444444;\">sudo apt-get update\r\nwget -nc https://dl.winehq.org/wine-builds/winehq.key\r\nsudo apt-key add winehq.key\r\nsudo add-apt-repository \'deb https://dl.winehq.org/wine-builds/ubuntu/ focal main\'\r\nsudo apt-get update\r\nsudo apt-get install --install-recommends winehq-stable</code>\r\n   </pre>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">Wine 설치가 완료되면 이제 설정을 해줍니다. 설정을 위해서 아래 명령어를 터미널에 입력합니다.</p>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<pre id=\"code_1617868332527\" class=\"html xml\" data-ke-language=\"html\" data-ke-type=\"codeblock\" style=\"box-sizing: border-box; overflow: auto; font-family: Consolas, Menlo, Monaco, &quot;Courier New&quot;, monospace; font-size: 13px; margin-top: 20px; margin-bottom: 20px; padding: 8px 12px; border: 1px solid rgb(188, 188, 188); white-space: pre-wrap; color: #333333; text-align: justify; background-color: #ffffff;\">\r\n   <code class=\"hljs xml\" style=\"box-sizing: border-box; font-family: Consolas, Menlo, Monaco, &quot;Courier New&quot;, monospace; padding: 0.5em; background: rgb(240, 240, 240); text-align: left; display: block; overflow-x: auto; color: #444444;\">winecfg</code>\r\n   </pre>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">명령어를 실행하면 Wine 설치 관리자 창이 뜹니다.</p>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<figure class=\"imageblock alignCenter\" data-origin-width=\"0\" data-origin-height=\"0\" width=\"458\" height=\"NaN\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: border-box; margin: 0px auto 20px; max-width: 100%; clear: both; position: relative; text-align: center; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; background-color: #ffffff;\"><span data-url=\"https://blog.kakaocdn.net/dn/FpUzg/btq17YtFRje/5dqh75Ke8y7BU8LXpTeoO1/img.png\" data-lightbox=\"lightbox\" data-alt=\"\" style=\"box-sizing: border-box; cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/FpUzg/btq17YtFRje/5dqh75Ke8y7BU8LXpTeoO1/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFpUzg%2Fbtq17YtFRje%2F5dqh75Ke8y7BU8LXpTeoO1%2Fimg.png\" data-origin-width=\"0\" data-origin-height=\"0\" width=\"458\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: border-box; border: none; max-width: 100%; height: auto; vertical-align: middle; display: inline-block; margin: 0px;\" /></span></figure>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">설치 버튼을 클릭합니다.</p>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<figure class=\"imageblock alignCenter\" data-origin-width=\"0\" data-origin-height=\"0\" width=\"458\" height=\"NaN\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: border-box; margin: 0px auto 20px; max-width: 100%; clear: both; position: relative; text-align: center; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; background-color: #ffffff;\"><span data-url=\"https://blog.kakaocdn.net/dn/JpEAn/btq16z2hcjp/EQIrlcqeHnzSxKoDkmwvE1/img.png\" data-lightbox=\"lightbox\" data-alt=\"\" style=\"box-sizing: border-box; cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/JpEAn/btq16z2hcjp/EQIrlcqeHnzSxKoDkmwvE1/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJpEAn%2Fbtq16z2hcjp%2FEQIrlcqeHnzSxKoDkmwvE1%2Fimg.png\" data-origin-width=\"0\" data-origin-height=\"0\" width=\"458\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: border-box; border: none; max-width: 100%; height: auto; vertical-align: middle; display: inline-block; margin: 0px;\" /></span></figure>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">필요한 파일들을 다운로드합니다.</p>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<figure class=\"imageblock alignCenter\" data-origin-width=\"0\" data-origin-height=\"0\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: border-box; margin: 0px auto 20px; max-width: 100%; clear: both; position: relative; text-align: center; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; background-color: #ffffff;\"><span data-url=\"https://blog.kakaocdn.net/dn/r2iKV/btq2b2u3yi9/8Z8xNOkQja4oN4jgEHDxCK/img.png\" data-lightbox=\"lightbox\" data-alt=\"\" style=\"box-sizing: border-box; cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/r2iKV/btq2b2u3yi9/8Z8xNOkQja4oN4jgEHDxCK/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fr2iKV%2Fbtq2b2u3yi9%2F8Z8xNOkQja4oN4jgEHDxCK%2Fimg.png\" data-origin-width=\"0\" data-origin-height=\"0\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: border-box; border: none; max-width: 100%; height: auto; vertical-align: middle; display: inline-block; width: 702px; margin: 0px;\" /></span></figure>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">다운로드가 완료되면 설치 버튼을 클릭하여&nbsp;<span style=\"box-sizing: border-box;\">Wine Gecko 패키지를 설치합니다.<span style=\"box-sizing: border-box;\">&nbsp;그리고 Wine 설정 창이 뜹니다.</span></span></p>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<figure class=\"imageblock alignCenter\" data-origin-width=\"0\" data-origin-height=\"0\" width=\"478\" height=\"NaN\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: border-box; margin: 0px auto 20px; max-width: 100%; clear: both; position: relative; text-align: center; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; background-color: #ffffff;\"><span data-url=\"https://blog.kakaocdn.net/dn/bDFJC1/btq16zA8gKP/kmfKKCFqdK2lmKkW9hSWa1/img.png\" data-lightbox=\"lightbox\" data-alt=\"\" style=\"box-sizing: border-box; cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/bDFJC1/btq16zA8gKP/kmfKKCFqdK2lmKkW9hSWa1/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbDFJC1%2Fbtq16zA8gKP%2FkmfKKCFqdK2lmKkW9hSWa1%2Fimg.png\" data-origin-width=\"0\" data-origin-height=\"0\" width=\"478\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: border-box; border: none; max-width: 100%; height: auto; vertical-align: middle; display: inline-block; margin: 0px;\" /></span></figure>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">그림과 같이 윈도우 버전을 선택해 줍니다. 참고로 원하는 윈도우 버전을 선택하셔도 됩니다.</p>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<figure class=\"imageblock alignCenter\" data-origin-width=\"0\" data-origin-height=\"0\" width=\"480\" height=\"NaN\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: border-box; margin: 0px auto 20px; max-width: 100%; clear: both; position: relative; text-align: center; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; background-color: #ffffff;\"><span data-url=\"https://blog.kakaocdn.net/dn/czixyC/btq16i7vHyS/GakfLeKLOYbPdaPFeZPqbk/img.png\" data-lightbox=\"lightbox\" data-alt=\"\" style=\"box-sizing: border-box; cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/czixyC/btq16i7vHyS/GakfLeKLOYbPdaPFeZPqbk/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FczixyC%2Fbtq16i7vHyS%2FGakfLeKLOYbPdaPFeZPqbk%2Fimg.png\" data-origin-width=\"0\" data-origin-height=\"0\" width=\"480\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: border-box; border: none; max-width: 100%; height: auto; vertical-align: middle; display: inline-block; margin: 0px;\" /></span></figure>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">라이브러리 화면에서 \"<span style=\"box-sizing: border-box; font-weight: bolder;\">d3dx11_43</span>\"을 선택하고 추가 버튼을 클릭합니다. 나머지 설정들은 기본 설정으로 두고 적용 버튼을 클릭하여 Wine 설정을 적용시킵니다. 확인 버튼을 클릭하여 설정을 마칩니다. 언제든 \"<span style=\"box-sizing: border-box; font-weight: bolder;\">winecfg</span>\" 명령어를 입력하여 Wine 설정을 할 수 있습니다.</p>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">2. 카카오톡 설치</p>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">우분투 환경에서 윈도우 프로그램인 카카오톡을 설치하기 위해서는 Wine을 설치해야 합니다. 아래 글을 참조하여 설치해 주시기 바랍니다.</p>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\"><a href=\"https://itlearningcenter.tistory.com/entry/%E3%80%90Ubuntu-2004-LTS%E3%80%91%EC%B9%B4%EC%B9%B4%EC%98%A4%ED%86%A1-%EC%84%A4%EC%B9%98\" target=\"_blank\" rel=\"noopener\" style=\"box-sizing: border-box; background-color: transparent; text-decoration-line: none; color: #337ab7;\">2021.04.08 - [Embedded System/Embedded Linux] - 【Ubuntu 20.04 LTS】Wine 설치 및 구성</a></p>\r\n<figure id=\"og_1617887464944\" contenteditable=\"false\" data-ke-type=\"opengraph\" data-og-type=\"article\" data-og-title=\"【Ubuntu 20.04 LTS】Wine 설치 및 구성\" data-og-description=\"리눅스 환경에서 윈도우 프로그램들을 실행시켜줄 수 있는 방법이 있습니다. 바로 Wine 프로그램을 설치해서 사용하면 됩니다. Wine을 사용하기 위해서 32bit 지원이 필수입니다. 대부분 우분투 64bi\" data-og-host=\"itlearningcenter.tistory.com\" data-og-source-url=\"https://itlearningcenter.tistory.com/entry/【Ubuntu-2004-LTS】카카오톡-설치\" data-og-url=\"https://itlearningcenter.tistory.com/entry/%E3%80%90Ubuntu-2004-LTS%E3%80%91%EC%B9%B4%EC%B9%B4%EC%98%A4%ED%86%A1-%EC%84%A4%EC%B9%98\" data-og-image=\"https://scrap.kakaocdn.net/dn/p9fs9/hyJPq0nj5O/KDzBWJMl6Oty8uQCY52Hx0/img.png?width=465&amp;height=248&amp;face=0_0_465_248,https://scrap.kakaocdn.net/dn/oGTN4/hyJPp8eNuZ/vJ3e8PHKXR18kmFennx940/img.png?width=465&amp;height=248&amp;face=0_0_465_248,https://scrap.kakaocdn.net/dn/OgfGI/hyJNWNlAzH/dl2YuGku8Gb6S2qv7ZUKx1/img.png?width=484&amp;height=620&amp;face=0_0_484_620\" style=\"box-sizing: border-box; margin: 30px 40px; max-width: 100%; clear: both; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff;\"><a href=\"https://itlearningcenter.tistory.com/entry/%E3%80%90Ubuntu-2004-LTS%E3%80%91%EC%B9%B4%EC%B9%B4%EC%98%A4%ED%86%A1-%EC%84%A4%EC%B9%98\" target=\"_blank\" rel=\"noopener\" data-source-url=\"https://itlearningcenter.tistory.com/entry/【Ubuntu-2004-LTS】카카오톡-설치\" style=\"box-sizing: border-box; background-color: transparent; text-decoration-line: none; color: #000000; position: relative; display: block; height: 200px; border: 1px solid rgb(217, 217, 217); z-index: 1;\">\r\n      <div class=\"og-image\" style=\"box-sizing: border-box; position: absolute; top: 0px; bottom: 0px; left: 0px; width: 200px; border-right: 1px solid rgb(217, 217, 217); background-size: cover; background-position: center center; background-image: url(&quot;https://scrap.kakaocdn.net/dn/p9fs9/hyJPq0nj5O/KDzBWJMl6Oty8uQCY52Hx0/img.png?width=465&amp;height=248&amp;face=0_0_465_248,https://scrap.kakaocdn.net/dn/oGTN4/hyJPp8eNuZ/vJ3e8PHKXR18kmFennx940/img.png?width=465&amp;height=248&amp;face=0_0_465_248,https://scrap.kakaocdn.net/dn/OgfGI/hyJNWNlAzH/dl2YuGku8Gb6S2qv7ZUKx1/img.png?width=484&amp;height=620&amp;face=0_0_484_620&quot;);\">&nbsp;</div>\r\n      <div class=\"og-text\" style=\"box-sizing: border-box; position: absolute; inset: 0px 0px 0px 201px; padding: 33px 46px 0px 39px;\">\r\n         <p class=\"og-title\" style=\"box-sizing: border-box; font-size: 22px; line-height: 28px; max-width: 467px; text-overflow: ellipsis; white-space: nowrap; overflow: hidden; font-family: &quot;Noto Sans DemiLight&quot;, &quot;Noto Sans KR&quot;, sans-serif; padding-top: 0px !important; padding-bottom: 0px !important; margin-bottom: 10px !important;\">【Ubuntu 20.04 LTS】Wine 설치 및 구성</p>\r\n         <p class=\"og-desc\" style=\"box-sizing: border-box; text-overflow: ellipsis; overflow: hidden; font-family: &quot;Noto Sans DemiLight&quot;, &quot;Noto Sans KR&quot;, sans-serif; font-size: 14px; font-stretch: normal; line-height: normal; color: #909090; max-height: 42px; -webkit-line-clamp: 2; -webkit-box-orient: vertical; display: -webkit-box; padding-top: 0px !important; padding-bottom: 0px !important;\">리눅스 환경에서 윈도우 프로그램들을 실행시켜줄 수 있는 방법이 있습니다. 바로 Wine 프로그램을 설치해서 사용하면 됩니다. Wine을 사용하기 위해서 32bit 지원이 필수입니다. 대부분 우분투 64bi</p>\r\n         <p class=\"og-host\" style=\"box-sizing: border-box; position: absolute; bottom: 24px; font-family: AvenirNext, sans-serif; font-size: 14px; color: #909090; padding-top: 0px !important; padding-bottom: 0px !important;\">itlearningcenter.tistory.com</p>\r\n         </div>\r\n      </a></figure>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">카카오톡 프로그램을 공식 홈페이지에서 다운로드합니다. 터미널에서 다운로드 폴더로 이동합니다. 설치를 위해서 아래 명령어를 입력합니다.</p>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<pre id=\"code_1617870047279\" class=\"html xml\" data-ke-language=\"html\" data-ke-type=\"codeblock\" style=\"box-sizing: border-box; overflow: auto; font-family: Consolas, Menlo, Monaco, &quot;Courier New&quot;, monospace; font-size: 13px; margin-top: 20px; margin-bottom: 20px; padding: 8px 12px; border: 1px solid rgb(188, 188, 188); white-space: pre-wrap; color: #333333; text-align: justify; background-color: #ffffff;\">\r\n   <code class=\"hljs xml\" style=\"box-sizing: border-box; font-family: Consolas, Menlo, Monaco, &quot;Courier New&quot;, monospace; padding: 0.5em; background: rgb(240, 240, 240); text-align: left; display: block; overflow-x: auto; color: #444444;\">cd ~/Download\r\nLANG=\"ko_KR.UTF-8\" wine KakaoTalk_Setup.exe</code>\r\n   </pre>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">아래의 그림과 같이 설치 화면이 나옵니다.</p>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<figure class=\"imageblock alignCenter\" data-origin-width=\"0\" data-origin-height=\"0\" width=\"295\" height=\"NaN\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: border-box; margin: 0px auto 20px; max-width: 100%; clear: both; position: relative; text-align: center; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; background-color: #ffffff;\"><span data-url=\"https://blog.kakaocdn.net/dn/Rv5m9/btq169POxRk/70FIUDOmQJ4ztNIZitijp0/img.png\" data-lightbox=\"lightbox\" data-alt=\"\" style=\"box-sizing: border-box; cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/Rv5m9/btq169POxRk/70FIUDOmQJ4ztNIZitijp0/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRv5m9%2Fbtq169POxRk%2F70FIUDOmQJ4ztNIZitijp0%2Fimg.png\" data-origin-width=\"0\" data-origin-height=\"0\" width=\"295\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: border-box; border: none; max-width: 100%; height: auto; vertical-align: middle; display: inline-block; margin: 0px;\" /></span></figure>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">윈도우에서 카카오톡을 설치하듯이 설치하시면 됩니다.</p>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<figure class=\"imageblock alignCenter\" data-origin-width=\"0\" data-origin-height=\"0\" width=\"573\" height=\"NaN\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: border-box; margin: 0px auto 20px; max-width: 100%; clear: both; position: relative; text-align: center; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; background-color: #ffffff;\"><span data-url=\"https://blog.kakaocdn.net/dn/LcrRZ/btq17Y8l8S3/b5i9ZqRsYbZTYNt5aajCMK/img.png\" data-lightbox=\"lightbox\" data-alt=\"\" style=\"box-sizing: border-box; cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/LcrRZ/btq17Y8l8S3/b5i9ZqRsYbZTYNt5aajCMK/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLcrRZ%2Fbtq17Y8l8S3%2Fb5i9ZqRsYbZTYNt5aajCMK%2Fimg.png\" data-origin-width=\"0\" data-origin-height=\"0\" width=\"573\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: border-box; border: none; max-width: 100%; height: auto; vertical-align: middle; display: inline-block; margin: 0px;\" /></span></figure>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">설치가 완료되었습니다. 카카오톡을 실행합니다.</p>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<figure class=\"imageblock alignCenter\" data-origin-width=\"0\" data-origin-height=\"0\" width=\"398\" height=\"NaN\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: border-box; margin: 0px auto 20px; max-width: 100%; clear: both; position: relative; text-align: center; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; background-color: #ffffff;\"><span data-url=\"https://blog.kakaocdn.net/dn/vkSRJ/btq2cZkrkcd/zrh3sv9fFyrGHyPUoYFaDK/img.png\" data-lightbox=\"lightbox\" data-alt=\"\" style=\"box-sizing: border-box; cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/vkSRJ/btq2cZkrkcd/zrh3sv9fFyrGHyPUoYFaDK/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvkSRJ%2Fbtq2cZkrkcd%2Fzrh3sv9fFyrGHyPUoYFaDK%2Fimg.png\" data-origin-width=\"0\" data-origin-height=\"0\" width=\"398\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: border-box; border: none; max-width: 100%; height: auto; vertical-align: middle; display: inline-block; margin: 0px;\" /></span></figure>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">제가 사용해본 결과 이상 없이 잘 되었습니다. 한글도 잘 출력되고 이모티콘도 사용하는데 문제가 없었습니다.</p>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p style=\"box-sizing: border-box; color: #333333; font-family: &quot;Noto Sans KR&quot;, &quot;Malgun Gothic&quot;, HelveticaNeue-Light, AppleSDGothicNeo-Light, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff; padding-top: 0px !important; padding-bottom: 0px !important;\">3. 카카오톡 한글 설정</p>\r\n<h2 data-ke-size=\"size26\" style=\"margin: 60px 0px 19px; padding: 0px; font-weight: normal; font-family: &quot;Noto Sans KR&quot;, sans-serif;\">3. 카카오톡 언어 설정</h2>\r\n<pre id=\"code_1623563340015\" class=\"bash\" data-ke-language=\"bash\" data-ke-type=\"codeblock\" style=\"overflow: auto; margin-top: 0px; margin-bottom: 0px; padding: 0px; word-break: break-all; white-space: pre-wrap; overflow-wrap: break-word;\">\r\n   <code class=\"hljs\" style=\"margin: 0px; padding: 20px; display: block; overflow-x: auto; line-height: 1.3em; color: #abb2bf; background: rgb(40, 44, 52); border-radius: 5px;\">vi ~/Desktop/카카오톡.desktop</code>\r\n   </pre>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding-right: 0px; padding-left: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"color: #000000;\">터미널에서 위 명령어를 실행한다.</span></p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding-right: 0px; padding-left: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p style=\"margin-bottom: 24px; padding-right: 0px; padding-left: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<figure class=\"imageblock alignCenter\" data-origin-width=\"952\" data-origin-height=\"793\" data-ke-mobilestyle=\"widthOrigin\" style=\"margin: 0px auto 20px; max-width: 100%; clear: both; padding: 0px; display: table; position: relative; text-align: center; font-family: &quot;Noto Sans KR&quot;, sans-serif; font-size: 16px;\"><span data-url=\"https://blog.kakaocdn.net/dn/cnO9PU/btq66t3fPZc/xixkKdoY2bfAwBdHu04lP1/img.png\" data-lightbox=\"lightbox\" data-alt=\"\" style=\"cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/cnO9PU/btq66t3fPZc/xixkKdoY2bfAwBdHu04lP1/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcnO9PU%2Fbtq66t3fPZc%2FxixkKdoY2bfAwBdHu04lP1%2Fimg.png\" data-origin-width=\"952\" data-origin-height=\"793\" data-ke-mobilestyle=\"widthOrigin\" style=\"border: none; vertical-align: top; max-width: 100%; display: inline-block; width: 860px; margin: 0px; height: auto;\" /></span></figure>\r\n<p style=\"margin-bottom: 24px; padding-right: 0px; padding-left: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding-right: 0px; padding-left: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"color: #000000;\">3번째 줄에 있는 wine 명령어 앞에 LANG=\"ko_KR.UTF-8\"을 추가한다.</span></p>\r\n<hr contenteditable=\"false\" data-ke-type=\"horizontalRule\" data-ke-style=\"style4\" style=\"border: none; font-size: 0px; line-height: 0; height: 60px; margin: 20px auto; background-image: url(&quot;https://t1.daumcdn.net/keditor/dist/0.4.0/image/divider-line.svg&quot;); background-position: 0px -60px; background-size: 200px 200px; background-repeat: no-repeat; background-attachment: initial; background-origin: initial; background-clip: initial; width: 2px; font-family: &quot;Noto Sans KR&quot;, sans-serif; cursor: pointer !important;\" />\r\n<pre id=\"code_1623563443770\" class=\"bash\" data-ke-language=\"bash\" data-ke-type=\"codeblock\" style=\"overflow: auto; margin-top: 0px; margin-bottom: 0px; padding: 0px; word-break: break-all; white-space: pre-wrap; overflow-wrap: break-word;\">\r\n   <code class=\"hljs\" style=\"margin: 0px; padding: 20px; display: block; overflow-x: auto; line-height: 1.3em; color: #abb2bf; background: rgb(40, 44, 52); border-radius: 5px;\">vi ~/.<span class=\"hljs-built_in\" style=\"color: #e6c07b;\">local</span>/share/applications/wine/Programs/카카오톡/카카오톡.desktop</code>\r\n   </pre>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding-right: 0px; padding-left: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"color: #000000;\">한번 더 위 명령어를 실행하여 설정을 해주자.</span></p>\r\n<p style=\"margin-bottom: 24px; padding-right: 0px; padding-left: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<figure class=\"imageblock alignCenter\" data-origin-width=\"786\" data-origin-height=\"527\" data-ke-mobilestyle=\"widthOrigin\" style=\"margin: 0px auto 20px; max-width: 100%; clear: both; padding: 0px; display: table; position: relative; text-align: center; font-family: &quot;Noto Sans KR&quot;, sans-serif; font-size: 16px;\"><span data-url=\"https://blog.kakaocdn.net/dn/bs4T7L/btq64w7C6tf/HzjMWiXuDOhbn86qCwHZXk/img.png\" data-lightbox=\"lightbox\" data-alt=\"\" style=\"cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/bs4T7L/btq64w7C6tf/HzjMWiXuDOhbn86qCwHZXk/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbs4T7L%2Fbtq64w7C6tf%2FHzjMWiXuDOhbn86qCwHZXk%2Fimg.png\" data-origin-width=\"786\" data-origin-height=\"527\" data-ke-mobilestyle=\"widthOrigin\" style=\"border: none; vertical-align: top; max-width: 100%; display: inline-block; width: 786px; margin: 0px; height: auto;\" /></span></figure>\r\n<p style=\"margin-bottom: 24px; padding-right: 0px; padding-left: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding-right: 0px; padding-left: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"color: #000000;\">설정을 모두 했다면&nbsp;<b>로그아웃&nbsp; 및 로그인</b>을 해야된다.</span></p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding-right: 0px; padding-left: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"color: #000000;\">간혹 한글이 깨지는 경우가 있었다.</span></p>\r\n<hr contenteditable=\"false\" data-ke-type=\"horizontalRule\" data-ke-style=\"style4\" style=\"border: none; font-size: 0px; line-height: 0; height: 60px; margin: 20px auto; background-image: url(&quot;https://t1.daumcdn.net/keditor/dist/0.4.0/image/divider-line.svg&quot;); background-position: 0px -60px; background-size: 200px 200px; background-repeat: no-repeat; background-attachment: initial; background-origin: initial; background-clip: initial; width: 2px; font-family: &quot;Noto Sans KR&quot;, sans-serif; cursor: pointer !important;\" />\r\n<p style=\"margin-bottom: 24px; padding-right: 0px; padding-left: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<figure class=\"imageblock alignCenter\" data-origin-width=\"1280\" data-origin-height=\"800\" data-ke-mobilestyle=\"widthOrigin\" style=\"margin: 0px auto 20px; max-width: 100%; clear: both; padding: 0px; display: table; position: relative; text-align: center; font-family: &quot;Noto Sans KR&quot;, sans-serif; font-size: 16px;\"><span data-url=\"https://blog.kakaocdn.net/dn/qXIXE/btq69W4BAAg/JsCeNVKYGxxNTnIiJTdJ20/img.png\" data-lightbox=\"lightbox\" data-alt=\"\" style=\"cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/qXIXE/btq69W4BAAg/JsCeNVKYGxxNTnIiJTdJ20/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqXIXE%2Fbtq69W4BAAg%2FJsCeNVKYGxxNTnIiJTdJ20%2Fimg.png\" data-origin-width=\"1280\" data-origin-height=\"800\" data-ke-mobilestyle=\"widthOrigin\" style=\"border: none; vertical-align: top; max-width: 100%; display: inline-block; width: 860px; margin: 0px; height: auto;\" /></span></figure>\r\n<p style=\"margin-bottom: 24px; padding-right: 0px; padding-left: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding-right: 0px; padding-left: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"color: #000000;\">그리고 바탕화면에서 카카오톡을 우클릭하여 Allow Launching을 클릭한다.</span></p>\r\n<p style=\"margin-bottom: 24px; padding-right: 0px; padding-left: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<figure class=\"imageblock alignCenter\" data-origin-width=\"1280\" data-origin-height=\"800\" data-ke-mobilestyle=\"widthOrigin\" style=\"margin: 0px auto 20px; max-width: 100%; clear: both; padding: 0px; display: table; position: relative; text-align: center; font-family: &quot;Noto Sans KR&quot;, sans-serif; font-size: 16px;\"><span data-url=\"https://blog.kakaocdn.net/dn/OQjoT/btq7deRjlyn/tXAL7jiZKbqJ6EhBcJS310/img.png\" data-lightbox=\"lightbox\" data-alt=\"\" style=\"cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/OQjoT/btq7deRjlyn/tXAL7jiZKbqJ6EhBcJS310/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOQjoT%2Fbtq7deRjlyn%2FtXAL7jiZKbqJ6EhBcJS310%2Fimg.png\" data-origin-width=\"1280\" data-origin-height=\"800\" data-ke-mobilestyle=\"widthOrigin\" style=\"border: none; vertical-align: top; max-width: 100%; display: inline-block; width: 860px; margin: 0px; height: auto;\" /></span></figure>\r\n<p style=\"margin-bottom: 24px; padding-right: 0px; padding-left: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding-right: 0px; padding-left: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"color: #000000;\">카카오톡.destop을 우클릭한 뒤 Allow Launching을 누르면 카톡을 실행할 수 있게 된다.</span></p>\r\n<h2 data-ke-size=\"size26\" style=\"margin: 60px 0px 19px; padding: 0px; font-weight: normal; font-family: &quot;Noto Sans KR&quot;, sans-serif;\">4. fcitx 입력기 설정</h2>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding-right: 0px; padding-left: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"color: #000000;\">카톡에서 한글을 입력할 때 IBus 또는 uim을 사용할 경우 제대로 입력이 되지않는다.</span></p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding-right: 0px; padding-left: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding-right: 0px; padding-left: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"color: #000000;\">그래서 입력기를 fcitx로 바꿔주어야 한다.</span></p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding-right: 0px; padding-left: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"color: #000000;\"><a href=\"https://movment.tistory.com/4\" target=\"_blank\" rel=\"noopener\" style=\"color: #000000;\">https://movment.tistory.com/4</a></span></p>\r\n<figure id=\"og_1623563660344\" contenteditable=\"false\" data-ke-type=\"opengraph\" data-ke-align=\"alignCenter\" data-og-type=\"article\" data-og-title=\"우분투 fcitx 입력기 설정하기\" data-og-description=\"기본 입력기인 IBus를 사용해도 문제 없지만, Zoom 또는 카톡에서 ibus 또는 uim 입력기를 사용할 경우 한글이 이상하게 입력된다. 이 문제를 해결하기 위해 입력기를 fcitx로 설정하자! fcitx 입력기 설\" data-og-host=\"movment.tistory.com\" data-og-source-url=\"https://movment.tistory.com/4\" data-og-url=\"https://movment.tistory.com/4\" data-og-image=\"https://scrap.kakaocdn.net/dn/I4eb9/hyKxBgQwIn/JlyKSS5kVwtf37K969ROT1/img.png?width=402&amp;height=531&amp;face=0_0_402_531,https://scrap.kakaocdn.net/dn/d1iNva/hyKxFwL9Xi/BD0ST8gWqaNxCfTDEBznKk/img.png?width=402&amp;height=531&amp;face=0_0_402_531,https://scrap.kakaocdn.net/dn/gRQlR/hyKxFKh273/igPAu5gNaIqgNkyp85qox0/img.png?width=1442&amp;height=958&amp;face=0_0_1442_958\" style=\"margin: 30px 0px; max-width: 100%; clear: both; padding: 0px; font-family: &quot;Noto Sans KR&quot;, sans-serif; font-size: 16px;\"><a href=\"https://movment.tistory.com/4\" target=\"_blank\" rel=\"noopener\" data-source-url=\"https://movment.tistory.com/4\" style=\"color: #000000; position: relative; box-sizing: border-box; display: block; height: 200px; border: 1px solid rgb(217, 217, 217); text-decoration-line: none; z-index: 1;\">\r\n      <div class=\"og-image\" style=\"margin: 0px; padding: 0px; position: absolute; top: 0px; bottom: 0px; left: 0px; width: 200px; border-right: 1px solid rgb(217, 217, 217); background-size: cover; background-position: center center; background-image: url(&quot;https://scrap.kakaocdn.net/dn/I4eb9/hyKxBgQwIn/JlyKSS5kVwtf37K969ROT1/img.png?width=402&amp;height=531&amp;face=0_0_402_531,https://scrap.kakaocdn.net/dn/d1iNva/hyKxFwL9Xi/BD0ST8gWqaNxCfTDEBznKk/img.png?width=402&amp;height=531&amp;face=0_0_402_531,https://scrap.kakaocdn.net/dn/gRQlR/hyKxFKh273/igPAu5gNaIqgNkyp85qox0/img.png?width=1442&amp;height=958&amp;face=0_0_1442_958&quot;);\">&nbsp;</div>\r\n      <div class=\"og-text\" style=\"margin: 0px; padding: 33px 46px 0px 39px; position: absolute; inset: 0px 0px 0px 201px; box-sizing: border-box;\">\r\n         <p class=\"og-title\" data-ke-size=\"size16\" style=\"padding-right: 0px; padding-left: 0px; font-size: 22px; line-height: 28px; max-width: 467px; text-overflow: ellipsis; white-space: nowrap; overflow: hidden; font-family: &quot;Noto Sans DemiLight&quot;, &quot;Noto Sans KR&quot;, sans-serif; margin-bottom: 10px !important; padding-top: 0px !important; padding-bottom: 0px !important;\">우분투 fcitx 입력기 설정하기</p>\r\n         <p class=\"og-desc\" data-ke-size=\"size16\" style=\"padding-right: 0px; padding-left: 0px; font-size: 14px; line-height: normal; color: #909090; text-overflow: ellipsis; overflow: hidden; font-family: &quot;Noto Sans DemiLight&quot;, &quot;Noto Sans KR&quot;, sans-serif; font-stretch: normal; max-height: 42px; -webkit-line-clamp: 2; -webkit-box-orient: vertical; display: -webkit-box; padding-top: 0px !important; padding-bottom: 0px !important;\">기본 입력기인 IBus를 사용해도 문제 없지만, Zoom 또는 카톡에서 ibus 또는 uim 입력기를 사용할 경우 한글이 이상하게 입력된다. 이 문제를 해결하기 위해 입력기를 fcitx로 설정하자! fcitx 입력기 설</p>\r\n         <p class=\"og-host\" data-ke-size=\"size16\" style=\"padding-right: 0px; padding-left: 0px; font-size: 14px; line-height: 1.6; color: #909090; position: absolute; bottom: 24px; font-family: AvenirNext, sans-serif; padding-top: 0px !important; padding-bottom: 0px !important;\">movment.tistory.com</p>\r\n         </div>\r\n      </a></figure>\r\n<h2 data-ke-size=\"size26\" style=\"margin: 60px 0px 19px; padding: 0px; font-weight: normal; font-family: &quot;Noto Sans KR&quot;, sans-serif;\">5. 카카오톡 아이콘 설정(선택)</h2>\r\n<p style=\"margin-bottom: 24px; padding-right: 0px; padding-left: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<figure class=\"imageblock alignCenter\" data-origin-width=\"1280\" data-origin-height=\"800\" data-ke-mobilestyle=\"widthOrigin\" style=\"margin: 0px auto 20px; max-width: 100%; clear: both; padding: 0px; display: table; position: relative; text-align: center; font-family: &quot;Noto Sans KR&quot;, sans-serif; font-size: 16px;\"><span data-url=\"https://blog.kakaocdn.net/dn/b40ym0/btq64SbEQId/2sM93OHzR1sIz2DhqZIFwK/img.png\" data-lightbox=\"lightbox\" data-alt=\"\" style=\"cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/b40ym0/btq64SbEQId/2sM93OHzR1sIz2DhqZIFwK/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb40ym0%2Fbtq64SbEQId%2F2sM93OHzR1sIz2DhqZIFwK%2Fimg.png\" data-origin-width=\"1280\" data-origin-height=\"800\" data-ke-mobilestyle=\"widthOrigin\" style=\"border: none; vertical-align: top; max-width: 100%; display: inline-block; width: 860px; margin: 0px; height: auto;\" /></span></figure>\r\n<p style=\"margin-bottom: 24px; padding-right: 0px; padding-left: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding-right: 0px; padding-left: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"color: #000000;\">카톡을 실행할 때 마다 Wine System Tray가 추가로 실행된다.</span></p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding-right: 0px; padding-left: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding-right: 0px; padding-left: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"color: #000000;\">매번 창을 닫아주면 되지만 불편하고, 카톡을 닫고 다시 열려면 매번 재실행해야 한다.</span></p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding-right: 0px; padding-left: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding-right: 0px; padding-left: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"color: #000000;\">gnome-tweak-tool을 사용하면 이런 문제를 해결하고 Shell에 카톡 아이콘을 추가할 수 있다.</span></p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding-right: 0px; padding-left: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<pre id=\"code_1623563905724\" class=\"bash\" data-ke-language=\"bash\" data-ke-type=\"codeblock\" style=\"overflow: auto; margin-top: 0px; margin-bottom: 0px; padding: 0px; word-break: break-all; white-space: pre-wrap; overflow-wrap: break-word;\">\r\n   <code class=\"hljs\" style=\"margin: 0px; padding: 20px; display: block; overflow-x: auto; line-height: 1.3em; color: #abb2bf; background: rgb(40, 44, 52); border-radius: 5px;\">sudo apt install gnome-tweak-tool gnome-shell-extension-top-icons-plus</code>\r\n   </pre>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding-right: 0px; padding-left: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"color: #000000;\">터미널에서 위 명령어를 실행한다.</span></p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding-right: 0px; padding-left: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding-right: 0px; padding-left: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"color: #000000;\">설치가 완료되면&nbsp;<b>로그아웃 및 로그인</b>을 한다.</span></p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding-right: 0px; padding-left: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<hr contenteditable=\"false\" data-ke-type=\"horizontalRule\" data-ke-style=\"style4\" style=\"border: none; font-size: 0px; line-height: 0; height: 60px; margin: 20px auto; background-image: url(&quot;https://t1.daumcdn.net/keditor/dist/0.4.0/image/divider-line.svg&quot;); background-position: 0px -60px; background-size: 200px 200px; background-repeat: no-repeat; background-attachment: initial; background-origin: initial; background-clip: initial; width: 2px; font-family: &quot;Noto Sans KR&quot;, sans-serif; cursor: pointer !important;\" />\r\n<p style=\"margin-bottom: 24px; padding-right: 0px; padding-left: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<figure class=\"imageblock alignCenter\" data-origin-width=\"1280\" data-origin-height=\"800\" data-ke-mobilestyle=\"widthOrigin\" style=\"margin: 0px auto 20px; max-width: 100%; clear: both; padding: 0px; display: table; position: relative; text-align: center; font-family: &quot;Noto Sans KR&quot;, sans-serif; font-size: 16px;\"><span data-url=\"https://blog.kakaocdn.net/dn/UXZok/btq64yEvHDi/V2GsZfhRxbIovofxVHCvGK/img.png\" data-lightbox=\"lightbox\" data-alt=\"\" style=\"cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/UXZok/btq64yEvHDi/V2GsZfhRxbIovofxVHCvGK/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUXZok%2Fbtq64yEvHDi%2FV2GsZfhRxbIovofxVHCvGK%2Fimg.png\" data-origin-width=\"1280\" data-origin-height=\"800\" data-ke-mobilestyle=\"widthOrigin\" style=\"border: none; vertical-align: top; max-width: 100%; display: inline-block; width: 860px; margin: 0px; height: auto;\" /></span></figure>\r\n<figure class=\"imageblock alignCenter\" data-origin-width=\"1003\" data-origin-height=\"700\" data-ke-mobilestyle=\"widthOrigin\" style=\"margin: 0px auto 20px; max-width: 100%; clear: both; padding: 0px; display: table; position: relative; text-align: center; font-family: &quot;Noto Sans KR&quot;, sans-serif; font-size: 16px;\"><span data-url=\"https://blog.kakaocdn.net/dn/xd0Jt/btq65Us8177/16Z9r36k9rAawfKoy2MK0k/img.png\" data-lightbox=\"lightbox\" data-alt=\"\" style=\"cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/xd0Jt/btq65Us8177/16Z9r36k9rAawfKoy2MK0k/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fxd0Jt%2Fbtq65Us8177%2F16Z9r36k9rAawfKoy2MK0k%2Fimg.png\" data-origin-width=\"1003\" data-origin-height=\"700\" data-ke-mobilestyle=\"widthOrigin\" style=\"border: none; vertical-align: top; max-width: 100%; display: inline-block; width: 860px; margin: 0px; height: auto;\" /></span></figure>\r\n<p style=\"margin-bottom: 24px; padding-right: 0px; padding-left: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding-right: 0px; padding-left: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"color: #000000;\">tweaks를 실행한 뒤 확장 탭의&nbsp;<b>Topicons plus</b>를 활성화한다.</span></p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding-right: 0px; padding-left: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif; padding-top: 0px !important; padding-bottom: 0px !important;\">&nbsp;</p>\r\n<p data-ke-size=\"size16\" style=\"margin-bottom: 24px; padding-right: 0px; padding-left: 0px; font-size: 0.9375em; line-height: 1.6; color: #666666; font-family: &quot;Noto Sans KR&quot;, sans-serif; padding-top: 0px !important; padding-bottom: 0px !important;\"><span style=\"color: #000000;\">Topicons plus 우측의 톱니바퀴를 누르면 카톡 아이콘의 위치를 수정할 수 있다.</span></p>','https://itlearningcenter.tistory.com/entry/%E3%80%90Ubuntu-2004-LTS%E3%80%91%EC%B9%B4%EC%B9%B4%EC%98%A4%ED%86%A1-%EC%84%A4%EC%B9%98-1','https://movment.tistory.com/63',5,3,20,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2022-02-03 13:40:01',0,'2022-02-03 13:40:01','112.222.138.204','','','','','','','','','','','',''),(519,-519,'',519,0,0,'','','html1','[Eagle] 연결이 필요하지 않은 회로도에서 NC Flag 사용하기','<div class=\"lia-quilt-row lia-quilt-row-message-position\" style=\"box-sizing: border-box; margin-left: 0px; margin-right: 0px;\">\r\n   <div class=\"lia-quilt-column lia-quilt-column-06 lia-quilt-column-single lia-quilt-column-message-position-in-thread\" style=\"box-sizing: border-box; position: relative; min-height: 1px; padding-left: 0px; padding-right: 0px; float: left; width: 222.5px;\">\r\n      <div class=\"lia-quilt-column-alley lia-quilt-column-alley-single\" style=\"box-sizing: border-box;\">\r\n         <div class=\"lia-message-position-in-thread lia-component-message-position-in-thread lia-component-message-view-widget-message-position-in-thread\" style=\"box-sizing: border-box; padding: 0px 0px 10px;\"><span class=\"MessagesPositionInThread\" style=\"box-sizing: border-box; font-family: Artifakt, sans-serif; font-weight: 700; text-transform: uppercase; font-size: 14px;\">MESSAGE&nbsp;<a href=\"https://forums.autodesk.com/t5/eagle-forum/how-to-add-a-no-connection-label-to-an-eagle-schematic/m-p/9748531#M31300\" aria-label=\"Message 2 of 2\" style=\"box-sizing: border-box; color: #000000; text-decoration-line: none; font-weight: 400;\" target=\"_blank\">2</a>&nbsp;OF 2</span></div>\r\n         </div>\r\n      </div>\r\n   </div>\r\n<div class=\"lia-quilt-row lia-quilt-row-header\" style=\"box-sizing: border-box; margin-left: 0px; margin-right: 0px; padding-bottom: 20px; padding-right: 0px;\">\r\n   <div class=\"lia-quilt-column lia-quilt-column-18 lia-quilt-column-left lia-quilt-column-header-left\" style=\"box-sizing: border-box; position: relative; min-height: 1px; padding-left: 0px; padding-right: 15px; float: left; width: 667.5px;\">\r\n      <div class=\"lia-quilt-column-alley lia-quilt-column-alley-left\" style=\"box-sizing: border-box;\">\r\n         <div class=\"lia-message-author-avatar lia-component-author-avatar lia-component-message-view-widget-author-avatar\" style=\"box-sizing: border-box; display: inline-block; float: none; padding-right: 10px;\">\r\n            <div class=\"UserAvatar lia-user-avatar lia-component-common-widget-user-avatar\" style=\"box-sizing: border-box;\"><img class=\"lia-user-avatar-message\" title=\"jorge.garcia\" alt=\"jorge.garcia\" id=\"imagedisplay_0\" src=\"https://images.profile.autodesk.com/Y54WLME46DE2/profilepictures/x176.jpg?r=637393483883050000\" style=\"box-sizing: border-box; border: 0px; vertical-align: middle; width: 50px; border-radius: 50%; height: 50px; object-fit: cover; max-width: 50px; box-shadow: rgb(204, 204, 204) 0px 0px 1px 0px inset, rgb(204, 204, 204) 0px 0px 1px 0px; max-height: 50px; overflow: hidden; text-overflow: ellipsis;\" /></div>\r\n            </div>\r\n         &nbsp;\r\n         <div class=\"lia-message-author-with-avatar\" style=\"box-sizing: border-box; display: inline-block;\"><span class=\"UserName lia-user-name lia-user-rank-Employee lia-component-message-view-widget-author-username\" style=\"box-sizing: border-box; white-space: nowrap;\"><img class=\"lia-user-rank-icon lia-user-rank-icon-left\" title=\"Employee\" alt=\"Employee\" id=\"display_1\" src=\"https://forums.autodesk.com/html/@0DFF3E3C38A0CE8706782D26144FCF3B/rank_icons/employee.png\" style=\"box-sizing: border-box; border: 0px; vertical-align: middle; max-width: 25px; margin-right: 5px;\" />&nbsp;<a class=\"lia-link-navigation lia-page-link lia-user-name-link\" target=\"_self\" aria-label=\"View Profile of jorge.garcia\" itemprop=\"url\" id=\"link_13\" href=\"https://forums.autodesk.com/t5/user/viewprofilepage/user-id/4235204\" style=\"box-sizing: border-box; color: #444444; text-decoration-line: none;\"><span class=\"login-bold\" style=\"box-sizing: border-box; font-family: Artifakt, sans-serif; font-size: 16px; color: #000000; border-bottom: 1px solid black;\">jorge.garcia</span></a></span></div>\r\n         &nbsp;\r\n         <div class=\"lia-message-author-with-avatar\" style=\"box-sizing: border-box; display: inline-block;\"><span class=\"UserName lia-user-name lia-user-rank-Employee lia-component-message-view-widget-author-username\" style=\"box-sizing: border-box; white-space: nowrap;\"><span class=\"autodesk-reply-author\" style=\"box-sizing: border-box;\">in reply to:</span>&nbsp;<a class=\"lia-link-navigation lia-page-link lia-user-name-link\" target=\"_self\" href=\"https://forums.autodesk.com/t5/user/viewprofilepage/user-id/5568949\" style=\"box-sizing: border-box; color: #000000; text-decoration-line: none;\"><span class=\"\" style=\"box-sizing: border-box; font-family: Artifakt, sans-serif; font-size: 16px; border-bottom: 1px solid black;\">A__B</span></a></span></div>\r\n         </div>\r\n      </div>\r\n   <div class=\"lia-quilt-column lia-quilt-column-06 lia-quilt-column-right lia-quilt-column-header-right\" style=\"box-sizing: border-box; position: relative; min-height: 1px; padding-left: 15px; padding-right: 0px; float: left; width: 222.5px;\">\r\n      <div class=\"lia-quilt-column-alley lia-quilt-column-alley-right\" style=\"box-sizing: border-box; text-align: right;\">\r\n         <div title=\"Posted on\" class=\"lia-message-post-date lia-component-post-date lia-component-message-view-widget-post-date\" style=\"box-sizing: border-box; white-space: nowrap; color: #747474; display: inline-block; margin-right: 6px;\"><span class=\"DateTime\" style=\"box-sizing: border-box;\"><span class=\"local-date\" style=\"box-sizing: border-box;\">‎09-15-2020</span>&nbsp;<span class=\"local-time\" style=\"box-sizing: border-box;\">10:16 AM</span></span></div>\r\n         &nbsp;\r\n         <div class=\"lia-menu-navigation-wrapper lia-menu-action lia-component-message-view-widget-action-menu\" id=\"actionMenuDropDown_1\" style=\"box-sizing: border-box; position: relative; display: inline-block; right: 0px; top: 0px;\">\r\n            <div class=\"lia-menu-navigation\" style=\"box-sizing: border-box;\">\r\n               <div class=\"dropdown-default-item\" style=\"box-sizing: border-box;\"><a title=\"Show option menu\" class=\"lia-js-menu-opener default-menu-option lia-js-click-menu lia-link-navigation\" aria-expanded=\"false\" role=\"button\" aria-label=\"Show option menu\" id=\"dropDownLink_1\" href=\"https://forums.autodesk.com/t5/eagle-forum/how-to-add-a-no-connection-label-to-an-eagle-schematic/td-p/9746955#\" style=\"box-sizing: border-box; background-color: #ffffff; color: #000000; text-decoration-line: none; cursor: pointer; display: inline-block; margin-bottom: 0px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 0px; line-height: 0; font-family: a; text-align: center; vertical-align: middle; touch-action: manipulation; background-image: none; white-space: nowrap; padding: 6px; border-radius: 2px; user-select: none; min-width: 0px; text-shadow: none; text-transform: uppercase; opacity: 1; box-shadow: none; border: 1px solid rgb(0, 0, 0) !important;\" target=\"_blank\"></a>\r\n                  <div class=\"dropdown-positioning\" style=\"box-sizing: border-box;\">\r\n                     <div class=\"dropdown-positioning-static\" style=\"box-sizing: border-box;\">&nbsp;</div>\r\n                     </div>\r\n                  </div>\r\n               </div>\r\n            </div>\r\n         </div>\r\n      </div>\r\n   </div>\r\n<div class=\"lia-quilt-row lia-quilt-row-main\" style=\"box-sizing: border-box; margin: auto; max-width: 1280px;\">\r\n   <div class=\"lia-quilt-column lia-quilt-column-24 lia-quilt-column-single lia-quilt-column-main-left\" style=\"box-sizing: border-box; position: relative; min-height: 1px; padding-left: 0px; padding-right: 0px; float: left; width: 890px;\">\r\n      <div class=\"lia-quilt-column-alley lia-quilt-column-alley-single\" style=\"box-sizing: border-box; padding: 0px;\">\r\n         <div class=\"lia-message-subject lia-component-message-view-widget-subject\" style=\"box-sizing: border-box; word-break: break-word; overflow-wrap: break-word; color: #212121; font-size: 26px; line-height: 1.2; margin-bottom: 0px;\">\r\n            <div class=\"MessageSubject\" style=\"box-sizing: border-box;\">\r\n               <div class=\"MessageSubjectIcons \" style=\"box-sizing: border-box; display: inline;\">\r\n                  <h2 class=\"message-subject\" style=\"box-sizing: border-box; font-family: inherit; font-weight: normal; line-height: 1.33333; margin: 0px; font-size: 13px; word-break: break-word; overflow-wrap: break-word; display: inline;\"><span class=\"lia-message-unread lia-message-unread-windows\" style=\"box-sizing: border-box;\"></span></h2>\r\n                  <span class=\"lia-img-message-has-attachment lia-fa-message lia-fa-has lia-fa-attachment lia-fa\" title=\"Contains an attachment\" alt=\"Message contains an attachment\" aria-label=\"Contains an attachment\" role=\"img\" id=\"display_5\" style=\"box-sizing: border-box; display: inline-block; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 20px; line-height: 1; font-family: FontAwesome; text-rendering: auto; -webkit-font-smoothing: antialiased; transform: translate(0px, 0px); color: #000000;\"></span></div>\r\n               </div>\r\n            </div>\r\n         <div itemprop=\"text\" id=\"bodyDisplay_0\" class=\"lia-message-body lia-component-message-view-widget-body lia-component-body-signature-highlight-escalation lia-component-message-view-widget-body-signature-highlight-escalation\" style=\"box-sizing: border-box; word-break: break-word; overflow-wrap: break-word; font-size: 16px; line-height: 1.71429; overflow: auto; margin-bottom: 0px;\">\r\n            <div class=\"lia-message-body-content\" style=\"box-sizing: border-box; word-break: break-word; overflow-wrap: break-word; font-size: 14px; line-height: normal; margin-bottom: 0px; overflow: hidden;\">\r\n               <p style=\"box-sizing: border-box;\">Hello Aaron,<br style=\"box-sizing: border-box;\" /><br style=\"box-sizing: border-box;\" />I hope this message finds you well. Typically, NC pins are defined in the symbol in the library. If you want to mark a pin on the schematic without defining it in the library, then you should make a device in the library with a symbol that is your no-connect marker. Since it won\'t need a footprint make sure to assign it an attribute of _EXTERNAL_. Now, when you want a pin to be a no-connect just add your marker and connect to it.<br style=\"box-sizing: border-box;\" /><br style=\"box-sizing: border-box;\" />As far as EAGLE is concerned the error will disappear because technically the pin has been connected to a component. I\'ve attached a library that you can use for this purpose. Make sure to unzip the file to get the library.<br style=\"box-sizing: border-box;\" /><br style=\"box-sizing: border-box;\" />Let me know if there\'s anything else I can do for you.<br style=\"box-sizing: border-box;\" /><br style=\"box-sizing: border-box;\" />Best Regards,</p>\r\n               <div class=\"UserSignature lia-message-signature\" style=\"box-sizing: border-box; border-top: 1px solid rgb(204, 204, 204); padding-top: 5px; margin-top: 5px;\"><img src=\"https://damassets.autodesk.net/content/dam/autodesk/logos/autodesk-logo-primary-rgb-black-small_forum.png\" style=\"box-sizing: border-box; border: 0px; vertical-align: middle; display: inline; max-width: 100%; height: auto;\" /><br style=\"box-sizing: border-box;\" /><br style=\"box-sizing: border-box;\" /><font size=\"-1\" style=\"box-sizing: border-box;\">Jorge Garcia<br style=\"box-sizing: border-box;\" />Product Support Specialist for Fusion 360 and EAGLE<br style=\"box-sizing: border-box;\" /><br style=\"box-sizing: border-box;\" /><i style=\"box-sizing: border-box;\">Kudos are much appreciated if the information I have shared is helpful to you and/or others.<br style=\"box-sizing: border-box;\" /><br style=\"box-sizing: border-box;\" />Did this resolve your issue? Please accept it \"As a Solution\" so others may benefit from it.</i></font></div>\r\n               </div>\r\n            </div>\r\n         <div class=\"Attachments lia-attachments-message lia-message-attachments lia-component-attachments lia-component-message-view-widget-attachments-search-and-message\" id=\"attachments_0_0\" style=\"box-sizing: border-box; margin-bottom: 40px; margin-top: 10px; flex-wrap: wrap; color: #3e3e3e; font-weight: bold; padding-top: 10px;\">\r\n            <div class=\"lia-attachment lia-attachment-container attachment-1 lia-attachment-row\" style=\"box-sizing: border-box; font-size: 16px; line-height: 1.71429; display: inline-flex; margin-bottom: 5px; margin-right: 10px; max-width: 100%;\">\r\n               <div class=\"lia-attachment-row-element lia-attachment-icon-container\" style=\"box-sizing: border-box; display: inline-flex; background-color: #f4f4f4; min-height: 45px; padding: 4px 0px 4px 10px; border-radius: 3px 0px 0px 3px;\"><span class=\"lia-img-icon-attachment lia-fa-icon lia-fa-attachment lia-fa\" title=\"Attachment\" alt=\"Attachment\" aria-label=\"Attachment\" role=\"img\" id=\"display_2\" style=\"box-sizing: border-box; display: inline-block; font-variant-numeric: normal; font-variant-east-asian: normal; font-weight: normal; font-stretch: normal; line-height: 1; font-family: FontAwesome; text-rendering: auto; -webkit-font-smoothing: antialiased; transform: translate(0px, 0px); color: #000000; padding-right: 0.14em;\"></span></div>\r\n               <div class=\"lia-attachment-row-element lia-message-attachment-link-row-element\" style=\"box-sizing: border-box; display: inline-flex; background-color: #f4f4f4; min-height: 45px; padding: 4px 10px 4px 0px; border-radius: 0px 3px 3px 0px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: calc(100% - 42px); vertical-align: middle;\"><span class=\"lia-link-navigation lia-attachment-link-disabled lia-link-disabled\" id=\"link_14\" style=\"box-sizing: border-box;\">NC_MARKER.zip</span></div>\r\n               <div class=\"lia-attachment-row-element lia-media-document\" style=\"box-sizing: border-box; display: inline-flex; background-color: #f4f4f4; min-height: 45px; padding: 4px 10px; align-items: center; margin-left: 1px; border-radius: 3px; left: 0px; position: relative; width: auto;\"><a class=\"lia-link-navigation\" download=\"\" id=\"link_15\" href=\"https://forums.autodesk.com/autodesk/attachments/autodesk/3500/31300/1/NC_MARKER.zip\" style=\"box-sizing: border-box; background-color: transparent; color: #000000; text-decoration-line: none;\" target=\"_blank\"><span class=\"lia-img-icon-download lia-fa-icon lia-fa-download lia-fa\" title=\"Download attachment\" alt=\"Download this attachment\" aria-label=\"Download attachment\" role=\"img\" id=\"display_3\" style=\"box-sizing: border-box; display: inline-block; font-variant-numeric: normal; font-variant-east-asian: normal; font-weight: normal; font-stretch: normal; line-height: 1; font-family: FontAwesome; text-rendering: auto; -webkit-font-smoothing: antialiased; transform: translate(0px, 0px); width: 16px;\"></span></a></div>\r\n               </div>\r\n            </div>\r\n         <div class=\"custom-add-tag\" style=\"box-sizing: border-box; display: flex; flex-direction: row; justify-content: space-between;\">\r\n            <div class=\"lia-panel lia-panel-standard MessageTagsTaplet Chrome lia-component-message-view-widget-tags\" style=\"box-sizing: border-box; box-shadow: none; border: 0px; border-radius: 3px; margin-bottom: 27px; position: relative; width: 712px;\">\r\n               <div class=\"lia-decoration-border\" style=\"box-sizing: border-box;\">\r\n                  <div class=\"lia-decoration-border-top\" style=\"box-sizing: border-box;\">\r\n                     <div style=\"box-sizing: border-box;\">&nbsp;</div>\r\n                     </div>\r\n                  <div class=\"lia-decoration-border-content\" style=\"box-sizing: border-box; padding-top: 7px;\">\r\n                     <div style=\"box-sizing: border-box;\">\r\n                        <div class=\"lia-panel-heading-bar-wrapper\" style=\"box-sizing: border-box;\">\r\n                           <div class=\"lia-panel-heading-bar\" style=\"box-sizing: border-box; border-top-right-radius: 2px; border-top-left-radius: 2px; border-bottom: 0px; border-top-color: #d1d1d1; border-right-color: #d1d1d1; border-left-color: #d1d1d1; color: #212121; padding: 0px;\"><span aria-level=\"3\" role=\"heading\" class=\"lia-panel-heading-bar-title\" style=\"box-sizing: border-box; word-break: break-word; overflow-wrap: break-word; color: inherit; font-size: 20px; margin-bottom: 0px; margin-top: 0px; line-height: 1.2;\">Tags&nbsp;<span class=\"lia-panel-heading-bar-count\" style=\"box-sizing: border-box; font-size: 16px;\">(2)</span></span></div>\r\n                           </div>\r\n                        <div class=\"lia-panel-content-wrapper\" style=\"box-sizing: border-box;\">\r\n                           <div class=\"lia-panel-content\" style=\"box-sizing: border-box; max-width: 100%; height: auto; padding: 10px 20px 20px 0px;\">\r\n                              <div id=\"taglist\" class=\"TagList lia-message-tags\" style=\"box-sizing: border-box; margin-bottom: 0px; display: inline-flex; padding-bottom: 15px;\">\r\n                                 <ul role=\"list\" id=\"list\" class=\"lia-list-standard-inline\" aria-label=\"Tags\" style=\"box-sizing: border-box; margin-top: 0px; margin-bottom: 0px; padding-left: 0px; list-style: none; margin-left: -5px; color: #212121; font-family: ArtifaktElement, Arial, sans-serif; font-size: 16px; background-color: #fef3e3;\">\r\n                                    <li aria-hidden=\"true\" style=\"box-sizing: border-box; display: inline-block; padding-left: 5px; padding-right: 2px; margin-right: 0px; padding-bottom: 0px; color: #000000; font-family: Artifakt, sans-serif;\">Tags:</li>\r\n                                    <li class=\"tag-11054 lia-tag-list-item\" style=\"box-sizing: border-box; color: #000000; margin-bottom: 0px; margin-right: 0px; display: inline-block; padding-left: 5px; padding-right: 2px; padding-bottom: 0px;\"><a class=\"lia-link-navigation lia-tag tag tag-11054 lia-js-data-tagUid-11054\" rel=\"tag\" id=\"link_16\" href=\"https://forums.autodesk.com/t5/tag/libraries/tg-p/board-id/3500\" style=\"box-sizing: border-box; background-color: transparent; color: #000000; text-decoration-line: none; line-height: 1.7; float: none; font-family: Artifakt, sans-serif;\" target=\"_blank\">libraries</a></li>\r\n                                    <li class=\"tag-209706 lia-tag-list-item\" style=\"box-sizing: border-box; color: #000000; margin-bottom: 0px; margin-right: 0px; display: inline-block; padding-left: 5px; padding-right: 2px; padding-bottom: 0px;\"><a class=\"lia-link-navigation lia-tag tag tag-209706 lia-js-data-tagUid-209706\" rel=\"tag\" id=\"link_17\" href=\"https://forums.autodesk.com/t5/tag/NoConnect/tg-p/board-id/3500\" style=\"box-sizing: border-box; background-color: transparent; color: #000000; text-decoration-line: none; line-height: 1.7; float: none; font-family: Artifakt, sans-serif;\" target=\"_blank\">NoConnect</a></li>\r\n                                    <li class=\"tag-209706 lia-tag-list-item\" style=\"box-sizing: border-box; color: #000000; margin-bottom: 0px; margin-right: 0px; display: inline-block; padding-left: 5px; padding-right: 2px; padding-bottom: 0px;\">\r\n                                       <p><br /></p>\r\n                                       </li>\r\n                                    </ul>\r\n                                 </div>\r\n                              </div>\r\n                           </div>\r\n                        </div>\r\n                     </div>\r\n                  </div>\r\n               </div>\r\n            </div>\r\n         </div>\r\n      </div>\r\n   </div>','https://forums.autodesk.com/t5/eagle-forum/how-to-add-a-no-connection-label-to-an-eagle-schematic/td-p/9746955','',0,0,1,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2022-02-06 10:07:48',1,'2022-02-06 10:07:48','112.222.138.204','','','','','','','','','','','',''),(520,-520,'',520,0,0,'','','html1','[ETC] 앱인벤터 토스트 메시지 기능을 위한 익스텐션 툴','<p style=\"padding: 0px; font-family: sans-serif; font-size: 16.002px; background-color: #ffffff;\"><span _foo=\"font-size: 11pt;\" style=\"font-size: 11pt; line-height: 22px !important;\">일반적으로 앱들 중에서 종료방법으로 가장 많이 사용하는 방법이 두번 눌러 종료하는 기능입니다.(라고 생각해요)&nbsp;</span><span _foo=\"font-size: 11pt;\" style=\"font-size: 11pt; line-height: 22px !important;\">그래서 앱인벤터에서는 이 기능을 사용할 수 없느냐? 전혀 아닙니다.</span></p>\r\n<p style=\"padding: 0px; font-family: sans-serif; font-size: 16.002px; background-color: #ffffff;\"><br /></p>\r\n<p style=\"padding: 0px; font-family: sans-serif; font-size: 16.002px; background-color: #ffffff;\"><span _foo=\"font-size: 11pt;\" style=\"font-size: 11pt; line-height: 22px !important;\">제가 구현한 두번눌러 종료 기능은 이렇습니다.</span></p>\r\n<p _foo=\"text-align: left;\" align=\"left\" style=\"padding: 0px; font-family: sans-serif; font-size: 16.002px; background-color: #ffffff;\"><span class=\"_img  fx\" thumburl=\"https://mblogthumb-phinf.pstatic.net/MjAxNzExMjVfMTg0/MDAxNTExNjIxODMxODQw.NZVyxwFsUjkDyzJjS3S1jaaTaUo4nhFNTtpp5TfsubEg.RWNvPyaVwq-ry3MXCV9TUlZCqMkZP7zJUSQ0PeITbyIg.PNG.jehongjeon/%EB%91%90%EB%B2%88%EB%88%8C%EB%9F%AC_%EC%A2%85%EB%A3%8C_%28%EA%B0%9C%EC%84%A0%EB%90%9C_%EB%B2%84%EC%A0%84%29.png?type=\" style=\"max-width: 100%;\"><img src=\"https://mblogthumb-phinf.pstatic.net/MjAxNzExMjVfMTg0/MDAxNTExNjIxODMxODQw.NZVyxwFsUjkDyzJjS3S1jaaTaUo4nhFNTtpp5TfsubEg.RWNvPyaVwq-ry3MXCV9TUlZCqMkZP7zJUSQ0PeITbyIg.PNG.jehongjeon/%EB%91%90%EB%B2%88%EB%88%8C%EB%9F%AC_%EC%A2%85%EB%A3%8C_%28%EA%B0%9C%EC%84%A0%EB%90%9C_%EB%B2%84%EC%A0%84%29.png?type=w2\" largesrc=\"javascript:location.href=\'https://mblogthumb-phinf.pstatic.net/MjAxNzExMjVfMTg0/MDAxNTExNjIxODMxODQw.NZVyxwFsUjkDyzJjS3S1jaaTaUo4nhFNTtpp5TfsubEg.RWNvPyaVwq-ry3MXCV9TUlZCqMkZP7zJUSQ0PeITbyIg.PNG.jehongjeon/%EB%91%90%EB%B2%88%EB%88%8C%EB%9F%AC_%EC%A2%85%EB%A3%8C_%28%EA%B0%9C%EC%84%A0%EB%90%9C_%EB%B2%84%EC%A0%84%29.png?type=w2\'\" id=\"img_4\" data-top=\"557.921875\" style=\"border: 0px; vertical-align: top; max-width: 100%;\" /></span>&nbsp;</p>\r\n<p _foo=\"text-align: left;\" align=\"left\" style=\"padding: 0px; font-family: sans-serif; font-size: 16.002px; background-color: #ffffff;\"><span _foo=\"font-size: 11pt;\" style=\"font-size: 11pt; line-height: 22px !important;\">알고리즘을 분석하자면 뒤로가기 버튼을 누르면 텍스트 메세지가 뜨고 그상태에서(일정한 시간 내로) 뒤로가기 버튼을 한번 더 누르면 \'종료\'되도록 만드는것이 목표입니다. 다시말해, 일정한 시간내로 버튼을 한번 더 누르면 종료, 그렇지 않으면 취소가 되어야 합니다.</span></p>\r\n<p style=\"padding: 0px; font-family: sans-serif; font-size: 16.002px; background-color: #ffffff;\"><br /></p>\r\n<p style=\"padding: 0px; font-family: sans-serif; font-size: 16.002px; background-color: #ffffff;\"><span _foo=\"font-size: 11pt;\" style=\"font-size: 11pt; line-height: 22px !important;\">그렇다면 간단히 구상해보자면... 타이머를 이용해서 뒤로가기가 시작된 시점으로부터 일정한 시간을 기다립니다. 일정 시간이 되면 뒤로가기 버튼을 누른 횟수를 0으로 초기화해줍니다. 그리고 뒤로가기 버튼을 누를때마다 뒤로가기 버튼을 누른 횟수를 1씩 증가시켜줍니다.</span></p>\r\n<p style=\"padding: 0px; font-family: sans-serif; font-size: 16.002px; background-color: #ffffff;\"><span _foo=\"font-size: 11pt;\" style=\"font-size: 11pt; line-height: 22px !important;\">여기서 뒤로가기 버튼을 눌렀을 때 누른 횟수가 1번이라면 텍스트메세지를, 2번이라면 종료기능을 실행하면 됩니다.</span></p>\r\n<p style=\"padding: 0px; font-family: sans-serif; font-size: 16.002px; background-color: #ffffff;\"><span _foo=\"font-size: 11pt;\" style=\"font-size: 11pt; line-height: 22px !important;\">이렇게 구성한다면 일정한 시간 내로 뒤로가기를 누른 횟수가 2번 이상이면 종료가 되겠죠. 저는 여기서 추가로 뒤로가기 버튼을&nbsp; 한번만 누른 상태에서 횟수를 0으로 초기화 한 후 타이머가 계속 돌아가는것을 방지하여 타이머가 돌아갈 때 횟수가 0이라면 타이머가 꺼지도록 구현하였습니다. 타이머 켜는건 뒤로가기버튼을 눌렀을때 동작하도록 하면 되니까요.</span></p>','https://community.thunkable.com/t/free-simple-tools-extension/3724','https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=jehongjeon&logNo=221148565835',0,0,2,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2022-02-06 19:17:20',1,'2022-02-06 19:17:20','192.168.219.101','','','','','','','','','','','',''),(521,-521,'',521,0,0,'','','html1','[Arduino] ESP8266 / ESP32 - time.h 라이브러리 이용 시간 출력 및 NTP 서버 시간 동기화 하기','<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">ESP32 / ESP8266 아두이노 IDE 코어의 기본 라이브러리 time.h를 이용하여 NTP 서버와 시간 동기화를 시키고 각 시간 및 날짜, 요일 값을 각각 지정 변수에 저장시켜 크리스털 LCD나 기타 디스플레이 모듈에 출력할 수 있도록 하고, 필요시 사용자가 특정 시간으로 변경할 수 있도록 코드를 수정해 보자.&nbsp;&nbsp;</p>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">&nbsp;</p>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">1. ESP32</p>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">아두이노 IDE에서 파일 -&gt; 예제 -&gt; ESP32 -&gt; Time -&gt; SimpleTime를 실행한다.&nbsp;</p>\r\n<figure class=\"imageblock alignCenter\" data-filename=\"esp32_simpletime.png\" data-origin-width=\"0\" data-origin-height=\"0\" style=\"margin: 0px auto 20px; max-width: 100%; clear: both; display: table; position: relative; text-align: center; font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\"><span data-url=\"https://blog.kakaocdn.net/dn/yNslK/btqzkDEX8NW/W6zdlC16kX1qJxKd9G3ms0/img.png\" data-lightbox=\"lightbox\" data-alt=\"\" style=\"box-sizing: border-box; cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/yNslK/btqzkDEX8NW/W6zdlC16kX1qJxKd9G3ms0/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyNslK%2FbtqzkDEX8NW%2FW6zdlC16kX1qJxKd9G3ms0%2Fimg.png\" data-filename=\"esp32_simpletime.png\" data-origin-width=\"0\" data-origin-height=\"0\" style=\"border: 0px; max-width: 100%; display: inline-block; width: 734px; margin: 0px; height: auto;\" /></span></figure>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">아래 코드는 기본 예제의 변수 const long&nbsp;&nbsp;gmtOffset_sec = 3600;과 const int&nbsp;&nbsp;&nbsp;daylightOffset_sec = 3600;를 timezone과 summertime 변수로 변경하고 단순화시킨 코드이다.</p>\r\n<figure class=\"fileblock\" data-ke-align=\"alignCenter\" style=\"margin: 28px auto 20px; max-width: 100%; clear: both; width: 470px; height: 71px; border: 1px solid rgb(233, 233, 233); position: relative; border-radius: 1px; font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\"><a href=\"https://blog.kakaocdn.net/dn/cyAQ1R/btqzmkqwIEH/fEpzWVgWlhqA8ECgU5tjck/ESP32_SimpleTime_example.ino?attach=1&amp;knm=tfile.ino\" class=\"\" style=\"color: #000000; text-decoration-line: none; transition: all 0.3s ease 0s; display: block; height: 71px;\" target=\"_blank\">\r\n      <div class=\"image\" style=\"box-sizing: border-box; position: absolute; left: 0px; top: 0px; width: 30px; height: 30px; background-image: url(&quot;https://t1.daumcdn.net/tistory_admin/static/manage/post-editor/img_editor_content.svg&quot;); background-position: 0px 0px; margin: 21px 17px 20px 22px;\">&nbsp;</div>\r\n      <div class=\"desc\" style=\"box-sizing: border-box; position: absolute; inset: 0px 60px 0px 70px;\">\r\n         <div class=\"filename\" style=\"box-sizing: border-box; color: #333333; font-size: 14px; text-overflow: ellipsis; height: 20px; margin: 17px 0px 0px;\"><span class=\"name\" style=\"box-sizing: border-box; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 272px; height: 20px; display: block;\">ESP32_SimpleTime_example.ino</span></div>\r\n         <div class=\"size\" style=\"box-sizing: border-box; font-family: &quot;Avenir Next&quot;, sans-serif; font-size: 12px; color: #777777; height: 16px; margin: 2px 0px 0px;\">0.00MB</div>\r\n         </div>\r\n      </a></figure>\r\n<pre id=\"code_1572237388495\" class=\"c++ cpp arduino\" data-ke-language=\"c++\" data-ke-type=\"codeblock\" style=\"overflow: auto hidden; padding: 10px; margin-top: 5px; margin-bottom: 5px; max-width: 100%; border: 1px solid rgb(221, 221, 221); font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; line-height: 21.6px; font-family: &quot;Lucida Console&quot;; background-color: #fafafa; border-radius: 3px;\">\r\n   <code class=\"hljs cpp\" style=\"border: 1px solid rgb(238, 238, 238); background: rgb(40, 44, 52); color: #abb2bf; border-radius: 5px; padding: 0.5em; margin: 3px 0px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 17px; line-height: 1.3em; font-family: D2Coding, monospace; display: block; overflow-x: auto;\"><span class=\"hljs-meta\" style=\"box-sizing: border-box; color: #61aeee;\">#<span class=\"hljs-meta-keyword\" style=\"box-sizing: border-box;\">include</span><span class=\"hljs-meta-string\" style=\"box-sizing: border-box; color: #98c379;\">&lt;WiFi.h&gt;</span></span><span class=\"hljs-meta\" style=\"box-sizing: border-box; color: #61aeee;\">#<span class=\"hljs-meta-keyword\" style=\"box-sizing: border-box;\">include</span><span class=\"hljs-meta-string\" style=\"box-sizing: border-box; color: #98c379;\">\"time.h\"</span></span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">const</span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">char</span>* ssid       = <span class=\"hljs-string\" style=\"box-sizing: border-box; color: #98c379;\">\"YOUR_SSID\"</span>;\r\n<span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">const</span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">char</span>* password   = <span class=\"hljs-string\" style=\"box-sizing: border-box; color: #98c379;\">\"YOUR_PASS\"</span>;\r\n<span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">const</span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">char</span>* ntpServer = <span class=\"hljs-string\" style=\"box-sizing: border-box; color: #98c379;\">\"pool.ntp.org\"</span>;\r\n<span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">uint8_t</span> timeZone = <span class=\"hljs-number\" style=\"box-sizing: border-box; color: #d19a66;\">9</span>;\r\n<span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">uint8_t</span> summerTime = <span class=\"hljs-number\" style=\"box-sizing: border-box; color: #d19a66;\">0</span>; <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 3600</span><span class=\"hljs-function\" style=\"box-sizing: border-box; color: #61aeee;\"><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">void</span><span class=\"hljs-title\" style=\"box-sizing: border-box;\">printLocalTime</span><span class=\"hljs-params\" style=\"box-sizing: border-box; color: #a6e22e;\">()</span></span>{\r\n  <span class=\"hljs-class\" style=\"box-sizing: border-box;\"><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">struct</span><span class=\"hljs-title\" style=\"box-sizing: border-box; color: #e6c07b;\">tm</span><span class=\"hljs-title\" style=\"box-sizing: border-box; color: #e6c07b;\">timeinfo</span>;</span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">if</span>(!getLocalTime(&amp;timeinfo)){\r\n    Serial.println(<span class=\"hljs-string\" style=\"box-sizing: border-box; color: #98c379;\">\"Failed to obtain time\"</span>);\r\n    <span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">return</span>;\r\n  }\r\n  Serial.println(&amp;timeinfo, <span class=\"hljs-string\" style=\"box-sizing: border-box; color: #98c379;\">\"%A, %B %d %Y %H:%M:%S\"</span>);\r\n}\r\n<span class=\"hljs-function\" style=\"box-sizing: border-box; color: #61aeee;\"><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">void</span><span class=\"hljs-title\" style=\"box-sizing: border-box;\">setup</span><span class=\"hljs-params\" style=\"box-sizing: border-box; color: #a6e22e;\">()</span></span>{\r\n  Serial.begin(<span class=\"hljs-number\" style=\"box-sizing: border-box; color: #d19a66;\">115200</span>);\r\n  Serial.<span class=\"hljs-built_in\" style=\"box-sizing: border-box; color: #e6c07b;\">printf</span>(<span class=\"hljs-string\" style=\"box-sizing: border-box; color: #98c379;\">\"Connecting to %s \"</span>, ssid);  <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">//connect to WiFi</span>\r\n  WiFi.begin(ssid, password);\r\n  <span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">while</span> (WiFi.status() != WL_CONNECTED) {\r\n      delay(<span class=\"hljs-number\" style=\"box-sizing: border-box; color: #d19a66;\">500</span>);\r\n      Serial.print(<span class=\"hljs-string\" style=\"box-sizing: border-box; color: #98c379;\">\".\"</span>);\r\n  }\r\n  Serial.println(<span class=\"hljs-string\" style=\"box-sizing: border-box; color: #98c379;\">\" CONNECTED\"</span>);\r\n  configTime(<span class=\"hljs-number\" style=\"box-sizing: border-box; color: #d19a66;\">3600</span> * timeZone, <span class=\"hljs-number\" style=\"box-sizing: border-box; color: #d19a66;\">3600</span> * summerTime, ntpServer); <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">//init and get the time</span>\r\n  printLocalTime();\r\n  WiFi.disconnect(<span class=\"hljs-literal\" style=\"box-sizing: border-box; color: #56b6c2;\">true</span>);  <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">//disconnect WiFi as it\'s no longer needed</span>\r\n  WiFi.mode(WIFI_OFF);\r\n}\r\n<span class=\"hljs-function\" style=\"box-sizing: border-box; color: #61aeee;\"><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">void</span><span class=\"hljs-title\" style=\"box-sizing: border-box;\">loop</span><span class=\"hljs-params\" style=\"box-sizing: border-box; color: #a6e22e;\">()</span></span>{\r\n  delay(<span class=\"hljs-number\" style=\"box-sizing: border-box; color: #d19a66;\">1000</span>);\r\n  printLocalTime();\r\n}</code>\r\n   </pre>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">상기 스케치에 사용 중인 와이파이 공유기의 SSID와 비밀번호를 입력해주고 아두이노에 업로드해준다.&nbsp; &nbsp;</p>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">const&nbsp;char*&nbsp;ssid&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;\"YOUR_SSID\";&nbsp;&nbsp;//&nbsp;공유기&nbsp;wifi&nbsp;접속&nbsp;ID&nbsp;<br />const&nbsp;char*&nbsp;password&nbsp;&nbsp;&nbsp;=&nbsp;\"YOUR_PASS\";&nbsp;&nbsp;//&nbsp;비밀번호</p>\r\n<figure class=\"imageblock alignCenter\" data-filename=\"esp32_simpletime_monitor.jpg\" width=\"600\" data-origin-width=\"0\" data-origin-height=\"0\" style=\"margin: 0px auto 20px; max-width: 100%; clear: both; display: table; position: relative; text-align: center; font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\"><span data-url=\"https://blog.kakaocdn.net/dn/moveU/btqzBr3wHkG/OZNXvEPoJ49NwDaRCkUnL0/img.jpg\" data-lightbox=\"lightbox\" data-alt=\"\" style=\"box-sizing: border-box; cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/moveU/btqzBr3wHkG/OZNXvEPoJ49NwDaRCkUnL0/img.jpg\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmoveU%2FbtqzBr3wHkG%2FOZNXvEPoJ49NwDaRCkUnL0%2Fimg.jpg\" data-filename=\"esp32_simpletime_monitor.jpg\" width=\"600\" data-origin-width=\"0\" data-origin-height=\"0\" style=\"border: 0px; max-width: 100%; display: inline-block; margin: 0px; height: auto;\" /></span></figure>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">와이파이가 연결되면 NTP 서버와 동기화가 되고 현재 시간이 시리얼 모니터에 출력된다.&nbsp;</p>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">&nbsp;</p>\r\n<div style=\"box-sizing: border-box; font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1; position: relative; text-align: center; overflow: hidden; margin: auto;\"><ins class=\"adsbygoogle\" data-ad-layout=\"in-article\" data-ad-format=\"fluid\" data-ad-client=\"ca-pub-8269928309278636\" data-ad-slot=\"7589244047\" data-adsbygoogle-status=\"done\" data-ad-status=\"filled\" style=\"display: block; height: 200px;\"><ins id=\"aswift_2_expand\" tabindex=\"0\" title=\"Advertisement\" aria-label=\"Advertisement\" style=\"border: none; height: 200px; width: 879px; margin: 0px; padding: 0px; position: relative; visibility: visible; background-color: transparent; display: inline-table;\"><ins id=\"aswift_2_anchor\" style=\"border: none; height: 200px; width: 879px; margin: 0px; padding: 0px; position: relative; visibility: visible; background-color: transparent; display: block;\"><iframe id=\"aswift_2\" name=\"aswift_2\" sandbox=\"allow-forms allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-top-navigation-by-user-activation\" width=\"879\" height=\"200\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" vspace=\"0\" hspace=\"0\" allowtransparency=\"true\" scrolling=\"no\" allowfullscreen=\"true\" src=\"https://googleads.g.doubleclick.net/pagead/ads?client=ca-pub-8269928309278636&amp;output=html&amp;h=200&amp;slotname=7589244047&amp;adk=3278490821&amp;adf=1597229448&amp;pi=t.ma~as.7589244047&amp;w=879&amp;fwrn=4&amp;lmt=1644158347&amp;rafmt=11&amp;psa=1&amp;format=879x200&amp;url=https%3A%2F%2Fpostpop.tistory.com%2F84&amp;flash=0&amp;host=ca-host-pub-9691043933427338&amp;wgl=1&amp;uach=WyJXaW5kb3dzIiwiMTAuMC4wIiwieDg2IiwiIiwiOTcuMC40NjkyLjk5IixbXSxudWxsLG51bGwsIjY0IixbXV0.&amp;dt=1644158347655&amp;bpp=2&amp;bdt=330&amp;idt=330&amp;shv=r20220201&amp;mjsv=m202202010101&amp;ptt=9&amp;saldr=aa&amp;abxe=1&amp;cookie=ID%3Dc94963fbc3dd591a-22cdf34e8acf0086%3AT%3D1640687636%3ART%3D1640687636%3AS%3DALNI_MZda89KtmEfIh3gOEJUkRlNH2OqzA&amp;prev_fmts=0x0%2C300x250&amp;nras=1&amp;correlator=172299372712&amp;frm=20&amp;pv=1&amp;ga_vid=264079735.1644149952&amp;ga_sid=1644158348&amp;ga_hid=1429941644&amp;ga_fc=1&amp;rplot=4&amp;u_tz=540&amp;u_his=7&amp;u_h=1440&amp;u_w=2560&amp;u_ah=1400&amp;u_aw=2560&amp;u_cd=24&amp;u_sd=1&amp;dmc=8&amp;adx=336&amp;ady=2456&amp;biw=1261&amp;bih=1287&amp;scr_x=0&amp;scr_y=0&amp;eid=42531397%2C21067496&amp;oid=2&amp;pvsid=3686389943869056&amp;pem=365&amp;tmod=1090502502&amp;uas=0&amp;nvt=1&amp;ref=https%3A%2F%2Fwww.google.com%2F&amp;eae=0&amp;fc=1920&amp;brdim=-7%2C0%2C-7%2C0%2C2560%2C0%2C1294%2C1407%2C1278%2C1287&amp;vis=1&amp;rsz=%7C%7CeoEbr%7C&amp;abl=CS&amp;pfx=0&amp;fu=128&amp;bc=31&amp;ifi=3&amp;uci=a!3&amp;btvi=1&amp;fsb=1&amp;xpc=21Si8JoaFX&amp;p=https%3A//postpop.tistory.com&amp;dtd=334\" data-google-container-id=\"a!3\" data-google-query-id=\"CMqlmZKn6_UCFUmFvQod5AYB3Q\" data-load-complete=\"true\" style=\"max-width: 100%; left: 0px; position: absolute; top: 0px; border-width: 0px; border-style: initial; width: 879px; height: 200px;\"></iframe></ins></ins></ins></div>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">&nbsp;</p>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">코드 분석</p>\r\n<table border=\"1\" style=\"color: #000000; font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; width: 4799.28px; border-style: solid; border-color: #99cefa; background-color: #f6f9fd;\">\r\n   <tbody>\r\n      <tr>\r\n         <td style=\"width: 4777.28px; padding: 10px;\">\r\n            <p>configTime(3600 * timeZone, 3600 * summerTime, ntpServer); //init and get the time</p>\r\n            </td>\r\n         </tr>\r\n      </tbody>\r\n   </table>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">상기 코드는 NTP 서버에 연결하고 서버로부터&nbsp;유닉스 UTC 값을 수신하여 시간 값에 반영하고 time.h에 의해 시간 값(10자리&nbsp;UTC 값)은 매 1초마다 자동으로 증가한다(시계 작동 시작). NTP 서버로부터 값을 받지 못하면 시간 값은 1970년&nbsp; 1월 1일 09 : 00 : 00에서 증가하게 된다.&nbsp;</p>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">&nbsp;</p>\r\n<table border=\"1\" style=\"color: #000000; font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; width: 4799.28px; border-style: solid; border-color: #99cefa; background-color: #f6f9fd;\">\r\n   <tbody>\r\n      <tr>\r\n         <td style=\"width: 4777.28px; padding: 10px;\">\r\n            <p>void&nbsp;printLocalTime()&nbsp;{&nbsp;<br />&nbsp;&nbsp;struct tm timeinfo;&nbsp; // 구조체 변수 선언<br />&nbsp;&nbsp;if(!getLocalTime(&amp;timeinfo)){&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;Serial.println(\"Failed&nbsp;to&nbsp;obtain&nbsp;time\");&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;return;&nbsp;<br />&nbsp;&nbsp;}&nbsp;<br />&nbsp;&nbsp;Serial.println(&amp;timeinfo,&nbsp;\"%A,&nbsp;%B&nbsp;%d&nbsp;%Y&nbsp;%H:%M:%S\");&nbsp;<br />}</p>\r\n            </td>\r\n         </tr>\r\n      </tbody>\r\n   </table>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">상기 코드는 구조체 변수&nbsp;timeinfo를 선언하고&nbsp;UTC형식 시간 값을 로컬 시간으로 변경해주는 함수와 변경된 로컬 시간을 서식에 맞게 출력해주는 코드이다.</p>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</p>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">시간 출력이 서식에 맞게 잘되고 있다. 하지만 상기 코드로는 ESP32를 리셋시켜야만&nbsp;NTP 서버와 시간 동기화를 할 수 있어서 매일 1회 또는 정해진 시간마다 NTP 서버와 시간 동기화를 시킬 수가 없다.</p>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">또한, 크리스탈 LCD 등에 출력하기에는 서식 출력 코드를 사용하는데 제약이 있고 사용자 시간을 설정 역시 할 수 없다.</p>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">&nbsp;</p>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">원하는 시간에 NTP 서버와 시간 동기화를 할 수 있도록 사용자 함수 get_NTP() 함수를 만들어 주었다. 만약 어떠한 이유로 동기화가 되지 않는다면 약 5초 정도 시간 동기화 시도 후 사용자 시간 설정 set_time() 함수가 실행되어 미리 설정해둔 시간 값을 시작 값으로 하여 시계가 작동하게 된다.&nbsp;&nbsp;</p>\r\n<table border=\"1\" style=\"color: #000000; font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; width: 4799.28px; border-style: solid; border-color: #99cefa; background-color: #f6f9fd;\">\r\n   <tbody>\r\n      <tr>\r\n         <td style=\"width: 4777.28px; padding: 10px;\">\r\n            <p>void&nbsp;get_NTP()&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;NTP&nbsp;서버&nbsp;시간&nbsp;동기화&nbsp;&nbsp;<br />&nbsp;&nbsp;configTime(3600&nbsp;*&nbsp;timeZone,&nbsp;3600&nbsp;*&nbsp;summerTime,&nbsp;ntpServer);&nbsp;&nbsp;//&nbsp;NTP&nbsp;서버&nbsp;접속&nbsp;및&nbsp;동기화&nbsp;함수<br />&nbsp;&nbsp;while(!getLocalTime(&amp;timeinfo)){&nbsp;&nbsp;//&nbsp;로컬&nbsp;시간&nbsp;반영 함수의&nbsp;리턴&nbsp;값이&nbsp;false이면,&nbsp;시간 값없으면&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;Serial.println(\"Failed&nbsp;to&nbsp;obtain&nbsp;time\");&nbsp;&nbsp;//&nbsp;메시지&nbsp;표시&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;set_time();&nbsp;&nbsp;&nbsp;// set time&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 초기값으로 시간 설정&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;return;&nbsp;<br />&nbsp;&nbsp;}&nbsp;<br />}</p>\r\n            </td>\r\n         </tr>\r\n      </tbody>\r\n   </table>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">&nbsp;</p>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">시, 분, 초, 년, 월, 일에 해당하는 변수의 값을 변경하고 set_time() 사용자 함수를 실행하면 시계의 시간을 원하는 시간으로 변경할 수 있다.&nbsp;&nbsp;</p>\r\n<table border=\"1\" style=\"color: #000000; font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; width: 4799.28px; border-style: solid; border-color: #99cefa; background-color: #f6f9fd;\">\r\n   <tbody>\r\n      <tr>\r\n         <td style=\"width: 4777.28px; padding: 10px;\">\r\n            <p>void&nbsp;set_time()&nbsp;{&nbsp;&nbsp;&nbsp;//&nbsp;사용자&nbsp;시간&nbsp;설정&nbsp;함수&nbsp;<br />&nbsp;&nbsp;struct&nbsp;tm&nbsp;tm;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;사용자&nbsp;시간&nbsp;설정용&nbsp;구조체&nbsp;변수&nbsp;선언&nbsp;<br />&nbsp;&nbsp;tm.tm_year&nbsp;=&nbsp;s_yy&nbsp;-&nbsp;1900;&nbsp;&nbsp;<br />&nbsp;&nbsp;tm.tm_mon&nbsp;=&nbsp;s_MM&nbsp;-&nbsp;1;&nbsp;<br />&nbsp;&nbsp;tm.tm_mday&nbsp;=&nbsp;s_dd;&nbsp;<br />&nbsp;&nbsp;tm.tm_hour&nbsp;=&nbsp;s_hh;&nbsp;<br />&nbsp;&nbsp;tm.tm_min&nbsp;=&nbsp;s_mm;&nbsp;<br />&nbsp;&nbsp;tm.tm_sec&nbsp;=&nbsp;s_ss;&nbsp;<br />&nbsp;&nbsp;time_t&nbsp;t&nbsp;=&nbsp;mktime(&amp;tm);&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;UTC&nbsp;값으로&nbsp;변환&nbsp;<br />&nbsp;&nbsp;printf(\"Setting&nbsp;time:&nbsp;%s\",&nbsp;asctime(&amp;tm));&nbsp;//&nbsp;설정&nbsp;시간을&nbsp;문자열로&nbsp;출력&nbsp;<br />&nbsp;&nbsp;struct&nbsp;timeval&nbsp;now&nbsp;=&nbsp;{&nbsp;.tv_sec&nbsp;=&nbsp;t&nbsp;};&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;설정시간을&nbsp;현재&nbsp;시간에&nbsp;반영&nbsp;&nbsp;<br />&nbsp;&nbsp;settimeofday(&amp;now,&nbsp;NULL);&nbsp;&nbsp;<br />}</p>\r\n            </td>\r\n         </tr>\r\n      </tbody>\r\n   </table>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">&nbsp;</p>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">시간 서식 출력 코드를 시, 분, 초 등으로 쪼개어 사용할 수 있도록 시간 출력용 사용자 함수&nbsp;printLocalTime()를 만들어 주었다.&nbsp;&nbsp;\"time(&amp;now)\"는 시간 동기화가 되거나 또는 set_time() 함수에 의해 사용자 시간 설정이 되면 시계 라이브러리를 통해 자동으로 매 초마다 1씩 증가하는&nbsp;10자리의 UTC 시간 값이다. 이렇게 증가하는 UTC 시간 값과 이전 시간 값을 저장해준 prevEpoch와 비교하여 다르면 시간 출력 코드를 실행하도록 해주었다. 즉 별도의 millis() 함수를 사용하지 않고도 1초가 증가할 때마다 조건을 만족하여 코드를 반복적으로&nbsp;실행하게 된다.&nbsp;&nbsp;</p>\r\n<table border=\"1\" style=\"color: #000000; font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; width: 4799.28px; border-style: solid; border-color: #99cefa; background-color: #f6f9fd;\">\r\n   <tbody>\r\n      <tr>\r\n         <td style=\"width: 4777.28px; padding: 10px;\">\r\n            <p>void&nbsp;printLocalTime()&nbsp;{&nbsp;<br />&nbsp;&nbsp;if&nbsp;(time(&amp;now)&nbsp;!=&nbsp;prevEpoch)&nbsp;{&nbsp;//&nbsp;현재&nbsp;UTC&nbsp;시간&nbsp;값과&nbsp;이전&nbsp;UTC&nbsp;시간&nbsp;값이&nbsp;다르면&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;Serial.println(time(&amp;now));&nbsp;&nbsp;//&nbsp;현재&nbsp;UTC&nbsp;시간&nbsp;값&nbsp;출력&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;getLocalTime(&amp;timeinfo);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;로컬&nbsp;변경 함수 이용&nbsp;UTC&nbsp;시간 값&nbsp;변경&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;dd&nbsp;=&nbsp;timeinfo.tm_mday;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;구조체&nbsp;내&nbsp;해당 값&nbsp;가져오기&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;MM&nbsp;=&nbsp;timeinfo.tm_mon&nbsp;+&nbsp;1;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;yy&nbsp;=&nbsp;timeinfo.tm_year&nbsp;+1900;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;ss&nbsp;=&nbsp;timeinfo.tm_sec;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;mm&nbsp;=&nbsp;timeinfo.tm_min;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;hh&nbsp;=&nbsp;timeinfo.tm_hour;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;week&nbsp;=&nbsp;timeinfo.tm_wday;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;Serial.print(week);&nbsp;Serial.print(\".&nbsp;\");&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;Serial.print(yy);&nbsp;Serial.print(\".&nbsp;\");&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;Serial.print(MM);&nbsp;Serial.print(\".&nbsp;\");&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;Serial.print(dd);&nbsp;Serial.print(\"&nbsp;\");&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;Serial.print(hh);&nbsp;Serial.print(\":&nbsp;\");&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;Serial.print(mm);&nbsp;Serial.print(\":&nbsp;\");&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;Serial.println(ss);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;prevEpoch&nbsp;=&nbsp;time(&amp;now);&nbsp;//&nbsp;현재&nbsp;UTC&nbsp;시간&nbsp;값을&nbsp;저장하여&nbsp;1초마다&nbsp;실행되도록&nbsp;함.&nbsp;<br />&nbsp;&nbsp;}&nbsp;<br />}</p>\r\n            </td>\r\n         </tr>\r\n      </tbody>\r\n   </table>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">&nbsp;</p>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">ESP32 아두이노 IDE 코어의 time.h 라이브러리에 정의된 로컬 시간 관련 구조체 변수는 아래와 같다.&nbsp;</p>\r\n<table border=\"1\" style=\"color: #000000; font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; width: 4799.28px; border-style: solid; border-color: #99cefa; background-color: #f6f9fd;\">\r\n   <tbody>\r\n      <tr>\r\n         <td style=\"width: 4777.28px; padding: 10px;\">\r\n            <p>struct&nbsp;tm&nbsp;{&nbsp;<br />&nbsp;&nbsp;int tm_sec;&nbsp;<br />&nbsp;&nbsp;int&nbsp;tm_min;&nbsp;<br />&nbsp;&nbsp;int&nbsp;tm_hour;&nbsp;<br />&nbsp;&nbsp;int&nbsp;tm_mday;&nbsp;<br />&nbsp;&nbsp;int&nbsp;tm_mon;&nbsp;<br />&nbsp;&nbsp;int&nbsp;tm_year;&nbsp;<br />&nbsp;&nbsp;int&nbsp;tm_wday;&nbsp;<br />&nbsp;&nbsp;int&nbsp;tm_yday;&nbsp;<br />&nbsp;&nbsp;int&nbsp;tm_isdst;&nbsp;<br />#ifdef&nbsp;__TM_GMTOFF&nbsp;<br />&nbsp;&nbsp;long&nbsp;&nbsp;__TM_GMTOFF;&nbsp;<br />#endif&nbsp;<br />#ifdef&nbsp;__TM_ZONE&nbsp;<br />&nbsp;&nbsp;const&nbsp;char&nbsp;*__TM_ZONE;&nbsp;<br />#endif&nbsp;<br />};</p>\r\n            </td>\r\n         </tr>\r\n      </tbody>\r\n   </table>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">week값은 \"0 = 일요일, 1 = 월요일, , , 6 = 토요일\"이다.</p>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">&nbsp;</p>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">시리얼 모니터에서 전송 옵션을 \"새 글\"로 하고 \"1\"을 입력하면 시간 설정 함수가 실행되고 \"2\"를 입력하면 NTP 서버 동기화가 실행되도록 시리얼 통신 제어 코드를 아래와 같이 작성해 주었다.&nbsp;</p>\r\n<table border=\"1\" style=\"color: #000000; font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; width: 4799.28px; border-style: solid; border-color: #99cefa; background-color: #f6f9fd;\">\r\n   <tbody>\r\n      <tr>\r\n         <td style=\"width: 4777.28px; padding: 10px;\">\r\n            <p>&nbsp;&nbsp;if(Serial.available()&nbsp;&gt;&nbsp;0){&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;temp&nbsp;=&nbsp;Serial.readStringUntil(\'\\n\');&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(temp&nbsp;==&nbsp;\"1\")&nbsp;set_time();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;set&nbsp;time&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;if&nbsp;(temp&nbsp;==&nbsp;\"2\")&nbsp;get_NTP();&nbsp;//&nbsp;NTP&nbsp;Sync&nbsp;<br />&nbsp;&nbsp;}</p>\r\n            </td>\r\n         </tr>\r\n      </tbody>\r\n   </table>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">&nbsp;</p>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">아래 스케치는 상기 코드를 반영한 것이다.</p>\r\n<figure class=\"fileblock\" data-ke-align=\"alignCenter\" style=\"margin: 28px auto 20px; max-width: 100%; clear: both; width: 470px; height: 71px; border: 1px solid rgb(233, 233, 233); position: relative; border-radius: 1px; font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\"><a href=\"https://blog.kakaocdn.net/dn/cm9LI8/btqzoATTTC7/waX7uAtei08DDjKUrZQEI1/ESP32_SimpleTime.ino?attach=1&amp;knm=tfile.ino\" class=\"\" style=\"color: #000000; text-decoration-line: none; transition: all 0.3s ease 0s; display: block; height: 71px;\" target=\"_blank\">\r\n      <div class=\"image\" style=\"box-sizing: border-box; position: absolute; left: 0px; top: 0px; width: 30px; height: 30px; background-image: url(&quot;https://t1.daumcdn.net/tistory_admin/static/manage/post-editor/img_editor_content.svg&quot;); background-position: 0px 0px; margin: 21px 17px 20px 22px;\">&nbsp;</div>\r\n      <div class=\"desc\" style=\"box-sizing: border-box; position: absolute; inset: 0px 60px 0px 70px;\">\r\n         <div class=\"filename\" style=\"box-sizing: border-box; color: #333333; font-size: 14px; text-overflow: ellipsis; height: 20px; margin: 17px 0px 0px;\"><span class=\"name\" style=\"box-sizing: border-box; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 272px; height: 20px; display: block;\">ESP32_SimpleTime.ino</span></div>\r\n         <div class=\"size\" style=\"box-sizing: border-box; font-family: &quot;Avenir Next&quot;, sans-serif; font-size: 12px; color: #777777; height: 16px; margin: 2px 0px 0px;\">0.00MB</div>\r\n         </div>\r\n      </a></figure>\r\n<pre id=\"code_1572237388523\" class=\"c++ cpp arduino\" data-ke-language=\"c++\" data-ke-type=\"codeblock\" style=\"overflow: auto hidden; padding: 10px; margin-top: 5px; margin-bottom: 5px; max-width: 100%; border: 1px solid rgb(221, 221, 221); font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; line-height: 21.6px; font-family: &quot;Lucida Console&quot;; background-color: #fafafa; border-radius: 3px;\">\r\n   <code class=\"hljs cpp\" style=\"border: 1px solid rgb(238, 238, 238); background: rgb(40, 44, 52); color: #abb2bf; border-radius: 5px; padding: 0.5em; margin: 3px 0px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 17px; line-height: 1.3em; font-family: D2Coding, monospace; display: block; overflow-x: auto;\"><span class=\"hljs-meta\" style=\"box-sizing: border-box; color: #61aeee;\">#<span class=\"hljs-meta-keyword\" style=\"box-sizing: border-box;\">include</span><span class=\"hljs-meta-string\" style=\"box-sizing: border-box; color: #98c379;\">&lt;WiFi.h&gt;  // 와이파이 라이브러리</span></span><span class=\"hljs-meta\" style=\"box-sizing: border-box; color: #61aeee;\">#<span class=\"hljs-meta-keyword\" style=\"box-sizing: border-box;\">include</span><span class=\"hljs-meta-string\" style=\"box-sizing: border-box; color: #98c379;\">\"time.h\"</span><span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 시계 라이브러리</span></span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">const</span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">char</span>* ssid       = <span class=\"hljs-string\" style=\"box-sizing: border-box; color: #98c379;\">\"SK_WiFiGIGA40F7\"</span>; <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 공유기 SSID</span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">const</span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">char</span>* password   = <span class=\"hljs-string\" style=\"box-sizing: border-box; color: #98c379;\">\"1712037218\"</span>;      <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 공유기 비밀번호</span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">const</span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">char</span>* ntpServer = <span class=\"hljs-string\" style=\"box-sizing: border-box; color: #98c379;\">\"pool.ntp.org\"</span>;     <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// NTP 서버</span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">uint8_t</span> timeZone = <span class=\"hljs-number\" style=\"box-sizing: border-box; color: #d19a66;\">9</span>;                       <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 한국 타임존 설정</span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">uint8_t</span> summerTime = <span class=\"hljs-number\" style=\"box-sizing: border-box; color: #d19a66;\">0</span>; <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 3600             // 썸머타임 시간</span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">int</span> s_hh = <span class=\"hljs-number\" style=\"box-sizing: border-box; color: #d19a66;\">12</span>;         <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 시간 설정용 시 변수 및 초기값, &lt; 0 조건 위해 자료형 int</span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">int</span> s_mm = <span class=\"hljs-number\" style=\"box-sizing: border-box; color: #d19a66;\">59</span>;         <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 시간 설정용 분 변수 및 초기값 </span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">uint8_t</span> s_ss = <span class=\"hljs-number\" style=\"box-sizing: border-box; color: #d19a66;\">45</span>;     <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 시간 설정용 초 변수 및 초기값</span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">uint16_t</span> s_yy = <span class=\"hljs-number\" style=\"box-sizing: border-box; color: #d19a66;\">2017</span>;  <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 시간 설정용 년 변수 및 초기값 </span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">uint8_t</span> s_MM = <span class=\"hljs-number\" style=\"box-sizing: border-box; color: #d19a66;\">11</span>;     <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 시간 설정용 월 변수 및 초기값 </span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">uint8_t</span> s_dd = <span class=\"hljs-number\" style=\"box-sizing: border-box; color: #d19a66;\">19</span>;     <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 시간 설정용 일 변수 및 초기값 </span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">time_t</span> now;          <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 현재 시간 변수 </span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">time_t</span> prevEpoch;    <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 이전 UTC 시간 변수</span><span class=\"hljs-class\" style=\"box-sizing: border-box;\"><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">struct</span><span class=\"hljs-title\" style=\"box-sizing: border-box; color: #e6c07b;\">tm</span><span class=\"hljs-title\" style=\"box-sizing: border-box; color: #e6c07b;\">timeinfo</span>;</span><span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 로컬 시간 반영용 구조체 변수 선언</span><span class=\"hljs-function\" style=\"box-sizing: border-box; color: #61aeee;\"><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">void</span><span class=\"hljs-title\" style=\"box-sizing: border-box;\">get_NTP</span><span class=\"hljs-params\" style=\"box-sizing: border-box; color: #a6e22e;\">()</span></span>{     <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// NTP 서버 시간 동기화 </span>\r\n  configTime(<span class=\"hljs-number\" style=\"box-sizing: border-box; color: #d19a66;\">3600</span> * timeZone, <span class=\"hljs-number\" style=\"box-sizing: border-box; color: #d19a66;\">3600</span> * summerTime, ntpServer); <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// NTP 서버 접속 및 동기화 함수</span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">while</span>(!getLocalTime(&amp;timeinfo)){  <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 로컬 시간 반영함수이 리턴 값이 false이면, 시간값 없으면</span>\r\n    Serial.println(<span class=\"hljs-string\" style=\"box-sizing: border-box; color: #98c379;\">\"Failed to obtain time\"</span>);  <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 메시지 표시</span>\r\n    set_time();   <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// set time                 // 초기값으로 시간 설정</span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">return</span>;\r\n  }\r\n}\r\n<span class=\"hljs-function\" style=\"box-sizing: border-box; color: #61aeee;\"><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">void</span><span class=\"hljs-title\" style=\"box-sizing: border-box;\">set_time</span><span class=\"hljs-params\" style=\"box-sizing: border-box; color: #a6e22e;\">()</span></span>{   <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 사용자 시간 설정 함수</span><span class=\"hljs-class\" style=\"box-sizing: border-box;\"><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">struct</span><span class=\"hljs-title\" style=\"box-sizing: border-box; color: #e6c07b;\">tm</span><span class=\"hljs-title\" style=\"box-sizing: border-box; color: #e6c07b;\">tm</span>;</span><span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 사용자 시간 설정용 구조체 변수 선언</span>\r\n  tm.tm_year = s_yy - <span class=\"hljs-number\" style=\"box-sizing: border-box; color: #d19a66;\">1900</span>; \r\n  tm.tm_mon = s_MM - <span class=\"hljs-number\" style=\"box-sizing: border-box; color: #d19a66;\">1</span>;\r\n  tm.tm_mday = s_dd;\r\n  tm.tm_hour = s_hh;\r\n  tm.tm_min = s_mm;\r\n  tm.tm_sec = s_ss;\r\n  <span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">time_t</span> t = mktime(&amp;tm);    <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// UTC 값으로 변환</span><span class=\"hljs-built_in\" style=\"box-sizing: border-box; color: #e6c07b;\">printf</span>(<span class=\"hljs-string\" style=\"box-sizing: border-box; color: #98c379;\">\"Setting time: %s\"</span>, asctime(&amp;tm)); <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 설정 시간을 문자열로 출력</span><span class=\"hljs-class\" style=\"box-sizing: border-box;\"><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">struct</span><span class=\"hljs-title\" style=\"box-sizing: border-box; color: #e6c07b;\">timeval</span><span class=\"hljs-title\" style=\"box-sizing: border-box; color: #e6c07b;\">now</span> = {</span> .tv_sec = t };     <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 설정시간을 현재 시간에 반영 </span>\r\n  settimeofday(&amp;now, <span class=\"hljs-literal\" style=\"box-sizing: border-box; color: #56b6c2;\">NULL</span>); \r\n}\r\n<span class=\"hljs-function\" style=\"box-sizing: border-box; color: #61aeee;\"><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">void</span><span class=\"hljs-title\" style=\"box-sizing: border-box;\">printLocalTime</span><span class=\"hljs-params\" style=\"box-sizing: border-box; color: #a6e22e;\">()</span></span>{\r\n  <span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">if</span> (time(&amp;now) != prevEpoch) { <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 현재 UTC 시간 값과 이전 UTC 시간 값이 다르면 </span>\r\n    Serial.println(time(&amp;now));  <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 현재 UTC 시간 값 출력</span>\r\n    getLocalTime(&amp;timeinfo);     <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 로컬 변경함수이용 UTC 시간값 변경</span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">int</span> dd = timeinfo.tm_mday;       <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 구조체 내 해당값 가져오기</span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">int</span> MM = timeinfo.tm_mon + <span class=\"hljs-number\" style=\"box-sizing: border-box; color: #d19a66;\">1</span>;\r\n    <span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">int</span> yy = timeinfo.tm_year +<span class=\"hljs-number\" style=\"box-sizing: border-box; color: #d19a66;\">1900</span>;\r\n    <span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">int</span> ss = timeinfo.tm_sec;\r\n    <span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">int</span> mm = timeinfo.tm_min;\r\n    <span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">int</span> hh = timeinfo.tm_hour;\r\n    <span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">int</span> week = timeinfo.tm_wday;\r\n    Serial.print(week); Serial.print(<span class=\"hljs-string\" style=\"box-sizing: border-box; color: #98c379;\">\". \"</span>);\r\n    Serial.print(yy); Serial.print(<span class=\"hljs-string\" style=\"box-sizing: border-box; color: #98c379;\">\". \"</span>);\r\n    Serial.print(MM); Serial.print(<span class=\"hljs-string\" style=\"box-sizing: border-box; color: #98c379;\">\". \"</span>);\r\n    Serial.print(dd); Serial.print(<span class=\"hljs-string\" style=\"box-sizing: border-box; color: #98c379;\">\" \"</span>);\r\n    Serial.print(hh); Serial.print(<span class=\"hljs-string\" style=\"box-sizing: border-box; color: #98c379;\">\": \"</span>);\r\n    Serial.print(mm); Serial.print(<span class=\"hljs-string\" style=\"box-sizing: border-box; color: #98c379;\">\": \"</span>);\r\n    Serial.println(ss);\r\n    prevEpoch = time(&amp;now); <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 현재 UTC 시간 값을 저장하여 1초마다 실행되도록 함.</span>\r\n  }\r\n}\r\n<span class=\"hljs-function\" style=\"box-sizing: border-box; color: #61aeee;\"><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">void</span><span class=\"hljs-title\" style=\"box-sizing: border-box;\">setup</span><span class=\"hljs-params\" style=\"box-sizing: border-box; color: #a6e22e;\">()</span></span>{\r\n  Serial.begin(<span class=\"hljs-number\" style=\"box-sizing: border-box; color: #d19a66;\">115200</span>);\r\n  Serial.<span class=\"hljs-built_in\" style=\"box-sizing: border-box; color: #e6c07b;\">printf</span>(<span class=\"hljs-string\" style=\"box-sizing: border-box; color: #98c379;\">\"Connecting to %s \"</span>, ssid); <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 공유기 아이디 표시</span>\r\n  WiFi.begin(ssid, password);               <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 와이파이 STA모드 시작 및 연결</span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">while</span> (WiFi.status() != WL_CONNECTED) {   <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 와이파이 연결이 안된 상태이면 </span>\r\n    delay(<span class=\"hljs-number\" style=\"box-sizing: border-box; color: #d19a66;\">500</span>);                             <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 0.5초마다</span>\r\n    Serial.print(<span class=\"hljs-string\" style=\"box-sizing: border-box; color: #98c379;\">\".\"</span>);                      <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// \'.\' 표시</span>\r\n  }\r\n  Serial.println(<span class=\"hljs-string\" style=\"box-sizing: border-box; color: #98c379;\">\" CONNECTED\"</span>);\r\n  get_NTP();                                <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// NTP 서버 시간 동기화 시작</span>\r\n}\r\n<span class=\"hljs-function\" style=\"box-sizing: border-box; color: #61aeee;\"><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">void</span><span class=\"hljs-title\" style=\"box-sizing: border-box;\">loop</span><span class=\"hljs-params\" style=\"box-sizing: border-box; color: #a6e22e;\">()</span></span>{\r\n  <span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">if</span>(Serial.available() &gt; <span class=\"hljs-number\" style=\"box-sizing: border-box; color: #d19a66;\">0</span>){\r\n    String temp = Serial.readStringUntil(<span class=\"hljs-string\" style=\"box-sizing: border-box; color: #98c379;\">\'\\n\'</span>);\r\n    <span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">if</span> (temp == <span class=\"hljs-string\" style=\"box-sizing: border-box; color: #98c379;\">\"1\"</span>) set_time();     <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// set time</span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">else</span><span class=\"hljs-keyword\" style=\"box-sizing: border-box; color: #f92672;\">if</span> (temp == <span class=\"hljs-string\" style=\"box-sizing: border-box; color: #98c379;\">\"2\"</span>) get_NTP(); <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// NTP Sync</span>\r\n  }\r\n  printLocalTime();                  <span class=\"hljs-comment\" style=\"box-sizing: border-box; color: #b18eb1; font-style: italic;\">// 로컬 시간 출력</span>\r\n}</code>\r\n   </pre>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">&nbsp;</p>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">상기 코드에서는 매 초에 대한 오차값 보정을 해줄 수는 없다. 이전 글&nbsp;<b><a href=\"https://postpop.tistory.com/39\" style=\"color: #000000; text-decoration-line: none; transition: all 0.3s ease 0s;\" target=\"_blank\">아두이노 시계 예제, ESP01 WiFi 이용 시간 동기화 하기</a></b>&nbsp;는 자체 millis() 함수를 사용하여 시계를 구현했으므로 실제 초와 millis() 함수의 초값에 발생하는 오차를 측정하고 millis() 함수의 조건 범위를 조정하여 좀 더 정확한 시계를 구현할 수 있었다.&nbsp;</p>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">&nbsp;</p>\r\n<div style=\"box-sizing: border-box; font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1; position: relative; text-align: center; overflow: hidden; margin: auto;\"><ins class=\"kakao_ad_area\" data-ad-unit=\"DAN-1k1zja6dnrfj7\" data-ad-width=\"728\" data-ad-height=\"90\" id=\"kakao_ad_bO0oms\" style=\"display: inline-block; text-decoration-line: none; height: 90px; max-height: inherit; min-height: 90px; min-width: 728px; width: 728px;\">\r\n      <div data-ad-creative-wrap=\"outer\" class=\"adfit__html-banner\" style=\"box-sizing: border-box; position: relative; overflow: hidden; max-height: inherit; min-width: 728px; min-height: 90px;\">\r\n         <div data-ad-creative-wrap=\"inner\" class=\"adfit__html-banner__inner\" style=\"box-sizing: border-box; overflow: hidden; border: 0px; margin: 0px auto; height: 90px;\">\r\n            <div style=\"box-sizing: border-box;\"><iframe src=\"https://t1.daumcdn.net/adfit/adunit_style/2fecddf84ae94f664e6126e65e1800d07c7f6a38\" width=\"100%\" frameborder=\"0\" scrolling=\"no\" marginheight=\"0\" marginwidth=\"0\" name=\"%5B%7B%22usePrefersColorScheme%22%3A%22N%22%2C%22usePreferColorScheme%22%3A%22N%22%2C%22frameId%22%3A%22a97429d6-2527-46c1-af8b-c9d158365f69%22%2C%22frameName%22%3A%22a97429d6-2527-46c1-af8b-c9d158365f69%22%2C%22title%22%3A%22%EC%A7%91%20%EC%95%9E%EC%9C%BC%EB%A1%9C%20%ED%95%98%EB%A3%A8%EB%A7%8C%EC%97%90%20%EB%B0%B0%EC%86%A1%ED%95%B4%EC%A3%BC%EB%8A%94%20K%20Car%22%2C%22mainImage%22%3A%7B%22url%22%3A%22https%3A%2F%2Ft1.daumcdn.net%2Fb2%2Fcreative%2F153963%2F05cccc7cd34849f0e7dc08879d727fc6.jpg%22%2C%22width%22%3A1200%2C%22height%22%3A600%7D%2C%22profileName%22%3A%22K%20Car%22%2C%22adInfoIcon%22%3A%7B%22url%22%3A%22https%3A%2F%2Ft1.daumcdn.net%2Fbiz%2Fui%2Fad%2FADmark%2Fi_mark_200803.png%22%2C%22width%22%3A15%2C%22height%22%3A15%7D%2C%22adInfoUrl%22%3A%22https%3A%2F%2Finfo.ad.daum.net%2Foptout.do%22%2C%22landingUrl%22%3A%22https%3A%2F%2Ftr.ad.daum.net%2Fclk%3Fwa%3D6E65tP0720ZpDzJdGv4Pow%26enc%3DWi1_tll7JIfkFevcO5L4ioZ9y2wVtKbF5q6RbLz1elDYZE2qq2YDig_20GSCFSQfrCfbp0l1iCNd-7I-dFkfb-v8WgCvkfh-bcwa1at1rCJl3bY0qoAyiG0RoB-T1dJdVvfeZ-WtMxndDIt3qK4EX254RFLhoLhrhXXzGkfW8AMf4uhWnb4ZprfkmKbgTiQexdqpUQHkghD28L6G2JTgda8ogzUnITiNd2baAHCTOWMT3Qfk7e8HG1FrWgzcEWR4vgKcoLtSS1UXJj_pXffAnED5XmlbQw-PcepiYtz9BnFUfkWut-Ka5OWusjVjM_9-a9Yq9jMQyMdNQRckkrS3HnyNl46wTUcO4em_OAMvt6qs7GHRQ9mAe5ztpTwqSW6Wiu6L3Ru_VObja0uDWpq52fgQNWjJUeXo3kUv7QZS4hrATFs8NgzfsXkCXc-MXLCHS-jG-61OSvfobmZ_QxAhD6cRCNDiW_c4yrfMKlpoIee2aDp_YX4Bm40wvHSj7d_rz4VHyGKFH7KHImvWCHVNndfsAQR-cCM20mdNpxqJFrwZQR04_6ZfAiuqqL_lL1Cz%22%2C%22useAdInfoIcon%22%3Atrue%2C%22useAdInfoUrl%22%3Atrue%2C%22events%22%3A%5B%7B%22type%22%3A%22viewable%22%2C%22url%22%3A%22https%3A%2F%2Ftr.ad.daum.net%2Fvimp%3Fwa%3D6E65tP0720ZpDzJdGv4Pow%26enc%3DWi1_tll7JIfkFevcO5L4ioZ9y2wVtKbF5q6RbLz1elDYZE2qq2YDig_20GSCFSQfrCfbp0l1iCNd-7I-dFkfb-v8WgCvkfh-bcwa1at1rCJl3bY0qoAyiG0RoB-T1dJdVvfeZ-WtMxndDIt3qK4EX254RFLhoLhrhXXzGkfW8AMf4uhWnb4ZprfkmKbgTiQexdqpUQHkghD28L6G2JTgda8ogzUnITiNd2baAHCTOWMT3Qfk7e8HG1FrWgzcEWR4ShxZ2lFw2KmWVNI850hCEDbQje3yLziLEU6wYawBT2kWJfFyzX3k88anWdr0CzJYqlHky_F9B4v0qf297RZDUQ%22%7D%2C%7B%22type%22%3A%22hide%22%2C%22url%22%3A%22https%3A%2F%2Ftr.ad.daum.net%2Fac%3Fwa%3D6E65tP0720ZpDzJdGv4Pow%26enc%3DWi1_tll7JIfkFevcO5L4ioZ9y2wVtKbF5q6RbLz1elDYZE2qq2YDig_20GSCFSQfrCfbp0l1iCNd-7I-dFkfb-v8WgCvkfh-bcwa1at1rCJl3bY0qoAyiG0RoB-T1dJdVvfeZ-WtMxndDIt3qK4EX254RFLhoLhrhXXzGkfW8AMf4uhWnb4ZprfkmKbgTiQexdqpUQHkghD28L6G2JTgda8ogzUnITiNd2baAHCTOWMT3Qfk7e8HG1FrWgzcEWR4ShxZ2lFw2KmWVNI850hCEDbQje3yLziLEU6wYawBT2kWJfFyzX3k88anWdr0CzJYoMnrZeJ8X9T3bBoq3m5jbZkmtpluD36eu4dJy2EVdPA%22%7D%2C%7B%22type%22%3A%22rendered%22%2C%22url%22%3A%22https%3A%2F%2Fkyson.ad.daum.net%2Fad%2Frendered%3Frequest_id%3Da4d9bf1f-c886-4180-b9b5-e98357a817eb%26adunit_id%3DDAN-1k1zja6dnrfj7%26bid_id%3D20220206233907_9YAcp%26dsp_id%3DMOMENT%26med_dsp_id%3DMOMENT%26network_type%3DGENERAL%26sdk_type%3Dweb%26sdk_version%3D4.1.5%26ad_type%3DBanner%26w%3D728%26h%3D90%26template_seq%3D43%22%7D%2C%7B%22type%22%3A%22viewable%22%2C%22url%22%3A%22https%3A%2F%2Fkyson.ad.daum.net%2Fad%2Fviewable%3Frequest_id%3Da4d9bf1f-c886-4180-b9b5-e98357a817eb%26adunit_id%3DDAN-1k1zja6dnrfj7%26bid_id%3D20220206233907_9YAcp%26dsp_id%3DMOMENT%26med_dsp_id%3DMOMENT%26network_type%3DGENERAL%26sdk_type%3Dweb%26sdk_version%3D4.1.5%26ad_type%3DBanner%26w%3D728%26h%3D90%26template_seq%3D43%22%7D%2C%7B%22type%22%3A%22click%22%2C%22url%22%3A%22https%3A%2F%2Fkyson.ad.daum.net%2Fad%2Fclick%3Frequest_id%3Da4d9bf1f-c886-4180-b9b5-e98357a817eb%26adunit_id%3DDAN-1k1zja6dnrfj7%26bid_id%3D20220206233907_9YAcp%26dsp_id%3DMOMENT%26med_dsp_id%3DMOMENT%26network_type%3DGENERAL%26sdk_type%3Dweb%26sdk_version%3D4.1.5%26ad_type%3DBanner%26w%3D728%26h%3D90%26template_seq%3D43%22%7D%2C%7B%22type%22%3A%22duration%22%2C%22url%22%3A%22https%3A%2F%2Fkyson.ad.daum.net%2Fad%2Fduration%3Frequest_id%3Da4d9bf1f-c886-4180-b9b5-e98357a817eb%26adunit_id%3DDAN-1k1zja6dnrfj7%26bid_id%3D20220206233907_9YAcp%26dsp_id%3DMOMENT%26med_dsp_id%3DMOMENT%26network_type%3DGENERAL%26sdk_type%3Dweb%26sdk_version%3D4.1.5%26ad_type%3DBanner%26w%3D728%26h%3D90%26template_seq%3D43%22%7D%2C%7B%22type%22%3A%22rendered%22%2C%22url%22%3A%22https%3A%2F%2Fserv.ds.kakao.com%2Fdspr%2Fsync%3Fdspr%3DalHgmZ_rq05OpnPWXKqO-R1ac5RlRCnJcXuv3-y0kdq5h-lvuemaptfEv7ULy5Pb_oWcuWmn42H-OukDOErSL1X3BAy_ZaBhT2SJOhQftUn3XRUwCdGaZBcogvPNfqDeZlB5_6MxbUAcBeA6PwnS9LhVoOr0vghgcaB2YrN04vIYFMstJ364POVK5vnH3rvhsvRkXnIRQDb37WDRqkiG7lre_TK6XrnTmabC4xunlx6fF0HUykRUGGcAZY2-Lu_u9n5g1miwlD0A88yBijy-UhGaEe7J8md8C2A7sSdpGXou_0eC-12qpxE5WJATiHazzVi_xVgCZwYOr1OczJ6bcKgW-1OahprQWWKa4f9bXCP34InbNwIn5ejIJSQVdpdUDHJcReE9mMZNuNvDFkDRNhF2xDfViR0fl9LNBowXeCklaz-FZxZWq1cwHVAFI5yyIbbZu85QHucj1364fB0LizJ6weDVTIiVadPKg-DXKOgEXbVyR_93FwRifcKtll1---PjQ-938SRy3fItN216ZGy6lSehp4yT13bFotJTzHOJTCvnDzv0kHqHWhsYHG4JJhtLE6tv18_i-up_O6gZ3vSy_d5r2Qh7rR2Tg7Rx_Db2GsNJkkiT2wsdeYL0ltlX8DKp-GiJryyIxNA8qbdeXlGqEoWVio8AQICBiRl483McF-92CADLEmAdu2-E6w7c%22%7D%5D%2C%22dspId%22%3A%22MOMENT%22%2C%22altText%22%3A%22%ED%95%98%EB%A3%A8%EB%B0%B0%EC%86%A1%22%2C%22nasTemplateSeq%22%3A43%2C%22type%22%3A%22native%22%7D%5D\" id=\"a97429d6-2527-46c1-af8b-c9d158365f69\" style=\"max-width: 100%; position: absolute; top: 0px; left: 0px; display: block; border-width: initial; border-style: none; height: 90px; width: 728px; min-width: 728px; min-height: 90px; overflow: hidden; padding: 0px; margin: 0px auto;\"></iframe></div>\r\n            </div>\r\n         </div>\r\n      </ins></div>\r\n<div style=\"box-sizing: border-box; font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1; position: relative; text-align: center; overflow: hidden; margin: auto;\"><ins class=\"adsbygoogle\" data-ad-client=\"ca-pub-8269928309278636\" data-ad-slot=\"5172369234\" data-ad-format=\"auto\" data-full-width-responsive=\"true\" data-adsbygoogle-status=\"done\" data-ad-status=\"filled\" style=\"display: block; height: 280px;\"><ins id=\"aswift_3_expand\" tabindex=\"0\" title=\"Advertisement\" aria-label=\"Advertisement\" style=\"border: none; height: 280px; width: 879px; margin: 0px; padding: 0px; position: relative; visibility: visible; background-color: transparent; display: inline-table;\"><ins id=\"aswift_3_anchor\" style=\"border: none; height: 280px; width: 879px; margin: 0px; padding: 0px; position: relative; visibility: visible; background-color: transparent; display: block; overflow: visible;\"><iframe id=\"aswift_3\" name=\"aswift_3\" sandbox=\"allow-forms allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-top-navigation-by-user-activation\" width=\"879\" height=\"280\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" vspace=\"0\" hspace=\"0\" allowtransparency=\"true\" scrolling=\"no\" allowfullscreen=\"true\" src=\"https://googleads.g.doubleclick.net/pagead/ads?client=ca-pub-8269928309278636&amp;output=html&amp;h=280&amp;slotname=5172369234&amp;adk=3223359318&amp;adf=92370475&amp;pi=t.ma~as.5172369234&amp;w=879&amp;fwrn=4&amp;fwrnh=100&amp;lmt=1644158368&amp;rafmt=1&amp;psa=1&amp;format=879x280&amp;url=https%3A%2F%2Fpostpop.tistory.com%2F84&amp;flash=0&amp;host=ca-host-pub-9691043933427338&amp;fwr=0&amp;fwrattr=true&amp;rpe=1&amp;resp_fmts=3&amp;wgl=1&amp;uach=WyJXaW5kb3dzIiwiMTAuMC4wIiwieDg2IiwiIiwiOTcuMC40NjkyLjk5IixbXSxudWxsLG51bGwsIjY0IixbXV0.&amp;dt=1644158347657&amp;bpp=1&amp;bdt=332&amp;idt=346&amp;shv=r20220201&amp;mjsv=m202202010101&amp;ptt=9&amp;saldr=aa&amp;abxe=1&amp;cookie=ID%3Dc94963fbc3dd591a-22cdf34e8acf0086%3AT%3D1640687636%3ART%3D1640687636%3AS%3DALNI_MZda89KtmEfIh3gOEJUkRlNH2OqzA&amp;prev_fmts=0x0%2C300x250%2C879x200%2C1261x1287%2C1005x124&amp;nras=3&amp;correlator=172299372712&amp;frm=20&amp;pv=1&amp;ga_vid=264079735.1644149952&amp;ga_sid=1644158348&amp;ga_hid=1429941644&amp;ga_fc=1&amp;u_tz=540&amp;u_his=7&amp;u_h=1440&amp;u_w=2560&amp;u_ah=1400&amp;u_aw=2560&amp;u_cd=24&amp;u_sd=1&amp;dmc=8&amp;adx=336&amp;ady=8082&amp;biw=1261&amp;bih=1287&amp;scr_x=0&amp;scr_y=2996&amp;eid=42531397%2C21067496&amp;oid=2&amp;psts=AGkb-H_16PCDSQy6amn491WZZr3WyYQQceZE31Ctgpko8sIMIj1vJHyeVNRSzr1xoTRl9oG8n5GAkqRr5g%2CAGkb-H-boEFtYqEfkkQJjSYzWsUIVcSXJM8PWVDhSfFq3DnHgL_kgISraM4nO9Xyye8VmulezMRbZ4D8ML4eIA%2CAGkb-H9RKgQC-9zey_RC4otlOp-8Ek85_52C1puXVbZH1kkEluqL2Pq4OFdTJ-mBi6RESm_hqZMxFkOdPH1kKPoiWx_dxLb_1RSKxwqT&amp;pvsid=3686389943869056&amp;pem=365&amp;tmod=1090502502&amp;uas=1&amp;nvt=1&amp;ref=https%3A%2F%2Fwww.google.com%2F&amp;eae=0&amp;fc=1920&amp;brdim=-7%2C0%2C-7%2C0%2C2560%2C0%2C1294%2C1407%2C1278%2C1287&amp;vis=1&amp;rsz=%7C%7CeoEbr%7C&amp;abl=CS&amp;pfx=0&amp;fu=128&amp;bc=31&amp;ifi=4&amp;uci=a!4&amp;btvi=3&amp;fsb=1&amp;xpc=kxUrKE8qZX&amp;p=https%3A//postpop.tistory.com&amp;dtd=21051\" data-google-container-id=\"a!4\" data-google-query-id=\"CKGsipyn6_UCFU9dvQodB_oPJA\" data-load-complete=\"true\" style=\"max-width: 100%; left: 0px; position: absolute; top: 0px; border-width: 0px; border-style: initial; width: 879px; height: 280px;\"></iframe></ins></ins></ins></div>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">&nbsp;</p>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">ESP32의 경우 매 초의 오차값이 얼마인지는 확인해 보지 않았으나 만약 매 초의 오차값이 커서 보정이 필요하다면 상기 코드에 이전 글의 millis() 시계 코드를 접목시켜야 할 것이다.&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</p>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">&nbsp;</p>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">상기의 코드로도 시계 출력 및 사용자 시간 설정 등을 제어하는 데는 어떠한 문제도 없지만 아직 뭔가 부족한 것 같다. 매일 일정 간격으로 NTP 서버와 시간 동기화를 하고 있다고 할 때 와이파이의 연결이 끊어진 상태에서 NTP 서버와 동기화를 시도할 경우와 처음부터 와이파이 연결이 안 될 때 어떻게 할 것인가에 대한 코드 적용이 안되어 있는 것이다. 또한 NTP 서버와 동기화가 안되었을 경우에 대한 처리도 코드 적용이 안되어 있다.&nbsp;</p>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">&nbsp;</p>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">1. 와이파이 연결이 안 된 상태</p>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">setup() 함수 진입 시 10초간 대기하다 set_time() 함수를 실행하여 사용자 시간 값으로 시계를 출력한다.</p>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">이후 시리얼 모니터나 블루투스 연결을 통해 현재 시간을 설정해 주어야 한다.(해당 코드는 이전 글&nbsp;<b><a href=\"https://postpop.tistory.com/39\" style=\"color: #000000; text-decoration-line: none; transition: all 0.3s ease 0s;\" target=\"_blank\">아두이노시계 예제, ESP01 WiFi 이용 시간 동기화 하기</a></b>,&nbsp;<b><a href=\"https://postpop.tistory.com/43\" style=\"color: #000000; text-decoration-line: none; transition: all 0.3s ease 0s;\" target=\"_blank\">말하는알람시계 - 블루투스 연결 및 시간 동기화, DFPlayer 제어</a></b>를 참조하기 바란다)</p>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">&nbsp;</p>\r\n<table border=\"1\" style=\"color: #000000; font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; width: 4799.28px; border-style: solid; border-color: #99cefa; background-color: #f6f9fd;\">\r\n   <tbody>\r\n      <tr>\r\n         <td style=\"width: 4777.28px; padding: 10px;\">\r\n            <p>&nbsp;&nbsp;uint8_t&nbsp;wifi_check&nbsp;=&nbsp;0;&nbsp;<br />&nbsp;&nbsp;while&nbsp;(WiFi.status()&nbsp;!=&nbsp;WL_CONNECTED)&nbsp;{&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;delay(500);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;Serial.print(\".\");&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;wifi_check&nbsp;++;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(wifi_check&nbsp;==&nbsp;20)&nbsp;{&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WiFi.disconnect(true);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WiFi.mode(WIFI_OFF);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;while&nbsp;루프&nbsp;빠져나감&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />&nbsp;&nbsp;}&nbsp;<br />&nbsp;&nbsp;if&nbsp;(wifi_check&nbsp;==&nbsp;20)&nbsp;{&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;Serial.println(\"Failed&nbsp;wifi&nbsp;connection\");&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;set_time();&nbsp;<br />&nbsp;&nbsp;}</p>\r\n            </td>\r\n         </tr>\r\n      </tbody>\r\n   </table>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">&nbsp;</p>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">2. 와이파이 연결 후 초기 NTP 서버 시간 동기화 실패&nbsp;</p>\r\n<p style=\"font-family: &quot;Ubuntu Condensed&quot;, &quot;Noto Sans Korean&quot;; font-size: 16px; background-color: #f1f1f1;\">configTime(3600 * timeZone, 3600 * summerTime, ntpServer);코드에 의한 NTP 서버와 시간 동기화에 실패할 경우 ES','https://postpop.tistory.com/84','',1,0,4,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2022-02-06 23:41:28',1,'2022-02-06 23:41:28','192.168.219.101','','','','','','','','','','','',''),(522,-522,'',522,0,0,'','','html1','[Arduino] Ethernet MAC Address print','<p style=\"box-sizing: border-box; margin-right: auto; margin-bottom: 1.5em; margin-left: auto; padding: 0px; direction: ltr; color: #4f4e4e; font-family: &quot;typoninesans regular 18&quot;, &quot;lucida grande&quot;, Lucida, Verdana, sans-serif; font-size: 18px; background-color: #ffffff;\"><span style=\"box-sizing: border-box; font-family: &quot;typoninesans text 16&quot;; font-stretch: normal;\">Reference</span>&nbsp;&nbsp;&nbsp;<a class=\"wikilink\" href=\"https://www.arduino.cc/en/Reference/HomePage\" style=\"box-sizing: border-box; color: #00979c; text-decoration-line: none; line-height: inherit;\" target=\"_blank\">Language</a>&nbsp;|&nbsp;<a class=\"wikilink\" href=\"https://www.arduino.cc/en/Reference/Libraries\" style=\"box-sizing: border-box; color: #00979c; text-decoration-line: none; line-height: inherit;\" target=\"_blank\">Libraries</a>&nbsp;|&nbsp;<a class=\"wikilink\" href=\"https://www.arduino.cc/en/Reference/Comparison\" style=\"box-sizing: border-box; color: #00979c; text-decoration-line: none; line-height: inherit;\" target=\"_blank\">Comparison</a>&nbsp;|&nbsp;<a class=\"wikilink\" href=\"https://www.arduino.cc/en/Reference/Changes\" style=\"box-sizing: border-box; color: #00979c; text-decoration-line: none; line-height: inherit;\" target=\"_blank\">Changes</a></p>\r\n<p style=\"box-sizing: border-box; margin-right: auto; margin-bottom: 1.5em; margin-left: auto; padding: 0px; direction: ltr; color: #4f4e4e; font-family: &quot;typoninesans regular 18&quot;, &quot;lucida grande&quot;, Lucida, Verdana, sans-serif; font-size: 18px; background-color: #ffffff;\"><a class=\"wikilink\" href=\"https://www.arduino.cc/en/Reference/Ethernet\" style=\"box-sizing: border-box; color: #00979c; text-decoration-line: none; line-height: inherit;\" target=\"_blank\">Ethernet</a></p>\r\n<h2 style=\"box-sizing: border-box; margin: 0.6em 0px; padding: 0px; direction: ltr; line-height: 1.2em; text-rendering: optimizelegibility; color: #4f4e4e; font-size: 40px; hyphens: none; font-family: &quot;typoninesans light 17&quot;; font-weight: 400; font-stretch: normal; background-color: #ffffff;\"><span class=\"wikiword\" style=\"box-sizing: border-box;\">Ethernet.MACAddress</span>()</h2>\r\n<h4 style=\"box-sizing: border-box; margin: 1.2777em 0px 0.6em; padding: 0px; direction: ltr; line-height: 1.33333rem; text-rendering: optimizelegibility; color: #e67e22; font-size: 18px; hyphens: none; font-family: &quot;typoninesans regular 18&quot;; font-weight: 400; font-stretch: normal; background-color: #ffffff;\">Description</h4>\r\n<p style=\"box-sizing: border-box; margin-right: auto; margin-bottom: 1.5em; margin-left: auto; padding: 0px; direction: ltr; color: #4f4e4e; font-family: &quot;typoninesans regular 18&quot;, &quot;lucida grande&quot;, Lucida, Verdana, sans-serif; font-size: 18px; background-color: #ffffff;\">Fills the supplied buffer with the MAC address of the device.</p>\r\n<h4 style=\"box-sizing: border-box; margin: 1.2777em 0px 0.6em; padding: 0px; direction: ltr; line-height: 1.33333rem; text-rendering: optimizelegibility; color: #e67e22; font-size: 18px; hyphens: none; font-family: &quot;typoninesans regular 18&quot;; font-weight: 400; font-stretch: normal; background-color: #ffffff;\">Syntax</h4>\r\n<p style=\"box-sizing: border-box; margin-right: auto; margin-bottom: 1.5em; margin-left: auto; padding: 0px; direction: ltr; color: #4f4e4e; font-family: &quot;typoninesans regular 18&quot;, &quot;lucida grande&quot;, Lucida, Verdana, sans-serif; font-size: 18px; background-color: #ffffff;\"><span class=\"wikiword\" style=\"box-sizing: border-box;\">Ethernet.MACAddress</span>(mac_address)</p>\r\n<h4 style=\"box-sizing: border-box; margin: 1.2777em 0px 0.6em; padding: 0px; direction: ltr; line-height: 1.33333rem; text-rendering: optimizelegibility; color: #e67e22; font-size: 18px; hyphens: none; font-family: &quot;typoninesans regular 18&quot;; font-weight: 400; font-stretch: normal; background-color: #ffffff;\">Parameters</h4>\r\n<p style=\"box-sizing: border-box; margin-right: auto; margin-bottom: 1.5em; margin-left: auto; padding: 0px; direction: ltr; color: #4f4e4e; font-family: &quot;typoninesans regular 18&quot;, &quot;lucida grande&quot;, Lucida, Verdana, sans-serif; font-size: 18px; background-color: #ffffff;\"><span style=\"box-sizing: border-box; font-family: &quot;typoninesans text 16&quot;; font-stretch: normal;\">mac_address</span>: buffer to receive the MAC address (array of 6 bytes)</p>\r\n<h4 style=\"box-sizing: border-box; margin: 1.2777em 0px 0.6em; padding: 0px; direction: ltr; line-height: 1.33333rem; text-rendering: optimizelegibility; color: #e67e22; font-size: 18px; hyphens: none; font-family: &quot;typoninesans regular 18&quot;; font-weight: 400; font-stretch: normal; background-color: #ffffff;\">Returns</h4>\r\n<p style=\"box-sizing: border-box; margin-right: auto; margin-bottom: 1.5em; margin-left: auto; padding: 0px; direction: ltr; color: #4f4e4e; font-family: &quot;typoninesans regular 18&quot;, &quot;lucida grande&quot;, Lucida, Verdana, sans-serif; font-size: 18px; background-color: #ffffff;\">Nothing</p>\r\n<h4 style=\"box-sizing: border-box; margin: 1.2777em 0px 0.6em; padding: 0px; direction: ltr; line-height: 1.33333rem; text-rendering: optimizelegibility; color: #e67e22; font-size: 18px; hyphens: none; font-family: &quot;typoninesans regular 18&quot;; font-weight: 400; font-stretch: normal; background-color: #ffffff;\">Example</h4>\r\n<p style=\"box-sizing: border-box; margin-right: auto; margin-bottom: 1.5em; margin-left: auto; padding: 0px; direction: ltr; color: #4f4e4e; font-family: &quot;typoninesans regular 18&quot;, &quot;lucida grande&quot;, Lucida, Verdana, sans-serif; font-size: 18px; background-color: #ffffff;\">&nbsp;</p>\r\n<div class=\"sourceblock \" id=\"sourceblock1\" style=\"box-sizing: border-box; margin: 0px; padding: 0px; direction: ltr; color: #4f4e4e; font-family: &quot;typoninesans regular 18&quot;, &quot;lucida grande&quot;, Lucida, Verdana, sans-serif; font-size: 18px; background-color: #ffffff;\">\r\n   <div class=\"sourceblocktext\" style=\"box-sizing: border-box; margin: 0px; padding: 0.5em; direction: ltr; color: #000000; background-color: #ecf1f1;\">\r\n      <div class=\"arduino\" style=\"box-sizing: border-box; margin: 0px; padding: 0px; direction: ltr; font-family: &quot;TyponineSans Monospace Regular 4&quot;; font-stretch: normal; font-size: 14px; line-height: 18px; height: 486px;\"><span class=\"co2\" style=\"box-sizing: border-box; color: #7e7e7e;\">#include &lt;SPI.h&gt;</span><br style=\"box-sizing: border-box;\" /><span class=\"co2\" style=\"box-sizing: border-box; color: #7e7e7e;\">#include &lt;Ethernet.h&gt;</span><br style=\"box-sizing: border-box;\" /><br style=\"box-sizing: border-box;\" /><span class=\"kw1\" style=\"box-sizing: border-box; color: #cc6600;\">byte</span>&nbsp;mac<span class=\"br0\" style=\"box-sizing: border-box;\">[</span><span class=\"br0\" style=\"box-sizing: border-box;\">]</span>&nbsp;<span class=\"sy0\" style=\"box-sizing: border-box;\">=</span>&nbsp;<span class=\"br0\" style=\"box-sizing: border-box;\">{</span><span class=\"nu12\" style=\"box-sizing: border-box; color: #208080;\">0xDE</span><span class=\"sy0\" style=\"box-sizing: border-box;\">,</span>&nbsp;<span class=\"nu12\" style=\"box-sizing: border-box; color: #208080;\">0xAD</span><span class=\"sy0\" style=\"box-sizing: border-box;\">,</span>&nbsp;<span class=\"nu12\" style=\"box-sizing: border-box; color: #208080;\">0xBE</span><span class=\"sy0\" style=\"box-sizing: border-box;\">,</span>&nbsp;<span class=\"nu12\" style=\"box-sizing: border-box; color: #208080;\">0xEF</span><span class=\"sy0\" style=\"box-sizing: border-box;\">,</span>&nbsp;<span class=\"nu12\" style=\"box-sizing: border-box; color: #208080;\">0xFE</span><span class=\"sy0\" style=\"box-sizing: border-box;\">,</span>&nbsp;<span class=\"nu12\" style=\"box-sizing: border-box; color: #208080;\">0xED</span><span class=\"br0\" style=\"box-sizing: border-box;\">}</span><span class=\"sy0\" style=\"box-sizing: border-box;\">;</span><br style=\"box-sizing: border-box;\" />IPAddress ip<span class=\"br0\" style=\"box-sizing: border-box;\">(</span><span class=\"nu0\" style=\"box-sizing: border-box;\">10</span><span class=\"sy0\" style=\"box-sizing: border-box;\">,</span>&nbsp;<span class=\"nu0\" style=\"box-sizing: border-box;\">0</span><span class=\"sy0\" style=\"box-sizing: border-box;\">,</span>&nbsp;<span class=\"nu0\" style=\"box-sizing: border-box;\">0</span><span class=\"sy0\" style=\"box-sizing: border-box;\">,</span>&nbsp;<span class=\"nu0\" style=\"box-sizing: border-box;\">177</span><span class=\"br0\" style=\"box-sizing: border-box;\">)</span><span class=\"sy0\" style=\"box-sizing: border-box;\">;</span><br style=\"box-sizing: border-box;\" /><br style=\"box-sizing: border-box;\" /><span class=\"kw1\" style=\"box-sizing: border-box; color: #cc6600;\">void</span>&nbsp;<span class=\"kw3\" style=\"box-sizing: border-box; color: #cc6600; font-weight: bold;\">setup</span><span class=\"br0\" style=\"box-sizing: border-box;\">(</span><span class=\"br0\" style=\"box-sizing: border-box;\">)</span>&nbsp;<span class=\"br0\" style=\"box-sizing: border-box;\">{</span><br style=\"box-sizing: border-box;\" />&nbsp;&nbsp;<span class=\"kw1\" style=\"box-sizing: border-box; color: #cc6600;\">Serial</span>.<span class=\"kw1\" style=\"box-sizing: border-box; color: #cc6600;\">begin</span><span class=\"br0\" style=\"box-sizing: border-box;\">(</span><span class=\"nu0\" style=\"box-sizing: border-box;\">9600</span><span class=\"br0\" style=\"box-sizing: border-box;\">)</span><span class=\"sy0\" style=\"box-sizing: border-box;\">;</span><br style=\"box-sizing: border-box;\" />&nbsp;&nbsp;<span class=\"kw1\" style=\"box-sizing: border-box; color: #cc6600;\">while</span>&nbsp;<span class=\"br0\" style=\"box-sizing: border-box;\">(</span><span class=\"sy0\" style=\"box-sizing: border-box;\">!</span><span class=\"kw1\" style=\"box-sizing: border-box; color: #cc6600;\">Serial</span><span class=\"br0\" style=\"box-sizing: border-box;\">)</span>&nbsp;<span class=\"br0\" style=\"box-sizing: border-box;\">{</span><br style=\"box-sizing: border-box;\" />&nbsp; &nbsp;&nbsp;<span class=\"sy0\" style=\"box-sizing: border-box;\">;</span>&nbsp;<span class=\"co1\" style=\"box-sizing: border-box; color: #7e7e7e; font-style: italic;\">// wait for serial port to connect. Needed for native USB port only</span><br style=\"box-sizing: border-box;\" />&nbsp;&nbsp;<span class=\"br0\" style=\"box-sizing: border-box;\">}</span><br style=\"box-sizing: border-box;\" /><br style=\"box-sizing: border-box;\" />&nbsp; Ethernet.<span class=\"kw1\" style=\"box-sizing: border-box; color: #cc6600;\">begin</span><span class=\"br0\" style=\"box-sizing: border-box;\">(</span>mac<span class=\"sy0\" style=\"box-sizing: border-box;\">,</span>&nbsp;ip<span class=\"br0\" style=\"box-sizing: border-box;\">)</span><span class=\"sy0\" style=\"box-sizing: border-box;\">;</span><br style=\"box-sizing: border-box;\" /><br style=\"box-sizing: border-box;\" />&nbsp;&nbsp;<span class=\"kw1\" style=\"box-sizing: border-box; color: #cc6600;\">byte</span>&nbsp;macBuffer<span class=\"br0\" style=\"box-sizing: border-box;\">[</span><span class=\"nu0\" style=\"box-sizing: border-box;\">6</span><span class=\"br0\" style=\"box-sizing: border-box;\">]</span><span class=\"sy0\" style=\"box-sizing: border-box;\">;</span>&nbsp;&nbsp;<span class=\"co1\" style=\"box-sizing: border-box; color: #7e7e7e; font-style: italic;\">// create a buffer to hold the MAC address</span><br style=\"box-sizing: border-box;\" />&nbsp; Ethernet.<span class=\"me1\" style=\"box-sizing: border-box; color: #ff1493;\">MACAddress</span><span class=\"br0\" style=\"box-sizing: border-box;\">(</span>macBuffer<span class=\"br0\" style=\"box-sizing: border-box;\">)</span><span class=\"sy0\" style=\"box-sizing: border-box;\">;</span>&nbsp;<span class=\"co1\" style=\"box-sizing: border-box; color: #7e7e7e; font-style: italic;\">// fill the buffer</span><br style=\"box-sizing: border-box;\" />&nbsp;&nbsp;<span class=\"kw1\" style=\"box-sizing: border-box; color: #cc6600;\">Serial</span>.<span class=\"kw1\" style=\"box-sizing: border-box; color: #cc6600;\">print</span><span class=\"br0\" style=\"box-sizing: border-box;\">(</span><span class=\"st0\" style=\"box-sizing: border-box; color: #0066cc;\">\"The MAC address is: \"</span><span class=\"br0\" style=\"box-sizing: border-box;\">)</span><span class=\"sy0\" style=\"box-sizing: border-box;\">;</span><br style=\"box-sizing: border-box;\" />&nbsp;&nbsp;<span class=\"kw1\" style=\"box-sizing: border-box; color: #cc6600;\">for</span>&nbsp;<span class=\"br0\" style=\"box-sizing: border-box;\">(</span><span class=\"kw1\" style=\"box-sizing: border-box; color: #cc6600;\">byte</span>&nbsp;octet&nbsp;<span class=\"sy0\" style=\"box-sizing: border-box;\">=</span>&nbsp;<span class=\"nu0\" style=\"box-sizing: border-box;\">0</span><span class=\"sy0\" style=\"box-sizing: border-box;\">;</span>&nbsp;octet&nbsp;<span class=\"sy0\" style=\"box-sizing: border-box;\">&lt;</span>&nbsp;<span class=\"nu0\" style=\"box-sizing: border-box;\">6</span><span class=\"sy0\" style=\"box-sizing: border-box;\">;</span>&nbsp;octet<span class=\"sy0\" style=\"box-sizing: border-box;\">++</span><span class=\"br0\" style=\"box-sizing: border-box;\">)</span>&nbsp;<span class=\"br0\" style=\"box-sizing: border-box;\">{</span><br style=\"box-sizing: border-box;\" />&nbsp; &nbsp;&nbsp;<span class=\"kw1\" style=\"box-sizing: border-box; color: #cc6600;\">Serial</span>.<span class=\"kw1\" style=\"box-sizing: border-box; color: #cc6600;\">print</span><span class=\"br0\" style=\"box-sizing: border-box;\">(</span>macBuffer<span class=\"br0\" style=\"box-sizing: border-box;\">[</span>octet<span class=\"br0\" style=\"box-sizing: border-box;\">]</span><span class=\"sy0\" style=\"box-sizing: border-box;\">,</span>&nbsp;<span class=\"kw2\" style=\"box-sizing: border-box; color: #006699;\">HEX</span><span class=\"br0\" style=\"box-sizing: border-box;\">)</span><span class=\"sy0\" style=\"box-sizing: border-box;\">;</span><br style=\"box-sizing: border-box;\" />&nbsp; &nbsp;&nbsp;<span class=\"kw1\" style=\"box-sizing: border-box; color: #cc6600;\">if</span>&nbsp;<span class=\"br0\" style=\"box-sizing: border-box;\">(</span>octet&nbsp;<span class=\"sy0\" style=\"box-sizing: border-box;\">&lt;</span>&nbsp;<span class=\"nu0\" style=\"box-sizing: border-box;\">5</span><span class=\"br0\" style=\"box-sizing: border-box;\">)</span>&nbsp;<span class=\"br0\" style=\"box-sizing: border-box;\">{</span><br style=\"box-sizing: border-box;\" />&nbsp; &nbsp; &nbsp;&nbsp;<span class=\"kw1\" style=\"box-sizing: border-box; color: #cc6600;\">Serial</span>.<span class=\"kw1\" style=\"box-sizing: border-box; color: #cc6600;\">print</span><span class=\"br0\" style=\"box-sizing: border-box;\">(</span><span class=\"st0\" style=\"box-sizing: border-box; color: #0066cc;\">\'-\'</span><span class=\"br0\" style=\"box-sizing: border-box;\">)</span><span class=\"sy0\" style=\"box-sizing: border-box;\">;</span><br style=\"box-sizing: border-box;\" />&nbsp; &nbsp;&nbsp;<span class=\"br0\" style=\"box-sizing: border-box;\">}</span><br style=\"box-sizing: border-box;\" />&nbsp;&nbsp;<span class=\"br0\" style=\"box-sizing: border-box;\">}</span><br style=\"box-sizing: border-box;\" /><span class=\"br0\" style=\"box-sizing: border-box;\">}</span><br style=\"box-sizing: border-box;\" /><br style=\"box-sizing: border-box;\" /><span class=\"kw1\" style=\"box-sizing: border-box; color: #cc6600;\">void</span>&nbsp;<span class=\"kw3\" style=\"box-sizing: border-box; color: #cc6600; font-weight: bold;\">loop</span>&nbsp;<span class=\"br0\" style=\"box-sizing: border-box;\">(</span><span class=\"br0\" style=\"box-sizing: border-box;\">)</span>&nbsp;<span class=\"br0\" style=\"box-sizing: border-box;\">{</span><span class=\"br0\" style=\"box-sizing: border-box;\">}</span><br style=\"box-sizing: border-box;\" />&nbsp;</div>\r\n      </div>\r\n   <div class=\"sourceblocklink\" style=\"box-sizing: border-box; margin: 0px; padding: 0px; direction: ltr; text-align: right; font-size: smaller;\"><a href=\"https://www.arduino.cc/en/Reference/EthernetMACAddress?action=sourceblock&amp;num=1\" type=\"text/plain\" style=\"box-sizing: border-box; color: #00979c; text-decoration-line: none; line-height: inherit;\" target=\"_blank\">[Get Code]</a></div>\r\n   </div>\r\n<p style=\"box-sizing: border-box; margin-right: auto; margin-bottom: 1.5em; margin-left: auto; padding: 0px; direction: ltr; color: #4f4e4e; font-family: &quot;typoninesans regular 18&quot;, &quot;lucida grande&quot;, Lucida, Verdana, sans-serif; font-size: 18px; background-color: #ffffff;\">&nbsp;</p>\r\n<h4 style=\"box-sizing: border-box; margin: 1.2777em 0px 0.6em; padding: 0px; direction: ltr; line-height: 1.33333rem; text-rendering: optimizelegibility; color: #e67e22; font-size: 18px; hyphens: none; font-family: &quot;typoninesans regular 18&quot;; font-weight: 400; font-stretch: normal; background-color: #ffffff;\">See also</h4>\r\n<ul style=\"box-sizing: border-box; margin: 0px; padding: 0px 0px 0px 30px; direction: ltr; font-size: 18px; line-height: 1.6; list-style-position: outside; font-family: &quot;typoninesans regular 18&quot;, &quot;lucida grande&quot;, Lucida, Verdana, sans-serif; list-style-type: none; color: #4f4e4e; background-color: #ffffff;\">\r\n   <li style=\"box-sizing: border-box; margin: 0.235294rem 0px; padding: 0px; direction: ltr; text-indent: -18px;\"><a class=\"wikilink\" href=\"https://www.arduino.cc/en/Reference/EthernetLocalIP\" style=\"box-sizing: border-box; color: #00979c; text-decoration-line: none; line-height: inherit;\" target=\"_blank\">Ethernet.localIP()</a></li>\r\n   <li style=\"box-sizing: border-box; margin: 0.235294rem 0px; padding: 0px; direction: ltr; text-indent: -18px;\"><a class=\"wikilink\" href=\"https://www.arduino.cc/en/Reference/EthernetDnsServerIP\" style=\"box-sizing: border-box; color: #00979c; text-decoration-line: none; line-height: inherit;\" target=\"_blank\">Ethernet.dnsServerIP()</a></li>\r\n   <li style=\"box-sizing: border-box; margin: 0.235294rem 0px; padding: 0px; direction: ltr; text-indent: -18px;\"><a class=\"wikilink\" href=\"https://www.arduino.cc/en/Reference/EthernetGatewayIP\" style=\"box-sizing: border-box; color: #00979c; text-decoration-line: none; line-height: inherit;\" target=\"_blank\">Ethernet.gatewayIP()</a></li>\r\n   <li style=\"box-sizing: border-box; margin: 0.235294rem 0px; padding: 0px; direction: ltr; text-indent: -18px;\"><a class=\"wikilink\" href=\"https://www.arduino.cc/en/Reference/EthernetSubnetMask\" style=\"box-sizing: border-box; color: #00979c; text-decoration-line: none; line-height: inherit;\" target=\"_blank\">Ethernet.subnetMask()</a></li>\r\n   <li style=\"box-sizing: border-box; margin: 0.235294rem 0px; padding: 0px; direction: ltr; text-indent: -18px;\"><a class=\"wikilink\" href=\"https://www.arduino.cc/en/Reference/EthernetBegin\" style=\"box-sizing: border-box; color: #00979c; text-decoration-line: none; line-height: inherit;\" target=\"_blank\">Ethernet.begin()</a></li>\r\n   </ul>\r\n<p style=\"box-sizing: border-box; margin-right: auto; margin-bottom: 1.5em; margin-left: auto; padding: 0px; direction: ltr; color: #4f4e4e; font-family: &quot;typoninesans regular 18&quot;, &quot;lucida grande&quot;, Lucida, Verdana, sans-serif; font-size: 18px; background-color: #ffffff;\"><br style=\"box-sizing: border-box;\" /><a class=\"wikilink\" href=\"https://www.arduino.cc/en/Reference/HomePage\" style=\"box-sizing: border-box; color: #00979c; text-decoration-line: none; line-height: inherit;\" target=\"_blank\">Reference Home</a></p>\r\n<p style=\"box-sizing: border-box; margin-right: auto; margin-bottom: 1.5em; margin-left: auto; padding: 0px; direction: ltr; color: #4f4e4e; font-family: &quot;typoninesans regular 18&quot;, &quot;lucida grande&quot;, Lucida, Verdana, sans-serif; font-size: 18px; background-color: #ffffff;\"><em style=\"box-sizing: border-box;\">Corrections, suggestions, and new documentation should be posted to the&nbsp;<a class=\"urllink\" href=\"http://arduino.cc/forum/index.php/board,23.0.html\" rel=\"nofollow\" style=\"box-sizing: border-box; color: #00979c; text-decoration-line: none; line-height: inherit;\" target=\"_blank\">Forum</a>.</em></p>\r\n<p style=\"box-sizing: border-box; margin-right: auto; margin-bottom: 1.5em; margin-left: auto; padding: 0px; direction: ltr; color: #4f4e4e; font-family: &quot;typoninesans regular 18&quot;, &quot;lucida grande&quot;, Lucida, Verdana, sans-serif; font-size: 18px; background-color: #ffffff;\">The text of the Arduino reference is licensed under a&nbsp;<a class=\"urllink\" href=\"http://creativecommons.org/licenses/by-sa/3.0/\" rel=\"nofollow\" target=\"_blank\" style=\"box-sizing: border-box; color: #00979c; text-decoration-line: none; line-height: inherit;\">Creative Commons Attribution-ShareAlike 3.0 License</a>. Code samples in the reference are released into the public domain.</p>','https://www.arduino.cc/en/Reference/EthernetMACAddress','',0,0,1,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2022-02-15 08:54:39',0,'2022-02-15 08:54:39','112.222.138.204','','','','','','','','','','','',''),(524,-524,'',524,0,0,'','','html1','[Arduino] JSON 으로 데이터 서버에 보내서 php로 받아 db에 저장하기','<p>1. Arduino</p>\r\n<p>#include &lt;ArduinoJson.h&gt; //사용</p>\r\n<p>...</p>\r\n<p>// {\"device_id\":\"myesp32_1\",\"value_1\":\"aaa\",\"value_2\":\"bbb\"}</p>\r\n<p>StaticJsonBuffer&lt;200&gt; jsonBuffer;&nbsp;</p>\r\n<p>JsonObject&amp; root = jsonBuffer.createObject();&nbsp;&nbsp;</p>\r\n<p>root[\"device_id\"] = dev_name;</p>\r\n<p>root[\"value_1\"] = value_1;</p>\r\n<p>root[\"value_2\"] = value_2;&nbsp;</p>\r\n<p>...</p>\r\n<p>&nbsp;</p>\r\n<p>2. php</p>\r\n<p>&lt;?php</p>\r\n<p>$conn = new mysqli($servername, $username, $password, $dbname);</p>\r\n<p>if($conn) {</p>\r\n<p>&nbsp; &nbsp; echo \"Connection established\".\"&lt;br&gt;\";</p>\r\n<p>} else {</p>\r\n<p>&nbsp; &nbsp; die( \'Could not connect: \' . mysqli_error($conn) );</p>\r\n<p>}</p>\r\n<p>&nbsp;</p>\r\n<p>&nbsp;</p>\r\n<p>$data = json_decode(file_get_contents(\"php://input\"));</p>\r\n<p>$deviceid = $data-&gt;device_id;</p>\r\n<p>$value1 = $data-&gt;value_1;</p>\r\n<p>$value2 = $data-&gt;value_2;</p>\r\n<p><br /></p>\r\n<p>$sql = \"INSERT INTO test1(num, datetime, value1, value2) VALUES(null, NOW(), \'$deviceid\', \'$value2\')\";</p>\r\n<p>$result = mysqli_query($conn, $sql);</p>\r\n<p><br /></p>\r\n<p>if($result) {</p>\r\n<p>&nbsp; &nbsp; echo \"insert success!\";</p>\r\n<p>} else {</p>\r\n<p>&nbsp; &nbsp; echo \"failure\";</p>\r\n<p>}</p>\r\n<p>&nbsp;</p>\r\n<p>?&gt;</p>','','',0,0,6,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2022-02-18 16:47:15',2,'2022-02-18 16:47:15','112.222.138.204','','','','','','','','','','','',''),(525,-525,'',525,0,0,'','','html1','[JAVA] 자바 이클립스 개발환경 구축','<p>&nbsp;</p>\r\n<div align=\"center\" style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\">\r\n   <h2 data-ke-size=\"size26\" style=\"box-sizing: inherit; font-size: 1.62em; font-weight: normal;\"><span style=\"box-sizing: inherit; font-weight: bolder;\">1. 자바(Java Programming Language)</span></h2>\r\n   <h3 data-ke-size=\"size23\" style=\"box-sizing: inherit; font-size: 1.44em; font-weight: normal;\">(1) 자바란?</h3>\r\n   <p style=\"box-sizing: inherit; text-align: justify;\"><span style=\"box-sizing: inherit; font-weight: bolder;\">자바는 썬 마이크로시스템즈(Sun Microsystems)에서 개발한 객체지향 프로그래밍 언어</span>이다. 지금은 썬 마이크로시스템즈가 오라클에 인수되어서, 오라클 사의 제품이다.</p>\r\n   <p style=\"box-sizing: inherit; text-align: justify;\">자바의 특징은 OS에 독립적이고, 클래스 라이브러리를 제공한다는 것이다.</p>\r\n   <p style=\"box-sizing: inherit; text-align: justify;\">&nbsp;</p>\r\n   <h3 data-ke-size=\"size23\" style=\"box-sizing: inherit; font-size: 1.44em; font-weight: normal;\">(2) 자바언어의 특징</h3>\r\n   <p style=\"box-sizing: inherit; text-align: justify;\">1.&nbsp;<span style=\"box-sizing: inherit; font-weight: bolder;\">자바는 OS에 독립적</span>이고,&nbsp;<span style=\"box-sizing: inherit; font-weight: bolder;\">JVM(자바 가상머신)에 종속적</span>이다.</p>\r\n   <p style=\"box-sizing: inherit; text-align: justify;\">그래서 운영체제에 맞는 JVM 버전을 사용해주면 운영체제와 하드웨어에 관계없이 실행 가능하다.&nbsp;<span style=\"box-sizing: inherit; font-family: &quot;Noto Serif KR&quot;;\">\"Write once, run anywhere\" (한 번 작성하면, 어디서든 작동된다)</span></p>\r\n   <p style=\"box-sizing: inherit; text-align: justify;\"><span style=\"box-sizing: inherit; font-family: AppleSDGothicNeo-Regular, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, dotum, 돋움, sans-serif;\">OS에 독립적이라는 게 굉장히 신기한 부분이다. 맥을 사용하는 친구들이 마이크로소프트에서 제공하는 비쥬얼스튜디오를 구동하기 위해 부트캠프를 돌리던데...이 친구들은 이제 울지 않아도 되겠군</span></p>\r\n   <p style=\"box-sizing: inherit; text-align: justify;\">&nbsp;</p>\r\n   <p style=\"box-sizing: inherit; text-align: justify;\"><span style=\"box-sizing: inherit; font-family: AppleSDGothicNeo-Regular, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, dotum, 돋움, sans-serif;\">2.&nbsp;<span style=\"box-sizing: inherit; font-weight: bolder;\">자바는 객체지향 언어</span>이다.</span></p>\r\n   <p style=\"box-sizing: inherit; text-align: justify;\"><span style=\"box-sizing: inherit; font-family: AppleSDGothicNeo-Regular, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, dotum, 돋움, sans-serif;\">(아직은 무슨 말인지 잘 와닿지 않지만 프로그래밍 하다 보면 와닿을 거라 생각한다)</span></p>\r\n   <p style=\"box-sizing: inherit; text-align: justify;\">&nbsp;</p>\r\n   <p style=\"box-sizing: inherit; text-align: justify;\"><span style=\"box-sizing: inherit; font-family: AppleSDGothicNeo-Regular, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, dotum, 돋움, sans-serif;\">3.&nbsp;<span style=\"box-sizing: inherit; font-weight: bolder;\">비교적 배우기 쉽다</span>고 한다. 는데... 해봐야 알겠군</span></p>\r\n   <p style=\"box-sizing: inherit; text-align: justify;\">&nbsp;</p>\r\n   <p style=\"box-sizing: inherit; text-align: justify;\"><span style=\"box-sizing: inherit; font-family: AppleSDGothicNeo-Regular, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, dotum, 돋움, sans-serif;\">4.&nbsp;<span style=\"box-sizing: inherit; font-weight: bolder;\">자동 메모리 관리</span>가 된다.</span></p>\r\n   <p style=\"box-sizing: inherit; text-align: justify;\"><span style=\"box-sizing: inherit; font-family: AppleSDGothicNeo-Regular, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, dotum, 돋움, sans-serif;\">C를 공부할 때는 직접 메모리를 할당해주거나, 동적할당으로 해주어야 했는데 이 부분은 편리한 것 같다!&nbsp;</span></p>\r\n   <p style=\"box-sizing: inherit; text-align: justify;\">&nbsp;</p>\r\n   <p style=\"box-sizing: inherit; text-align: justify;\"><span style=\"box-sizing: inherit; font-family: AppleSDGothicNeo-Regular, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, dotum, 돋움, sans-serif;\">5.&nbsp;<span style=\"box-sizing: inherit; font-weight: bolder;\">네트워크와 분산처리를 지원</span>한다.</span></p>\r\n   <p style=\"box-sizing: inherit; text-align: justify;\"><span style=\"box-sizing: inherit; font-family: AppleSDGothicNeo-Regular, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, dotum, 돋움, sans-serif;\">오</span><span style=\"box-sizing: inherit; font-family: AppleSDGothicNeo-Regular, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, dotum, 돋움, sans-serif;\">오~~ 네트워크 프로그래밍 라이브러리를 지원하기 때문에, 비교적 짧은 시간에 네트워크 관련 프로그램을 쉽게 개발할 수 있다네요.</span></p>\r\n   <p style=\"box-sizing: inherit; text-align: justify;\">&nbsp;</p>\r\n   <p style=\"box-sizing: inherit; text-align: justify;\"><span style=\"box-sizing: inherit; font-family: AppleSDGothicNeo-Regular, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, dotum, 돋움, sans-serif;\">6.&nbsp;<span style=\"box-sizing: inherit; font-weight: bolder;\">멀티쓰레드를 지원</span>한다.</span></p>\r\n   <p style=\"box-sizing: inherit; text-align: justify;\"><span style=\"box-sizing: inherit; font-family: AppleSDGothicNeo-Regular, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, dotum, 돋움, sans-serif;\">쓰레드가 뭔지는 아직 잘 모르겠군요</span></p>\r\n   <p style=\"box-sizing: inherit; text-align: justify;\">&nbsp;</p>\r\n   <p style=\"box-sizing: inherit; text-align: justify;\"><span style=\"box-sizing: inherit; font-family: AppleSDGothicNeo-Regular, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, dotum, 돋움, sans-serif;\">7.&nbsp;<span style=\"box-sizing: inherit; font-weight: bolder;\">동적 로딩을 지원</span>한다.</span></p>\r\n   <p style=\"box-sizing: inherit; text-align: justify;\"><span style=\"box-sizing: inherit; font-family: AppleSDGothicNeo-Regular, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, dotum, 돋움, sans-serif;\">이건 비쥬얼스튜디오를 쓸 때 프로젝트를 나눠서 만드는 거랑 비슷한 것 같다. 클래스가 여러 개가 있기 때문에, 일부 클래스를 수정해도 전체를 다시 컴파일할 필요도 없다.</span></p>\r\n   <p style=\"box-sizing: inherit; text-align: justify;\"><span style=\"box-sizing: inherit; font-family: AppleSDGothicNeo-Regular, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, dotum, 돋움, sans-serif;\">이건 진짜 좋은 것 같다...C 하면서 이거 조금 건들면 와장창 다 에러뜨는 눈물나는 경험을 수도 없이 했기 때문....주마등처럼 스쳐지나가네요</span></p>\r\n   <p style=\"box-sizing: inherit; text-align: justify;\">&nbsp;</p>\r\n   <h3 data-ke-size=\"size23\" style=\"box-sizing: inherit; font-size: 1.44em; font-weight: normal;\"><span style=\"box-sizing: inherit; font-family: AppleSDGothicNeo-Regular, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, dotum, 돋움, sans-serif;\">(3) JVM</span></h3>\r\n   <p style=\"box-sizing: inherit; text-align: justify;\">JVM은 처음 들어보는데,&nbsp;<span style=\"box-sizing: inherit; font-weight: bolder;\">\'Java Virtual Machine\'의 줄임말</span>이다.</p>\r\n   <p style=\"box-sizing: inherit; text-align: justify;\">가상 머신은 내가 지금 사용하는 컴퓨터 안에 컴퓨터를 하나 더 얻었다고 생각하면 이해가 쉬울 것이다. 포너블이랑 모의해킹 할 때 해봤지롱!&nbsp;<span style=\"box-sizing: inherit;\">가상 머신은 많이 돌려봤기 때문에 익숙하군!<span style=\"box-sizing: inherit;\">&nbsp;</span></span></p>\r\n   <p style=\"box-sizing: inherit; text-align: justify;\">&nbsp;</p>\r\n   <p style=\"box-sizing: inherit; text-align: justify;\">그래서,&nbsp;<span style=\"box-sizing: inherit; font-weight: bolder;\">자바로 작성된 어플리케이션은 모두 가상 컴퓨터(JVM)에서만 실행이 된다</span>. 그래서 자바를 하려면 JVM은 반드시 필요하다!</p>\r\n   <p style=\"box-sizing: inherit;\">&nbsp;</p>\r\n   <p style=\"box-sizing: inherit; text-align: justify;\">일반 어플리케이션의 코드는 OS를 거쳐서 하드웨어로 전달되기 때문에, OS와 종속적이다. 그러나 자바 어플리케이션은 JVM을 거치고, OS를 거쳐서 하드웨어로 전달된다.</p>\r\n   <p style=\"box-sizing: inherit; text-align: justify;\">즉, 일반 어플리케이션과 달리<span style=\"box-sizing: inherit; font-weight: bolder;\">&nbsp;자바 어플리케이션과 OS 사이에는 JVM이 끼여있다!</span>&nbsp;여기가 앞서 말했던, 왜 자바가 OS와 독립적인지 이해가 되는 부분!</p>\r\n   <p style=\"box-sizing: inherit; text-align: justify;\">&nbsp;</p>\r\n   <table border=\"1\" data-ke-style=\"style5\" style=\"box-sizing: inherit; margin-bottom: 20px; width: 544.922px; height: 150px;\">\r\n      <tbody style=\"box-sizing: inherit;\">\r\n         <tr style=\"box-sizing: inherit;\">\r\n            <td style=\"box-sizing: inherit; padding: 8px; width: 543.922px; text-align: center;\"><span style=\"box-sizing: inherit; font-weight: bolder;\">자바 어플리케이션</span></td>\r\n            </tr>\r\n         <tr style=\"box-sizing: inherit;\">\r\n            <td style=\"box-sizing: inherit; padding: 8px; background-color: #eff6f6; width: 543.922px; text-align: center;\"><span style=\"box-sizing: inherit; background-color: #f6e199;\"><span style=\"box-sizing: inherit; font-weight: bolder;\">JVM</span></span></td>\r\n            </tr>\r\n         <tr style=\"box-sizing: inherit;\">\r\n            <td style=\"box-sizing: inherit; padding: 8px; width: 543.922px; text-align: center;\"><span style=\"box-sizing: inherit; font-weight: bolder;\">OS</span></td>\r\n            </tr>\r\n         <tr style=\"box-sizing: inherit;\">\r\n            <td style=\"box-sizing: inherit; padding: 8px; background-color: #eff6f6; width: 543.922px; text-align: center;\"><span style=\"box-sizing: inherit; font-weight: bolder;\">하드웨어</span></td>\r\n            </tr>\r\n         </tbody>\r\n      </table>\r\n   <p style=\"box-sizing: inherit;\">위는 자바 어플리케이션, 아래는 일반 어플리케이션이 하드웨어까지 전달되는 과정을 표현한 것이다.</p>\r\n   <table border=\"1\" data-ke-style=\"style4\" style=\"box-sizing: inherit; margin-bottom: 20px; width: 563.078px; height: 157px;\">\r\n      <tbody style=\"box-sizing: inherit;\">\r\n         <tr style=\"box-sizing: inherit;\">\r\n            <td style=\"box-sizing: inherit; padding: 8px; width: 562.078px; text-align: center;\"><span style=\"box-sizing: inherit; font-weight: bolder;\">일반 어플리케이션</span></td>\r\n            </tr>\r\n         <tr style=\"box-sizing: inherit;\">\r\n            <td style=\"box-sizing: inherit; padding: 8px; background-color: #f7f7f7; width: 562.078px; text-align: center;\"><span style=\"box-sizing: inherit; font-weight: bolder;\">OS</span></td>\r\n            </tr>\r\n         <tr style=\"box-sizing: inherit;\">\r\n            <td style=\"box-sizing: inherit; padding: 8px; width: 562.078px; text-align: center;\"><span style=\"box-sizing: inherit; font-weight: bolder;\">하드웨어</span></td>\r\n            </tr>\r\n         </tbody>\r\n      </table>\r\n   <p style=\"box-sizing: inherit;\">&nbsp;</p>\r\n   </div>\r\n<h2 data-ke-size=\"size26\" style=\"box-sizing: inherit; font-size: 1.62em; font-weight: normal; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; text-align: center;\"><span style=\"box-sizing: inherit; font-weight: bolder;\">2. 자바개발환경 구축하기</span></h2>\r\n<h3 data-ke-size=\"size23\" style=\"box-sizing: inherit; font-size: 1.44em; font-weight: normal; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; text-align: center;\"><span style=\"box-sizing: inherit; font-weight: bolder;\">(1) 자바 개발도구(JDK)설치하기</span></h3>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\"><span style=\"box-sizing: inherit; font-weight: bolder;\">참고로, 저의 사양은 윈도우 10, 64비트입니다.</span></p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\">JDK는 자발 개발도구로, \'Java Development Kit\'이다. JDK를 설치하면 JVM과 자바클래스 라이브러리(Java API)와 같은 자바 개발에 필요한 프로그램들이 설치된다.</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\"><a href=\"https://www.oracle.com/java/\" target=\"_blank\" rel=\"noopener\" style=\"box-sizing: inherit;\">www.oracle.com/java/</a></p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">위의 링크로 들어가서, 아래로 쭉 ~ 스크롤 한 후에 Java SE 다운로드를 클릭하자.</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">종류가 많은데, SE는 Standard Edition의 약자로 우리가 필요한 프로그램이 있는 버전이다.</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\">&nbsp;</p>\r\n<figure class=\"imageblock alignCenter\" data-origin-width=\"0\" data-origin-height=\"0\" width=\"796\" height=\"NaN\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: inherit; margin: 0px auto 20px; max-width: 100%; clear: both; display: table; position: relative; text-align: center; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\"><span data-url=\"https://blog.kakaocdn.net/dn/bhvahM/btqRQSXW2Wa/2FiTkUpGBqwz42INF2M0p0/img.png\" data-lightbox=\"lightbox\" data-alt=\"Download Java now 클릭\" style=\"box-sizing: inherit; cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/bhvahM/btqRQSXW2Wa/2FiTkUpGBqwz42INF2M0p0/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbhvahM%2FbtqRQSXW2Wa%2F2FiTkUpGBqwz42INF2M0p0%2Fimg.png\" data-origin-width=\"0\" data-origin-height=\"0\" width=\"796\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: inherit; border-style: none; max-width: 100%; display: inline-block; margin: 0px; height: auto;\" /></span>\r\n   <figcaption style=\"box-sizing: inherit; font-size: 13px; word-break: break-word; padding-top: 10px; min-height: 20px; caption-side: bottom;\">Download Java now 클릭</figcaption>\r\n   </figure>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\">&nbsp;</p>\r\n<figure class=\"imageblock alignCenter\" data-origin-width=\"0\" data-origin-height=\"0\" width=\"768\" height=\"NaN\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: inherit; margin: 0px auto 20px; max-width: 100%; clear: both; display: table; position: relative; text-align: center; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\"><span data-url=\"https://blog.kakaocdn.net/dn/eJM0OV/btqRL27ZIu1/3A8cHNh3q66vCAbMb3cwqk/img.png\" data-lightbox=\"lightbox\" data-alt=\"JDK Download 클릭\" style=\"box-sizing: inherit; cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/eJM0OV/btqRL27ZIu1/3A8cHNh3q66vCAbMb3cwqk/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeJM0OV%2FbtqRL27ZIu1%2F3A8cHNh3q66vCAbMb3cwqk%2Fimg.png\" data-origin-width=\"0\" data-origin-height=\"0\" width=\"768\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: inherit; border-style: none; max-width: 100%; display: inline-block; margin: 0px; height: auto;\" /></span>\r\n   <figcaption style=\"box-sizing: inherit; font-size: 13px; word-break: break-word; padding-top: 10px; min-height: 20px; caption-side: bottom;\">JDK Download 클릭</figcaption>\r\n   </figure>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\"><span style=\"box-sizing: inherit;\">JDK를 설치하자. 우리가 필요한 모든 프로그램은 다 여기에 있다. 자바 개발 환경을 설치하는 과정이다!</span></p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\">&nbsp;</p>\r\n<figure class=\"imageblock alignCenter\" data-origin-width=\"0\" data-origin-height=\"0\" width=\"759\" height=\"NaN\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: inherit; margin: 0px auto 20px; max-width: 100%; clear: both; display: table; position: relative; text-align: center; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\"><span data-url=\"https://blog.kakaocdn.net/dn/X7vu9/btqRTSDttYG/JvrXYIfUVPqQXPecldHf60/img.png\" data-lightbox=\"lightbox\" data-alt=\"클릭클릭\" style=\"box-sizing: inherit; cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/X7vu9/btqRTSDttYG/JvrXYIfUVPqQXPecldHf60/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FX7vu9%2FbtqRTSDttYG%2FJvrXYIfUVPqQXPecldHf60%2Fimg.png\" data-origin-width=\"0\" data-origin-height=\"0\" width=\"759\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: inherit; border-style: none; max-width: 100%; display: inline-block; margin: 0px; height: auto;\" /></span>\r\n   <figcaption style=\"box-sizing: inherit; font-size: 13px; word-break: break-word; padding-top: 10px; min-height: 20px; caption-side: bottom;\">클릭클릭</figcaption>\r\n   </figure>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">JDK를 설치할 데스크탑, 노트북의 운영체제에 맞게 파일을 설정해주자. 나는 윈도우 64비트!</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">만약 본인의 데스크탑/노트북이 윈도우 운영체제를 사용하고 있다?</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">그러면 대부분 Windows x64 Installer로 깔아주시면 될거예요.</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\">&nbsp;</p>\r\n<figure class=\"imageblock alignCenter\" data-origin-width=\"0\" data-origin-height=\"0\" width=\"647\" height=\"NaN\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: inherit; margin: 0px auto 20px; max-width: 100%; clear: both; display: table; position: relative; text-align: center; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\"><span data-url=\"https://blog.kakaocdn.net/dn/s1S4b/btqR1DrR3LE/MVG4ruPd8DcPbZCvMCx5YK/img.png\" data-lightbox=\"lightbox\" data-alt=\"\" style=\"box-sizing: inherit; cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/s1S4b/btqR1DrR3LE/MVG4ruPd8DcPbZCvMCx5YK/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fs1S4b%2FbtqR1DrR3LE%2FMVG4ruPd8DcPbZCvMCx5YK%2Fimg.png\" data-origin-width=\"0\" data-origin-height=\"0\" width=\"647\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: inherit; border-style: none; max-width: 100%; display: inline-block; margin: 0px; height: auto;\" /></span></figure>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\"><span style=\"box-sizing: inherit;\">다운로드 버튼을 누르면 이런 팝업창이 뜰거예요. 당황하지 말고 체크박스에 체크해주고, 다운로드 누르기</span></p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\">&nbsp;</p>\r\n<figure class=\"imageblock alignCenter\" data-origin-width=\"0\" data-origin-height=\"0\" width=\"538\" height=\"NaN\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: inherit; margin: 0px auto 20px; max-width: 100%; clear: both; display: table; position: relative; text-align: center; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\"><span data-url=\"https://blog.kakaocdn.net/dn/rImms/btqRQSwR9rO/RdhuLyAekWkoErMlisEtv0/img.png\" data-lightbox=\"lightbox\" data-alt=\"\" style=\"box-sizing: inherit; cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/rImms/btqRQSwR9rO/RdhuLyAekWkoErMlisEtv0/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrImms%2FbtqRQSwR9rO%2FRdhuLyAekWkoErMlisEtv0%2Fimg.png\" data-origin-width=\"0\" data-origin-height=\"0\" width=\"538\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: inherit; border-style: none; max-width: 100%; display: inline-block; margin: 0px; height: auto;\" /></span></figure>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\"><span style=\"box-sizing: inherit;\">다운로드 받은 설치파일을 실행해주시고, Next 눌러주세요.</span></p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\">&nbsp;</p>\r\n<figure class=\"imageblock alignCenter\" data-origin-width=\"0\" data-origin-height=\"0\" width=\"532\" height=\"NaN\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: inherit; margin: 0px auto 20px; max-width: 100%; clear: both; display: table; position: relative; text-align: center; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\"><span data-url=\"https://blog.kakaocdn.net/dn/nNCU7/btqROd2prIx/rkglrTS2mL32UlPKnFG831/img.png\" data-lightbox=\"lightbox\" data-alt=\"\" style=\"box-sizing: inherit; cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/nNCU7/btqROd2prIx/rkglrTS2mL32UlPKnFG831/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnNCU7%2FbtqROd2prIx%2FrkglrTS2mL32UlPKnFG831%2Fimg.png\" data-origin-width=\"0\" data-origin-height=\"0\" width=\"532\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: inherit; border-style: none; max-width: 100%; display: inline-block; margin: 0px; height: auto;\" /></span></figure>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">폴더에 접근하기 쉽게 자바 설치 경로를 변경해줍시다.</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">예전에 설치 경로 까먹어서 애먹었던 기억이 나네요.....</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\">&nbsp;</p>\r\n<figure class=\"imageblock alignCenter\" data-origin-width=\"0\" data-origin-height=\"0\" width=\"517\" height=\"NaN\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: inherit; margin: 0px auto 20px; max-width: 100%; clear: both; display: table; position: relative; text-align: center; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\"><span data-url=\"https://blog.kakaocdn.net/dn/os3tB/btqRXIAgcHh/k5MLZ7CUnCpkzB6Bt2MU30/img.png\" data-lightbox=\"lightbox\" data-alt=\"\" style=\"box-sizing: inherit; cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/os3tB/btqRXIAgcHh/k5MLZ7CUnCpkzB6Bt2MU30/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fos3tB%2FbtqRXIAgcHh%2Fk5MLZ7CUnCpkzB6Bt2MU30%2Fimg.png\" data-origin-width=\"0\" data-origin-height=\"0\" width=\"517\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: inherit; border-style: none; max-width: 100%; display: inline-block; margin: 0px; height: auto;\" /></span></figure>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">Folder name:이라고 된 부분에, C:\\jdk버전\\으로 변경하기!</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">나는 15.0.1 버전이라서, C:\\jdk15.0.1\\로 변경했다. 위에 동그라미 친 부분을 참고하자. 그리고 OK!</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\">&nbsp;</p>\r\n<figure class=\"imageblock alignCenter\" data-origin-width=\"0\" data-origin-height=\"0\" width=\"523\" height=\"NaN\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: inherit; margin: 0px auto 20px; max-width: 100%; clear: both; display: table; position: relative; text-align: center; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\"><span data-url=\"https://blog.kakaocdn.net/dn/bXOgHq/btqRVo22692/AdhJkhkDbvgwcRCkr8lSFk/img.png\" data-lightbox=\"lightbox\" data-alt=\"\" style=\"box-sizing: inherit; cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/bXOgHq/btqRVo22692/AdhJkhkDbvgwcRCkr8lSFk/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbXOgHq%2FbtqRVo22692%2FAdhJkhkDbvgwcRCkr8lSFk%2Fimg.png\" data-origin-width=\"0\" data-origin-height=\"0\" width=\"523\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: inherit; border-style: none; max-width: 100%; display: inline-block; margin: 0px; height: auto;\" /></span></figure>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\"><span style=\"box-sizing: inherit;\">NEXT</span></p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\">&nbsp;</p>\r\n<figure class=\"imageblock alignCenter\" data-origin-width=\"0\" data-origin-height=\"0\" width=\"511\" height=\"NaN\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: inherit; margin: 0px auto 20px; max-width: 100%; clear: both; display: table; position: relative; text-align: center; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\"><span data-url=\"https://blog.kakaocdn.net/dn/dkgbil/btqROfePWRB/w4IKjgqjHVs7LvnfIkHmq0/img.png\" data-lightbox=\"lightbox\" data-alt=\"\" style=\"box-sizing: inherit; cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/dkgbil/btqROfePWRB/w4IKjgqjHVs7LvnfIkHmq0/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdkgbil%2FbtqROfePWRB%2Fw4IKjgqjHVs7LvnfIkHmq0%2Fimg.png\" data-origin-width=\"0\" data-origin-height=\"0\" width=\"511\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: inherit; border-style: none; max-width: 100%; display: inline-block; margin: 0px; height: auto;\" /></span></figure>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\"><span style=\"box-sizing: inherit;\">열심히 설치 중</span></p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\">&nbsp;</p>\r\n<figure class=\"imageblock alignCenter\" data-origin-width=\"0\" data-origin-height=\"0\" width=\"501\" height=\"NaN\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: inherit; margin: 0px auto 20px; max-width: 100%; clear: both; display: table; position: relative; text-align: center; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\"><span data-url=\"https://blog.kakaocdn.net/dn/EJzas/btqROeUxMVc/u7lKpPUsFqrH5NWCQ4aHL1/img.png\" data-lightbox=\"lightbox\" data-alt=\"\" style=\"box-sizing: inherit; cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/EJzas/btqROeUxMVc/u7lKpPUsFqrH5NWCQ4aHL1/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEJzas%2FbtqROeUxMVc%2Fu7lKpPUsFqrH5NWCQ4aHL1%2Fimg.png\" data-origin-width=\"0\" data-origin-height=\"0\" width=\"501\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: inherit; border-style: none; max-width: 100%; display: inline-block; margin: 0px; height: auto;\" /></span></figure>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\"><span style=\"box-sizing: inherit;\">이렇게 뜨면 설치 완료! Close 눌러서 설치 끝내기.</span></p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\">&nbsp;</p>\r\n<h3 data-ke-size=\"size23\" style=\"box-sizing: inherit; font-size: 1.44em; font-weight: normal; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; text-align: center;\"><span style=\"box-sizing: inherit; font-weight: bolder;\">(1)-1 JDK 설치 후 환경 변수 설정하기</span></h3>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">다들 잘 따라오고 계시죠? 이번에는 JDK 설치 후에 이것저것 설치해봅시다.</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">Window키 + R 을 동시에 눌러서 나타난 실행창에, sysdm.cpl 입력하고 확인 누르기.</p>\r\n<pre id=\"code_1609502069216\" class=\"html xml\" data-ke-language=\"html\" data-ke-type=\"codeblock\" style=\"box-sizing: inherit; overflow: auto; font-family: monospace, monospace; font-size: medium; color: #333333;\">\r\n   <code class=\"hljs xml\" style=\"box-sizing: inherit; font-family: monospace, monospace; font-size: 1em; display: block; overflow-x: auto; padding: 0.5em; line-height: 1.3em; color: #abb2bf; background: rgb(40, 44, 52); border-radius: 5px;\">sysdm.cpl</code>\r\n   </pre>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\">&nbsp;</p>\r\n<figure class=\"imageblock alignCenter\" width=\"471\" height=\"NaN\" data-origin-width=\"514\" data-origin-height=\"272\" data-filename=\"blob\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: inherit; margin: 0px auto 20px; max-width: 100%; clear: both; display: table; position: relative; text-align: center; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\"><span data-url=\"https://blog.kakaocdn.net/dn/c6INuC/btqR3Ri6Hhi/JeOnUwt9L78LT9Iz3Mx330/img.png\" data-lightbox=\"lightbox\" data-alt=\"\" style=\"box-sizing: inherit; cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/c6INuC/btqR3Ri6Hhi/JeOnUwt9L78LT9Iz3Mx330/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc6INuC%2FbtqR3Ri6Hhi%2FJeOnUwt9L78LT9Iz3Mx330%2Fimg.png\" width=\"471\" data-origin-width=\"514\" data-origin-height=\"272\" data-filename=\"blob\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: inherit; border-style: none; max-width: 100%; display: inline-block; margin: 0px; height: auto;\" /></span></figure>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\"><br style=\"box-sizing: inherit;\" /><br style=\"box-sizing: inherit;\" /></p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\">&nbsp;</p>\r\n<figure class=\"imageblock alignCenter\" data-origin-width=\"0\" data-origin-height=\"0\" width=\"484\" height=\"NaN\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: inherit; margin: 0px auto 20px; max-width: 100%; clear: both; display: table; position: relative; text-align: center; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\"><span data-url=\"https://blog.kakaocdn.net/dn/cB0uFm/btqRXItv8nq/kQyMhrtkElqUv78ez13LU0/img.png\" data-lightbox=\"lightbox\" data-alt=\"\" style=\"box-sizing: inherit; cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/cB0uFm/btqRXItv8nq/kQyMhrtkElqUv78ez13LU0/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcB0uFm%2FbtqRXItv8nq%2FkQyMhrtkElqUv78ez13LU0%2Fimg.png\" data-origin-width=\"0\" data-origin-height=\"0\" width=\"484\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: inherit; border-style: none; max-width: 100%; display: inline-block; margin: 0px; height: auto;\" /></span></figure>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">시스템 속성 창이 떴나요? 잘했어요.</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">\'고급\' 탭 누르고, 아래의 \'환경 변수\'를 눌러서 환경 변수를 설정합시다!</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\">&nbsp;</p>\r\n<figure class=\"imageblock alignCenter\" data-origin-width=\"0\" data-origin-height=\"0\" width=\"691\" height=\"NaN\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: inherit; margin: 0px auto 20px; max-width: 100%; clear: both; display: table; position: relative; text-align: center; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\"><span data-url=\"https://blog.kakaocdn.net/dn/HoKYt/btqRI7uTEer/CfQzAgbmB3twYYOIGVaI10/img.png\" data-lightbox=\"lightbox\" data-alt=\"\" style=\"box-sizing: inherit; cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/HoKYt/btqRI7uTEer/CfQzAgbmB3twYYOIGVaI10/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHoKYt%2FbtqRI7uTEer%2FCfQzAgbmB3twYYOIGVaI10%2Fimg.png\" data-origin-width=\"0\" data-origin-height=\"0\" width=\"691\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: inherit; border-style: none; max-width: 100%; display: inline-block; margin: 0px; height: auto;\" /></span></figure>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">자바 경로를 설정하기 위해서 시스템 변수 만들어주기.</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">변수 이름에다가 JAVA_HOME 입력하고,</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">변수 값에다가 java 설치 폴더 경로 적어주기. 디렉터리 찾아보기로 해도 됨. 그리고 확인.</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\">&nbsp;</p>\r\n<figure class=\"imageblock alignCenter\" data-origin-width=\"0\" data-origin-height=\"0\" width=\"534\" height=\"NaN\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: inherit; margin: 0px auto 20px; max-width: 100%; clear: both; display: table; position: relative; text-align: center; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\"><span data-url=\"https://blog.kakaocdn.net/dn/SQAh4/btqR3SbeYHD/qW7hheSyjttusirbAfSyz0/img.png\" data-lightbox=\"lightbox\" data-alt=\"\" style=\"box-sizing: inherit; cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/SQAh4/btqR3SbeYHD/qW7hheSyjttusirbAfSyz0/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSQAh4%2FbtqR3SbeYHD%2FqW7hheSyjttusirbAfSyz0%2Fimg.png\" data-origin-width=\"0\" data-origin-height=\"0\" width=\"534\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: inherit; border-style: none; max-width: 100%; display: inline-block; margin: 0px; height: auto;\" /></span></figure>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">시스템 변수에 추가해준 JAVA_HOME을 path에 추가해봅시다.</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">스크롤을 열심히 내려서, Path를 찾아준 후에 클릭! 하고 편집 눌러주기</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">&nbsp;</p>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\">&nbsp;</p>\r\n<figure class=\"imageblock alignCenter\" data-origin-width=\"0\" data-origin-height=\"0\" width=\"501\" height=\"NaN\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: inherit; margin: 0px auto 20px; max-width: 100%; clear: both; display: table; position: relative; text-align: center; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\"><span data-url=\"https://blog.kakaocdn.net/dn/ztWXW/btqROfeQFW4/Ek9szPP7PmZrn2Q4y6u9G0/img.png\" data-lightbox=\"lightbox\" data-alt=\"\" style=\"box-sizing: inherit; cursor: pointer;\"><img src=\"https://blog.kakaocdn.net/dn/ztWXW/btqROfeQFW4/Ek9szPP7PmZrn2Q4y6u9G0/img.png\" srcset=\"https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FztWXW%2FbtqROfeQFW4%2FEk9szPP7PmZrn2Q4y6u9G0%2Fimg.png\" data-origin-width=\"0\" data-origin-height=\"0\" width=\"501\" data-ke-mobilestyle=\"widthContent\" style=\"box-sizing: inherit; border-style: none; max-width: 100%; display: inline-block; margin: 0px; height: auto;\" /></span></figure>\r\n<p style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium;\">&nbsp;</p>\r\n<p data-ke-size=\"size16\" style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">새로운 경로를 추가해주기 위해 \'새로 만들기\' 클릭!</p>\r\n<p data-ke-size=\"size16\" style=\"box-sizing: inherit; color: #333333; font-family: &quot;Noto Sans KR&quot;, Arial, &quot;Apple SD Gothic Neo&quot;, &quot;Malgun Gothic&quot;, &quot;맑은 고딕&quot;, &quot;Nanum Gothic&quot;, Dotum, 돋움, Helvetica, sans-serif; font-size: medium; text-align: center;\">칸에,<span style=\"box-sizing: inherit;\">&nbsp;</span><span style=','https://i-am-seongni.tistory.com/11','',1,0,4,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2022-02-19 01:09:45',0,'2022-02-19 01:09:45','192.168.219.101','','','','','','','','','','','',''),(523,-523,'',523,0,0,'','','html1','[ETC] 전압분배, 병렬저항 계산기','<p>Vin = Vout / (R2 / (R2 + R1))</p>\r\n<p>R1 = (R2 * (Vin - Vout)) / Vout</p>\r\n<p>R2 = (R1 * Vout) / (Vin - Vout)</p>\r\n<p>Vout = Vin * (R2 / (R1 + R2))</p>','','',0,0,1,0,0,'admin','*B9FF5DF52BD3C5F13EA3D506E09A21D17ECF6557','최고관리자','bk94005@naver.com','','2022-02-15 09:27:06',2,'2022-02-15 09:27:06','112.222.138.204','','','','','','','','','','','','');
