<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>술텀뱅이 블로그</title>
    <link>https://choopa.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Sat, 27 Jun 2026 14:22:49 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>우럭망둥이</managingEditor>
    <item>
      <title>freeze.py 오류 IOError: [Errno 2] No such file or directory: '/usr/lib/python2.7/config/config.c.in'</title>
      <link>https://choopa.tistory.com/entry/freezepy-%EC%98%A4%EB%A5%98-IOError-Errno-2-No-such-file-or-directory-usrlibpython27configconfigcin</link>
      <description>&lt;p&gt;와.. 요번건 쫌.. 힘들었다..&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;python을 독립적으로 실행시키기 위해서는 freeze라는 툴을 사용한다고 한다&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;그래서 찾아서 해보니 gnu C를 이용하여 파일을 아예 컴파일 해버리드라&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;table class=&quot;txc-table&quot; style=&quot;border:none;border-collapse:collapse;;font-family:&quot; 맑은=&quot;&quot; 고딕&quot;,sans-serif;font-size:13px&quot;=&quot;&quot; width=&quot;784&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;width:784;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;freezing xml.sax._exceptions ...&lt;br /&gt;freezing xml.sax.expatreader ...&lt;br /&gt;freezing xml.sax.handler ...&lt;br /&gt;freezing xml.sax.saxutils ...&lt;br /&gt;freezing xml.sax.xmlreader ...&lt;br /&gt;freezing zipfile ...&lt;br /&gt;generating table of frozen modules&lt;br /&gt;Warning: unknown modules remain: _ctypes _heapq _io _tkinter apt_pkg bz2 datetime pyexpat readline termios&lt;br /&gt;Traceback (most recent call last):&lt;br /&gt;&amp;nbsp; File &quot;/usr/share/doc/python2.7/examples/Tools/freeze/freeze.py&quot;, line 497, in &amp;lt;module&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; main()&lt;br /&gt;&amp;nbsp; File &quot;/usr/share/doc/python2.7/examples/Tools/freeze/freeze.py&quot;, line 449, in main&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; infp = open(config_c_in)&lt;br /&gt;IOError: [Errno 2] No such file or directory: '/usr/lib/python2.7/config/config.c.in'&lt;br /&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;&amp;nbsp;google 찾아봐도 안나오드라&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;그래서 혹시 내 서버에 python이 제대로 설치가 안된건 아닐까 하고 python 설치방법을 찾아 아래의 블로그를 참고로 설치 하니 잘되더라&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;sudo apt-get install python-setuptools&lt;br /&gt;
sudo apt-get install python2.7&lt;br /&gt;
sudo apt-get install python2.7-dev&lt;br /&gt;
sudo apt-get install python2.7-dbg&lt;br /&gt;
sudo apt-get install python2.7-doc&lt;br /&gt;
sudo apt-get install python2.7-examples&lt;/p&gt;&lt;p&gt;&amp;lt;출처&amp;gt; http://guruzoa.tistory.com/entry/Ubuntu%EC%97%90%EC%84%9C-python-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0&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&gt;&lt;span style=&quot;font-size: 9pt; line-height: 1.5; color: rgb(255, 255, 255); background-color: rgb(0, 0, 0);&quot;&gt;&lt;/span&gt;
&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14pt; line-height: 1.5;&quot;&gt;/usr/bin/ld: cannot find -lz&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 9pt; line-height: 1.5;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 9pt; line-height: 1.5;&quot;&gt;zlib가 설치가 안되어 발생 한 문제이다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 9pt; line-height: 1.5;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 9pt; line-height: 1.5;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 9pt; line-height: 1.5;&quot;&gt;그래서 또 참조 한다 아래의 싸이트를&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 9pt; line-height: 1.5;&quot;&gt;http://serverfault.com/questions/481859/usr-bin-ld-cannot-find-lz-but-libz-exists&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 9pt; line-height: 1.5;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 9pt; line-height: 1.5;&quot;&gt;위의 싸이트를 참조하여 apt-get install zlib 하고 탭을 쳐서 설치할 수 있는 패키지 5개 정도를 그냥 깔아버리니 동작 한다.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 9pt; line-height: 1.5;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 9pt; line-height: 1.5;&quot;&gt;그리하야 드디어 작동이된다. ㅋㅋㅋ&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 9pt; line-height: 1.5;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 9pt; line-height: 1.5;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;어려웠다...&lt;/p&gt;</description>
      <category>Language/python</category>
      <author>우럭망둥이</author>
      <guid isPermaLink="true">https://choopa.tistory.com/115</guid>
      <comments>https://choopa.tistory.com/entry/freezepy-%EC%98%A4%EB%A5%98-IOError-Errno-2-No-such-file-or-directory-usrlibpython27configconfigcin#entry115comment</comments>
      <pubDate>Thu, 10 Nov 2016 14:50:15 +0900</pubDate>
    </item>
    <item>
      <title>메일설정 SPF, reverseDNS 설정</title>
      <link>https://choopa.tistory.com/entry/%EB%A9%94%EC%9D%BC%EC%84%A4%EC%A0%95-SPF-reverseDNS-%EC%84%A4%EC%A0%95</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;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;이 포스트에서는 메일서버를 직접 설정하는 등등의 방법은 이미 설정되어 있다고 생각하고 실제 운영에 필요한 사항들을 나열한다&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;나는 메일서버 설정을 완료한 상태였고 나머지 설정들도 완료 하였으나 메일 발신이 특정 포털에 전달되지 않았다&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&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;1. SPF 등록&lt;/P&gt;
&lt;P&gt;2. Wite Domain 등록&lt;/P&gt;
&lt;P&gt;3. reverseDNS 등록&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;하나씩 풀어보겠다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;1. SPF 등록&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&lt;A href=&quot;https://www.kisarbl.or.kr/&quot;&gt;https://www.kisarbl.or.kr/&lt;/A&gt;&amp;nbsp;싸이트에 접속 한다.&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&quot;White Domain 등록&quot; 이라는 메뉴의 &quot;SPF작성 도우미&quot;라는 하위 메뉴 선택&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;선택을 하게 되면 도메인 이름을 입력하라는 내용이 나온다.&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;해당 텍스트박스에 자신의 도메인을 입력한다.&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;참고로 도메인 이름만 입력한다. (예 : example.co.kr)&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;SPF 레코드에 등록 할 IP를 입력하라고 한다.&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;여기서 중요한점, 스팸장비가 연동되어 있다면 스팸장비의 IP 입력도 필요하다&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;우선 메일서버의 공인IP를 입력 후 추가버튼을 클릭한다.&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;스팸장비가 없다면 여기서 그냥 &quot;SPF 작성&quot; 버튼을 클릭한다.&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&lt;SPAN style=&quot;COLOR: #ff0000&quot;&gt;하지만 스팸장비가 있다면 스팸장비의 공인IP를 입력 후 &quot;SPF 작성&quot; 버튼을 클릭한다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;작성을 하게되면 결과로 &lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;v=spf1 ip4:192.168.5.5 -all&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;만약 메일서버만 입력했다면 SPF 값은 위와같이 나옴&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;v=spf1 ip4:192.168.5.5 ip4:192.168.5.6 -all&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;만약 스팸장비도 등록했다면 위와같이 두개의 IP가 나옴&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;이제 이 값을 어디다 쓰냐.. 바로 DNS 서버에 입력을 해야 한다.&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;SPF를 DNS에 등록하는 이유는 다른 블로그에 많으니 그 내용을 참고하시고&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;DNS 서버의 메일서버 도메인의 TXT 레코드에 위의 값을 그대로 복사해서 입력한다.&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;여기서 또 조심해야 할 사항&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&lt;SPAN style=&quot;COLOR: #ff0000&quot;&gt;SPF값을 입력할때 SPF 맨뒤에 띄어 쓰기가 있으면 안된다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;요것때메 고생좀 함&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;예를들어 TXT레코드에 &quot;v=spf1 ip4:192.168.5.5 -all&quot; 와 같이 입력해야 정상 작동한다.&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;하지만 &quot;v=spf1 ip4:192.168.5.5 -all &quot; 와같이 all뒤에 한칸이라도 띄어쓰기가 있다면 오작동 한다.&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;위의 과정을 거치면 SPF등록은 완료 된것이고&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;확인은 cmd창을 열어 nslookup 입력&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;set type=txt 입력&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;본인이 설정 한 도메인 이름입력, example.co.kr&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;위의 명령어 결과 DNS에 입력한 TXT값이 출력된다면 정상 등록된것임&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;2. White Domain 등록&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;대부분의 메일서비스 업체들은 RBL을 참고한다고 한다.&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;예정에는 각 포털에서 이 RBL을 따로 운영했지만 이제는 kisa에서 통합운영한다고 한다.&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;다시 &lt;A href=&quot;https://www.kisarbl.or.kr/&quot;&gt;&lt;U&gt;https://www.kisarbl.or.kr/&lt;/U&gt;&lt;/A&gt;&amp;nbsp;싸이트에 접속 하자&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&quot;White Domain 등록&quot; 이라는 메뉴의 &quot;등록 신청&quot;라는 하위 메뉴 선택&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;step 1부터 4까지 나온다.&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;step 1에서 도메인 이름을 입력한다.&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;도메인을 입력하면 step2로 넘어가면서 kisa에서 txt레코드를 조회해온다. 이때&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;주의사항을 읽어보면 A, MX, PTR, ip4 이외의 키워드로 출판한경우에는 white 도메인등록을 불허한다는 내용이 나오면&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;TXT 레코드를 다시 입력해야 한다.&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;하지만 정보를 입력하라고 나온다면 SPF가 kisa에서 요구하는 조건에 충족하는 것이므로 나머지 내용들을 입력한다.&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;위와같이 step4까지 모두 진행한다면 kisa에서 2주간 해당도메인의 메일내용들을 분석하여 신뢰도를 결정하고 결정완료 된다면 white 도메인에 등록을 해준다.&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;3. reverseDNS 등록&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;여기서도 수많은 삽질을 하게됨&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;이부분을 설정 안하게 되면 내가구축한 메일서버에서 대형포털로 메일을 전송 시 포털에서 메일수신을 안하는 경우가 있다.&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;우선 DNS 서버의 역방향조회 부분에 mail서버의 공인IP 에대한 레코드를 생성하고 메일서버 이름을 입력하여 준다.&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;역방향조회 설정은 다른 블로그에 많으니 참고 바란다.&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;메일서버의 ip가 192.168.1.12 일 경우에는&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;192.168.1.12 에 mail.example.co.kr 과 같이 매칭을 시켜준다.&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;자 여기서부터 많은 삽질을 함&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;나는 분명히 DNS에 PTR(역방향조회영역)을 설정 하였는데&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;nslookup 에서 아무리 테스트해도 가져오지를 않더라&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;nslookup&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;set type=ptr&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;192.168.1.12&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;위와같이 입력하면 mail.example.co.kr일 답변이 와야하는데 오류가 난다.&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;그래서 한참을기다려 봐도 DNS는 변경이 안되었고&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;찾다찾다 ISP업체에서 역방향조회영역을 막고있다는 내용을 보았다&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;따라서 본인이 사용하고 있는 인터넷업체에 연락하여 역방향 조회 영역신청을 해야한다.&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;나는 KT를 쓰고 있었고&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&lt;A href=&quot;https://dms.kornet.net/&quot;&gt;&lt;SPAN style=&quot;COLOR: rgb(5,99,193)&quot;&gt;&lt;U&gt;https://dms.kornet.net/&lt;/U&gt;&lt;/SPAN&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;위의싸이트에 가입하여 &quot;게시판&quot;이라고 되어있는부분에 역방향조회신청을 하게되면&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;nslookup으로 조회시 정상 출력됨을 확인할 수 있다.&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;참고로 게시판에 신청하고 약 2시간정도 기다리자 KT 담당자로 부터 메일이왔다&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&quot;역방향조회 신청이 접수되고 처리되었습니다.&quot; 라고..&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;그리고 나서 바로는 안됐고 약 20분정도 기다리니 정상 조회가 되었다.&lt;/P&gt;
&lt;P style=&quot;MARGIN-LEFT: 2em&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;이렇게 삽질했다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;스팸메일이 하도 많아서 별별 방지책들이 있고&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;이에 메일서버를 설정하는 사람들도 여러가지로 복잡해지는거 같다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;다들 고생마시고 요 포스트보고 해결 하시길..&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <category>OS</category>
      <category>RBL</category>
      <category>SPF</category>
      <category>메일</category>
      <category>역방향조회</category>
      <category>화이트도메인</category>
      <author>우럭망둥이</author>
      <guid isPermaLink="true">https://choopa.tistory.com/114</guid>
      <comments>https://choopa.tistory.com/entry/%EB%A9%94%EC%9D%BC%EC%84%A4%EC%A0%95-SPF-reverseDNS-%EC%84%A4%EC%A0%95#entry114comment</comments>
      <pubDate>Tue, 14 Jun 2016 11:36:45 +0900</pubDate>
    </item>
    <item>
      <title>GDB 자주사용하는 옵션</title>
      <link>https://choopa.tistory.com/entry/GDB-%EC%9E%90%EC%A3%BC%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-%EC%98%B5%EC%85%98</link>
      <description>&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;u&gt;표시 라인 크기 변경&lt;/u&gt;&lt;br /&gt;set listsize 30&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>Language/C</category>
      <author>우럭망둥이</author>
      <guid isPermaLink="true">https://choopa.tistory.com/113</guid>
      <comments>https://choopa.tistory.com/entry/GDB-%EC%9E%90%EC%A3%BC%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-%EC%98%B5%EC%85%98#entry113comment</comments>
      <pubDate>Mon, 15 Feb 2016 08:56:03 +0900</pubDate>
    </item>
    <item>
      <title>[Unix 시스템프로그래밍] posix_openpt 함수에대한 OS 별 구현</title>
      <link>https://choopa.tistory.com/entry/Unix-%EC%8B%9C%EC%8A%A4%ED%85%9C%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-posixopenpt-%ED%95%A8%EC%88%98%EC%97%90%EB%8C%80%ED%95%9C-OS-%EB%B3%84-%EA%B5%AC%ED%98%84</link>
      <description>&lt;p&gt;posix_openpt 함수가 있다. 터미널 오픈..&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;근데 이게 구현여부가 OS 별로 다르더라&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;특히 HP 같은 경우에는 11.11에서는 정의조차 되어있지 않더라..&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;HP 11.31은 정의되어 있던데 11.23을 확인 못해봤다..&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;참고는 아래Site를 참고하여&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;마지막에 보면 OS 별 open해야하는 대상 터미널 파일이 있다 그걸 조합해서 만들면 된다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;https://github.com/gagern/gnulib/blob/master/lib/posix_openpt.c&lt;br /&gt;&lt;/p&gt;</description>
      <category>Language/C</category>
      <author>우럭망둥이</author>
      <guid isPermaLink="true">https://choopa.tistory.com/112</guid>
      <comments>https://choopa.tistory.com/entry/Unix-%EC%8B%9C%EC%8A%A4%ED%85%9C%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-posixopenpt-%ED%95%A8%EC%88%98%EC%97%90%EB%8C%80%ED%95%9C-OS-%EB%B3%84-%EA%B5%AC%ED%98%84#entry112comment</comments>
      <pubDate>Fri, 22 Jan 2016 09:37:54 +0900</pubDate>
    </item>
    <item>
      <title>[UNIX 시스템프로그래밍] Terminal 과 연결되 Pipe non block 모드 or check</title>
      <link>https://choopa.tistory.com/entry/UNIX-%EC%8B%9C%EC%8A%A4%ED%85%9C%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-Terminal-%EA%B3%BC-%EC%97%B0%EA%B2%B0%EB%90%98-Pipe-non-block-%EB%AA%A8%EB%93%9C-or-check</link>
      <description>&lt;p&gt;pipe 를 사용하다보니 이런 경우가 있드라&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;경우1) 부모와 자식프로세스 사이에 pipe를 이용한 데이터 교환&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;경우2) 부모와 자식인데 자식이 Terminal(장치드라이버) 인 경우 데이터 교환&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&quot;경우1&quot;&amp;nbsp; 은 그냥 개발자가 sync를 맞춰주면 끝이다. 근데...&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&quot;경우2&quot;의 경우 Terminal이 언제 나에게 데이터를 줄지 모른다...&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;그래서 나는 &quot;경우2&quot;에서 많은 고민을 했다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;read 함수를 nonblock 모드로 사용할까.. 하다가 찾은 방법&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;ioctl 함수... 장치관리자를 제어할때 쓰는 함수라는데 &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;저함수를 사용하면 PIPE에 몇바이트의 데이터가 남았는지 검사할 수 있다.&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. 터미널에 파이프를 이용하여 명령어를 전달(Write) 한다.&lt;/p&gt;&lt;p&gt;2. 터미널은 나에게 어떤 데이터를 줄텐데 데이터가 몇byte인지는 모른다.&lt;/p&gt;&lt;p&gt;3. 이때 ioctl 함수를 이용하여 몇바이트가 pipe에 있는지 검색한다.&lt;/p&gt;&lt;p&gt;4. pipe에 데이터가 없다면 들어올때까지 대기 한다.&lt;/p&gt;&lt;p&gt;5. pipe에 데이터가 들어왔다면 들어온 만큼 read&amp;nbsp; 한다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;pipeRead = 0;&lt;br /&gt;// break 10초&lt;br /&gt;for(i=0 ; i&amp;lt;10 ; i++){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // pipe 남은 내용 검사&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(&lt;b&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;ioctl(child_output_pipe[0], FIONREAD, &amp;amp;pipeRead)&lt;/span&gt;&lt;/b&gt; != -1){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if(pipeRead != 0){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // pipe에 내용이 있으므로 break;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else { // ioctl 함수 오류&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return 50;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sleep(1);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;if(pipeRead != 0){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // totRead 초기화&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; totRead = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // pipeRead는 pipe에서 읽어야할 데이터 양&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(totRead &amp;lt; pipeRead){&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; retval = read(child_output_pipe[0], resultBuffer, BUFFSIZE);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; totRead += (int)retval;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; if(retval &amp;lt;= 0){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // read 오류&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return 52;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 여기서 작업 수행&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;} else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // pipe에서 읽을 것이 없다면 오류&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 51;&lt;br /&gt;}&lt;br /&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;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>Language/C</category>
      <author>우럭망둥이</author>
      <guid isPermaLink="true">https://choopa.tistory.com/111</guid>
      <comments>https://choopa.tistory.com/entry/UNIX-%EC%8B%9C%EC%8A%A4%ED%85%9C%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-Terminal-%EA%B3%BC-%EC%97%B0%EA%B2%B0%EB%90%98-Pipe-non-block-%EB%AA%A8%EB%93%9C-or-check#entry111comment</comments>
      <pubDate>Fri, 22 Jan 2016 09:30:45 +0900</pubDate>
    </item>
    <item>
      <title>라즈베리파이 키보드 이상한 문자 다른 문자</title>
      <link>https://choopa.tistory.com/entry/%EB%9D%BC%EC%A6%88%EB%B2%A0%EB%A6%AC%ED%8C%8C%EC%9D%B4-%ED%82%A4%EB%B3%B4%EB%93%9C-%EC%9D%B4%EC%83%81%ED%95%9C-%EB%AC%B8%EC%9E%90-%EB%8B%A4%EB%A5%B8-%EB%AC%B8%EC%9E%90</link>
      <description>&lt;P&gt;키보드를 연결하여 콘솔에서 입력하는데.. 이상한 문자가 찍힌다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;raspi-config 를 이용하여 101키로도 해봐도 안되고.. &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;나는 Locale을 영어로 쓸려고 했는데&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;결국에는 한글도 설치를 해야하나보다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;아래의 링크대로 고대로 설정하니 잘된다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;원인이 뭘까..&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href=&quot;http://www.rasplay.org/?p=3786&quot;&gt;http://www.rasplay.org/?p=3786&lt;/A&gt;&lt;/P&gt;</description>
      <category>공부/라즈베리파이</category>
      <author>우럭망둥이</author>
      <guid isPermaLink="true">https://choopa.tistory.com/110</guid>
      <comments>https://choopa.tistory.com/entry/%EB%9D%BC%EC%A6%88%EB%B2%A0%EB%A6%AC%ED%8C%8C%EC%9D%B4-%ED%82%A4%EB%B3%B4%EB%93%9C-%EC%9D%B4%EC%83%81%ED%95%9C-%EB%AC%B8%EC%9E%90-%EB%8B%A4%EB%A5%B8-%EB%AC%B8%EC%9E%90#entry110comment</comments>
      <pubDate>Thu, 8 Oct 2015 14:05:07 +0900</pubDate>
    </item>
    <item>
      <title>라즈베리파이 Raspberrypi 2 부팅 시 무한반복 무한 재부팅</title>
      <link>https://choopa.tistory.com/entry/%EB%9D%BC%EC%A6%88%EB%B2%A0%EB%A6%AC%ED%8C%8C%EC%9D%B4-Raspberrypi-2-%EB%B6%80%ED%8C%85-%EC%8B%9C-%EB%AC%B4%ED%95%9C%EB%B0%98%EB%B3%B5-%EB%AC%B4%ED%95%9C-%EC%9E%AC%EB%B6%80%ED%8C%85</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;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;증상은&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;처음 전원연결하면 기본 init 스크립트들이 쭉 내려가다가 화면이 무지개화면 같이 GUI가 나오다가 휙 나가버린다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;그래서 여기저기 찾아보니.. 전원이 불안하덴다&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;내가 쓰는거는 옛날 삼성폰 전원으로 전원선이 약 1.5m? 1m 정도되는 얇은 긴~ 그런 전원선이였다.&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;전원이 들어가는 USB 허브에&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;짧고 usb 와 연결되는 전원선을 usb 허브에 꽃으니 잘된다&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;다음사람은 고생 말길..&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;긴장했다..&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <category>공부/라즈베리파이</category>
      <author>우럭망둥이</author>
      <guid isPermaLink="true">https://choopa.tistory.com/109</guid>
      <comments>https://choopa.tistory.com/entry/%EB%9D%BC%EC%A6%88%EB%B2%A0%EB%A6%AC%ED%8C%8C%EC%9D%B4-Raspberrypi-2-%EB%B6%80%ED%8C%85-%EC%8B%9C-%EB%AC%B4%ED%95%9C%EB%B0%98%EB%B3%B5-%EB%AC%B4%ED%95%9C-%EC%9E%AC%EB%B6%80%ED%8C%85#entry109comment</comments>
      <pubDate>Thu, 8 Oct 2015 14:03:45 +0900</pubDate>
    </item>
    <item>
      <title>binary to hex C 언어</title>
      <link>https://choopa.tistory.com/entry/binary-to-hex-C-%EC%96%B8%EC%96%B4</link>
      <description>&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;Manager DB의 내용을 각 Agent로 내리는 구조이니 요걸 활용해보자&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;DB에 binary 를 저장해서 내릴려고 했으나 문제가 있었다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;그래서 DB 에 binary의 Hexa 값을 저장한다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;hexa를 내려받은 Agent는 hexa를 binary 화 한다.&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;아래는 binary를 hexa 화 하는 코드&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;#include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;#include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;int main(int argc, char* argv[])&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int readfile, writefile;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned char readbuf;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned char writebuf[2];&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ssize_t readb;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int i=0;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(argc != 2){&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;Usage : %s &amp;lt;filename&amp;gt; \n&quot;, argv[0]);&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return -1;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; readfile= open(argv[1], O_RDONLY);&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(readfile == -1){&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;read file open error\n&quot;);&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return -1;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; writefile= open(&quot;./output.txt&quot;, O_WRONLY|O_TRUNC|O_CREAT);&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(writefile == -1){&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; perror(&quot;error : &quot;);&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;write file open error\n&quot;);&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return -1;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while((readb = read(readfile, &amp;amp;readbuf, 1)) &amp;gt; 0){&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( i!=0 &amp;amp;&amp;amp;&amp;nbsp; (i%50) == 0){&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; write(writefile, &quot;\n&quot;, 1);&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 1byte 씩 읽어서 2byte의 hexa 값으로 저장한다.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sprintf(writebuf, &quot;%02X&quot;, readbuf);&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; write(writefile, writebuf, 2);&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i++;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp; &amp;nbsp; close(readfile);&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; close(writefile);&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 0;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;요 코드는 1byte를 읽어서 2byte의 hexa로 변환한다. 왜냐&lt;/p&gt;&lt;p&gt;1byte는 hexa 값 2개로 표현되는데 내가 사용할 hexa는 character 이니까 1byte가 char 두개로 표현된다&lt;/p&gt;&lt;p&gt;따라서 binary 를 hexa로 변환하면 용량이 두배가 된다.&lt;/p&gt;&lt;p&gt;참고로 위의 소스는 100byte 마다 개행문자를 넣는다.&lt;/p&gt;&lt;p&gt;요것 때문에 hexa를 binary로 변환 시 fgets를 썼다.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;다음은 hexa를 binary로 변환한다. 여기서 애좀 먹었다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;#include &amp;lt;stdio.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;#include &amp;lt;stdlib.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;#include &amp;lt;unistd.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;#include &amp;lt;fcntl.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;#include &amp;lt;string.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;int main(int argc, char* argv[])&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FILE* readfd;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; char buf[101];&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned char val;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; char* pos;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int i, writefd;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned int j;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ssize_t slength;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(argc != 2){&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;Usage : %s &amp;lt;filename&amp;gt; \n&quot;, argv[0]);&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return -1;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; readfd= fopen(argv[1], &quot;rb&quot;);&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (readfd == NULL){&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;read file error\n&quot;);&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return -1;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; writefd= open(&quot;decode.txt&quot;, O_WRONLY | O_TRUNC | O_CREAT);&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (writefd == -1){&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&quot;writefile error\n&quot;);&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return -1;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 위의 코드에서 hexa를 100byte 마다 개행을 했으므로 fgets로 쓴다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(fgets(buf, 101, readfd) != NULL){&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pos = buf;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; slength = strlen(buf);&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(i=0 ; i&amp;lt;slength/2 ; i++){&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // sscanf 로 2byte의 char를 hexa 값으로 int에 저장한다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sscanf(pos, &quot;%02x&quot;,&amp;amp;j);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 캐스팅&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; val = (char)j;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //읽은 캐스팅 문자를 1바이트 쓴다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; write(writefd, &amp;amp;val, 1);&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pos = pos+2;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fclose(readfd);&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; close(writefd);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 0;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>Language/C</category>
      <category>hex</category>
      <author>우럭망둥이</author>
      <guid isPermaLink="true">https://choopa.tistory.com/108</guid>
      <comments>https://choopa.tistory.com/entry/binary-to-hex-C-%EC%96%B8%EC%96%B4#entry108comment</comments>
      <pubDate>Fri, 2 Oct 2015 09:40:54 +0900</pubDate>
    </item>
    <item>
      <title>yes24 발자국</title>
      <link>https://choopa.tistory.com/entry/yes24%EA%B0%80-%EC%9D%B4%EB%A0%87%EA%B2%8C-%EC%98%A4%EB%9E%98-%EB%90%90%EB%8B%A4%EB%8B%88</link>
      <description>&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;집 앞 도서관을 1달에 1번은 가서 책을 빌려오지만 잘 읽지는 않았다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;하지만 &quot;독서 천재가된 홍대리&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;그리고 이책을 마누라에게 선물하려고 yes24에서 구매를 했더니&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;http://www.yes24.com/campaign/00_corp/2015/2015TenMillion.aspx?ViewNo=2756464&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;나의 yes24 발자국.. &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>
      <author>우럭망둥이</author>
      <guid isPermaLink="true">https://choopa.tistory.com/104</guid>
      <comments>https://choopa.tistory.com/entry/yes24%EA%B0%80-%EC%9D%B4%EB%A0%87%EA%B2%8C-%EC%98%A4%EB%9E%98-%EB%90%90%EB%8B%A4%EB%8B%88#entry104comment</comments>
      <pubDate>Fri, 24 Apr 2015 09:27:16 +0900</pubDate>
    </item>
    <item>
      <title>Mac gcc 설치 후 stdio.h file not found 와 같이 라이브러리를 못찾을때</title>
      <link>https://choopa.tistory.com/entry/Mac-gcc-%EC%84%A4%EC%B9%98-%ED%9B%84-stdioh-file-not-found-%EC%99%80-%EA%B0%99%EC%9D%B4-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC%EB%A5%BC-%EB%AA%BB%EC%B0%BE%EC%9D%84%EB%95%8C</link>
      <description>&lt;p&gt;http://stackoverflow.com/questions/9352171/stdio-h-not-found-after-fresh-xcode-4-3-installed&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;거기서 자기 Mac버젼의 command line tool 설치하니 잘된다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;xcode에서 command line tool 설치하라던데 도통 안보이드라 임병할&lt;/p&gt;</description>
      <category>Language/C</category>
      <author>우럭망둥이</author>
      <guid isPermaLink="true">https://choopa.tistory.com/103</guid>
      <comments>https://choopa.tistory.com/entry/Mac-gcc-%EC%84%A4%EC%B9%98-%ED%9B%84-stdioh-file-not-found-%EC%99%80-%EA%B0%99%EC%9D%B4-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC%EB%A5%BC-%EB%AA%BB%EC%B0%BE%EC%9D%84%EB%95%8C#entry103comment</comments>
      <pubDate>Sat, 18 Apr 2015 07:39:26 +0900</pubDate>
    </item>
  </channel>
</rss>