<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>IT 개발자 Note</title>
    <link>https://coding-notes.tistory.com/</link>
    <description>행복한 개발자 
programmer since 1995.</description>
    <language>ko</language>
    <pubDate>Wed, 27 May 2026 23:50:24 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>자연&amp;amp;사람</managingEditor>
    <image>
      <title>IT 개발자 Note</title>
      <url>https://tistory1.daumcdn.net/tistory/3277195/attach/4337756c3353422e9b9b6055000a4d4f</url>
      <link>https://coding-notes.tistory.com</link>
    </image>
    <item>
      <title>Main</title>
      <link>https://coding-notes.tistory.com/226</link>
      <description>&lt;figure id=&quot;og_1575849301261&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/oR5hs/hyD0ZPxiW5/YEZ02Kky81cb0urXTJ28m0/img.png?width=210&amp;amp;height=240&amp;amp;face=0_0_210_240,https://scrap.kakaocdn.net/dn/blNqLg/hyD017ErVy/BZm02JhRkrgcEu4f12rz7K/img.png?width=210&amp;amp;height=240&amp;amp;face=0_0_210_240,https://scrap.kakaocdn.net/dn/c3Kj3y/hyD053hkVt/VqrAW4JAHxA4IhnTV9YnQk/img.jpg?width=831&amp;amp;height=554&amp;amp;face=0_0_831_554&quot; data-og-url=&quot;https://www.it-note.kr/268&quot; data-og-source-url=&quot;https://www.it-note.kr/268&quot; data-og-host=&quot;www.it-note.kr&quot; data-og-description=&quot;1. C 프로그래밍 언어는? 2. C언어 개발 환경 (실습 환경) 3. C언어의 컴파일 과정 4. C 소스 파일 구성 5. 주석문(Comment) 6. 식별자 명명 규칙 7. C 프로그래밍의 시작 - 함수 8. 변수와 상수 (정수형) 9. 변..&quot; data-og-title=&quot;C Programming Language 문법&quot; data-og-type=&quot;article&quot;&gt;&lt;a href=&quot;https://www.it-note.kr/268&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.it-note.kr/268&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/oR5hs/hyD0ZPxiW5/YEZ02Kky81cb0urXTJ28m0/img.png?width=210&amp;amp;height=240&amp;amp;face=0_0_210_240,https://scrap.kakaocdn.net/dn/blNqLg/hyD017ErVy/BZm02JhRkrgcEu4f12rz7K/img.png?width=210&amp;amp;height=240&amp;amp;face=0_0_210_240,https://scrap.kakaocdn.net/dn/c3Kj3y/hyD053hkVt/VqrAW4JAHxA4IhnTV9YnQk/img.jpg?width=831&amp;amp;height=554&amp;amp;face=0_0_831_554');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;C Programming Language 문법&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;1. C 프로그래밍 언어는? 2. C언어 개발 환경 (실습 환경) 3. C언어의 컴파일 과정 4. C 소스 파일 구성 5. 주석문(Comment) 6. 식별자 명명 규칙 7. C 프로그래밍의 시작 - 함수 8. 변수와 상수 (정수형) 9. 변..&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.it-note.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;figure id=&quot;og_1570866394596&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/AjfRQ/hyDcreQ54c/C2ijKNKsKquN1NaAxR9GL1/img.png?width=321&amp;amp;height=313&amp;amp;face=0_0_321_313,https://scrap.kakaocdn.net/dn/kAgeX/hyDenokmAV/VNoM5ScMlw8wypQRlaW5K1/img.jpg?width=831&amp;amp;height=554&amp;amp;face=0_0_831_554,https://scrap.kakaocdn.net/dn/bCcx4T/hyDelYlq4K/vzpMKHpT8vOQGp1ok90rPk/img.png?width=321&amp;amp;height=313&amp;amp;face=0_0_321_313&quot; data-og-url=&quot;https://www.it-note.kr/204&quot; data-og-source-url=&quot;https://www.it-note.kr/204&quot; data-og-host=&quot;www.it-note.kr&quot; data-og-description=&quot;Stream File I/O Library Stream File I/O 함수는 System Call 함수 대비 시스템의 부하를 줄이면서 사용을 편리성을 제공합니다. fclose(3) - open된 stream 닫기 fclose(3) #include int fclose(FILE *fp); fop..&quot; data-og-title=&quot;C 표준 Library&quot; data-og-type=&quot;article&quot;&gt;&lt;a href=&quot;https://www.it-note.kr/204&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.it-note.kr/204&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/AjfRQ/hyDcreQ54c/C2ijKNKsKquN1NaAxR9GL1/img.png?width=321&amp;amp;height=313&amp;amp;face=0_0_321_313,https://scrap.kakaocdn.net/dn/kAgeX/hyDenokmAV/VNoM5ScMlw8wypQRlaW5K1/img.jpg?width=831&amp;amp;height=554&amp;amp;face=0_0_831_554,https://scrap.kakaocdn.net/dn/bCcx4T/hyDelYlq4K/vzpMKHpT8vOQGp1ok90rPk/img.png?width=321&amp;amp;height=313&amp;amp;face=0_0_321_313');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;C 표준 Library&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Stream File I/O Library Stream File I/O 함수는 System Call 함수 대비 시스템의 부하를 줄이면서 사용을 편리성을 제공합니다. fclose(3) - open된 stream 닫기 fclose(3) #include int fclose(FILE *fp); fop..&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.it-note.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;figure id=&quot;og_1570866477022&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/4f86s/hyDcESLQGk/D5yCBGzKoIAhUDzZlKQWP0/img.png?width=241&amp;amp;height=197&amp;amp;face=0_0_241_197,https://scrap.kakaocdn.net/dn/JBztu/hyDeoU4Pxg/QzCKs0zt0NXw2jekjzKCLk/img.jpg?width=831&amp;amp;height=554&amp;amp;face=0_0_831_554&quot; data-og-url=&quot;https://www.it-note.kr/233&quot; data-og-source-url=&quot;https://www.it-note.kr/233&quot; data-og-host=&quot;www.it-note.kr&quot; data-og-description=&quot;TCP/IP 응용 Socket 라이브러리는 TCP/IP 뿐만 아니라 다양한 통신 protocol을 지원하기 위해 만들어진 system call 함수들입니다. 이 들 함수들에 TCP/IP의 특성에 맞는 데이터를 설정하고 socket을 생성하는 등..&quot; data-og-title=&quot;TCP/IP 통신 프로그램&quot; data-og-type=&quot;article&quot;&gt;&lt;a href=&quot;https://www.it-note.kr/233&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.it-note.kr/233&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/4f86s/hyDcESLQGk/D5yCBGzKoIAhUDzZlKQWP0/img.png?width=241&amp;amp;height=197&amp;amp;face=0_0_241_197,https://scrap.kakaocdn.net/dn/JBztu/hyDeoU4Pxg/QzCKs0zt0NXw2jekjzKCLk/img.jpg?width=831&amp;amp;height=554&amp;amp;face=0_0_831_554');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;TCP/IP 통신 프로그램&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;TCP/IP 응용 Socket 라이브러리는 TCP/IP 뿐만 아니라 다양한 통신 protocol을 지원하기 위해 만들어진 system call 함수들입니다. 이 들 함수들에 TCP/IP의 특성에 맞는 데이터를 설정하고 socket을 생성하는 등..&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.it-note.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;figure id=&quot;og_1570332606383&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/9uhyw/hyC6IHmI82/5DFR2L0YDY6skwSgSHiwIk/img.png?width=250&amp;amp;height=203&amp;amp;face=0_0_250_203,https://scrap.kakaocdn.net/dn/MBXue/hyC6QrOc6s/QUYmGtRe9etYpnm6D53xQk/img.jpg?width=831&amp;amp;height=554&amp;amp;face=0_0_831_554&quot; data-og-url=&quot;https://www.it-note.kr/62&quot; data-og-source-url=&quot;https://www.it-note.kr/62&quot; data-og-host=&quot;www.it-note.kr&quot; data-og-description=&quot;이 문서는 Oracle의 Pro*C/C++ Programmer's Guide 11g Release 2 (11.2) 문서를 참조하여 정리한 문서입니다. Pro*C는 Java 등의 언어가 보편화되면서 사용빈도가 많이 떨어진 개발 tool입니다. 그러나 금융권(..&quot; data-og-title=&quot;Pro*C 목차 및 Sample Source&quot; data-og-type=&quot;article&quot;&gt;&lt;a href=&quot;https://www.it-note.kr/62&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.it-note.kr/62&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/9uhyw/hyC6IHmI82/5DFR2L0YDY6skwSgSHiwIk/img.png?width=250&amp;amp;height=203&amp;amp;face=0_0_250_203,https://scrap.kakaocdn.net/dn/MBXue/hyC6QrOc6s/QUYmGtRe9etYpnm6D53xQk/img.jpg?width=831&amp;amp;height=554&amp;amp;face=0_0_831_554');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Pro*C 목차 및 Sample Source&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;이 문서는 Oracle의 Pro*C/C++ Programmer's Guide 11g Release 2 (11.2) 문서를 참조하여 정리한 문서입니다. Pro*C는 Java 등의 언어가 보편화되면서 사용빈도가 많이 떨어진 개발 tool입니다. 그러나 금융권(..&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.it-note.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>관리</category>
      <author>자연&amp;amp;사람</author>
      <guid isPermaLink="true">https://coding-notes.tistory.com/226</guid>
      <comments>https://coding-notes.tistory.com/226#entry226comment</comments>
      <pubDate>Wed, 13 Dec 2023 21:03:00 +0900</pubDate>
    </item>
    <item>
      <title>통합 암복호화 모듈</title>
      <link>https://coding-notes.tistory.com/381</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthContent&quot; data-filename=&quot;img-command.png&quot; data-origin-width=&quot;267&quot; data-origin-height=&quot;201&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2fDrV/btsBYrGBybt/ofYawi2HSapzgp0DBelbCK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2fDrV/btsBYrGBybt/ofYawi2HSapzgp0DBelbCK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2fDrV/btsBYrGBybt/ofYawi2HSapzgp0DBelbCK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2fDrV%2FbtsBYrGBybt%2FofYawi2HSapzgp0DBelbCK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;267&quot; height=&quot;201&quot; data-filename=&quot;img-command.png&quot; data-origin-width=&quot;267&quot; data-origin-height=&quot;201&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;지원하는 암/복호화 (대/소문자 구분없음)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp; &amp;nbsp;- AES256/CBC/PKCS5Padding&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp; &amp;nbsp;- AES256/CBC/PKCS7Padding&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp; &amp;nbsp;- AES192/CBC/PKCS5Padding&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp; &amp;nbsp;- AES192/CBC/PKCS7Padding&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp; &amp;nbsp;- AES128/CBC/PKCS5Padding&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp; &amp;nbsp;- AES128/CBC/PKCS7Padding&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;지원하는 암호화 (단방향 암호화)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; - md5&lt;br /&gt;&amp;nbsp; &amp;nbsp; - sha1&lt;br /&gt;&amp;nbsp; &amp;nbsp; - sha224, sha256, sha512, sha512/224, sha512/256&lt;br /&gt;&amp;nbsp; &amp;nbsp; - sha3_224, sha3_256, sha3_512&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;지원하는 Encoding/Decoding&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;- BASE64&lt;br /&gt;&amp;nbsp; &amp;nbsp;- HEX&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;빌드 방법시 유의사항&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; - openssl을 사용하므로 compile시에 -l&lt;span style=&quot;color: #ee2323;&quot;&gt;crypto&lt;/span&gt; option추가&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;파일 다운로드&lt;/b&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/bt5E43/btsBXPH4Bhf/SPQGFbECXqGc0lr12eeyvk/xchipher.h?attach=1&amp;amp;knm=tfile.h&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;xchipher.h&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.01MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/HTs1Y/btsBUbrO8xC/TufbdQTkS1oJ45STOTyOs1/xcipher.c?attach=1&amp;amp;knm=tfile.c&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;xcipher.c&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.02MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;Sample 소스&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/mY3YY/btsBYvCyO3I/ETKgG4KmvDlRg6LHKN0Tdk/xcipher_sample.c?attach=1&amp;amp;knm=tfile.c&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;xcipher_sample.c&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.01MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>C언어 응용/활용</category>
      <category>AES128/CBC</category>
      <category>AES192/CBC</category>
      <category>AES256/CBC</category>
      <category>base64</category>
      <category>Hex</category>
      <author>자연&amp;amp;사람</author>
      <guid isPermaLink="true">https://coding-notes.tistory.com/381</guid>
      <comments>https://coding-notes.tistory.com/381#entry381comment</comments>
      <pubDate>Wed, 13 Dec 2023 21:02:47 +0900</pubDate>
    </item>
    <item>
      <title>BASE64 encoding/decoding 구현</title>
      <link>https://coding-notes.tistory.com/380</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthContent&quot; data-filename=&quot;img-command.png&quot; data-origin-width=&quot;267&quot; data-origin-height=&quot;201&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NJ4eg/btsBUJ1dlBG/XOzeRAQIFUrWVA0gmJyPkK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NJ4eg/btsBUJ1dlBG/XOzeRAQIFUrWVA0gmJyPkK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NJ4eg/btsBUJ1dlBG/XOzeRAQIFUrWVA0gmJyPkK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNJ4eg%2FbtsBUJ1dlBG%2FXOzeRAQIFUrWVA0gmJyPkK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;267&quot; height=&quot;201&quot; data-filename=&quot;img-command.png&quot; data-origin-width=&quot;267&quot; data-origin-height=&quot;201&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;컴퓨터 분야에서 쓰이는 Base 64 (베이스 육십사)란 8비트 이진 데이터(예를 들어 실행 파일이나, ZIP 파일 등)를 문자 코드에 영향을 받지 않는 공통 ASCII 영역의 문자들로만 이루어진 일련의 문자열로 바꾸는 인코딩 방식을 가리키는 개념이다. 원래 Base 64를 글자 그대로 번역하여 보면 64진법이란 뜻이다. 특별히 64진법이 컴퓨터에서 흥미로운 것은, 64가 2의 제곱수(64 = 26)이며, 2의 제곱수들에 기반한 진법들 중에서 화면에 표시되는 ASCII 문자들을 써서 표현할 수 있는 가장 큰 진법이기 때문이다. 즉, 다음 제곱수인 128진법에는 128개의 기호가 필요한데 화면에 표시되는 ASCII 문자들은 128개가 되지 않는다. &lt;span style=&quot;background-color: #ffffff; color: #202122; text-align: start;&quot;&gt;그런 까닭에 이 인코딩은 전자 메일을 통한 이진 데이터 전송 등에 많이 쓰이고 있다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt; (위키백과 참조)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;소스 파일은 이 페이지의 하단에서 다운로드할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;BASE64 encoding/decoding 구현 함수의 header file&lt;br /&gt;(base64.h)&lt;/p&gt;
&lt;pre id=&quot;code_1702367531024&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#ifndef __BASE64_H__
#define __BASE64_H__

/* ==================================================================
  BASE64_encode
    주어진 문자열을 base64로 encoding한다.(= padding추가)
  parameter
    dest : base64 encoding한 데이터를 저장함
    src : base64 encoding할 데이터
    src_len : encoding할 데이터의 길이
  return
    0 이상 : encoding된 데이터의 길이(0 또는 4의 배수)
    -1 이하 : 오류
       -1 : 문자열의 길이가 -값으로 설정됨
================================================================== */
int BASE64_encode(char* dest, int dest_size, const unsigned char* src, size_t src_len);

/* ==================================================================
  BASE64_decode
    Base64로 encoding된 데이터를 decoding한다.
  parameter
    dest : decoding 결과를 저장할 buffer
    src : decoding할 데이터(base64 encoding된 데이터)
    src_len : decoding할 데이터의 길이(4의 배수이어야 함)
  return
    0 이상 : decoding된 데이터의 길이
    -1 : decoding할 data의 길이가 4의 배수가 아님
    -2 : decoding data가 base64 규칙이 아님
================================================================== */
int BASE64_decode(unsigned char* dest, int dest_size, const char* src, size_t src_len);

#endif&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;base64 encoding/decoding함수의 구현&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(base64.c)&lt;/p&gt;
&lt;pre id=&quot;code_1702367655294&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;string.h&amp;gt;

static const char BASE64_CHARS[] = &quot;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/&quot;;
static const char BASE64_PAD_CHAR = '=';
static const int  BASE64_PAD_CHAR_CODE = 64;

/* ==================================================================
  BASE64_index
    Base64 encoding된 문자가 BASE64 code상 몇번째에 위치하는 지를 return 한다.
  parameter
    ch : base64코드표의 위치를 얻으려는 문자(A~Z,a~z,0~9,+,/)
  return
    0 이상 : BASE64 문자표 상의 위치
    -1 : BASE64 encoding 문자표가 아님
================================================================== */
static int BASE64_index(char ch)
{
    if('A' &amp;lt;= ch &amp;amp;&amp;amp; ch &amp;lt;= 'Z') {
        return ch - 'A';
    } else if('a' &amp;lt;= ch &amp;amp;&amp;amp; ch &amp;lt;= 'z') {
        return ch - 'a' + 26;
    } else if('0' &amp;lt;= ch &amp;amp;&amp;amp; ch &amp;lt;= '9') {
        return ch - '0' + 52;
    } else if(ch == '+') {
        return 62;
    } else if(ch == '/') {
        return 63;
    } else if(ch == BASE64_PAD_CHAR) {
        return BASE64_PAD_CHAR_CODE;
    } else {
        return -1;
    }
}

/* ==================================================================
  BASE64_block_encode
    3바이트 이하의 문자열을 base64로 encoding하여 4바이트로 변환한다. (= padding추가)
  parameter
    dest : base64 encoding한 데이터를 저장함
    src : base64 encoding할 데이터
    src_len : encoding할 데이터의 길이
  return
    0 이상 : encoding된 데이터의 길이(0 또는 4)
    -1 이하 :
    -1 : 문자열의 길이가 -값으로 설정됨
================================================================== */
static int BASE64_block_encode(unsigned char *dest, const unsigned char *src, int src_len)
{
    memset(dest, '=', 4);

    if(src_len &amp;lt; 0) {
        return -1;
    } else if(src_len == 0) {
        return 0;
    }
    dest[0] = BASE64_CHARS[src[0] &amp;gt;&amp;gt; 2];
    if(src_len == 1) {
        dest[1] = BASE64_CHARS[(src[0] &amp;amp; 0x03) &amp;lt;&amp;lt; 4];
        return 4;
    }
    dest[1] = BASE64_CHARS[((src[0] &amp;amp; 0x03) &amp;lt;&amp;lt; 4) | (src[1] &amp;gt;&amp;gt; 4)];
    if(src_len == 2) {
        dest[2] = BASE64_CHARS[(src[1] &amp;amp; 0x0f) &amp;lt;&amp;lt; 2];
        return 4;
    }
    dest[2] = BASE64_CHARS[((src[1] &amp;amp; 0x0f) &amp;lt;&amp;lt; 2) | (src[2] &amp;gt;&amp;gt; 6)];
    dest[3] = BASE64_CHARS[src[2] &amp;amp; 0x3f];

    return 4;
}

/* ==================================================================
  BASE64_encode
    주어진 문자열을 base64로 encoding한다.(= padding추가)
  parameter
    dest : base64 encoding한 데이터를 저장함
    src : base64 encoding할 데이터
    src_len : encoding할 데이터의 길이
  return
    0 이상 : encoding된 데이터의 길이(0 또는 4의 배수)
    -1 이하 : 오류
       -1 : 문자열의 길이가 -값으로 설정됨
================================================================== */
int BASE64_encode(char* dest, int dest_size, const unsigned char* src, size_t src_len)
{
    int idx1, idx2;
    int ret = 0;
    int rslt_len = 0;
   
    for(idx1 = 0, idx2 = 0; idx1 &amp;lt; src_len; idx1 += 3, idx2 += 4) {
        ret = BASE64_block_encode(&amp;amp;dest[idx2], &amp;amp;src[idx1], src_len - idx1 &amp;gt;= 3 ? 3 : src_len - idx1);
        if(ret &amp;lt; 0) {
            return ret;
        } else {
            rslt_len += ret;
        }
    }
    return rslt_len;
}


/* ==================================================================
  BASE64_block_decode
    Base64로 된 4바이트의 데이터를 decoding한다
  parameter
    dest : decoding 결과를 저장할 buffer
    src : decoding할 데이터(base64 encoding된 데이터)
    src_len : decoding할 데이터의 길이(항상 4)
  return
    0 이상 : decoding된 데이터의 길이
    -1 이하 : 오류
       -1 : decoding할 data의 길이가 4의 배수가 아님
       -2 : decoding data가 base64 규칙이 아님
================================================================== */
static int BASE64_block_decode(unsigned char *dest, const unsigned char *src, int src_len)
{
    int ch[4], idx;

    if(src_len == 0) {
        return 0;
    } else if(src_len != 4) {
        return -1;
    }

    for(idx = 0; idx &amp;lt; src_len; idx++) {
        if((ch[idx] = BASE64_index(src[idx])) &amp;lt; 0) {
            return -2;
        }
    }
    if(ch[0] == BASE64_PAD_CHAR_CODE || ch[1] == BASE64_PAD_CHAR_CODE) {
        return -2;
    }
   
    dest[0] = (ch[0] &amp;lt;&amp;lt; 2) | (ch[1] &amp;gt;&amp;gt; 4);
    if(ch[2] == BASE64_PAD_CHAR_CODE) {
        return 1;
    }
    dest[1] = ((ch[1] &amp;amp; 0x0f) &amp;lt;&amp;lt; 4) | (ch[2] &amp;gt;&amp;gt; 2);
    if(ch[3] == BASE64_PAD_CHAR_CODE) {
        return 2;
    }
    dest[2] = ((ch[2] &amp;amp; 0x03) &amp;lt;&amp;lt; 6) | ch[3];
    return 3;
}

/* ==================================================================
  BASE64_decode
    Base64로 encoding된 데이터를 decoding한다.
  parameter
    dest : decoding 결과를 저장할 buffer
    src : decoding할 데이터(base64 encoding된 데이터)
    src_len : decoding할 데이터의 길이(4의 배수이어야 함)
  return
    0 이상 : decoding된 데이터의 길이
    -1 : decoding할 data의 길이가 4의 배수가 아님
    -2 : decoding data가 base64 규칙이 아님
================================================================== */
int BASE64_decode(unsigned char* dest, int dest_size, const char* src, size_t src_len)
{
    int idx1, idx2;
    int ret = 0;
    int rslt_len = 0;

    if(src_len % 4 != 0) {
        return -1;
    }
    for(idx1 = 0, idx2 = 0; idx1 &amp;lt; src_len; idx1 += 4, idx2 += 3) {
        ret = BASE64_block_decode(&amp;amp;dest[idx2], &amp;amp;src[idx1], src_len - idx1 &amp;gt;= 4 ? 4 : src_len - idx1);
        if(ret &amp;lt; 0) {
            return ret;
        } else {
            rslt_len += ret;
        }
    }
    return rslt_len;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;base64 encoding/decoding 함수 호출 sample 소스&lt;/p&gt;
&lt;pre id=&quot;code_1702367710223&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;
#include &amp;lt;string.h&amp;gt;
#include &amp;lt;base64.h&amp;gt;

int main(int argc, char **argv)
{
    char buffer[100] = &quot;가나다123456&quot;;
    char base64[100];
    char decode[100];
    int ret_size;
  
    memset(base64, 0x00, sizeof(base64));
    memset(decode, 0x00, sizeof(decode));
   
    printf(&quot;[%s] : [%d]bytes encoding....\n&quot;, buffer, strlen(buffer));
    ret_size = BASE64_encode(base64, 1000, buffer, strlen(buffer));
    printf(&quot;ret size: [%d]\n&quot;, ret_size);
    printf(&quot;base64: [%s]\n&quot;, base64);
   
    ret_size = BASE64_decode(decode, 1024, base64, strlen(base64));
    printf(&quot;ret size: [%d]\n&quot;, ret_size);
    printf(&quot;decode: [%s]\n&quot;, decode);
   
    return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파일 다운로드&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/cPu7nz/btsBRTje7kl/49VMmZNxE0aMyFQTFE49Jk/base64.h?attach=1&amp;amp;knm=tfile.h&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;base64.h&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.00MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/FPvIO/btsBQkBrLxw/gRWhQ43ngrFdl4zM8806p1/base64.c?attach=1&amp;amp;knm=tfile.c&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;base64.c&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.01MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/cdtarW/btsBGWIsK1s/higohfKqXyiFX5wiCehQf0/base64_example.c?attach=1&amp;amp;knm=tfile.c&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;base64_example.c&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.00MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>C언어 응용/활용</category>
      <category>base64</category>
      <author>자연&amp;amp;사람</author>
      <guid isPermaLink="true">https://coding-notes.tistory.com/380</guid>
      <comments>https://coding-notes.tistory.com/380#entry380comment</comments>
      <pubDate>Wed, 13 Dec 2023 20:48:02 +0900</pubDate>
    </item>
    <item>
      <title>[재귀함수] 10진수를 2진수, 8진수, 16진수로 변환하기</title>
      <link>https://coding-notes.tistory.com/372</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;question.jpg&quot; data-origin-width=&quot;313&quot; data-origin-height=&quot;313&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c0UkpT/btri5Sij87d/8wx8Vvi7MERKhy0kkkruh1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c0UkpT/btri5Sij87d/8wx8Vvi7MERKhy0kkkruh1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c0UkpT/btri5Sij87d/8wx8Vvi7MERKhy0kkkruh1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc0UkpT%2Fbtri5Sij87d%2F8wx8Vvi7MERKhy0kkkruh1%2Fimg.jpg&quot; data-filename=&quot;question.jpg&quot; data-origin-width=&quot;313&quot; data-origin-height=&quot;313&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Nanum Gothic;&quot;&gt;&lt;b&gt;문제).&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Nanum Gothic;&quot;&gt;10진수 데이터를 입력받아서 2진수, 8진수, 16진수로 변환하는 재귀호출함수를 구현하시오.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Nanum Gothic;&quot;&gt;&lt;b&gt;실행 예1).&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;입력)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1575936297305&quot; class=&quot;html xml&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;html&quot;&gt;&lt;code&gt;10진수 정수 입력: 25&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;결과).&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1575936201122&quot; class=&quot;html xml&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;html&quot;&gt;&lt;code&gt;2진수: 11001
8진수: 31
16진수: 19&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: 'Nanum Gothic';&quot;&gt;답은 아래에... &amp;darr;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: 'Nanum Gothic';&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;스스로 풀어보시고&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;... &amp;darr;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: 'Nanum Gothic';&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;아래 답과 비교해보세요. &amp;darr;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;프로그램 소스&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1578017565270&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

const static char NUMBERS[16] 
            = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};

/* 10 진수를 2 ~ 16진수로 변한하는 함수 */
void decimal_to_base_number(long num, int base)
{
	long temp = num;
	
	if(base &amp;lt; 2 || base &amp;gt; 16) {
		printf(&quot;2 ~ 16진수만 지원 가능합니다.\n&quot;);
		return;
	}
	if(num &amp;lt;= 0) {
		return;
	}
	temp /= base;
	
	decimal_to_base_number(temp, base);
	
	printf(&quot;%c&quot;, NUMBERS[num % base]);
}

int main(void)
{
    long number;
   
    printf(&quot;10진수 정수 입력: &quot;);
    scanf(&quot;%ld&quot;, &amp;amp;number);

	printf(&quot;\n2진수: &quot;);
	decimal_to_base_number(number, 2);
	
	printf(&quot;\n8진수: &quot;);
	decimal_to_base_number(number, 8);

	printf(&quot;\n16진수: &quot;);
	decimal_to_base_number(number, 16);
	
    return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>C언어 문제/수학 문제</category>
      <author>자연&amp;amp;사람</author>
      <guid isPermaLink="true">https://coding-notes.tistory.com/372</guid>
      <comments>https://coding-notes.tistory.com/372#entry372comment</comments>
      <pubDate>Wed, 27 Oct 2021 18:02:19 +0900</pubDate>
    </item>
    <item>
      <title>삼각형의 종류(예각, 직각, 둔각)와 둘레, 넓이 구하기</title>
      <link>https://coding-notes.tistory.com/371</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-filename=&quot;question.jpg&quot; data-origin-width=&quot;313&quot; data-origin-height=&quot;313&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cBuC0K/btriZG3gY3Y/yNtCeE16vluQdsuUDArPA1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cBuC0K/btriZG3gY3Y/yNtCeE16vluQdsuUDArPA1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cBuC0K/btriZG3gY3Y/yNtCeE16vluQdsuUDArPA1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcBuC0K%2FbtriZG3gY3Y%2FyNtCeE16vluQdsuUDArPA1%2Fimg.jpg&quot; data-filename=&quot;question.jpg&quot; data-origin-width=&quot;313&quot; data-origin-height=&quot;313&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Nanum Gothic;&quot;&gt;&lt;b&gt;문제).&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Nanum Gothic;&quot;&gt;정수인 삼각형의 세변을 길이를 입력한 후, 삼각형의 종류(예각삼각형, 직각삼각형, 둔각삼각형)를 판단하고 삼각형의 둘레의 길이와 면적을 구하시오.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: Nanum Gothic;&quot;&gt;&lt;b&gt;실행 예1).&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;입력)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1575936297305&quot; class=&quot;c++ arduino&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;c++&quot;&gt;&lt;code&gt;세 변의 길이를 입력하세요 : 3 4 5&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;결과).&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1575936201122&quot; class=&quot;c++ arduino&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;c++&quot;&gt;&lt;code&gt;직각삼각형입니다.
삼각형의 둘레는 12이고,
삼각형의 면적은 6.000000입니다.&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: 'Nanum Gothic';&quot;&gt;답은 아래에... &amp;darr;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: 'Nanum Gothic';&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;스스로 풀어보시고&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;... &amp;darr;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; font-family: 'Nanum Gothic';&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;아래 답과 비교해보세요. &amp;darr;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;프로그램 소스&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1578017565270&quot; class=&quot;c++ arduino&quot; data-ke-language=&quot;c++&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;
#include &amp;lt;math.h&amp;gt;

int main(void)
{
    int a, b, c, len;
    double area, p;

    printf(&quot;세 변의 길이를 입력하세요 : &quot;);
    scanf(&quot;%d %d %d&quot;, &amp;amp;a, &amp;amp;b, &amp;amp;c);
    if (a + b &amp;lt;= c || a + c &amp;lt;= b || b + c &amp;lt;= a) {
        printf(&quot;삼각형이 아닙니다.\n&quot;);
        return 0;
    } else if (a * a + b * b == c * c || a * a + c * c == b * b || c * c + b * b == a * a) {
        printf(&quot;직각삼각형입니다.\n&quot;);
    } else if (a * a + b * b &amp;lt; c * c || a * a + c * c &amp;lt; b * b || c * c + b * b &amp;lt; a * a) {
        printf(&quot;둔각삼각형입니다.\n&quot;);
    } else {
        printf(&quot;예각삼각형입니다.\n&quot;);
    }
    len = a + b + c;
    p   = len / 2.0;
    
    // 삼각형의 면적은 헤론의 공식을 이용하였습니다.
    area = sqrt(p * (p - a) * (p - b) * (p - c));
    
    printf(&quot;삼각형의 둘레는 %d이고\n&quot;, len);
    printf(&quot;삼각형의 면적은 %lf입니다.\n&quot;, area);
    
    return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>C언어 문제/수학 문제</category>
      <category>헤론의공식</category>
      <author>자연&amp;amp;사람</author>
      <guid isPermaLink="true">https://coding-notes.tistory.com/371</guid>
      <comments>https://coding-notes.tistory.com/371#entry371comment</comments>
      <pubDate>Wed, 27 Oct 2021 18:02:09 +0900</pubDate>
    </item>
    <item>
      <title>EBS(Elastic Block Store) 볼륨 제거 하기</title>
      <link>https://coding-notes.tistory.com/369</link>
      <description>&lt;pre id=&quot;code_1625799575240&quot; class=&quot;html xml&quot; style=&quot;margin: 20px auto 0px; display: block; overflow: auto; padding: 20px; color: #383a42; background: #f8f8f8; font-size: 14px; font-family: 'SF Mono', Menlo, Consolas, Monaco, monospace; border: 1px solid #ebebeb; line-height: 1.71; cursor: default; z-index: 1; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;디렉토리 unmount 하기&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. ssh로 EC2 서버에 접속한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. mount된 directory를 unmount한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;$ sudo unmount {마운트된 디렉토리}&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;실행예).&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;$ sudo unmount /mnt&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. unmount되었는 지 확인하기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;$ df -h&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;unmount한 디렉토리가 보이지 않는 지 확인함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1625799995944&quot; class=&quot;html xml&quot; style=&quot;margin: 20px auto 0px; display: block; overflow: auto; padding: 20px; color: #383a42; background: #f8f8f8; font-size: 14px; font-family: 'SF Mono', Menlo, Consolas, Monaco, monospace; border: 1px solid #ebebeb; line-height: 1.71; cursor: default; z-index: 1; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;EBS Volume 제거하기&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. Services &amp;gt; 검색창에서 EC2를 검색하여 선택&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 화면 좌측의 Elastic Block Store &amp;gt; Volumes 메뉴 선택하여 생성된 전체 Volume을 조회한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 제거하려는 Volume을 체크한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 체크된 Volume 라인에 오른쪽 마우스를 클릭한 후에 &lt;b&gt;[Detach Volume]&lt;/b&gt;을 클릭한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;Detach Volume 팝업 화면이 뜨면 [Yes, Detach] 버튼을 클릭한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. Detach된 Volume의 상태가 &lt;b&gt;in-use &amp;rarr; available&lt;/b&gt;로 바뀐다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6. Volume을 완전히 삭제하려면, 삭제하려는 Volume을 오른쪽 마우스를 클릭하여&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;[Delete Volume]을 선택하여 완전히 삭제한다.&lt;/p&gt;</description>
      <category>AWS/EBS</category>
      <author>자연&amp;amp;사람</author>
      <guid isPermaLink="true">https://coding-notes.tistory.com/369</guid>
      <comments>https://coding-notes.tistory.com/369#entry369comment</comments>
      <pubDate>Fri, 9 Jul 2021 13:54:09 +0900</pubDate>
    </item>
    <item>
      <title>EBS(Elastic Block Store) Volume을 EC2 인스턴스에 장착하기</title>
      <link>https://coding-notes.tistory.com/370</link>
      <description>&lt;pre id=&quot;code_1625805575055&quot; class=&quot;html xml&quot; style=&quot;margin: 20px auto 0px; display: block; overflow: auto; padding: 20px; color: #383a42; background: #f8f8f8; font-size: 14px; font-family: 'SF Mono', Menlo, Consolas, Monaco, monospace; border: 1px solid #ebebeb; line-height: 1.71; cursor: default; z-index: 1;&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;EBS Volume을 EC2에 Attach하기&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- EBS Volume을 EC2 Instance의 device로 인식시킵니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 좌상단의 Services를 클릭 후에 검색창에 EC2를 입력하여 검색후에 EC2를 클릭하여 EC2 Dashboard로 들어간다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 좌측 메뉴 목록에서 &lt;b&gt;Elastic Block Store &amp;gt; Volumes&lt;/b&gt; 메뉴를 클릭하여 생성된 전체 Volume의 목록을 조회한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 사용할 Volume을 선택하고 오른쪽 마우스를 눌러 [Attach Volume] 메뉴를 선택한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. Attach Volume 팝업창이 뜨고, 필요한 값을 설정합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;- &lt;b&gt;Volume&lt;/b&gt; : 현재 선택된 EBS Volume ID를 표시합니다. (Read only)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;- &lt;b&gt;Instance&lt;/b&gt; : 기 생성된 EC2 Instance 목록이 콤보박스에 표시되며, Attach하려는 EC2 instance를 선택합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;- &lt;b&gt;Device&lt;/b&gt; : 선택된 EC2 instance에서 인식할 수 있는 이름이 자동 표시됩니다. (기본값 사용)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. 우측 하단의 &lt;b&gt;[Attach]&lt;/b&gt; 버튼을 클릭하여 Attach합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6. &lt;b&gt;Elastic Block Store &amp;gt; Volumes&lt;/b&gt;&amp;nbsp;메뉴에서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;방금 작업한 EBS Volume의 State가 &lt;b&gt;available &amp;rarr; in-use&lt;/b&gt;로 변경된 것을 확인합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1625805549447&quot; class=&quot;html xml&quot; style=&quot;margin: 20px auto 0px; display: block; overflow: auto; padding: 20px; color: #383a42; background: #f8f8f8; font-size: 14px; font-family: 'SF Mono', Menlo, Consolas, Monaco, monospace; border: 1px solid #ebebeb; line-height: 1.71; cursor: default; z-index: 1;&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;EBS 볼륨 format하기&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. EBS 볼륨이 연결된 EC2 시스템에 ssh로 로그인한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. LINUX이므로 ext4 로 format한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;$ sudo mkfs -t ext4 {device명}&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;실행예).&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;$ sudo mkfs -t ext4 /dev/sdf&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1625805549448&quot; class=&quot;html xml&quot; style=&quot;margin: 20px auto 0px; display: block; overflow: auto; padding: 20px; color: #383a42; background: #f8f8f8; font-size: 14px; font-family: 'SF Mono', Menlo, Consolas, Monaco, monospace; border: 1px solid #ebebeb; line-height: 1.71; cursor: default; z-index: 1;&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;EC2 인스턴스에 EBS 볼륨 마운트하기&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. EBS device가 있는 지 확인한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;$ ls -al {device명}&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;실행예).&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;$ ls -al /dev/sdf&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. device를 EC2에 mount 하기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;$ sudo mount {device명} {마운트할 디텍토리}&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;실행예).&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;$ sudo mout /dev/sdf /mnt&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. mount 확인하기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;$ df -h&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;mount된 디렉토리 확인&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>AWS/EBS</category>
      <author>자연&amp;amp;사람</author>
      <guid isPermaLink="true">https://coding-notes.tistory.com/370</guid>
      <comments>https://coding-notes.tistory.com/370#entry370comment</comments>
      <pubDate>Fri, 9 Jul 2021 13:38:39 +0900</pubDate>
    </item>
    <item>
      <title>EC2 Instance에 ssh로 접속하기 (Windows에서 접속)</title>
      <link>https://coding-notes.tistory.com/368</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Windows OS에서 ssh로 LINUX 서버에 접속을 위한 Tool로서 많이 사용하는 putty로 접속하는 방법입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1625790672880&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;PuTTY 설치하기&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 구글 검색 등으로 PuTTY 다운로드를 검색하여 다운로드 시스템에서 PuTTY설치 파일을 다운로드 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 다운로드 받은 설치 프로그램을 실행하여 설치합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1625790759382&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;pem 파일을 ppk 파일로 변환하기&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- EC2 설치 때에 생성한 key pair 파일인 xxx.pem 파일을 PuTTY가 인식하는 xxx.ppk 파일로 변환합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. PuTTY가 설치된 디렉토리로 이동합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. PuTTYgen.exe 프로그램을 실행합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. &lt;b&gt;Main Menu &amp;gt; Conversion &amp;gt; Import Key&lt;/b&gt; 메뉴를 선택합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. EC2 설치 때에 생성한 key pair 파일을 선택하고 &lt;b&gt;[열기]&lt;/b&gt;버튼을 클릭합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. [Save private key] 버튼을 클릭합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;5.1. Warning Popup이 뜨는 것은 무시하고, &lt;b&gt;[확인]&lt;/b&gt;버튼을 클릭합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6. 파일명은 기존의 .pem 파일명의 앞부분만 입력하고 &lt;b&gt;[저장]&lt;/b&gt;버튼을 클릭하여 .ppk 파일을 생성합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1625791699079&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;접속할 EC2 서버 확인&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 접속할 EC2 서버가 실행중인 지를 확인하고, EC2 서버의 Public IP를 확인합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. Services를 누른 후, 검색창에 EC2를 입력하고 검색된 EC2를 클릭하여 EC2 Dashboard로 들어갑니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 좌측의 Instances &amp;gt; Instances 를 선택하여 생성된 Instance 목록을 확인합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 접속하려는 Instance ID를 클릭하여 상세보기를 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. Public IP Address를 확인합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. Instance Status가 stopped(중지) 상태이면,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;우측 &lt;b&gt;Instance Status[콤보]&lt;/b&gt;를 눌러 &lt;b&gt;[Start Instance]&lt;/b&gt;를 선택하여 Instance를 실행합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1625795347891&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;PuTTY로 EC2 접속하기&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. PuTTY 프로그램을 실행합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. &lt;b&gt;Session&lt;/b&gt; 메뉴를 선택합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;b&gt;Host Name (or IP Address)&lt;/b&gt; : EC의 Public IP Address를 입력합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. &lt;b&gt;Connection &amp;gt; [+] SSH&lt;/b&gt; 메뉴의 [+]를 눌러 펼칩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. &lt;b&gt;[+]Auth&lt;/b&gt; 메뉴를 &lt;b&gt;펼치지 않고 누릅니다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. Private key file for authentication: 아래에 있는&lt;b&gt; [Browse...]&lt;/b&gt; 버튼을 클릭합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6. 변환한 .ppk 파일을 선택 후에 &lt;b&gt;[열기]&lt;/b&gt; 버튼을 클릭합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;7. 다시 &lt;b&gt;Session&lt;/b&gt; 메뉴를 선택합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;8. 자주 사용할 경우를 위하여 Saved Session: 에 서버 이름을 입력합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;9. &lt;b&gt;[Save]&lt;/b&gt; 버튼을 클릭하여 저장합니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;10. 하단의 &lt;b&gt;[Open]&lt;/b&gt; 버튼을 클릭하여 서버에 접속합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;11. PuTTY Security Alert 팝업이 뜨면, &lt;b&gt;[Accept]&lt;/b&gt;버튼을 클릭합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;12. login as : 가 뜨면, &lt;b&gt;ec2-user&lt;/b&gt;를 입력합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;13. 정상적으로 접속하여 terminal을 사용하면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;14. 최초 실행하는 경우에는 OS를 update patch를 위해&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;b&gt;$ sudo&amp;nbsp;yum&amp;nbsp;update&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;를 실행합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;update할 package 목록이 list되고&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;b&gt;Is this ok [y/d/N]:&lt;/b&gt; y&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;y를 입력하여 update를 수행합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>AWS/EC2</category>
      <author>자연&amp;amp;사람</author>
      <guid isPermaLink="true">https://coding-notes.tistory.com/368</guid>
      <comments>https://coding-notes.tistory.com/368#entry368comment</comments>
      <pubDate>Fri, 9 Jul 2021 09:37:13 +0900</pubDate>
    </item>
    <item>
      <title>EBS(Elastic Block Store) 볼륨 생성하기</title>
      <link>https://coding-notes.tistory.com/367</link>
      <description>&lt;pre id=&quot;code_1625727676142&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;사전작업&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. AWS의 콘솔에서 Services &amp;gt; EC2 페이지 이동&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. Elastic Block Store &amp;gt; Volumes를 클릭&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 기 생성된 Volume 목록을 표시함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 기존에 생성된 volume의 Availablity Zone (AZ) 값을 확인함 (연결하려는 EC2의 AZ와 같은 곳에 생성을 위해)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1625730068939&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;EBS 볼륨 생성하기&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. [&lt;b&gt;Create Volume]&lt;/b&gt; 클릭하여 Create Volume화면으로 이동한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. Create Volume 화면에서 변경이 필요한 값을 설정한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;- &lt;b&gt;Volume Type&lt;/b&gt; : General Purpose SSD (gp2) -기본값 사용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;- &lt;b&gt;Size (GiB)&lt;/b&gt; :&amp;nbsp; (Min: 1GB ~ 설정가능)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;-&lt;b&gt; IOPS&lt;/b&gt; : General Purpose SSD (gp2)이면 300 IOPS로 고정됨&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;- &lt;b&gt;Availability Zone&lt;/b&gt; : 콤보박스로 선택가능한 목록에서 선택함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;EBS volume은 향후에 Region 뿐만아니라 Availability Zone을 변경할 수 없습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;-&lt;b&gt; Snapshot ID&lt;/b&gt; : 기 생성된 Snapshot으로 데이터를 초기화할 경우에만 선택하고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;일반 Volume으로 사용하는 경우에는 비워둔다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;- &lt;b&gt;Encryption&lt;/b&gt; : volume을 암호화할 경우만 체크한다. (체크안함)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. &lt;b&gt;[Create Volume]&lt;/b&gt;을 클릭하여 EBS Volume을 생성한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. &lt;b&gt;Elastic Block Store &amp;gt; Volumes&lt;/b&gt;를 클릭하여 생성된 내용을 확인한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>AWS/EBS</category>
      <author>자연&amp;amp;사람</author>
      <guid isPermaLink="true">https://coding-notes.tistory.com/367</guid>
      <comments>https://coding-notes.tistory.com/367#entry367comment</comments>
      <pubDate>Thu, 8 Jul 2021 16:03:35 +0900</pubDate>
    </item>
    <item>
      <title>EBS(Elastic Block Store)란?</title>
      <link>https://coding-notes.tistory.com/366</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;EBS(Elastic Block Store)는 EC2 Instnace에 장착하여 사용할 수 있는 가상 저장 장치&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1625798333637&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;EBS를 사용해야 하는 경우&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - EC2 인스턴스 생성 시에 OS 설치용으로 사용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - EC2 Instance에서 제공하는 기본 용량보다 추가로 더 사용해야 하는 경우&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - 무중단으로 자유롭게 용량을 늘리고 싶은 경우&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - 영구적인 데이터 보관이 필요한 경우&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - RAID 등의 고급 기능이 필요한 경우 사용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1625798634180&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;EBS에 대한 OS의 인식&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - EBS는 EC2에서 일반 Disk로 인식&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - 원하는 크기로 만들 수 있음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - 성능 (IOPS)을 원하는 수치로 설정할 수 있음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - 삭제하기 전까지 데이터 유지&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1625798421871&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Block storage/Block Store란?&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - 일반적인 LINUX/UNIX에서 Block 단위로 읽고 쓰는 저장 장치를 부르는 말&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - Hard Disk, SSD, 플로피 디스크, 광학디스크, 자기 테이프 등&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1625798245840&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;EBS의 기본 개념(용어)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - &lt;b&gt;Volume(볼륨)&lt;/b&gt; : EBS의 가장 기본적인 형태로 OS에서 바로 사용 가능한 형태&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - &lt;b&gt;Image(이미지)&lt;/b&gt; : AMI(Amazon Machine Image)의 형태로 OS가 설치된 형태이며, 이를 통해 EC2 인스턴스를 생성함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - &lt;b&gt;Snapshot(스냅삿)&lt;/b&gt;: EBS 볼륨의 특정 시점을 그대로 복사해 저장한 파일&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; . 이 snapshot을 통해서 EBS볼륨과 AMI를 생성할 수 있음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - &lt;b&gt;IOPS&lt;/b&gt; (Input/Output Operation Per Second) : 저장 장치의 성능 측정 단위&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; . IOPS의 I/O 단위는 16KB&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;EC2 인스턴스 생성 시에 기본적으로 OS가 설치된 EBS 볼륨이 함께 생성되며, 추가적으로 EBS 볼륨을 생성할 수 있습니다.&lt;/p&gt;</description>
      <category>AWS/EBS</category>
      <author>자연&amp;amp;사람</author>
      <guid isPermaLink="true">https://coding-notes.tistory.com/366</guid>
      <comments>https://coding-notes.tistory.com/366#entry366comment</comments>
      <pubDate>Thu, 8 Jul 2021 15:58:08 +0900</pubDate>
    </item>
  </channel>
</rss>