<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>나즈나와 같이 놀자!</title>
    <link>https://nazuna.tistory.com/</link>
    <description>It's the Only NEET Thing to do.</description>
    <language>ko</language>
    <pubDate>Sun, 12 Apr 2026 19:39:04 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>나즈나</managingEditor>
    <item>
      <title>델파이 uses 이름 표</title>
      <link>https://nazuna.tistory.com/319</link>
      <description>&lt;p&gt;델파이 관련 글을 찾다보면, 옛날 델파이 프로그램과 최신과의 차이가 여럿 발생해 혼란을 겪는데, 최근까지도 구형 버전도 많이 쓰이다보니 좋은 팁이지만 업로더도 뭐가 문제인지 모를 때가 간혹 있다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이 표는 구형과 신형(정확한 경계는 모르겠으나)의 uses 에서의 명칭 차이를 개발하면서 발견하는 것 하나 하나 비교표로 만들고자 한다.&lt;/p&gt;
&lt;p&gt;예를 들어, messages 를 그냥 uses 해도 사용엔 문제가 없지만, 디버깅 시 라이브러리를 찾지 못해 함수의 원형을 볼 수가 없다. 그러나 Winapi.messages 로 호출할 경우 ide 상에서 곧바로 원형과 그 동작을 살펴볼 수 있다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;구버전&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;신버전&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Messages&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Winapi&lt;/span&gt;.Messages&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;ShellApi&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;Winapi.ShellApi&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>컴퓨터/Delphi</category>
      <category>Delphi</category>
      <category>uses</category>
      <category>구버전</category>
      <category>델파이</category>
      <category>비교표</category>
      <category>신버전</category>
      <author>나즈나</author>
      <guid isPermaLink="true">https://nazuna.tistory.com/319</guid>
      <comments>https://nazuna.tistory.com/319#entry319comment</comments>
      <pubDate>Mon, 20 Jul 2020 11:21:57 +0900</pubDate>
    </item>
    <item>
      <title>[Delphi] 프로그램 현재 경로 확인</title>
      <link>https://nazuna.tistory.com/318</link>
      <description>&lt;p&gt;프로그램 패키지 내 특정 파일을 로드해야 하는 경우, 아래 코드로 현재 프로그램이 실행된 실제 경로를 취득할 수 있음.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;ExtractFilePath(Application.ExeName)&lt;/p&gt;</description>
      <category>컴퓨터/Delphi</category>
      <author>나즈나</author>
      <guid isPermaLink="true">https://nazuna.tistory.com/318</guid>
      <comments>https://nazuna.tistory.com/318#entry318comment</comments>
      <pubDate>Wed, 15 Jul 2020 11:00:39 +0900</pubDate>
    </item>
    <item>
      <title>190529, 초등학교 저학년 시절 언젠가</title>
      <link>https://nazuna.tistory.com/317</link>
      <description>&lt;p&gt;문득 돌이켜보니 너무 많은 기억을 잃고 살았다.&lt;/p&gt;
&lt;p&gt;바빠서인지, 스트레스인지 며칠 전 기억도 잘 나지 않아 소중한 추억들 하나하나 결국 기억하지 못할까봐, 갑작스레 두려워 과거 내용도 정리하고 하나 둘 일기를 써볼까 한다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;우선 오늘 떠오른 기억을 남겨본다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;때는 초등학교 저학년 시절이었다.&lt;/p&gt;
&lt;p&gt;아마 일기장을 잘 찾아보면 일기장에도 이 내용이 있을 것같은데.&lt;/p&gt;
&lt;p&gt;시대는 2002년 보다는 이전일 것이다.&lt;/p&gt;
&lt;p&gt;경암동에 살던 때니까&lt;span&gt;&amp;nbsp;&lt;/span&gt;어쩌면 유치원 시절일 수도 있겠다.&lt;/p&gt;
&lt;p&gt;시간은 어두컴컴한 밤이었다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;컴퓨터는 거실에 있었다.&lt;/p&gt;
&lt;p&gt;거실에는 마당이 보이는 큰 베란다가 있었고 김치 냉장고인지 일반 냉장고인지 기억은 안나지만 냉장고가 있었다.&lt;/p&gt;
&lt;p&gt;바깥 베란다와 거실 사이 유리 미닫이 문이 있었는데 냉장고와 나란한 방향으로 컴퓨터가 놓여 있고 바닥엔 카펫이 있었다.&lt;/p&gt;
&lt;p&gt;당시에는 게임 CD 라는 것이 흔히 돌아다니던 시절이다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;특히 특정 게임만 담겨있는 시디가 아닌, 여러 게임을 복제해 넣은 시디가 잡지 부록으로도 제공될 정도로 유행이었는데 지금은 기억도 나지 않는 게임이지만 당시 내가 정말 즐겨하던 게임이 있었다.&lt;/p&gt;
&lt;p&gt;아케이드 류 아니면 자동차 관련 게임 이었던 기억만 어렴풋이 난다.&lt;/p&gt;
&lt;p&gt;당시 내가 쓰던 펜티엄 4 컴퓨터의 시디롬은 시디롬이 열릴 때 약간 반탄력이 있는 제품이었는데 부모님께 1시간 게임 허락을 받고 열심히 게임하려고 시디를 넣으려 했었던 걸로 기억한다.&lt;/p&gt;
&lt;p&gt;안에는 내가 제일 좋아하는 시디가 있었고, 내가 새로 넣으려는건 1개 게임만 담긴 다른 시디였다.&lt;/p&gt;
&lt;p&gt;그날따라 시디롬이 반탄력이 세 들어있던 시디가 밖으로 튕겨져 나와버렸다.&lt;/p&gt;
&lt;p&gt;그 당시 책상 위치가 카펫때문에 의자를 빼기가 협소해 나는 다소 신경질 나 아무 생각 없이 의자를 뒤로 밀었는데 빠그락 하는 소리가 들렸다.&lt;/p&gt;
&lt;p&gt;나는 처음에 그게 무슨 소리인지 몰랐다.&lt;/p&gt;
&lt;p&gt;의자에서 일어나서 내 눈 앞에 보인건 카펫 위, 바퀴달린 의자 아래에 깔린, 부러진 시디 한 장이었다.&lt;/p&gt;
&lt;p&gt;얼마나 충격이었는지 세상을 잃은 듯 한동안 가만히 쳐다만 본 것같았다.&lt;/p&gt;
&lt;p&gt;다시 돌아오지 않을걸 알면서도 괜히 만지작 거리고 테이프로도 붙여본 기억이 난다.&lt;/p&gt;
&lt;p&gt;결국 시디만 만지작 거리다가 허락받은 게임 시간이 다 지났다.&lt;/p&gt;
&lt;p&gt;그제서야 닭똥같은 눈물이 하나 둘 흐른 기억이 난다.&lt;/p&gt;
&lt;p&gt;한동안 컴퓨터는 쳐다도 보지 않았다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;지금 생각하면 되게 사소하면서 이 나이 먹도록 그만큼 허탈했던 적은 없었다.&lt;/p&gt;
&lt;p&gt;그래서인지 여전히 잊지 못하고 기억에 강하게 남은 걸지도 모르겠다.&lt;/p&gt;
&lt;p&gt;아직까지는, 눈만 감아도 당시 상황이 떠오르고 감정이입이 될 정도다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;처음으로 내 소중한 것을 잃고, 다시 찾지도 못하고, 기억 저편으로 보낸 소중한 것이었으니까.&lt;/p&gt;
&lt;p&gt;그날 정확히 어떤 생각까지 했는진 모르겠지만 그 즈음해서 내 물건에 대한 소유욕이랄까 소장욕? 같은게 많이 죽지 않았나 싶다.&lt;/p&gt;
&lt;p&gt;사고 싶어서 탐내긴 해도 한번 내 손에 들어오면 굳이 소유권 주장을 하질 않게 되었으니까.&lt;/p&gt;
&lt;p&gt;없어지면 없어진듯, 남이 가져가면 그러려니.&lt;/p&gt;</description>
      <category>여러가지/일기</category>
      <author>나즈나</author>
      <guid isPermaLink="true">https://nazuna.tistory.com/317</guid>
      <comments>https://nazuna.tistory.com/317#entry317comment</comments>
      <pubDate>Wed, 29 May 2019 00:24:34 +0900</pubDate>
    </item>
    <item>
      <title>[2.4] MIME 타입 설정</title>
      <link>https://nazuna.tistory.com/316</link>
      <description>&lt;p&gt;아파치에서 hwp과 같은 파일을 주고받을 때 Internet Explorer 에서 바이너리가 euc-kr로 열려버리는 현상을 볼 수 있다.(다른 브라우저는 알아서 찾아주지만)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이는 서버에서 해당 확장자의 파일을 인식하지 못한 문제로 MIME Type을 추가해주면 된다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;예를들어 국내에서 많이 겪는 문제 중 하나가 한글 확장자 문제인데 한컴의 mime 타입은 다음과 같다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;Extensions&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;MIME Type&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;.hwp&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;application/vnd.hancom.hwp&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;.hwt&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;application/vnd.hancom.hwt&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;.hml&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;application/vnd.hancom.hml&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;.hwpx&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;application/vnd.hancom.hwpx&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;mime 추가는 리눅스 기준 두 파일을 수정해야한다.&lt;/p&gt;
&lt;p&gt;Apache의 mod_mime는 시스템의 mime.types를 참조한다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;...더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p&gt;&amp;lt;IfModule mime_module&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; TypesConfig /etc/mime.types&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; ...&lt;/p&gt;
&lt;p&gt;&amp;lt;/IfModule&amp;gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;하여 /etc/mime.types 파일을 열어 맨 아랫줄에 양식에 맞게 원하는 확장자를 추가한다.&lt;/p&gt;
&lt;p&gt;추가한 후 /etc/conf/httpd.conf를 열어 mime_module을 검색하여 아래와 같이 추가한다&lt;/p&gt;
&lt;p&gt;(vim 기준 /를 누르면 검색이 가능하다, CentOS 7 기준 260번 라인 근처에 있다.)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;...더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p&gt;&amp;lt;IfModule mime_module&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; ...&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; AddType application/vnd.hancom.hwp .hwp&lt;/p&gt;
&lt;p&gt;&amp;lt;/IfModule&amp;gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;마쳤으면, 아파치를 재시작하면 적용된다.&lt;/p&gt;</description>
      <category>Server/Apache</category>
      <category>apache</category>
      <category>extension</category>
      <category>MIME</category>
      <category>다운로드</category>
      <category>웹서버</category>
      <category>확장자</category>
      <author>나즈나</author>
      <guid isPermaLink="true">https://nazuna.tistory.com/316</guid>
      <comments>https://nazuna.tistory.com/316#entry316comment</comments>
      <pubDate>Fri, 12 Apr 2019 17:18:13 +0900</pubDate>
    </item>
    <item>
      <title>프로젝트 블로그 분리</title>
      <link>https://nazuna.tistory.com/notice/315</link>
      <description>&lt;p&gt;안녕하세요.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;간간히 끄적이던 블로그에 어느새 누적 방문객 30만이 돌파하려고 합니다.&lt;/p&gt;&lt;p&gt;티스토리로 이전하기 전 개인 설치형 블로그시절까지 하면 50만쯤 되네요.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이번에 블로그 분리의 필요가 있어서, 프로젝트 성격의 포스팅은 별도의 블로그에서 작성하고자 합니다.&lt;/p&gt;&lt;p&gt;이 블로그에는 개인적인 기술 트윅 끄적임이나 사설만 올라올 예정입니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;아직 블로그는 디자인과 주제 선정이 남아있습니다만, 프로젝트 관련해서 bluems.re.kr 에 앞으로 업로드가 됩니다.&lt;/p&gt;&lt;p&gt;혹여 괜찮은 아이디어나 대신 만들어봐줬으면 하는 것을 올려주시면 재정과 시간이 닿는대로 하나씩 올려보겠으니 언제든 제안 올려주세요.&lt;/p&gt;</description>
      <author>나즈나</author>
      <guid isPermaLink="true">https://nazuna.tistory.com/notice/315</guid>
      <pubDate>Sat, 2 Mar 2019 20:58:57 +0900</pubDate>
    </item>
    <item>
      <title>[C포팅] 델파이로 익명 공용체 포팅 방법</title>
      <link>https://nazuna.tistory.com/313</link>
      <description>&lt;p style=&quot;text-align: left;&quot;&gt;최근 한 프로젝트로 인해 C언어 라이브러리를 델파이로 포팅할 일이 있었다.&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;대부분 구글링을 통해서 쉽게 변환할 수 있었는데 익명 공용체의 포팅에서 쉽게 알기 어려웠던 점이 있어 포스팅으로 남긴다.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;먼저 구조체는 아래와 같이 사용된다.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;table class=&quot;txc-table&quot; width=&quot;964&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; style=&quot;border:none;border-collapse:collapse;;font-family:&quot; 맑은=&quot;&quot; 고딕&quot;,=&quot;&quot; sans-serif;font-size:13px&quot;=&quot;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;width:482;height:24;border-bottom:1px solid #ccc;border-right:1px solid #ccc;border-top:1px solid #ccc;border-left:1px solid #ccc;;&quot;&gt;&lt;p&gt;&amp;nbsp;C Style&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width:482;height:24;border-bottom:1px solid #ccc;border-right:1px solid #ccc;border-top:1px solid #ccc;;&quot;&gt;&lt;p&gt;&amp;nbsp;Delphi Style&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width:482;height:24;border-bottom:1px solid #ccc;border-right:1px solid #ccc;border-left:1px solid #ccc;;&quot;&gt;&lt;p&gt;&lt;/p&gt;&lt;pre class=&quot;brush:cpp;&quot;&gt;&lt;p&gt;struct MyStruct {&lt;/p&gt;&lt;p&gt;  int a;&lt;/p&gt;&lt;p&gt;  char b;&lt;/p&gt;&lt;p&gt;  double c;&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width:482;height:24;border-bottom:1px solid #ccc;border-right:1px solid #ccc;;&quot;&gt;&lt;p&gt;&lt;/p&gt;&lt;pre class=&quot;brush:delphi;&quot;&gt;&lt;p&gt;MyStruct = record
  a:integer;
  b:char;
  c:double;
end;
&lt;/p&gt;&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;그리고 공용체는 아래와 같이 사용된다.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;table class=&quot;txc-table&quot; width=&quot;964&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; 맑은=&quot;&quot; 고딕&quot;,=&quot;&quot; sans-serif;font-size:13px&quot;=&quot;&quot; style=&quot;border: none; border-collapse: collapse;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;width: 482px; height: 24px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&amp;nbsp;C Style&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;width: 482px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-top: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&amp;nbsp;Delphi Style&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;width: 482px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;/p&gt;&lt;pre class=&quot;brush:cpp;&quot;&gt;&lt;p&gt;struct MyStruct {&lt;/p&gt;&lt;p&gt;  union {&lt;/p&gt;&lt;p&gt;    int a;&lt;/p&gt;&lt;p&gt;    char b;&lt;/p&gt;&lt;p&gt;    double c;&lt;/p&gt;&lt;p&gt;  } u;&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;width: 482px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&lt;/p&gt;&lt;pre class=&quot;brush:delphi;&quot;&gt;&lt;p&gt;MyStruct = record&lt;/p&gt;&lt;p&gt;  case Integer of
    0: (a:integer);
    1: (b:char);
    2: (c:double);
end;
&lt;/p&gt;&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;위와 같이 C에서 델파이로의 변환이 어렵지 않게 이뤄질 수 있는데 문제는 다음의 코드에서 발생했다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;pre class=&quot;brush:cpp;&quot;&gt;&lt;p&gt;  &lt;span class=&quot;com&quot; style=&quot;font-family: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; white-space: inherit; background-color: rgb(239, 240, 241); margin: 0px; padding: 0px; border: 0px; font-stretch: inherit; line-height: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(133, 140, 147);&quot;&gt;#ifdef&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;font-family: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; white-space: inherit; background-color: rgb(239, 240, 241); margin: 0px; padding: 0px; border: 0px; font-stretch: inherit; line-height: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt; __GNUC__&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;default prettyprint prettyprinted&quot; style=&quot;margin-top: 0px; margin-bottom: 1em; padding: 5px; border: 0px; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-stretch: inherit; line-height: inherit; font-family: Consolas, Menlo, Monaco, &amp;quot;Lucida Console&amp;quot;, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace, sans-serif; vertical-align: baseline; box-sizing: inherit; width: auto; max-height: 600px; overflow: auto; background-color: rgb(239, 240, 241); color: rgb(57, 51, 24); overflow-wrap: normal;&quot;&gt;&lt;code style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: Consolas, Menlo, Monaco, &amp;quot;Lucida Console&amp;quot;, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace, sans-serif; vertical-align: baseline; box-sizing: inherit; white-space: inherit;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(133, 140, 147);&quot;&gt;#define&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt; PACKED&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt; __Declaration__ &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt; __Declaration__ __attribute__&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;((&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;packed&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;))&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(133, 140, 147);&quot;&gt;#else&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;
  &lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(133, 140, 147);&quot;&gt;#define&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt; PACKED&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt; __Declaration__ &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt; __pragma&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt; pack&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;push&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(125, 39, 39);&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt; __Declaration__ __pragma&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt; pack&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;pop&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(133, 140, 147);&quot;&gt;#endif&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;

PACKED&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(16, 16, 148);&quot;&gt;typedef&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(16, 16, 148);&quot;&gt;struct&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt; param_union &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(16, 16, 148);&quot;&gt;union&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(16, 16, 148);&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt; param_float&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(43, 145, 175);&quot;&gt;int32_t&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt; param_int32&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(43, 145, 175);&quot;&gt;uint32_t&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt; param_uint32&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(43, 145, 175);&quot;&gt;int16_t&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt; param_int16&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(43, 145, 175);&quot;&gt;uint16_t&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt; param_uint16&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(43, 145, 175);&quot;&gt;int8_t&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt; param_int8&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(43, 145, 175);&quot;&gt;uint8_t&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt; param_uint8&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(43, 145, 175);&quot;&gt;uint8_t&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt; bytes&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(125, 39, 39);&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;];&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;};&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(133, 140, 147);&quot;&gt;// 익명 공용체&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(43, 145, 175);&quot;&gt;uint8_t&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt; type&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;; // 공용체 이후 unsigned 8-bit int&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;})&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(43, 145, 175);&quot;&gt;param_union_t&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;익명이 아니라면 공용체 레코드를 별도로 만들어서 아래와 같이 해결할 수 있지만&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;pre class=&quot;brush:delphi;&quot;&gt;&lt;p&gt;union_t = packed record
  case Integer of
    0: (param_float:single);
    1: (param_int32:Int32);
    2: (param_uint32&lt;span class=&quot;pun&quot; style=&quot;font-family: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; white-space: inherit; background-color: rgb(239, 240, 241); margin: 0px; padding: 0px; border: 0px; font-stretch: inherit; line-height: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(48, 51, 54);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;font-family: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; white-space: inherit; background-color: rgb(239, 240, 241); margin: 0px; padding: 0px; border: 0px; font-stretch: inherit; line-height: inherit; vertical-align: baseline; box-sizing: inherit; color: rgb(43, 145, 175);&quot;&gt;UInt32&lt;/span&gt;);&lt;/p&gt;&lt;p&gt;    ...&lt;/p&gt;&lt;p&gt;    ...&lt;br /&gt;end;

param_union_t = packed record
  u: union_t;
  UInt8 type;
end;
&lt;/p&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;익명 구조체이므로 어떻게 해결해야할지 Stack Overflow에 질문을 했었다.&lt;/p&gt;&lt;p&gt;(link:&amp;nbsp;&lt;a href=&quot;https://stackoverflow.com/questions/54613312/how-do-i-convert-a-c-union-to-delphi&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;https://stackoverflow.com/questions/54613312/how-do-i-convert-a-c-union-to-delphi&lt;/a&gt;&amp;nbsp;)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;문의 결과 익명 공용체 이후에 기술되는 변수들은 가장 사이즈가 큰 case 뒤에 같이 서술하면 된단다.&lt;/p&gt;&lt;p&gt;동일한 byte 크기의 case가 여럿이면 그중 아무곳에나 서술하면 된다고 한다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;pre class=&quot;brush:delphi;&quot;&gt; param_union_t = packed record
  case Integer of
    0: (param_float: Single);
    1: (param_int32: Int32);
    2: (param_uint32: UInt32;
        &amp;amp;type: UInt8);
    ...
    ...
end;
&lt;/pre&gt;</description>
      <category>컴퓨터/Delphi</category>
      <category>C</category>
      <category>Delphi</category>
      <category>record</category>
      <category>공용체</category>
      <category>델파이</category>
      <category>레코드</category>
      <category>포팅</category>
      <author>나즈나</author>
      <guid isPermaLink="true">https://nazuna.tistory.com/313</guid>
      <comments>https://nazuna.tistory.com/313#entry313comment</comments>
      <pubDate>Mon, 11 Feb 2019 11:02:05 +0900</pubDate>
    </item>
    <item>
      <title>[이디연] 코르크 라이트, 18년 연말 신제품</title>
      <link>https://nazuna.tistory.com/312</link>
      <description>&lt;p&gt;많은 스피커 제품들이 출시되어 더이상 스피커는 성장 방향이 없다고 생각했습니다.&lt;/p&gt;&lt;p&gt;스피커는 그저 소리만 나오면 된다고 생각했던 적도 있었습니다.&lt;/p&gt;&lt;p&gt;그랬던 제게 스피커에 투자하게 만들고 다양한 측면을 보여준 제품이 있습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;그것은 (주)이디연의 '코르크' 입니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;tt-youtube-plugin&quot; style=&quot;text-align: center&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/k3LAD0t6ljo?rel=0&quot; width=&quot;720&quot; height=&quot;540&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;위 제품은 메인 디자이너 이연택 님께서 11년도 대학 시절 창안한 아이디어에서 시작된 제품입니다.&lt;/p&gt;&lt;p&gt;국내 창업 지원 프로그램 중 하나인 한국콘텐츠진흥원의 메이커스 리그의 지원을 받아 Cork는 (주)우리일렉 과 함께&amp;nbsp;제품화에 성공하였습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;그랬던 코르크가 다시 한번 발전을 시도했습니다.&lt;/p&gt;&lt;p&gt;그것이 바로 '코르크 라이트(Cork Lite)' 입니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;tt-youtube-plugin&quot; style=&quot;text-align: center&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/8cKAak00mJM?rel=0&quot; width=&quot;720&quot; height=&quot;540&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;기존의 스피커는 공병을 활용하기는 하지만 다소 부족한 무언가가 있었습니다.&lt;/p&gt;&lt;p&gt;밋밋함이라고나 할까요?&amp;nbsp;&lt;/p&gt;&lt;p&gt;귀는 충분히 호강하지만 눈이 호강을 하지 못했습니다.&lt;/p&gt;&lt;p&gt;코르크 라이트는 아주 간단하고 사소한 하나의 아이디어로 분위기 변화를 시도했습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 1000px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/996348475C1A835101&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F996348475C1A835101&quot; width=&quot;1000&quot; height=&quot;750&quot; filename=&quot;IMG_9448.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;ⓒ 나즈나와 같이 놀자!, 코르크 라이트 하단&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;하단에 LED 4개를 추가하여 은은한 분위기를 연출하였습니다.&lt;/p&gt;&lt;p&gt;공병으로 빛을 쪼여줌으로서 말이죠.&lt;/p&gt;&lt;p&gt;굴러다니는 음료수 병조차 인테리어 아이템이 될 수도 있죠.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 750px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99C7304E5C1A87E404&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99C7304E5C1A87E404&quot; width=&quot;750&quot; height=&quot;1000&quot; filename=&quot;IMG_9498.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;ⓒ 나즈나와 같이 놀자!, 코르크 라이트와 음료수 병&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;사소한 아이디어 하나만으로 이제 눈과 귀가 같이 호강할 수 있게 되었습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;물론, 안타깝지만 LED의 공간을 위해 코르크는 다소 길어질 수 밖에 없었다는 점과 값싼 SMD 혹은 그와 유사한 LED를 사용함으로써&amp;nbsp;스피커 모듈을 가로막고 있어 다소 막힌 음이 들릴 수도 있다는 점은 안타깝습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 1000px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99866C445C1A849D02&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99866C445C1A849D02&quot; width=&quot;1000&quot; height=&quot;750&quot; filename=&quot;IMG_9437.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;ⓒ 나즈나와 같이 놀자!, 왼쪽부터 사은품 공병, 코르크 스피커, 코르크 라이트&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 1000px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/993EF54A5C1A85C302&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F993EF54A5C1A85C302&quot; width=&quot;1000&quot; height=&quot;750&quot; filename=&quot;IMG_9441.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;ⓒ 나즈나와 같이 놀자!, 왼쪽부터 코르크 스피커, 코르크 라이트&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;포장재 외관의 디자인도 라이트에 맞게 다소 변화가 있습니다.&lt;/p&gt;&lt;p&gt;포장재를 열면 속포장지가 하나 더 나오는데 이 포장지는 제품 충격보호 외에도 미사용 패킹을 보관할 때 쓸 수도 있고 메뉴얼로서의 역할도 같이 합니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 750px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99CFB8505C1A868E03&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99CFB8505C1A868E03&quot; width=&quot;750&quot; height=&quot;1000&quot; filename=&quot;IMG_9444.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;ⓒ 나즈나와 같이 놀자!, 개봉하면 상단에 속지를 꺼낼 수 있는 손잡이가 있다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 1000px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/998FE1445C1A86BC02&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F998FE1445C1A86BC02&quot; width=&quot;1000&quot; height=&quot;750&quot; filename=&quot;IMG_9445.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;ⓒ 나즈나와 같이 놀자!, 속지 내부 모습. 측면에는 메뉴얼이 적혀 있다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 750px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99D0B8505C1A86E603&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99D0B8505C1A86E603&quot; width=&quot;750&quot; height=&quot;1000&quot; filename=&quot;IMG_9447.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;ⓒ 나즈나와 같이 놀자!, 내부 구성품 사진. 위부터 스피커 모듈, 커피체인점&amp;nbsp;보틀 전용 패킹, 범용 패킹&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;코르크는 가장 많은 커피전문점을 갖추고 자체 보틀을 판매하는 모 체인점의 보틀 사이즈에 맞춰진 전용 패킹 1개와 다양한 공병에서 사용 가능한 범용 패킹 총 2개가 제공됩니다.&lt;/p&gt;&lt;p&gt;이 외에도 사진에는 없지만 모듈 충전용 USB 케이블도 하나 동봉되어 있습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 750px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/998DB9465C1A876003&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F998DB9465C1A876003&quot; width=&quot;750&quot; height=&quot;1000&quot; filename=&quot;IMG_9458.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;ⓒ 나즈나와 같이 놀자!, 코르크 스피커&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;또 한가지 다른 점은 기존에는 LED와 전원/페어링 버튼이 분리가 되어 있었다면 코르크 라이트는 LED와 버튼이 일체형으로 이뤄져 있어 전면 외관이 더 깔끔하게 바뀌었습니다.&lt;/p&gt;&lt;p&gt;이전부터 혼자 튀어나온 버튼이 다소 아쉬웠는데 저로써는 반기는 디자인 변화 중 하나입니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 750px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/993AC54A5C1A87AC03&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F993AC54A5C1A87AC03&quot; width=&quot;750&quot; height=&quot;1000&quot; filename=&quot;IMG_9464.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;ⓒ 나즈나와 같이 놀자!, 코르크 라이트 정면&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;또 크리스마스 시즌에 출시되는 것을 기념하여 선착순 500명에게는 전용 공병과 LED 와이어를 증정해주었습니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;LED는 별도 USB 전원을 필요하고 체크는 못했지만 와이어쪽이 별다른 합선 없이 안정적이어 감전의 문제는 없습니다.&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;다만 케이블 피복 안쪽 마감이 주입모양 그대로 굳어 깔끔하진 않아 다소 아쉬운 부분입니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 1000px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/999A66495C1A88A903&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F999A66495C1A88A903&quot; width=&quot;1000&quot; height=&quot;750&quot; filename=&quot;IMG_9485.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;ⓒ 나즈나와 같이 놀자!, 코르크 스피커 사은품 공병 LED&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 1000px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/999A6E495C1A88AA03&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F999A6E495C1A88AA03&quot; width=&quot;1000&quot; height=&quot;750&quot; filename=&quot;IMG_9486.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;ⓒ 나즈나와 같이 놀자!,&amp;nbsp;&lt;/span&gt;코르크 스피커 사은품 공병 LED&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 1000px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/999422495C1A88AC04&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F999422495C1A88AC04&quot; width=&quot;1000&quot; height=&quot;750&quot; filename=&quot;IMG_9488.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;ⓒ 나즈나와 같이 놀자!,&amp;nbsp;&lt;/span&gt;코르크 스피커 사은품 공병 LED&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 1000px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/999ACA495C1A88AE03&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F999ACA495C1A88AE03&quot; width=&quot;1000&quot; height=&quot;750&quot; filename=&quot;IMG_9490.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;ⓒ 나즈나와 같이 놀자!,&amp;nbsp;&lt;/span&gt;코르크 스피커 사은품 공병 LED, 만져도 감전되거나 합선되지 않는다.&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 750px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/999B24495C1A88AF03&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F999B24495C1A88AF03&quot; width=&quot;750&quot; height=&quot;1000&quot; filename=&quot;IMG_9493.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;ⓒ 나즈나와 같이 놀자!,&amp;nbsp;&lt;/span&gt;코르크 스피커 사은품 공병 LED, 공병에 위와 같이 마무리 지어주면 된다.&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 750px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/999ACE495C1A88B003&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F999ACE495C1A88B003&quot; width=&quot;750&quot; height=&quot;1000&quot; filename=&quot;IMG_9495.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;ⓒ 나즈나와 같이 놀자!, 코르크 라이트 + 보틀 트리&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;손재주가 미약하여 조명이 다소 아래로 쏠렸지만, 쑥쑥 넣어주기만 해도 알아서 저렇게 모양을 잡으니 손재주가 별로여도 위와 같이 모양이 이쁘게 나옵니다.&lt;/p&gt;&lt;p&gt;보틀 트리 조명이 음색에 큰 영향을 주는 것은 느끼지 못했습니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;볼륨 상한선은 체감상 더 높아진 느낌입니다만 이전 모델과 지속적으로 비교를 해봐야 할 부분인 듯하네요.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 1000px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99B0063C5C1A8B3305&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99B0063C5C1A8B3305&quot; width=&quot;1000&quot; height=&quot;750&quot; filename=&quot;IMG_9496.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;ⓒ 나즈나와 같이 놀자!, 코르크 라이트, 그 와중 높이가 살짝 안맞아서 배치에 실패한 주인...&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>여러가지/제품 후기</category>
      <category>스피커</category>
      <category>와디즈</category>
      <category>이디연</category>
      <category>이연택</category>
      <category>코르크</category>
      <category>코르크 라이트</category>
      <category>코르크 스피커</category>
      <category>펀딩</category>
      <author>나즈나</author>
      <guid isPermaLink="true">https://nazuna.tistory.com/312</guid>
      <comments>https://nazuna.tistory.com/312#entry312comment</comments>
      <pubDate>Thu, 20 Dec 2018 03:18:18 +0900</pubDate>
    </item>
    <item>
      <title>[QuantumGrid] CheckBox 사용</title>
      <link>https://nazuna.tistory.com/311</link>
      <description>&lt;p&gt;퀀텀그리드를 사용하기 위해 학습하면서 체크박스 사용이 필요할 경우,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;cxgrid 선택 후&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Data Controller.DataModeController.GridMode property =&amp;nbsp; False&lt;/p&gt;&lt;p&gt;Data Controller.DataModeController.SmartRefresh property =&amp;nbsp; True&lt;/p&gt;&lt;p&gt;Data Controller.KeyFieldNames property = UniqueField 명 설정(PrimaryKey 등)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;View 선택 후&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;36800&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;View -&amp;gt; Column 선택 후&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;DataBinding.FieldName property = null&lt;/p&gt;&lt;p&gt;DataBinding.ValueType = Boolean&lt;/p&gt;&lt;p&gt;Properties property = CheckBox&lt;/p&gt;&lt;p&gt;Properties.NullStyle = nssUnchecked&lt;/p&gt;&lt;p&gt;Properties.ValueChecked = True / Type = Boolean //체크시 입력할 값&lt;/p&gt;&lt;p&gt;Properties.ValueGrayed = Null / Type = Null // 중간선택시 입력할 값&lt;/p&gt;&lt;p&gt;Properties.ValueUnchecked = False / Type = Boolen //체크해제시 입력할 값&lt;/p&gt;&lt;p&gt;AllowGrayed := False; //중간 선택 허용할 경우 True&lt;/p&gt;&lt;p&gt;ValueChecked := True; //체크값 기준&lt;/p&gt;&lt;p&gt;ValueUnchecked := False; //해제값 기준&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>컴퓨터/Delphi</category>
      <category>check</category>
      <category>CheckBox</category>
      <category>Delphi</category>
      <category>devExpress</category>
      <category>grid</category>
      <category>quantum</category>
      <category>그리드</category>
      <category>데브익스프레스</category>
      <category>델파이</category>
      <category>체크</category>
      <category>체크박스</category>
      <category>퀀텀</category>
      <author>나즈나</author>
      <guid isPermaLink="true">https://nazuna.tistory.com/311</guid>
      <comments>https://nazuna.tistory.com/311#entry311comment</comments>
      <pubDate>Fri, 30 Nov 2018 03:58:21 +0900</pubDate>
    </item>
    <item>
      <title>[CHUWI] Hi13을 안드로이드로 변경하기</title>
      <link>https://nazuna.tistory.com/310</link>
      <description>&lt;p&gt;CHUWI의 Hi13은 기본적으로 안드로이드 부팅 또는 듀얼부팅이 안됩니다.&lt;/p&gt;&lt;p&gt;바이오스 업데이트로 우분투 설치가 가능하지만 대부분 포스트나 쓰레드는 항상 우분투를 설치해야하고 우분투의 부트로더를 사용해야 합니다.&lt;/p&gt;&lt;p&gt;왜 그래야합니까?&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;아래 git repo는 제가 이를 해결한 부트로더로 설치방법과 함께 공유합니다.&lt;/p&gt;&lt;p&gt;우분투나 다른 리눅스 배포판의 설치 없이, 부트로더만 사용하여 안드로이드가 최대의 용량을 쓸 수 있게 합니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;https://github.com/nazuna1/Android-on-Hi13&lt;/p&gt;</description>
      <category>전자기기</category>
      <category>Android</category>
      <category>chuwi</category>
      <category>Hi13</category>
      <category>rEFInd</category>
      <category>부트로더</category>
      <category>안드로이드</category>
      <category>쯔위</category>
      <category>클린설치</category>
      <author>나즈나</author>
      <guid isPermaLink="true">https://nazuna.tistory.com/310</guid>
      <comments>https://nazuna.tistory.com/310#entry310comment</comments>
      <pubDate>Sun, 9 Sep 2018 00:49:16 +0900</pubDate>
    </item>
    <item>
      <title>무인택배함의 단점을 해결하자, 꽃보다택배</title>
      <link>https://nazuna.tistory.com/309</link>
      <description>&lt;p&gt;바쁜 직장 생활, 여유 없는 학업생활.&lt;/p&gt;&lt;p&gt;요즘의 현대는 날이 갈수록 바빠지지만 하루의 시간은 언제나 24시간입니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;택배기사님도 다르지 않습니다.&lt;/p&gt;&lt;p&gt;누구보다 열심히 살고 있다고 할 수 있는 택배기사님도 낮에 배송을 마치고 밤에는 쉬고 싶으시죠.&lt;/p&gt;&lt;p&gt;그러나 밀린 화물과 배달 건당으로 받는 수당금.&lt;/p&gt;&lt;p&gt;한 푼이라도 더 벌기위해선 열심히 뛰어야 하는 기사님들이지만 고객의 부재로 인해 배달이 실패하는 경우가 잦습니다.&lt;/p&gt;&lt;p&gt;우정부 기준 일일 택배 발송량이 2천만 건에 달하는 물류업계에서 한 건의 배달 실패는 크나큰 지연과 손해가 따릅니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이는 택배를 받는 고객도 마찬가지입니다.&lt;/p&gt;&lt;p&gt;고객들도&amp;nbsp;밤 늦은 시각에 택배를 받거나 바쁘다는 이유로 팽개쳐진 택배를 받고 싶지는 않을 것입니다.&lt;/p&gt;&lt;p&gt;바쁘다는 이유로 연락조차 없이 도착한 고스트 택배, 문을 열지 못하게 만든 택배의 탱킹에 시달리고 싶지 않겠죠.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;많은 물류가 유동하고 있지만 서로가 서로의 입장에 택배기사님들과 고객간의 마찰이 끊이지 않고 있는 것도 사실입니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이러한 점에 주목하며 저희는 이번 '제 5회 SW융합 해커톤대회'에서 블록체인 기반 무인 택배함인 꽃보다택배 를 만들어 발표했습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 500px; width: 500px; height: 207px;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/9971AA3D5B8BD1B715&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F9971AA3D5B8BD1B715&quot; width=&quot;500&quot; height=&quot;207&quot; filename=&quot;로고.png&quot; filemime=&quot;image/jpeg&quot; style=&quot;width: 500px; height: 207px;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;ⓒ Team P. C., All rights Reverved.&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;이 아이템은 다음의 효과를 기대하여 만들어졌습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-style: solid; border-width: 1px; border-color: rgb(121, 165, 228); background-color: rgb(219, 232, 251); padding: 10px;&quot;&gt;&lt;p&gt;1. 택배 기사님들의 배송실패 방지와 보다 편리한 택배 업무 환경을 만들자.&lt;/p&gt;&lt;p&gt;2. 바쁜 일상에 시달리는 고객들의 안전한 물품 수신을 돕자.&lt;/p&gt;&lt;p&gt;3. 잦은 실패로 인한 물량 지연으로 생기는 업체의 포화 현상을 해결하자.&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;기존의 물류 시스템은 터미널과 이송 시스템이 중점이 맞춰져 매우 잘 개발되어 있음은 공공연한 사실입니다.&lt;/p&gt;&lt;p&gt;실질적인 물품 상하차는 인력의 손을 빌릴 수 밖에 없으나 물건의 분류는 대부분 기계화되어 진행되어가고 있습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;저희는 초점을 바꿔 실제 수령하는 수신 고객과, 이를 배송하는 위탁 기사님의 입장에서 생각해보았습니다.&lt;/p&gt;&lt;p&gt;저희가 고민한 아이디어, 저희가 제작한 택배함, Team. P.C.의 꽃보다택배를 소개합니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 400px; width: 400px; height: 425px;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99E50A3B5B8BDAA413&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99E50A3B5B8BDAA413&quot; width=&quot;400&quot; height=&quot;425&quot; filename=&quot;KakaoTalk_20180902_213940590.png&quot; filemime=&quot;image/jpeg&quot; style=&quot;width: 400px; height: 425px;&quot; original=&quot;yes&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;ⓒ Team P. C., All rights Reverved.&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;꽃보다택배는 문제 해결을 위해 다음의 기능을 제안합니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-style: solid; border-width: 1px; border-color: rgb(121, 165, 228); background-color: rgb(219, 232, 251); padding: 10px;&quot;&gt;&lt;p&gt;1. 무인택배함의 자동화&lt;/p&gt;&lt;p&gt;2. 큰 비용 부담없는 업그레이드&lt;/p&gt;&lt;p&gt;3. 수신자의 안전한 택배 위탁&lt;/p&gt;&lt;p&gt;4. 대리 수신기능을 통한 장기 부재시 대리수령&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;1. 무인택배함의 자동화&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;한동안 투기의 대상으로 전국민에게 이름을 날린 '비트코인', 알고 계신가요?&lt;/p&gt;&lt;p&gt;상당한 이익을 취한 분들이 있더라면 버블이 터지면서 많은 분들이 손해도 있었습니다.&lt;/p&gt;&lt;p&gt;이러 저러한 사건이 많이 있었지만 많은 분들의 눈와 귀에 '블록체인'이 기억하게 된 사건임은 모두가 동의하는 사실입니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 500px; width: 500px; height: 376px;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/997354415B8BE6AD07&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F997354415B8BE6AD07&quot; width=&quot;500&quot; height=&quot;376&quot; filename=&quot;KakaoTalk_20180902_223131208.png&quot; filemime=&quot;image/jpeg&quot; style=&quot;width: 500px; height: 376px;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;ⓒ Team P. C., All rights Reverved.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;블록체인은 탈중앙화 프로그램(dApp)을 구현 가능하게 해주는 네트워크 기반 데이터 기술입니다.&lt;/p&gt;&lt;p&gt;블록체인에 가입한 노드들이 서로가 서로를 감시하며 데이터의 위변조를 감시하고, 서비스를 제공합니다.&lt;/p&gt;&lt;p&gt;서로가 클라이언트이자 서버가 되며 상호 감시를 이루는 것이죠.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;저희가 만든 꽃보다택배는 이 장점에 착안하였습니다.&lt;/p&gt;&lt;p&gt;이 무인택배함은 별도의 서버가 대량으로 필요하지 않습니다.&lt;/p&gt;&lt;p&gt;택배함 스스로가 노드가 되어 서로가 서로의 원장을 감시합니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;저희의 아이디어 구상은 다음과 같습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 500px; width: 500px; height: 282px;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99B3953B5B8BE84A25&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99B3953B5B8BE84A25&quot; width=&quot;500&quot; height=&quot;282&quot; filename=&quot;P.C. 3.png&quot; filemime=&quot;image/jpeg&quot; style=&quot;width: 500px; height: 282px;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;ⓒ Team P. C., All rights Reverved.&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;기존의 택배들은 바코드와 업체에 따라 QR코드가 이미 인쇄되어 나오고 있습니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;이는 기존 디지털 물류 시스템과의 연계와 각 과정의 배송기사님의 배송 처리를 위해 (수당 지급 등) 활용되어지고 있습니다.&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;우리는 이 기존 시스템을 적극 활용하기로 했습니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;기사님은 기존의 PDA를 활용하여 상품의 QR코드(이하 바코드와 동일시 설명합니다)를 촬영합니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;이후 저희가 제안하는 택배함에 NFC를 활용하여 터치하면 상품의 송장정보와 기사님의 고유 정보를 전달합니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;전달받은 데이터는 프라이빗 노드를 통해 검증 후 위탁 상품으로 원장 등록됩니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 500px; width: 500px; height: 282px;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99A7EE4A5B8BEB1B09&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99A7EE4A5B8BEB1B09&quot; width=&quot;500&quot; height=&quot;282&quot; filename=&quot;P.C. 3-2.png&quot; filemime=&quot;image/jpeg&quot; style=&quot;width: 500px; height: 282px;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;ⓒ Team P. C., All rights Reverved.&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;물건을 찾을 때는 각종 쇼핑몰 혹은 택배사와 연계된 앱이 설치된 핸드폰 하나만 있으면 됩니다.&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;앱을 열고 로그인을 하여 자신의 송장을 조회합니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;조회시 송장번호를 기반으로 실제 블록체인의 원장과 고유값을 가져옵니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;이를 택배함의 리더기에 가져다 대기만 하면 사용자의 역할은 끝납니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;이제 택배함은 자신에게 들어온 정보를 분석합니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;노드에서 원장을 찾아 정보를 비교하고 모든 정보가 일치한다면 개폐 장치가 가동됩니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;이 개폐장치 가동과 원장 비교를 위해 저희는 Raspberry Pi 3B와 Nodejs, Python을 활용했습니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;특히 두 스크립트 언어에 익숙하지 않아 많은 개발 난항이 있었습니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;저희는 개발용 폰의 한계상 구현에 Android Beam(P2P 기술)을&amp;nbsp;활용했습니다만, 요즘 대중적으로 퍼진 폰들은 대부분 NFC 카드모드가 지원됩니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;NFC카드모드는 일종의 NFC 태그처럼 핸드폰의 NFC 안테나가 카드로서 역할을 합니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;데이터는 USIM의 데이터를 주로 교환하여 기존에 이미 각종 전자결제에 사용되어 왔습니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;실 구현시에는 이러한 기존 장점을 적극 활용하여 더 완성도 있는 개발이 가능할 것입니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;2. 큰 비용 부담없는 업그레이드&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;저희가 제안한 아이템을 실제 적용하려면 결국 무인택배함이 노드로 참여되야 합니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;그러면 우선 택배함의 성능이 충분한지가 관건이 됩니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;블록체인에는 Full-Node와 Light-Node의 개념이 있습니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;이 외에도 어느 체인을 메인으로 진행하느냐에 따라 다양한 구성이 존재합니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;즉, 한 노드를 구성할 때 그 노드가 모든 부담을 짊어질 필요가 없으며 어마어마한 연산량또한 필요하지 않다고 결론을 내렸습니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;실제로 라이트노드의 경우, 자기 자신과 관련된 데이터만 처리하고 관여하기 때문이죠.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;Youtube : &lt;a href=&quot;https://www.youtube.com/watch?v=YvcUbBt8vG0&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;풀 노드와 라이트노드&lt;/a&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;Medium : &lt;a href=&quot;https://medium.com/@matthewminseokkim/%EC%9D%B8%ED%84%B0%EC%B2%B4%EC%9D%B8-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EB%B9%84%EA%B5%90-2f1251163c1e&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;인터체인 프로젝트 비교&lt;/a&gt; - 기존 블록체인의 단점들을 극복한 새로운 체인 기술들&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 379px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/997866405B8BF0BA30&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F997866405B8BF0BA30&quot; width=&quot;379&quot; height=&quot;252&quot; filename=&quot;그림5.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;기존의 우정부의 무인택배함을 확인해보니 생각보다 스펙이 괜찮았습니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;충분히 노드로 참여할 수 있으리라 판단했습니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;물론 풀노드 구성을 위해 대형 서버도 참여를 해야겠지만, 전체를 중앙화 하는 것보다는 비용부담과 신뢰성 측면에서 이득이 될 것입니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;3. 수신자의 안전한 택배위탁&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;기존 무인 택배함은 크게 3개 세대로 나뉩니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-style: solid; border-width: 1px; border-color: rgb(121, 165, 228); background-color: rgb(219, 232, 251); padding: 10px;&quot;&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;1. 아날로그식 도어락&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;2. 기사님 수기지정을 통한 비밀번호 지정&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;3. 중앙 시스템을 통한 랜덤상수 문자 발신&lt;/p&gt;&lt;/div&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;모든 방식은 결국 최종적으로 수신인에게 문자메시지로 비밀번호가 안내됩니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;이 방식의 단점은 설정 시 누군가 뒤에 있었거나, 외부에서 데이터가 변조되거나, 문자가 가로채진 경우 제 3자가 택배물을 취득, 확인할 수 있다는 문제를 가지고 있습니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;저희는 택배함 외부로 해시가 단 1비트도 노출이 되지 않아 이를 해결할 수 있습니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;유일한 고유값 해시는 실 적용 시 기존 USIM 영역 혹은 삼성의 Knox 영역 등의 유기적 활용으로 보안을 대체할 수 있습니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;이 제안에 필요한 것은 인증이지 인증값을 고객이 알 필요가 없기 때문입니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;고객은, 기사는 일련의 과정과 자신의 키 값을 몰라도 위탁하고 수령할 수 있습니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;4.&amp;nbsp;대리 수신기능을 통한 장기 부재시 대리수령&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;한 사례가 있습니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;택배로 과일(기억상 과일로 기억함)이 도착했으나 수신 대상인이 문자를 안내받지 못했습니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;나중에 통화상으로 보냈었다는 사실을 깨닫고 찾으러 갔으나 이미 3달간 방치되어 있던 과일은 이미 다 썩어 문드러진 상태였습니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;단지 그럴 수 있겠다로 지나칠 수 있는 문제는 아닙니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;해외로 출국 중이라던지 여러가지로 기한내 수취가 불가능할 수 있습니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;특히 무인 택배함의 경우 집 앞으로 오는 것이 아니기 때문에 더욱 야기될 수 있는 문제입니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;저희는 블록체인 거래에서 필수적으로 코인이 교환되고 발행되어져야함을 주목했습니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;어차피 교환되어야 한다면 이를 일종의 마일리지로 활용하면 어떨까요?&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;일명 Post Coin입니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;저희 팀명의 유래이기도 합니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;처리과정에서 어차피 발행되는 코인을 적극적으로 활용하고자 했습니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;대리수령 시스템을 만들어 장기 부재가 예상될 경우&amp;nbsp;사용자가 지정한 상대방 혹은 이웃주민 수령자 발생 시 대리 수령을 권고합니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;대리 수령하여 보관하거나 수령하여 곧바로 수신인에게 전달을 해줄 경우 이 코인이 지급됩니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;지급된 코인은 우체국 쇼핑의 결제수단으로 활용할 수도 있고, 자신이 택배나 소포를 보낼수도 있습니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;적립하였다가 우체국 계좌를 통해 현금화할 수도 있죠.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;저희가 제안한 아이템으로는 현장의 택배 기사님과 고객, 업체 모두가 Win-Win이 가능한 구조라고 생각합니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 500px; width: 500px; height: 375px;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/996645505B8BD48626&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F996645505B8BD48626&quot; width=&quot;500&quot; height=&quot;375&quot; filename=&quot;KakaoTalk_20180901_182704189.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;width: 500px; height: 375px;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;ⓒ Team P. C., All rights Reverved.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이 꽃보다할배 작품은 제 5회 SW융합 해커톤대회에서 지정과제 2. 블록체인부문에서 우수상을 거머쥐었습니다.&lt;/p&gt;&lt;p&gt;아이디어는 충분했지만 심사위원 분들의 입장에서는 블록체인 자체를 보았을 땐 다소 아쉬운 점이 있었을 지도 모르겠네요.&lt;/p&gt;&lt;p&gt;(사실 저희가 발표시간을 22초 오버한 점도 있는 듯합니다)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;수상 전 미리 방청하러 오시고 질문을 해주신 강성주 우정사업본부장님께서 가장 좋아해주셨고 관심 가져 주셨습니다.&lt;/p&gt;&lt;p&gt;이후로도 지정과제 2. 심사 후 연설과, 본 폐회식의 연설 등 계속 저희 팀을 직/간접적 언급해주셔서 (특히 발표자) 우수상과 별개로 매우 뿌듯했습니다.&lt;/p&gt;&lt;p&gt;그 날 악수만 3번이나 하고 마지막까지 저희를 찾아 인사와 격려를 해주셨습니다.&lt;/p&gt;&lt;p&gt;해주신 격려와 본점에 세우시려는 개발공간 잊지 않고 기회되면 꼭 찾아뵈어 실제로 구현을 해보고 싶었습니다.&lt;/p&gt;&lt;p&gt;(안타깝게도 내년에도 대학원을 다녀야합니다..ㅎㅎ)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 500px; width: 500px; height: 500px;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/993D2E495B8BF96507&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F993D2E495B8BF96507&quot; width=&quot;500&quot; height=&quot;500&quot; filename=&quot;KakaoTalk_20180902_235304806.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;width: 500px; height: 500px;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;ⓒ Team P. C., All rights Reverved.&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;저희 팀은 우연에 우연을 통해 블록체인에 대해 잘 모르던 저희 대학원생 들과, 가장 어린 저와도 7년이나 나이차가 나는 고등학생과 만나 우수상을 쟁취해냈습니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;이제 그 학생은 대입 준비를 해야합니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;꼭 원하는 수업을 받을 수 있길 바라며 서로 성공하여 필드에서 또다시 볼 수 있기를 바랍니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;iframe width=&quot;640&quot; height=&quot;360&quot; src=&quot;//play-tv.kakao.com/embed/player/cliplink/v0469hgtGtthnsgvZnIZ2v2@my?service=daum_tistory&quot; frameborder=&quot;0&quot; scrolling=&quot;no&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;text-align: center;&quot;&gt;ⓒ Team P. C., All rights Reverved. (발표영상)&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;Team P.C.'s Member...&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-style: solid; border-width: 1px; border-color: rgb(243, 197, 52); background-color: rgb(254, 254, 184); padding: 10px;&quot;&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;table class=&quot;txc-table&quot; width=&quot;234&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; style=&quot;border: none; border-collapse: collapse; width: 234px;&quot; 맑은=&quot;&quot; 고딕&quot;,=&quot;&quot; sans-serif;font-size:13px&quot;=&quot;&quot; align=&quot;center&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;width: 233px; height: 24px; border-width: 0px; border-style: none;&quot;&gt;&lt;p&gt; 공 준배 ( 군산대학교/석사 18학번)&lt;/p&gt;&lt;p style=&quot;clear: none; float: none;&quot;&gt;최 진욱 ( 군산대학교/석사 18학번)&lt;/p&gt;&lt;p style=&quot;clear: none; float: none;&quot;&gt;조 영준 ( 군산대학교/석사 17학번)&lt;/p&gt;&lt;p style=&quot;clear: none; float: none;&quot;&gt;백 승현 ( 군산대학교/석사 18학번)&lt;/p&gt;&lt;p style=&quot;clear: none; float: none;&quot;&gt;안 선영 ( 이천양정여자고등학교/3학년)&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;span style=&quot;text-align: center;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 500px; width: 500px; height: 500px;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/994134425B8BFA700E&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F994134425B8BFA700E&quot; width=&quot;500&quot; height=&quot;500&quot; filename=&quot;KakaoTalk_20180902_235305684.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;width: 500px; height: 500px;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;ⓒ Team P. C., All rights Reverved.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;본 저작물의 CopyRight가 붙은 사진은 저희 팀이 직접 제작한 저작물로 모든 저작권은 Team P.C.의 멤버에게 있습니다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>포트폴리오</category>
      <category>SW융합</category>
      <category>Team P.C.</category>
      <category>군산대학교</category>
      <category>꽃보다택배</category>
      <category>무인택배함</category>
      <category>블록체인</category>
      <category>양정여자고등학교</category>
      <category>우정부</category>
      <category>우정사업부</category>
      <category>이천양정여고</category>
      <category>해커톤대회</category>
      <author>나즈나</author>
      <guid isPermaLink="true">https://nazuna.tistory.com/309</guid>
      <comments>https://nazuna.tistory.com/309#entry309comment</comments>
      <pubDate>Mon, 3 Sep 2018 09:00:00 +0900</pubDate>
    </item>
    <item>
      <title>삭제되지 않는 프로그램 강제 삭제 방법</title>
      <link>https://nazuna.tistory.com/308</link>
      <description>&lt;p&gt;테스트 환경 : Windows 10&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;윈도우에서 프로그램을 관리하다보면 특정 프로그램을 삭제 시 같이 설치된 애드온이 삭제가 안되거나 다른 프로그램의 간섭 혹은 사용자 과실로 인해 레지스트리, 파일 누락 등으로 삭제가 안되는 경우가 있다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이는 삭제 과정이 단순히 해당 파일을 제거하는 것 뿐만 아니라 해당 프로그램이 시스템에 끼친 영향을 분석하고, 그 영향을 되돌리는 작업이 필요하기 때문에 언인스톨러를 사용하는 것인데, 관련 파일이 누락되거나 문제가 발생하기 때문에 나타나는 현상이다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이러한 문제를 해결하기 위해 MS는 다음의 삭제 도구를 제공하고 있으니 참고하기 바란다.&lt;/p&gt;&lt;p&gt;다운로드 받은 프로그램을 실행하고 안내되는 절차를 따른 뒤 제거하고자 하는 프로그램을 선택 후 기다리면 강제로 프로그램을 찾아 삭제해준다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;https://support.microsoft.com/ko-kr/help/17588/fix-problems-that-block-programs-from-being-installed-or-removed&lt;/p&gt;</description>
      <category>Windows/Windows</category>
      <category>FORCE</category>
      <category>program</category>
      <category>uninstall</category>
      <category>Windows</category>
      <category>강제</category>
      <category>삭제</category>
      <category>윈도우</category>
      <category>프로그램</category>
      <author>나즈나</author>
      <guid isPermaLink="true">https://nazuna.tistory.com/308</guid>
      <comments>https://nazuna.tistory.com/308#entry308comment</comments>
      <pubDate>Tue, 21 Aug 2018 21:33:07 +0900</pubDate>
    </item>
    <item>
      <title>4차 산업혁명 드론 로고</title>
      <link>https://nazuna.tistory.com/307</link>
      <description>&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 1000px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99398A4A5B7B9B1301&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99398A4A5B7B9B1301&quot; width=&quot;1000&quot; height=&quot;563&quot; filename=&quot;Drone LOGO.png&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;제목 : 4차 산업혁명 ITIIY 사업단 드론 로고 시안&lt;/p&gt;&lt;p&gt;사용여부 : X&lt;/p&gt;&lt;p&gt;공개 : O&lt;/p&gt;&lt;p&gt;라이선스 : 본글 CCL과 동일 적용&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이미지 : PNG, PSD 구성&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;라이브러리 :&lt;/p&gt;&lt;p&gt;Anik's Adobe Tutorials - &lt;a href=&quot;https://www.youtube.com/watch?v=C9aDeiXTI_8&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;Link&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Ivan Filipov's Multi Colore&amp;nbsp;- &lt;a href=&quot;https://www.behance.net/gallery/5172881/Multicolore-FREE-Font&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;Link&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block;   height: auto; max-width: 100%;&quot;&gt;&lt;a href=&quot;https://t1.daumcdn.net/cfile/tistory/995827415B7BA34417&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://i1.daumcdn.net/cfs.tistory/v/0/blog/image/extension/psd.gif&quot; style=&quot;vertical-align: middle;&quot; onerror=&quot;this.onerror=null; this.src='//t1.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;Drone LOGO.psd&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>포트폴리오</category>
      <category>4차</category>
      <category>PSD</category>
      <category>드론</category>
      <category>로고</category>
      <category>산업혁명</category>
      <author>나즈나</author>
      <guid isPermaLink="true">https://nazuna.tistory.com/307</guid>
      <comments>https://nazuna.tistory.com/307#entry307comment</comments>
      <pubDate>Tue, 21 Aug 2018 14:31:14 +0900</pubDate>
    </item>
    <item>
      <title>본인 소유가 아닌 와이파이 이용이 정당할까?</title>
      <link>https://nazuna.tistory.com/306</link>
      <description>&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;잊을만 하면 한번 씩 올라오는 대표 질문 중 하나가 본인의 소유가 아닌 와이파이 사용이다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;옆집에서 와이파이 비밀번호를 안걸었다던지 친구집에서 몰래 WPS 등록을 해놓고 쓴다던지..&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;다양한 경우를 들고 물어보거나, 대화에서 주제로 나오기도 한다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;적어도 직접적인 관련&amp;nbsp;판례는 없지만 한 때 얕게나마 관련 법을 공부하고(아무래도 전공이니..) 법을 읽으면서 나도 몰랐던 사실을 알게 되었던 것인데 이번 기회에 나의 사견에 대해 작성해본다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;보통 타명의 와이파이를 사용하는 경우는&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;1. 카페, 영화관, 식당 등의 시설물에서 제공하는 공용 와이파이&lt;/p&gt;&lt;p&gt;2. 비밀번호가 걸려있지 않은 이웃집 와이파이 또는 도로변의 와이파이&lt;/p&gt;&lt;p&gt;3. 지인 집에서 몰래 WPS 등록하거나 잠시 알려준 비밀번호를 지속적으로 사용한&amp;nbsp;경우&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이렇게 세가지로 나뉠 수 있지 않나 생각한다.&lt;/p&gt;&lt;p&gt;특히 1번과 2번이 가장 흔한 경우인데 흔히들 '비밀번호를 걸지 않았으면 걸지 않은 소유주의 잘못이다', '소유주가 공용으로 제공한 와이파이니 사용해도 된다' 라고 알고 있는데 아래의 법 조항을 살펴보자.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;전기통신사업법 제30조(타인 사용의 제한)&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-style: solid; border-width: 1px; border-color: rgb(254, 137, 67); background-color: rgb(254, 222, 199); padding: 10px;&quot;&gt;&lt;p&gt;누구든지 전기통신사업자가 제공하는 전기통신역무를 이용하여 타인의 통신을 매개하거나 이를 타인의 통신용으로 제공하여서는 아니 된다.&lt;/p&gt;&lt;p&gt;다만, 다음 각 호의 경우에는 그러하지 아니하다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;1. 국가비상사태에서 재해의 예방ㆍ구조, 교통ㆍ통신 및 전력공급의 확보, 질서 유지를 위하여 필요한 경우&lt;/p&gt;&lt;p&gt;2. 전기통신사업 외의 사업을 경영할 때 고객에게 부수적으로 전기통신서비스를 이용하도록 제공하는 경우&lt;/p&gt;&lt;p&gt;3. 전기통신역무를 이용할 수 있는 단말장치 등 전기통신설비를 개발ㆍ판매하기 위하여 시험적으로 사용하도록 하는 경우&lt;/p&gt;&lt;p&gt;4. 이용자가 제3자에게 반복적이지 아니한 정도로 사용하도록 하는 경우&lt;/p&gt;&lt;p&gt;5. 그 밖에 공공의 이익을 위하여 필요하거나 전기통신사업자의 사업 경영에 지장을 주지 아니하는 경우로서 대통령령으로 정하는 경우&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;전기통신사업법 제 30조 2호, 4호에 의하면, 1번 카페, 영화관, 식당 등 '고객에게 부수적으로 전기통신서비스를 이용하도록 제공하는 경우'에 해당되는 경우 와이파이를 공용으로 제공해도 문제가 되지 않는다.&lt;/p&gt;&lt;p&gt;다만 '고객'이라는 단서가 있으므로 해당 매장을 이용중인 상태에 있는 자에 대하여만 제공이 허용되고 그렇지 않은&amp;nbsp;경우 인근 사무실일지라도 사용하여서는 아니된다.&lt;/p&gt;&lt;p&gt;'공용' 와이파이가 '공개' 와이파이랑 동의어인 것은 아니므로 이를 직시하여야 한다. 공용이라함은 일정 조건을 만족하는 조건부에 해당된다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;전기통신사업법 제 30조 5호에 의하면, '전기통신사업자의 사업 경영에 지장을 주지 아니하는 경우' 가 2번에 해당된다.&lt;/p&gt;&lt;p&gt;비밀번호가 걸리지 않은 와이파이는 와이파이 안테나를 통해 누구나 합법적으로 스캐닝하고 SSID와 비밀번호 여부를 알 수 있으므로 와이파이를 소유주가 공개했다는 의미로 해석되며 이는 '소유주가 공용으로 제공한 와이파이니 사용해도 된다' 에 해당되지만 '전기통신사업자의 사업 경영에 지장을 주지 아니하는 경우'에 대하여 소유주가 위배가 된다.&lt;/p&gt;&lt;p&gt;소유주가 자신의 책무를 다하지 않고 비밀번호를 공개해두고 아무 조치를 하지 않은 경우 이를 통해 주변 사용자가 인터넷 가입을 하지 않을 수 있으므로 경영에 지장이 된다.&lt;/p&gt;&lt;p&gt;또한, 이를 통해 워드라이브, 불법 다운로드 등이 발생한 경우 진범을 특정지을 수 없다면 그 피해 책임은 해당 AP의 소유주가 갖는다.&lt;/p&gt;&lt;p&gt;또한 사용자는 이동 등의 사유로 잠시간의 접속은 문제삼지 않지만 고의로 장소에 머물며 지속적으로 사용하는 경우 아래에서 언급하는 4호에 의해 위배가 된다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;내가 공부 중에 놀랐던 부분이 바로 제 30조 2호에 해당된다.&lt;/p&gt;&lt;p&gt;충분히 비밀번호가 걸려있고 물어보면 알려주기 때문에 문제가 없는 것이라고 생각했으나 위 법령과 함께&amp;nbsp;4호에 위배가 된다.&lt;/p&gt;&lt;p&gt;당시 국내 형사 관련해서&amp;nbsp;논문을 찾아봤는데 기억에 따르면 고객에게 부수적 제공인 경우에 예외로 적용하는 것이므로 현재 매장의 서비스를 이용중이지 않는 사람은 고객에 해당되지 않고(2호) 이용자가 주변에 상주하여 옆 매장의 와이파이를 사용하는 경우 반복적 사용으로 예외로 적용되지 않는다(4호).&lt;/p&gt;&lt;p&gt;이용자(기기 소유주)가 제 3자에게 반복적 사용을 허가할 수 없는 것과 반대로 사용자(제 3자)가 반복적으로 인가받지 않은 망을 사용할 수 있는 것이 허가된 것도 아니다.&lt;/p&gt;&lt;p&gt;또한, 매장의 경우 고객에게 영수증 또는 매장 내 팻말, 메뉴판 등을 통해 별도로 와이파이 패스워드를 고지하는데 이에 해당되는 경우와 예시 3번의 경우 아래의 법령이 적용된다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;정보통신망법 제48조(정보통신망 침해행위 등의 금지)&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-style: solid; border-width: 1px; border-color: rgb(254, 137, 67); background-color: rgb(254, 222, 199); padding: 10px;&quot;&gt;&lt;p&gt;① 누구든지 정당한 접근권한 없이 또는 허용된 접근권한을 넘어 정보통신망에 침입하여서는 아니 된다.&lt;/p&gt;&lt;p&gt;② 누구든지 정당한 사유 없이 정보통신시스템, 데이터 또는 프로그램 등을 훼손·멸실·변경·위조하거나 그 운용을 방해할 수 있는 프로그램(이하 &quot;악성프로그램&quot;이라 한다)을 전달 또는 유포하여서는 아니 된다.&lt;/p&gt;&lt;p&gt;③ 누구든지 정보통신망의 안정적 운영을 방해할 목적으로 대량의 신호 또는 데이터를 보내거나 부정한 명령을 처리하도록 하는 등의 방법으로 정보통신망에 장애가 발생하게 하여서는 아니 된다.&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;보면 1항에서 '누구든지 정당한 접근권한 없이 또는 허용된 접근권한을 넘어 정보통신망에 침입하여서는 아니 된다.' 라고 명시되어 있는데 비밀번호가 걸려있든(예시 3번)&amp;nbsp;아니든(예시 2번) 해당 와이파이의 소유주가 허락하지 않은 사용자가 해당 와이파이를 사용하는 행위는 법에 위배되는 행위다.&lt;/p&gt;&lt;p&gt;다만 앞서 설명한 것과 같이 피치못할 이유로 이동 중 와이파이가 자동으로 접속되는 경우 전기통신사업법 30조 4호에 의해 보호받게 된다.&lt;/p&gt;&lt;p&gt;또한 예시 3번의 경우에서 제 3자의 스틸이 아니고 소유주가 허가를 했다 하더라도, 해당 경우의 승인권한은 통신사업자에게 있기 때문에 소유주의 허가 자체가 위법이다.&lt;/p&gt;&lt;p&gt;따라서 전기통신사업법 제30조 4호 5호에 의해 소유주 또한 법에 위배된다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;거기에 위 3가지 경우 모두에 대하여 소유주가 자신의 망을 불법으로 사용하는 상대에 대하여 패킷을 캡처하거나 스니핑하는 경우 2항에 해당되어 소유주도 처벌받는다.&lt;/p&gt;&lt;p&gt;소유주는 해당 사실을 인지하는 경우 즉각 해당 SSID의 비밀번호를 바꾸거나 해당 기기를 블락 처리할 의무가 있지만 이에 대하여 불법 시찰을 할 권한이 있는 것은 아니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;너무나 당연하게 사용하고 있는 와이파이 시설들, 그러나 와이파이도 관련 법령이 있고 법령을 떠나서 상도덕이 있다.&lt;/p&gt;&lt;p&gt;현장 검거가 힘들어 관련 판례는 찾을 수 없지만 너무 당연하게 위법을 저지르고 있지는 않는지 생각해볼 필요가 있다.&lt;/p&gt;&lt;p&gt;관련 판례가 없지만 관련 논문과 해석을 많이 찾아볼 수 있었던 기억이 남아 있고, 내가 이해하고 해석한 사견이&amp;nbsp;다를 수도 있다.&lt;/p&gt;&lt;p&gt;관련하여 출처 확실한 정보의 정정은 언제나 환영이니 또다른 방문자를 위해 꼭 댓글로 남겨주었으면 한다.&lt;/p&gt;</description>
      <category>여러가지/생활상식</category>
      <category>공개</category>
      <category>공용</category>
      <category>길가</category>
      <category>도둑</category>
      <category>법령</category>
      <category>스틸</category>
      <category>와이파이</category>
      <category>조항</category>
      <author>나즈나</author>
      <guid isPermaLink="true">https://nazuna.tistory.com/306</guid>
      <comments>https://nazuna.tistory.com/306#entry306comment</comments>
      <pubDate>Tue, 10 Jul 2018 02:20:42 +0900</pubDate>
    </item>
    <item>
      <title>Facebook 자동 앱 리디렉션</title>
      <link>https://nazuna.tistory.com/305</link>
      <description>&lt;p&gt;페이스북 홍보 하다보면 페이지&amp;nbsp;링크를 올릴 일이 있다.&lt;/p&gt;&lt;p&gt;그런데 지금도 그런가 모르겠는데 페이스북 페이지 링크를 브라우저에서 누르면 페이스북이 웹으로 열리게 된 적이 있다.&lt;/p&gt;&lt;p&gt;그때 만들었던 코드인데 자신의 페이지 아이디를 알면 아이폰, 안드로이드 상관없이 앱을 통해서 페이스북 페이지가 열리게 하려고 만들었던 php 코드이다.&lt;/p&gt;&lt;p&gt;별 내용은 없어서 별다른 주석없이 공유한다.&lt;/p&gt;&lt;p&gt;워낙 내용이 없다보니.. 자바스크립트로도 쉽게 이식 가능할듯..&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;자신의 페이지 아이디 찾는 방법은 아래 글 참고.&lt;/p&gt;&lt;p&gt;https://www.facebook.com/help/community/question/?id=378910098941520&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-style: solid; border-width: 1px; border-color: rgb(121, 165, 228); background-color: rgb(219, 232, 251); padding: 10px;&quot;&gt;&lt;p&gt;&amp;lt;?php&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;$reDirectURL = &quot;아이폰, 안드로이드 가 아닐 때 리디렉션할 웹 주소(페이지 url)&quot;;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;// 아이폰 앱스토어&lt;/p&gt;&lt;p&gt;$URL_IPHONE = &quot;fb://page/?id=Page ID&quot;;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;// 구글 플레이&lt;/p&gt;&lt;p&gt;$URL_ANDROID = &quot;fb://page/Page ID&quot;;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;$iPod = stripos($_SERVER['HTTP_USER_AGENT'], &quot;iPod&quot;);&lt;/p&gt;&lt;p&gt;$iPhone = stripos($_SERVER['HTTP_USER_AGENT'], &quot;iPhone&quot;);&lt;/p&gt;&lt;p&gt;$iPad = stripos($_SERVER['HTTP_USER_AGENT'], &quot;iPad&quot;);&lt;/p&gt;&lt;p&gt;$Android = stripos($_SERVER['HTTP_USER_AGENT'], &quot;Android&quot;);&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;if($iPod || $iPhone || $iPad ){&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; $reDirectURL = &quot;Location:&quot;;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; $reDirectURL .= $URL_IPHONE;&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;else if($Android){&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; $reDirectURL = &quot;Location:&quot;;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; $reDirectURL .= $URL_ANDROID;&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;$useragent = $_SERVER ['HTTP_USER_AGENT'];&lt;/p&gt;&lt;p&gt;echo &quot;&amp;lt;b&amp;gt;Your User Agent is&amp;lt;/b&amp;gt;: &quot; . $useragent;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;header($reDirectURL);&lt;/p&gt;&lt;p&gt;exit();&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;?&amp;gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;끝.&lt;/p&gt;</description>
      <category>컴퓨터/PHP</category>
      <category>facebook</category>
      <category>아이폰</category>
      <category>안드로이드</category>
      <category>앱연결</category>
      <category>자동</category>
      <category>페이스북</category>
      <author>나즈나</author>
      <guid isPermaLink="true">https://nazuna.tistory.com/305</guid>
      <comments>https://nazuna.tistory.com/305#entry305comment</comments>
      <pubDate>Wed, 23 May 2018 07:40:14 +0900</pubDate>
    </item>
    <item>
      <title>itoa, ftoa.. 안되는 이유가 뭐야?</title>
      <link>https://nazuna.tistory.com/304</link>
      <description>&lt;p&gt;atoi : Alphabet TO Integer&lt;/p&gt;&lt;p&gt;itoa : Integer TO Alphabet&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;두 함수의 사용에 대해 포스팅을 하고자 한다.&lt;/p&gt;&lt;p&gt;나 또한 C가 익숙하게 사용할 수준이 아니기 때문에 사소하거나 쉬운 것조차 자주 헷갈리거나 까먹어 구글링을 하고는 한다.&lt;/p&gt;&lt;p&gt;그런데 정말 정말 정말.. itoa 부분에 대해 사람들이 잘 모르거나 심지어 욕설까지 하는 경우까지 있다.&lt;/p&gt;&lt;p&gt;이유는 C를 가르칠 때, 이것이 표준인지 아닌지를 가르쳐주지 않기 때문에 발생한다.&lt;/p&gt;&lt;p&gt;적어도 국내에서 많은 학교나 학원, 코딩과외 등에서 Visual Studio로 교육을 하는데 강의를 들을 때도, 보조강사로 일해볼 때도 한번도 표준과 비표준을 가르쳐주는 강좌가 없었다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&quot;숫자에서 문자열로 바꾸려면 itoa를 쓰시면 되어요.&quot;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이게 끝이라는 것이다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;결론부터 말하자면 itoa는 표준이 아니다. 비표준이다.&lt;/p&gt;&lt;p&gt;비표준 함수를 다른 환경에서 사용을 하고, 안된다고 욕설을 하는 경우를 자주 보게 된다.&lt;/p&gt;&lt;p&gt;나는 주변에 내 주도하에 프로그래밍을 가르쳐줄 때, 이런 부분 때문에 내가 몰라서 못 가르쳐준 것이 아니라면 이것이 표준인지 비표준인지를 확실히 하고 가르친다.&lt;/p&gt;&lt;p&gt;그 순간에 이해를 못하더라도, 한두번이라도 들어두면 다음에 그만큼 삽질과 잘못된 이해를 바로잡을 수 있다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;먼저, itoa는 Visual Studio에서 &quot;임의로 stdlib.h에 입력한 함수다!&quot;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strike&gt;최신 C표준은 내가 알지 못하기 때문에 최신 표준에서 추가가 되었다면 알려주시면 감사합니다.&lt;/strike&gt;&lt;/p&gt;&lt;p&gt;C18에서는 추가가 되었다는 소식입니다.&lt;/p&gt;&lt;p&gt;하지만 실 개발환경에 전부 적용되려면 수 년은&amp;nbsp;지나야 할 것입니다.&lt;/p&gt;&lt;p&gt;거기에 제가 알기론 itoa 등은 Borland C(지금의 Embarcadero..)의 함수로 알고 있어서 쉽게 표준에 들어갈 수 없는 것으로 알고 있는데..&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;그러나, 대부분의 표준 c 환경에서는(c++과의 호환에도 문제가 없는) stdlib.h에 itoa는 없다.&lt;/p&gt;&lt;p&gt;생각을 해보자.&lt;/p&gt;&lt;p&gt;동일 버전의 표준 C 라면, 그것이 리눅스가 되었든 유닉스가 되었든 맥이든 윈도우든 다 사용이 가능해야 표준 아닐까?&lt;/p&gt;&lt;p&gt;윈도우에서는 되는데 리눅스에는 안된다고 욕설을 종종 보는데, 애초에 그것이 비표준이라는 생각을 해볼 수 있지 않을까?&lt;/p&gt;&lt;p&gt;이는 처음 배울 때 표준과 비표준의 개념을 가르쳐주지 않는 대부분 교육 실태의 문제라고 본다.&lt;/p&gt;&lt;p&gt;아직 모르니까, 처음이니까 라는 핑계로 건너뛰는 경우가 많은데, 그럴수록 확실히 짚고 넘어갈 것은 넘어가야 한다.&lt;/p&gt;&lt;p&gt;위 개념을 모르니까 &quot;비표준일 것이다&quot; 라는 생각에 도달할 수가 없는 것이다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;atoi는 표준이 맞으며 어떤 환경에서도 동작하지만&lt;/p&gt;&lt;p&gt;itoa는 비표준이므로 어떤 환경에서도 동작을 보장할 수 없다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;itoa를 사용하려면 본인이 별도로 함수를 만들어 써야하는데 다음과 같이 쉽게 전환이 가능하다.&lt;/p&gt;&lt;p&gt;리는 다른 타입의 역순 전환도 해당된다.&lt;/p&gt;&lt;p&gt;다만 임의로 편리하게 작성한 것이므로 충분한 버퍼 크기를 정해줘야 하며, 이에 따른 순간의 메모리 손실은 어쩔 수 없다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;아래에는 쉽게 변환하는 부분과, 메모리 손실을 최소화 하는 방법을 기술하였다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;간단한 방법(수정 2018.02.12)&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-style: solid; border-width: 1px; border-color: rgb(121, 165, 228); background-color: rgb(219, 232, 251); padding: 10px;&quot;&gt;&lt;p&gt;char * ftoa(float f) {&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;strike&gt;char buf[256];&lt;/strike&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;char *buf;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;sprintf(buf, &quot;%f&quot;, f);&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;return buf;&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;char * itoa(int i) {&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;strike&gt;char buf[11];&lt;/strike&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;char *buf;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;sprintf(buf, &quot;%d&quot;, i);&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;return buf;&lt;/p&gt;&lt;p&gt;}&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;제보받은 C18에서의 ftoa(사실 검증이 필요하다.)&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-style: solid; border-width: 1px; border-color: rgb(159, 211, 49); background-color: rgb(231, 253, 181); padding: 10px;&quot;&gt;&lt;p&gt;void ftoa (float fval, char *buf, int nField, int nPlaces)&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;{&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;//Formats a floating point number into it's ASCII representation.&lt;/p&gt;&lt;p&gt;&amp;nbsp;// Emulates %[w].[p]f in printf format statements for those using C18 which does support %f&lt;/p&gt;&lt;p&gt;&amp;nbsp;// &lt;span style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;Input:&lt;/p&gt;&lt;p&gt;&amp;nbsp;//&lt;span style=&quot;white-space:pre&quot;&gt;		&lt;/span&gt;fval&lt;span style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;the float to be converted to ASCII&lt;/p&gt;&lt;p&gt;&amp;nbsp;//&lt;span style=&quot;white-space:pre&quot;&gt;		&lt;/span&gt;buf&lt;span style=&quot;white-space:pre&quot;&gt;		&lt;/span&gt;a char array to contain the return string&lt;/p&gt;&lt;p&gt;&amp;nbsp;//&lt;span style=&quot;white-space:pre&quot;&gt;		&lt;/span&gt;nField&lt;span style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;total width of resulting field. Equivalent to the [width] field of printf&lt;/p&gt;&lt;p&gt;&amp;nbsp;//&lt;span style=&quot;white-space:pre&quot;&gt;		&lt;/span&gt;nPlaces&lt;span style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;width of fractional part. Equivalent to the [precision] field of printf&lt;/p&gt;&lt;p&gt;&amp;nbsp;//&lt;span style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;Output:&lt;/p&gt;&lt;p&gt;&amp;nbsp;//&lt;span style=&quot;white-space:pre&quot;&gt;		&lt;/span&gt;buf&lt;span style=&quot;white-space:pre&quot;&gt;		&lt;/span&gt;Null terminated formatted string&lt;/p&gt;&lt;p&gt;&amp;nbsp;//&lt;/p&gt;&lt;p&gt;&amp;nbsp;// e.g ftoa(12.3456789,&amp;amp;buf,10,5); will produce buf&amp;nbsp; containing '&amp;nbsp; 12.34567'&lt;/p&gt;&lt;p&gt;&amp;nbsp;//&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;span style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;sprintf (buf,&quot;%*d.%0*lu&quot;, nField-nPlaces-1, (int) fval, nPlaces, (long int) ((fval - (int) fval ) * pow(10, nPlaces)) );&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;}&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>컴퓨터/C</category>
      <category>atio</category>
      <category>atof</category>
      <category>Borland</category>
      <category>C</category>
      <category>ftoa</category>
      <category>iToa</category>
      <category>Visual Studio</category>
      <category>VS</category>
      <category>비표준</category>
      <category>표준</category>
      <author>나즈나</author>
      <guid isPermaLink="true">https://nazuna.tistory.com/304</guid>
      <comments>https://nazuna.tistory.com/304#entry304comment</comments>
      <pubDate>Sat, 10 Feb 2018 21:13:29 +0900</pubDate>
    </item>
    <item>
      <title>서비스 시작 시 LSB 관련 에러</title>
      <link>https://nazuna.tistory.com/303</link>
      <description>&lt;div class=&quot;txc-textbox&quot; style=&quot;border-style: solid; border-width: 1px; border-color: rgb(254, 137, 67); background-color: rgb(254, 222, 199); padding: 10px;&quot;&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(71, 75, 81); font-family: Tahoma, Helvetica, Arial, sans-serif; font-size: 14px;&quot;&gt;mysql.service - LSB: Start and stop the mysql database server daemon&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(71, 75, 81); font-family: Tahoma, Helvetica, Arial, sans-serif; font-size: 14px;&quot;&gt;Loaded: loaded (/etc/init.d/mysql)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(71, 75, 81); font-family: Tahoma, Helvetica, Arial, sans-serif; font-size: 14px;&quot;&gt;Active: failed (Result: exit-code) since Wed 2016-05-25 14:29:05 CEST; 1min 34s ago&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(71, 75, 81); font-family: Tahoma, Helvetica, Arial, sans-serif; font-size: 14px;&quot;&gt;Docs: man:systemd-sysv-generator(8)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(71, 75, 81); font-family: Tahoma, Helvetica, Arial, sans-serif; font-size: 14px;&quot;&gt;Process: 14848 ExecStart=/etc/init.d/mysql start (code=exited, status=1/FAILURE)&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(71, 75, 81); font-family: Tahoma, Helvetica, Arial, sans-serif; font-size: 14px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(71, 75, 81); font-family: Tahoma, Helvetica, Arial, sans-serif; font-size: 14px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(71, 75, 81); font-family: Tahoma, Helvetica, Arial, sans-serif; font-size: 14px;&quot;&gt;위와 같이&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(71, 75, 81); font-family: Tahoma, Helvetica, Arial, sans-serif; font-size: 14px;&quot;&gt;LSB: Start and stop the mysql database server daemon 에러가 발생한 경우&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(71, 75, 81); font-family: Tahoma, Helvetica, Arial, sans-serif; font-size: 14px;&quot;&gt;my.cnf 파일에서 [mysqld] 섹션 아래에 아래와 같이 옵션을 추가한 뒤 실행하면 된다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(71, 75, 81); font-family: Tahoma, Helvetica, Arial, sans-serif; font-size: 14px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(71, 75, 81); font-family: Tahoma, Helvetica, Arial, sans-serif; font-size: 14px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-style: solid; border-width: 1px; border-color: rgb(121, 165, 228); background-color: rgb(219, 232, 251); padding: 10px;&quot;&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(71, 75, 81); font-family: Tahoma, Helvetica, Arial, sans-serif; font-size: 14px;&quot;&gt;[mysqld]&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(71, 75, 81); font-family: Tahoma, Helvetica, Arial, sans-serif; font-size: 14px;&quot;&gt;innodb_force_recovery = 1&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(71, 75, 81); font-family: Tahoma, Helvetica, Arial, sans-serif; font-size: 14px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(71, 75, 81); font-family: Tahoma, Helvetica, Arial, sans-serif; font-size: 14px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(71, 75, 81); font-family: Tahoma, Helvetica, Arial, sans-serif; font-size: 14px;&quot;&gt;원인은 어떤 요인으로 innodb가 깨져서 mysql이 실행이 안되는 것으로 강제로 복구옵션을 켜주면 일단 켜지는건 가능하다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(71, 75, 81); font-family: Tahoma, Helvetica, Arial, sans-serif; font-size: 14px;&quot;&gt;혹시 모르니 백업 후 db를 다시 세팅하는 것을 권장한다.&lt;/span&gt;&lt;/p&gt;</description>
      <category>Server/MySQL</category>
      <category>broken</category>
      <category>innodb</category>
      <category>Linux</category>
      <category>LSB</category>
      <category>MySQL</category>
      <category>깨짐</category>
      <author>나즈나</author>
      <guid isPermaLink="true">https://nazuna.tistory.com/303</guid>
      <comments>https://nazuna.tistory.com/303#entry303comment</comments>
      <pubDate>Wed, 6 Sep 2017 16:20:16 +0900</pubDate>
    </item>
    <item>
      <title>[10] 윈도우 부트로더가 깨졌을 때, 기타 문제 발생 시 usb가 없다면 네트워크로</title>
      <link>https://nazuna.tistory.com/302</link>
      <description>&lt;p&gt;사실 이 포스팅을 하게 된 계기는 오늘 새벽&amp;nbsp;내 하드디스크 한 장이 보드가 나가버리는 일이 발생했습니다.&lt;/p&gt;&lt;p&gt;그런데 예전에&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;하드디스크에서 윈도우 설치,&amp;nbsp;&lt;a href=&quot;http://nazuna.kr/215&quot; target=&quot;_blank&quot;&gt;2012/11/07 - [Windows/VHD] - VHD를 사용하는데 복구시 마다 명령어 입력이 귀찮을때&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&amp;nbsp;등 실험하느라 부트로더를 HDD로 옮기고 SSD는 여러번 포멧을 거치며 기존 부트로더는 삭제되었는데, 하필 보드가 나간 하드가 부트로더가 들어있는 하드였...네요..&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 1000px; text-align: center;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2444B8455945B99708&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2444B8455945B99708&quot; width=&quot;1000&quot; height=&quot;563&quot; filename=&quot;KakaoTalk_20170618_082114673.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;text-align: center;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 8pt;&quot;&gt;운명하신.... 시게이트 바라쿠다 2테라..&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;내 포트폴리오가 들은 하드인데.. 그건 업체 맡기면 된다지만 당장 부팅을 해야 과제도 외주도 작업할 거 아닌가...??&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;문제는 USB가 없었습니다.&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;평소에 시놀로지 만만세를 외치고 HDD에 윈도우 이미지 올려놓아서 usb의 필요성을 느끼지 못했던 것에 대해 후회가 밀려오지만 뭐... 이제와서 땅 파면 안나오잖아요..?&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;이 때 예전에 Windows Server 2012 R2 운용 당시 윈도우 배포 서버를 만졌던 기억이 나서 일반 데스크톱도 PXE 서버 구성이 되지 않을까 하고 찾아봤습니다.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;마침 저는 같은 네트워크 안에 다른 pc가 무려 두 대! 나 있기 때문에 네트워크로 윈도우 복구를 해봤습니다.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://tftpd32.jounin.net/tftpd32_download.html&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;TFTPd32&lt;/a&gt;&amp;nbsp;/ 64(바이러스 사이트라 나오나 문제 없습니다.)&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://reboot.pro/files/file/303-tiny-pxe-server/&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;Tiny PXE Server&lt;/a&gt; ( 추천)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;사실 저는 둘 다 실험해봤고 아랫것이 더 좋다고 판단하여 추천 드렸습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;TFTPd32는 부트 이미지들을 커널레벨부터 손수 찾아서 넣어주고 설정해야하는 반면에 Tiny PXE Server(이하 tps)는 커널 파일들이 패키지로 종류별로 전부 들어있습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;또 부팅시에 사용한 이미지가 있는데 윈도우 10 은 어째서인지 WinPe로 100% 복구가 불가능하거나, WinRe iso 파일이 없습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;대부분의 포스팅을 보면 WinRe를 직접 USB에 굽는 방법만 나와있을 뿐 그 iso 파일은 없었습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;그런데 Kyhi 라는 유저가 Windows 10 용 Recovery Tool Image 파일을 제공해주셨습니다. 박수 짝&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 750px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/223622375945BE2610&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F223622375945BE2610&quot; width=&quot;750&quot; height=&quot;422&quot; filename=&quot;2017-01-17_063449.png&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://www.tenforums.com/software-apps/27180-windows-10-recovery-tools-bootable-rescue-disk.html&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;Windows 10 Recovery Tools - Bootable Rescue Disk&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;자세한 파일 구성은 위 링크를 통해서 확인하시고 저는 바로 설명하겠습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;먼저 주의 사항은 두 프로그램 모두 iso 파일이 3기가 정도를 넘어가면 안됩니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;TFTPd의 경우는 아예 파일을 보내주지 않고, tps는 일정 용량(3기가 추정)이 넘어가면 메모리 에러가 발생합니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;제 생각엔 둘 다 iso를 위해서는 memtest를 커널로 사용하는데, 이 커널이 읽을 수 있는 최대 메모리가 3.x 기가로 제한되는 것같습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;바로 32비트 윈도우의 메모리 제한량과 같죠..&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;그래서 윈도우를 새로 설치하거나 복구할 때 윈도우 이미지를 직접 불러올 수가 없었습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;방법은 두 가지 있는데,&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;1. PXE 서버에서 네트워크 공유(SMB)를 통해 파일을 당겨오는 방법.&lt;/p&gt;&lt;p&gt;2. 우선 부팅 후 브라우저를 통해 새로 내려받아 설치하는 법.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;애초에 1번의 경우 PXE 자체가 같은 서브넷 안에서 동작하기 때문에 (ip 할당 및 PXE 요청을&amp;nbsp;브로드캐스트로 요청함) 언제나 가능한 기능이고, 2번의 경우는 pxe 서버로 쓰는 컴퓨터에 비밀번호가 없거나 걸기 싫은 경우, SMB가 차단된 경우 사용할 수 있는 방법입니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;1번은 그저 아무 iso 마운트 프로그램이나 (윈10은 기본 내장) 가져다가&amp;nbsp;iso를 시디롬으로 마운트하고, 그 시디롬을 통째로 공유하면 됩니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 601px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2439CE505945BFDB08&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2439CE505945BFDB08&quot; width=&quot;601&quot; height=&quot;422&quot; filename=&quot;공유1.png&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 601px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/27107E505945BFDB0D&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F27107E505945BFDB0D&quot; width=&quot;601&quot; height=&quot;422&quot; filename=&quot;공유2.png&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;2번은 뭐 알아서.. 내려받으시면...&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;TFTPd 설정&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;압축을 풀면 아래와 같이 파일이 있습니다.&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 709px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/22749A4E5945C0A20D&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F22749A4E5945C0A20D&quot; width=&quot;709&quot; height=&quot;559&quot; filename=&quot;tftpd1.PNG&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;여기서 각 값을 아래와 같이 수정합니다.&lt;/p&gt;&lt;p&gt;IP Pool start address : 본인 dhcp 대역 내에서 알아서.. 대게 iptime은 192.168.0.2 zio나 신형 kt허브는 172.30.1.1, 구형 kt허브나 기타 브랜드는 10.0.0.2로 입력하면 됩니다.&lt;/p&gt;&lt;p&gt;Size of pool : 10보다만 크게 해주세요.&lt;/p&gt;&lt;p&gt;Boot File : pxelinux.0 (추후 설명)&lt;/p&gt;&lt;p&gt;Def. router : 공유기&lt;/p&gt;&lt;p&gt;Mask : 본인 아이피 시작 192.168&amp;nbsp;-&amp;gt; 255.255.255.0, 172.30&amp;nbsp;-&amp;gt; 255.255.255.0 또는 255.255.0.0, 10.0 -&amp;gt; 255.255.255.0 인데 가끔 진짜 이상하게 이것을 255.0.0.0 하는 공유기가 있음.. 공유기가...&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;그리고 TFTP 탭에서 PXE Compatibility 체크하시면 됩니다.&lt;/p&gt;&lt;p&gt;체크하는 이유는 일부 iso 부팅이 이 옵션 없이는 부팅이 안됩니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;pxelinux.0은 Kernel.org 의 syslinux에 있습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://www.kernel.org/pub/linux/utils/boot/syslinux/&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;Syslinux&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;4.04 버전이나 3.86버전을 내려받아 압축을 풀고(제가 테스트해본건 저 두버전)&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;3.86기준&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;core -&amp;gt; pxelinux.0&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;com32 -&amp;gt; menu -&amp;gt; menu.c32&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;그리고&amp;nbsp;pxelinux.cfg 폴더를 만들고 그 아래에 Default 파일을 만들고 아래 내용과 같이 본인 파일에 맞춰&amp;nbsp;적습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-style: solid; border-width: 1px; border-color: rgb(254, 137, 67); background-color: rgb(254, 222, 199); padding: 10px;&quot;&gt;&lt;p&gt;DEFAULT menu.c32&lt;/p&gt;&lt;p&gt;PROMPT 0&lt;/p&gt;&lt;p&gt;ALLOWOPTIONS 0&lt;/p&gt;&lt;p&gt;TIMEOUT 100&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;MENU TITLE PXE Boot Menu&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;LABEL local&lt;/p&gt;&lt;p&gt;MENU LABEL Local Boot&lt;/p&gt;&lt;p&gt;MENU DEFAULT&lt;/p&gt;&lt;p&gt;localboot -1&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;LABEL winpe_iso1&lt;/p&gt;&lt;p&gt;MENU LABEL WinPE (Memdisk)&lt;/p&gt;&lt;p&gt;KERNEL memdisk&lt;/p&gt;&lt;p&gt;append iso raw initrd=iso/winpe10.iso&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;TPS 설정&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;tps는.. 애초에 다 준비가 되어 있습니다.&lt;/p&gt;&lt;p&gt;여러분들이 해야 할 것은 뭐다..? iso 구해넣고 메뉴 추가하고 설정하고 끝..&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 499px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/230B27445945C7932B&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F230B27445945C7932B&quot; width=&quot;499&quot; height=&quot;489&quot; filename=&quot;tps1.PNG&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;좀전에 tftpd에서&amp;nbsp;본 모양이죠? 척척 넣습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Boot File의 Filename은 설치 폴더 아래에 files 안에 있으니 찾아보시면 됩니다.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;다른 커널을 쓰더라도 이 폴더를 잘 보시면 이미 다 들어 있습니다.. 네..&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이제 files/iso에 파일을 넣습니다.&lt;/p&gt;&lt;p&gt;iso는 WinPe, Re, 뭐 기타 3기가 정도만 안넘으면 다 가능합니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;다 넣으셨으면 files/pxelinux.cfg/default 열고 아래와 같이 수정합니다. 위에거와 방법이 같죠? 같은 커널이니까요..&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-style: solid; border-width: 1px; border-color: rgb(254, 137, 67); background-color: rgb(254, 222, 199); padding: 10px;&quot;&gt;&lt;p&gt;LABEL winpe_iso1&lt;/p&gt;&lt;p&gt;MENU LABEL WinPE (Memdisk)&lt;/p&gt;&lt;p&gt;KERNEL memdisk&lt;/p&gt;&lt;p&gt;append iso raw initrd=iso/winpe10.iso&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;다 하셨으면 위에 online을 한번 offline으로 껐다 다시 켜주시구요.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이제 메인보드에서 PXE 설정만 하면 됩니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;PXE 설정은 다음 글에서 다루겠습니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;별다른 내용은 없고 메인보드에서 PXE 를 찾아 on 시키고 부팅 순서에 넣어주시면 서버에서 찾아서 알아서 부팅합니다.&lt;/p&gt;</description>
      <category>Windows/Windows</category>
      <category>kyhi</category>
      <category>pxe</category>
      <category>recovery</category>
      <category>Rescue</category>
      <category>tftpd32</category>
      <category>tftpd64</category>
      <category>tiny pxe server</category>
      <category>TPS</category>
      <category>Windows</category>
      <category>네트워크 부팅</category>
      <category>복구</category>
      <category>복원</category>
      <category>부트로더</category>
      <category>윈도우</category>
      <author>나즈나</author>
      <guid isPermaLink="true">https://nazuna.tistory.com/302</guid>
      <comments>https://nazuna.tistory.com/302#entry302comment</comments>
      <pubDate>Sun, 18 Jun 2017 09:28:03 +0900</pubDate>
    </item>
    <item>
      <title>이상한 Undeclared</title>
      <link>https://nazuna.tistory.com/301</link>
      <description>&lt;P&gt;델파이는 잘 만든듯 하면서 엉뚱한데서 허술하다.&lt;br /&gt;예를들어 요즘엔 당연시 되는 자동 uses 따위 없다.&lt;br /&gt;컴포넌트를 올리고 저장하면 그 부분은 자동으로 되지만 함수나 클래스를 당겨올 경우는 자동 uses 가 안된다.&lt;br /&gt;데브기어 측에서는 여러가지 말을 해줬지만 그냥 결론은 엠바가 이걸 만들줄 모른다 라고 밖에 안들린다.&lt;br /&gt;철학은 무슨 델파이 기본이 빠른 생산성인데 uses 해야할 라이브러리 찾아 다니다가 시간만 다 잡아먹는다.&lt;br /&gt;이상한데서 개발 능력이 떨어지는 엠바가 또 한가지 버그가 있는데 기본 클래스가 ide에서 에러로 걸린다는 거다.&lt;br /&gt;이건 진짜 내가 쓰는 도쿄버전에 국한된 문제가 아니라 전의 전의 전의 전의 내가 델파이를 처음썼던 xe2부터 이미 보고가 된 것인데 고치지 못했다는건&lt;br /&gt;엠바 IDE 개발 수준은 딱 거기까지 라는 것.&lt;br /&gt;이런 엉뚱한 점을 이의제기하면 덮기 일쑤던데 (특히 나같이 입문한지 얼마 안된 사람은) 기본은 좀 하고 덮자.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;어쨌든 아래와 같은 상황이 있다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: center; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 504px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/234F003E5942D67C26&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F234F003E5942D67C26&quot; width=&quot;504&quot; height=&quot;192&quot; filename=&quot;12.PNG&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;보면 델파이의 가장 기본 클래스인 TObject가 밑줄이 들어가있다.&lt;/P&gt;
&lt;P&gt;이런 식으로 기본 기능 자체가 좀... 이상하다 델파이는.. 심각하게..&lt;/P&gt;
&lt;P&gt;그대로 빌드해도 큰 문제는 없지만 찝찝해도 이대로 해야된다.. 아님 IDE를 재시작하거나..&lt;/P&gt;
&lt;P&gt;엠바에 신고한 버그 리포트에 따르면 ide가 기본적으로 system을 먹고 들어가야 하는데 이걸 못먹는단다.&lt;/P&gt;
&lt;P&gt;근데 이게 내가 본것이 08년도 글인데 10년째 못고치고 있다는 소리다..&lt;/P&gt;</description>
      <category>컴퓨터/Delphi</category>
      <category>Delphi</category>
      <category>embarcadero</category>
      <category>기본</category>
      <category>델파이</category>
      <category>엠바</category>
      <category>엠바카데로</category>
      <category>이상한 undeclared</category>
      <category>지키자</category>
      <author>나즈나</author>
      <guid isPermaLink="true">https://nazuna.tistory.com/301</guid>
      <comments>https://nazuna.tistory.com/301#entry301comment</comments>
      <pubDate>Fri, 16 Jun 2017 03:50:58 +0900</pubDate>
    </item>
    <item>
      <title>[PWD] 현재 위치 확인 명령</title>
      <link>https://nazuna.tistory.com/300</link>
      <description>&lt;P style=&quot;TEXT-ALIGN: center&quot;&gt;PWD&amp;nbsp;(-L) 현재 환경상 경로 반영&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: center&quot;&gt;PWD -P 실제 현재 위치 반영&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: center&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: center&quot;&gt;ex)&lt;/P&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: center; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 471px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/267DB04758D62B4610&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F267DB04758D62B4610&quot; width=&quot;471&quot; height=&quot;136&quot; filename=&quot;pwd.PNG&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <category>Linux/공통</category>
      <category>CentOS</category>
      <category>debian</category>
      <category>Linux</category>
      <category>pwd</category>
      <category>ubuntu</category>
      <category>공통</category>
      <category>리눅스</category>
      <category>위치</category>
      <category>확인</category>
      <author>나즈나</author>
      <guid isPermaLink="true">https://nazuna.tistory.com/300</guid>
      <comments>https://nazuna.tistory.com/300#entry300comment</comments>
      <pubDate>Sat, 25 Mar 2017 17:34:26 +0900</pubDate>
    </item>
    <item>
      <title>[Common] Can't open display ...</title>
      <link>https://nazuna.tistory.com/299</link>
      <description>&lt;p&gt;라즈베리 뿐만 아니라 리눅스에서 gui. tui를 동시에 지원하는 프로그램을 사용할 때, tui에서 tui 실행용 명령어를 입력했음에도 아래와 같은 에러가 발생하는 경우가 있다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-style: solid; border-width: 1px; border-color: rgb(121, 165, 228); background-color: rgb(219, 232, 251); padding: 10px;&quot;&gt;&lt;p&gt;Can't open display localhost:10.0&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이럴때는 X11 Forwarding이 활성화되어 있기 때문인데&lt;/p&gt;&lt;p&gt;/etc/ssh/sshd_config 파일에서 X11Forwarding 을 no로 바꾸거나 주석처리하면 된다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;X11 Forwarding 이란 쉽게 하자면 SSH 환경에서 X11 인터페이스 사용이 가능하게끔 디스플레이 정보를 포워딩 해주는 것이다.&lt;/p&gt;&lt;p&gt;xming과 같은 프로그램과 같이 사용하면 ssh 접속만으로 저쪽의 gui 프로그램을 당겨올 수 있다.&lt;/p&gt;&lt;p&gt;(ex gedit.. firefox... minecraft(된다... 프레임은 보장 못하지만..))&lt;/p&gt;</description>
      <category>초소형컴퓨터/Rasberry Pi</category>
      <category>can't open display</category>
      <category>X11</category>
      <category>라즈베리파이</category>
      <category>에러</category>
      <author>나즈나</author>
      <guid isPermaLink="true">https://nazuna.tistory.com/299</guid>
      <comments>https://nazuna.tistory.com/299#entry299comment</comments>
      <pubDate>Mon, 20 Mar 2017 23:47:21 +0900</pubDate>
    </item>
    <item>
      <title>[2B] 라즈베리파이 gpio 시리얼 사용하기</title>
      <link>https://nazuna.tistory.com/298</link>
      <description>&lt;p&gt;17.03.20 현재 기준, 언제부터인가 라즈베리파이에서 시리얼 포트 활성화가 매우 간편해졌다.&lt;/p&gt;&lt;p&gt;그런데 이를 모르고 예전 방식을 계속 사용하거나 포스팅하는 사람들이 많아 메모 겸 포스팅을 작성한다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;방법은&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;pi@raspberrypi:~ $ raspi-config&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 611px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2111DA4C58CFE88118&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2111DA4C58CFE88118&quot; width=&quot;611&quot; height=&quot;370&quot; filename=&quot;1.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 612px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/262C644C58CFE88108&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F262C644C58CFE88108&quot; width=&quot;612&quot; height=&quot;368&quot; filename=&quot;2.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 612px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/243D344C58CFE8822B&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F243D344C58CFE8822B&quot; width=&quot;612&quot; height=&quot;370&quot; filename=&quot;3.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 616px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2146684C58CFE88211&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2146684C58CFE88211&quot; width=&quot;616&quot; height=&quot;374&quot; filename=&quot;4.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;더이상 예전처럼 환경파일을 직접 수정하고 할 필요가 없어졌다. (특히 그 환경파일이 버전마다 내용이 바뀌어서 찾는 글 족족 맞는게 없더라..)&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>초소형컴퓨터/Rasberry Pi</category>
      <category>Embedded</category>
      <category>PI</category>
      <category>Raspberry</category>
      <category>serial</category>
      <category>라즈베리파이</category>
      <category>마이컴</category>
      <category>사용</category>
      <category>시리얼</category>
      <category>임베디드</category>
      <author>나즈나</author>
      <guid isPermaLink="true">https://nazuna.tistory.com/298</guid>
      <comments>https://nazuna.tistory.com/298#entry298comment</comments>
      <pubDate>Mon, 20 Mar 2017 23:36:45 +0900</pubDate>
    </item>
    <item>
      <title>[머릿글] C#을 학습하기 앞서.</title>
      <link>https://nazuna.tistory.com/296</link>
      <description>&lt;p&gt;C#을 배우기에 앞서 내가 왜 C#을 배우게 되었는지에 대해 먼저 포스팅해보려고 한다. 많은 학생분들이나 선배 개발자님들도 C#을 많이 학습하고 있는데 이러한 흐름에 몸을 실으면서 학습을 하게 된 것은 아니다. 먼저 델파이와 C#의 차이를 먼저 비교해야한다. 먼저 난 델파이가 싫어져서 C#을 배우기 시작한 것이 아니다. C#에 그렇게 큰 비중을 두고 학습하는 것도 아니고 여전히 내 주력 언어는 델파이일지도 모른다. 하지만 한 우물만 파면 더 좋은 것이 있어도 보질 못하고 생각또한 갇히게 된다. 나는 C#을 통해 델파이에서의 불편했던 점을 찾고, 하일스베르 등이 델파이에서는 이렇게 생각하고 구현한 것을 C#에서는 어떻게 처리했는지, C#에서 더 매끄럽거나 더 뛰어난 컨트롤이 있다면 보고 배워 델파이의 컴포넌트로 포팅해 보기까지 다양한 호기심을 충족하고자 학습을 시작한다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이 글을 적는 이유는 먼저 C#은 델파이가 아니다. 델파이의 많은 철학이 그대로 녹아있지만 동일하게 봐서는 안된다. 오히려 나는 이것을 배우면서 현재까지는 자바와 드림위버같은 느낌을 더 크게 받았다. 게다가 계속 개발되어지고 있는 언어이다. 너무 델파이만 신봉하여선 안된다는 소리다. MS 닷넷 특성상 델파이처럼 코드 단일화가 되기는 조금 힘들겠지만. (MS의 Object-C 같다는 소리도 한다고 한다)&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;최근들어 델파이를 잘 사용하지 못하게 되었고, 간간히 내가 찾은 팁이나 국내 책에서 알려주지 않는 소소한 기능 설명을 위해 업로드하던 포스팅도 겨우 4건에서 그쳤다.&lt;/p&gt;&lt;p&gt;가만 고민해보면 우선 델파이의 지원 범위가 아직은 내가 원하는 범위까지 지원되지 못하는 탓이 클 것이다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;라자루스를 통해 오브젝트 파스칼을 쓸 수 있다지만 라자루스 또한 다양한 리눅스 제품군을 커버하지는 못하고 있고 나의 경우 임베디드 리눅스와 TUI 환경의 프로그램을 주로 접하다보니( 그러고보니 요 몇년간 리눅스에서 GUI를 쓴 적은 X11 포워딩을 통한 gedit 밖에 없다.) 더욱 델파이와 거리를 두게 되었다고 할까.&lt;/p&gt;&lt;p&gt;사실상 델파이는 내게 있어서 아직은 임베디드의 제어를 위한 서브 도구에 지나지 않는다고 하면 되겠다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;그렇다고 델파이가 별로 좋지 않다는 것은 아니다. 오히려 내가 비록 보잘것없으나 이 정도의 언어 실력까지 올라올 수 있었던 것은 델파이의 단순함과 직관적인 UI를 통해 빠른 생산성을 얻을 수 있음은 부정할 수 없다. 네이티브이기 때문에 자바나 닷넷보다 빠를 수 있음은 두말할 것 없고. 델파이는 여전히 훌륭한 도구이고 훌륭한 개발자들의 손을 통해 오늘날에도 철학을 지키며 만들어져 오고 있다. 많은 개발자들이 많은 훌륭한 프로그램을 만들어 내고 있으며 때로는 기존의 많은 프로그래머들이 찬양하던 자바 언어로 된 프로그램이 하나 둘 델파이로 대체되는 경향도 없잖아 보이고 있다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;많은 사람들이 델파이는 너무 마이너적인 언어라고 한다. 인정할 수 밖에 없다. 마이너라는 것은 아무리 훌륭한 언어라도 비주류라면 어디에나 붙을 수 있는 칭호고 델파이는 여전히 마이너라고 생각한다. 많은 프로젝트가 여전히 자바와 닷넷 위에서 진행되고 있고 임베디드 또한 C와 C++로 작성되어지고 있다. 한때 빠른 취직을 위해 찾아볼 때도 구인 구직 또한 자바가 압도적이었으니까. (물론 대부분 제값 받을 수 있는 일은 아니었다.) 하지만 나는 이 부분이 한창 IDE 플랫폼 시장이 격화될 때 인재 유출로 인해 많은 개발자와 고객사를 잃어버린 탓이 크다고 생각한다. 만약 당시에 MS가 Delphi, Turbo Pascal의 개발자들을 전원 스카웃하지 않았다면 어땠을지는 개개인의 의견차가 크니 별다로 언급하지 않겠다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;내가 이런 좋은 언어를 배웠음에도 C#을 배우려는 점은 몇 가지가 있는데 그중 하나는 Visual Studio라는 IDE 플랫폼의 매력이 크다. 델파이는 언어 철학과 직관적인 배치, 사용법은 확실히 VS보다 편하다. 적응의 문제가 아니다. 나는 작년 이맘 때 처음 델파이를 학습했고, c#을 학습하는 지금 벌써부터 불편함이 느껴진다. 디폴트 환경에 도구 상자가 감춰져 있어야 하는 이유를 모르겠으며 Control의 Drag &amp;amp; Drop 시 왜 내가 끌어다 놓은 곳에 정확히 안착하지 못하고 좌상단 모서리에 안착이 되는지는 여전히 이해할 수가 없다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 760px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/214290475878070C24&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F214290475878070C24&quot; width=&quot;760&quot; height=&quot;842&quot; filename=&quot;01.png&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;위치 포인트는 무시하더라도 여러 도구를 가져오는 시간도 상당히 오래 걸린다. 내가 왜 xaml을 봐야하는지 이것 또한 이해할 수 없는 요소이다. 그렇다고 보기 좋게 작성되는 것도 아니며 속성 팔레트가 존재하는데도!&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;하지만 델파이가 VS를 따라오지 못하고 있는 부분도 보이는데, 델파이는 라이브러리 확인이 다소 불편하다. 델파이의 라이브러리를 살펴보기가 어렵다는 것이 아니다. 라이브러리 자체는 훨씬 쉬운데, 그 방법론의 문제다.&lt;/p&gt;&lt;p&gt;우선 델파이에서의 정의 확인부터 간단히 넘어가보자.&lt;/p&gt;&lt;p&gt;델파이에서 어떤 변수가 어디에 선언 되었는지, 사용되었는지 찾기는 VS보다 쉽다.&lt;/p&gt;&lt;p&gt;Ctrl 누른 상태에서 해당 변수든 프로시저든 펑션이든 누르면 넘어간다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 220px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2629DF4D5878080508&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2629DF4D5878080508&quot; width=&quot;220&quot; height=&quot;136&quot; filename=&quot;02.png&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;그렇다. 누르면? 넘어간다. 그냥...&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;완전히 커서가 해당 구역으로 넘어가버린다는 의미이다.&lt;/p&gt;&lt;p&gt;라이브러리에서의 정의를 확인하기 위해 누르면?&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 520px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2116D94E587809011E&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2116D94E587809011E&quot; width=&quot;520&quot; height=&quot;629&quot; filename=&quot;03.png&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;VS에서는 이 기능이 윗처럼도 가능하지만 이렇게 구현이 될 수도 있다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 760px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2307E74958780BA51D&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2307E74958780BA51D&quot; width=&quot;760&quot; height=&quot;412&quot; filename=&quot;04.png&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;델파이를 공부하다가 후배가 물어봐서 VS를 오랜만에 설치해서 연 적이 있는데 이 기능은 정말... 정말이지 놀라웠다.&lt;/p&gt;&lt;p&gt;델파이는 단일 모니터에 최적화된 툴의 느낌이라면 VS는 넓은 화면을 효율적으로 볼 수 있다고 봐야겠다.(그것이 도구 팔레트를 기본으로 고정시켜주지 않은 것을 변명할 수는 없지만) 실제 델파이를 코딩하다보면 라이브러리를 직접 확인할 일이 생각보다 많은데 다른 언어는 레퍼런스를 주로 보고 의지한다면 델파이는 각 변수의 용도 정도만 알아도 초보 개발자가 라이브러리를 보는데 큰 지장이 오지는 않는다. 되려 델파이의 레퍼런스나 책을 볼 일보다 책에 나오지 않는 컴퍼넌트의 명확한 용도를 알고자 구글링할 때가 더욱 많으니까. 그런데 그 보는 방식이 너무 불편하다는 것이다. 무조건 탭이 넘어가고 동시에 두가지 탭을 보기 힘들다. 하지만 이 기능은 내가 수정하고자 하는 코드 바로 근처에서 내가 원하는 정보를 찾아주므로 비교해보고 내용을 파악하기에 최적화되어 있다는 거다.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;그 외에 차이점을 더 느끼지만 한번에 다 공개해버리면 뭔가 언어간 디스전과 같이 흘러갈 것같다. 나는 특정 언어가 우월하다는 것에는 반대하는 입장이고, 디스보다는 이 언어는 이게 낫고 저 언어는 이게 좋더라.. 정도로 봐주었으면 한다. 앞으로의 c# 학습 글은 얼마나 올라올 지 모르겠지만 전체적인 흐름은 델파이나 이클립스와의 비교로 진행하게 될 듯하다. 급할땐 한번에 내가 필요한 정보를 제공하는 것도 좋고 따라함으로써 금세 성취감을 느낄 수 있는 구성도 좋지만, 그런 책이나 강의, 강사님들은 많다. 하지만 처음부터 여러 언어의 차이나 해당 언어의 원리에 대해 맛보기나마 호기심을 채워주는 글은 많지 않다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;나 또한 언어의 학습에 있어 많은 부분이 부족했지만 초보자 수준에서 접할 수 있는 정보의 양은 한계가 있었고 지금도 나는 초보자일 뿐이다. 하지만 초보자가 초보자의 입장에서, 책만으로는 알기 어려웠던 접시물의 깊이를 내가 겪었던 그대로 풀어 설명을 하고 싶다. 결국 나는 나중에도 언제나 초보자일 것이고 나 또한 이 글들을 통해 다시금 배우고 새로운 것을 알게 될 것이니까.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;PS. 실제로 나는 중학생 때 C를 배우면서도 왜 이게 이러는지 모르고 배웠다. 이 글을 어쩌다가 읽게된 몇몇 당신도 찔리지는 않으시는지..?&lt;/p&gt;</description>
      <category>컴퓨터/C#</category>
      <category>C</category>
      <category>C#</category>
      <category>C++</category>
      <category>Delphi</category>
      <category>IDE</category>
      <category>VisualStudio</category>
      <author>나즈나</author>
      <guid isPermaLink="true">https://nazuna.tistory.com/296</guid>
      <comments>https://nazuna.tistory.com/296#entry296comment</comments>
      <pubDate>Fri, 13 Jan 2017 08:20:52 +0900</pubDate>
    </item>
    <item>
      <title>[설치] DD-WRT를 설치해보자 - WebGUI편</title>
      <link>https://nazuna.tistory.com/295</link>
      <description>&lt;p&gt;상당히 오래전 DD-WRT 펌웨어를 소개하고, 이 설치 방법을 포스팅하겠다고 했는데 어느새 벌써 11월의 마지막 주입니다.&lt;/p&gt;&lt;p&gt;DD-WRT는 WRT계열 오픈소스 라우터 펌웨어로 라즈베리파이를 깊게 사용해보신 분이라면 OpenWRT 정도는 들어보셨을 겁니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;OpenWRT는 가장 오래되었고 가장 많은 기능을 수행할 수 있지만 여타 리눅스처럼 기본 기능만 들어있고 나머지는 패키지로 별도 설치, 설정해야하는 불편함이 있습니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;DD-WRT는 빌드 버전별로, 빈티지 별로 사전에 정의된 모든 기능이 다같이 들어있는 펌웨어로 초보자도 비교적 쉽게 다루지만 세세한 설정을 하기는 힘듭니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;두 펌웨어 모두 공통적으로 리눅스 기반입니다.&lt;/p&gt;&lt;p&gt;즉, 라우터로써의 기능 뿐 아니라 다른 기능도(웹서버 등) 가능하다는 이야기입니다.&lt;/p&gt;&lt;p&gt;사실 소형 컴퓨터 하나 생긴다고 보셔도 됩니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;WRT 펌웨어는 WRT 계열만 가능합니다. 모델명이 WRT가 아니라 WRT 계열 펌웨어만 WRT 계열의 다른 해킹펌, 오픈소스 펌웨어로 해킹이 가능합니다.&lt;/p&gt;&lt;p&gt;DD-WRT의 커펌 가능 여부와 다운로드는 이곳에서 조회할 수 있습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-style: solid; border-width: 1px; border-color: rgb(243, 197, 52); background-color: rgb(254, 254, 184); padding: 10px;&quot;&gt;&lt;p&gt;Router Databases : &lt;a href=&quot;http://www.dd-wrt.com/site/support/router-database&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;http://www.dd-wrt.com/site/support/router-database&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;DD-WRT의 설치에 앞서 갑자기 다시 포스팅을 한 이유를 알려드리겠습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 760px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/214F983E583AE50B32&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F214F983E583AE50B32&quot; width=&quot;760&quot; height=&quot;428&quot; filename=&quot;01.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;바로 요놈인데요.&lt;/p&gt;&lt;p&gt;요놈의 이름은 WRT54G Rev.2로 정말 잔고장치레조차 안하기로 유명한 공유기중에서도 제일 안나기로 유명한 리비전입니다.&lt;/p&gt;&lt;p&gt;유선 100mbps, 무선 11g 밖에 지원하지 않는 구형이지만, 여전히 한번 써본 사람들은 11n 공유기가 있음에도 혼용해서 쓰거나 뜯지도 않을 정도로 많은 분들이 애용하는 공유기입니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;그 정도로 좋고 요즘은 시중에서 보기 힘든, 공유기 안정성으로는 레전드로 칭해도 괜찮은 공유기인데요.&lt;/p&gt;&lt;p&gt;누가 학교에 일반 쓰레기로 버렸더라구요.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 755px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/22020444583AE62130&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F22020444583AE62130&quot; width=&quot;755&quot; height=&quot;287&quot; filename=&quot;sub04040407_img.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot; original=&quot;yes&quot;/&gt;&lt;span class=&quot;cap1&quot; style=&quot;display: block; max-width:100%; &quot;&gt;&lt;ⓒ 영광군청&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;재활용합시다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;어쨌든, 리비전 7 8은 지금도 쉽게 구하지만 리비전 2는 중고로도 구하기 힘든 공유기입니다. 중3? 고1때 모 Wireless lab에 반납한 뒤로 처음 보게되어 되게&amp;nbsp;설레네요.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;일단 공유기를 위 사진과 같이 전원을 공급하고, 컴퓨터와 연결했습니다.&lt;/p&gt;&lt;p&gt;먼저 공유기가 정상 작동을 하는지를 진단하기 위함인데요.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;먼저, 저는 820라인에 32g램으로 워크스테이션처럼 굴리기 때문에 랜카드가 다수 설치되어 있어 아이피 대역 충돌이 예상되는 랜카드를 먼저 Off 했습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 424px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/253BDE41583AE79324&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F253BDE41583AE79324&quot; width=&quot;424&quot; height=&quot;117&quot; filename=&quot;02.PNG&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;그 다음 54g가 연결된 이더넷 2의 정보를&amp;nbsp;확인하니 게이트웨이가 192.168.1.1이네요.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;TFTP 방식도 있지만, TFTP는 처음 접하는 분들은 꺼리는 방법이고, 실제로 위험하기도 해서 WebGUI로 먼저 테스트했습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 165px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/26177442583AE7EA11&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F26177442583AE7EA11&quot; width=&quot;165&quot; height=&quot;49&quot; filename=&quot;03.PNG&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 760px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/25297746583AE8060F&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F25297746583AE8060F&quot; width=&quot;760&quot; height=&quot;789&quot; filename=&quot;04.PNG&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;다행히 펌웨어가 잘 올라오고 lan을 하나 더 빼서 다른 공유기에 물려보니 외부 통신도 잘 진행이 됩니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이제 DD-WRT 펌웨어로 펌웨어를 교체하는데요.&lt;/p&gt;&lt;p&gt;주의사항이 있습니다.&lt;/p&gt;&lt;p&gt;하드웨어의 내장 프로그램을 교체하는 만큼 아래의 작업을 신중하게 해주셔야 합니다.&lt;/p&gt;&lt;p&gt;SW적인 오작동은 TFTP로 복구가 가능하지만, HW적인 오작동을 하는 순간 그 공유기는 더 이상 살릴 수 없습니다.(수리비가 더 나가죠)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;다음으로 30/30/30 Hard Reset을 수행합니다.&lt;/p&gt;&lt;p&gt;30/30/30 하드 리셋은 공유기의 롬을 완전히 초기화하는 기능입니다.&lt;/p&gt;&lt;p&gt;공유기 기종에 따라서 WebGUI에 아무 데이터가 없는 상태로 초기화 되는 것부터, Web마저 동작하지 않는, TFTP만 살아있는 깡통이 되기까지의 상태로 공유기가 필요 최소한의 기능만 제외하고 전부 초기화되는 것을 의미합니다.&lt;/p&gt;&lt;p&gt;WRT 이식에 있어 공장 초기화보다 로우레벨의 초기화를 수행해야 이기종 펌웨어 이식에 문제가 없습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-style: solid; border-width: 1px; border-color: rgb(243, 197, 52); background-color: rgb(254, 254, 184); padding: 10px;&quot;&gt;&lt;p&gt;30/30/30 Hard Reset 하는 방법.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;1. 공유기의 파워를 제외한 모든 선을 제거합니다.&lt;/p&gt;&lt;p&gt;2. 공유기의 리셋 버튼을 30초간 누릅니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 760px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2360EB42583AE9FF07&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2360EB42583AE9FF07&quot; width=&quot;760&quot; height=&quot;428&quot; filename=&quot;08.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;3. 30초 후 계속 Reset을 누른 상태에서 공유기의 전원을 차단합니다.&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 760px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2511C83E583AEA2A2F&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2511C83E583AEA2A2F&quot; width=&quot;760&quot; height=&quot;428&quot; filename=&quot;09.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;4. 30초 뒤 다시 전원을 연결하고 Reset은 계속 30초 동안 누릅니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;※ 30/30/30 총 90초동안 reset은 계속 누르고 있어야 합니다. 중간에 떼서는 안됩니다.&lt;/p&gt;&lt;p&gt;전원이 차단된 상태에서도 30초 동안 계속 누르는 것은, 공유기 내부에 저장된 잔류 전원으로 메모리를 플래싱하고 있는 것입니다. 꼭 계속 누르고 계셔야 합니다.&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;리셋이 끝나면 공유기와 컴퓨터를 연결한 뒤,&amp;nbsp;아이피는 192.168.1.7 / Sub 255.255.255.0 주시고 192.168.1.1 로 연결합니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 448px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/24326145583AEB5732&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F24326145583AEB5732&quot; width=&quot;448&quot; height=&quot;256&quot; filename=&quot;10.PNG&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 760px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/23738445583AEB582C&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F23738445583AEB582C&quot; width=&quot;760&quot; height=&quot;411&quot; filename=&quot;11.PNG&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Administration -&amp;gt; Firmware Upgrade -&amp;gt; 파일 선택을 눌러 DD-WRT 펌웨어를 엽니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;펌웨어는 RouterDatabases 에서 구할 수 있으며 자신의 기종과 리비전에 맞는 펌웨어중 가장 최신의 바이너리를 다운로드 합니다.&lt;/p&gt;&lt;p&gt;다운로드는 공유기마다 상이하지만 일반적으로 동일 버전 동일 패키지의 mini, std 두가지가 필요합니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-style: solid; border-width: 1px; border-color: rgb(243, 197, 52); background-color: rgb(254, 254, 184); padding: 10px;&quot;&gt;&lt;p&gt;WRT54G Rev.2 16/11/27 기준&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Generic : dd-wrt.v24_mini_generic.bin&lt;/p&gt;&lt;p style=&quot;margin-left: 4em;&quot;&gt;&amp;nbsp;dd-wrt.v24_std_generic.bin&lt;/p&gt;&lt;p style=&quot;margin-left: 4em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;VINTAGE :&amp;nbsp;dd-wrt.v24-13064_VINT_mini.bin&lt;/p&gt;&lt;p style=&quot;margin-left: 4em;&quot;&gt;&amp;nbsp; &amp;nbsp;dd-wrt.v24-13064_VINT_std.bin&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-style: solid; border-width: 1px; border-color: rgb(254, 137, 67); background-color: rgb(254, 222, 199); padding: 10px;&quot;&gt;&lt;p&gt;본인 라우터 FLASH가 2MB 인 경우, 반드시 mini가 아니라 micro를 사용해야합니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;mini는 2mb가 넘어 기기가 작동하지 않을 수 있습니다.&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;mini와 std 두가지를 전부 내려받는 이유는&lt;/p&gt;&lt;p&gt;mini는 일종의 인터페이스 역할을 합니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Java에도 interface가 있고 Delphi에도 interface가 있죠?&lt;/p&gt;&lt;p&gt;mini는 DD-WRT의 본체가 이식되기 전 먼저 파티셔닝과 사전설치를 해주는 펌웨어입니다.&lt;/p&gt;&lt;p&gt;이놈을 통해서 DD-WRT의 본체가 이식이 되게 됩니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Router Databases 에서 본인의 기종 모델명을 검색한 뒤, Revision이 일치하는 레코드를 클릭합니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 752px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/263D7C3A583AED610B&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F263D7C3A583AED610B&quot; width=&quot;752&quot; height=&quot;278&quot; filename=&quot;06.PNG&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;자신의 FLASH 용량을 체크하고, 지원하는 버전중 고르고(안전한 커펌을 원하면 pre가 있는 빌드는 사용하지 마세요) 다운로드 합니다.&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 733px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2262953A583AED6115&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2262953A583AED6115&quot; width=&quot;733&quot; height=&quot;822&quot; filename=&quot;07.PNG&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;저는 여기서 v24SP2 Build 13064 빈티지 버전을 사용했습니다.&lt;/p&gt;&lt;p&gt;이제 다운로드한 파일 중 mini를 선택해서 열고&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 739px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/27409C38583AEDE61A&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F27409C38583AEDE61A&quot; width=&quot;739&quot; height=&quot;353&quot; filename=&quot;12.PNG&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Upgrade를 누르면 아래와 같이 진행이 됩니다.&lt;/p&gt;&lt;p&gt;경과 시간은 약 3~4분정도 걸립니다.&lt;/p&gt;&lt;p&gt;폄웨어 교체하는 동안 절대 전원에 문제가 생기면 안됩니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 760px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/242F6E3B583AEE0534&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F242F6E3B583AEE0534&quot; width=&quot;760&quot; height=&quot;413&quot; filename=&quot;13.PNG&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;잠시 기다리면 완료 되었다는 메시지가 나옵니다.&lt;/p&gt;&lt;p&gt;다시 주소창의 url을 지우고 192.168.1.1 로 접속합니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-style: solid; border-width: 1px; border-color: rgb(121, 165, 228); background-color: rgb(219, 232, 251); padding: 10px;&quot;&gt;&lt;p&gt;이전 펌웨어가 다시 나오는 경우 조치.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;1. 공유기 전원 off 후 30초 후 재부팅&lt;br /&gt;&lt;/p&gt;&lt;p&gt;2. 브라우저 캐시 제거&lt;/p&gt;&lt;p&gt;3. 브라우저 또는 컴퓨터 재시작&lt;/p&gt;&lt;p&gt;4. 다시 리셋.&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 760px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2615193B583AEEBB2B&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2615193B583AEEBB2B&quot; width=&quot;760&quot; height=&quot;601&quot; filename=&quot;14.PNG&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;우측 상단에 mini가 보이고 v24sp2가 정상적으로 업로드 되었음을 볼 수 있습니다.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Memory -&amp;gt; Total Available의 손실된 2.4MB는 손실된 것이 아니라 펌웨어가 설치되어 소모된 메모리 용량이니 걱정하지 않으셔도 됩니다. (사실은 제가 처음에 그랬거든요. 손상된줄 알고 ㅋㅋ)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이제 다시 Administration -&amp;gt; Firmware Upgrade 로 들어가서&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-style: solid; border-width: 1px; border-color: rgb(243, 197, 52); background-color: rgb(254, 254, 184); padding: 10px;&quot;&gt;&lt;p&gt;펌웨어 mini 설치 후 로그인을 요구하면 아래의 계정을 입력하면 됩니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;ID : root&lt;/p&gt;&lt;p&gt;PW : admin&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 760px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/264A023B583AEF300A&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F264A023B583AEF300A&quot; width=&quot;760&quot; height=&quot;423&quot; filename=&quot;15.PNG&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;파일 선택을 누르고 이번엔 std, 스탠다드를 엽니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 743px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2327BA34583AEFBC1E&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2327BA34583AEFBC1E&quot; width=&quot;743&quot; height=&quot;341&quot; filename=&quot;16.PNG&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;그리고 Upgrade를 누르면 아래와 같이 진행이 되며 잠시 후 공유기로 재접속이 됩니다.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;업그레이드 대기 시간은 최대 300초로 보통은 1분 전후로 끝납니다.&lt;/p&gt;&lt;p&gt;(예, 사실 54g 시간 측정 안했습니다._. WNDR3700은 1분 정도면 끝나더군요)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 760px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/256E3835583AEFE60B&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F256E3835583AEFE60B&quot; width=&quot;760&quot; height=&quot;505&quot; filename=&quot;17.PNG&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 760px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2578FD3C583AF0340C&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2578FD3C583AF0340C&quot; width=&quot;760&quot; height=&quot;325&quot; filename=&quot;18.PNG&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;정상적으로 업그레이드가 되면 우측 상단에 mini가 std로 변경됨을 보실 수 있습니다.&lt;/p&gt;&lt;p&gt;이제 원하는 대로 설정해서 사용하시면 되며 비교적 최신 기종이어서 향후 업데이트가 나오는 기종이라면 별도의 설명이 없다면 Firmware Upgrade에서 std 파일만 바로 올리셔도 됩니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;WNDR3700 기준으로 13년 이후로 sp는 중단되었지만, 이후 빌드는 16/11/14 기준 30880을 마지막으로 계속 나오고 있네요.&lt;/p&gt;</description>
      <category>공유기/DD-WRT</category>
      <category>DD-WRT</category>
      <category>install</category>
      <category>Router</category>
      <category>wrt</category>
      <category>공유기</category>
      <category>라우터</category>
      <category>설치</category>
      <category>커펌</category>
      <category>해킹펌</category>
      <author>나즈나</author>
      <guid isPermaLink="true">https://nazuna.tistory.com/295</guid>
      <comments>https://nazuna.tistory.com/295#entry295comment</comments>
      <pubDate>Sun, 27 Nov 2016 23:43:28 +0900</pubDate>
    </item>
    <item>
      <title>[date] 현재 시간에서 특정 시간 더</title>
      <link>https://nazuna.tistory.com/294</link>
      <description>&lt;p&gt;php에서 현재의 시간으로부터 특정 시간의 값을 취하고 싶을 때&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-style: solid; border-width: 1px; border-color: rgb(243, 197, 52); background-color: rgb(254, 254, 184); padding: 10px;&quot;&gt;&lt;p&gt;방법 1) 참고 :&amp;nbsp;&lt;a href=&quot;http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=qna_function&amp;amp;wr_id=200804#c_200865&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=qna_function&amp;amp;wr_id=200804#c_200865&lt;/a&gt;&lt;/p&gt;&lt;p&gt;date('format', strtotime('interval'));&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;방법 2) 참고 :&amp;nbsp;&lt;a href=&quot;http://php.net/manual/kr/function.date-add.php#114856&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;http://php.net/manual/kr/function.date-add.php#114856&lt;/a&gt;&lt;/p&gt;&lt;p&gt;$date = new DateTime(now());&lt;/p&gt;&lt;p&gt;$interval = new DateInterval('P1D');&lt;br /&gt;$date-&amp;gt;add($interval);&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;방법 1에서&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;format 에는&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;table class=&quot;txc-table&quot; width=&quot;724&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; style=&quot;border:none;border-collapse:collapse;;font-family:&quot; 맑은=&quot;&quot; 고딕&quot;,=&quot;&quot; sans-serif;font-size:13px&quot;=&quot;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;width: 361px; height: 24px; border-width: 1px; border-style: solid; border-color: rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&amp;nbsp; Y/m/d&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width:362;height:24;border-bottom:1px solid #ccc;border-right:1px solid #ccc;border-top:1px solid #ccc;;&quot;&gt;&lt;p&gt;&amp;nbsp;연 / 월 / 일&amp;nbsp;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width: 361px; height: 24px; border-bottom: 1px solid rgb(204, 204, 204); border-right: 1px solid rgb(204, 204, 204); border-left: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;p&gt;&amp;nbsp; H:i:s&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width:362;height:24;border-bottom:1px solid #ccc;border-right:1px solid #ccc;;&quot;&gt;&lt;p&gt;&amp;nbsp; 시:분:초&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;

&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;interval 에는&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;table class=&quot;txc-table&quot; width=&quot;724&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; style=&quot;border:none;border-collapse:collapse;;font-family:&quot; 맑은=&quot;&quot; 고딕&quot;,=&quot;&quot; sans-serif;font-size:13px&quot;=&quot;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;width:362;height:24;border-bottom:1px solid #ccc;border-right:1px solid #ccc;border-top:1px solid #ccc;border-left:1px solid #ccc;;&quot;&gt;&lt;p&gt;&amp;nbsp;now&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width:362;height:24;border-bottom:1px solid #ccc;border-right:1px solid #ccc;border-top:1px solid #ccc;;&quot;&gt;&lt;p&gt;&amp;nbsp;현재시간&amp;nbsp;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width:362;height:24;border-bottom:1px solid #ccc;border-right:1px solid #ccc;border-left:1px solid #ccc;;&quot;&gt;&lt;p&gt;&amp;nbsp;+30&amp;nbsp;/ -30&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width:362;height:24;border-bottom:1px solid #ccc;border-right:1px solid #ccc;;&quot;&gt;&lt;p&gt;&amp;nbsp;연산할 시간&amp;nbsp;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width:362;height:24;border-bottom:1px solid #ccc;border-right:1px solid #ccc;border-left:1px solid #ccc;;&quot;&gt;&lt;p&gt;&amp;nbsp;day / hour / minutes / seconds&amp;nbsp;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width:362;height:24;border-bottom:1px solid #ccc;border-right:1px solid #ccc;;&quot;&gt;&lt;p&gt;&amp;nbsp;연산할 단위&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width:362;height:24;border-bottom:1px solid #ccc;border-right:1px solid #ccc;border-left:1px solid #ccc;;&quot;&gt;&lt;p&gt;&amp;nbsp;now +30 minutes&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width:362;height:24;border-bottom:1px solid #ccc;border-right:1px solid #ccc;;&quot;&gt;&lt;p&gt;&amp;nbsp; 복합 연산&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;방법 2에서&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;DateInterval 에는&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;P+&lt;/p&gt;&lt;table class=&quot;txc-table&quot; width=&quot;724&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; style=&quot;border:none;border-collapse:collapse;;font-family:&quot; 맑은=&quot;&quot; 고딕&quot;,=&quot;&quot; sans-serif;font-size:13px&quot;=&quot;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;width:362;height:24;border-bottom:1px solid #ccc;border-right:1px solid #ccc;border-top:1px solid #ccc;border-left:1px solid #ccc;;&quot;&gt;&lt;p&gt;&amp;nbsp;1D&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width:362;height:24;border-bottom:1px solid #ccc;border-right:1px solid #ccc;border-top:1px solid #ccc;;&quot;&gt;&lt;p&gt;&amp;nbsp;1일&amp;nbsp;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width:362;height:24;border-bottom:1px solid #ccc;border-right:1px solid #ccc;border-left:1px solid #ccc;;&quot;&gt;&lt;p&gt;&amp;nbsp;T2H&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width:362;height:24;border-bottom:1px solid #ccc;border-right:1px solid #ccc;;&quot;&gt;&lt;p&gt;&amp;nbsp;2시간&amp;nbsp;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width:362;height:24;border-bottom:1px solid #ccc;border-right:1px solid #ccc;border-left:1px solid #ccc;;&quot;&gt;&lt;p&gt;&amp;nbsp;T30M&amp;nbsp;&lt;/p&gt;&lt;/td&gt;
&lt;td style=&quot;width:362;height:24;border-bottom:1px solid #ccc;border-right:1px solid #ccc;;&quot;&gt;&lt;p&gt;&amp;nbsp;30분&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;width:362;height:24;border-bottom:1px solid #ccc;border-right:1px solid #ccc;border-left:1px solid #ccc;;&quot; rowspan=&quot;1&quot;&gt;&lt;p&gt;&amp;nbsp;T30S&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;width:362;height:24;border-bottom:1px solid #ccc;border-right:1px solid #ccc;;&quot; rowspan=&quot;1&quot;&gt;&amp;nbsp;30초&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>컴퓨터/PHP</category>
      <category>date</category>
      <category>Interval</category>
      <category>php</category>
      <category>Time</category>
      <category>더하기</category>
      <category>빼기</category>
      <category>시간</category>
      <category>인터벌</category>
      <author>나즈나</author>
      <guid isPermaLink="true">https://nazuna.tistory.com/294</guid>
      <comments>https://nazuna.tistory.com/294#entry294comment</comments>
      <pubDate>Sun, 27 Nov 2016 07:25:15 +0900</pubDate>
    </item>
    <item>
      <title>[Component] Indy 에서 예외처리 하기</title>
      <link>https://nazuna.tistory.com/293</link>
      <description>&lt;p&gt;델파이는 Try ... except ... end 로 예외처리를 지원하고 있고 Indy 또한 Error Exception을 지원합니다.&lt;/p&gt;&lt;p&gt;하지만 예전에는 Indy의 exception이 IdException에 정의되어 있었습니다.&lt;/p&gt;&lt;p&gt;하지만 지금은 IdException을 uses 하면 파일이 있다고 나오지만&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 185px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2602903C583960271A&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2602903C583960271A&quot; width=&quot;185&quot; height=&quot;76&quot; filename=&quot;캡처.PNG&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;예전 코드나 예제는 더이상 사용할 수 없습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 191px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2666BC38583960491E&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2666BC38583960491E&quot; width=&quot;191&quot; height=&quot;89&quot; filename=&quot;캡처2.PNG&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;왜냐하면 에러 정의가 IdException이 아닌 IdStack으로 옮겨졌기 때문입니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;그래서 옛날 코드나 예제를 사용하면 특정 인디 버전부터는 E2003 Undeclared identifier 에러가 발생합니다.&lt;/p&gt;&lt;p&gt;델파이는 대부분의 예제가 08년 09년을 기점으로 그 이전에 많이 기록이 남아 있습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이제는 인디 컴포넌트의 예외처리를 하려면 IdStack을 uses해야 합니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 256px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2477533A5839612724&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2477533A5839612724&quot; width=&quot;256&quot; height=&quot;176&quot; filename=&quot;캡처4.PNG&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;위와 같이 처리하면 됩니다.&lt;/p&gt;&lt;p&gt;위 코드는 서버 접속 시 10060 Time Out 에러에 대한 예외처리를 하고 있습니다.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;어느 상황의 에러가 어떤 코드인지 알고 싶다면, 아래 사이트를 참고하세요.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-style: solid; border-width: 1px; border-color: rgb(243, 197, 52); background-color: rgb(254, 254, 184); padding: 10px;&quot;&gt;&lt;p&gt;Windows &lt;a href=&quot;http://www.sockets.com/err_lst1.htm#ErrorsInNumericOrder&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;http://www.sockets.com/err_lst1.htm#ErrorsInNumericOrder&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Linux&amp;nbsp;&lt;a href=&quot;http://www.basiclinuxcommands.com/2008/07/linux-error-codes-basic-linux-command.html&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;http://www.basiclinuxcommands.com/2008/07/linux-error-codes-basic-linux-command.html&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>컴퓨터/Delphi</category>
      <category>Delphi</category>
      <category>error</category>
      <category>Exception</category>
      <category>fire</category>
      <category>FMX</category>
      <category>indy</category>
      <category>Monkey</category>
      <category>socket</category>
      <category>vcl</category>
      <author>나즈나</author>
      <guid isPermaLink="true">https://nazuna.tistory.com/293</guid>
      <comments>https://nazuna.tistory.com/293#entry293comment</comments>
      <pubDate>Sat, 26 Nov 2016 19:26:56 +0900</pubDate>
    </item>
    <item>
      <title>TAlphaColor의 색상 표현</title>
      <link>https://nazuna.tistory.com/292</link>
      <description>&lt;P&gt;TRectangle, TEdit... 등등 TBrush나 기타 TAlphaColor를 프로퍼티로 갖는 객체의 색상 값은 일반적으로 BGR코드를 사용합니다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV class=txc-textbox style=&quot;BORDER-TOP: #f3c534 1px solid; BORDER-RIGHT: #f3c534 1px solid; BORDER-BOTTOM: #f3c534 1px solid; PADDING-BOTTOM: 10px; PADDING-TOP: 10px; PADDING-LEFT: 10px; BORDER-LEFT: #f3c534 1px solid; PADDING-RIGHT: 10px; BACKGROUND-COLOR: #fefeb8&quot;&gt;BGR코드란? 
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;일종의 RGB 컬러와 같이 적색, 녹색, 청색의 조합으로 색을 표현하는 방식입니다.&lt;/P&gt;
&lt;P&gt;쉽게 풀이하자면 RGB의 색상 배치를 프로그램이나 그 색상을 처리하는 코드의 처리 순서에 맞게 변경한 것으로 델파이는 BGR, 즉 청색, 녹색, 적색 순서로 색상을 입력받습니다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;RGB계열 컬러에 대한 색상표는 이곳을 참고하세요.&lt;/P&gt;
&lt;P&gt;&lt;A href=&quot;http://zapmap.com/colors/bgr.html&quot;&gt;http://zapmap.com/colors/bgr.html&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;델파이는 RGB코드가 아닌 BGR코드를 사용하며 #RRGGBB가 아닌 $LLBBGGRR형식을 따릅니다.&lt;/P&gt;
&lt;P&gt;기존에 웹이나 포토샵을 많이 다루던 분들은 생소한 포맷이나 기존의 RGB에 HSL의 Lightness 가 추가된 형태라 생각하시면 쉽게 이해하실 수 있으실 겁니다.&lt;/P&gt;
&lt;P&gt;LL의 두 자리를 활용하여 해당 색상의 밝기를 조절함으로써 색의 밝기도 같이 표현하죠.&lt;/P&gt;
&lt;P&gt;하지만 안그래도 더 복잡해진 코드, 정해진 색상표는 없을까요?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;델파이는 이러한 고민을 위해 사전에 색상을 정의하고, 이 색상의 느낌에 맞는 이름을 부여하고, 이를 const 상수화 했습니다.&lt;/P&gt;
&lt;P&gt;이 상수화된 색상에는 밝기 부분이 정의되있지 않은 가장 밝은 색에 가까운 색상들입니다.&lt;/P&gt;
&lt;P&gt;예를들어 핏빛색에 가까운 claCrimson 을 사용한다면, 델파이의 코드는 이렇게 동작하죠.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV class=txc-textbox style=&quot;BORDER-TOP: #fe8943 1px solid; BORDER-RIGHT: #fe8943 1px solid; BORDER-BOTTOM: #fe8943 1px solid; PADDING-BOTTOM: 10px; PADDING-TOP: 10px; PADDING-LEFT: 10px; BORDER-LEFT: #fe8943 1px solid; PADDING-RIGHT: 10px; BACKGROUND-COLOR: #fedec7&quot;&gt;
&lt;P&gt;Alpha = TAlphaColor($FF000000);&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Crimson = Alpha or TAlphaColor($DC143C);&lt;/P&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;어라? 앞에서 분명 델파이의 코드는 $LLBBGGRR이라고 했는데 6자리밖에 없다구요?&lt;/P&gt;
&lt;P&gt;델파이의 색상은 별도로 밝기가&amp;nbsp;정의되지 않으면&amp;nbsp;밝기는 무조건 FF가 됩니다.&lt;/P&gt;
&lt;P&gt;Alpha라는 상수를 보세요.&lt;/P&gt;
&lt;P&gt;$FF000000 의 값으로 LL에만 FF 나머지는 00의 값을 가집니다.&lt;/P&gt;
&lt;P&gt;이것이 Crimson으로 정의된 BGR 컬러와 or 연산이 되어 $$FFDC143C로 넘어오는 것이죠.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;OR은 두 값의 비트를 비교했을 때 둘 중 하나라도 1이 있다면 해당 비트는 1이 되는 연산입니다.&lt;/P&gt;
&lt;P&gt;그래서 FF00 0000 과 00DC 143C 를 연산한&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE class=txc-table style=&quot;FONT-SIZE: 13px; BORDER-TOP: medium none; FONT-FAMILY: '맑은 고딕',sans-serif; BORDER-RIGHT: medium none; BORDER-COLLAPSE: collapse; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none&quot; cellSpacing=0 cellPadding=0 width=724 border=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD style=&quot;BORDER-TOP: #5f8eef 1px solid; HEIGHT: 24px; BORDER-RIGHT: #5f8eef 1px solid; WIDTH: 724px; BORDER-BOTTOM: #d1dffa 1px solid; COLOR: #000; BORDER-LEFT: #5f8eef 1px solid; BACKGROUND-COLOR: transparent&quot; cols=&quot;1&quot; rows=&quot;1&quot;&gt;
&lt;P&gt;&amp;nbsp;1111 1111 0000 0000 0000 0000 0000 0000&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style=&quot;HEIGHT: 24px; BORDER-RIGHT: #5f8eef 1px solid; WIDTH: 724px; BORDER-BOTTOM: #d1dffa 1px solid; COLOR: #000; BORDER-LEFT: #5f8eef 1px solid; BACKGROUND-COLOR: transparent&quot; cols=&quot;1&quot; rows=&quot;1&quot;&gt;
&lt;P&gt;&amp;nbsp;0000 0000 1101 1100 0001 0100 0011 1100&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style=&quot;HEIGHT: 24px; BORDER-RIGHT: #5f8eef 1px solid; WIDTH: 724px; BORDER-BOTTOM: #d1dffa 1px solid; COLOR: #000; BORDER-LEFT: #5f8eef 1px solid; BACKGROUND-COLOR: transparent&quot; cols=&quot;1&quot; rows=&quot;1&quot;&gt;
&lt;P&gt;-------------------------------------------------&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD style=&quot;HEIGHT: 24px; BORDER-RIGHT: #5f8eef 1px solid; WIDTH: 724px; BORDER-BOTTOM: #5f8eef 1px solid; COLOR: #000; BORDER-LEFT: #5f8eef 1px solid; BACKGROUND-COLOR: transparent&quot; cols=&quot;1&quot; rows=&quot;1&quot;&gt;1111 1111 1101 1100 0001 0100 0011 1100&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;이 되죠.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;그런데 이 편한 기능이 종종 동작하지 않을 때가 있습니다.&lt;/P&gt;
&lt;P&gt;델파이 IDE는 언어와 프레임웍은&amp;nbsp;정말 좋지만, &amp;nbsp;다소 불안정한 면이 있어 다른 IDE에서는 부드럽게, 유연하게 동작하는 기능들이 델파이 IDE에서는 정상적으로 동작하지 않는 경우가 있습니다.&lt;/P&gt;
&lt;P&gt;예를들어 델파이는 사용한 객체에 따라 자동으도 uses가 되지만, 이것이 사용하지 않을 때 자동으로 해제가 되지 않습니다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;점을 찍어 하위 프로시저 등을 참고하려 해도, 전혀 상관없는 다른 부분의 코드에 문제가 있으면 그 부분을 지적하는 것이 아니라 전체의 소스에서 이 기능이 동작하지 않습니다.(심지어 빌드시에도 알려주지 않습니다)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;이러한 불안정한면 중에서, 사용을 하지만 프로그래머가 생성하지 않은 객체에 대한 uses는 되지 않는 것같습니다.&lt;/P&gt;
&lt;P&gt;예를들어, TRectangle.Fill.Color 에서 프로그래머는 TRectangle을 선언했지 Color의 TAlphaColor을 선언한 것이 아닙니다.&lt;/P&gt;
&lt;P&gt;델파이는 그렇기에 프로그래머가 전혀 사용하지 않는다고 판단하고&amp;nbsp;상수화된 색상 사용을 위해 반드시 uses 되어야 할 'System.UIConsts' 라이브러리가 자동으로 uses가 안되는 경우가 있습니다.&lt;/P&gt;
&lt;P&gt;다른 언어의 IDE는 이런 날코딩으로 사용된 객체도 필요하면 자동으로 인클루드나 임포트가 됩니다만, 델파이 IDE는 아직 보완되어야 할 부분이겠지요. &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;결론은,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;델파이의 색상은 $LLBBGGRR로 저장됩니다.&lt;/P&gt;
&lt;P&gt;기본 색상코드를 단어가 사용된 상수를 사용할 수 있습니다.&lt;/P&gt;
&lt;P&gt;상수는 cl, 또는 cla + 색상명입니다.&lt;/P&gt;
&lt;P&gt;색상에 상수 사용 시 'E2003 Undeclared identifier' 이 발생한 경우 자신의 프레임웍에 맞는 접두사가 아니거나(cl, cla) System.UIConsts가 uses되지 않은 경우입니다.&lt;/P&gt;</description>
      <category>컴퓨터/Delphi</category>
      <category>BGR코드</category>
      <category>TAlphaColor</category>
      <category>델파이</category>
      <category>색상</category>
      <category>색상표</category>
      <category>표현</category>
      <author>나즈나</author>
      <guid isPermaLink="true">https://nazuna.tistory.com/292</guid>
      <comments>https://nazuna.tistory.com/292#entry292comment</comments>
      <pubDate>Sat, 19 Nov 2016 04:05:51 +0900</pubDate>
    </item>
    <item>
      <title>TEdit 클릭 시 내용 지워지기, 다시 나타내기</title>
      <link>https://nazuna.tistory.com/291</link>
      <description>&lt;p&gt;TEdit은 단일 라인의 입력 컴포넌트로 많이 쓰이는 컴포넌트입니다.&lt;/p&gt;&lt;p&gt;TEdit은 기본적으로 네모 박스 하나만 나오고 이것이 무슨 값을 취하려는지 나오지 않습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 146px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/23334B4F581D9BAC25&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F23334B4F581D9BAC25&quot; width=&quot;146&quot; height=&quot;63&quot; filename=&quot;TEdit기본.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;이렇게 네모 박스만 생기죠.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;그래서 이 박스가 무엇인지를 위해 앞에 TLabel을 달거나 이미지를 붙여줍니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 183px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2408184C581D9C152E&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2408184C581D9C152E&quot; width=&quot;183&quot; height=&quot;51&quot; filename=&quot;TEdit레이블추가.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;하지만 이렇게 하면 VCL이나 PC같이 큰 화면에서는 문제가 없지만 FMX에서는 가용 면적이 줄어드는 역효과가 있습니다.&lt;/p&gt;&lt;p&gt;이를 위해 델파이는 TLabel이 아닌 TEdit의 TextPrompt 프로퍼티가 정의되어 있습니다.&lt;/p&gt;&lt;p&gt;이 프로퍼티는 Prompt 즉, 해당 TEdit에 사용자가 입력한 내용과 별개로 배경처럼 해당 TEdit이 무엇을 입력받으려는지를 명시해주는 역할을 합니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 270px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2447AA47581D9D5D08&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2447AA47581D9D5D08&quot; width=&quot;270&quot; height=&quot;309&quot; filename=&quot;TEdit프롬프트OI.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이렇게 TEdit을 선택한 뒤, 해당 TEdit에서 입력받을 것이 무엇인지 명시해주면 아래와 같이 희미하게 나타납니다.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 130px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/267C7E50581D9D9513&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F267C7E50581D9D9513&quot; width=&quot;130&quot; height=&quot;51&quot; filename=&quot;TEdit프롬프트.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;문제는 이렇게만 하면 입력 시에 프롬프트가 지워지지 않아 내가 무얼 입력했는지 글자가 겹쳐 보기 힘들다는 점입니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 207px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2676284E581DA1BF1D&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2676284E581DA1BF1D&quot; width=&quot;207&quot; height=&quot;349&quot; filename=&quot;TEdit포커스이벤트.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;TEdit의 OI의 Events를 보면 OnCanFocus 라는 이벤트가 있습니다. 이 이벤트는 해당 개체에 포커스(초점)이 있으면 발생하는 이벤트로 TEdit에서 내용을 입력하기 위해 커서가 들어가는 것도 초점이 들어가는 것입니다.&lt;/p&gt;&lt;p&gt;이제 이 이벤트에 내용을 채웁니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-style: solid; border-width: 1px; border-color: rgb(243, 197, 52); background-color: rgb(254, 254, 184); padding: 10px;&quot;&gt;&lt;p&gt;(Sender as TEdit).TextPrompt := '';&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;간단합니다.&lt;/p&gt;&lt;p&gt;우리의 목적은 입력 시에 내용을 지워주면 되는 거니까요.&lt;/p&gt;&lt;p&gt;문제는 여기서 발생합니다.&lt;/p&gt;&lt;p&gt;만약 포커스가 있었다가, 아무 내용도 없이 떠나면 이게 무슨 입력이었는지 알 수가 없습니다.&lt;/p&gt;&lt;p&gt;내용이 빈값이면 다시 보여주어야겠죠.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Events에 OnExit라는 이벤트가 있습니다.&lt;/p&gt;&lt;p&gt;이 이벤트는 포커스가 떠날 때 발생하는 이벤트입니다.&lt;/p&gt;&lt;p&gt;그럼 이 이벤트의 내용을 채워봅시다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-style: solid; border-width: 1px; border-color: rgb(243, 197, 52); background-color: rgb(254, 254, 184); padding: 10px;&quot;&gt;&lt;p&gt;if (Sender as TEdit).Text = '' then&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;(Sender as TEdit).TextPrompt := '이것은 프롬프트';&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이렇게 해주시면 TEdit에 포커스가 발생했을 때, 포커스가 떠났을 때 TextPrompt의 내용을 없애기도, 다시 보여주기도 합니다.&lt;/p&gt;&lt;p&gt;이를 응용하면, 항시 프롬프트가 있어야 하면 프롬프트의 색을 더 옅게 한다던지, 프롬프트가 아닌 Text그 자체에 대한 수정도 가능합니다.&lt;/p&gt;&lt;p&gt;반대로 Text에 명시를 해줬다가 입력을 시작하면 Prompt로 바꿔줄 수도 있죠.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이에 대한 응용은 여러분의 몫입니다.&lt;/p&gt;</description>
      <category>컴퓨터/Delphi</category>
      <category>Delphi</category>
      <category>OnCanFocus</category>
      <category>OnExit</category>
      <category>TEdit</category>
      <category>Text</category>
      <category>TextPrompt</category>
      <category>델파이</category>
      <author>나즈나</author>
      <guid isPermaLink="true">https://nazuna.tistory.com/291</guid>
      <comments>https://nazuna.tistory.com/291#entry291comment</comments>
      <pubDate>Sat, 5 Nov 2016 18:17:31 +0900</pubDate>
    </item>
    <item>
      <title>[FMX][Timage] 이미지 복사</title>
      <link>https://nazuna.tistory.com/289</link>
      <description>&lt;p&gt;델파이 FMX에서 이미 생성된 TImage의 이미지를 다른 TImage(또는 TBitmap도 되는 것 같다.) 로 복사할 때&lt;/p&gt;&lt;p&gt;MultiResBitmap 프로퍼티나 CopyFromBitmap 에서 헤메지 말고&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;TImage.Bitmap.Assign(TargetImage.Bitmap);&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;으로 한방에 해결할 수 있다.&lt;/p&gt;</description>
      <category>컴퓨터/Delphi</category>
      <category>copy</category>
      <category>Delphi</category>
      <category>FMX</category>
      <category>TBitmap</category>
      <category>TImage</category>
      <category>델파이</category>
      <category>델피</category>
      <category>복사</category>
      <category>파이어몽키</category>
      <author>나즈나</author>
      <guid isPermaLink="true">https://nazuna.tistory.com/289</guid>
      <comments>https://nazuna.tistory.com/289#entry289comment</comments>
      <pubDate>Sun, 25 Sep 2016 23:33:05 +0900</pubDate>
    </item>
    <item>
      <title>Visual C++ 재배포패키지 설치 시 command line option syntax error</title>
      <link>https://nazuna.tistory.com/288</link>
      <description>&lt;p&gt;컴퓨터를 포맷하고 윈도우10으로 업그레이드하여 기존 프로그램들을 재설치할 일이 있었습니다.&lt;/p&gt;&lt;p&gt;한글, 어도비 등 각 사이트에서 전부 내려받아서(어도비 클라우드는 얼마나 느리던지..) 설치를 마치고 이제 사용만 남았는데 어느 순간부터 아래의 에러가 하루에 몇번씩 출몰하더군요.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 443px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2524294E57A198062E&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2524294E57A198062E&quot; width=&quot;443&quot; height=&quot;148&quot; filename=&quot;캡처.PNG&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;blockquote class=&quot;tx-quote-tistory&quot;&gt;&lt;p&gt;&lt;strong&gt;command line option syntax error.&lt;/strong&gt; &lt;strong&gt;type command/? for help&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;창의 타이틀을 보니 발생한 대상은 Visual C++ 2005 재배포 패키지입니다.&lt;/p&gt;&lt;p&gt;그래서 프로그램을 재설치하려고 프로그램 추가/제거(appwiz.cpl)에 들어가보니 해당 프로그램은 설치되지 않은 겁니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이에 대해 Microsoft Community에서는 아래와 같이 답변하고 있습니다. [&lt;a class=&quot;tx-link&quot; target=&quot;_blank&quot; href=&quot;http://answers.microsoft.com/ko-kr/windows/forum/windows_7-performance/visual-c-2005-redistributable/1a81c7f7-919b-4f5a-b24d-b2dbe9f6482e&quot;&gt;원문&lt;/a&gt;]&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;blockquote class=&quot;tx-quote-tistory&quot;&gt;&lt;p&gt;간혹, 한글 OS와 같은 DBCS OS환경에서는 아래와 같은 에러 메시지와 함께 해당 Package가 설치되지 않는 경우가 있습니다.&lt;br /&gt;
&lt;br /&gt;
“Command line option syntax error. Type command /? for Help” &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;C:\Users\홍길동\AppData\Local\Temp\IXP000.TMP&lt;br /&gt;
&lt;br /&gt;
위의 경로에서 보시는 것처럼, 한글 계정으로 사용할 경우, full path에 DBCS가 포함되어 문제가 발생합니다.&lt;br /&gt;
&lt;br /&gt;
이 경우에 한글 계정을 영문 계정으로 변경하여 해당 Package가 설치하는 것이 방법일 수 있습니다.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이 문장으로 유니코드 문자가 경로에 있으면 설치가 불가능할 수 있다는 것을 알 수 있는데요.&lt;/p&gt;&lt;p&gt;문제는 이 계정을 별도로 추가하는 작업은 다시 계정 삭제할 때 쓰레기 파일이 다소 남을 수 있다는 점과, 기존 계정을 영문으로 변경하는 작업이 사소한 실수로 큰 문제를 야기할 수 있다는 것입니다. [&lt;a class=&quot;tx-link&quot; target=&quot;_blank&quot; href=&quot;http://snoopybox.co.kr/1614&quot;&gt;원문&lt;/a&gt;]&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;하지만 이 상황에서 반드시 계정을 바꾸어야하는 것은 아닙니다. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;위 문장대로라면 TMP파일이 생성되는 경로만 바꿔주면 되는거죠.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;탐색기에서 다운로드 받은 파일의 위치로 이동해봅시다. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 760px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2102E54D57A198182B&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2102E54D57A198182B&quot; width=&quot;760&quot; height=&quot;573&quot; filename=&quot;캡처3.PNG&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;저는 다운로드 폴더에 파일이 있습니다.&lt;/p&gt;&lt;p&gt;이제 이 프로그램 파일을 통해서 Visual C++ 2005 재배포 패키지를 추출할 겁니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;상단 좌측의 파일 버튼을 눌러 관리자로 명령프롬프트를 실행합니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 532px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/273D3A4757A19AF619&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F273D3A4757A19AF619&quot; width=&quot;532&quot; height=&quot;295&quot; filename=&quot;cmd.PNG&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;검은 창이 실행되면 아래와 같이 입력해주시고 엔터를 눌러주세요.&lt;/p&gt;&lt;p&gt;관리자 권한이 아니어도 상관은 없습니다. 하지만 추출하려는 경로가 관리자 권한으로 묶여 있다면 추출이 되지 않기때문에 저는 관리자 권한으로 실행했습니다.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;blockquote class=&quot;tx-quote-tistory&quot;&gt;&lt;p&gt;vcredist_x86.exe /c /t:&amp;lt;추출할 경로&amp;gt;&lt;br /&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;경로는 본인이 원하는 경로를 하시면 됩니다. 단, 이 경우에도 경로에 한글이 있어선 안되며 가능하면 c:\로 하는걸 권장합니다.&lt;/p&gt;&lt;p&gt;저는 c:\에 파일을 추출해보겠습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 690px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/232F714757A19C212A&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F232F714757A19C212A&quot; width=&quot;690&quot; height=&quot;423&quot; filename=&quot;추출.PNG&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;예를 체크하면 파일이 추출되고 프로그램은 종료됩니다.&lt;/p&gt;&lt;p&gt;이제 추출한 경로로 이동하겠습니다.&lt;/p&gt;&lt;p&gt;저는 c:\에 추출했으니 c드라이브 루트로 이동하겠습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 187px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/23410D4857A19C8E3A&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F23410D4857A19C8E3A&quot; width=&quot;187&quot; height=&quot;83&quot; filename=&quot;추출2.PNG&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;저렇게 파일이 하나 추출된 것을 확인할 수 있습니다.&lt;/p&gt;&lt;p&gt;이제 이 프로그램을 실행해서 Visual C++ 2005 재배포 패키지를 설치하겠습니다.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;실행하면 압축이 해제되면서 재배포 패키지가 설치되게 됩니다.&lt;/p&gt;&lt;p&gt;(너무 빨라서 스크린샷은 찍지 못했네요..)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>Windows/Windows</category>
      <category>Ansi</category>
      <category>C++</category>
      <category>error</category>
      <category>install</category>
      <category>Package</category>
      <category>redistributable</category>
      <category>syntax</category>
      <category>unicode</category>
      <category>visual</category>
      <category>설치</category>
      <category>에러</category>
      <category>재배포</category>
      <category>패키지</category>
      <author>나즈나</author>
      <guid isPermaLink="true">https://nazuna.tistory.com/288</guid>
      <comments>https://nazuna.tistory.com/288#entry288comment</comments>
      <pubDate>Wed, 3 Aug 2016 17:18:29 +0900</pubDate>
    </item>
    <item>
      <title>PINE64 개봉기</title>
      <link>https://nazuna.tistory.com/287</link>
      <description>&lt;p&gt;오랜만에 포스팅을 쓰러 왔습니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;전역하고 바로 복학을 하게 되어 이런 저런일에 치이다가 입대전만해도 만질 일이 없던 소형 컴퓨터들이 제 주변에 깔리기 시작했습니다. 아무래도 사물인터넷의 대세에 맞춰 학교에서도 관련 프로젝트와 교육을 하게되니 이렇습니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strike&gt;사실 그중에서도 이쪽으로 아직 크게 유명치 않던 때부터 라즈베리 파이는 유명했었죠. 뒤이어 GPIO 기능 중점의 아두이노가 나왔구요.(적어도 제 생각에는 그렇습니다.)&lt;/strike&gt;&lt;/p&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-style: solid; border-width: 1px; border-color: rgb(193, 193, 193); background-color: rgb(238, 238, 238); padding: 10px;&quot;&gt;&lt;p&gt;이거슨 님의 제보입니다.&lt;/p&gt;&lt;p&gt;아두이노가 GPIO기반으로 먼저 나오고, 이 위에 ARM 칩을 이용한 프로그래밍이 가능하게끔 라즈베리가 뒤이어 나온 것이라고 합니다.&lt;/p&gt;&lt;p&gt;별도로 찾아보니 7년이나 먼저 나왔네요.&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;오늘 소개할 제품은 이 두 제품라인의 뒤따라 나온 PINE64라는 녀석입니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 760px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2236DB4B57235F6C32&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2236DB4B57235F6C32&quot; width=&quot;760&quot; height=&quot;428&quot; filename=&quot;20160429_215036.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;저의 경우 친구의 제품까지 2개를 주문했습니다. 제품의 기본구성은&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;PINE64&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;Push Button&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;입니다. 푸쉬버튼의 경우 이 기기의 전원버튼에 쓰입니다. 이 버튼의 경우 기본 제공하는 갯수는 제품당 1개이므로 전원버튼과 리셋버튼을 동시에 설치하려면 반드시 추가구입을 해야겠습니다. 버튼의 모델명은 확인하는 대로 수정해 올리겠습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;아래는 블루투스, Wi-Fi 겸용 모델입니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 760px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2567553D572366A401&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2567553D572366A401&quot; width=&quot;760&quot; height=&quot;428&quot; filename=&quot;20160429_224821.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;안테나는 분리가 가능해, 향후 필요시 다른 안테나로 교체가 가능하게 되어 있습니다.&lt;/p&gt;&lt;p&gt;칩은 리얼텍 RTL8723칩을 사용하고 있습니다. 지난 &lt;a href=&quot;http://www.etnews.com/201303270624&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;반도체 공장단지의 지진&lt;/a&gt;에 따른 리얼텍 공장 문제로 인해 이 칩의 기한 내 납품이 안되서 배송이 지연된 문제가 있었습니다.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;모듈의 설치는 메인보드의 Wifi+BT소켓에 장착해주시면 됩니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 760px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/255D1A425723695F0A&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F255D1A425723695F0A&quot; width=&quot;760&quot; height=&quot;428&quot; filename=&quot;20160429_230008.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;장착시 위와 같이 모듈의 핀번호와 기판의 핀번호를 확인하시어 방향을 맞게 장착하시면 됩니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 760px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/256CFF435723698A0D&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F256CFF435723698A0D&quot; width=&quot;760&quot; height=&quot;428&quot; filename=&quot;20160429_230042.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;안테나는 탈부착이고 장착상태에서 회전또한 가능하기 때문에,&amp;nbsp;위와같이 원하는 방향으로 안테나 선을 돌릴 수 있었습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;종전에 언급한 스위치는 아래와 같이 설치하시면 됩니다. 고정이 되지 않고, 라벨지에서 언급하듯 납땜을 하셔서 설치하셔야 합니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 229px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2221E64557236A331F&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2221E64557236A331F&quot; width=&quot;229&quot; height=&quot;165&quot; filename=&quot;20160429_230414.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이렇게 장착하신 뒤 기판 뒤에서 납땜하시면 됩니다.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 760px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/22491E3E57236BF72C&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F22491E3E57236BF72C&quot; width=&quot;760&quot; height=&quot;428&quot; filename=&quot;20160429_215249.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;위 사진은 전체적인 모습입니다. 주요 단자는 각 단자에 이름을 붙여놓았습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;각종 버스 핀들은 다음시간에 차차 다루기로 하고, 이 글에서는 위에서 표기한 부분만 짚고 넘어가겠습니다.&lt;/p&gt;&lt;p&gt;구입을 원하시는 경우 wifi.pine64.com에서 자세한 하드웨어 데이터시트를 얻을 수 있습니다.&lt;/p&gt;&lt;p&gt;언듯 보고오니 SPI , UART등 주요 기능은 대부분 지원하고 있습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;보다시피 이 보드는 파워를 두가지 방법으로 입력받을 수 있습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;MicroUSB방식의 5V DC와 BAT방식 두가지를 지원합니다.&lt;/p&gt;&lt;p&gt;동시에 사용은 안되고 MicroSD 좌측상단의 DC5V/BAT POWER 항목에서 전환이 가능합니다. 당연히 전환시에는 제품의 전원을 차단한 뒤 전환해주셔야 합니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;기본적으로 와이파이 모듈이 없더라도 이더넷 포트를 통해 인터넷 연결이 가능합니다. 이더넷 포트는 다른 모 기기와 달리 USB포트와 분리되어 있기 때문에 이로인한 병목현상은 없습니다. 속도도 라즈베리보다 빠른 기가비트 대역까지 지원하고 있습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;HDMI포트를 그래픽 포트로 지원합니다. 4k 화면을 지원하며 사용되는 칩셋은&amp;nbsp;&lt;a href=&quot;http://www.arm.com/products/multimedia/mali-gpu/ultra-low-power/mali-400.php&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;ARM Mali400MP2&lt;/a&gt; 를 사용하며 듀얼코어 GPU를 사용하고 있습니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;메모리는 삼성전자의 메모리칩을 사용하고 있습니다. 모델은 K4B4G0846E-BCMA&amp;nbsp;이고 DDR3-1866 규격의 제품입니다. 칩은 총 2GB모델 기준 총 4개로 보드의 앞뒤로 칩이 붙어있습니다. 1GB는 전면 두개, 512MB는 전면 1개로 구성되있을 듯합니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;CPU는 ALLWINNER TECH의 A64 칩을 사용합니다. 1.2GHz 쿼드코어 모델로 A53기반의 64비트 ARM칩셋입니다. 라즈베리 파이 3 모델에 들어있는 칩과 같은 A53입니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;MicroSD슬롯은 256GB까지 지원합니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;가격면에서는 기준점에 따라 라즈베리와 가격차이가 있습니다. 우선 CPU와 메모리를 기준으로 봤을 때 가겨은 $19로 라즈베리의 가장 싼 모델A보다 $1 싼 가격입니다. 블루투스, 와이파이모듈까지 고려했을 때의 가격은 라즈베리파이3(A53, 1GB RAM) $35, PINE64(A53, 1GB RAM) 29달러로 전체라인업이 라즈베리보다 싼 가격에 구입이 가능하다는 점입니다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;PINE64 최고옵션(A53, 2GB RAM, BT/WiFi)기준 배송비 포함 $41달러에 구입할 수 있는 최고의 제품입니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;다만 단점은, 개발된지 오래지 않은 제품이라 지원하는 시스템 이미지 종류가 라즈베리에 비해 적다는 것입니다.&lt;/p&gt;&lt;p&gt;라즈베리는 안드로이드, 우분투/레드햇/칼리 리눅스, 심지어 고전게임용 에뮬레이터를 돌릴 수 있고&lt;/p&gt;&lt;p&gt;아두이노의 경우 일부모델에서&amp;nbsp;OpenWRT를 지원한다.&lt;/p&gt;&lt;p&gt;심지어 근래들어 MS와의 제휴로 두 라인은 Windows 10 IoT를 공식지원하게 되었다.&lt;/p&gt;&lt;p&gt;PINE64의 경우 데비안/우분투/안드로이드 5.1.1/ 동일버전대의 RemixOS를 지원한다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;PINE64는 대중적인 리눅스와 안드로이드에 국한된 반면, 라즈베리는 레드헷/칼리와 같은 리눅스 배포판과 고전게임까지 영역이 많이 개발되어 있어 아직은 대중성에서는 라즈베리에 밀린다고 봐야겠다. 하지만 MS가 윈도우를 통한 패권다지기에 들어간 만큼, 그리고 스냅드래곤을 지원하기로 한 만큼 조만간 PINE64도 지원해줄 가능성을 엿본다.&lt;/p&gt;</description>
      <category>초소형컴퓨터/PINE64</category>
      <category>IOT</category>
      <category>PINE64</category>
      <category>라즈베리파이</category>
      <category>사물인터넷</category>
      <category>아두이노</category>
      <category>윈도우 10 IoT</category>
      <category>파인64</category>
      <author>나즈나</author>
      <guid isPermaLink="true">https://nazuna.tistory.com/287</guid>
      <comments>https://nazuna.tistory.com/287#entry287comment</comments>
      <pubDate>Fri, 29 Apr 2016 23:58:27 +0900</pubDate>
    </item>
  </channel>
</rss>