<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>hagulu</title>
    <link>https://hagulu.tistory.com/</link>
    <description>hagulu.com</description>
    <language>ko</language>
    <pubDate>Wed, 8 Apr 2026 17:00:54 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>하구루</managingEditor>
    <image>
      <title>hagulu</title>
      <url>https://t1.daumcdn.net/cfile/tistory/21655637588595A830</url>
      <link>https://hagulu.tistory.com</link>
    </image>
    <item>
      <title>[집첵] - Mobile App</title>
      <link>https://hagulu.tistory.com/155</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;logoIcon.png&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;1024&quot; width=&quot;346&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/A8BcA/btqOSwYne1N/fu0YiE0QL3CuSINL6izet1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/A8BcA/btqOSwYne1N/fu0YiE0QL3CuSINL6izet1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/A8BcA/btqOSwYne1N/fu0YiE0QL3CuSINL6izet1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FA8BcA%2FbtqOSwYne1N%2Ffu0YiE0QL3CuSINL6izet1%2Fimg.png&quot; data-filename=&quot;logoIcon.png&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;1024&quot; width=&quot;346&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;해당 앱과 관련된 문의 사항은&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;apps@hagulu.com 를 통해서 전달 바랍니다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;감사합니다.&amp;nbsp;&lt;/p&gt;</description>
      <category>Apps/집첵</category>
      <author>하구루</author>
      <guid isPermaLink="true">https://hagulu.tistory.com/155</guid>
      <comments>https://hagulu.tistory.com/155#entry155comment</comments>
      <pubDate>Thu, 3 Dec 2020 01:29:37 +0900</pubDate>
    </item>
    <item>
      <title>[집첵] 개인정보 처리 방침</title>
      <link>https://hagulu.tistory.com/154</link>
      <description>&lt;p&gt;&lt;span&gt;집첵의 어플리케이션은 개인정보보호법에 따라 이용자들의 개인정보 보호 및 권익을 보호하고자 다음과 같은 처리방침을 두고 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;당사는 개인정보처리방침을 개정하는 경우&amp;nbsp;앱 화면 및&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;웹사이트 공지사항을 통하여 공지할 것입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;1.개인정보의 처리 목적 :&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #666666;&quot;&gt;본 어플리케이션은 개인정보를 수집하지 않는 독립 실행형 어플리케이션으로 별도의 서버를 운영하거나 정보를 수집하지 않습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;당사는 iOS 서비스 기능을 이용하기 위한 기능과&amp;nbsp;리워드용 광고서비스 등에서 특정 개인과 직접적인 관련이 없는, 개인식별이 불가능한 정보를 수집할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&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;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;2. 개인정보 파일 현황&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;당사는 별도의 개인정보 파일을 사용하지 않으며 저장하지도 않습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;당사는 쿠기를 저장하지 않으며 이용하지 않습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;3. 개인정보의 처리 및 보유기간&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;당사는 개인정보를 직접적으로 저장하거나 보유하지 않습니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;당사의 어플리케이션은 모두 해당 미디어서비스(애플,광고미디어)의 SDK를 통해 간접적으로 이용합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;따라서 당사는 이용자의 개인정보를 처리하는 내용도 보유기간도 없습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;4.개인정보의 제3자 제공에 관한 사항&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;당사는 개인정보를 제3자에게 제공하지 않고 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;5.개인정보처리 위탁.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;당사는 개인정보를 위탁하고 있지않습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;6.정보주체의 권리, 의무 및 그 행사방법&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;이용자는 개인정보주체로서 권리 행사할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;1) 개인정보 열람요구&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;2) 오류 등이 있을 경우 정정 요구&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;3) 삭제요구&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;4) 처리 정지 요구&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;당사는 개인정보를 저장하거나 위탁하지 않습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;7.개인정보의 파기&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;당사의 어플리케이은&amp;nbsp;독립 실행 방식의 어플리케이션으로 별도의 서버를 사용하지 않고있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;또한 개인정보를 저장하지 않으므로 파기할 것이 없습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;그러나 사용자가 원할 경우 어플리케이션을 '삭제'함으로서 모든 데이터를 파기할 수 있습니다.&lt;/span&gt;&lt;/p&gt;</description>
      <category>Apps/집첵</category>
      <author>하구루</author>
      <guid isPermaLink="true">https://hagulu.tistory.com/154</guid>
      <comments>https://hagulu.tistory.com/154#entry154comment</comments>
      <pubDate>Thu, 3 Dec 2020 01:27:09 +0900</pubDate>
    </item>
    <item>
      <title>[iOS] AudioQueueInputCallback buffer 오디오 데이터 자르기</title>
      <link>https://hagulu.tistory.com/151</link>
      <description>&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 10pt;&quot;&gt;AudioToolbox 에 AudioQueue 를 사용해서 레코딩을 하게 되는데,&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;AudioQueueInputCallback 를 통해서 인코딩된 음성 데이터를 얻어 올 수 있다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이를 통해서 얻어온 오디오 데이터는 하나의 패킷이 아니라 여러 패킷이 하나로 뭉쳐있는 형태이다.&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span data-mce-style=&quot;line-height: 1.4em;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 1.4em; font-size: 10pt;&quot;&gt;파일로 저장 할떄는 AudioFile.h 내의 메소드를 사용하면 큰 무리 없이 파일 저장이 가능하다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span data-mce-style=&quot;line-height: 1.4em;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 1.4em;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;하지만 데이터를 스트림 서버로 전달해야 하는 경우에는 달랐다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;일단 콜백을 통해서 전달되는 경우에는 데이터에 ADTS 데이터가 포함되어 있지 않다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;그 부분은 아래 포스팅 한 방식으로 어렵지 않게 추가가 가능하다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;font color=&quot;#cb89b3&quot; face=&quot;Helvetica, AppleGothic, Gulim, 굴림, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 13.3333px;&quot;&gt;&lt;a href=&quot;http://hagulu.com/150&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;http://hagulu.com/150&lt;/a&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;하지만, 문제는 전달되는 데이터가 여러 패킷의 연속된 데이터라, 각 패킷마다 ADTS정보를&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;넣어 주어야 하는데 각 패킷의 자를 방법을 찾아야 했다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;콜백으로 전달된 데이터 중에 분명 해당 정보가 있을것이라 생각하고 파본 결과 역시나 존재하고 있었다.&lt;/span&gt;&lt;/div&gt;&lt;pre class=&quot;brush:objc&quot; style=&quot;margin-top: 0px; margin-bottom: 1.5em; margin-left: 0.8em; padding: 0.4em; border-top: 1px dashed rgb(204, 204, 204); border-bottom: 1px dashed rgb(204, 204, 204); color: rgb(102, 102, 102);&quot;&gt;void (*AudioQueueInputCallback)(
                 void *                  inUserData,
                 AudioQueueRef           inAQ,
                 AudioQueueBufferRef     inBuffer,
                 const AudioTimeStamp *  inStartTime,
                 UInt32                  inNumberPacketDescriptions,
                 const AudioStreamPacketDescription *inPacketDescs);
&lt;/pre&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;콜백의 원형은 위와 같다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;위 파라미터에서&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span data-mce-style=&quot;line-height: 16.7999992370605px;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 16.8px; font-size: 10pt;&quot;&gt;inPacketDescs 이녀석을 주목하면 된다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span data-mce-style=&quot;line-height: 16.7999992370605px;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 16.8px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;AudioStreamPacketDescription 구조체 타입이고 원형은 아래와 같다.&lt;/span&gt;&lt;/div&gt;&lt;pre class=&quot;brush:objc&quot; style=&quot;margin-top: 0px; margin-bottom: 1.5em; margin-left: 0.8em; padding: 0.4em; border-top: 1px dashed rgb(204, 204, 204); border-bottom: 1px dashed rgb(204, 204, 204); color: rgb(102, 102, 102);&quot;&gt;
struct  AudioStreamPacketDescription
{
    SInt64  mStartOffset;
    UInt32  mVariableFramesInPacket;
    UInt32  mDataByteSize;
};
typedef struct AudioStreamPacketDescription AudioStreamPacketDescription;
&lt;/span&gt;&lt;/pre&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;보는것처럼 패킷의 offset과 size 정보가 들어 있다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이를 통해서 packet을 나누어 주면 된다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;그리고 패킷은&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span data-mce-style=&quot;line-height: 16.7999992370605px;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 16.8px; font-size: 10pt;&quot;&gt;inNumberPacketDescriptions개 이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span data-mce-style=&quot;line-height: 16.7999992370605px;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 16.8px; font-size: 10pt;&quot;&gt;inPacketDescs 은 보는것처럼 포인터로 배열 처럼 데이터가 저장되어 있다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span data-mce-style=&quot;line-height: 16.7999992370605px;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 16.8px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;즉&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span data-mce-style=&quot;line-height: 16.7999992370605px;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 16.8px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;inNumberPacketDescriptions 만큼 루프를 돌면서&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span data-mce-style=&quot;line-height: 16.7999992370605px;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 16.8px; font-size: 10pt;&quot;&gt;inPacketDescs[1] 의 형태로 접근하면,&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span data-mce-style=&quot;line-height: 16.7999992370605px;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 16.8px; font-size: 10pt;&quot;&gt;각각 패킷의 offset과 size정보를 얻어 올수 있게 된다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span data-mce-style=&quot;line-height: 16.7999992370605px;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 16.8px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span data-mce-style=&quot;line-height: 16.7999992370605px;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 16.8px; font-size: 10pt;&quot;&gt;이를 이용해서 각 패킷앞에 ADTS 데이터를 붙여주면 스트림으로 전달 가능한 완전한 오디오 데이터가 완성이 될수 있다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span data-mce-style=&quot;line-height: 16.7999992370605px;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 16.8px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>개발/미디어개발</category>
      <author>하구루</author>
      <guid isPermaLink="true">https://hagulu.tistory.com/151</guid>
      <comments>https://hagulu.tistory.com/151#entry151comment</comments>
      <pubDate>Sat, 25 Feb 2017 16:45:03 +0900</pubDate>
    </item>
    <item>
      <title>[미디어] ACC ADTS 생성하기</title>
      <link>https://hagulu.tistory.com/150</link>
      <description>&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 10pt;&quot;&gt;AAC 는 최근 가장 많이 쓰이는 음성 코덱중에 하나이다.&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;아이폰과 아이팟에서 적극적으로 사용하면서 많이 확산된 코덱이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;그와 관련 된 내용은 위키를 참조하기 바란다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;a href=&quot;http://ko.wikipedia.org/wiki/%EA%B3%A0%EA%B8%89_%EC%98%A4%EB%94%94%EC%98%A4_%EB%B6%80%ED%98%B8%ED%99%94&quot; target=&quot;_blank&quot; data-mce-href=&quot;http://ko.wikipedia.org/wiki/%EA%B3%A0%EA%B8%89_%EC%98%A4%EB%94%94%EC%98%A4_%EB%B6%80%ED%98%B8%ED%99%94&quot; style=&quot;margin: 0px; padding: 0px; border-bottom-color: rgb(204, 51, 153); color: rgb(203, 137, 179) !important;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;aac 위키&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;AAC 는 압축된 음성 데이터이고 이에 대응하는 헤더 정보가 ADTS이다.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;ADTS를 들여다 보면 현재 압축되어 있는 음성정보에 대한 정보를 알수 있고,&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;디코더는 이 정보를 통해서 압축을 해제하여 PCM 데이터를 추출하게 된다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;그런데 가끔 AAC 를 다루다보면 압축된 데이터만 있고, &amp;nbsp;ADTS를 따로 추가해 줘야 하는 경우가 생긴다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이런 상황에서 직접 ADTS를 생성하는 방법을 소개하려 한다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;일단 ADTS에 대한 정확한 정보는 아래 링크를 통해서 확인할수 있다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;a href=&quot;http://wiki.multimedia.cx/index.php?title=ADTS&quot; target=&quot;_blank&quot; data-mce-href=&quot;http://wiki.multimedia.cx/index.php?title=ADTS&quot; style=&quot;margin: 0px; padding: 0px; border-bottom-color: rgb(204, 51, 153); color: rgb(203, 137, 179) !important;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;http://wiki.multimedia.cx/index.php?title=ADTS&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;링크를 보면 알수 있지만 총 7byte로 이루어 져있다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;(CRC를 포함한 9byte 형태도 있다.)&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;영어로 되어있고 복잡해 보이지만 여기서 주목해야할 데이터는 총 4가지이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;1.&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;a title=&quot;MPEG-4 Audio&quot; href=&quot;http://wiki.multimedia.cx/index.php?title=MPEG-4_Audio#Audio_Object_Types&quot; data-mce-href=&quot;http://wiki.multimedia.cx/index.php?title=MPEG-4_Audio#Audio_Object_Types&quot; data-mce-style=&quot;text-decoration: none; color: #0b0080; font-family: sans-serif; font-size: 14px; line-height: 22.3999996185303px; background-image: none; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;&quot; style=&quot;margin: 0px; padding: 0px; border-bottom-color: rgb(204, 51, 153); color: rgb(11, 0, 128); font-family: sans-serif; font-size: 14px; line-height: 22.4px; background-image: none; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;MPEG-4 Audio Object Type&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;2. Samplerate&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;3. Channels&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;4. 데이터 크기&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;1. MPEG-4 Audio Object Type 은 흔히 말하는 Audio Profile 이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;아래 링크에 프로파일 인덱스가 있고 이 인덱스에서 1을 빼준값을 사용한다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;a href=&quot;http://wiki.multimedia.cx/index.php?title=MPEG-4_Audio#Audio_Object_Types&quot; target=&quot;_blank&quot; data-mce-href=&quot;http://wiki.multimedia.cx/index.php?title=MPEG-4_Audio#Audio_Object_Types&quot; style=&quot;margin: 0px; padding: 0px; border-bottom-color: rgb(204, 51, 153); color: rgb(203, 137, 179) !important;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;http://wiki.multimedia.cx/index.php?title=MPEG-4_Audio#Audio_Object_Types&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span size=&quot;2&quot; data-mce-style=&quot;font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; font-size: small;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;(*프로파일을 모를 때는&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;a class=&quot;mw-redirect&quot; title=&quot;AAC&quot; href=&quot;http://wiki.multimedia.cx/index.php?title=AAC&quot; data-mce-href=&quot;http://wiki.multimedia.cx/index.php?title=AAC&quot; data-mce-style=&quot;font-family: sans-serif; line-height: 21px; text-decoration: none; color: #0b0080; background-image: none; background-attachment: initial; background-color: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;&quot; style=&quot;margin: 0px; padding: 0px; border-bottom-color: rgb(204, 51, 153); color: rgb(11, 0, 128); font-family: sans-serif; line-height: 21px; background-image: none; background-attachment: initial; background-color: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;AAC&lt;/span&gt;&lt;/a&gt;&lt;span data-mce-style=&quot;color: #252525; font-family: sans-serif; line-height: 21px;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(37, 37, 37); font-family: sans-serif; line-height: 21px; font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span data-mce-style=&quot;color: #252525; font-family: sans-serif; line-height: 21px;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(37, 37, 37); font-family: sans-serif; line-height: 21px; font-size: 10pt;&quot;&gt;LC (Low Complexity) 로 해보기 바란다. 최근에 가장 많이 쓰이는 프로파일이다)&lt;/span&gt;&lt;span data-mce-style=&quot;color: #252525; font-family: sans-serif; line-height: 1.5em;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(37, 37, 37); font-family: sans-serif; line-height: 1.5em; font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span size=&quot;2&quot; data-mce-style=&quot;font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; font-size: small;&quot;&gt;&lt;span data-mce-style=&quot;color: #252525; font-family: sans-serif; line-height: 1.5em;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(37, 37, 37); font-family: sans-serif; line-height: 1.5em;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span size=&quot;2&quot; color=&quot;#252525&quot; face=&quot;sans-serif&quot; data-mce-style=&quot;color: #252525; font-family: sans-serif; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(37, 37, 37); font-family: sans-serif; font-size: small;&quot;&gt;&lt;span data-mce-style=&quot;line-height: 19.5px;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 19.5px; font-size: 10pt;&quot;&gt;2. Samplerate도 인덱스로 입력이 되는데 해당 인덱스는 아래 링크를 확인하면 된다.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span size=&quot;2&quot; color=&quot;#252525&quot; face=&quot;sans-serif&quot; data-mce-style=&quot;color: #252525; font-family: sans-serif; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(37, 37, 37); font-family: sans-serif; font-size: small;&quot;&gt;&lt;span data-mce-style=&quot;line-height: 19.5px;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 19.5px;&quot;&gt;&lt;a href=&quot;http://wiki.multimedia.cx/index.php?title=MPEG-4_Audio#Sampling_Frequencies&quot; target=&quot;_blank&quot; data-mce-href=&quot;http://wiki.multimedia.cx/index.php?title=MPEG-4_Audio#Sampling_Frequencies&quot; style=&quot;margin: 0px; padding: 0px; border-bottom-color: rgb(204, 51, 153); color: rgb(203, 137, 179) !important;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;http://wiki.multimedia.cx/index.php?title=MPEG-4_Audio#Sampling_Frequencies&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span size=&quot;2&quot; color=&quot;#252525&quot; face=&quot;sans-serif&quot; data-mce-style=&quot;color: #252525; font-family: sans-serif; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(37, 37, 37); font-family: sans-serif; font-size: small;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span size=&quot;2&quot; color=&quot;#252525&quot; face=&quot;sans-serif&quot; data-mce-style=&quot;color: #252525; font-family: sans-serif; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(37, 37, 37); font-family: sans-serif; font-size: 10pt;&quot;&gt;3. Channels 는 오디오의 채널을 그대로 입력하면 된다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;4. 데이터 크기는&lt;/span&gt;&lt;span color=&quot;#ff0000&quot; data-mce-style=&quot;color: #ff0000;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(255, 0, 0);&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;헤더 크기 까지 포함&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;한 전체 데이터 크기이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;div data-mce-style=&quot;line-height: 16.7999992370605px;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 16.8px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;요 4가지만 입력해주면 헤더 정보는 완성된다.&lt;/span&gt;&lt;/div&gt;&lt;div data-mce-style=&quot;line-height: 16.7999992370605px;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 16.8px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;다른부분은 적당한 기본값으로 채워 주면 된다.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div data-mce-style=&quot;line-height: 16.7999992370605px;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px; line-height: 16.8px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div data-mce-style=&quot;line-height: 16.7999992370605px;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px; line-height: 16.8px;&quot;&gt;&lt;span data-mce-style=&quot;line-height: 1.4em;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 1.4em; font-size: 10pt;&quot;&gt;아래와 같이 해당 변수에 적당한 값을 넣어주면 ADTS 데이터가 완성된다.&lt;/span&gt;&lt;/div&gt;&lt;div data-mce-style=&quot;line-height: 16.7999992370605px;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px; line-height: 16.8px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre class=&quot;brush:objc&quot; style=&quot;margin-top: 0px; margin-bottom: 1.5em; margin-left: 0.8em; padding: 0.4em; border-top: 1px dashed rgb(204, 204, 204); border-bottom: 1px dashed rgb(204, 204, 204); color: rgb(102, 102, 102);&quot;&gt;
        Byte packet[7];
        // fill in ADTS data
        packet[0] = (Byte)0xFF;
        packet[1] = (Byte)0xF9;
        packet[2] = (Byte)(((audioProfile-1)&amp;lt;&amp;lt;6) + (sampleIndex&amp;lt;&amp;lt;2) +(channels&amp;gt;&amp;gt;2));
        packet[3] = (Byte)(((channels&amp;amp;0x3)&amp;lt;&amp;lt;6) + (dataLength&amp;gt;&amp;gt;11));
        packet[4] = (Byte)((dataLength&amp;amp;0x7FF) &amp;gt;&amp;gt; 3);
        packet[5] = (Byte)(((dataLength&amp;amp;0x7)&amp;lt;&amp;lt;5) + 0x1F);
        packet[6] = (Byte)0xFC;
&lt;/pre&gt;&lt;div data-mce-style=&quot;line-height: 16.7999992370605px;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px; line-height: 16.8px;&quot;&gt;&lt;span data-mce-style=&quot;line-height: 1.4em;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 1.4em;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div data-mce-style=&quot;line-height: 16.7999992370605px;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px; line-height: 16.8px;&quot;&gt;&lt;span data-mce-style=&quot;line-height: 1.4em;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 1.4em;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이렇게 완성된 7byte를 AAC 데이터 앞에 붙여 주면 완성된다.&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>개발/미디어개발</category>
      <author>하구루</author>
      <guid isPermaLink="true">https://hagulu.tistory.com/150</guid>
      <comments>https://hagulu.tistory.com/150#entry150comment</comments>
      <pubDate>Sat, 25 Feb 2017 16:44:35 +0900</pubDate>
    </item>
    <item>
      <title>[Git] git-svn을 이용하여 subversion git로 옮기기</title>
      <link>https://hagulu.tistory.com/149</link>
      <description>&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 10pt;&quot;&gt;기존 subversion 사용자들 중에 git로 옮기려는 수요가 꽤 많은 것으로 알고 있다.&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;git를 svn과 비교했을때 가장 큰 장점은 로컬에서도 마음껏 버젼 관리를 할 수 있고,&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;branch 관리가 subversion에 비해서 월등히 이용이 쉽다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;그리고 Mac사용자들은 subversion GUI툴이 딱히 쏙 맘에 드는 것이 없을 것이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;git는 source Tree라는 강력한 툴을 무려! 무료로 사용 할수 있다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;하지만 옮기기에는 몇가지 걸림돌이 있다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;일단, git와 subversion은 비슷한듯 다른 면이 많이 있기 때문에,&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;새로 익히고 공부 해야 한다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;버젼관리 툴의 특성상 사용의 실수로 엄청난 재앙을 몰고 올수도 있기 때문에 익숙하게 사용하지 못하면 큰 위험이 따른다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이점은 어떤 친절한 능력자 님께서 올려 주신 슬라이드를 보면 조금 쉽게 이해할 수 있을 것이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;아래 링크를 참조 하기 바란다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;a href=&quot;http://www.slideshare.net/einsub/svn-git-17386752&quot; target=&quot;_blank&quot; data-mce-href=&quot;http://www.slideshare.net/einsub/svn-git-17386752&quot; data-mce-style=&quot;line-height: 1.4em;&quot; style=&quot;margin: 0px; padding: 0px; border-bottom-color: rgb(204, 51, 153); line-height: 1.4em; color: rgb(203, 137, 179) !important;&quot;&gt;&lt;span data-mce-style=&quot;line-height: 1.4em; font-weight: bold;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 1.4em; font-weight: bold; font-size: 10pt;&quot;&gt;svn&lt;/span&gt;&lt;span data-mce-style=&quot;line-height: 1.4em;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 1.4em;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;능력자를 위한&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span data-mce-style=&quot;line-height: 1.4em; font-weight: bold;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 1.4em; font-weight: bold; font-size: 10pt;&quot;&gt;git&lt;/span&gt;&lt;span data-mce-style=&quot;line-height: 1.4em;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 1.4em; font-size: 10pt;&quot;&gt;&amp;nbsp;개념 가이드&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;두번째로 subversion에서 &amp;nbsp;지금까지 유지해오던 history의 유지이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;버젼관리에서 기존 history는 굉장히 많은 의미를 가지기 때문에, 이를 유지 해서 옮겨야 할 것이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이 부분은 감사한 git가 모두 처리해 준다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;git-svn이라는 기능을 이용하는 것인데 git에 내장 되어 있다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;사용법은 매우~ 간단하다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;div data-mce-style=&quot;padding: 10px; background-color: #e4e4e4;&quot; style=&quot;margin: 0px; padding: 10px; background-color: rgb(228, 228, 228);&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;git svn clone {Repository address}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;터미널 에서 간단하게 해당 명령을 이용하면 svn에 있는 history와 함께 git를 tree를 구성해 준다. (git가 설치 되고 셋팅되어 있어야한다)&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;clone이 무엇인지 모른다면 git에 대해 좀더 파악후 진행해보기 바란다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;추가로, 기존 branches나 tags를 포함해서 history를 유지하게 할수 있다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;div data-mce-style=&quot;padding: 10px; background-color: #e4e4e4;&quot; style=&quot;margin: 0px; padding: 10px; background-color: rgb(228, 228, 228);&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;git svn clone -T {trunk directory name} -b {branches directory name} -t {tags directory name}&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span data-mce-style=&quot;background-color: #e4e4e4; line-height: 1.4em;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 1.4em; font-size: 10pt;&quot;&gt;{Repository address}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;위와 같이 trunk, branches, tags의 디렉토리 경로를 Repository 주소로 부터 상대 경로로 위와 같이 해주면 모든 history를 유지한 git tree를 clone할 수 있다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;실행해보면 알겠지만 정말 깔끔하게 정리되어 있는 것을 볼수 있다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;위 방법으로 clone을 하게 되면 git와&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span data-mce-style=&quot;line-height: 1.4em;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 1.4em;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;subversion 동시에 적용이 가능하도록 할 수도 있다. 하지만 테스트 결과 그렇게 깔끔하게&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span data-mce-style=&quot;line-height: 1.4em;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 1.4em;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;subversion에 commit이 되지 안아서 추천하고 싶지는 않은 기능이다.&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span data-mce-style=&quot;line-height: 1.4em;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 1.4em; font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span data-mce-style=&quot;line-height: 1.4em;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 1.4em;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>개발/기타</category>
      <author>하구루</author>
      <guid isPermaLink="true">https://hagulu.tistory.com/149</guid>
      <comments>https://hagulu.tistory.com/149#entry149comment</comments>
      <pubDate>Sat, 25 Feb 2017 16:43:50 +0900</pubDate>
    </item>
    <item>
      <title>[UNIX] cat 리다이렉션 주의 사항</title>
      <link>https://hagulu.tistory.com/148</link>
      <description>&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 10pt;&quot;&gt;간단한 파일 입출력을 위해서 cat을 이용하는 경우가 종종 있을 것이다. 간단한 명령어기 때문에 별 생각 없이 써왔던 명령어였는데, 실수를 통해서 좀 깊이 알게되어 정리 해보려 한다.&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;내가 했던 실수는 다음과 같다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;test1.txt 와 test2.txt의 내용을 &amp;nbsp;test3.txt에 저장하려고 하였다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;그런데 실수로 아래와 같이 해버렸다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;div data-mce-style=&quot;padding: 10px; background-color: #e4e4e4;&quot; style=&quot;margin: 0px; padding: 10px; background-color: rgb(228, 228, 228);&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;$cat test* &amp;gt; test3.txt&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;위 문장은 풀어서 쓰면 다음과 같다&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;div data-mce-style=&quot;padding: 10px; background-color: #e4e4e4;&quot; style=&quot;margin: 0px; padding: 10px; background-color: rgb(228, 228, 228);&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;$cat test1.txt test2.txt test3.txt &amp;gt; test3.txt&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;위처럼 자기 자신 까지 포함해서 test3.txt에 저장이 되게 한 것이다. 그래도 test3.txt가 내용이 존재 하지 않기때문에 별 문제없을 것이라고 생각했다. 그런데, 신기하게도 무한 루프가 걸리면서 test1과 test2의 내용이 반복해서 test3.txt에 저장되고 있었다. 무슨일이 일어난 것일까?&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;대충 생각하면, 자기자신에게 저장이 되다보니 그럴수도 있을것 같은데, 명확한 이유를 알고 싶었다. 직접 cat명령어의 소스도 찾아서 분석하고, Linux를 잘다루는 친구에게 물어봐가며 어럽게 답을 찾아 내었다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;cat의 input output 방식의 문제이다. cat에서는 파일을 읽을때, 일정한 byte를 메모리에 읽어와서 파일에 쓰고, 그 나머지를 다시 읽어와서 파일에 쓰는 방식이다. 요쯤 되면 조금 감이 잡히는 분도 있을 것이다. 위의 예로 적용하면 test1.txt test2.txt test3.txt의 내용을 일정 byte를 메모리로 가져와서 test3.txt에 저장을 하게 된다. 그리고 다시 cat은 가져온 일정 byte이후의 내용을 확인하고 가져오려고 할것이다. test1.txt와 text2.txt의 내용은 더 이상 가져올 것이 없으므로 이대로 끝이다. 하지만 test3.txt는 다르다. 방금 test1.txt와 test2.txt의 내용이 써졌기 때문에 처음에 가져왔던&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span data-mce-style=&quot;line-height: 1.4em;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 1.4em; font-size: 10pt;&quot;&gt;byte&lt;/span&gt;&lt;span data-mce-style=&quot;line-height: 1.4em;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 1.4em; font-size: 10pt;&quot;&gt;(파일이 새로 만들어지기 때문에 0byte) 이후의 내용이 존재한다. 그래서 이를 가져와서 다시 test3.txt에 쓰게 된다. 그러면 또 다시 test3.txt의 내용이 늘어나고 이전에 썻던 byte이후의 내용이 존재하여 이를 계속 반복하게 된다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span data-mce-style=&quot;line-height: 1.4em;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 1.4em; font-size: 10pt;&quot;&gt;&amp;nbsp;cat이 한꺼번에 모든 파일의 내용을 읽어 올 수 없기 때문에, 일정 byte씩 읽어 와서 일어나는 현상이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span data-mce-style=&quot;line-height: 1.4em;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 1.4em;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span data-mce-style=&quot;line-height: 1.4em;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 1.4em; font-size: 10pt;&quot;&gt;&amp;nbsp;그리고 참고로, 위에서도 잠깐 언급했지만 일반적인 '&amp;gt;' 의 리다이렉션은 항상 결과 파일을 새로 생성한다. 그리고 그 생성하는 타이밍은 파일을 읽어서 메모리에 올리기전 가장 먼저 수행된다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;이를 확인 할수 있는 예로&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;test1.txt에 &quot;test1.txt 파일입니다&quot; 라는 내용이 있다고 해도,&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;div data-mce-style=&quot;padding: 10px; background-color: #e4e4e4;&quot; style=&quot;margin: 0px; padding: 10px; background-color: rgb(228, 228, 228);&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;$cat test1.txt &amp;gt; test1.txt&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;위와 같이 수행하면&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span data-mce-style=&quot;line-height: 1.4em;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 1.4em; font-size: 10pt;&quot;&gt;test1.txt의 내용이 사라진다. test1.txt의 내용이 메모리에 올라가기 전에 test1.txt의 파일이 새로 생성되기 때문에 파일은 비어져 버리고 이를 test1.txt에 쓰게 되기 때문에 비어지게 된다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;위 두가지의 cat의 특성만 알더라도 사용하는데 좀더 도움이 되지 않을까 싶다.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>2013 이전/기타</category>
      <author>하구루</author>
      <guid isPermaLink="true">https://hagulu.tistory.com/148</guid>
      <comments>https://hagulu.tistory.com/148#entry148comment</comments>
      <pubDate>Sat, 25 Feb 2017 16:43:14 +0900</pubDate>
    </item>
    <item>
      <title>[일단까고보자] 네이트 모바일앱</title>
      <link>https://hagulu.tistory.com/147</link>
      <description>&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 10pt;&quot;&gt;평소 뉴스 기사를 볼때 네이트 앱을 많이 사용한다. 시사, 스포츠, 연예 세개의 카테고리로 각각의 뉴스에 순위를 매겨서 보여준다. 일단 이슈가 되는 뉴스를 쉽게 한 눈에 볼 수 있기 때문에 많이 사용하게 된다. 그리고 베스트 리플이 잘 정리 되있어서 재치있는 리플을 쉽게 불 수 있다. 가끔 기사내용은 읽지 않고 베플만 보는 경우도 많다. 그리고 여자친구의 영향으로 가끔 톡이라는 것을 심심할때 보게 되는데 이것을 볼 때도 사용하게 된다. 출 퇴근 시간에 항상 보는 사용 빈도가 높은 앱 중의 하나이다.&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;로딩도 길지 않고 사용성도 좋아서 앱 기능 자체를 깔 생각은 크게 없다. 너무 웹 뷰에 의존적이긴 하지만 사용하는데는 크게 문제될것은 없다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;문제는 이들의 광고 행태이다. 다른 포털 사이트 앱과 달리 광고가 있는것 자체도 마음에 들지 않지만, 요즘 네이트(sk컴즈)의 상황을 보면 어느 정도 이해는 해줄 수 있다. 본인도 개발자로써, 뭐 돈은 벌어야 할테니. 하지만 광고를 올리는 방법이 너무 양아치같다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 320px; width: 320px; height: 480px;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/22157F3B58B1352334&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F22157F3B58B1352334&quot; width=&quot;320&quot; height=&quot;480&quot; filename=&quot;6042825825.png&quot; filemime=&quot;image/jpeg&quot; style=&quot;width: 320px; height: 480px;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;. &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 320px; width: 320px; height: 480px;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/272DDB3758B135412A&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F272DDB3758B135412A&quot; width=&quot;320&quot; height=&quot;480&quot; filename=&quot;7924887441.png&quot; filemime=&quot;image/jpeg&quot; style=&quot;width: 320px; height: 480px;&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;span style=&quot;font-size: 10pt;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;위 캡쳐 화면에서 보는 것처럼 메뉴 버튼을 가리도록 광고가 나온다. 앱을 구동했을때, 광고가 잠시 올로왔다가 사라지는 방식이다. 광고가 가리고 있는 시간이 꽤 될 뿐더러, 앱을 구동하고 바로 자리를 잡고 있는 것이 아니라, 화면이 다 나온 뒤 잠시 후에 올라 온다. 사용자는 앱을 구통하고, 무심결에 다른 버튼을 누르려고 하다보면, 광고가 올라와서 의도치 않게 광고를 누르는 경우가 많다. 광고주, 사용자는 원치 않는 광고 관리자만 배부른 전형적인 무효 클릭이다. 게다가 이들이 올리는 광고는 sk에서 운영하는 T-ad라는 광고 회사에서 진행하는 것이다. &amp;nbsp;&lt;/span&gt;&lt;span data-mce-style=&quot;line-height: 1.4em;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 1.4em; font-size: 10pt;&quot;&gt;결국 지내들 배불리기 위해서, 광고 주와 사용자를 우롱하는 것이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;더 웃긴건 T-ad가 이를 올린 다른 클라이언트 들에게 하는 처사이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;T-ad가 갓 서비스를 시작한 베타 시절 회자의 앱을 만드는데 적용을 해본 적이 있다. 우리는 광고를 앱 가장 상당에 올려 놓았다. 그리고 가끔 버튼이 광고 바로 밑에 보여지는 경우가 있다. 흔히 있는 일이기 때문에 별 신경을 쓰지 않았다 그런데, 광고 클릭이 좀 늘어나자, T-ad측에서 클릭을 유도하는 UI이므로 UI를 변경해 달라고 요청이 왔다. 버튼이 광고 주변에 있다는 이유였다. 광고가 버튼을 가렸다 사라지는 것이 아니라 그저 광고 밑에 버튼이 있다는 이유에서이다. 이렇게 다른 클라이언트 들에게는 까탈스럽게 굴더니, 자기네 앱에는 유도가 아니라 거의 낚시질을 하도록 광고를 올려 놓았다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;현재 국내 포털은 네이버가 잠식하다 싶이하고, 다음이 그 다음으로 어느정도 포지션을 잡고있다. 네이트는 사활의 기로에 놓여 있는 것으로 알고 있다. 또한 최근 paran과 야후 코리아가 운영에 한계를 느끼고 웹 포털 서비스를 모두 접어 버렸다. 네이트도 이를 남일 같이 않게 지켜 봤을 것이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;이러한 시점에서 이렇게 광고 수익 좀 벌자고 사용자와 광고주를 기만하는 기획은 누구 머리에서 나온 것일까?&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;포털은 사용자의 이용도에 따라서 가치가 평가 된다. 이런식으로 사용자를 기만 한다면, 이러한 포털에 이용도가 높아질 수 있을까? 작은 것 부터 하나하나 고쳐 나가서 다시 예전의 명성을 얻었으면 하는 바램에서 몇자 끄적여 보았다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이건 정말 아닌것 같다.&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>2013 이전/일단까고보자</category>
      <author>하구루</author>
      <guid isPermaLink="true">https://hagulu.tistory.com/147</guid>
      <comments>https://hagulu.tistory.com/147#entry147comment</comments>
      <pubDate>Sat, 25 Feb 2017 16:42:43 +0900</pubDate>
    </item>
    <item>
      <title>옛날 웹페이지를 찾아 보자!</title>
      <link>https://hagulu.tistory.com/146</link>
      <description>&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;인터넷을 예전 모뎀시절 부터 사용해 왔다면, 예전 hanmail, empas 등의 예전 웹페이지들이 그리울때가 있을 것이다. 또는 자료 수집이나 참고용으로 예전 90년대 후반 2000년대 초반의 웹페이지가 필요할 때가 있을 수 있다.&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&amp;nbsp;혹은. 백업 해놓지 않았었던, 웹 페이지 관련 리소스를 날려 버렸을때, 기존 웹 페이지가 어딘가 보관되어 있다면, 필요한 리소스들을 얻어 낼 수 있을것이다.(본인 체험)&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&amp;nbsp;놀랍게도 이를 저장해 놓고 기록하는 곳이 있다. 도메인을 연결만 해놓은 것이 아니라, 리소스를 저장하고 이를 기록해 놓고 있다. 무려 1996년 이후부터 기록이 되어 보관중이다. 웹 페이지 설명에서는 무려 240 billion(2400억)의 페이지가 보관되어 있다고 한다.&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;바로&amp;nbsp;&lt;a href=&quot;http://archive.org/&quot; target=&quot;_blank&quot; data-mce-href=&quot;http://archive.org/&quot; style=&quot;margin: 0px; padding: 0px; border-bottom-color: rgb(204, 51, 153); color: rgb(203, 137, 179) !important;&quot;&gt;http://archive.org/&lt;/a&gt;&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;이곳이다.&amp;nbsp;&lt;span data-mce-style=&quot;line-height: 1.4em;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 1.4em;&quot;&gt;유명한 몇몇 사이트 뿐만 보관하는 것이 아니다. 본인이 2000년도 초반 학창시절에 재미로 만들었던, 추억의 hihome 홈페이지도 보관이 되어 있다. 예전에 만들었다가 보관해놓지 못했던 페이지가 있다면, 한번 재미삼아 찾아보는것도 좋을 것 같다. 찾는다면, 그때의 추억이 새록새록 떠오를 것이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;사용법은 간단하다.&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&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: 641px; width: 641px; height: 190px;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2413FC4658B133B105&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2413FC4658B133B105&quot; width=&quot;641&quot; height=&quot;190&quot; filename=&quot;2562997875.png&quot; filemime=&quot;image/jpeg&quot; style=&quot;width: 641px; height: 190px;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;페이지에 접속하여 위 사진에 표시된 부분에 주소를 입력하면 다음 화면 처럼 수집된 기록과 함께 &amp;nbsp;표시되고 수집된 날짜를 선택하면 그때의 페이지를 볼수가 있다.&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&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: 640px; width: 640px; height: 612px;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/23328A4658B133CC0E&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F23328A4658B133CC0E&quot; width=&quot;640&quot; height=&quot;612&quot; filename=&quot;5586460114.png&quot; filemime=&quot;image/jpeg&quot; style=&quot;width: 640px; height: 612px;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&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: 561px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2518864058B133F208&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2518864058B133F208&quot; width=&quot;561&quot; height=&quot;772&quot; filename=&quot;2895497798.png&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;국내 인터넷 초창기에 가장 많이 사용되었던 야후 코리아 페이지 이다.&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&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: 820px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/241DE83D58B1348729&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F241DE83D58B1348729&quot; width=&quot;820&quot; height=&quot;293&quot; filename=&quot;3010897821.png&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;무려 구글의 베타 시절 모습도 볼수 있다.&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&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: 640px; width: 640px; height: 482px;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/253FC73358B134A219&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F253FC73358B134A219&quot; width=&quot;640&quot; height=&quot;482&quot; filename=&quot;3629253617.png&quot; filemime=&quot;image/jpeg&quot; style=&quot;width: 640px; height: 482px;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;다음의 모태가 되었던 한메일의 모습이다.&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&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: 685px; width: 685px; height: 751px;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2552A93A58B134C527&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2552A93A58B134C527&quot; width=&quot;685&quot; height=&quot;751&quot; filename=&quot;6744817109.png&quot; filemime=&quot;image/jpeg&quot; style=&quot;width: 685px; height: 751px;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;네이버의 초창기 모습도 볼수있다.&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;일부 소실되거나 제대로 나오지 않는 리소스들도 있지만, 그때 페이지를 기억하는데는 크게 문제가 없는 수준이다. &amp;nbsp;&lt;span data-mce-style=&quot;line-height: 1.4em;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 1.4em;&quot;&gt;지금 보기에는 촌스럽고 텍스트 위주였지만, 그때 당시에는 너무나도 신기하고 놀라운 세상이었다.&amp;nbsp;&lt;/span&gt;&lt;span data-mce-style=&quot;line-height: 1.4em;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 1.4em;&quot;&gt;여러분들이 기억하는 페이지를 통해서 시간여행을 해보는 것도 재미있을것 같다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>2013 이전/기타</category>
      <author>하구루</author>
      <guid isPermaLink="true">https://hagulu.tistory.com/146</guid>
      <comments>https://hagulu.tistory.com/146#entry146comment</comments>
      <pubDate>Sat, 25 Feb 2017 16:40:13 +0900</pubDate>
    </item>
    <item>
      <title>[node.js] Socket.io 맛보기 (웹 채팅 만들기)</title>
      <link>https://hagulu.tistory.com/145</link>
      <description>&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 10pt;&quot;&gt;node.js 가 나타나면서 가장 주목 받았던 모듈중에 하나였던 Socket.io를 소개 해보려고 한다.&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;웹을 통한 애플리케이션을 개발할때 가장 힘든점이, 바로 실시간 데이터 적용이다. 서버에서 넘어온 정보를 실시간 으로 화면에 보여 주어야 하는데 refresh를 이용하면 화면이 깜박이는 문제가 있다. 이를 위한 대안으로 Ajax를 많이 사용하게 된다. 하지만 이것은 Client위주의 개발에 적합하다. 서버에 변화 된 내용을 항상 유지하려면 poliing을 직접 구현해야 하는데 여간 번거로운 일이 아닐수 없다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;이를 보완하기 위해 등장한것이 바로 WebSocket이다. 일반 애플리케이션에서 사용하면 Socket을 브라우져에서 사용가능하게 한 것으로, 어렵지 않게 웹상에서 Socket과 같은 방식의 애플리케이션 구현이 가능하다. 하지만 아직 표준이 정해지지 않았고, 이를 호환하는 브라우져가 제한적이다. 그리고 보안에 대한 논란도 아직 진행중이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&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: 780px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2426144258B1334C27&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2426144258B1334C27&quot; width=&quot;780&quot; height=&quot;468&quot; filename=&quot;6587315084.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;strong data-mce-style=&quot;color: #333333; font-family: 나눔고딕, NanumGothic, ng, Tahoma, sans-serif; font-size: 14px; line-height: 21px; text-align: justify; -webkit-text-size-adjust: none;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(51, 51, 51); font-family: 나눔고딕, NanumGothic, ng, Tahoma, sans-serif; font-size: 14px; line-height: 21px; text-align: justify; text-size-adjust: none;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;WebSocket 지원 여부(이미지 출처:&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;a class=&quot;con_link&quot; href=&quot;http://caniuse.com/&quot; target=&quot;_blank&quot; data-mce-href=&quot;http://caniuse.com/&quot; data-mce-style=&quot;text-decoration: initial; word-wrap: break-word;&quot; style=&quot;margin: 0px; padding: 0px; border-bottom-color: rgb(204, 51, 153); text-decoration: initial; word-wrap: break-word; color: rgb(203, 137, 179) !important;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;http://caniuse.com&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;)&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;strong data-mce-style=&quot;color: #333333; font-family: 나눔고딕, NanumGothic, ng, Tahoma, sans-serif; font-size: 14px; line-height: 21px; text-align: justify; -webkit-text-size-adjust: none;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(51, 51, 51); font-family: 나눔고딕, NanumGothic, ng, Tahoma, sans-serif; font-size: 14px; line-height: 21px; text-align: justify; text-size-adjust: none;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;표에 보는 것처럼 전체의 55%정도만 완벽하게 지원이되고 부분적인 지원이 5%정도이다. 그리고 국내에서 가장 많이 사용하는 IE에서는 10.0에서나 지원이 가능하다.&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;strong data-mce-style=&quot;color: #333333; font-family: 나눔고딕, NanumGothic, ng, Tahoma, sans-serif; font-size: 14px; line-height: 21px; text-align: justify; -webkit-text-size-adjust: none;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(51, 51, 51); font-family: 나눔고딕, NanumGothic, ng, Tahoma, sans-serif; font-size: 14px; line-height: 21px; text-align: justify; text-size-adjust: none;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;이에 대한 대안이 바로 Socket.io이다. 서버는 node.js의 모듈로 간단히 이용이 가능하고 client도 모듈에 포함된 javascript 파일 하나만 있으면 지원이 된다. 일반 javascript를 사용하기 때문에 호환 문제도 걱정이 없다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;더 길게 끌지 않고 예제를 통해서 살펴 보도록 하겠다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;소켓 통신을 이용할때 가장 만만한 예제가 채팅이므로 이를 만드는 예제를 보도록 하겠다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;node.js와 socket.io 모듈의 설치에 관해서는 아래 두 포스팅을 참고하기 바란다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;a href=&quot;http://hagulu.com/153&quot; target=&quot;_blank&quot; data-mce-href=&quot;http://hagulu.com/153&quot; style=&quot;margin: 0px; padding: 0px; border-bottom-color: rgb(204, 51, 153); color: rgb(203, 137, 179) !important;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;[node.js] mac에서 node.js 설치 하기&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;a href=&quot;http://hagulu.com/154&quot; target=&quot;_blank&quot; data-mce-href=&quot;http://hagulu.com/154&quot; style=&quot;margin: 0px; padding: 0px; border-bottom-color: rgb(204, 51, 153); color: rgb(203, 137, 179) !important;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;[node.js] npm을 이용한 module 설치&lt;/span&gt;&lt;/a&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span data-mce-style=&quot;color: #666666; font-family: 'Lucida Grande', Arial, AppleGothic, 굴림, Gulim, Tahoma, Verdana, sans-serif; line-height: normal;&quot; style=&quot;margin: 0px; padding: 0px; font-family: &amp;quot;Lucida Grande&amp;quot;, Arial, AppleGothic, 굴림, Gulim, Tahoma, Verdana, sans-serif; line-height: normal;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;Socket.io는 기본적인 웹서버 모듈과 연동하게 된다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;여기에서는 단순하게 http 모듈을 이용해서 소개해 보겠다.&lt;/span&gt;&lt;/div&gt;&lt;pre class=&quot;brush:js&quot; style=&quot;margin-top: 0px; margin-bottom: 1.5em; margin-left: 0.8em; padding: 0.4em; border-top: 1px dashed rgb(204, 204, 204); border-bottom: 1px dashed rgb(204, 204, 204);&quot;&gt;var app = require('http').createServer(handler)
	, io = require('socket.io').listen(app)
	, fs = require('fs')
  
    app.listen(8005);
  
function handler (req, res) {
    fs.readFile(__dirname + '/index.html',
    function (err, data) {
        if (err) {
        	res.writeHead(500);
        	return res.end('Error loading index.html');
       	}
  
       	res.writeHead(200);
       	res.end(data);
    });
}
  
io.sockets.on('connection', function (socket) {
      socket.on('my other event', function (data) {
         	console.log(data);
        	socket.emit(&quot;my_message&quot;, data);
        	socket.broadcast.emit(&quot;message&quot;, data);
       });
 });&lt;/span&gt;&lt;/pre&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;handler 부분은 http를 위한 부분이니 다음에 다루어 보도록 하겠다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;중요한 부분은 아래 소켓 관련된 부분이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;일반 프로그래밍에서 소켓을 통한 개발을 해보았다면 어렵지 않게 이해가 가능 할것으로 보인다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;2번째 라인에 require 부분에서 app 즉, http서버를 통해서 socket을 listen을 하게 된다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;그리고 20번째 라인에서 Client가 연결이 되었을떄의 작업을 function을 통해 정의 해주게 된다. 보는 것처럼 연결이 되었을때 생성된 해당 socket은 파라미터로 가져다 쓸 수가 있다. 이 소켓을 통해 연결된 Client와 통신하게 된다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;여기에서 다시 해당 소켓에 새로운 이벤트를 추가해주게 된다. 해당 소켓에 on 함수를 통해 새로운 이벤트를 추가를 해주면 된다. 위 소스에서는 &quot;my other event&quot; 라는 이벤트를 추가하고 해당 이벤트가 발생했을때, 이루어질 작업을 function을 통해서 등록 해주게 된다. 이벤트와 함께 들어온 data는 파라미터를 통해 이용할 수 있다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;23번째 라인은 들어 온 데이터를 다시 Client로 &amp;nbsp;&quot;my_message&quot; 라는 이벤트로 전송하는 것이다. 이쯤 되면 감이 올것이다. 이벤트를 생성하여 발생시키는 것은 emit라는 메소드를 이용하면 된다. 잠시후 client에서도 보겠지만 같은 함수를 사용한다. 일반적으로 socket에 내장되어 있는 함수로 해당 소켓으로만 이벤트를 발생 시키는 것이다. 하지만 여기서 해보려는것은 채팅이다. 채팅의 경우 자기 자신만이 아니라 모두에게 전송이 이루어 져야 한다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;이를 구현한것이 바로 24번째 라인이다. socket에 broadcast의 emit를 통해서 이벤트를 발생시키면, 해당 소켓이 연결된 Client를 제외한 다른 소켓으로 다른 모든 Client들에게 이벤트를 발생시키게 된다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;이러면 자연스럽게 채팅과 같은 기능을 하는 서버가 완성이 된 것이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;정말 간단하기 그지 없다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;이어서 바로 Client부분을 보겠다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;먼저 아래 파일은 위 소스에서 구현한 javascript 파일과 같은 디렉토리에 index.html에 작성하면된다. 그 이유는 위 소스의 handler의 설정에 따른것 이다. 필요하다면 이를 수정해서 다른 디렉토리나 파일로 이용하는 것도 가능하다.&lt;/span&gt;&lt;/div&gt;&lt;pre class=&quot;brush:js&quot; style=&quot;margin-top: 0px; margin-bottom: 1.5em; margin-left: 0.8em; padding: 0.4em; border-top: 1px dashed rgb(204, 204, 204); border-bottom: 1px dashed rgb(204, 204, 204);&quot;&gt;&lt;input id=&quot;input&quot; type=&quot;message&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt; &lt;/span&gt;&lt;button type=&quot;button&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;Send&lt;/span&gt;&lt;/button&gt;&lt;/pre&gt;&lt;div id=&quot;message_list&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;Client에서는 조심해야할 부분이 많다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;먼저 조심해야할 부분이 1라인의 src부분이다. 내 디렉토리에는 눈씻고 찾아 봐도 /socket.io/socket.io.js 파일이 없는데, 왜 그래도 해야 할까 싶지만, 이것은 서버에 있는 socket.io 모듈이 알아서 연결해 주는 부분이다. 그러므로 의심 하지 말고 이용하기 바란다. 혹시 다른 곳에서 구하거나, 다른 곳의 링크를 이용할 경우 socket.io와 socket.io.js의 버젼이 맞지 않아서 문제가 발생할 수도 있으니 꼭 위와 같은 방식으로 이용하기 바란다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;5번째 라인에서 소켓을 연결하게 된다. 간단하게 소켓을 생성하고 바로 연결이 된다. 예전 버젼에서는 번거롭게 진행해야 하니 최신버젼을 꼭사용하기 바란다. 본인은 원격지 서버로 이용하고, 포트 설정떄문에 포트를 다르게 했지만, local에서 테스트 할경우 &quot;http://localhost&quot; 형식으로 해주기만 하면된다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;이제 서버에서 올라오게될 이벤트를 등록해주는 부분이 6~13라인이다. 보는 것처럼 서버와 문법이 똑같다. node.js의 장점이 바로 이런것이다. 서버에서 작성한 문법 그대로 웹 클라이언트에서 구현해주면 된다. 위에서는 24라인에 있는 div에 새로온 메시지와 현제 메시지를 합쳐 주는 일을 한다. &quot;message&quot;는 다른 곳에서 온 메시지를 처리하는 것이고, &quot;my_message&quot;는 내 메시지가 서버를 거쳐서 다시 오게되는 메시지를 처리하는 것이다. &quot;my_message&quot;는 굳이 서버를 거칠 필요는 없지만, 소켓의 동작을 보여주기 위해서 적용해 보았다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;15~18라인은 메시지를 서버로 보내는 부분이다. 이 function은 아래 22 ~ 23라인에서 return키 혹은 버튼 클릭을 통해서 불려지게 된다. 이벤트 발생은 서버와 마찬가지로 &amp;nbsp;emit 메소드를 통해서 사용하면 된다. 서버에 등록 해 두었던 &quot;my other event&quot; 로 이벤트를 발생시키도록 하였다. 메시지 내용은 아래 22번째 라인에 있는 input의 벨류로 하면된다. 17라인은 보낸 다음에 input을 비워주는 부분이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;여기까지 진행이되면 기본적인 채팅 프로그램이 간단하게 완성이 된다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;로컬로 진행되었을경우 브라우져로 http://localhost로 접속을 하게 되고, 저 처럼 원격지로 진행된경우는 원격지 도메인을 입력하여 실행하여 보면된다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;간단하게 실행한 예이다&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&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: 820px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2438754458B1335D20&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2438754458B1335D20&quot; width=&quot;820&quot; height=&quot;239&quot; filename=&quot;4550852403.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>2013 이전/node.js</category>
      <author>하구루</author>
      <guid isPermaLink="true">https://hagulu.tistory.com/145</guid>
      <comments>https://hagulu.tistory.com/145#entry145comment</comments>
      <pubDate>Sat, 25 Feb 2017 16:34:00 +0900</pubDate>
    </item>
    <item>
      <title>[iOS 개발] UIButton title, image 위치 정리</title>
      <link>https://hagulu.tistory.com/144</link>
      <description>&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 10pt;&quot;&gt;UIButton을 사용하다 보면 title, image등을 버튼위에 올려서 사용하게 된다.&amp;nbsp;&lt;/span&gt;&lt;br style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;그런데 이들이 깔끔하게 배치되지 않을때가 많다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;UIButton의 titleLabel의 frame을 직접 적용해도 변화가 없을 것이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;그래서 대부분 포기하고 버튼 위에 따로 View를 올리는 경우가 있는데,&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이럴 경우 버튼 state 마다 위에 올린 뷰를 수동으로 바꿔 주어야 한다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;특히, UIControlStateHighlighted 를 처리하려면 소스가 지저분해지고 번거러워 질 수 밖에 없다. &amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;다행히도 이들을 배치할 수 있는 방법은 존재한다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;일단 image, title의 Alignment를 정해줄수 있는데 아래와 같이 가능하다.&lt;/span&gt;&lt;/div&gt;&lt;pre class=&quot;brush:objc&quot; style=&quot;margin-top: 0px; margin-bottom: 1.5em; margin-left: 0.8em; padding: 0.4em; border-top: 1px dashed rgb(204, 204, 204); border-bottom: 1px dashed rgb(204, 204, 204); color: rgb(102, 102, 102);&quot;&gt;  [btn setContentHorizontalAlignment:UIControlContentHorizontalAlignmentLeft];
    [btn setContentVerticalAlignment:UIControlContentVerticalAlignmentBottom];
&lt;/pre&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;각각 가로 세로의 정렬을 관리할수 있다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;해당 메소드는 UIControl에 포함된 메소드로 이를 상속 받은 UI들은 모두 사용할 수 있다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;위와 같이 배치를 하면 어느정도 원하는 모양을 가질 수 있지만, 아직 부족하다고 느낄수 있다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;좀더 세밀한 보정이 필요할때 아래와 같이 가능하다.&lt;/span&gt;&lt;/div&gt;&lt;pre class=&quot;brush:objc&quot; style=&quot;margin-top: 0px; margin-bottom: 1.5em; margin-left: 0.8em; padding: 0.4em; border-top: 1px dashed rgb(204, 204, 204); border-bottom: 1px dashed rgb(204, 204, 204); color: rgb(102, 102, 102);&quot;&gt;
    [btn setContentEdgeInsets:UIEdgeInsetsMake(0, 10, 0, 0)];
    [btn setImageEdgeInsets:UIEdgeInsetsMake(0, 10, 0, 0)];
    [btn setTitleEdgeInsets:UIEdgeInsetsMake(0, 10, 0, 0)];
&lt;/pre&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;각각 Image와 Title의 EdgInsets을 지정해 줄 수 있는데, EdgeInsets은 각각 top, left, bottm, right 를 나타내고,&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이를 통해서 위치 조정이 가능하다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;EdgeInsets의 자세한 내용은 해당 링크를 참조하기 바란다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;a href=&quot;http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UIKitDataTypesReference/Reference/reference.html#//apple_ref/doc/c_ref/UIEdgeInsets&quot; target=&quot;_blank&quot; data-mce-href=&quot;http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UIKitDataTypesReference/Reference/reference.html#//apple_ref/doc/c_ref/UIEdgeInsets&quot; style=&quot;margin: 0px; padding: 0px; border-bottom-color: rgb(204, 51, 153); color: rgb(203, 137, 179) !important;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UIKitDataTypesReference/Reference/reference.html#//apple_ref/doc/c_ref/UIEdgeInsets&lt;/span&gt;&lt;/a&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;그리고 두개를 모두 같이 보정하고 싶을때는, contentEdgeInsets를 조정해 주면 된다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이를 이용하면 버튼을 휠씬 간편하고 깔끔하게 관리 할 수 있게 된다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;간단하지만, 모르고 넘어가서 고생을 할 수있는 부분이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이것 때문에 지저분해진 소스가 있다면 지금 바로 수정해 보기 바란다.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>2013 이전/iOS개발</category>
      <author>하구루</author>
      <guid isPermaLink="true">https://hagulu.tistory.com/144</guid>
      <comments>https://hagulu.tistory.com/144#entry144comment</comments>
      <pubDate>Sat, 25 Feb 2017 16:32:30 +0900</pubDate>
    </item>
    <item>
      <title>[iPad 개발] PopoverController contentSize 문제</title>
      <link>https://hagulu.tistory.com/143</link>
      <description>&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 10pt;&quot;&gt;PopoverController 를 사용하다보면 사이즈 때문에 골머리를 썩을 경우가 많을 것이다.&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;일단 가장 평범한 방법은 해당 PopoverController에 들어갈 해당 UIViewController에&lt;/span&gt;&lt;/div&gt;&lt;pre class=&quot;brush:objc&quot; style=&quot;margin-top: 0px; margin-bottom: 1.5em; margin-left: 0.8em; padding: 0.4em; border-top: 1px dashed rgb(204, 204, 204); border-bottom: 1px dashed rgb(204, 204, 204); color: rgb(102, 102, 102);&quot;&gt;- (CGSize)contentSizeForViewInPopover {
    return CGSizeMake(320, 480);
}
&lt;/pre&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;위 처럼 해당 하는 함수를 override 해주면 리턴하는 사이즈로 PopoverController 사이즈를 조절 해준다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;하지만 여기도 문제점이 하나 있다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;navigationController를 사용할때 push나 pop을 하게 되면 늘어나기는 하지만 줄어 들지는 않는다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;구글링을 통해서 얻게된 방법인데, 일종의 꼼수라고 볼수 있겠다.&lt;/span&gt;&lt;/div&gt;&lt;pre class=&quot;brush:objc&quot; style=&quot;margin-top: 0px; margin-bottom: 1.5em; margin-left: 0.8em; padding: 0.4em; border-top: 1px dashed rgb(204, 204, 204); border-bottom: 1px dashed rgb(204, 204, 204); color: rgb(102, 102, 102);&quot;&gt;- (void) forcePopoverSize 
{
    CGSize currentSetSizeForPopover = self.contentSizeForViewInPopover;
    CGSize fakeMomentarySize = CGSizeMake(currentSetSizeForPopover.width - 1.0f, 
                                          currentSetSizeForPopover.height - 1.0f);
    self.contentSizeForViewInPopover = fakeMomentarySize;
}


- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];

    [self forcePopoverSize];
}

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];

    CGSize currentSetSizeForPopover = self.contentSizeForViewInPopover;
    self.contentSizeForViewInPopover = currentSetSizeForPopover;
}

&lt;/pre&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;위 처럼 ViewController에 해당하는 함수에 위 내용을 추가만 해주면 된다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;모두 ViewController 멤버를 사용하는 것이니, 바로 가져다 붙여 써도 잘 적용될것이다.&lt;/span&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;해당 메소드 이름을 정확히 확인하고 적용 바란다.&lt;/span&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;처음에 잘못 보고 적용을 해서 삽질을 했엇다. ㅠㅠ&lt;/span&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;각 viewController에 위사항을 적용하면, 언제 그랫냐는 듯이 pop, push 간에 PopoverController크기가 늘었다 줄었다 한다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;하지만 여기도 문제는 있다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;ViewController 사이의 사이즈 크기가 차이가 많이 나면 정신없이 움직여서 산만한 느낌이 든다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이 기능이 꼼수를 통해서만 이루어 지는걸 봐서는 정신 없게 움직이는것을 방지하기 위해 그렇지 않을까 싶다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;때문에, 이 소스의 적용은 상황에 따라 잘 적용해야 할 것이다.&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>2013 이전/iOS개발</category>
      <author>하구루</author>
      <guid isPermaLink="true">https://hagulu.tistory.com/143</guid>
      <comments>https://hagulu.tistory.com/143#entry143comment</comments>
      <pubDate>Sat, 25 Feb 2017 16:32:02 +0900</pubDate>
    </item>
    <item>
      <title>[iOS 개발] 안정적이고 flexible 한 UITableViewCell UI 구현하기</title>
      <link>https://hagulu.tistory.com/142</link>
      <description>&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 10pt;&quot;&gt;UITableView 를 이용할때 Cell을 Customize 하여 사용하는 경우가 많을 것이다.&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;이렇게 사용할때 &amp;nbsp;Cell의 크기에 따라 Cell의 구성요소의 위치와 크기가 다르게 구성하는 경우가 많을 것이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;하지만 각각의 Cell을 UI사이즈나 위치가 변경할때 마다 각각의 Cell의 위치나 크기를 매번 새로 적용해주게 되면 여러 문제가 발생할 수가 있다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;이때, 해당 Cell의 frame만 가지고 구성요소의 위치를 지정해 주게 되면 여러 문제에 봉착하게 된다.&lt;/span&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;그래서 Cell을 구성할떄 위치와 크기에 변화가 필요한 것들은 모두 &amp;nbsp;각 UIView에 AutoresizingMask를 적용하여 사용해야 한다. 전체 View가 유기적으로 AutoresizingMask를 적용하지 않아서 전체 적으로 static하게 구성하더라도, Cell은 적어도 AutoresizingMask를 통해서 구성해야 한다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;Cell의 frame을 이용해서 계산하여 UIView의 위치를 배치하면, 최초 구동시나, 회전하여 구동할때 등 문제가 발생하게 된다.&lt;/span&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;그리고 한가지 더 중요한 점이 Cell에서 구성되는 UIView를 Cell의 self에 바로 addSubview하는 경우가 많은데, 꼭! self.contentView에 addSubview 를 해주는 것이 좋다. Grouped UITableView에서 는 cell안에 표시되려면 꼭 필요한 부분이고, Plain이라고 하더라도 적용해 주어야한다. 그렇지 않으면 AutoresizingMask하는 부분이 의도한 대로 진행되지 않을 것이다. 따라서 특정한 경우가 아니라면 꼭 contentView에 addSubview를 해주어야 한다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;어찌보면 당연한 것이지만, 쉽게 생각하고 무시하고 진행하는 경우가 있기때문에, 이 두 부분은 꼭 기억하고 UIView를 관리 하기 바란다.&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>2013 이전/iOS개발</category>
      <author>하구루</author>
      <guid isPermaLink="true">https://hagulu.tistory.com/142</guid>
      <comments>https://hagulu.tistory.com/142#entry142comment</comments>
      <pubDate>Sat, 25 Feb 2017 16:31:25 +0900</pubDate>
    </item>
    <item>
      <title>[iOS 개발] UIPopoverController 의 EKEventEditViewController 키보드 문제</title>
      <link>https://hagulu.tistory.com/141</link>
      <description>&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 10pt;&quot;&gt;iOS5에서 PopoverController위에 EKEventEditViewController를 올려서 사용하다 보면 cancel 버튼이나 done 버튼을 통해서 나왔을때는 문제가 없지만,&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;UIPopoverController의 바깥 공간을 선택했을때는 UIPopoverController가 사라져도 키보드가 내려가지 않는 문제가 발생한다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;해당 viewController의 view에 endEditing: 을 이용해 보아도 변화가 없다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;구글링을 통해서 일본사이트에서 해결 방법을 찾았다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;일본어는 번역기로도 꽤 읽을 만한 내용이 나온다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;해당 내용은 참고한 사이트에서 문제점을 수정하고 정리한 소스이다.&lt;/span&gt;&lt;/div&gt;&lt;pre class=&quot;brush:objc&quot; style=&quot;margin-top: 0px; margin-bottom: 1.5em; margin-left: 0.8em; padding: 0.4em; border-top: 1px dashed rgb(204, 204, 204); border-bottom: 1px dashed rgb(204, 204, 204);&quot;&gt;- (BOOL)popoverControllerShouldDismissPopover:(UIPopoverController *)popoverController {

    EKEventEditViewController *ev = (EKEventEditViewController *)self.popoverController.contentViewController;
    for (UIView* view in [[ev navigationBar] subviews])
    {
        if ([NSStringFromClass([view class]) isEqualToString: @&quot;UINavigationButton&quot;])
        {
            UIButton* btn = (UIButton*)view;
            
            for (UIBarButtonItem* buttonItem in [btn allTargets])
            {
                id target = [buttonItem target];
                SEL sel = @selector(cancel:);
                
                if ([target respondsToSelector: sel])
                {
                    [target performSelector:sel];
                    
                    NSLog(@&quot;target = %@&quot;, NSStringFromClass([target class]));
                    NSLog(@&quot;action = %@&quot;, NSStringFromSelector(sel));
                    
                }
            }
        }
    }
    
    return YES;   
}

&lt;/pre&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;위 소스 처럼 UIPopoverController의 delegate인 &quot;popoverControllerShouldDismissPopover:&quot; 에 추가해주면 된다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;위 소스 내용은 UIPopoverController가 바깥쪽을 선택하여 사라지기 직전에 EKEventEditViewController의 navigation item중에서 selector가 cancel:인 item을 찾아서 cancel: 를 실행해주는 방식이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;어찌보면 꼼수라고 할 수 있어서 정답이라고는 말할 수 없을것 같다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;혹시 좀더 깔끔한 답을 알게 된다면 다시 포스팅 해보도록 하겠다.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>2013 이전/iOS개발</category>
      <author>하구루</author>
      <guid isPermaLink="true">https://hagulu.tistory.com/141</guid>
      <comments>https://hagulu.tistory.com/141#entry141comment</comments>
      <pubDate>Sat, 25 Feb 2017 16:31:01 +0900</pubDate>
    </item>
    <item>
      <title>[iOS 개발] 현재 view의 모든 text editing 중단하기</title>
      <link>https://hagulu.tistory.com/140</link>
      <description>&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;textfeild 나 textView 등 text를 editing 하는 view를 만들다 보면&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;키보드등 여러 문제로 골머리를 썩은 경험이 있을것이다.&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px;&quot;&gt;특히, resignFirstResponder를 통해서 해당 editing을 그만 두려고 해야할때,&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px;&quot;&gt;cell위에 사용하거나 여러 view가 중첩되어 해당 view의 객체를 컨트롤 하기 힘든경우가 발생할 수 있다.&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px;&quot;&gt;이때 해당하는 뷰의 모든 subview들의 editing을 그만 두도록 한번에 처리 할수 있는 메소드가 있다.&lt;/p&gt;&lt;/div&gt;&lt;pre class=&quot;brush:objc&quot; style=&quot;margin-top: 0px; margin-bottom: 1.5em; margin-left: 0.8em; padding: 0.4em; border-top: 1px dashed rgb(204, 204, 204); border-bottom: 1px dashed rgb(204, 204, 204); color: rgb(102, 102, 102);&quot;&gt;[targetView endEditing:YES];

&lt;/pre&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;위 처럼 해당 뷰의 메소드를 호출하게되면 모든 subview들에 있는 editing이 멈추게 된다.&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;editing 때문에 올라와 있던 키보드들도 내려가게 된다.&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>2013 이전/iOS개발</category>
      <author>하구루</author>
      <guid isPermaLink="true">https://hagulu.tistory.com/140</guid>
      <comments>https://hagulu.tistory.com/140#entry140comment</comments>
      <pubDate>Sat, 25 Feb 2017 16:30:35 +0900</pubDate>
    </item>
    <item>
      <title>[node.js] npm을 이용한 module 설치</title>
      <link>https://hagulu.tistory.com/139</link>
      <description>&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 10pt;&quot;&gt;node.js 가 최근 많은 각광을 받는 이유 중 가장 큰 이유가 바로 강력한 추가 module들 때문이다.&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;a href=&quot;https://npmjs.org/&quot; target=&quot;_blank&quot; data-mce-href=&quot;https://npmjs.org/&quot; style=&quot;margin: 0px; padding: 0px; border-bottom-color: rgb(204, 51, 153); color: rgb(203, 137, 179) !important;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;https://npmjs.org/&lt;/span&gt;&lt;/a&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;위 주소 공식사이트를 가보면 알겟지만 현재 18,333개의 모듈들이 들록되어 있다. 게다가 빠른속도록 추가되고 있고, 업데이트도 활발이 이루어 지고 있다. 모듈을 설치하고 사용하는 법은 매우 간단하다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;node.js 를 설치할때 같이 설치된 npm을 이용하면 간단히 사용 할 수 있다. npm 은 간단한 명령으로 등록된 module을 쉽게 install 하고 update 할 수 있다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;Mac 의 Mac port 나 Linux 의 apt-get 등의 package 관리 툴들을 이용해 보았다면 낯설지 않게 이용할수 있을것이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;div data-mce-style=&quot;padding: 10px; background-color: #e4e4e4;&quot; style=&quot;margin: 0px; padding: 10px; background-color: rgb(228, 228, 228);&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;$npm install socket.io&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;위와 같은 명령으로 간단하게 socket.io 를 설치 할 수 있다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;기본 설치 위치가 /usr/local 으로 되어 permission 문제 때문에 설치가 제대로 이루어 지지 않을 수도 있으니 sudo 를 통해서 하기를 권장한다.&lt;/span&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이외에 해당 module을 최신화를 위해 아래와 같이 update 명령을 이용하면 된다.&lt;/span&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;div data-mce-style=&quot;padding: 10px; background-color: #e4e4e4;&quot; style=&quot;margin: 0px; padding: 10px; background-color: rgb(228, 228, 228);&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;$npm update socket.io&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이외에도 여러 명렁을 통해서 npm을 컨트롤 할 수있다 &amp;nbsp;이들에 대해서는&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;div data-mce-style=&quot;padding: 10px; background-color: #e4e4e4;&quot; style=&quot;margin: 0px; padding: 10px; background-color: rgb(228, 228, 228);&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;$npm&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;위 처럼 command 없이 입력하면 이용가능한 명령어들을 볼 수 있다.&lt;/span&gt;&lt;/div&gt;&lt;pre class=&quot;brush:js&quot; style=&quot;margin-top: 0px; margin-bottom: 1.5em; margin-left: 0.8em; padding: 0.4em; border-top: 1px dashed rgb(204, 204, 204); border-bottom: 1px dashed rgb(204, 204, 204);&quot;&gt;//socket_io.js
var socket = require(&quot;socket.io&quot;);

socket.listen(8005);

socket.sockets.on('connections', function(socket) {

        socket.emit('news', {hello:'world'});

});

socket.sockets.on('my event', function(data) {
        console.log(data);
});
&lt;/pre&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;설치한 module 은 위처럼 require 를 통해서 사용할 수 있다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;위 예제에서는 나중에 socket.io에 대해서 다룰때 다시한번 언급 해보도록 하겠다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;하지만 이대로 소스를 실행하명 다음과 같은 에러를 보게 될것이다.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;div data-mce-style=&quot;padding: 10px; background-color: #e4e4e4;&quot; style=&quot;margin: 0px; padding: 10px; background-color: rgb(228, 228, 228);&quot;&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;module.js:337&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; throw new Error(&quot;Cannot find module '&quot; + request + &quot;'&quot;);&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ^&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;Error: Cannot find module 'socket.io'&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; at Function._resolveFilename (module.js:337:11)&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; at Function._load (module.js:279:25)&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; at Module.require (module.js:359:17)&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; at require (module.js:375:17)&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; at Object.&amp;lt;anonymous&amp;gt; (/Users/gwanlija/socket_io/socket_io.js:1:76)&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; at Module._compile (module.js:446:26)&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; at Object..js (module.js:464:10)&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; at Module.load (module.js:353:31)&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; at Function._load (module.js:311:12)&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp; at Array.0 (module.js:484:10)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;해당 module 이 없다는 것인데, 방금 설치 했는데 없다니.. 무슨일일까? 바로 디렉토리 문제이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;해당 module이 설치된 디렉토리에서 소스를 저장하고 실행해야 해당 module 못찾는다는 위와 같은 에러가 나타나지 않는다. 일반적인 경우라면 /usr/local/lib 의 하위 디렉토리에서 가능하다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;그런데.. 이렇게만 가능하다면 찝찝할 수 밖에 없다. 내가 원하는 디렉토리에서 실행이 불가능 한걸까?&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;방법은 있다 해당하는 module 들을 소스가 들어 있는 디렉토리에 포함시켜야 한다. 이를 간단하게 해주는 것이 바로 package.json 파일이다. 해당 파일은 module 패키지에 대한 여러 정보를 정리 한 파일이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;자세한 사항은 아래 링크를 확인 하기 바란다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;a href=&quot;https://npmjs.org/doc/json.html&quot; target=&quot;_blank&quot; data-mce-href=&quot;https://npmjs.org/doc/json.html&quot; style=&quot;margin: 0px; padding: 0px; border-bottom-color: rgb(204, 51, 153); color: rgb(203, 137, 179) !important;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;https://npmjs.org/doc/json.html&lt;/span&gt;&lt;/a&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;일단 여기서는 위에서 발생하는 문제의 해결에 필요한 것만 초점을 맞추도록 하겠다.&lt;/span&gt;&lt;/div&gt;&lt;pre class=&quot;brush:js&quot; style=&quot;margin-top: 0px; margin-bottom: 1.5em; margin-left: 0.8em; padding: 0.4em; border-top: 1px dashed rgb(204, 204, 204); border-bottom: 1px dashed rgb(204, 204, 204); color: rgb(102, 102, 102);&quot;&gt;//package.json
{
  &quot;name&quot;: &quot;application-name&quot;,
  &quot;version&quot;: &quot;0.0.1&quot;,
  &quot;private&quot;: true,
  &quot;scripts&quot;: {
    &quot;start&quot;: &quot;node app&quot;
  },
  &quot;dependencies&quot;: {
    &quot;socket.io&quot;: &quot;0.9.11&quot;
  }
}
&lt;/pre&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;위와 같은 &amp;nbsp;구조로 되어 있다. 윗부분은 보는것처럼 간단한 application 에 대한 정보를 기록한다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;그리고 주목하야 할것이 &quot;dependencies&quot; 항목이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;socket.io 에 의존하고 있다고 명시하고 있다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;json 문법대로 키 벨류 쌍으로 이용하는 module을 필요하다면 추가로 명시해주면 된다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이 파일을 소스가 들어 있는 디렉토리에 저장하면 된다.&lt;/span&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;그리고 해당 디렉토리에서&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;div data-mce-style=&quot;padding: 10px; background-color: #e4e4e4;&quot; style=&quot;margin: 0px; padding: 10px; background-color: rgb(228, 228, 228);&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;$npm install&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;위 처럼 입력하고 수행하면 package.json 의 &quot;dependencies&quot; 에 명시되어 있는 module을 해당 디렉토리에 설치가 되어 진다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;설치가 끝나고 다시한번 소스를 수행해 보면 문제 없이 수행되는것을 확인 할 수 있을 것이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>2013 이전/node.js</category>
      <author>하구루</author>
      <guid isPermaLink="true">https://hagulu.tistory.com/139</guid>
      <comments>https://hagulu.tistory.com/139#entry139comment</comments>
      <pubDate>Sat, 25 Feb 2017 16:30:04 +0900</pubDate>
    </item>
    <item>
      <title>[node.js] mac에서 node.js 설치 하기</title>
      <link>https://hagulu.tistory.com/137</link>
      <description>&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;최근 많은 관심을 받고 있는 node.js 에 관해서 하나씩 포스팅 해보려고 한다. 현재 내가 구동하고 있는 서버가 mac이므로 mac 위주로 진행될 것이다.&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;일단 node.js를 정말 간단히 소개하면, javascript 엔진위에 돌아가는 프레임워크로 기존의 웹 클라이언트에서 이용되는 것이 아니라, &amp;nbsp;서버 사이드에서 python, perl, rudy 와 비슷한 방식으로 이용할 수 있다고 보면 될 것이다.&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;자세한 사항은 아래 위키 페이지와 다른 정보를 더 얻어 보기 바란다.&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;a href=&quot;http://ko.wikipedia.org/wiki/Node.js&quot; target=&quot;_blank&quot; data-mce-href=&quot;http://ko.wikipedia.org/wiki/Node.js&quot; style=&quot;margin: 0px; padding: 0px; border-bottom-color: rgb(204, 51, 153); color: rgb(203, 137, 179) !important;&quot;&gt;http://ko.wikipedia.org/wiki/Node.js&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;설치 방법은 매우 간단하다.&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;아래 공식 사이트를 가서 각 플랫폼에 맞는 파일을 받아서 설치하면된다.&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;a href=&quot;http://nodejs.org/&quot; target=&quot;_blank&quot; data-mce-href=&quot;http://nodejs.org/&quot; style=&quot;margin: 0px; padding: 0px; border-bottom-color: rgb(204, 51, 153); color: rgb(203, 137, 179) !important;&quot;&gt;http://nodejs.org/&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;mac pkg 로 배포하기 때문에 매우 설치가 간단하다.&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&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: 637px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2759503C58B131FC11&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2759503C58B131FC11&quot; width=&quot;637&quot; height=&quot;470&quot; filename=&quot;1641675516.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: 633px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2730A33C58B131FC14&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2730A33C58B131FC14&quot; width=&quot;633&quot; height=&quot;467&quot; filename=&quot;1614802581.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;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;node.js 를 설치하면 위에 보는것 같이 npm 도 같이 설치되고, 기본 설치 경로가 위와 같다.&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;npm 이란 node packaged modules 의 약자로 node.js에 쓰이는 각종 module들을 설치하고 update 할수 있는&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&amp;nbsp;tool 이다.&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;npm 사용법은 앞으로 포스팅될 여러 모듈들 예제에서 사용법을 설명하겠다.&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;npm의 공식 사이트는&amp;nbsp;&lt;a href=&quot;https://npmjs.org/&quot; target=&quot;_blank&quot; data-mce-href=&quot;https://npmjs.org/&quot; style=&quot;margin: 0px; padding: 0px; border-bottom-color: rgb(204, 51, 153); color: rgb(203, 137, 179) !important;&quot;&gt;https://npmjs.org/&lt;/a&gt;&amp;nbsp;이다.&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;그리고 $PATH 설정도 추가 되어 node 라는 명령으로 어디서든 사용이 가능하다.&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;여기 까지 완료되면 아주 간단하게 node.js 의 기본 설정이 완료 되었다.&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;사용법은 기존 python이나 perl등의 언어를 사용해 봤다면 익숙할 것이다. &amp;nbsp;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;아래와 같이 node 명령어로 인터프리터를 바로 사용할 수 있다 (나가려면 ^c 를 두번 해주면 된다)&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&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: 570px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/23157F3B58B1321C28&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F23157F3B58B1321C28&quot; width=&quot;570&quot; height=&quot;159&quot; filename=&quot;2668716020.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;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;그리고 .js 파일을 작성하여 실행할 수도 있다.&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;아래는 &amp;nbsp;wiki에 나와 있는 간단한 웹서버 구현 예제이다.&lt;/div&gt;&lt;pre class=&quot;brush:js&quot; style=&quot;margin-top: 0px; margin-bottom: 1.5em; margin-left: 0.8em; padding: 0.4em; border-top: 1px dashed rgb(204, 204, 204); border-bottom: 1px dashed rgb(204, 204, 204); background-color: rgb(255, 255, 255);&quot;&gt;//nodeHttp.js

var http = require('http');
 
http.createServer(function (request, response) {
    response.writeHead(200, {'Content-Type': 'text/plain'});
    response.end('Hello World\n');
}).listen(8000);
 
console.log('Server running at http://localhost:8000/');
&lt;/pre&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;위와 같이 작성하고 아래처럼 실행하면 웹서버가 수행되고&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&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: 571px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2744704658B1323E06&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2744704658B1323E06&quot; width=&quot;571&quot; height=&quot;71&quot; filename=&quot;1344492993.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: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 440px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2721574658B1323F32&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2721574658B1323F32&quot; width=&quot;440&quot; height=&quot;153&quot; filename=&quot;1387184863.png&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;다음과 같은 결과를 얻을 수 있다.&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;보는 것처럼 기본적인 설치와 사용법은 매우 간단하고 직관적이다.&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;문법이 javascript라는 점도 매우 매력 적이다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>2013 이전/node.js</category>
      <author>하구루</author>
      <guid isPermaLink="true">https://hagulu.tistory.com/137</guid>
      <comments>https://hagulu.tistory.com/137#entry137comment</comments>
      <pubDate>Sat, 25 Feb 2017 16:29:27 +0900</pubDate>
    </item>
    <item>
      <title>[iOS 개발] 유용한 각종 UI controller open source 정리 사이트</title>
      <link>https://hagulu.tistory.com/136</link>
      <description>&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 10pt;&quot;&gt;iOS에서 쓰이는 기본적인 UI 컨트롤러 외에 좀더 편리한 Custom controller 를 구현하고자 한다면 다음 사이트를 먼저 찾아보고 해보기 바란다.&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;a href=&quot;http://www.cocoacontrols.com/&quot; target=&quot;_blank&quot; data-mce-href=&quot;http://www.cocoacontrols.com/&quot; style=&quot;margin: 0px; padding: 0px; border-bottom-color: rgb(204, 51, 153); color: rgb(203, 137, 179) !important;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;http://www.cocoacontrols.com/&lt;/span&gt;&lt;/a&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;해당 사이트는 custom으로 만들어 놓은 각종 컨트롤들이 open source로 공개되어 정리되어 있다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;iOS 뿐아니라 Max OSX까지도 올려져 있다. 꽤나 많은 자료가 있고, 최근 유행하는 Custom controller들이 많이 올라와 있어서 아주 유용할것이다. 그리고 라이센스 별로 나누어져 있어서 이부분에서도 사용이 편리할 것이다.&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>2013 이전/iOS개발</category>
      <author>하구루</author>
      <guid isPermaLink="true">https://hagulu.tistory.com/136</guid>
      <comments>https://hagulu.tistory.com/136#entry136comment</comments>
      <pubDate>Sat, 25 Feb 2017 16:26:31 +0900</pubDate>
    </item>
    <item>
      <title>[iOS 개발] 지역에 맞게 날짜 표기 하기</title>
      <link>https://hagulu.tistory.com/135</link>
      <description>&lt;p&gt;&lt;span size=&quot;2&quot; face=&quot;Dotum, sans-serif&quot; data-mce-style=&quot;font-family: Dotum, sans-serif; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Dotum, sans-serif; font-size: 10pt;&quot;&gt;글로벌하게 앱을 배포하려 하다 보면 날짜 형식을 표시하는데 문제가 생긴다.&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span size=&quot;2&quot; face=&quot;Dotum, sans-serif&quot; data-mce-style=&quot;font-family: Dotum, sans-serif; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; font-family: Dotum, sans-serif; font-size: small;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span size=&quot;2&quot; face=&quot;Dotum, sans-serif&quot; data-mce-style=&quot;font-family: Dotum, sans-serif; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; font-family: Dotum, sans-serif; font-size: 10pt;&quot;&gt;일반적으로 우리나라의 표기 방식은&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span size=&quot;2&quot; face=&quot;Dotum, sans-serif&quot; data-mce-style=&quot;font-family: Dotum, sans-serif; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; font-family: Dotum, sans-serif; font-size: small;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span size=&quot;2&quot; face=&quot;Dotum, sans-serif&quot; data-mce-style=&quot;font-family: Dotum, sans-serif; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; font-family: Dotum, sans-serif; font-size: 10pt;&quot;&gt;&quot;2012년 10월 5일 금요일&quot; 이런식으로 표시 된다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span size=&quot;2&quot; face=&quot;Dotum, sans-serif&quot; data-mce-style=&quot;font-family: Dotum, sans-serif; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; font-family: Dotum, sans-serif; font-size: small;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span size=&quot;2&quot; face=&quot;Dotum, sans-serif&quot; data-mce-style=&quot;font-family: Dotum, sans-serif; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; font-family: Dotum, sans-serif; font-size: 10pt;&quot;&gt;하지만 미국의 경우는&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span size=&quot;2&quot; face=&quot;Dotum, sans-serif&quot; data-mce-style=&quot;font-family: Dotum, sans-serif; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; font-family: Dotum, sans-serif; font-size: small;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span data-mce-style=&quot;color: #505050; line-height: 20px;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(80, 80, 80); line-height: 20px;&quot;&gt;&lt;span size=&quot;2&quot; face=&quot;Dotum, sans-serif&quot; data-mce-style=&quot;font-family: Dotum, sans-serif; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; font-family: Dotum, sans-serif; font-size: 10pt;&quot;&gt;&quot;Friday October 5, 2012&quot; 로 표기 순서와 방식이 다르다&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span data-mce-style=&quot;color: #505050; line-height: 20px;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(80, 80, 80); line-height: 20px;&quot;&gt;&lt;span size=&quot;2&quot; face=&quot;Dotum, sans-serif&quot; data-mce-style=&quot;font-family: Dotum, sans-serif; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; font-family: Dotum, sans-serif; font-size: small;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span data-mce-style=&quot;color: #505050; line-height: 20px;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(80, 80, 80); line-height: 20px;&quot;&gt;&lt;span size=&quot;2&quot; face=&quot;Dotum, sans-serif&quot; data-mce-style=&quot;font-family: Dotum, sans-serif; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; font-family: Dotum, sans-serif; font-size: 10pt;&quot;&gt;그외에 또 다른 나라는 그 나라만의 표기 방식이 있다.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span data-mce-style=&quot;color: #505050; line-height: 20px;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(80, 80, 80); line-height: 20px;&quot;&gt;&lt;span size=&quot;2&quot; face=&quot;Dotum, sans-serif&quot; data-mce-style=&quot;font-family: Dotum, sans-serif; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; font-family: Dotum, sans-serif; font-size: small;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span size=&quot;2&quot; color=&quot;#505050&quot; face=&quot;Dotum, sans-serif&quot; data-mce-style=&quot;color: #505050; font-family: Dotum, sans-serif; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(80, 80, 80); font-family: Dotum, sans-serif; font-size: small;&quot;&gt;&lt;span data-mce-style=&quot;line-height: 20px;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 20px; font-size: 10pt;&quot;&gt;하지만 이를 지원하기 위해 모든 지역의 표기 방식을 찾아서 따로 처리 할 수는 없는 노릇이다.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span size=&quot;2&quot; color=&quot;#505050&quot; face=&quot;Dotum, sans-serif&quot; data-mce-style=&quot;color: #505050; font-family: Dotum, sans-serif; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(80, 80, 80); font-family: Dotum, sans-serif; font-size: small;&quot;&gt;&lt;span data-mce-style=&quot;line-height: 20px;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 20px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span size=&quot;2&quot; color=&quot;#505050&quot; face=&quot;Dotum, sans-serif&quot; data-mce-style=&quot;color: #505050; font-family: Dotum, sans-serif; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(80, 80, 80); font-family: Dotum, sans-serif; font-size: small;&quot;&gt;&lt;span data-mce-style=&quot;line-height: 20px;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 20px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span size=&quot;2&quot; color=&quot;#505050&quot; face=&quot;Dotum, sans-serif&quot; data-mce-style=&quot;color: #505050; font-family: Dotum, sans-serif; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(80, 80, 80); font-family: Dotum, sans-serif; font-size: small;&quot;&gt;&lt;span data-mce-style=&quot;line-height: 20px;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 20px; font-size: 10pt;&quot;&gt;다행이도 이를 쉽게 적용할 수 있는 method가 존재한다.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span size=&quot;2&quot; color=&quot;#505050&quot; face=&quot;Dotum, sans-serif&quot; data-mce-style=&quot;color: #505050; font-family: Dotum, sans-serif; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(80, 80, 80); font-family: Dotum, sans-serif; font-size: small;&quot;&gt;&lt;span data-mce-style=&quot;line-height: 20px;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 20px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span size=&quot;2&quot; color=&quot;#505050&quot; face=&quot;Dotum, sans-serif&quot; data-mce-style=&quot;color: #505050; font-family: Dotum, sans-serif; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(80, 80, 80); font-family: Dotum, sans-serif; font-size: small;&quot;&gt;&lt;span data-mce-style=&quot;line-height: 20px;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 20px; font-size: 10pt;&quot;&gt;위와 같이 날짜를 표기 할때 NSDateFomatter를 사용하게 될 것이다.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span size=&quot;2&quot; color=&quot;#505050&quot; face=&quot;Dotum, sans-serif&quot; data-mce-style=&quot;color: #505050; font-family: Dotum, sans-serif; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(80, 80, 80); font-family: Dotum, sans-serif; font-size: small;&quot;&gt;&lt;span data-mce-style=&quot;line-height: 20px;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 20px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span size=&quot;2&quot; color=&quot;#505050&quot; face=&quot;Dotum, sans-serif&quot; data-mce-style=&quot;color: #505050; font-family: Dotum, sans-serif; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(80, 80, 80); font-family: Dotum, sans-serif; font-size: small;&quot;&gt;&lt;span data-mce-style=&quot;line-height: 20px;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 20px; font-size: 10pt;&quot;&gt;기본적인 사용법은 따로 언급하지 않겠다.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span size=&quot;2&quot; color=&quot;#505050&quot; face=&quot;Dotum, sans-serif&quot; data-mce-style=&quot;color: #505050; font-family: Dotum, sans-serif; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(80, 80, 80); font-family: Dotum, sans-serif; font-size: small;&quot;&gt;&lt;span data-mce-style=&quot;line-height: 20px;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 20px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span size=&quot;2&quot; color=&quot;#505050&quot; face=&quot;Dotum, sans-serif&quot; data-mce-style=&quot;color: #505050; font-family: Dotum, sans-serif; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(80, 80, 80); font-family: Dotum, sans-serif; font-size: small;&quot;&gt;&lt;span data-mce-style=&quot;line-height: 20px;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 20px; font-size: 10pt;&quot;&gt;한국의 표기 법대로 위의 경우라면&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span size=&quot;2&quot; color=&quot;#505050&quot; face=&quot;Dotum, sans-serif&quot; data-mce-style=&quot;color: #505050; font-family: Dotum, sans-serif; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(80, 80, 80); font-family: Dotum, sans-serif; font-size: small;&quot;&gt;&lt;span data-mce-style=&quot;line-height: 20px;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 20px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span size=&quot;2&quot; color=&quot;#505050&quot; face=&quot;Dotum, sans-serif&quot; data-mce-style=&quot;color: #505050; font-family: Dotum, sans-serif; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(80, 80, 80); font-family: Dotum, sans-serif; font-size: small;&quot;&gt;&lt;span data-mce-style=&quot;line-height: 20px;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 20px; font-size: 10pt;&quot;&gt;&quot;yyyy MMMM d EEEE&quot; 정도가 될 것이다.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span size=&quot;2&quot; color=&quot;#505050&quot; face=&quot;Dotum, sans-serif&quot; data-mce-style=&quot;color: #505050; font-family: Dotum, sans-serif; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(80, 80, 80); font-family: Dotum, sans-serif; font-size: small;&quot;&gt;&lt;span data-mce-style=&quot;line-height: 20px;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 20px; font-size: 10pt;&quot;&gt;이것을 현재 디바이스에 설정된 지역의 표기 방식으로 한방에 변환 시켜주는 함수가 있다.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span size=&quot;2&quot; color=&quot;#505050&quot; face=&quot;Dotum, sans-serif&quot; data-mce-style=&quot;color: #505050; font-family: Dotum, sans-serif; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(80, 80, 80); font-family: Dotum, sans-serif; font-size: small;&quot;&gt;&lt;span data-mce-style=&quot;line-height: 20px;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 20px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span size=&quot;2&quot; color=&quot;#505050&quot; face=&quot;Dotum, sans-serif&quot; data-mce-style=&quot;color: #505050; font-family: Dotum, sans-serif; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(80, 80, 80); font-family: Dotum, sans-serif; font-size: small;&quot;&gt;&lt;span data-mce-style=&quot;line-height: 20px;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 20px; font-size: 10pt;&quot;&gt;간단한 예제를 보여 주겠다.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;pre class=&quot;brush:objc&quot; style=&quot;margin-top: 0px; margin-bottom: 1.5em; margin-left: 0.8em; padding: 0.4em; border-top: 1px dashed rgb(204, 204, 204); border-bottom: 1px dashed rgb(204, 204, 204);&quot;&gt;   NSString *dateFormatString = @&quot;yyyy MMMM d EEEE&quot;;
    dateFormatString = [NSDateFormatter dateFormatFromTemplate:dateFormatString options:0 locale:[NSLocale currentLocale]];
    
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
    [dateFormat setDateFormat:dateFormatString];
    
    NSLog(@&quot;%@&quot;, [dateFormat stringFromDate:[NSDate date]]);
&lt;/span&gt;&lt;/pre&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span size=&quot;2&quot; color=&quot;#505050&quot; face=&quot;Dotum, sans-serif&quot; data-mce-style=&quot;color: #505050; font-family: Dotum, sans-serif; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(80, 80, 80); font-family: Dotum, sans-serif; font-size: small;&quot;&gt;&lt;span data-mce-style=&quot;line-height: 20px;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 20px; font-size: 10pt;&quot;&gt;위 예제를 수행하게 되면 위에 언급했던 방식으로&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span size=&quot;2&quot; color=&quot;#505050&quot; face=&quot;Dotum, sans-serif&quot; data-mce-style=&quot;color: #505050; font-family: Dotum, sans-serif; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(80, 80, 80); font-family: Dotum, sans-serif; font-size: small;&quot;&gt;&lt;span data-mce-style=&quot;line-height: 20px;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 20px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span size=&quot;2&quot; face=&quot;Dotum, sans-serif&quot; data-mce-style=&quot;font-family: Dotum, sans-serif; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; font-family: Dotum, sans-serif; font-size: small;&quot;&gt;&lt;span color=&quot;#505050&quot; data-mce-style=&quot;color: #505050;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(80, 80, 80);&quot;&gt;&lt;span data-mce-style=&quot;line-height: 20px;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 20px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;한국은&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&quot;2012년 10월 5일 금요일&quot; 미국은&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span data-mce-style=&quot;color: #505050; line-height: 20px;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(80, 80, 80); line-height: 20px; font-size: 10pt;&quot;&gt;&quot;Friday October 5, 2012&quot;로 표시 된다.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span size=&quot;2&quot; face=&quot;Dotum, sans-serif&quot; data-mce-style=&quot;font-family: Dotum, sans-serif; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; font-family: Dotum, sans-serif; font-size: small;&quot;&gt;&lt;span data-mce-style=&quot;color: #505050; line-height: 20px;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(80, 80, 80); line-height: 20px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span size=&quot;2&quot; color=&quot;#505050&quot; face=&quot;Dotum, sans-serif&quot; data-mce-style=&quot;color: #505050; font-family: Dotum, sans-serif; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(80, 80, 80); font-family: Dotum, sans-serif; font-size: small;&quot;&gt;&lt;span data-mce-style=&quot;line-height: 20px;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 20px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;위에서 보는것처럼 우리나라의 표시 방식으로 포멧을 스트링으로 만들고 이것을&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span data-mce-style=&quot;color: #505050; font-family: Dotum, sans-serif; font-size: small; line-height: 20px;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(80, 80, 80); font-family: Dotum, sans-serif; font-size: 10pt; line-height: 20px;&quot;&gt;아래 메소드를 통해서&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span data-mce-style=&quot;color: #505050; font-family: Dotum, sans-serif; font-size: small; line-height: 20px;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(80, 80, 80); font-family: Dotum, sans-serif; font-size: small; line-height: 20px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span data-mce-style=&quot;color: #505050; font-family: Dotum, sans-serif; font-size: small; line-height: 20px;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(80, 80, 80); font-family: Dotum, sans-serif; font-size: 10pt; line-height: 20px;&quot;&gt;만든 포멧 스트링과 현재 로케일 정보를 넣어 주면 해당 지역에 맞는 포멧 스트링을 리턴해 준다&lt;/span&gt;&lt;span data-mce-style=&quot;color: #505050; font-family: Dotum, sans-serif; font-size: small; line-height: 20px;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(80, 80, 80); font-family: Dotum, sans-serif; font-size: small; line-height: 20px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span size=&quot;2&quot; face=&quot;Dotum, sans-serif&quot; data-mce-style=&quot;font-family: Dotum, sans-serif; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; font-family: Dotum, sans-serif; font-size: small;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span size=&quot;2&quot; face=&quot;Dotum, sans-serif&quot; data-mce-style=&quot;font-family: Dotum, sans-serif; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; font-family: Dotum, sans-serif; font-size: 10pt;&quot;&gt;dateFormatFromTemplate:dateFormatString:options:locale:&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span size=&quot;2&quot; color=&quot;#505050&quot; face=&quot;Dotum, sans-serif&quot; data-mce-style=&quot;color: #505050; font-family: Dotum, sans-serif; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(80, 80, 80); font-family: Dotum, sans-serif; font-size: small;&quot;&gt;&lt;span data-mce-style=&quot;line-height: 20px; white-space: normal;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 20px; font-size: 10pt;&quot;&gt;미국의 경우 &quot;EEEE, MMMM d, yyyy&quot;로 변환이 되고&lt;/span&gt;&lt;/span&gt;&lt;span size=&quot;2&quot; color=&quot;#505050&quot; face=&quot;Dotum, sans-serif&quot; data-mce-style=&quot;color: #505050; font-family: Dotum, sans-serif; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(80, 80, 80); font-family: Dotum, sans-serif; font-size: small;&quot;&gt;&lt;span data-mce-style=&quot;line-height: 20px; white-space: normal;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 20px; font-size: 10pt;&quot;&gt;한국의 경우 &quot;yyyy년 MMMM d일 EEEE&quot;으로 변환이 된다.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span size=&quot;2&quot; color=&quot;#505050&quot; face=&quot;Dotum, sans-serif&quot; data-mce-style=&quot;color: #505050; font-family: Dotum, sans-serif; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(80, 80, 80); font-family: Dotum, sans-serif; font-size: small;&quot;&gt;&lt;span data-mce-style=&quot;line-height: 20px; white-space: normal;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 20px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span size=&quot;2&quot; color=&quot;#505050&quot; face=&quot;Dotum, sans-serif&quot; data-mce-style=&quot;color: #505050; font-family: Dotum, sans-serif; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(80, 80, 80); font-family: Dotum, sans-serif; font-size: small;&quot;&gt;&lt;span data-mce-style=&quot;line-height: 20px; white-space: normal;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 20px; font-size: 10pt;&quot;&gt;미국의 경우 순서가 바뀌었고,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span size=&quot;2&quot; color=&quot;#505050&quot; face=&quot;Dotum, sans-serif&quot; data-mce-style=&quot;color: #505050; font-family: Dotum, sans-serif; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(80, 80, 80); font-family: Dotum, sans-serif; font-size: small;&quot;&gt;&lt;span data-mce-style=&quot;line-height: 20px; white-space: normal;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 20px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span size=&quot;2&quot; color=&quot;#505050&quot; face=&quot;Dotum, sans-serif&quot; data-mce-style=&quot;color: #505050; font-family: Dotum, sans-serif; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(80, 80, 80); font-family: Dotum, sans-serif; font-size: small;&quot;&gt;&lt;span data-mce-style=&quot;line-height: 20px; white-space: normal;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 20px; font-size: 10pt;&quot;&gt;한국의 경우 &quot;년&quot; &quot;일&quot; 이라는 포멧을 넣지 않았지만 우리나라에 맞춰서 들어가는것을 알 수 있다.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span size=&quot;2&quot; color=&quot;#505050&quot; face=&quot;Dotum, sans-serif&quot; data-mce-style=&quot;color: #505050; font-family: Dotum, sans-serif; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(80, 80, 80); font-family: Dotum, sans-serif; font-size: small;&quot;&gt;&lt;span data-mce-style=&quot;line-height: 20px; white-space: normal;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 20px; font-size: 10pt;&quot;&gt;(&quot;월&quot;은 EEEE포멧일경우 자동으로 들어 간다)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span size=&quot;2&quot; color=&quot;#505050&quot; face=&quot;Dotum, sans-serif&quot; data-mce-style=&quot;color: #505050; font-family: Dotum, sans-serif; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(80, 80, 80); font-family: Dotum, sans-serif; font-size: small;&quot;&gt;&lt;span data-mce-style=&quot;line-height: 20px; white-space: normal;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 20px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span size=&quot;2&quot; color=&quot;#505050&quot; face=&quot;Dotum, sans-serif&quot; data-mce-style=&quot;color: #505050; font-family: Dotum, sans-serif; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(80, 80, 80); font-family: Dotum, sans-serif; font-size: small;&quot;&gt;&lt;span data-mce-style=&quot;line-height: 20px; white-space: normal;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 20px; font-size: 10pt;&quot;&gt;이것을 이용하면 글로벌하게 배포될 앱의 날짜 포멧의 문제는 한방에 해결되게 된다.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span size=&quot;2&quot; face=&quot;Dotum, sans-serif&quot; data-mce-style=&quot;font-family: Dotum, sans-serif; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; font-family: Dotum, sans-serif; font-size: small;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span size=&quot;2&quot; face=&quot;Dotum, sans-serif&quot; data-mce-style=&quot;font-family: Dotum, sans-serif; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; font-family: Dotum, sans-serif; font-size: small;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;참고로 위 메소드에 현재 로케일은 아래 그림에 표시된 부분의 설정에 따르게 된다.&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span size=&quot;2&quot; face=&quot;Dotum, sans-serif&quot; data-mce-style=&quot;font-family: Dotum, sans-serif; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; font-family: Dotum, sans-serif; font-size: small;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span size=&quot;2&quot; face=&quot;Dotum, sans-serif&quot; data-mce-style=&quot;font-family: Dotum, sans-serif; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; font-family: Dotum, sans-serif; font-size: small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&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: 320px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/260E263958B1317329&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F260E263958B1317329&quot; width=&quot;320&quot; height=&quot;480&quot; filename=&quot;1377060526.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&amp;nbsp;. &amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 320px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/247F6F3958B1317228&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F247F6F3958B1317228&quot; width=&quot;320&quot; height=&quot;480&quot; filename=&quot;1191381673.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>2013 이전/iOS개발</category>
      <author>하구루</author>
      <guid isPermaLink="true">https://hagulu.tistory.com/135</guid>
      <comments>https://hagulu.tistory.com/135#entry135comment</comments>
      <pubDate>Sat, 25 Feb 2017 16:26:02 +0900</pubDate>
    </item>
    <item>
      <title>손쉽게 개발서버 구축하기</title>
      <link>https://hagulu.tistory.com/134</link>
      <description>&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 10pt;&quot;&gt;예전에 우분투 환경에서 웹서버를 구축하고 이용을 하였었다.&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;그때 당시 필요에 의해서 ruby on rails 와 redmine을 셋팅하려고 하였는데.. 몇일을 삽질하다가 포기한적이 있다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;리눅스 셋팅에 아직 서투른가보다 하고 고배를 마셨다가,&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;최근 다시 필요로 해서 Mac환경에서 Redmine을 설치하려고 하였다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;Mac은 더 어려우면 어쩌지하고 찾아 보고 있다가 엄청난 것을 발견하였다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;바로 Bitnami 라는 프로그램이었다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;a href=&quot;http://bitnami.org/stacks&quot; target=&quot;_blank&quot; data-mce-href=&quot;http://bitnami.org/stacks&quot; style=&quot;margin: 0px; padding: 0px; border-bottom-color: rgb(204, 51, 153); color: rgb(203, 137, 179) !important;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;http://bitnami.org/stacks&lt;/span&gt;&lt;/a&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;위 링크를 보면 알겠지만 redmine을 비롯해서 서버 개발자들이 좋아하는 툴들이 모아져 있다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;해당 툴들을 이용하기위한 모든 설치와 셋팅을을 간단한 설치 하나로 해결해 준다. &amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;더욱 엄청난 것은 윈도우, 리눅스, 맥OS 등의 os에 설치 파일을 제공할 뿐 아니라 vmware을 위한 이미지와 cloud Amazone machine 에서 사용할 수 있는&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span data-mce-style=&quot;font-family: Verdana, Arial, Helvetica, sans-serif; line-height: 15.600000381469727px;&quot; style=&quot;margin: 0px; padding: 0px; font-family: Verdana, Arial, Helvetica, sans-serif; line-height: 15.6px; font-size: 10pt;&quot;&gt;Amazon AMI 또한 제공해준다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span data-mce-style=&quot;font-family: Verdana, Arial, Helvetica, sans-serif; line-height: 15.600000381469727px;&quot; style=&quot;margin: 0px; padding: 0px; font-family: Verdana, Arial, Helvetica, sans-serif; line-height: 15.6px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span face=&quot;Verdana, Arial, Helvetica, sans-serif&quot; data-mce-style=&quot;font-family: Verdana, Arial, Helvetica, sans-serif;&quot; style=&quot;margin: 0px; padding: 0px; font-family: Verdana, Arial, Helvetica, sans-serif;&quot;&gt;&lt;span data-mce-style=&quot;line-height: 15.600000381469727px;&quot; style=&quot;margin: 0px; padding: 0px; line-height: 15.6px; font-size: 10pt;&quot;&gt;게다가 일부 메뉴는 설명에 한국어까지 지원되니.. 감격일 따름이다.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;본인의 경우 redmine에 mysql, php, svn 등 패키지로 설치가 되어, redmine만 사용하려다가 svn 까지 적용해서 사용하게 되었다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;그외에도 많은 서비스와 툴들이 숨어 있으니 한번 훑어 보는것도 좋을것 같다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>2013 이전/기타</category>
      <author>하구루</author>
      <guid isPermaLink="true">https://hagulu.tistory.com/134</guid>
      <comments>https://hagulu.tistory.com/134#entry134comment</comments>
      <pubDate>Sat, 25 Feb 2017 16:24:17 +0900</pubDate>
    </item>
    <item>
      <title>내 도메인을 활용한 무료 ddns 설정 dnsEver</title>
      <link>https://hagulu.tistory.com/133</link>
      <description>&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 10pt;&quot;&gt;유동 ip를 사용하는 집에서 서버를 이용하려면 언제 바뀔지 모르는 ip 때문에 힘든점이 많다.&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이떄 사용하는 것이 ddns 라는 방법이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;ddns에 대해서는&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;a href=&quot;http://terms.co.kr/DDNS.htm&quot; target=&quot;_blank&quot; data-mce-href=&quot;http://terms.co.kr/DDNS.htm&quot; style=&quot;margin: 0px; padding: 0px; border-bottom-color: rgb(204, 51, 153); color: rgb(203, 137, 179) !important;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;http://terms.co.kr/DDNS.htm&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;를 참조해 보기 바란다.&lt;/span&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;일반적으로 공유기에서 제공해주는 기능을 이용하는 것이 간편하다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;ipTime의 경우 아래의 링크를 확인해 보기 바란다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;a href=&quot;http://iptime.co.kr/~iptime/bbs/view.php?id=faq_setup&amp;amp;sn=off&amp;amp;ss=on&amp;amp;sc=on&amp;amp;select_arrange=headnum&amp;amp;desc=asc&amp;amp;no=164&quot; target=&quot;_blank&quot; data-mce-href=&quot;http://iptime.co.kr/~iptime/bbs/view.php?id=faq_setup&amp;amp;sn=off&amp;amp;ss=on&amp;amp;sc=on&amp;amp;select_arrange=headnum&amp;amp;desc=asc&amp;amp;no=164&quot; style=&quot;margin: 0px; padding: 0px; border-bottom-color: rgb(204, 51, 153); color: rgb(203, 137, 179) !important;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;http://iptime.co.kr/~iptime/bbs/view.php?id=faq_setup&amp;amp;sn=off&amp;amp;ss=on&amp;amp;sc=on&amp;amp;select_arrange=headnum&amp;amp;desc=asc&amp;amp;no=164&lt;/span&gt;&lt;/a&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;하지만 자신의 도메인을 이용할 수 없어서 그닥 땡기지가 않는다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;일반적으로 호스팅을 사용하는 사용자는 dns를 이용해서 ddns를 활용할 수 있는 방법이 없기때문에 한계가 있다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;그러던 중 알게된 무료! 서비스를 하나 소개하려고 한다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;dnsEver 라는 곳인데, 간단히 이야기 하면 간단한 dns를 제공하고 웹으로 손쉽게 셋팅을 할 수 있게 해주는 서비스다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;주소는&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://dnsever.com/&quot; target=&quot;_blank&quot; data-mce-href=&quot;http://dnsever.com&quot; style=&quot;margin: 0px; padding: 0px; border-bottom-color: rgb(204, 51, 153); color: rgb(203, 137, 179) !important;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;http://dnsever.com&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이다&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;무엇보다 좋은것은 ddns를 제공하고, 해당 ip를 http 리퀘스르를 통해서 쉽게 변경 할 수 있다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;즉, ddns를 자동화 하기가 쉽다는 것이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;심지어는 윈도우에서는 자동화 프로그램까지 배포 하고 있다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;기본적인 사용 방법은 아래 링크에 너무나도 잘 설명되어 있다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;a href=&quot;http://kr.dnsever.com/index.html?user_domain=&amp;amp;selected_menu=aboutddns&amp;amp;skey=&quot; target=&quot;_blank&quot; data-mce-href=&quot;http://kr.dnsever.com/index.html?user_domain=&amp;amp;selected_menu=aboutddns&amp;amp;skey=&quot; style=&quot;margin: 0px; padding: 0px; border-bottom-color: rgb(204, 51, 153); color: rgb(203, 137, 179) !important;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;http://kr.dnsever.com/index.html?user_domain=&amp;amp;selected_menu=aboutddns&amp;amp;skey=&lt;/span&gt;&lt;/a&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;나같은 경우 지금 보고 있는 블로그는 cafe24의 호스팅을 hagulu.com으로 유지하고&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;ddns로 mini.hagulu.com을 추가하여 이용하도록 설정하였다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이를 위해서는 먼저 도메인의 네임 서버를 dnsEver에서 제공해주는것으로 교체를 하고,&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&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: 203px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2736883958B130F62B&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2736883958B130F62B&quot; width=&quot;203&quot; height=&quot;253&quot; filename=&quot;5520132032.png&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;메뉴 중에서 호스트 ip 관리를 통해서 메인 ip를 등록하고(본인의 경우 cafe24 내 ip),&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;다이나믹 dns 관리를 통해 위에 링크에서 설명하는데로 설정해주면 된다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;기존에 메일을 다른쪽으로 돌려서 쓰고 있더라도 메일서버(MX)도 가능해서 걱정할 필요가 없다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이외에도 위에 보이듯이 여러 작업을 할 수 있으며&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;현재, 웹 포워딩 외에는 모두 무료로 사용 할수 있다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;네임서버를 변경하면 몇일은 안정적이게 도메인이 작동하지 못하니 이점은 고려하고 작업을 진행해야 할것이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>2013 이전/기타</category>
      <author>하구루</author>
      <guid isPermaLink="true">https://hagulu.tistory.com/133</guid>
      <comments>https://hagulu.tistory.com/133#entry133comment</comments>
      <pubDate>Sat, 25 Feb 2017 16:23:45 +0900</pubDate>
    </item>
    <item>
      <title>[일단까고보자] 겔럭시 카메라</title>
      <link>https://hagulu.tistory.com/132</link>
      <description>&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 10pt;&quot;&gt;지난 8월 삼성은 겔럭시 노트2, 겔럭시 노트 10.1 등 새로운 라인업을 소개 했다.&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;그리고 그와 함께 당당하게 소개된 겔럭시 카메라!&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&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;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/25108C3958B1308214&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F25108C3958B1308214&quot; width=&quot;500&quot; height=&quot;336&quot; filename=&quot;1111955043.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;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;겔럭시s3의 카메라와 검색이 겹쳐서 찾기도 번거로운 이름이다. 출시 전에 이런걸 개발하고 있다는 소린 들었는데 어느새 만들어서 발표까지 해버렸다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;일단 까기 전에 일단 스펙을 정리 해보자&lt;/span&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;1600만 화소 CMOS이미지 센서, &amp;nbsp;광각 23mm, 광학 21배 줄 렌즈, 4.3 인치 디스 플레이&lt;/span&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;똑딱이 치고는 잘빠진 스펙임이 분명하다. 일단 자동 카메라를 사용하려는 사용자들에게는 인기가 있을만한 스펙이다. 몇년전의 일이라면 말이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;그럼 본격적으로 까보겟다&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;1. 어정쩡한 포지션&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;최근에는 스마트폰이 급격히 보급이 되면서 그에 따라 똑딱이의 수요는 급격히 줄어 들었다.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&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: 547px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/232C7F3B58B1309D2E&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F232C7F3B58B1309D2E&quot; width=&quot;547&quot; height=&quot;221&quot; filename=&quot;4956512063.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;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br class=&quot;Apple-interchange-newline&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;예전의 똑딱이 사용자들은 간단히 자신의 생활을 기록하거나, 여행등 추억을 꽤 쓸만한 화질로 간직하려고 하는 수요 였다. 하지만 &amp;nbsp;최근 나오는 스마트폰의 카메라들은 일반 사용자들은 크게 차이점을 못 느낄정도로 좋은 화질을 자랑한다. 그렇기 때문에 휴대성이 휠씬 뛰어나고 공유 면에서도 편한 휴대폰 카메라로 똑딱이의 수요가 넘어가고 있다. 또한 좋은 사진을 바라는 준 고급 사용자들은 이미 똑딱이는 관심 밖이 었다. 꽤 낮아진 가격으로 접하기 쉬워진 DSLR을 많이 사용하게 되었다. 그리고 최근 무게와 크기가 부담인 고급 사용자를 위하여 콤펙트한 미러리스 DLSR이 각광을 받고 있다. 점점 똑딱이의 경쟁력은 두말 할 필요도 없이 떨어지고 있다. 내 예상으로는 스마트폰의 카메라가 점점더 발전 함으로써 위에 보이는 사진의 판매 추의 예측량보다 훨씬 더 빨리 떨어질 것으로 예상된다. &amp;nbsp;벌써 여기서부터 똑딱이로 나와 버린 겔럭시 카메라는 경쟁력이 없어 진다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;똑딱이 사용자들이 떠난 이유는 휴대성 때문인데, 원할한 공유가 이를 극복할 수 있을 것이라고 생각했던 것일까.&lt;/span&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;카메라 용어로 핀이 나가버린 것이다.&lt;/span&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;2. 요금제? 돈문제!&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;겔럭시 카메라의 두번째 무리수는 3G/4G 데이터 사용 가능이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;평소에는 크게 꺼내 쓰지도 않는 카메라를 위해서 데이터 요금제를 가입해서 쓸사용자가 얼마나 있을까? 삼성에서 내 놓을테니 특화 요금제가 생기긴 하겠지만, 언제 쓸지도 모르는 카메라를 위한 데이터 요금이라니..... 뭐.. 요금제 빌미로 공짜로 뿌리지 않을까 싶긴하다. 일부는, 데이터 요금제 가입하지 않고 사용하면 되지 않겠나? 싶겠지만.. 3G/4G사용 때문에 들어간 칩을 핑계로 가격이 일반 똑딱이라고 할 수 없는 가격이 나올 것이 뻔하다. 아이패드 처럼 와이파이 전용 모델이 나오면 모르겠지만 그런 움직임이 보이지 않는것 같다. 차라리 겔럭시 카메라가 나오기 전에 삼성에서 선보인 미러리스 와이파이 모델 &amp;nbsp;NX 시리즈가 차라리 더 나을지도 모르겠다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;와이파이만 지원이 되고 요즘 각광 받는 미러리스 카메라니 여기가 좀더 포지셔닝이 깔끔해 보인다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&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: 320px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2633853358B130B61D&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2633853358B130B61D&quot; width=&quot;320&quot; height=&quot;397&quot; filename=&quot;2729757364.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;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br class=&quot;Apple-interchange-newline&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;위에 보이는 세 가지 모델로 와이파이 카메라가 나왔었다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이 카메라 시리즈가 나왔을때 혹시... 안드로이드가 탑제된 카메라가 나오지 않을까 했는데.. 실제로 나와 버린것이다.&lt;/span&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;정말 이 겔럭시 카메라를 경쟁 모델로 키워 나갈껀지는 의문이지만, 실험적인 하나의 케이스로 남고 끝나길 바란다. 알단까고보자 포스팅의 첫번째 타겟으로 잡은것 이유도 너무나도 명확히 이건 아니라고 생각이 들어서 가볍게 글을 쓸수 있을 것 같아 서이다..&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;정말 이건 아니다...&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>2013 이전/일단까고보자</category>
      <author>하구루</author>
      <guid isPermaLink="true">https://hagulu.tistory.com/132</guid>
      <comments>https://hagulu.tistory.com/132#entry132comment</comments>
      <pubDate>Sat, 25 Feb 2017 16:22:47 +0900</pubDate>
    </item>
    <item>
      <title>[iOS 개발] iCloud keyValue Data Storage 사용</title>
      <link>https://hagulu.tistory.com/131</link>
      <description>&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 10pt;&quot;&gt;유니버셜 앱을 개발하여 배포할때 각 앱의 설정을 연동할때 유용하게 사용할 수 있는&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;iCloud keyValue Data Storage를 소개 해보려고 한다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;앱 내에서 iCloud 연동을 위한 설정은 아래 포스팅을 통해 진행하면 된다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;a href=&quot;http://hagulu.com/144&quot; target=&quot;_blank&quot; data-mce-href=&quot;http://hagulu.com/144&quot; style=&quot;margin: 0px; padding: 0px; border-bottom-color: rgb(204, 51, 153); color: rgb(203, 137, 179) !important;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;http://hagulu.com/144&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;설정이 다되면 이를 이용하는 것은 매우 간단하다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;NSUserDefault를 이용해 본 사용자라면 보자 마자 이해 할 수 있을것이다.&lt;/span&gt;&lt;/div&gt;&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;NSUbiquitousKeyValueStore 라는 클래스를 통해서 쉽게 사용 할수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/p&gt;&lt;pre class=&quot;brush:objc&quot; style=&quot;margin-top: 0px; margin-bottom: 1.5em; margin-left: 0.8em; padding: 0.4em; border-top: 1px dashed rgb(204, 204, 204); border-bottom: 1px dashed rgb(204, 204, 204);&quot;&gt; NSUbiquitousKeyValueStore* store = [NSUbiquitousKeyValueStore defaultStore];
        
[store setBool:YES forKey:@&quot;kUsrDefAskDeleting&quot;];

 [store synchronize];
&lt;/pre&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;보는 것처럼 간단하게 defaultStore 메소드를 통해서 keyValue를 셋할수 있는 객체를 얻어 올수 있고,&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;해당 객체에 set 메소드를 통해서 BOOL 변수 뿐 아니라&lt;/span&gt;&lt;/div&gt;&lt;pre class=&quot;brush:objc&quot; style=&quot;margin-top: 0px; margin-bottom: 1.5em; margin-left: 0.8em; padding: 0.4em; border-top: 1px dashed rgb(204, 204, 204); border-bottom: 1px dashed rgb(204, 204, 204);&quot;&gt;- (void)setString:(NSString *)aString forKey:(NSString *)aKey;
- (void)setData:(NSData *)aData forKey:(NSString *)aKey;
- (void)setArray:(NSArray *)anArray forKey:(NSString *)aKey;
- (void)setDictionary:(NSDictionary *)aDictionary forKey:(NSString *)aKey;
- (void)setLongLong:(long long)value forKey:(NSString *)aKey;
- (void)setDouble:(double)value forKey:(NSString *)aKey;
- (void)setBool:(BOOL)value forKey:(NSString *)aKey;
&lt;/pre&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;위 메소드를 통해서 여러 형태의 객체를 저장할 수 있다.&lt;/span&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;그리고 모든 저장 절차가 끝나면&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;synchronize 메소드를 호출해 주면 된다.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;synchronize를 호출했다고 해서, 해당 하는 내용이 iCloud로 바로 전송이 되어지는 것은 아니다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;해당 메소드를 호출하면 해당하는 내용이 즉시 파일에 저장이 된다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이후 iCloud로 전송이 되는것은 시스템이 알아서 해준다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;즉, iCloud로 싱크 시키는것을 명시적으로 해줄 수 있는 방법은 없다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;그렇다고, 그 iCloud로 싱크되는 시점이 늦지는 않으니 걱정하지 않아도 될것이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;네트워크가 안정적인 환경에서 테스트 해보았을때 30초 안에는 적용이 되어 다른 디바이스에 전달되는것을 확인 하였다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이제 변경된 사항을 iCloud로 부터 받아 보는 방법을 보겠다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이도 매우 간단하다.&lt;/span&gt;&lt;/div&gt;&lt;pre class=&quot;brush:objc&quot; style=&quot;margin-top: 0px; margin-bottom: 1.5em; margin-left: 0.8em; padding: 0.4em; border-top: 1px dashed rgb(204, 204, 204); border-bottom: 1px dashed rgb(204, 204, 204); color: rgb(102, 102, 102);&quot;&gt; NSUbiquitousKeyValueStore *keyStore = [NSUbiquitousKeyValueStore defaultStore];
        
[[NSNotificationCenter defaultCenter] addObserver:self
                                                 selector: @selector(ubiquitousKeyValueStoreDidChange:)
                                                     name: NSUbiquitousKeyValueStoreDidChangeExternallyNotification
                                                   object:keyStore];
    
[keyStore synchronize];
&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 10pt;&quot;&gt;위 와 같은 방법으로 notification을 등록해 준후에 해당 메소드를 구현해주기만 하면 된다.&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;brush:objc&quot; style=&quot;margin-top: 0px; margin-bottom: 1.5em; margin-left: 0.8em; padding: 0.4em; border-top: 1px dashed rgb(204, 204, 204); border-bottom: 1px dashed rgb(204, 204, 204); color: rgb(102, 102, 102);&quot;&gt;-(void) ubiquitousKeyValueStoreDidChange: (NSNotification *)notification
{
    // Get the list of keys that changed.
    NSDictionary* userInfo = [notification userInfo];
    NSNumber* reasonForChange = [userInfo objectForKey:NSUbiquitousKeyValueStoreChangeReasonKey];
    NSInteger reason = -1;
    
    // If a reason could not be determined, do not update anything.
    if (!reasonForChange)
        return;
    
    // Update only for changes from the server.
    reason = [reasonForChange integerValue];
    if ((reason == NSUbiquitousKeyValueStoreServerChange) ||
        (reason == NSUbiquitousKeyValueStoreInitialSyncChange)) {
        // If something is changing externally, get the changes
        // and update the corresponding keys locally.
        NSArray* changedKeys = [userInfo objectForKey:NSUbiquitousKeyValueStoreChangedKeysKey];
        NSUbiquitousKeyValueStore* store = [NSUbiquitousKeyValueStore defaultStore];
        NSUserDefaults* userDefaults = [NSUserDefaults standardUserDefaults];
        
        // This loop assumes you are using the same key names in both
        // the user defaults database and the iCloud key-value store
        for (NSString* key in changedKeys) {
            id value = [store objectForKey:key];
            [userDefaults setObject:value forKey:key];
        }
    }
}

&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 10pt;&quot;&gt;위 처럼 구현을 하였는데, 이는 apple developer page에서 그대로 가져다 쓴것이다.&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;NSUserDefault를 통해서 셋팅을 관리 한다면 그대로 가져다 써도 무방할 것이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;해당 내용은 그렇게 어렵지 않으므로 추가 적인 설명은 생략 하겠다.&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;사용이 간단하니 한번씩 앱에 적용해 보는 것도 나쁘지 않을 것으로 보인다.&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>2013 이전/iOS개발</category>
      <author>하구루</author>
      <guid isPermaLink="true">https://hagulu.tistory.com/131</guid>
      <comments>https://hagulu.tistory.com/131#entry131comment</comments>
      <pubDate>Sat, 25 Feb 2017 16:20:46 +0900</pubDate>
    </item>
    <item>
      <title>[iOS 개발] 간단한 animation 처리</title>
      <link>https://hagulu.tistory.com/130</link>
      <description>&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 10pt;&quot;&gt;iOS를 통한 개발에 animation은 꽤나 중요한 부분이다.&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;iOS 특성상 부드러운 animation이 앱을 좀더 고급스럽게 만들어 주는데&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;iOS를 이를 위해 아주 간단하게 animation을 쉽게 구현할수 있도록 해 놓았다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;animation 전과 후의 View의 상태만 정해주면 그이외의 작업들은 모두 알아서 해준다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;예제 코드를 보면서 설명을 해 보겠다.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;pre class=&quot;brush:objc&quot; style=&quot;margin-top: 0px; margin-bottom: 1.5em; margin-left: 0.8em; padding: 0.4em; border-top: 1px dashed rgb(204, 204, 204); border-bottom: 1px dashed rgb(204, 204, 204); color: rgb(102, 102, 102);&quot;&gt;      CGRect rect = targetView.frame;
rect.origin.x = 300;
targetView.frame = rect;
        
[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationDelegate:self];
[UIView setAnimationDuration:0.3];
[UIView setAnimationRepeatCount:1];

rect = targetView.frame;
rect.origin.x = 0;
targetView.frame = rect;
        
[UIView commitAnimations];

&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 10pt;&quot;&gt;위 의 예제대로 수행을 하면 해당하는 targerView는 x좌표 300의 위치에서 x좌표 0의 위치로 자연스럽게 animation이 변화 하게 된다.&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;CGRect에 대한 설명은 따로 하지 않겠다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;animation을 시켜주는 부분이 중요하다.&lt;/span&gt;&lt;/div&gt;&lt;pre class=&quot;brush:objc&quot; style=&quot;margin-top: 0px; margin-bottom: 1.5em; margin-left: 0.8em; padding: 0.4em; border-top: 1px dashed rgb(204, 204, 204); border-bottom: 1px dashed rgb(204, 204, 204); color: rgb(102, 102, 102);&quot;&gt; [UIView beginAnimations:nil context:nil]; 
&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 10pt;&quot;&gt;해당 부분은에서 주목해야할 부분은 첫번째 파라 미터이다.&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;나중에 delegate를 통해서 animation이 시작하거나 끝나는 때에 여러 작업을 할때&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;각기 다른 animation들을 구분하는데 이용된다. 일종의 animation key이다.&lt;/span&gt;&lt;/div&gt;&lt;pre class=&quot;brush:objc&quot; style=&quot;margin-top: 0px; margin-bottom: 1.5em; margin-left: 0.8em; padding: 0.4em; border-top: 1px dashed rgb(204, 204, 204); border-bottom: 1px dashed rgb(204, 204, 204); color: rgb(102, 102, 102);&quot;&gt;       [UIView setAnimationDuration:0.3];
        [UIView setAnimationRepeatCount:1];
&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 10pt;&quot;&gt;위의 첫번째 메소드는 animation이 진행되는 시작이다 이를 길게 하면 animation 이 느려지고 짧게 하면 animation이 빨라 진다.&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;두번쨰 라인의 메소드는 보이는 그대로 반복 횟수이다. 해당 animation이 몇번 반복될지 설정해 주는 것이다.&lt;/span&gt;&lt;/div&gt;&lt;pre class=&quot;brush:objc&quot; style=&quot;margin-top: 0px; margin-bottom: 1.5em; margin-left: 0.8em; padding: 0.4em; border-top: 1px dashed rgb(204, 204, 204); border-bottom: 1px dashed rgb(204, 204, 204); color: rgb(102, 102, 102);&quot;&gt;     [UIView commitAnimations];
&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 10pt;&quot;&gt;마지막으로 animation을 마무리 지어 주도록 하는 메소드이다.&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이를 해주지 않으면 이후의 모든 frame등의 변화가 animation되는 경의로운 현상을 보게 될것이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;재미 삼아 한번 확인해 보는것을 추천한다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이를 이용해 view의 alpha 값으로 fade 효과도 이용할수 있으며&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;CGRect를 잘활용하여 위치나 크기 등을 animation으로 쉽게 이용 가능하다.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>2013 이전/iOS개발</category>
      <author>하구루</author>
      <guid isPermaLink="true">https://hagulu.tistory.com/130</guid>
      <comments>https://hagulu.tistory.com/130#entry130comment</comments>
      <pubDate>Sat, 25 Feb 2017 16:20:18 +0900</pubDate>
    </item>
    <item>
      <title>[iOS 개발] UITableView 기본 delegate, datasource</title>
      <link>https://hagulu.tistory.com/129</link>
      <description>&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 10pt;&quot;&gt;UITableView 를 사용하다 보면 항상 기본적인 delegate와 datasource의 소스들을 다른 소스에서 긁어서 쓰고 있다.&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이참에 항상 쓰는 소스만 정리해서 올려 놓으려고 한다.&lt;/span&gt;&lt;/div&gt;&lt;pre class=&quot;brush:objc&quot; style=&quot;margin-top: 0px; margin-bottom: 1.5em; margin-left: 0.8em; padding: 0.4em; border-top: 1px dashed rgb(204, 204, 204); border-bottom: 1px dashed rgb(204, 204, 204); color: rgb(102, 102, 102);&quot;&gt;#pragma mark -
#pragma mark tableview delegate

// 섹션의 갯수
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    // Return the number of sections.
    
    return 1;
}

// 각 섹션당 로우의 갯수
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    // Return the number of rows in the section.
    
    return 5;
    
}

// 각 셀 그리기
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    
    static NSString *CellIdentifier = @&quot;CalendarCell&quot;;
    
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
        
            
    }
    
    
    return cell;
}


// 셀이 선택 되었을때 수행할 내용 
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    
     
}


// 각셀의 높이 
-(CGFloat) tableView : (UITableView *) tableView heightForRowAtIndexPath : (NSIndexPath *)indexPath{
    
    return 45;    
}
&lt;/span&gt;&lt;/pre&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>2013 이전/iOS개발</category>
      <author>하구루</author>
      <guid isPermaLink="true">https://hagulu.tistory.com/129</guid>
      <comments>https://hagulu.tistory.com/129#entry129comment</comments>
      <pubDate>Sat, 25 Feb 2017 16:19:52 +0900</pubDate>
    </item>
    <item>
      <title>[iOS 개발] iCloud app 연동 설정</title>
      <link>https://hagulu.tistory.com/128</link>
      <description>&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 10pt;&quot;&gt;앱내의 셋팅 기능에서 많이 사용할 수 있는 간단한 iCould 연동을 소개 해보겠다.&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;오늘 포스팅할내용은 iCloud 연동을 위한 기본적인 설정 방법에대해서 알아 본다.&lt;/span&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;iCould를 앱에서 이용할수 있는 것은 아래와 그림과 같이 Document Storage와 keyValue Data Strorage 두종류 이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&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: 481px; width: 481px; height: 228px;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2772F23558B12F9A13&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2772F23558B12F9A13&quot; width=&quot;481&quot; height=&quot;228&quot; filename=&quot;4192640468.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;width: 481px; height: 228px;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br class=&quot;Apple-interchange-newline&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;Document Storage는 직접 파일을 저장하고 이를 로드할수 있도록 사용이 가능하고, 사용자의 iCloud용량이 다 찰때까지 이용할 수 있다. 앱에 따른 제한은 없다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;keyValue Data Strorage는 간단하게 NSUserDefault와 비슷한 방식으로 사용이 가능하고, 1M와 1024개의 키로 제한이 있다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;좀더 자세한 정보를 원한다면 애플 공식 페이지 가이드&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;a href=&quot;http://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/iCloud/iCloud.html&quot; target=&quot;_blank&quot; data-mce-href=&quot;http://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/iCloud/iCloud.html&quot; style=&quot;margin: 0px; padding: 0px; border-bottom-color: rgb(204, 51, 153); color: rgb(203, 137, 179) !important;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;http://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/iCloud/iCloud.html&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;를 참고 하기 바란다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이제 iCloud를 쓰기위한 준비단계부터 시작하겠다 일단 먼저 App ID 설정에서 iCloud를 활성화 해주어야 한다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;developer 페이지에서 Provisioning Portal 메뉴의 App IDs 메뉴로 가서 해당하는 app ID 에 위에 보는것처럼 iCloud가 Enabled되도록 configure를 수정해 주어야 한다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&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: 794px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2326F93858B12FBA2F&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2326F93858B12FBA2F&quot; width=&quot;794&quot; height=&quot;150&quot; filename=&quot;1098191041.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;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br class=&quot;Apple-interchange-newline&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;해당하는 내용을 수정을 하였으면 적용이 되어 있는 Provisioning 파일도 새로 받아서 이를 이용해서 개발해야 한다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이제 프로젝트에 추가를 해주어야 한다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;먼저 해당 Targets 의 Summary의 Entitlements 항목을 아래와 같이 수정해 주어야 한다.&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: 779px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/217E033B58B12FCF16&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F217E033B58B12FCF16&quot; width=&quot;779&quot; height=&quot;483&quot; filename=&quot;3397996188.png&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;위와 같이 해당 사항을 체크해주고&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;iCloud에서 이용될 id를 만들어 주어야 한다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;여기서 id가 중요한데, 유니버셜 앱의 경우 상관이 없지만,&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;따로 배포되는 lite 버젼의 앱이나, 아이폰과 아이패드 가 다른 앱으로 배포 되는경우&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;각각의 bundle ID와 같은 id를 사용하면 이를 이용해 싱크를 할수가 없다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;그렇기 때문에 여기에 사용되는 ID는 iCloud로 싱크될 모든 앱들이 같은 ID를 이용해야 한다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;그리고 위에서 iCloud를 설정한 App ID와도 호환이 되어야 한다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;어떤 개발이든 설정이 가장 많은 말썽을 부리니 차근차근 확인해가면서 설정해나가기를 바란다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&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: 259px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/275BB43358B12FE904&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F275BB43358B12FE904&quot; width=&quot;259&quot; height=&quot;266&quot; filename=&quot;6897541927.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;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br class=&quot;Apple-interchange-newline&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이를 셋팅하면 자동으로 entitlemments 파일이 생성되고 내용이 적용된다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이로써 기본적인 설정은 모두 마쳤다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;여기 까지 하고 앱이 디바이스로 올라가면 제대로 진행되것이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;그외에 에러가 발생한다면, App ID 와 프로파일등의 문제일 수 있으니 처음 부터 차근차근 확인해 보기 바란다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;다음에는 간단하게 keyValue Data Strorage 를 이용한 iCloud 에대해서 포스팅 해보겠다.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>2013 이전/iOS개발</category>
      <author>하구루</author>
      <guid isPermaLink="true">https://hagulu.tistory.com/128</guid>
      <comments>https://hagulu.tistory.com/128#entry128comment</comments>
      <pubDate>Sat, 25 Feb 2017 16:19:20 +0900</pubDate>
    </item>
    <item>
      <title>[iOS 개발] NSArray 역순으로 변환</title>
      <link>https://hagulu.tistory.com/127</link>
      <description>&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 10pt;&quot;&gt;NSArray의 Value들을 역순으로 정렬할때 다음과 같이 하면된다.&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;pre class=&quot;brush:objc&quot; style=&quot;margin-top: 0px; margin-bottom: 1.5em; margin-left: 0.8em; padding: 0.4em; border-top: 1px dashed rgb(204, 204, 204); border-bottom: 1px dashed rgb(204, 204, 204);&quot;&gt;[[array reverseObjectEnumerator] allObjects]
&lt;/pre&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;reverseObjectEnumerator 라는 메소드를 통해서 역순이 된 array의 NSEnumerator 객체를 얻게 되고&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;여기서 부터 allObjects를 통해서 해당 array를 얻게 된다.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>2013 이전/iOS개발</category>
      <author>하구루</author>
      <guid isPermaLink="true">https://hagulu.tistory.com/127</guid>
      <comments>https://hagulu.tistory.com/127#entry127comment</comments>
      <pubDate>Sat, 25 Feb 2017 16:16:22 +0900</pubDate>
    </item>
    <item>
      <title>iOS6의 화려한 변신은 국내 사용자에겐 그림의 떡(?)</title>
      <link>https://hagulu.tistory.com/126</link>
      <description>&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;한국시간 9월 20일 iOS6가 정식 출시 되었다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;그에 맞추어 전에 썼던 글을 수정해 보았다.&lt;/span&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;베타 때와 달라진점과 그래도 여전히 부족한 점에 대해 중점적으로 소개해 보겠다.&lt;/span&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이번 iOS6에서 중점적인 부분은 구글 맵을 버리고 새롭게 도입한 맵과 좀 더 다양한 기능이 추가된 시리 이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;먼저 맵, 발표할때만 보더라도 우와~ 우와~ 하면서 보았다. 3D형식의 일반 맵과 FlyOver라는 심시티 스러운 뷰들이 놀라울 다름이었다. 더군다나 tomtom의 네비게이션 기능까지 추가되어 화려하고 완벽한 지도앱으로 탈바꿈 되었다.&lt;/span&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: 480px; width: 480px; height: 345px;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2418BD3458B12E5F20&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2418BD3458B12E5F20&quot; width=&quot;480&quot; height=&quot;345&quot; filename=&quot;1027753101.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;width: 480px; height: 345px;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 10pt;&quot;&gt;베타 때보다는 생각 보다는 많은 것이 지원되었다. 일단 독도! 가 제대로 표현이 되었고, 턴바이턴 네이게이션이 국내에서 동작을하고, 도로명과 상호가 한글화 되었다.&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;하지만, 아직도 세세한 골목길같은 길이 표시가 미흡하고, 특히 지방의 경우는 그 정도가 심각하다. 그리고 건물들의 표시가 전혀 되어 있지 않아서 보기에 불편하다. flyover 기능은 전보다 더 악화 되었다. 확대비율이 현저하게 줄어서 위성 지도는 사용하기 조차 힘들어 졌다. 또한, 턴바이턴 네비게이션은 간결하기는 하지만 국내 네비게이션 앱에 길들여진 사용자들에게는 불편하게 다가올 것이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;앞으로 지도가 좀더 상세하게 되길 바랄 뿐이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;/span&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 240px; width: 240px; height: 360px;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/24186F3958B12E961B&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F24186F3958B12E961B&quot; width=&quot;240&quot; height=&quot;360&quot; filename=&quot;8945142137.png&quot; filemime=&quot;image/jpeg&quot; style=&quot;width: 240px; height: 360px;&quot;/&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 240px; text-align: center; width: 240px; height: 360px;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2714303958B12E991C&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2714303958B12E991C&quot; width=&quot;240&quot; height=&quot;360&quot; filename=&quot;9270657341.png&quot; filemime=&quot;image/jpeg&quot; style=&quot;text-align: center; width: 240px; height: 360px;&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: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br class=&quot;Apple-interchange-newline&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이덕에 다음맵과 네이버 맵의 사용률이 좀더 많이 높아질 것으로 보인다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;기본 맵을 사용하는 앱들은 머리가 아파질 문제이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;다음은 시리,&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;드디어 고대하던 한국어 지원이 들어 왔다. 내가 밤잠을 설쳐가면서 이번 WWDC를 지켜 본 이유도 이 기능에 대한 기대 때문이었다. 게다가 시리는 업데이트 되어서 좀더 많은 정보를 시리를 통해서 얻을 수 있게 되었다. 스포츠 스코어를 확인한다던가, 선수의 정보를 찾고 비교 한다던지, 영화 시간표, 영화 정보, 예매등을 시리로 손쉽게 확인 할수 있게 되었다.&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span data-mce-style=&quot;font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; font-size: small;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;또한 yelp를 통해서 레스토랑 정보를 얻고 예약 까지 가능하다고 한다.&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;위에 설명한 새로운 맵의 네비게이션 기능 또한 시리로 이용 가능하다. 참으로 반가운 소식이 아닐수 없었다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&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: 640px; width: 640px; height: 408px;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/257C893758B12EF711&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F257C893758B12EF711&quot; width=&quot;640&quot; height=&quot;408&quot; filename=&quot;7384563824.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;width: 640px; height: 408px;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;하지만!&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;이 역시 시리의 기능은 제한적 일수 밖에 없다. 이번에 새롭게 지원되는 기능들이 모두 미국의 중심으로 이루어진 내용들이다. 국내에서는 사용할 수 없는 정보들이다. 기대를 많이 한것인지 생각보다 말을 못 알아 듣고, 억양에 따른 질문과 명령을 구분하지 못하는것으로 보였다. 베타때 보다는 좀더 나아진 것을 보였지만, 그래도 아직 인식의 문제가 심하다. 특히, 시리는 음성을 곧이 곧대로 변환하는게 아니고, 명령과 유사한 발음일경우 그 명령으로 교체하여 해석한다. 즉 인식률을 높이기위한 방법인데, 한국어의 경우 아직 제대로 자리잡지를 못한 상황이라 도리어 이때문에 인식률이 더 떨어진다. 시리가 인공지능으로 계속 발전한다고 하니 많이 사용해서 인식률이 빨리 높아 졌으면 하는 바람이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;다음으로 passbook 이라는 전자 지갑 앱이 새로 생겼는다. 베타 때만 해도 이 서비스가 국내에 사용이 될까 했지만, 최근&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://mypassbook.co.kr/&quot; target=&quot;_blank&quot; data-mce-href=&quot;http://mypassbook.co.kr&quot; style=&quot;margin: 0px; padding: 0px; border-bottom-color: rgb(204, 51, 153); color: rgb(203, 137, 179) !important;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;http://mypassbook.co.kr&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이라는 사이트가 생겨서 이 앱을 이용한 서비스를 준비 중이다. 거래처를 모집하고, 안드로이드도 사용할수 있도록 준비 단계인 것 같은데, 외면 받지 않고 활성화 되었으면 하는 바램이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&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: 188px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2205543C58B12F1D02&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2205543C58B12F1D02&quot; width=&quot;188&quot; height=&quot;281&quot; filename=&quot;4767715846.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;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br class=&quot;Apple-interchange-newline&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;그외에 페이스타임이 와이파이 이외에서도 통화가 가능하도록 변경되었지만, 현재 국내 통신사들이 3G/4G를 이용한 통화에 매우 소극적이어서 제대로 이용될수 있을지는 의문이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;베타 때에 비해서 조금 나아 지긴 했지만 이번 iOS6는 특히 미국 위주의 업데이트가 많은것 같아서 안타까울 따름이다.&lt;/span&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>2013 이전/기타</category>
      <author>하구루</author>
      <guid isPermaLink="true">https://hagulu.tistory.com/126</guid>
      <comments>https://hagulu.tistory.com/126#entry126comment</comments>
      <pubDate>Sat, 25 Feb 2017 16:15:58 +0900</pubDate>
    </item>
    <item>
      <title>[클라우드 서비스]  클라우드 서비스별 장단점</title>
      <link>https://hagulu.tistory.com/125</link>
      <description>&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;오늘부로 소문만 무성했던 google Drive 서비스가 미국을 시작으로 본격적으로 시작되었다.&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;한국에 정식 서비스는 5월 3일 부터 시작된다고 한다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;덕분에 지금 https://drive.google.com/start 를 들어가면 404 Not Found 에러가 보여진다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;단, 방법이 있는데&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;google 계정으로 로그인 후에 언어를 영어로 설정해주면 페이지가 보여진다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;그랫더니 &quot;Your Google Drive is not ready yet&quot; 라는 메시지가 나와서 조용히 기다리는중....&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;내가 요녀석을 목빠지게 기다리는 이유는... 은근히~ 딱 맘에 드는 클라우드 서비스가 없다..&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;그래서 간단히 클라우드 서비스의 장단점을 다분히 주관적으로 정리해보려고 한다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;Drop box&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;세계적으로 가장 많은 사용자를 가지고 있는 클라우드 서비스 이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;장점 - Mac OS, windows 클라이언트가 일반 디렉토리와 싱크가되어 사용이 편리하다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;현재 써본 iPad 앱중 직관성이 가장 뛰어나다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;iPad 앱 사용시에 다른 앱과 연동이 되어서 활용도가 높다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;단정 - 기본 무료 제공 용량이 2기가 밖에 되지 않는다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;한국에서 속도가 너무 느리다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;Sky Drive&lt;/span&gt;&lt;/strong&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;MS 에서 만든 차세대 Windows 를 겨냥한 클라우드 서비스&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;장점 - Mac OS, windows 클라이언트가 일반 디렉토리와 싱크가되어 사용이 편리하다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;iPad 앱 사용시에 다른 앱과 연동이 되어서 활용도가 높다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;단정 - 최근 25GB에서 7GB로 기본 용량을 줄였다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;한국에서 속도가 너무 느리다.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;UCloud&lt;/span&gt;&lt;/strong&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;KT 에서 서비스하는 클라우드 서비스&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;장점 - KT 이용자는 50GB라는 큰용량을 제공해준다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;전송 속도가 빠르다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;단점 - PC용 클라이언트 사용이 불편하다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;로그인등 접속이 원할하지 못한경우가 있다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;iPad 앱에 다른 앱과 연동이 되지 않는다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;p&gt;&lt;strong style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;strong data-mce-style=&quot;font-weight: bold;&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;Daum Cloud&lt;/span&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;daum 에서 서비스하는 클라우드 서비스&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;장점 - Mac OS, windows 클라이언트가 일반 디렉토리와 싱크가되어 사용이 편리하다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;전송 속도가 빠르다&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;50GB라는 대용량을 무료 제공한다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;단점 - iPad 앱이 없다&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;iPhone 앱이 있지만 다른 앱과 연동이 되지 않는다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div data-mce-style=&quot;font-weight: bold;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px; font-weight: bold;&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;N드라이브&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;Naver 에서 서비스하는 클라우드 서비스&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;장점 - 속도가 빠르다&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;30GB라는 대용량을 제공한다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;단점 &amp;nbsp;- PC 클라이언트가 불편하다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;iPad 앱에 다른 앱과 연동이 되지 않는다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;주절 주절 몇가지를 정리해 보았는데,&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;외국 서비스는 플랫폼에 잘대응하고 사용이 편리한대신에, 외국 서비스라 전송속도가 느리고, 용량이 적다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;국내 서비스는 용량이 크고 속도가 빠른 대신에, 여러 플랫폼에 대응이 미흡한 점이 있다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;결론은 용량 크고 속도 빠르고 여러 플랫폼에 대응 하는 서비스가 필요하다 ㅠㅠ&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;그래서 구글에 용량이 좀 부족하더라도 기대를 걸어 보고 있는 상황이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;정식적으로 한국에 서비스가 진행된다고 하니 속도도 어느정도 기대해 볼만하기 때문이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;구글 특성상 플랫폼 지원도 깔끔하지 않을까 예상해 본다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;- 추가&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;구글이 최근 새로운 사용자 약관이 추가 되었는데 (아래 인용 참고)&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;그에 따르면, 사용자가 올린 컨텐츠에대한 권리를 구글또한 가지게 된다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;서비스의 질을 높이기위한 것이라고는 한데, 이런 방식을 처음 접한 사용자는 흠짓 놀랄만한 내용이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;과연.. 어떻게 흘러갈지 궁금한 대목이다.&lt;/span&gt;&lt;/div&gt;&lt;div data-mce-style=&quot;font-weight: bold;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px; font-weight: bold;&quot;&gt;&lt;blockquote style=&quot;margin: 1.7em auto; padding: 0px 10px; width: 835.188px; color: rgb(80, 180, 202); border-left-width: 2px; border-left-color: rgb(221, 221, 221);&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;When you upload or otherwise submit content to our Services, you give Google (and those we work with) a worldwide licence to use, host, store, reproduce, modify, create derivative works (such as those resulting from translations, adaptations or other changes that we make so that your content works better with our Services), communicate, publish, publicly perform, publicly display and distribute such content. The rights that you grant in this licence are for the limited purpose of operating, promoting and improving our Services, and to develop new ones. This licence continues even if you stop using our Services (for example, for a business listing that you have added to Google Maps).(이번에 새롭게 만들어진 약관)&lt;/span&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>2013 이전/기타</category>
      <author>하구루</author>
      <guid isPermaLink="true">https://hagulu.tistory.com/125</guid>
      <comments>https://hagulu.tistory.com/125#entry125comment</comments>
      <pubDate>Sat, 25 Feb 2017 16:09:21 +0900</pubDate>
    </item>
    <item>
      <title>[iPhone 개발]  string 이 URL 형식인지 확인하기</title>
      <link>https://hagulu.tistory.com/124</link>
      <description>&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 10pt;&quot;&gt;어떤 string이 url인지 판별하는 방법은 여러가지가 있다.&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;하지만 대부분 http 와 같은 프로토콜을 꼭 포함 시켜야 하거나,&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&quot;adf.asdf.asdf&quot; 등의 실제로 사용가능한 주소 형식이 아니더라도 주소로 판별되는 경우가 있다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;그래서 좀더 정확성 높은 방법을 찾다가&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;정규 표현식을 통한 방법 중에 괜찮은 방법을 찾앗고, &amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;여기에도 문제점이 있어서 수정해서 아래와 같이 사용해 보았다.&lt;/span&gt;&lt;/div&gt;&lt;pre class=&quot;brush:objc&quot; style=&quot;margin-top: 0px; margin-bottom: 1.5em; margin-left: 0.8em; padding: 0.4em; border-top: 1px dashed rgb(204, 204, 204); border-bottom: 1px dashed rgb(204, 204, 204);&quot;&gt;

NSString *ptn = @&quot;(((http|https)://)?([0-9a-z_-]+\\.)+(aero|asia|biz|cat|com|coop|edu|gov|info|int|jobs|mil|mobi|museum|name|net|org|pro|tel|travel|ac|ad|ae|af|
ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|
cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cx|cy|cz|cz|de|dj|dk|dm|do|dz|ec|ee|eg|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|
gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|
jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mk|ml|mn|mn|mo|
mp|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|nom|pa|pe|pf|pg|ph|pk|pl|pm|pn|
pr|ps|pt|pw|py|qa|re|ra|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|
tk|tl|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw|arpa)
($|((:[0-9]+)?((\\/([~0-9a-zA-Z\\#\\+\\%@\\.\\/_-]+))?(\\?[0-9a-zA-Z\\+\\%@\\/&amp;amp;\\[\\];=_-]+)?)?)))&quot;;
    
NSRange range = [aStr rangeOfString:ptn options:NSRegularExpressionSearch];

&lt;/pre&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;위 정규 표현식의 중점은 .com .net 과 같은 정의되어 있는 것들만 포함이 되는것을 찾는것이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;보기 좋게 하기 위해 개행을 하였습니다. 사용할때는 개행을 제거하고 이용하시기 바랍니다.&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>2013 이전/iOS개발</category>
      <author>하구루</author>
      <guid isPermaLink="true">https://hagulu.tistory.com/124</guid>
      <comments>https://hagulu.tistory.com/124#entry124comment</comments>
      <pubDate>Sat, 25 Feb 2017 16:08:55 +0900</pubDate>
    </item>
    <item>
      <title>[iPhone 개발] AudioSessionAddPropertyListener 의 해제</title>
      <link>https://hagulu.tistory.com/123</link>
      <description>&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 10pt;&quot;&gt;audio session 을 사용하다보면&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;AudioSessionAddPropertyListener 를 통해서 &amp;nbsp;리스너를 등록해서 사용하게 되는데,&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이 리스너는 해제해주지 않으면 계속 해당 프로퍼티에 대해서 리스너를 유지하고 있다.&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;리스너를 등록한 객체가 release 되더라도, 리스너는 해제되지 않는다.&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;명시적으로 해지를 해주어야 하는데&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;AudioSessionRemovePropertyListenerWithUserData&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;위 함수를 통해서 해제를 해주어야 한다.&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;AudioSessionAddPropertyListener 은 계속 추가되는 방식이기 때문에 콜백 함수대신에 NULL을 넣는 등의 방식으로는 해제가 되지 않고 위에 소개된 메소드를 통해서만 해지가 가능하다.&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;사용법은 AudioSessionAddPropertyListener 와 모두 같은 파라미터를 넣어주면 된다.&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;AudioSessionAddPropertyListener를 사용할 수 있다면 쉽게 사용할 수 있을 것이다.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>2013 이전/iOS개발</category>
      <author>하구루</author>
      <guid isPermaLink="true">https://hagulu.tistory.com/123</guid>
      <comments>https://hagulu.tistory.com/123#entry123comment</comments>
      <pubDate>Sat, 25 Feb 2017 16:08:23 +0900</pubDate>
    </item>
    <item>
      <title>[iPhone 개발] sqlite query 따옴표 처리</title>
      <link>https://hagulu.tistory.com/122</link>
      <description>&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 10pt;&quot;&gt;sqlite 를 이용해서 쿼리를 사용하다 보면 쿼리에서 스트링을 넣을때&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;SELECT TEST FROM TEST_TABLE WHERE TEST = 'string'&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;와 같이 따옴표 안에 string을 넣게 된다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;그런데 스트링에 따옴표를 추가하고 싶으면 어떻해야 할까?&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;당연히 \' 라고 생각을해서 스트링을 변환을 했더니 되지 않았다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;db를 잘 아시는 분들에게는 쉬운 답이겠지만, 찾아 보니 따옴표를 두개를 넣어 줘야 한다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;즉 'string' 이라는 string을 입력하고 싶으면&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;SELECT TEST FROM TEST_TABLE WHERE TEST = '''string'''&lt;/span&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;와 같이 처리해 주어야 한다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;'''string'''&lt;/span&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;쌍따옴표가 아니라 모두 홑따옴표 입니다.&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>2013 이전/iOS개발</category>
      <author>하구루</author>
      <guid isPermaLink="true">https://hagulu.tistory.com/122</guid>
      <comments>https://hagulu.tistory.com/122#entry122comment</comments>
      <pubDate>Sat, 25 Feb 2017 16:08:00 +0900</pubDate>
    </item>
    <item>
      <title>[iPhone  개발] audiosession category 의 비밀</title>
      <link>https://hagulu.tistory.com/121</link>
      <description>&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 10pt;&quot;&gt;사운드를 나오게 하는 앱을 개발하다 보면&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;여러 sound와 관련된 문제에 봉착하게 되는데&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;여기에는 audiosession이 가지고있는 &amp;nbsp;category에 기인하는 경우가 많다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;여기서 먼저 다루어볼 부분은 route 부분이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;현재 iphone audiosession 에는&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;다음과 같은 category가 있다.&lt;/span&gt;&lt;/div&gt;&lt;pre class=&quot;brush:objc&quot; style=&quot;margin-top: 0px; margin-bottom: 1.5em; margin-left: 0.8em; padding: 0.4em; border-top: 1px dashed rgb(204, 204, 204); border-bottom: 1px dashed rgb(204, 204, 204); color: rgb(102, 102, 102);&quot;&gt;AVAudioSessionCategoryAmbient;
AVAudioSessionCategorySoloAmbient;
AVAudioSessionCategoryPlayback;
AVAudioSessionCategoryRecord;
AVAudioSessionCategoryPlayAndRecord;
AVAudioSessionCategoryAudioProcessing;
&lt;/pre&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;각각에 대한 좀더 구체적인 설명은 아래 링크를 참조 하기 바란다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;a href=&quot;https://developer.apple.com/library/ios/#documentation/Audio/Conceptual/AudioSessionProgrammingGuide/AudioSessionCategories/AudioSessionCategories.html&quot; target=&quot;_blank&quot; data-mce-href=&quot;https://developer.apple.com/library/ios/#documentation/Audio/Conceptual/AudioSessionProgrammingGuide/AudioSessionCategories/AudioSessionCategories.html&quot; style=&quot;margin: 0px; padding: 0px; border-bottom-color: rgb(204, 51, 153); color: rgb(203, 137, 179) !important;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;https://developer.apple.com/library/ios/#documentation/Audio/Conceptual/AudioSessionProgrammingGuide/AudioSessionCategories/AudioSessionCategories.html&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;위에 링크에 나와 있는 특성에 따라 output route의 처리도 달라지는데 이 정의를 제대로 알지 못해서 고생을 했었다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;위 category중에서 output이 가능한것은&lt;/span&gt;&lt;/div&gt;&lt;pre class=&quot;brush:objc&quot; style=&quot;margin-top: 0px; margin-bottom: 1.5em; margin-left: 0.8em; padding: 0.4em; border-top: 1px dashed rgb(204, 204, 204); border-bottom: 1px dashed rgb(204, 204, 204); color: rgb(102, 102, 102);&quot;&gt;AVAudioSessionCategoryAmbient;
AVAudioSessionCategorySoloAmbient;
AVAudioSessionCategoryPlayback;
AVAudioSessionCategoryPlayAndRecord;
&lt;/pre&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;위 네가지 이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이때 소리가 기본적으로 speaker 로 소리가 나는것은&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;pre class=&quot;brush:objc&quot; style=&quot;margin-top: 0px; margin-bottom: 1.5em; margin-left: 0.8em; padding: 0.4em; border-top: 1px dashed rgb(204, 204, 204); border-bottom: 1px dashed rgb(204, 204, 204);&quot;&gt;
AVAudioSessionCategoryAmbient;
AVAudioSessionCategorySoloAmbient;
AVAudioSessionCategoryPlayback;
&lt;/pre&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이고,&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;기본적으로 ear speaker를 통해서 소리가 나오는것은&lt;/span&gt;&lt;/div&gt;&lt;pre class=&quot;brush:objc&quot; style=&quot;margin-top: 0px; margin-bottom: 1.5em; margin-left: 0.8em; padding: 0.4em; border-top: 1px dashed rgb(204, 204, 204); border-bottom: 1px dashed rgb(204, 204, 204);&quot;&gt;

AVAudioSessionCategoryPlayAndRecord;

&lt;/pre&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;ear speaker를 통해 음원을 재생해야 한다면 위 세가지를 통해서는 불가능하다 (내가 찾아본 범위 안에서)&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;일반적으로 음원이 재생되는 route를 변경하기 위해서는&lt;/span&gt;&lt;/div&gt;&lt;pre class=&quot;brush:objc&quot; style=&quot;margin-top: 0px; margin-bottom: 1.5em; margin-left: 0.8em; padding: 0.4em; border-top: 1px dashed rgb(204, 204, 204); border-bottom: 1px dashed rgb(204, 204, 204);&quot;&gt;

        UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
        AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute,sizeof (audioRouteOverride),&amp;amp;audioRouteOverride);

        UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_None;
        AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute,sizeof (audioRouteOverride),&amp;amp;audioRouteOverride);

&lt;/pre&gt;&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;와 같은 방식으로 변경을 하게 되는데&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;kAudioSessionProperty_OverrideAudioRoute 에 set할수 있는 값은&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;kAudioSessionOverrideAudioRoute_None - 기본 재생 route&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;kAudioSessionOverrideAudioRoute_Speaker - speaker&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span size=&quot;2&quot; color=&quot;#666666&quot; face=&quot;Courier, Consolas, monospace&quot; data-mce-style=&quot;color: #666666; font-family: Courier, Consolas, monospace; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; font-family: Courier, Consolas, monospace; font-size: small;&quot;&gt;&lt;span data-mce-style=&quot;line-height: normal;&quot; style=&quot;margin: 0px; padding: 0px; line-height: normal;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;요 두가지 뿐이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;그렇기 때문에 기본 재생이 speaker 인 위의 세가지를 통해서는 위 방법을 통해서 route를 바꿀수 있는 방법은 없다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;즉, voip와 같은 ear speaker 를 통해 기본적으로 소리가 나야 하는 &amp;nbsp;앱을 만들기 위해서는 &amp;nbsp;&lt;/span&gt;&lt;span data-mce-style=&quot;font-family: Courier, Consolas, monospace; font-size: 13px; line-height: normal;&quot; style=&quot;margin: 0px; padding: 0px; font-family: Courier, Consolas, monospace; font-size: 10pt; line-height: normal;&quot;&gt;AVAudioSessionCategoryPlayAndRecord 를 꼭 이용해야 한다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span data-mce-style=&quot;font-family: Courier, Consolas, monospace; font-size: 13px; line-height: normal;&quot; style=&quot;margin: 0px; padding: 0px; font-family: Courier, Consolas, monospace; font-size: 13px; line-height: normal;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span data-mce-style=&quot;font-family: Courier, Consolas, monospace; font-size: 13px; line-height: normal;&quot; style=&quot;margin: 0px; padding: 0px; font-family: Courier, Consolas, monospace; font-size: 13px; line-height: normal;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span data-mce-style=&quot;font-family: Courier, Consolas, monospace; font-size: 13px; line-height: normal;&quot; style=&quot;margin: 0px; padding: 0px; font-family: Courier, Consolas, monospace; font-size: 10pt; line-height: normal;&quot;&gt;너무 당연한 답을 길게 쓴게 아닌가 갑자기 민망해 지려고 한다;;; ;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span size=&quot;2&quot; face=&quot;Courier, Consolas, monospace&quot; data-mce-style=&quot;font-family: Courier, Consolas, monospace; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; font-family: Courier, Consolas, monospace; font-size: small;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span size=&quot;2&quot; face=&quot;Courier, Consolas, monospace&quot; data-mce-style=&quot;font-family: Courier, Consolas, monospace; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; font-family: Courier, Consolas, monospace; font-size: small;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span size=&quot;2&quot; face=&quot;Courier, Consolas, monospace&quot; data-mce-style=&quot;font-family: Courier, Consolas, monospace; font-size: small;&quot; style=&quot;margin: 0px; padding: 0px; font-family: Courier, Consolas, monospace; font-size: 10pt;&quot;&gt;나 같이 헤매고 있는 어떠한 분에게 도움이 되었으면 한다.&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>2013 이전/iOS개발</category>
      <author>하구루</author>
      <guid isPermaLink="true">https://hagulu.tistory.com/121</guid>
      <comments>https://hagulu.tistory.com/121#entry121comment</comments>
      <pubDate>Sat, 25 Feb 2017 16:07:29 +0900</pubDate>
    </item>
    <item>
      <title>[iPhone 개발] keyboard 애니메이션 정보 얻기</title>
      <link>https://hagulu.tistory.com/120</link>
      <description>&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 10pt;&quot;&gt;키보드에 붙어 다니는 뷰를 만들다 보니 keyboard 가 가지고 있는 애니메이션과 동일하게 해당뷰의 애니메이션을 지정해주어야 한다.&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;예전 iOS4 까지는&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;pre class=&quot;brush:objc&quot; style=&quot;margin-top: 0px; margin-bottom: 1.5em; margin-left: 0.8em; padding: 0.4em; border-top: 1px dashed rgb(204, 204, 204); border-bottom: 1px dashed rgb(204, 204, 204);&quot;&gt;[UIView setAnimationDuration:0.3];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
&lt;/pre&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;위와 같은 애니메이션을 주면 키보드와 혼연일체로 움직인다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;하지만 iOS5 로 업데이트 되면서 keyboard 가 빨라 졌다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;테스트를 통해서 확인해 본결과 duration이 0.26으로 줄어 들었다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;게다가 iOS5에는 일본어 키보드에 힌트를 위한 뷰가 키보드위에 생겨났다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이에 관한 것은&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://hagulu.com/129&quot; target=&quot;_blank&quot; data-mce-href=&quot;http://hagulu.com/129&quot; style=&quot;margin: 0px; padding: 0px; border-bottom-color: rgb(204, 51, 153); color: rgb(203, 137, 179) !important;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;http://hagulu.com/129&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;포스트를 참고 하길 바란다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;일본어 키보드 때문에 대응해야하는 애니메이션이 있는데,&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;기존에 다른 언어 키보드가 있을때 일본어 키보드로 변경될때는 &amp;nbsp;애니메이션이 없이 움직인다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;따라서 키보드 위에 붙어 다니는 뷰에서 애니메이션이 없어야 한다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;일본어 키보드가 뜨면 키보드 위에 붙어있는 뷰가 애니메이션이 적용되어 부자연스럽게 보여진다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이렇게 iOS4 이전과 iOS5 이후를 if문 없이 대응 할수 있는 방법을 설명하려고 한다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;위에 소개된 포스트에서 이용하던 것과 비슷한 방법이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;먼저 아래에 두개의 notification을 설정해 준다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;pre class=&quot;brush:objc&quot; style=&quot;margin-top: 0px; margin-bottom: 1.5em; margin-left: 0.8em; padding: 0.4em; border-top: 1px dashed rgb(204, 204, 204); border-bottom: 1px dashed rgb(204, 204, 204);&quot;&gt;[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];
&lt;/pre&gt;&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;해당 notification은 보시는 봐와 같이 키보드가 나타나거나 사라지려 할때 나타나는 notification 이다.&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이때에 notification 이 가지고 있는 정보를 통해서 간단하게 해당 키보드의 애니메이션 정보를 가져올수 있다.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;pre class=&quot;brush:objc&quot; style=&quot;margin-top: 0px; margin-bottom: 1.5em; margin-left: 0.8em; padding: 0.4em; border-top: 1px dashed rgb(204, 204, 204); border-bottom: 1px dashed rgb(204, 204, 204);&quot;&gt;- (void)keyboardWillShow:(NSNotification *)notification {
    NSLog(@&quot;keyboard will show&quot;);
   
    NSTimeInterval keyboardAnimationDuration;
    UIViewAnimationCurve keyBroadAnimationNumber;

    NSValue* value = [notification.userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey];
    [value getValue:&amp;amp;keyboardAnimationDuration];
    
    value = [notification.userInfo objectForKey:UIKeyboardAnimationCurveUserInfoKey];
    [value getValue:&amp;amp;keyBroadAnimationNumber];
    
}

- (void)keyboardWillHide:(NSNotification *)notification {
    NSLog(@&quot;keyboard will hide&quot;);
   
    NSTimeInterval keyboardAnimationDuration;
    UIViewAnimationCurve keyBroadAnimationNumber;

    NSValue* value = [notification.userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey];
    [value getValue:&amp;amp;keyboardAnimationDuration];
    
    value = [notification.userInfo objectForKey:UIKeyboardAnimationCurveUserInfoKey];
    [value getValue:&amp;amp;keyBroadAnimationNumber];
}
&lt;/pre&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;위와 같이 UIKeyboardAnimationDurationUserInfoKey와 UIKeyboardAnimationCurveUserInfoKey를 통해서 애니메이션 시간과 애니메이션 curve 정보를 얻어 올수 있고 이를 통해서 키보드가 나타날때와 사라질때 뷰를 관리해주면 키보드와 혼연일체로 움직이는것을 확인해 볼수 있을것이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>2013 이전/iOS개발</category>
      <author>하구루</author>
      <guid isPermaLink="true">https://hagulu.tistory.com/120</guid>
      <comments>https://hagulu.tistory.com/120#entry120comment</comments>
      <pubDate>Sat, 25 Feb 2017 16:06:58 +0900</pubDate>
    </item>
    <item>
      <title>[iPhone 개발] mov 파일 mp4로 변환하기</title>
      <link>https://hagulu.tistory.com/119</link>
      <description>&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 10pt;&quot;&gt;안드로이드와 호환이 되는 파일 전송을 구현하다 보니 동영상 전송에 문제가 발생했다.&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;일반적으로 아이폰 비디오 레코더를 이용을 하게되면,&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;mov라를 확장자의 quickTimeMovie라는 방식으로 저장이 되어 진다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이 파일을 그대로 안드로이드에 전송을 했더니&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;안드로이드에서는 하드웨어 코덱을 통해서는 재생을 할수가 없었다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;quick time movie 와 &amp;nbsp;mpeg-4는 외부 포멧만 다를뿐 내부의 영상과 음성 코덱은 유사하다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;따라서 빠르게 변환이 가능한 방법이 있지 않을까 하고 찾다가 방법을 찾게 되었다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;바로 iOS 4 부터 지원되는 AssetLibrary를 이용하는 방법이다&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이를 통해서 아래와 같이 구현해 보았다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;변환을 원하는 파일의 NSURL 과 저장을 원하는 파일 path의 NSString 을 주면 해당 path에 저장이 되게 된다.&lt;/span&gt;&lt;/div&gt;&lt;pre class=&quot;brush:objc&quot; style=&quot;margin-top: 0px; margin-bottom: 1.5em; margin-left: 0.8em; padding: 0.4em; border-top: 1px dashed rgb(204, 204, 204); border-bottom: 1px dashed rgb(204, 204, 204);&quot;&gt;+ (void) convertVideoQtimeToMpeg4:(NSURL *) videoURL withPath:(NSString *)videoPath {
    AVURLAsset *avAsset = [AVURLAsset URLAssetWithURL:videoURL options:nil];
    
    NSArray *compatiblePresets = [AVAssetExportSession exportPresetsCompatibleWithAsset:avAsset];

    if ([compatiblePresets containsObject:AVAssetExportPresetLowQuality]) {
        AVAssetExportSession *exportSession = [[AVAssetExportSession alloc]initWithAsset:avAsset presetName:AVAssetExportPresetPassthrough];
        
        exportSession.outputURL = [NSURL fileURLWithPath:videoPath];
        
        exportSession.outputFileType = AVFileTypeMPEG4;
        
        CMTime start = CMTimeMakeWithSeconds(0.0, 600);
        
        CMTimeRange range = CMTimeRangeMake(start, [avAsset duration]);
        
        exportSession.timeRange = range;
        
        [exportSession exportAsynchronouslyWithCompletionHandler:^{
            
            switch ([exportSession status]) {
                    
                case AVAssetExportSessionStatusFailed:
                    NSLog(@&quot;Export failed: %@&quot;, [[exportSession error] localizedDescription]);
                    break;

               case AVAssetExportSessionStatusCompleted:
                     NSLog(@&quot;Export Success&quot;);
                     break;
                    
                case AVAssetExportSessionStatusCancelled:
                    
                    NSLog(@&quot;Export canceled&quot;);
                    
                    break;
                    
                default:
                    
                    break;
                    
            }
            
            [exportSession release];
            
        }];
        
    }
}

&lt;/pre&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이 중에서 초기화 부분이 중요한데 presetName 에&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;아래처럼 AVAssetExportPresetPassthrough 를 지정해 주어야 다른 포멧으로 변환이 가능하다&lt;/span&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;pre class=&quot;brush:objc&quot; style=&quot;margin-top: 0px; margin-bottom: 1.5em; margin-left: 0.8em; padding: 0.4em; border-top: 1px dashed rgb(204, 204, 204); border-bottom: 1px dashed rgb(204, 204, 204);&quot;&gt;[[AVAssetExportSession alloc]initWithAsset:avAsset presetName:AVAssetExportPresetPassthrough];
&lt;/pre&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;아래와 같이 AVAssetExportPresetMediumQuality 와 같은 파라미터를 주고 outputFileType를 AVFileTypeMPEG로 주게 되면 SIGNAL ABORT가 발생하고 죽게 된다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;pre class=&quot;brush:objc&quot; style=&quot;margin-top: 0px; margin-bottom: 1.5em; margin-left: 0.8em; padding: 0.4em; border-top: 1px dashed rgb(204, 204, 204); border-bottom: 1px dashed rgb(204, 204, 204);&quot;&gt; AVAssetExportSession *exportSession  = [[AVAssetExportSession alloc]initWithAsset:avAsset AVAssetExportPresetMediumQuality];

exportSession.outputFileType = AVFileTypeMPEG4;
&lt;/pre&gt;해당 AVAssetExportSession 의 지원되는 output 포멧을 확인하고 싶을때는 AVAssetExportSession 의 supportedFileTypes propert를 통해서 확인해 볼 수가 있다.&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div data-mce-style=&quot;text-align: left;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;추가로 유의 할 것은 이 방식은&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span data-mce-style=&quot;font-size: small; font-family: 굴림, arial; line-height: normal;&quot; style=&quot;margin: 0px; padding: 0px; font-size: small; font-family: 굴림, arial; line-height: normal;&quot;&gt;&lt;span color=&quot;#ff0000&quot; data-mce-style=&quot;color: #ff0000;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(255, 0, 0); font-size: 10pt;&quot;&gt;asynchronous&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이다.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div data-mce-style=&quot;text-align: left;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span data-mce-style=&quot;font-size: small; font-family: 굴림, arial; line-height: normal;&quot; style=&quot;margin: 0px; padding: 0px; font-size: small; font-family: 굴림, arial; line-height: normal;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div data-mce-style=&quot;text-align: left;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span data-mce-style=&quot;font-size: small; font-family: 굴림, arial; line-height: normal;&quot; style=&quot;margin: 0px; padding: 0px; font-size: 10pt; font-family: 굴림, arial; line-height: normal;&quot;&gt;그렇기 때문에 위와 같이 변환을 한 이후에 바로 이를 이용할수 있는것이 아니다&lt;/span&gt;&lt;/div&gt;&lt;pre class=&quot;brush:objc&quot; style=&quot;margin-top: 0px; margin-bottom: 1.5em; margin-left: 0.8em; padding: 0.4em; border-top: 1px dashed rgb(204, 204, 204); border-bottom: 1px dashed rgb(204, 204, 204); color: rgb(102, 102, 102);&quot;&gt; [exportSession exportAsynchronouslyWithCompletionHandler:^{
            
            switch ([exportSession status]) {
                    
                case AVAssetExportSessionStatusFailed:
                    NSLog(@&quot;Export failed: %@&quot;, [[exportSession error] localizedDescription]);
                    break;

               case AVAssetExportSessionStatusCompleted:
                     NSLog(@&quot;Export Success&quot;);
                     break;
                    
                case AVAssetExportSessionStatusCancelled:
                    
                    NSLog(@&quot;Export canceled&quot;);
                    
                    break;
                    
                default:
                    
                    break;
                    
            }
            
            [exportSession release];
            
        }];

&lt;/span&gt;&lt;/pre&gt;&lt;div data-mce-style=&quot;text-align: left;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;당황하지 않길 바란다 이 소스는 위에 있는 전체 소스의 일부분이다.&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div data-mce-style=&quot;text-align: left;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div data-mce-style=&quot;text-align: left;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;따라서 위 소스와 같이 exportAsynchronouslyWithCompletionHandler 를 등록하여 &quot;AVAssetExportSessionStatusCompleted&quot;를 확인해야 한다.&lt;/span&gt;&lt;/div&gt;&lt;div data-mce-style=&quot;text-align: left;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div data-mce-style=&quot;text-align: left;&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이를 꼭 유의해서 사용하기 바란다.&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>2013 이전/iOS개발</category>
      <author>하구루</author>
      <guid isPermaLink="true">https://hagulu.tistory.com/119</guid>
      <comments>https://hagulu.tistory.com/119#entry119comment</comments>
      <pubDate>Sat, 25 Feb 2017 16:06:24 +0900</pubDate>
    </item>
    <item>
      <title>[iPhone 개발] UIView 에 간단한 이벤트 적용하기</title>
      <link>https://hagulu.tistory.com/118</link>
      <description>&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 10pt;&quot;&gt;Button이 아닌 일반 UIView에 각종 터치 체스췌를 등록하는 방법이다.&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;iOS sdk4.0부터 지원되는것으로 알고 있다.&lt;/span&gt;&lt;/div&gt;&lt;pre class=&quot;brush:objc&quot; style=&quot;margin-top: 0px; margin-bottom: 1.5em; margin-left: 0.8em; padding: 0.4em; border-top: 1px dashed rgb(204, 204, 204); border-bottom: 1px dashed rgb(204, 204, 204); color: rgb(102, 102, 102);&quot;&gt;UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapPiece:)];
[piece addGestureRecognizer:tapGesture];
[tapGesture release], tapGesture = nil;
&lt;/pre&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;UITapGestureRecognizer 를 만들고 액션을 지정해주면 된다.&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 10pt;&quot;&gt;그리고 해당 뷰에 addGestureRecognizer 를통해 등록을 해주면 해당 view에 이벤트를 등록해 줄수 있다.&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;pre class=&quot;brush:objc&quot; style=&quot;margin-top: 0px; margin-bottom: 1.5em; margin-left: 0.8em; padding: 0.4em; border-top: 1px dashed rgb(204, 204, 204); border-bottom: 1px dashed rgb(204, 204, 204); color: rgb(102, 102, 102);&quot;&gt;UIPanGestureRecognizer
UILongPressGestureRecognizer
&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 10pt;&quot;&gt;위처럼 Tab이외에도 여러 이벤트가 있고 잘 활용하면 편하게 이벤트를 관리 할수 있을것이다&lt;/span&gt;&lt;/p&gt;</description>
      <category>2013 이전/iOS개발</category>
      <author>하구루</author>
      <guid isPermaLink="true">https://hagulu.tistory.com/118</guid>
      <comments>https://hagulu.tistory.com/118#entry118comment</comments>
      <pubDate>Sat, 25 Feb 2017 16:05:50 +0900</pubDate>
    </item>
    <item>
      <title>[iPhone 개발] CGImage의 Orientation</title>
      <link>https://hagulu.tistory.com/117</link>
      <description>&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 10pt;&quot;&gt;UIImage 의 CGImage를 &amp;nbsp;Quartz&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;s1&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 10pt;&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 10pt;&quot;&gt;D를 통해 그리다 보면 UIImage를 통해서 그릴때와 다르게&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;Orientation이 제대로 적용이 안되게 될것이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;섬네일을 만들기 위해서 이미지를 일정 크기로 축소를 하다가 발견한 것인데,&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;UIImage에는 imageOrientation라는 &amp;nbsp;property orientation 정보가 들어 있고, 그 정보를 통해서 CGImage를 회전하여 보여주게된다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;즉, CGImage 자체는 Orientation이 적용되지 않은 순수한 이미지 정보인것이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;때문에 CGImage를 이용할때 UIImage의 imageOrientation정보를 이용해 변경 해야한다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;imageOrientaion의 데이터 형은 다음과 같다 .&lt;/span&gt;&lt;/div&gt;&lt;pre class=&quot;brush:objc&quot; style=&quot;margin-top: 0px; margin-bottom: 1.5em; margin-left: 0.8em; padding: 0.4em; border-top: 1px dashed rgb(204, 204, 204); border-bottom: 1px dashed rgb(204, 204, 204); color: rgb(102, 102, 102);&quot;&gt;typedef enum {
   UIImageOrientationUp,
   UIImageOrientationDown,   // 180 deg rotation
   UIImageOrientationLeft,   // 90 deg CCW
   UIImageOrientationRight,   // 90 deg CW
   UIImageOrientationUpMirrored,    // as above but image mirrored along
   // other axis. horizontal flip
   UIImageOrientationDownMirrored,  // horizontal flip
   UIImageOrientationLeftMirrored,  // vertical flip
   UIImageOrientationRightMirrored, // vertical flip
} UIImageOrientation;&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 10pt;&quot;&gt;그리고 다음은 본인이 이용하기위해 UIImage와 줄이려는 이미지 사이즈를 통해 orientation이 적용된 CGImage로 만들어진 순수한 UIImage를 리턴하는 메소드 이다.&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;brush:objc&quot; style=&quot;margin-top: 0px; margin-bottom: 1.5em; margin-left: 0.8em; padding: 0.4em; border-top: 1px dashed rgb(204, 204, 204); border-bottom: 1px dashed rgb(204, 204, 204); color: rgb(102, 102, 102);&quot;&gt;-(UIImage*) imageWithOrientationInCGImage:(UIImage* )image withSize:(CGSize)imageNewSize{
    
    UIImageOrientation imageOrientation = image.imageOrientation;
    
    UIImage* resultImage;
    UIGraphicsBeginImageContext(CGSizeMake(imageNewSize.width, imageNewSize.height));
    CGContextRef context = UIGraphicsGetCurrentContext();
    switch (imageOrientation) {
        case  UIImageOrientationUp:
            CGContextTranslateCTM(context, 0, imageNewSize.height);
            CGContextScaleCTM(context, 1.0, -1.0);
            CGContextDrawImage(context, CGRectMake(0, 0, imageNewSize.width, imageNewSize.height), image.CGImage);
            break;
        case UIImageOrientationDown:
            CGContextDrawImage(context, CGRectMake(0, 0, imageNewSize.width, imageNewSize.height), image.CGImage);
            break;
        case UIImageOrientationLeft:
            CGContextTranslateCTM(context, imageNewSize.width, 0);
            CGContextScaleCTM(context, -1.0, 1.0);
            CGContextTranslateCTM(context, 0, imageNewSize.height);
            CGContextRotateCTM (context, -90 * M_PI / 180);
            CGContextDrawImage(context, CGRectMake(0, 0, imageNewSize.height, imageNewSize.width), image.CGImage);
            break;
        case UIImageOrientationRight:
            CGContextTranslateCTM(context, imageNewSize.width, 0);
            CGContextScaleCTM(context, -1.0, 1.0);
            CGContextTranslateCTM(context, imageNewSize.width, 0);
            CGContextRotateCTM (context, 90 * M_PI / 180);
            CGContextDrawImage(context, CGRectMake(0, 0, imageNewSize.height, imageNewSize.width), image.CGImage);
            break;
        default:
            
            break;
    }

    resultImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    
    return resultImage;
}
&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;UIImage에 있는 imageOrientation을 확인해서 CGImage를 변경하여 새로운 UIImage에 넣어주는 방식이다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>2013 이전/iOS개발</category>
      <author>하구루</author>
      <guid isPermaLink="true">https://hagulu.tistory.com/117</guid>
      <comments>https://hagulu.tistory.com/117#entry117comment</comments>
      <pubDate>Sat, 25 Feb 2017 16:05:07 +0900</pubDate>
    </item>
    <item>
      <title>[iPhone 개발] 이미지 일부 늘리기</title>
      <link>https://hagulu.tistory.com/116</link>
      <description>&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 10pt;&quot;&gt;iPhone을 탈옥해서 카카오톡이나 기본 문자앱의 말풍선을 바꿔 본사람은 알겠지만,&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이미지가 여러개로 쪼개져 있는것이 아니고 하나로만 이루어져 있다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;나도 이와 비슷한 앱을 개발하다 보니 이점이 궁금해 졌다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;검색능력의 부족으로 적당히 찾다가, 이미지를 직접 Quartz&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;s1&quot; style=&quot;margin: 0px; padding: 0px; font-size: 10pt;&quot;&gt;2D로 여러 등분을 내서 노가다로 진행을 했엇다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;margin: 0px; padding: 0px; font-size: 10pt;&quot;&gt;하지만 아무리 생각해도 이게 아니라고 생각하다가.. 결국엔 찾았다..&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;메소드 하나면 되는것을 너무 뻘짓을 햇구나 싶었다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;다른 사람이 나 같은 전차를 밟지 않기를 바라며 태그를 왕창 넣어서 포스팅 하려 한다.&lt;/span&gt;&lt;/div&gt;&lt;pre class=&quot;brush: objc&quot; style=&quot;margin-top: 0px; margin-bottom: 1.5em; margin-left: 0.8em; padding: 0.4em; border-top: 1px dashed rgb(204, 204, 204); border-bottom: 1px dashed rgb(204, 204, 204); color: rgb(102, 102, 102);&quot;&gt;UIImage* chatBubble = [[UIImage imageNamed:@&quot;chat_bubble.png&quot;]  stretchableImageWithLeftCapWidth:16 topCapHeight:16];
UIImageView* chatBubbleImaegView =[[UIImageView alloc] initWithImage:chatBubble];
&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 10pt;&quot;&gt;위와 같이 이미지에 stretchableImageWithLeftCapWidth:topCapHeight: 메소드를 통해서 각각 가로 세로의 늘어나야할 지점의 좌표를 지정해준면, 이 좌표가 지정된 UIImage를 리턴해 준다.&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;그리고 UIImage를 UIImageView에 지정하고 UIImageView의 frame을 통해 이미지 크기를 지정하면 자연스럽게 해당이미지가 지정한 좌표를 기준으로 늘어 나게 된다.&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>2013 이전/iOS개발</category>
      <author>하구루</author>
      <guid isPermaLink="true">https://hagulu.tistory.com/116</guid>
      <comments>https://hagulu.tistory.com/116#entry116comment</comments>
      <pubDate>Sat, 25 Feb 2017 16:04:21 +0900</pubDate>
    </item>
    <item>
      <title>[iPhone 개발] 키보드 변경에 따른 View 변환</title>
      <link>https://hagulu.tistory.com/115</link>
      <description>&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 10pt;&quot;&gt;iOS5로 업데이트 되면서 일본어 키보드에 보는것 처럼 입력을 보조하기 위한 &amp;nbsp;줄이 생겼다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br /&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: 240px; width: 240px; height: 451px;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/215F6D4558B12C3C1B&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F215F6D4558B12C3C1B&quot; width=&quot;240&quot; height=&quot;451&quot; filename=&quot;5402436558.png&quot; filemime=&quot;image/jpeg&quot; style=&quot;width: 240px; height: 451px;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div data-mce-style=&quot;text-align: left;&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;예전에는 키보드의 크기가 동일해서 따로 처리하지 않아도 될 부분이었으나,&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이번 업데이트로 인해 키보드 크기를 동적으로 대응해야 할 경우가 생기게 되었다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이를 대응하기 위한 키보드가 변경될때마다 높이를 확인할 수 있는 방법을 소개 하겠다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;일단 키보드가 변경될때 마다 호출되는 notification을 설정해 주어야 한다.&lt;/span&gt;&lt;/div&gt;&lt;pre class=&quot;brush: objc&quot; style=&quot;margin-top: 0px; margin-bottom: 1.5em; margin-left: 0.8em; padding: 0.4em; border-top: 1px dashed rgb(204, 204, 204); border-bottom: 1px dashed rgb(204, 204, 204); color: rgb(102, 102, 102);&quot;&gt;NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
[nc addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 10pt;&quot;&gt;보는것처럼 UIKeyboardWillShowNotification 를 등록해 주게 되는데, 이름에서 보는것처럼 키보드가 보일때, 발생하는 notification 이다.&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;이는 제일 처음 키보드가 보여질때 뿐 아니라 키보드의 언어가 바뀔때 또한 새로운 키보드가 보여지는 것이기 때문에 키보드가 바뀔때 마다 notification이 발생하게 된다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&amp;nbsp;그리고 selector에 설정한 method를 구현하면 되는데, 그 안에서 키보드의 Rect를 구하는 방법은 다음과 같다.&lt;/span&gt;&lt;pre class=&quot;brush: objc&quot; style=&quot;margin-top: 0px; margin-bottom: 1.5em; margin-left: 0.8em; padding: 0.4em; border-top: 1px dashed rgb(204, 204, 204); border-bottom: 1px dashed rgb(204, 204, 204);&quot;&gt;- (void)keyboardWillShow:(NSNotification *)notification {
    NSLog(@&quot;keyboard will show&quot;);
    
    CGRect t;
    [[notification.userInfo valueForKey:UIKeyboardFrameEndUserInfoKey] getValue: &amp;amp;t];
}
&lt;/pre&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;notification의 userInfo 로 부터 UIKeyboardFrameEndUserInfoKey의 값을 가져 오게 된다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;이를 이용하면 간단히 키보드의 위치의 변경에 따라 뷰를 동적으로 관리 할 수 있을것이다.&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>2013 이전/iOS개발</category>
      <author>하구루</author>
      <guid isPermaLink="true">https://hagulu.tistory.com/115</guid>
      <comments>https://hagulu.tistory.com/115#entry115comment</comments>
      <pubDate>Sat, 25 Feb 2017 16:03:52 +0900</pubDate>
    </item>
    <item>
      <title>Syntax highlighter 3.x 자동 줄 바꿈</title>
      <link>https://hagulu.tistory.com/114</link>
      <description>&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 11pt;&quot;&gt;블로그에 소스를 공유하다 보니 Syntax highlighter를 설치하여 사용하게 되었다.&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;그런데 최신 버젼인 3.x 을 설치하였는데, 다른곳에서 쉽게 볼수 있던, 자동 줄바꿈이 되지 않았다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;셋팅이 바꼇는지 확인해보고 googling을 해보았는데,&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;결론은..&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;3.x 대에서는 기본적으로 자동 줄바꿈이 되지 않고 가로 스크롤이 생겨 버린다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;issue로 등록되었는지는 확인 되진 않았지만 지금 나온 최신 버젼까지는 지원이 안되는것 으로 확인되었다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;그래서 결국 2.x 으로 설치하여 지금은 사용중이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;줄바꿈이 꼭 필요하다면 2.x 최신버젼을 사용해 보기 바란다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;단, 3.x 에는 2.x에서 문제 였던 선택할때 line 번호까지 선택되던 문제가 해결되어 있다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;따라서 버젼 선택은 사용자의 판단에 맡기겟다.&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>2013 이전/기타</category>
      <author>하구루</author>
      <guid isPermaLink="true">https://hagulu.tistory.com/114</guid>
      <comments>https://hagulu.tistory.com/114#entry114comment</comments>
      <pubDate>Sat, 25 Feb 2017 16:02:45 +0900</pubDate>
    </item>
    <item>
      <title>[iPhone 개발] audio 출력 변경하기</title>
      <link>https://hagulu.tistory.com/113</link>
      <description>&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 11pt;&quot;&gt;audio를 이용하는 앱을 만들다 보면 해당 audio를 &amp;nbsp;speaker 로 출력하고 싶을 수 있을 것이다.&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;그때 이용하는 것이 AudioSession 이다&lt;/span&gt;&lt;/div&gt;&lt;pre class=&quot;brush: objc&quot; style=&quot;margin-top: 0px; margin-bottom: 1.5em; margin-left: 0.8em; padding: 0.4em; border-top: 1px dashed rgb(204, 204, 204); border-bottom: 1px dashed rgb(204, 204, 204); color: rgb(102, 102, 102);&quot;&gt;UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute,sizeof (audioRouteOverride),&amp;amp;audioRouteOverride);
&lt;/pre&gt;&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;다음과 같이 해당 property를 바꿔주는 방식으로 speaker로 출력을 변경할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span class=&quot;s2&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;다시 일반 출력으로 바꾸고 싶을때는&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;kAudioSessionOverrideAudioRoute_Speaker 대신에,&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/p&gt;
&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;kAudioSessionOverrideAudioRoute_None 로 위와 같은 방식으로 property 를 새로 지정해 주면 된다.&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;audio player 객체와 관계 없이 어디서든 변경할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;당연히 AVFoundation.framework 를 추가해 주어야 하고,&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/p&gt;
&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;#import&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;lt;AVFoundation/AVFoundation.h&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;#import&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;lt;AudioToolbox/AudioToolbox.h&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;요 두가지가 import되어야 한다.&lt;/span&gt;&lt;/p&gt;</description>
      <category>2013 이전/iOS개발</category>
      <author>하구루</author>
      <guid isPermaLink="true">https://hagulu.tistory.com/113</guid>
      <comments>https://hagulu.tistory.com/113#entry113comment</comments>
      <pubDate>Sat, 25 Feb 2017 16:02:14 +0900</pubDate>
    </item>
    <item>
      <title>[iPhone 개발] UITableViewCell 위에 UIImageView에 roundCorner 적용</title>
      <link>https://hagulu.tistory.com/112</link>
      <description>&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 11pt;&quot;&gt;UITableViewCell 위에 View에 layer를 이용하여 cornerRadius를 적용하게되면&lt;/span&gt;&lt;br style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;스크롤 속도에 심각한 영향을 끼치게 된다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;포토샵으로 이미지를 만들어서 덮어버리는 꼼수를 이용하려 했으나, 나중을 대비해서 구글링하다가 방법을 찾고 적용해 본결과 스크롤에 영향을 끼치지 않고 해결할 수 있는 방법을 찾았다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;내 소스가 아니라 링크만 걸어 놓겠다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;a href=&quot;https://gist.github.com/62684&quot; target=&quot;_blank&quot; data-mce-href=&quot;https://gist.github.com/62684&quot; style=&quot;margin: 0px; padding: 0px; border-bottom-color: rgb(204, 51, 153); color: rgb(203, 137, 179) !important;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;https://gist.github.com/62684&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>2013 이전/iOS개발</category>
      <author>하구루</author>
      <guid isPermaLink="true">https://hagulu.tistory.com/112</guid>
      <comments>https://hagulu.tistory.com/112#entry112comment</comments>
      <pubDate>Sat, 25 Feb 2017 16:01:42 +0900</pubDate>
    </item>
    <item>
      <title>[iPhone 개발] UITableView 상단 공백 만들기</title>
      <link>https://hagulu.tistory.com/111</link>
      <description>&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 11pt;&quot;&gt;UITableView를 Customize 하다보면 상단에 공백이 필요한 경우가 있다.&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;frame에 point의 x 를 내리면 스크롤되는 부분또한 내려가서 UITableView자체에 공백을 주기는 힘들다&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;이럴때 이용할수 있는 방법이 바로 UITableView에 &amp;nbsp;(UIView*)&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span data-mce-style=&quot;font-family: Courier, Consolas, monospace; font-size: 14px; line-height: normal;&quot; style=&quot;margin: 0px; padding: 0px; font-family: Courier, Consolas, monospace; font-size: 11pt; line-height: normal;&quot;&gt;tableHeaderView라는 property에 공백의 UIView를 넣어 주는것이다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span data-mce-style=&quot;font-family: Courier, Consolas, monospace; font-size: 14px; line-height: normal;&quot; style=&quot;margin: 0px; padding: 0px; font-family: Courier, Consolas, monospace; font-size: 14px; line-height: normal;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span face=&quot;Courier, Consolas, monospace&quot; data-mce-style=&quot;font-family: Courier, Consolas, monospace;&quot; style=&quot;margin: 0px; padding: 0px; font-family: Courier, Consolas, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; data-mce-style=&quot;font-size: 14px; line-height: normal;&quot; style=&quot;margin: 0px; padding: 0px; font-size: 14px; line-height: normal;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;하단공백에는&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp;(UIView*) &amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; data-mce-style=&quot;font-family: Courier, Consolas, monospace; font-size: 14px; line-height: normal;&quot; style=&quot;margin: 0px; padding: 0px; font-family: Courier, Consolas, monospace; font-size: 11pt; line-height: normal;&quot;&gt;tableFooterView property를 이용하면 되겟다&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span face=&quot;Courier, Consolas, monospace&quot; data-mce-style=&quot;font-family: Courier, Consolas, monospace;&quot; style=&quot;margin: 0px; padding: 0px; font-family: Courier, Consolas, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; data-mce-style=&quot;font-size: 14px; line-height: normal;&quot; style=&quot;margin: 0px; padding: 0px; font-size: 14px; line-height: normal;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span face=&quot;Courier, Consolas, monospace&quot; data-mce-style=&quot;font-family: Courier, Consolas, monospace;&quot; style=&quot;margin: 0px; padding: 0px; font-family: Courier, Consolas, monospace;&quot;&gt;&lt;span data-mce-style=&quot;font-size: 14px; line-height: normal;&quot; style=&quot;margin: 0px; padding: 0px; font-size: 11pt; line-height: normal;&quot;&gt;그렇게 하면 스크롤을 유지하면서 UITableView에 공백을 줄 수 있다.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span face=&quot;Courier, Consolas, monospace&quot; data-mce-style=&quot;font-family: Courier, Consolas, monospace;&quot; style=&quot;margin: 0px; padding: 0px; font-family: Courier, Consolas, monospace;&quot;&gt;&lt;span data-mce-style=&quot;font-size: 14px; line-height: normal;&quot; style=&quot;margin: 0px; padding: 0px; font-size: 14px; line-height: normal;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span face=&quot;Courier, Consolas, monospace&quot; data-mce-style=&quot;font-family: Courier, Consolas, monospace;&quot; style=&quot;margin: 0px; padding: 0px; font-family: Courier, Consolas, monospace;&quot;&gt;&lt;span data-mce-style=&quot;font-size: 14px; line-height: normal;&quot; style=&quot;margin: 0px; padding: 0px; font-size: 11pt; line-height: normal;&quot;&gt;너무 간단한 방법이므로 예제소스는 생략하겠다.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>2013 이전/iOS개발</category>
      <author>하구루</author>
      <guid isPermaLink="true">https://hagulu.tistory.com/111</guid>
      <comments>https://hagulu.tistory.com/111#entry111comment</comments>
      <pubDate>Sat, 25 Feb 2017 16:01:04 +0900</pubDate>
    </item>
    <item>
      <title>[iPhone 개발] UIImageView 이벤트 처리</title>
      <link>https://hagulu.tistory.com/110</link>
      <description>&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 11pt;&quot;&gt;UIImageView에 touch 이벤트를 등록하려면&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&quot; userInteractionEnabled &quot; 이라는 property를 YES로 해주어야 한다.&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;대부분의 view들이 저 값이 default로 YES로 설정되어 있지만, &amp;nbsp;UIImageView는 무슨 이유에선지&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;default로 NO가 설정되어 있다.&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;따라서 UIImageView에 touch이벤트를 등록하고 싶다면 위 property를 변경해주어야 할것이다.&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;본인도 이거 하나때문에 온갖 뻘짓을 한기억이 있다.&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>2013 이전/iOS개발</category>
      <author>하구루</author>
      <guid isPermaLink="true">https://hagulu.tistory.com/110</guid>
      <comments>https://hagulu.tistory.com/110#entry110comment</comments>
      <pubDate>Sat, 25 Feb 2017 16:00:33 +0900</pubDate>
    </item>
    <item>
      <title>[iPhone 개발] 전화 번호 -(대쉬) 규칙 적용 함수</title>
      <link>https://hagulu.tistory.com/109</link>
      <description>&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br class=&quot;Apple-interchange-newline&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;voip 앱을 만들다가 필요에 의해서 직접 아이폰 전화 어플에 전화 번호 하나하나 넣는 노가다를 통해서 확인하여 기본적인 국내 통화의 대쉬 규칙을 리스팅하여 함수로 만들었다.&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/p&gt;
&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;규칙은 아래와 같다&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/p&gt;&lt;ul data-mce-style=&quot;color: #484848; font-family: Verdana, sans-serif; line-height: normal;&quot; style=&quot;margin: 1em 0px 1.5em 30px; padding: 0px; list-style: none; font-size: 12px; color: rgb(72, 72, 72); font-family: Verdana, sans-serif; line-height: normal;&quot;&gt;&lt;li style=&quot;margin: 0px; padding: 0px 0px 0px 20px; background: url(&amp;quot;./images/bullet_atricleUl.gif&amp;quot;) 0px 0.3em no-repeat;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;1로 시작하는 세자리까지 대쉬 없음&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;margin: 0px; padding: 0px 0px 0px 20px; background: url(&amp;quot;./images/bullet_atricleUl.gif&amp;quot;) 0px 0.3em no-repeat;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;2로 시작하는 번호는 1-3-4 1-4-4&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;margin: 0px; padding: 0px 0px 0px 20px; background: url(&amp;quot;./images/bullet_atricleUl.gif&amp;quot;) 0px 0.3em no-repeat;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;0으로 시작하는 번호&lt;/span&gt;&lt;ul style=&quot;margin: 1em 0px 1.5em 30px; padding: 0px; list-style: none;&quot;&gt;&lt;li style=&quot;margin: 0px; padding: 0px 0px 0px 20px; background: url(&amp;quot;./images/bullet_atricleUl.gif&amp;quot;) 0px 0.3em no-repeat;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;02로 시작하는 번호 2-3-4, 2-4-4&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;margin: 0px; padding: 0px 0px 0px 20px; background: url(&amp;quot;./images/bullet_atricleUl.gif&amp;quot;) 0px 0.3em no-repeat;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;013로 시작하는 번호 4-3-4, 4-4-4&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;margin: 0px; padding: 0px 0px 0px 20px; background: url(&amp;quot;./images/bullet_atricleUl.gif&amp;quot;) 0px 0.3em no-repeat;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;015로 시작하는 번호 5-4&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;margin: 0px; padding: 0px 0px 0px 20px; background: url(&amp;quot;./images/bullet_atricleUl.gif&amp;quot;) 0px 0.3em no-repeat;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;010, 011, 012, 016, 017, 018, 019로 시작하는 번호 3-3-4, 3-4-4&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;margin: 0px; padding: 0px 0px 0px 20px; background: url(&amp;quot;./images/bullet_atricleUl.gif&amp;quot;) 0px 0.3em no-repeat;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;그외에 0으로 시작하는 번호 3-3-4&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li style=&quot;margin: 0px; padding: 0px 0px 0px 20px; background: url(&amp;quot;./images/bullet_atricleUl.gif&amp;quot;) 0px 0.3em no-repeat;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;0또는 2외에 시작하지 않는 경우&lt;/span&gt;&lt;ul style=&quot;margin: 1em 0px 1.5em 30px; padding: 0px; list-style: none;&quot;&gt;&lt;li style=&quot;margin: 0px; padding: 0px 0px 0px 20px; background: url(&amp;quot;./images/bullet_atricleUl.gif&amp;quot;) 0px 0.3em no-repeat;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;15, 16, 17, 18, 19로 시작하는 경우 4-4&lt;/span&gt;&lt;ul style=&quot;margin: 1em 0px 1.5em 30px; padding: 0px; list-style: none;&quot;&gt;&lt;li style=&quot;margin: 0px; padding: 0px 0px 0px 20px; background: url(&amp;quot;./images/bullet_atricleUl.gif&amp;quot;) 0px 0.3em no-repeat;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;15를 제외한 나머지는 8자리 이상일떄 2-3-4- 2-4-4&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li style=&quot;margin: 0px; padding: 0px 0px 0px 20px; background: url(&amp;quot;./images/bullet_atricleUl.gif&amp;quot;) 0px 0.3em no-repeat;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;그외의 경우 2-3-4 2-4-4&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/p&gt;
&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;margin: 0px; padding: 0px; font-size: 11pt;&quot;&gt;소스는 아래와 같고 사용법은&lt;/span&gt;&lt;/p&gt;&lt;div data-mce-style=&quot;padding: 10px; background-color: #e4e4e4;&quot; style=&quot;margin: 0px; padding: 10px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px; background-color: rgb(228, 228, 228);&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;+ (NSString *) makePhoneNumber:(NSString*) phoneNumStr;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;/p&gt;
&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;요 메소드에 대쉬가 없는 전화 번호를 NSString 형태로 넣어주면 대쉬가 붙어서 NSString으로 return 해준다.&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Global이라는 class 안에서 구현되었다.&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/p&gt;
&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;// 뒷부분이 3-4 인경우 스트링 만들어줌&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;brush :objc&quot; style=&quot;margin-top: 0px; margin-bottom: 1.5em; margin-left: 0.8em; padding: 0.4em; border-top: 1px dashed rgb(204, 204, 204); border-bottom: 1px dashed rgb(204, 204, 204); color: rgb(102, 102, 102);&quot;&gt;
+ (NSString *) make34:(NSString *)phoneNumStr withHeadCodeCnt:(NSInteger) headCodeCnt  {
 
    if([phoneNumStr  length] &amp;gt; headCodeCnt &amp;amp;&amp;amp; [phoneNumStr  length] &amp;lt;= headCodeCnt + 3) {
 
        return [NSString stringWithFormat:@&quot;%@-%@&quot;, [phoneNumStr substringToIndex:headCodeCnt], [phoneNumStr substringFromIndex:headCodeCnt]];
 
    } else if ([phoneNumStr length] &amp;gt; headCodeCnt + 3 &amp;amp;&amp;amp; [phoneNumStr  length] &amp;lt; headCodeCnt + 8) {
 
        return [NSString stringWithFormat:@&quot;%@-%@-%@&quot;, [phoneNumStr substringToIndex:headCodeCnt], 

                [phoneNumStr substringWithRange:NSMakeRange(headCodeCnt, 3)], [phoneNumStr substringFromIndex:headCodeCnt + 3]];
 
    } else {
 
        return phoneNumStr;
 
    }
 
}
 



// 뒷부분이 3-4 4-4 인경우 스트링 만들어줌
 
+ (NSString *) make34_44 :(NSString *)phoneNumStr withHeadCodeCnt:(NSInteger) headCodeCnt{
 
    if([phoneNumStr  length] &amp;gt; headCodeCnt &amp;amp;&amp;amp; [phoneNumStr  length] &amp;lt; headCodeCnt + 8) {
 
        return [self make34:phoneNumStr withHeadCodeCnt:headCodeCnt];
 
    } else if ([phoneNumStr  length] == headCodeCnt + 8) { 

        return [NSString stringWithFormat:@&quot;%@-%@-%@&quot;, [phoneNumStr substringToIndex:headCodeCnt], 

                [phoneNumStr substringWithRange:NSMakeRange(headCodeCnt, 4)], [phoneNumStr substringFromIndex:headCodeCnt + 4]];
 
    } else {
 
        return phoneNumStr;
 
    }
 
}
 

// 두개로 
 
+ (NSString *) makeHalf:(NSString *)phoneNumStr withHeadCodeCnt:(NSInteger) headCodeCnt {
 
    
 
    if([phoneNumStr length] &amp;gt; headCodeCnt &amp;amp;&amp;amp; [phoneNumStr length] &amp;lt;= headCodeCnt + 4) {
 
        return [NSString stringWithFormat:@&quot;%@-%@&quot;, [phoneNumStr substringToIndex:headCodeCnt], [phoneNumStr substringFromIndex:headCodeCnt]];
 
    } else {
 
        return phoneNumStr;
 
    }
 
}
 
+ (NSString *) makePhoneNumber :(NSString *)phoneNumStr {
&amp;nbsp; &amp;nbsp;&amp;nbsp;
&amp;nbsp; &amp;nbsp; NSArray* specialCode334_344 = [[[NSArray alloc] initWithObjects:@&quot;010&quot;, @&quot;011&quot;, @&quot;012&quot;, @&quot;016&quot;, @&quot;017&quot;, @&quot;018&quot;, @&quot;019&quot;,&amp;nbsp;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; @&quot;070&quot;,nil] autorelease];
&amp;nbsp; &amp;nbsp;&amp;nbsp;
&amp;nbsp; &amp;nbsp; NSArray* specialCode44 = [[[NSArray alloc] initWithObjects:@&quot;15&quot;, @&quot;16&quot;, @&quot;17&quot;, @&quot;18&quot;, @&quot;19&quot;, nil] autorelease];
&amp;nbsp; &amp;nbsp;&amp;nbsp;
&amp;nbsp; &amp;nbsp; if([phoneNumStr hasPrefix:@&quot;1&quot;] &amp;amp;&amp;amp; [phoneNumStr length] &amp;lt;= 3) {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return phoneNumStr;
&amp;nbsp; &amp;nbsp; } else if([phoneNumStr hasPrefix:@&quot;2&quot;]) {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return [Global make34_44:phoneNumStr withHeadCodeCnt:1];
&amp;nbsp; &amp;nbsp; } else if([phoneNumStr hasPrefix:@&quot;0&quot;]) { // 0으로 시작되는 번호
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if([phoneNumStr length] &amp;gt; 2 &amp;amp;&amp;amp; [phoneNumStr hasPrefix:@&quot;02&quot;]) { &amp;nbsp; // 02로 시작되는 번호 2-3-4 2-4-4 규칙
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return [Global make34_44:phoneNumStr withHeadCodeCnt:2];
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else if([phoneNumStr length] &amp;gt; 3){ // 판별 코드가 3자리
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if([phoneNumStr hasPrefix:@&quot;014&quot;]) { // 014경우 아애 안한다
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return phoneNumStr;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else if([phoneNumStr hasPrefix:@&quot;013&quot;]) { // 013경우 4-3-4 4-4-4
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return [Global make34_44:phoneNumStr withHeadCodeCnt:4];
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else if([phoneNumStr hasPrefix:@&quot;015&quot;]) { // 015경우 5-4
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return [Global makeHalf:phoneNumStr withHeadCodeCnt:5];
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else if([specialCode334_344 indexOfObject:[phoneNumStr substringToIndex:3]] != NSNotFound) { // 3-3-4 3-4-4 규칙
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return [Global make34_44:phoneNumStr withHeadCodeCnt:3];
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return [Global make34:phoneNumStr withHeadCodeCnt:3];
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return phoneNumStr; &amp;nbsp;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&amp;nbsp; &amp;nbsp; } else { // 그외의 숫자로 시작할경우&amp;nbsp;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if([phoneNumStr length] &amp;gt; 2) {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if([specialCode44 indexOfObject:[phoneNumStr substringToIndex:2]] != NSNotFound) { // 4-4 규칙&amp;nbsp;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if(![phoneNumStr hasPrefix:@&quot;15&quot;] &amp;amp;&amp;amp; [phoneNumStr length] &amp;gt; 8) { // 15 로 시작하는경우가 아니면 &amp;nbsp;8자리 이상 다시 처리
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return [Global make34_44:phoneNumStr withHeadCodeCnt:2];
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return [Global makeHalf:phoneNumStr withHeadCodeCnt:4];
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else { // 두개로 나눠지는 경우가 아닌 경우 대부분
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return [Global make34_44:phoneNumStr withHeadCodeCnt:2];
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; } else {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return phoneNumStr;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;
&amp;nbsp; &amp;nbsp; }
}
&lt;/pre&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>2013 이전/iOS개발</category>
      <author>하구루</author>
      <guid isPermaLink="true">https://hagulu.tistory.com/109</guid>
      <comments>https://hagulu.tistory.com/109#entry109comment</comments>
      <pubDate>Sat, 25 Feb 2017 15:59:52 +0900</pubDate>
    </item>
    <item>
      <title>[iPhone 개발] UITableViewCell 이벤트관리 메소드</title>
      <link>https://hagulu.tistory.com/108</link>
      <description>&lt;p&gt;UITableView를 사용하다보면 각 셀에 이벤트를 cell단위로 관리하고 싶을 것이다.&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;이를 위함 메소드들이 UITableViewCell에 있다.&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div data-mce-style=&quot;padding: 10px; background-color: #e4e4e4;&quot; style=&quot;margin: 0px; padding: 10px; background-color: rgb(228, 228, 228);&quot;&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;- (&lt;span class=&quot;s1&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;void&lt;/span&gt;)setSelected:(&lt;span class=&quot;s1&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;BOOL&lt;/span&gt;)selected animated:(&lt;span class=&quot;s1&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;BOOL&lt;/span&gt;)animated {&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px;&quot;&gt;[&lt;span class=&quot;s1&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;super&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;s2&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;setEditing&lt;/span&gt;:editing&amp;nbsp;&lt;span class=&quot;s2&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;animated&lt;/span&gt;:animated];&lt;/p&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;if(selected) {&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&amp;nbsp;// 선택 되었을때&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;} else {&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;// 선택 되지 않앗을때&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;}&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;}&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;해당셀의 선택 여부에 따라 호출되는 메소드로 selected 를 통해서 선택 되었을때와 안 되었을때를 구분하여 cell을 관리 할수 있다.&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;참고로 selected는 tap이 모두 이루어 진게 되는 상태를 말한다.&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;따라서 Highlight &amp;nbsp;를 처리하는 메소드가 따로 있다.&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;div data-mce-style=&quot;padding: 10px; background-color: #e4e4e4;&quot; style=&quot;margin: 0px; padding: 10px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px; background-color: rgb(228, 228, 228);&quot;&gt;- (&lt;span class=&quot;s1&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;void&lt;/span&gt;)setHighlighted:(&lt;span class=&quot;s1&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;BOOL&lt;/span&gt;)highlighted animated:(&lt;span class=&quot;s1&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;BOOL&lt;/span&gt;)animated&lt;/div&gt;&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;사용법은 위와 같다.&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;그리고 테이블 삭제를 할때 오른쪽에 삭제 버튼이 생기는 edit 상태일떄를 처리하는 메소드도 제공한다&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/p&gt;&lt;div data-mce-style=&quot;padding: 10px; background-color: #e4e4e4;&quot; style=&quot;margin: 0px; padding: 10px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px; background-color: rgb(228, 228, 228);&quot;&gt;- (&lt;span class=&quot;s1&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;void&lt;/span&gt;)setEditing:(&lt;span class=&quot;s1&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;BOOL&lt;/span&gt;)editing animated:(&lt;span class=&quot;s1&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;BOOL&lt;/span&gt;)animated&lt;/div&gt;&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;이 세개의 메소드는 보는것처럼 쉽게 이용할수 있다.&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;그외에 tableView에서 여러 셀을 동시에 편집하는 화면에서 왼쪽 (-) 처럼 생긴 것을 터치했을때 오른쪽에 삭제 버튼이 나타나는 상황을 캐취하는 메소드 또한 있다.&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;무슨말일까.. 저위에말.. ㅋㅋ&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/p&gt;&lt;div data-mce-style=&quot;padding: 10px; background-color: #e4e4e4;&quot; style=&quot;margin: 0px; padding: 10px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px; background-color: rgb(228, 228, 228);&quot;&gt;&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px;&quot;&gt;- (&lt;span class=&quot;s1&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;void&lt;/span&gt;)didTransitionToState:(&lt;span class=&quot;s2&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;UITableViewCellStateMask&lt;/span&gt;)state {&lt;/p&gt;&lt;p class=&quot;p2&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px;&quot;&gt;&lt;span class=&quot;s3&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;&amp;nbsp; &amp;nbsp; [&lt;/span&gt;&lt;span class=&quot;s1&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;super&lt;/span&gt;didTransitionToState&lt;span class=&quot;s3&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;:state];&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p3&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/p&gt;&lt;p class=&quot;p2&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px;&quot;&gt;&lt;span class=&quot;s3&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;s1&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;s3&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;(state &amp;amp;&amp;nbsp;&lt;/span&gt;UITableViewCellStateShowingDeleteConfirmationMask&lt;span class=&quot;s3&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;) {&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px;&quot;&gt;&amp;nbsp; // 삭제버튼이 나타 낫을때&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px;&quot;&gt;&amp;nbsp; &amp;nbsp; }&amp;nbsp;&lt;span class=&quot;s1&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;else&lt;/span&gt;&amp;nbsp;{&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px;&quot;&gt;&amp;nbsp;// 삭제버튼이 없을때&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px;&quot;&gt;}&lt;/p&gt;&lt;/div&gt;&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;셀의 변화가 일어 낫을때 불리는 메소드로 의심이 되는데 굳이 상세히짚고 넘어갈 마음은 없다.&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;s3&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;(state &amp;amp;&amp;nbsp;&lt;/span&gt;UITableViewCellStateShowingDeleteConfirmationMask&lt;span class=&quot;s3&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;) &amp;nbsp;이부분이 어떤 원리로 작동하는 지는 모르겠다.. 구글링과 나의 껴 마추기로 찾은 조합이니 다른데서 오작동을 할가능성은 다분하다.&amp;nbsp;&lt;/span&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span class=&quot;s3&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;span class=&quot;s3&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;이정도만 활용해도 tableView의 셀의 이벤트에 대응할수 있을것이다.&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;span class=&quot;s3&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>2013 이전/iOS개발</category>
      <author>하구루</author>
      <guid isPermaLink="true">https://hagulu.tistory.com/108</guid>
      <comments>https://hagulu.tistory.com/108#entry108comment</comments>
      <pubDate>Sat, 25 Feb 2017 15:59:09 +0900</pubDate>
    </item>
    <item>
      <title>[iPhone 개발] superview 혹은 superview 의 ViewController object 얻어 오기</title>
      <link>https://hagulu.tistory.com/107</link>
      <description>&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;UIView를 따로 빼서 사용하다 보면 superview에 접근해야 하는 일이 자주 발생한다 .&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;이때 간단히&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;blockquote style=&quot;margin: 1.7em auto; padding: 0px 10px; width: 835.188px; color: rgb(80, 180, 202); border-left-width: 2px; border-left-color: rgb(221, 221, 221);&quot;&gt;self.superview&lt;/blockquote&gt;를 통해서 object를 얻어와 작업을 할수 있다.&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;또한, superview의 ViewController에 접근하고 싶다면&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;blockquote style=&quot;margin: 1.7em auto; padding: 0px 10px; width: 835.188px; color: rgb(80, 180, 202); border-left-width: 2px; border-left-color: rgb(221, 221, 221);&quot;&gt;&lt;p class=&quot;p1&quot; style=&quot;margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding: 0px;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s2&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;s1&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;s3&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;superview&lt;/span&gt;nextResponder&lt;span class=&quot;s1&quot; style=&quot;margin: 0px; padding: 0px;&quot;&gt;]&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;를 통해서 쉽게 object를 얻어 올수 있다.&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;이때 superview는 viewController의 view 이어야 한다.&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: Helvetica, AppleGothic, Gulim, 굴림, sans-serif; font-size: 12px;&quot;&gt;제대로 참조되지 않는다면 nextResponder에대해서 알아보고, 다른 방법을 찾아 봐야 할것이다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>2013 이전/iOS개발</category>
      <author>하구루</author>
      <guid isPermaLink="true">https://hagulu.tistory.com/107</guid>
      <comments>https://hagulu.tistory.com/107#entry107comment</comments>
      <pubDate>Sat, 25 Feb 2017 15:58:20 +0900</pubDate>
    </item>
    <item>
      <title>이전 합니다.</title>
      <link>https://hagulu.tistory.com/2</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;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;시작 합니다.&amp;nbsp;&lt;/p&gt;</description>
      <category>끄적끄적</category>
      <author>하구루</author>
      <guid isPermaLink="true">https://hagulu.tistory.com/2</guid>
      <comments>https://hagulu.tistory.com/2#entry2comment</comments>
      <pubDate>Fri, 23 Dec 2016 13:03:36 +0900</pubDate>
    </item>
  </channel>
</rss>