<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8479945912659192531</id><updated>2012-02-20T16:51:37.610+09:00</updated><category term='UV'/><category term='더 문'/><category term='adhoc'/><category term='앱스토어 개발'/><category term='달'/><category term='moon'/><category term='C 언어'/><category term='C'/><category term='World of Warcraft'/><category term='objective-c 강좌'/><category term='SF'/><category term='Dan Ariely'/><category term='iphone 개발'/><category term='아이폰 개발'/><category term='Apple'/><category term='C 언어 튜토리얼'/><category term='learn for objective-c'/><category term='cocoa'/><category term='starcraft'/><category term='Adsense'/><category term='objective-c'/><category term='Steve Jobs'/><category term='앱스토어 런칭 팁'/><category term='Object-C'/><category term='TED.com'/><category term='스타크래프트2'/><category term='C 언어 기초'/><category term='크리스마스'/><category term='상식밖의 경제학'/><category term='최대동시접속자'/><category term='E-book'/><category term='영화감상'/><category term='App'/><category term='신규 어플리케이션 상위 차지하기'/><category term='가차아이템'/><category term='아이폰 어플리케이션'/><category term='WoW'/><category term='업데이트'/><category term='앱 개발'/><category term='부분유료화'/><category term='objective-c 튜토리얼'/><category term='스타크래프트'/><category term='eCPM'/><category term='X-code'/><category term='KPI'/><category term='AFS'/><category term='C언어'/><category term='mcu'/><category term='온라인게임 지표'/><category term='Predictably Irrational'/><category term='Thinking Games'/><category term='Cocoa Dev Central'/><category term='앱스토어'/><category term='온라인게임'/><category term='아이폰 기능'/><category term='MTS'/><category term='kindle'/><category term='NRU'/><category term='Approved for sale'/><category term='iPhone'/><category term='아이폰 어플 마케팅'/><category term='Scott Stevenson'/><category term='아이폰 활용'/><category term='아이폰 개발 초보'/><category term='any Others'/><category term='카드'/><category term='유료아이템'/><category term='iPad'/><category term='starcraft2'/><category term='아이폰'/><category term='AD'/><category term='top 100'/><title type='text'>snow house</title><subtitle type='html'>Game Designer snowrimp 입니다.
머릿속 생각을 정리하고 공유하기 위한 블로그 입니다. : )</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://snowhouse-textcube.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8479945912659192531/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://snowhouse-textcube.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>bloodforest</name><uri>http://www.blogger.com/profile/13414456106205156837</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>15</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8479945912659192531.post-5021488334333976370</id><published>2010-06-24T17:08:00.000+09:00</published><updated>2011-01-29T22:34:07.685+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='World of Warcraft'/><category scheme='http://www.blogger.com/atom/ns#' term='스타크래프트2'/><category scheme='http://www.blogger.com/atom/ns#' term='스타크래프트'/><category scheme='http://www.blogger.com/atom/ns#' term='Thinking Games'/><category scheme='http://www.blogger.com/atom/ns#' term='starcraft'/><category scheme='http://www.blogger.com/atom/ns#' term='WoW'/><category scheme='http://www.blogger.com/atom/ns#' term='starcraft2'/><title type='text'>스타2에 WOW의 끼워팔기가 시작된다?</title><content type='html'>&lt;script src='http://ss.textcube.com/service/blog/script/blogger.js' type='text/javascript'&gt;&lt;/script&gt;&lt;div&gt;블리자드가 스타크래프트의 과금제도를 발표 했습니다.&lt;/div&gt;&lt;div&gt;우선 기사를 보시죠.&lt;/div&gt;&lt;a href="http://thisisgame.com/board/view.php?id=422786&amp;amp;category=102&amp;amp;subcategory="&gt;http://thisisgame.com/board/view.php?id=422786&amp;amp;category=102&amp;amp;subcategory=&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div class="imageblock center" style="text-align: center; clear: both;"&gt;&lt;img src="http://ss.textcube.com/blog/3/33793/attach/XPibU1Dv6T.jpg" style="width:530px;height:347px;" alt=""  /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;게임 디자이너로써 전 일단 이 정책에 박수를 보냅니다. 짝짝짝!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;이는, 블리자드가 스타크래프가 실패하더라도 와우로 빠져들게 만들겠다는 상술이 있기 때문입니다. (혹시 아직도 상술이라는 말이 부정적인 말이라고 오해하시는 게임디자이너분이 계시진 않겠지요?)&lt;/div&gt;&lt;div&gt;블리자드는 World of Warcraft 라는 컨텐츠가 이미 성숙기에 접어들었으며 게임의 재미가 검증되어 있는 컨텐츠를 확보하고 있기 때문에 가능합니다.&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;/div&gt;&lt;div&gt;&lt;div style="padding:10px;background-color:#d3eeca;border:1px solid #b7e0a9;"&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 굴림, 돋움; color: rgb(96, 96, 96); -webkit-border-horizontal-spacing: 5px; -webkit-border-vertical-spacing: 5px; "&gt;&lt;font color="#005600"&gt;&lt;strong&gt;※ 한국에서&lt;span lang="EN-US"&gt;&amp;nbsp;&amp;lt;&lt;/span&gt;스타크래프트&lt;span lang="EN-US"&gt;&amp;nbsp;2&amp;gt;&lt;/span&gt;를 즐길 수 있는 방법&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 굴림, 돋움; color: rgb(96, 96, 96); -webkit-border-horizontal-spacing: 5px; -webkit-border-vertical-spacing: 5px; "&gt;&lt;span lang="EN-US"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 굴림, 돋움; color: rgb(96, 96, 96); -webkit-border-horizontal-spacing: 5px; -webkit-border-vertical-spacing: 5px; "&gt;&lt;b&gt;&lt;font color="#005600"&gt;&lt;span&gt;■&lt;/span&gt;&lt;span lang="EN-US"&gt;&amp;nbsp;&amp;lt;&lt;/span&gt;스타크래프트&lt;span lang="EN-US"&gt;&amp;nbsp;2: &lt;/span&gt;자유의 날개&lt;span lang="EN-US"&gt;&amp;gt; &lt;/span&gt;직접 구매 (온라인 다운로드)&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 굴림, 돋움; color: rgb(96, 96, 96); -webkit-border-horizontal-spacing: 5px; -webkit-border-vertical-spacing: 5px; "&gt;&lt;font color="#005600"&gt;&lt;span lang="EN-US"&gt;1. 69,000 &lt;/span&gt;원에 무제한 이용권&lt;span lang="EN-US"&gt;&amp;nbsp;&lt;/span&gt;구입&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 굴림, 돋움; color: rgb(96, 96, 96); -webkit-border-horizontal-spacing: 5px; -webkit-border-vertical-spacing: 5px; "&gt;&lt;font color="#005600"&gt;&lt;span lang="EN-US"&gt;2. 9,900 &lt;/span&gt;원에&lt;span lang="EN-US"&gt;&amp;nbsp;30&lt;/span&gt;일 이용권 구입&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 굴림, 돋움; color: rgb(96, 96, 96); -webkit-border-horizontal-spacing: 5px; -webkit-border-vertical-spacing: 5px; "&gt;&lt;font color="#005600"&gt;&lt;span lang="EN-US"&gt;3. 2,000 &lt;/span&gt;원에&lt;span lang="EN-US"&gt;&amp;nbsp;1&lt;/span&gt;일 이용권 구입&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 굴림, 돋움; color: rgb(96, 96, 96); -webkit-border-horizontal-spacing: 5px; -webkit-border-vertical-spacing: 5px; "&gt;&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;font color="#005600"&gt;&amp;nbsp;&lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 굴림, 돋움; color: rgb(96, 96, 96); -webkit-border-horizontal-spacing: 5px; -webkit-border-vertical-spacing: 5px; "&gt;&lt;b&gt;&lt;font color="#005600"&gt;&lt;span&gt;■&lt;/span&gt;&lt;span lang="EN-US"&gt;&amp;nbsp;&amp;lt;&lt;/span&gt;월드 오브 워크래프트&lt;span lang="EN-US"&gt;&amp;gt; &lt;/span&gt;정액제 구매&lt;span lang="EN-US"&gt;&amp;nbsp;(&lt;/span&gt;스타&lt;span lang="EN-US"&gt;2 &lt;/span&gt;별도 구매 필요 없음&lt;span lang="EN-US"&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 굴림, 돋움; color: rgb(96, 96, 96); -webkit-border-horizontal-spacing: 5px; -webkit-border-vertical-spacing: 5px; "&gt;&lt;font color="#005600"&gt;&lt;span lang="EN-US"&gt;1. 7&lt;/span&gt;일권&lt;span lang="EN-US"&gt;(7,040 &lt;/span&gt;원&lt;span lang="EN-US"&gt;) &lt;/span&gt;구입하면&lt;span lang="EN-US"&gt;&amp;nbsp;7&lt;/span&gt;일 동안&lt;span lang="EN-US"&gt;&amp;nbsp;&amp;lt;&lt;/span&gt;스타크래프트&lt;span lang="EN-US"&gt;&amp;nbsp;2&amp;gt; &lt;/span&gt;공짜 이용&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 굴림, 돋움; color: rgb(96, 96, 96); -webkit-border-horizontal-spacing: 5px; -webkit-border-vertical-spacing: 5px; "&gt;&lt;font color="#005600"&gt;&lt;span lang="EN-US"&gt;2. 30&lt;/span&gt;일권&lt;span lang="EN-US"&gt;(19,800 &lt;/span&gt;원&lt;span lang="EN-US"&gt;) &lt;/span&gt;구입하면&lt;span lang="EN-US"&gt;&amp;nbsp;30&lt;/span&gt;일 동안&lt;span lang="EN-US"&gt;&amp;nbsp;&amp;lt;&lt;/span&gt;스타크래프트&lt;span lang="EN-US"&gt;&amp;nbsp;2&amp;gt; &lt;/span&gt;공짜 이용&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 0pt; margin-left: 0cm; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 굴림, 돋움; color: rgb(96, 96, 96); -webkit-border-horizontal-spacing: 5px; -webkit-border-vertical-spacing: 5px; "&gt;&lt;font color="#005600"&gt;&lt;span lang="EN-US"&gt;3. 90&lt;/span&gt;일권&lt;span lang="EN-US"&gt;(47,520 &lt;/span&gt;원&lt;span lang="EN-US"&gt;) &lt;/span&gt;구입하면&lt;span lang="EN-US"&gt;&amp;nbsp;90&lt;/span&gt;일 동안&lt;span lang="EN-US"&gt;&amp;nbsp;&amp;lt;&lt;/span&gt;스타크래프트&lt;span lang="EN-US"&gt;&amp;nbsp;2&amp;gt; &lt;/span&gt;공짜 이용&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;여기서 눈여겨 봐야 할 건 스타2의 무제한 이용권 가격, 스타2의 기간제 이용가격과 와우의 기간제 이용권 가격입니다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;저는 스타2를 기다려 왔습니다. 어디한번 요금제를 볼까요?&lt;/div&gt;&lt;div&gt;우선, 스타2의 무제한 이용권 가격은 6.9만원 입니다. 평범한 직장인인 저로서는 선뜻 구매하기에는 부담스러운 가격이네요, 그래서 기간제 요금제를 살펴보니 0.99만원 입니다. 스타2만 한달동안 이용한다고 생각하기엔 역시 살짝 부담스러운 가격입니다. 그런데 잘 살표보니, 1.98만원인 와우 30일 이용권을 구매하면 스타2도 이용할 수 있다고 합니다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;와우를 플레이하진 않지만 익히 와우의 명성을 들어서 알고있고 추천받았던 저는 갑자기 스타2를 함께 이용할 수 있는 와우 30일 이용권이 매우 싸게 느껴집니다. 결국 와우 30일 권의 구매를 놓고 고민하게 될 것입니다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;이는 실제로, 와우를 이미 즐길만큼 즐겼던 유저보다는 와우를 안해봤던 유저에게 두가지 이유에서 치명적일 수 있습니다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="padding:10px;background-color:#d0ff9d;border:1px solid #d0ff9d;"&gt;&lt;div&gt;첫 번째 경우.&lt;/div&gt;&lt;div&gt;스타2와 와우를 즐길 수 있는 이용권을 구매한 유저가 실제로 와우를 하지 않더라도 스타2를 약 만원 더주고 플레이하게 되었습니다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;두 번째 경우.&lt;/div&gt;&lt;div&gt;스타2는 곁다리가 되고, 와우에 빠져서 매월 1.98만원을 지르게 됩니다. 아마도 와우의 컨텐츠를 모두 소비하려면 적어도 1.98 * 12개월 만큼을 지불하게 될 것입니다. 이는 스타2를 12개월 동안 하게될 가능성 보다 더 크며, 블리자드에게 가져다줄 수익역시 적어도 2배 이상이 됩니다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;font class="Apple-style-span" color="#FF0000"&gt;&lt;b&gt;결국 와우에 스타2를 끼워서 산 셈이지요. 그것도 와우에 실증이 나고 스타2를 즐기려고 할 땐 결국 스타2 무한 패키지의 구매에 대한 고민을 다시 해야 한다는 놀라운 상황에 봉착하게 됩니다.&lt;/b&gt;&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;결론은 물론 가정입니다만, 아마도 블리자드의 속내는 이와 비슷할것입니다.&lt;/div&gt;&lt;div&gt;스타2의 대박을 점칠수 없는 상태에서 이와 같은 전략은 블리자드가 영리한 판매자라고 할 수 있겠군요. 물론, 게임을 즐기는 유저도 영리해져야 겠습니다. : )&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8479945912659192531-5021488334333976370?l=snowhouse-textcube.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snowhouse-textcube.blogspot.com/feeds/5021488334333976370/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://snowhouse-textcube.blogspot.com/2010/06/%EC%8A%A4%ED%83%802%EC%97%90-wow%EC%9D%98-%EB%81%BC%EC%9B%8C%ED%8C%94%EA%B8%B0%EA%B0%80-%EC%8B%9C%EC%9E%91%EB%90%9C%EB%8B%A4.html#comment-form' title='2개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8479945912659192531/posts/default/5021488334333976370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8479945912659192531/posts/default/5021488334333976370'/><link rel='alternate' type='text/html' href='http://snowhouse-textcube.blogspot.com/2010/06/%EC%8A%A4%ED%83%802%EC%97%90-wow%EC%9D%98-%EB%81%BC%EC%9B%8C%ED%8C%94%EA%B8%B0%EA%B0%80-%EC%8B%9C%EC%9E%91%EB%90%9C%EB%8B%A4.html' title='스타2에 WOW의 끼워팔기가 시작된다?'/><author><name>bloodforest</name><uri>http://www.blogger.com/profile/13414456106205156837</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8479945912659192531.post-4250184602666642341</id><published>2010-06-15T15:30:00.000+09:00</published><updated>2011-01-29T22:34:06.849+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eCPM'/><category scheme='http://www.blogger.com/atom/ns#' term='AD'/><category scheme='http://www.blogger.com/atom/ns#' term='any Others'/><category scheme='http://www.blogger.com/atom/ns#' term='Adsense'/><title type='text'>AdSense : eCPM 정확히 뭔가요?</title><content type='html'>&lt;div&gt;&lt;div style="padding:10px;background-color:#d0ff9d;border:1px solid #d0ff9d;"&gt;&lt;div&gt;정말 오랜만의 포스팅 입니다. : )&lt;/div&gt;&lt;div&gt;블로그를 자주 찾아주시는 분들에게는 죄송한 마음도 듭니다.&lt;/div&gt;&lt;div&gt;그래서 제 블로그를 찾아주시는 분들에게 유용할만한 내용을 번역해 드리고자 합니다.&lt;/div&gt;&lt;div&gt;이번 포스팅의 주제는 &lt;font class="Apple-style-span" color="#FF0000"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;eCPM &lt;/span&gt;&lt;/b&gt;&lt;/font&gt;입니다.&lt;/div&gt;&lt;div&gt;&lt;a href="https://www.google.com/adsense/login/ko/?sourceid=aso&amp;amp;subid=direct_adsense&amp;amp;medium=redirect_adsense&amp;amp;gsessionid=gp-RqJZzQwuuzouEzEyS6w" target="_blank"&gt;Adsense&lt;/a&gt;나 &lt;a href="http://www.admob.com" target="_blank"&gt;Admob&lt;/a&gt;&amp;nbsp;등의 광고를 홈페이지나, 모바일 어플에 노출시켜보신 분들은 한번 쯤 궁금해 하셨을 것 같습니다.&lt;/div&gt;&lt;div&gt;또한, 앞으로 계획이 있는 분들에게도 국내에는 자료가 별로 없어서 유용한 정보가 되리라 생각됩니다.&lt;/div&gt;&lt;/div&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;span class="Apple-style-span" style="font-family: Arial, sans-serif; line-height: 29px; font-size: 21px; color: rgb(115, 175, 223); "&gt;eCPM -- &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Arial, sans-serif; line-height: 29px; font-size: 21px; color: rgb(115, 175, 223); "&gt;&lt;b&gt;정확히 뭔가요?&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, sans-serif; line-height: normal; font-size: 13px; color: rgb(51, 51, 51); "&gt;&lt;div class="post-body"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="post-body"&gt;아마도 AdSense 리포트의 리스트안에서 봤을 것입니다. 이것의 의미는 "effective cost per thousand impressions." 인데, 그럼 이게 어떻게 계산되는지 궁금해 할것 같습니다.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://adsense.blogspot.com/uploaded_images/eCPM2-708913.JPG"&gt;&lt;img src="http://adsense.blogspot.com/uploaded_images/eCPM2-705842.JPG" border="0" alt="" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; cursor: pointer; "&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="post-body"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="post-body"&gt;eCPM은 총 수익에서 총 노출횟수를 나눈뒤 1,000을 곱한 수치 입니다. 이 수치로 다양한 종류의 광고의 효율을 나타낼 수 있습니다. 그리고 이것을 실험하고 싶을때 eCPM을 통해서 결과를 확인할 수 있습니다.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://adsense.blogspot.com/uploaded_images/eCPM-747728.JPG"&gt;&lt;img src="http://adsense.blogspot.com/uploaded_images/eCPM-746809.JPG" border="0" alt="" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; cursor: pointer; "&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="post-body"&gt;하지만, 여러분들의 사이트가 실험샘플을 얻기에 너무 적은횟수 노출될때는 어떻게 할까요? 이렇게 작은 사이트라도 eCPM은 광고 효율을 측정하기에 매우 유용하게 이용됩니다.&lt;br /&gt;&lt;/div&gt;&lt;div class="post-body"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="post-body"&gt;예를들면, Blue와 Red의 이름을 가진 두 채널을 가지고 있다고 상상 해봅시다. 테스트동안에 Blue 채널은 370회 페이지가 노출되었고 $1.48 의 총 수익이 발생 했습니다. 레드채널은 187회 페이지가 노출되었고 같은 기간동안 $0.97 의 총 수익이 발생 했습니다. 이 두가지 결과를 좀더 쉽게 비교하기 위해 우리는 eCPM을 계산 합니다. 1000번의 노출동안 얼마나 수익을 낼 수 있는지 추측한 eCPM 결과 값은 Blue가 $4.00 Red가 $5.18 임을 알아냈습니다.&lt;br /&gt;&lt;/div&gt;&lt;div class="post-body"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="post-body"&gt;이것은 Blue가 1000회의 노출 동안 거의 $4.00의 수익을 낼 수 있음을 의미합니다. 하지만 Red의 경우 1000회의 노출동안 약 $5.18의 수익을 낼 수 있을 것입니다. 결국 우리의 샘플 값은 충분한 역할을 했으며, 홈페이지에 1회의 노출동안 더 많은 수익을 낼 수 있는 Red 채널의 광고로 교체할 것입니다.&lt;/div&gt;&lt;div class="post-body"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="post-body"&gt;&lt;div style="padding:10px;background-color:#d0ff9d;border:1px solid #d0ff9d;"&gt;&lt;div class="post-body"&gt;결론은 eCPM은 1000회 노출당 얻을 수 있는 광고 수익의 예측값이라는 내용입니다.&lt;/div&gt;&lt;div class="post-body"&gt;Adsense, Admob 등의 회사마다 정책이 다르겠지만, eCPM 등의 용어는 동일한 개념으로 사용되고 있습니다.&lt;/div&gt;&lt;div class="post-body"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="post-body"&gt;요즘 &amp;nbsp;Admob 을 살펴보고 있는데, 국내 자료가 별로 없어서 안타깝습니다. 이 포스팅의 호응이 좋다면,(저와 같은 생각을 하시는 분들이 많다면) 좀더 포스팅 해보겠습니다. : )&lt;/div&gt;&lt;div class="post-body"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="post-body"&gt;원문 링크 입니다.&lt;/div&gt;&lt;div class="post-body"&gt;&lt;a href="http://adsense.blogspot.com/2006/02/ecpm-what-exactly-is-that.html"&gt;http://adsense.blogspot.com/2006/02/ecpm-what-exactly-is-that.html&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="post-body"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="post-body"&gt;&lt;br /&gt;&lt;span class="byline-author" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(102, 102, 102); "&gt;Posted by Theresa Chow - AdSense Publisher Support&lt;/span&gt;&lt;h2 class="date-header" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 95%/normal Arial, sans-serif; color: rgb(102, 102, 102); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;Monday, February 27, 2006 at 10:25:00 AM&lt;/h2&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8479945912659192531-4250184602666642341?l=snowhouse-textcube.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snowhouse-textcube.blogspot.com/feeds/4250184602666642341/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://snowhouse-textcube.blogspot.com/2010/06/adsense-ecpm-%EC%A0%95%ED%99%95%ED%9E%88-%EB%AD%94%EA%B0%80%EC%9A%94.html#comment-form' title='2개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8479945912659192531/posts/default/4250184602666642341'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8479945912659192531/posts/default/4250184602666642341'/><link rel='alternate' type='text/html' href='http://snowhouse-textcube.blogspot.com/2010/06/adsense-ecpm-%EC%A0%95%ED%99%95%ED%9E%88-%EB%AD%94%EA%B0%80%EC%9A%94.html' title='AdSense : eCPM 정확히 뭔가요?'/><author><name>bloodforest</name><uri>http://www.blogger.com/profile/13414456106205156837</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8479945912659192531.post-5487061589132822321</id><published>2010-02-03T12:53:00.000+09:00</published><updated>2011-01-29T22:34:06.234+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPad'/><category scheme='http://www.blogger.com/atom/ns#' term='any Others'/><category scheme='http://www.blogger.com/atom/ns#' term='Steve Jobs'/><category scheme='http://www.blogger.com/atom/ns#' term='kindle'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><category scheme='http://www.blogger.com/atom/ns#' term='E-book'/><title type='text'>ipad 들고 학교가는 날</title><content type='html'>애플의 스티브 잡스가 ipad를 발표 한지 벌써 며칠이 지났네요.&lt;div&gt;&lt;div style="text-align: center; clear: both;"&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/9eVCFXxgn2M?f=videos&amp;amp;app=youtube_gdata"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/9eVCFXxgn2M?f=videos&amp;amp;app=youtube_gdata" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ipad는 한간의 떠돌던 루머대로 ipod touch 대형 버전으로 모습을 드러냈습니다.&lt;/div&gt;&lt;div&gt;&lt;div class="imageblock center" style="text-align: center; clear: both;"&gt;&lt;a href="http://www.flickr.com/photos/29608604@N06/4309981868" target="_blank"&gt;&lt;img src="http://farm5.static.flickr.com/4059/4309981868_52d1800ae3.jpg" style="width:500px;height:287px;" alt="" /&gt;&lt;/a&gt;&lt;/div&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;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ipad의 흥행 여부가 이 포스팅을 쓰게된 목적인 만큼, 저도 이 떡밥을 덥썩 물고 결론부터 이야기 하자면 스티브잡스식 흥행 성공을 거둘 것이라고 예상합니다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;스티브잡스는 애플이 정복하지 못한 영역 중에 현재 자신들이 가장 잘 할 수 있는 영역을 정복하기 위해서 ipad를 들고 나왔습니다. ipad는 지금까지 나온 e-book 기기 중 ibooks와 앞으로 ipad에서 서비스 되기를 원하는 다수 국가, 다수 퍼블리셔의 e-book 컨텐츠를 가지고 이세상 모든 책을 대신할 수 있는 가장 근접한 기기 입니다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;b&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;b&gt;Why?&lt;/b&gt;&lt;/span&gt;&amp;nbsp;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;ipad는 버전이 거듭되어도 ipod touch가 그랬듯이 동일한 플랫폼을 제공 할 것입니다.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;So?&lt;/span&gt;&lt;/b&gt; &lt;span class="Apple-style-span" style="font-weight: normal;"&gt;구버전을 사용하는 사용자들은 성능의 차이는 경험하겠지만, ipad 사용자간에 버전이 다름으로 인해 생기는 의사소통의 엇갈림은 없을 것입니다.&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;b&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Why?&lt;/span&gt;&lt;/b&gt; &lt;span class="Apple-style-span" style="font-weight: normal;"&gt;ipad는 어플리케이션의 설치가 매우 간단(직관적)하며, 어플리케이션은 실행과 컨텐츠 확인이 매우 빠릅니다.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;So?&lt;/span&gt;&lt;/b&gt; &lt;span class="Apple-style-span" style="font-weight: normal;"&gt;기존의 e-book가 가지고 있는 컨텐츠 접근에 대한 어려움을 조금더 수월하게 해주며, 속도가 느렸던 부분을 해소시켜 줄 것입니다.&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;b&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Why?&lt;/span&gt;&lt;/b&gt; &lt;span class="Apple-style-span" style="font-weight: normal;"&gt;애플이 쌓아두고 있는 모든 컨텐츠들은 모두 덤으로 이용할 수 있습니다.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;So?&lt;/span&gt;&lt;/b&gt; &lt;span class="Apple-style-span" style="font-weight: normal;"&gt;우리나라 전자사전의 행보를 기억하십니까? ipad는 미디어적인 접근뿐 아니라, 앱스토어를 통한 각종 어플리케이션을 체험할 수 있게 됩니다.&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;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div class="imageblock center" style="text-align: center; clear: both;"&gt;&lt;a href="http://www.flickr.com/photos/13922900@N00/126158826" target="_blank"&gt;&lt;img src="http://farm1.static.flickr.com/49/126158826_205ad4845a.jpg" style="width:500px;height:375px;" alt="" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;고등학교-대학교때 무거웠던 가방을 떠올려봅니다. 그땐 그저 생각이었지만, 이젠 현실에 가까워 졌습니다. 그리고 그것을 해결할 수 있는 가장 근접한 기기는 ipad라고 생각합니다.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;노트북이나, 넷북이 그 역할을 해줄 수 있지만, 하드웨어가 동일하지 않다면 모두 같은 모습의 교재를 보기가 수월하지 않을 것이며, 이로인해 교육과정에서 불필요한 에너지의 소모가 더 커질 수 있습니다. 만일 하드웨어가 동일하다면, 컴퓨터에 문외한인 사람이 이용할 수 있도록 해야합니다. 현재의 컴퓨터에서 교육을 위한 소프트웨어를 다운받고, 설치하고, 실행시키고 조작하는 과정이 정말 모두가 쉽게 해낼 수 있는 일일까요?&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;안타깝게도 애플의 ibooks는 우선 미국에서만 서비스 될 예정이라고 합니다.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;매우 안타깝지만 곧 우리나라도 ipad를 이용한 e-book 컨텐츠를 제공하기 위한 사업자가 등장 할 것이라고 확신 합니다.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div class="imageblock center" style="text-align: center; clear: both;"&gt;&lt;a href="http://www.flickr.com/photos/48600098314@N01/4320879170" target="_blank"&gt;&lt;img src="http://farm5.static.flickr.com/4030/4320879170_a41c620166.jpg" style="width:500px;height:280px;" alt="" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;이 기회에 이사갈때 마다 짐이 되었고, 책장에서 먼지가 수북히 쌓여가는 책들을 모두 ipad 하나로 해결할 수 있다라는 생각에 가슴이 두근거립니다. : ) &lt;/span&gt;&lt;/div&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8479945912659192531-5487061589132822321?l=snowhouse-textcube.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snowhouse-textcube.blogspot.com/feeds/5487061589132822321/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://snowhouse-textcube.blogspot.com/2010/02/ipad-%EB%93%A4%EA%B3%A0-%ED%95%99%EA%B5%90%EA%B0%80%EB%8A%94-%EB%82%A0.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8479945912659192531/posts/default/5487061589132822321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8479945912659192531/posts/default/5487061589132822321'/><link rel='alternate' type='text/html' href='http://snowhouse-textcube.blogspot.com/2010/02/ipad-%EB%93%A4%EA%B3%A0-%ED%95%99%EA%B5%90%EA%B0%80%EB%8A%94-%EB%82%A0.html' title='ipad 들고 학교가는 날'/><author><name>bloodforest</name><uri>http://www.blogger.com/profile/13414456106205156837</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm5.static.flickr.com/4059/4309981868_52d1800ae3_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8479945912659192531.post-5637750911671969322</id><published>2010-01-12T09:01:00.000+09:00</published><updated>2011-01-29T22:33:57.682+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='앱 개발'/><category scheme='http://www.blogger.com/atom/ns#' term='objective-c 강좌'/><category scheme='http://www.blogger.com/atom/ns#' term='앱스토어 개발'/><category scheme='http://www.blogger.com/atom/ns#' term='Object-C'/><category scheme='http://www.blogger.com/atom/ns#' term='learn for objective-c'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone 개발'/><category scheme='http://www.blogger.com/atom/ns#' term='objective-c 튜토리얼'/><category scheme='http://www.blogger.com/atom/ns#' term='objective-c'/><title type='text'>아이폰 개발 : 완전 초보도 보는 Objective-C 기초개념</title><content type='html'>&lt;script src='http://ss.textcube.com/service/blog/script/blogger.js' type='text/javascript'&gt;&lt;/script&gt;&lt;div&gt;&lt;div class="imageblock center" style="text-align: center; clear: both;"&gt;&lt;a href="http://www.flickr.com/photos/83875771@N00/534579532" target="_blank"&gt;&lt;img src="http://farm2.static.flickr.com/1434/534579532_118e2d5a44.jpg" style="width:520px;height:333px;" alt="" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="padding:10px;background-color:#d0ff9d;border:1px solid #d0ff9d;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: large; "&gt;&lt;font class="Apple-style-span" face="Dotum, sans-serif"&gt;Objective-C의 기초 개념&lt;/font&gt;&lt;/span&gt;&lt;/b&gt;&lt;font class="Apple-style-span" color="#666666"&gt;을 익히시려는 분들 반갑습니다. : )&lt;br /&gt;Game Designer Snowrimp입니다.&lt;br /&gt;&lt;br /&gt;Game Designer라 실망하시는 분들도 계시겠지만, 아래에 시작되는 튜토리얼은 &lt;span class="Apple-style-span" style="font-family: 'Lucida Grande', sans-serif; line-height: 21px; "&gt;&lt;a href="http://theocacao.com/" style="text-decoration: none; " target="_blank"&gt;&lt;font class="Apple-style-span" color="#FF6600"&gt;Scott Stevenson&lt;/font&gt;&lt;/a&gt;&lt;/span&gt;이 작성한 튜토리얼을 번역해 둔것이니 안심하셔도 됩니다.&lt;br /&gt;&lt;br /&gt;열심히 번역 공부도 할겸 시작한 일이라 매끄럽지 못하게 번역한 부분이나, 다소 의미의 차이가 있는 부분이 있을 수 있습니다. 이점은 저도 안타깝지만 조금씩 고쳐나갈 예정이며, 개선할 부분을 발견하신다면 과감히 덧글 부탁 드립니다. _ _)&lt;br /&gt;&lt;br /&gt;이 포스팅으로 인해 아이폰의 메인 언어인 Objective-C의 초석을 다지는 일에 조금이나마 도움이 되셨으면 좋겠습니다.&lt;br /&gt;&lt;br /&gt;또한 이 포스팅이 도움이 되셨다면, 원본 아티클에 기부하시는 한국인의 센스 부탁 드립니다.&lt;/font&gt;&lt;/div&gt;&lt;div style="padding:10px;background-color:#d0ff9d;border:1px solid #d0ff9d;"&gt;&lt;span style="padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; background-color: rgb(235, 235, 235); "&gt;&lt;font class="Apple-style-span" color="#484848"&gt;Suggested amounts: &lt;/font&gt;&lt;cite&gt;&lt;font class="Apple-style-span" color="#484848"&gt;Useful&lt;/font&gt;&lt;/cite&gt;&lt;font class="Apple-style-span" color="#484848"&gt;: $5 | &lt;/font&gt;&lt;cite&gt;&lt;font class="Apple-style-span" color="#484848"&gt;Very Useful&lt;/font&gt;&lt;/cite&gt;&lt;font class="Apple-style-span" color="#484848"&gt;: $12 | &lt;/font&gt;&lt;cite&gt;&lt;font class="Apple-style-span" color="#484848"&gt;Priceless&lt;/font&gt;&lt;/cite&gt;&lt;font class="Apple-style-span" color="#484848"&gt;: $21&lt;/font&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;input src="https://www.paypal.com/en_US/i/btn/x-click-but04.gif" name="submit" alt="Make payments with PayPal - it's fast, free and secure!" border="0" type="image"&gt;&amp;nbsp;&lt;img alt="" src="https://www.paypal.com/en_US/i/scr/pixel.gif" border="0" height="1" width="1" style="background-color: rgb(248, 248, 248); background-repeat: no-repeat; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: dashed; border-right-style: dashed; border-bottom-style: dashed; border-left-style: dashed; border-top-color: rgb(238, 238, 238); border-right-color: rgb(238, 238, 238); border-bottom-color: rgb(238, 238, 238); border-left-color: rgb(238, 238, 238); background-position: 50% 50%; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&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;div style="padding:10px;background-color:#f4f4f4;border:1px solid #cccccc;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Lucida Grande', sans-serif; font-size: 11px; line-height: 21px; color: rgb(48, 48, 48); "&gt;&lt;h3 style="font-family: 'Helvetica Neue', 'Lucida Grande', sans-serif; font-weight: bold; color: rgb(0, 91, 177); padding-left: 21px; float: left; margin-top: 0px; width: 190px; font-size: 16px; "&gt;Objective-C&lt;/h3&gt;&lt;div class="contentbody" style="margin-left: 190px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 20px; padding-left: 21px; "&gt;Objective-C 는 맥 소프트웨어를 만들때 사용하는 주요 언어 입니다. 여러분이 기본적인 객체 개념과 C언어에 어려움이 없다면 Objective-C 의 감을 쉽게 잡을 수 있을 것입니다. 만약 C를 모른다면 먼저 &lt;a href="http://cocoadevcentral.com/articles/000081.php" style="color: rgb(0, 91, 177); text-decoration: none; "&gt;C Tutorial&lt;/a&gt;&amp;nbsp;튜토리얼을 읽어 보십시오.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 190px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 20px; padding-left: 21px; "&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: Dotum, Verdana, AppleGothic, sans-serif; line-height: 16px; "&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Lucida Grande', sans-serif; line-height: 21px; color: rgb(99, 99, 99); "&gt;&lt;div style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(208, 255, 157); border-right-color: rgb(208, 255, 157); border-bottom-color: rgb(208, 255, 157); border-left-color: rgb(208, 255, 157); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; background-color: rgb(208, 255, 157); "&gt;번역자노트. 위에서 링크된 C Tutorial의 &lt;a href="http://snowhouse.textcube.com/?page=6" target="_blank"&gt;번역본이 여기&lt;/a&gt;&amp;nbsp;있습니다. : )&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: Dotum, Verdana, AppleGothic, sans-serif; line-height: 16px; "&gt;이 튜토리얼의 작성과 일러스트는 &lt;span class="Apple-style-span" style="font-family: 'Lucida Grande', sans-serif; line-height: 21px; color: rgb(99, 99, 99); "&gt;&lt;a href="http://theocacao.com/" style="color: rgb(0, 91, 177); text-decoration: none; " target="_blank"&gt;Scott Stevenson&lt;/a&gt;&amp;nbsp;에 의해 쓰여졌습니다.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="clear: both; "&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="credits" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 11px; padding-top: 10px; padding-right: 20px; padding-bottom: 20px; padding-left: 211px; border-top-width: 1px; border-top-style: dashed; border-top-color: rgb(192, 192, 192); "&gt;Copyright © 2008 Scott Stevenson&lt;/div&gt;&lt;/span&gt;&lt;/div&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;div style="padding:10px;background-color:#f4f4f4;border:1px solid #cccccc;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Lucida Grande', sans-serif; font-size: 11px; line-height: 21px; color: rgb(48, 48, 48); "&gt;&lt;h3 style="font-family: 'Helvetica Neue', 'Lucida Grande', sans-serif; font-weight: bold; color: rgb(0, 91, 177); padding-left: 21px; float: none; margin-top: 10px; width: auto; font-size: 16px; "&gt;Calling Methods&lt;/h3&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;가능한 빨리 시작해 보겟습니다, 아래의 간단한 예제들을 보시죠. object(이하 객체)에서 메소드를 호출하는 기본적인 문법 입니다:&lt;br /&gt;&lt;/div&gt;&lt;div class="cl" style="clear: both; "&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="codeblock" style="color: rgb(66, 66, 66); background-color: rgb(235, 235, 235); border-top-width: 1px; border-top-style: solid; border-top-color: rgb(213, 213, 213); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(213, 213, 213); padding-top: 11px; padding-right: 21px; padding-bottom: 11px; padding-left: 21px; font-size: 12px; font-family: Monaco, monospace; white-space: pre; margin-bottom: 42px; line-height: 18px; "&gt;[object &lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;method&lt;/em&gt;];[object &lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;methodWithInput:&lt;/em&gt;input];&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;메소드는 값을 반환할 수 있습니다:&lt;br /&gt;&lt;/div&gt;&lt;div class="cl" style="clear: both; "&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="codeblock" style="color: rgb(66, 66, 66); background-color: rgb(235, 235, 235); border-top-width: 1px; border-top-style: solid; border-top-color: rgb(213, 213, 213); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(213, 213, 213); padding-top: 11px; padding-right: 21px; padding-bottom: 11px; padding-left: 21px; font-size: 12px; font-family: Monaco, monospace; white-space: pre; margin-bottom: 42px; line-height: 18px; "&gt;output = [object &lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;methodWithOutput&lt;/em&gt;];output = [object &lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;methodWithInputAndOutput:&lt;/em&gt;input];&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;여러분들은 클래스들에서 메소드를 호출할 수 있습니다. 아래의 예제에서 있듯이, 우리는 NSString 객체를 반환하는 NSString 클래스의 &lt;b&gt;&lt;font class="Apple-style-span" color="#000000"&gt;string&lt;/font&gt;&lt;/b&gt;&amp;nbsp;메소드들를 호출할 수 있습니다:&lt;br /&gt;&lt;/div&gt;&lt;div class="cl" style="clear: both; "&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="codeblock singlelinecode" style="color: rgb(66, 66, 66); background-color: rgb(235, 235, 235); border-top-width: 1px; border-top-style: solid; border-top-color: rgb(213, 213, 213); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(213, 213, 213); padding-top: 11px; padding-right: 21px; padding-bottom: 11px; padding-left: 21px; font-size: 12px; font-family: Monaco, monospace; white-space: pre; margin-bottom: 12px; line-height: 18px; "&gt;&lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;id&lt;/em&gt; myObject = [&lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;NSString&lt;/em&gt; string];&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0); "&gt;Id&lt;/span&gt;&amp;nbsp;타입은 &lt;span style="color: rgb(0, 0, 0); "&gt;&lt;b&gt;myObject&lt;/b&gt;&lt;/span&gt;&amp;nbsp;변수가 어떤 종류의 오브젝트든 참조할 수 있는것을 의미하므로, 여러분들의 어플리케이션을 컴파일할 때 실제 클래스와 매소드들을 모르는 경우 사용합니다.&lt;br /&gt;&lt;br /&gt;이 예제에서, 오브젝트 타입이 &lt;b&gt;&lt;font class="Apple-style-span" color="#000000"&gt;NSString&lt;/font&gt;&lt;/b&gt;이 될 것이므로 우리는 타입을 바꿀 수 있습니다:&lt;br /&gt;&lt;/div&gt;&lt;div class="cl" style="clear: both; "&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="codeblock singlelinecode" style="color: rgb(66, 66, 66); background-color: rgb(235, 235, 235); border-top-width: 1px; border-top-style: solid; border-top-color: rgb(213, 213, 213); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(213, 213, 213); padding-top: 11px; padding-right: 21px; padding-bottom: 11px; padding-left: 21px; font-size: 12px; font-family: Monaco, monospace; white-space: pre; margin-bottom: 12px; line-height: 18px; "&gt;&lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;NSString*&lt;/em&gt; myString = [&lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;NSString&lt;/em&gt; string];&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;지금 이것은 &lt;font class="Apple-style-span" color="#000000"&gt;&lt;b&gt;NSString&lt;/b&gt;&lt;/font&gt;&amp;nbsp;변수이므로, 컴파일러는 NSString을 지원하지 않는 이 오브젝트의 메소드를 사용하고자 하면 우리에게 경고를 할 것입니다.&lt;br /&gt;&lt;br /&gt;객체 타입의 오른쪽에 별표(*)가 있음을 주목하십시오. 모든 Objective-C &amp;nbsp;객체 변수들은 포인터 타입입니다. &lt;font class="Apple-style-span" color="#000000"&gt;&lt;b&gt;id&lt;/b&gt;&lt;/font&gt;&amp;nbsp;타입은 포인터 타입으로 미리 정의되어있으므로, 별표를 필요로하지 않습니다.&lt;br /&gt;&lt;/div&gt;&lt;div class="cl" style="clear: both; "&gt;&amp;nbsp;&lt;/div&gt;&lt;h4 style="font-family: 'Helvetica Neue', 'Lucida Grande', sans-serif; font-weight: bold; color: rgb(101, 101, 101); padding-left: 21px; float: none; margin-top: 10px; width: auto; font-size: 16px; margin-bottom: 12px; "&gt;Nested Messages&lt;/h4&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;많은 언어에서 내제되어 있는 메소드 또는 함수를 호출하는 방법은 이렇습니다:&lt;br /&gt;&lt;/div&gt;&lt;div class="cl" style="clear: both; "&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="codeblock singlelinecode" style="color: rgb(66, 66, 66); background-color: rgb(235, 235, 235); border-top-width: 1px; border-top-style: solid; border-top-color: rgb(213, 213, 213); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(213, 213, 213); padding-top: 11px; padding-right: 21px; padding-bottom: 11px; padding-left: 21px; font-size: 12px; font-family: Monaco, monospace; white-space: pre; margin-bottom: 12px; line-height: 18px; "&gt;function1 ( function2() );&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;function2의 결과는 function1의 인풋으로 전달됩니다. Objective-C 에서는 내제된 메시지를 이렇게 표현합니다:&lt;br /&gt;&lt;/div&gt;&lt;div class="cl" style="clear: both; "&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="codeblock singlelinecode" style="color: rgb(66, 66, 66); background-color: rgb(235, 235, 235); border-top-width: 1px; border-top-style: solid; border-top-color: rgb(213, 213, 213); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(213, 213, 213); padding-top: 11px; padding-right: 21px; padding-bottom: 11px; padding-left: 21px; font-size: 12px; font-family: Monaco, monospace; white-space: pre; margin-bottom: 12px; line-height: 18px; "&gt;[NSString stringWithFormat:[prefs format]];&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;읽기 어렵게 되기 쉽기 때문에, 한줄에 두개 이상의 내제된 메시지를 호출은 피하십시오.&lt;br /&gt;&lt;/div&gt;&lt;div class="cl" style="clear: both; "&gt;&amp;nbsp;&lt;/div&gt;&lt;h4 style="font-family: 'Helvetica Neue', 'Lucida Grande', sans-serif; font-weight: bold; color: rgb(101, 101, 101); padding-left: 21px; float: none; margin-top: 10px; width: auto; font-size: 16px; margin-bottom: 12px; "&gt;Multi-Input Methods&lt;/h4&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;어떤 메소드들은 입력변수를 여러개 가지고 있습니다. Objective-C 에서는, 메소드 이름을 몇가지 구분으로 나눌 수 있습니다. 헤더 부분에서 여러개의 입력변수를 가지고 있는 메소드를 이렇게 표현합니다:&lt;br /&gt;&lt;/div&gt;&lt;div class="cl" style="clear: both; "&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="codeblock singlelinecode" style="color: rgb(66, 66, 66); background-color: rgb(235, 235, 235); border-top-width: 1px; border-top-style: solid; border-top-color: rgb(213, 213, 213); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(213, 213, 213); padding-top: 11px; padding-right: 21px; padding-bottom: 11px; padding-left: 21px; font-size: 12px; font-family: Monaco, monospace; white-space: pre; margin-bottom: 12px; line-height: 18px; "&gt;-(BOOL)&lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;writeToFile&lt;/em&gt;:(NSString *)path &lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;atomically&lt;/em&gt;:(BOOL)useAuxiliaryFile;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;이 메소드를 다음과 같이 호출합니다:&lt;br /&gt;&lt;/div&gt;&lt;div class="cl" style="clear: both; "&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="codeblock singlelinecode" style="color: rgb(66, 66, 66); background-color: rgb(235, 235, 235); border-top-width: 1px; border-top-style: solid; border-top-color: rgb(213, 213, 213); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(213, 213, 213); padding-top: 11px; padding-right: 21px; padding-bottom: 11px; padding-left: 21px; font-size: 12px; font-family: Monaco, monospace; white-space: pre; margin-bottom: 12px; line-height: 18px; "&gt;BOOL result = [myData &lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;writeToFile&lt;/em&gt;:@"/tmp/log.txt" &lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;atomically&lt;/em&gt;:NO];&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;인수 이름은 없습니다. 런타임 시스템에서 메소드 이름은 실제로&lt;b&gt;&lt;font class="Apple-style-span" color="#000000"&gt;writeToFile:atomically&lt;/font&gt;&lt;/b&gt;&amp;nbsp;입니다.&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&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;div style="padding:10px;background-color:#f4f4f4;border:1px solid #cccccc;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Lucida Grande', sans-serif; font-size: 11px; line-height: 21px; color: rgb(48, 48, 48); "&gt;&lt;h3 style="font-family: 'Helvetica Neue', 'Lucida Grande', sans-serif; font-weight: bold; color: rgb(0, 91, 177); padding-left: 21px; float: none; margin-top: 10px; width: auto; font-size: 16px; "&gt;Accessors&lt;/h3&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;모든 인스턴스 변수들은 Objective-C에서 private가 기본 설정이므로, 여러분들은 거의 대부분의 경우 변수를 얻거나, 설정하기 위해서 accessor(이하 접근자)를 이용해야 합니다. 여기에 두가지 문법이 있습니다. 일단 전통적인 1.x 문법입니다:&lt;br /&gt;&lt;/div&gt;&lt;div class="cl" style="clear: both; "&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="codeblock" style="color: rgb(66, 66, 66); background-color: rgb(235, 235, 235); border-top-width: 1px; border-top-style: solid; border-top-color: rgb(213, 213, 213); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(213, 213, 213); padding-top: 11px; padding-right: 21px; padding-bottom: 11px; padding-left: 21px; font-size: 12px; font-family: Monaco, monospace; white-space: pre; margin-bottom: 42px; line-height: 18px; "&gt;[photo &lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;setCaption&lt;/em&gt;:@"Day at the Beach"];output = [photo &lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;caption&lt;/em&gt;];&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;두번째 줄의 코드는 인스턴스 변수를 직접 읽지 않습니다. 이것은 실제로 &lt;b&gt;&lt;font class="Apple-style-span" color="#000000"&gt;caption&lt;/font&gt;&lt;/b&gt; 이라는 이름의 메소드를 호출하는 것입니다. 즉, Objective-C에서는 대부분의 경우 값을 얻기 위해 접두사 "get" 을 붙이지 않아도 됩니다.&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;언제든지 여러분들은 사각 꺽쇠 안의 코드를 보면 객체 또는 클래스에 메시지를 보내는 것이라고 이해하시면 됩니다.&lt;br /&gt;&lt;/div&gt;&lt;div class="cl" style="clear: both; "&gt;&amp;nbsp;&lt;/div&gt;&lt;h4 style="font-family: 'Helvetica Neue', 'Lucida Grande', sans-serif; font-weight: bold; color: rgb(101, 101, 101); padding-left: 21px; float: none; margin-top: 10px; width: auto; font-size: 16px; margin-bottom: 12px; "&gt;Dot Syntax&lt;/h4&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;Max OS X 10.5 파트의 일부인 Objective-C 2.0 에서 getter와 setter를 위해 dot 문법이 새롭게 등장 했습니다:&lt;br /&gt;&lt;/div&gt;&lt;div class="cl" style="clear: both; "&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="codeblock" style="color: rgb(66, 66, 66); background-color: rgb(235, 235, 235); border-top-width: 1px; border-top-style: solid; border-top-color: rgb(213, 213, 213); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(213, 213, 213); padding-top: 11px; padding-right: 21px; padding-bottom: 11px; padding-left: 21px; font-size: 12px; font-family: Monaco, monospace; white-space: pre; margin-bottom: 42px; line-height: 18px; "&gt;photo&lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;.caption&lt;/em&gt; = @"Day at the Beach";output = photo&lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;.caption&lt;/em&gt;;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;여러분들은 두가지 방법 모두를 사용할 수 있지만 각각의 프로젝트에서 하나의 방법을 사용해야 합니다. dot 문법은 setter와 getter에서만 사용되며, 메소드를 위한 것은 아닙니다.&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="padding:10px;background-color:#f4f4f4;border:1px solid #cccccc;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Lucida Grande', sans-serif; font-size: 11px; line-height: 21px; color: rgb(48, 48, 48); "&gt;&lt;h3 style="font-family: 'Helvetica Neue', 'Lucida Grande', sans-serif; font-weight: bold; color: rgb(0, 91, 177); padding-left: 21px; float: none; margin-top: 10px; width: auto; font-size: 16px; "&gt;Creating Objects&lt;/h3&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;객체를 생성하는 두가지 방법이 있습니다. 첫번째 방법은 아래를 보시죠:&lt;br /&gt;&lt;/div&gt;&lt;div class="cl" style="clear: both; "&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="codeblock singlelinecode" style="color: rgb(66, 66, 66); background-color: rgb(235, 235, 235); border-top-width: 1px; border-top-style: solid; border-top-color: rgb(213, 213, 213); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(213, 213, 213); padding-top: 11px; padding-right: 21px; padding-bottom: 11px; padding-left: 21px; font-size: 12px; font-family: Monaco, monospace; white-space: pre; margin-bottom: 12px; line-height: 18px; "&gt;&lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;NSString*&lt;/em&gt; myString = [&lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;NSString&lt;/em&gt; string];&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;위의 방법은 좀더 편리한 오토매틱 스타일입니다. 이 경우, 여러분들은 &lt;b&gt;&lt;font class="Apple-style-span" color="#000000"&gt;autorelease&lt;/font&gt;&lt;/b&gt;된 객체를 &amp;nbsp;생성할 수 있으며, 좀더 자세한 내용은 나중에 설명하겠습니다. 많은 경우, 여러분들은 메뉴얼 스타일을 이용해서 객체를 생성할 필요가 있습니다:&lt;br /&gt;&lt;/div&gt;&lt;div class="cl" style="clear: both; "&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="codeblock singlelinecode" style="color: rgb(66, 66, 66); background-color: rgb(235, 235, 235); border-top-width: 1px; border-top-style: solid; border-top-color: rgb(213, 213, 213); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(213, 213, 213); padding-top: 11px; padding-right: 21px; padding-bottom: 11px; padding-left: 21px; font-size: 12px; font-family: Monaco, monospace; white-space: pre; margin-bottom: 12px; line-height: 18px; "&gt;&lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;NSString*&lt;/em&gt; myString = [[NSString &lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;alloc&lt;/em&gt;] &lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;init&lt;/em&gt;];&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;이것은 중첩된 메소드 호출입니다. 첫번째는 NSString의 &lt;font class="Apple-style-span" color="#000000"&gt;&lt;b&gt;alloc&lt;/b&gt;&lt;/font&gt; 메소드입니다. 이는 메모리를 할당하고 인스턴트 객체를 생성하는 비교적 low-level의 호출입니다.&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;&lt;br /&gt;The second piece is a call to &lt;em style="font-style: normal; color: black; "&gt;init&lt;/em&gt;&amp;nbsp;on the new object. The init implementation usually does basic setup, such as creating instance variables. The details of that are unknown to you as a client of the class. &lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;두번째 부분은 새로운 객체에서 &lt;b&gt;&lt;font class="Apple-style-span" color="#000000"&gt;init&lt;/font&gt;&lt;/b&gt; 하기위한 호출입니다. init 구현은 인스턴스 변수의 생성따위에서 기본적인 셋업을 수행하게 되는데, 그것들에 대한 자세한 사항은 클래스의 클라이언트이기 때문에 여러분들에게는 알려져있지 않습니다.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;몇몇의 경우, 여러분들은 입력을 가지는 다른 버전의 &lt;b&gt;&lt;font class="Apple-style-span" color="#000000"&gt;init&lt;/font&gt;&lt;/b&gt;을 사용하게 될 수 있습니다:&lt;/div&gt;&lt;div class="cl" style="clear: both; "&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="codeblock singlelinecode" style="color: rgb(66, 66, 66); background-color: rgb(235, 235, 235); border-top-width: 1px; border-top-style: solid; border-top-color: rgb(213, 213, 213); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(213, 213, 213); padding-top: 11px; padding-right: 21px; padding-bottom: 11px; padding-left: 21px; font-size: 12px; font-family: Monaco, monospace; white-space: pre; margin-bottom: 12px; line-height: 18px; "&gt;NSNumber* value = [[NSNumber alloc] &lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;initWithFloat&lt;/em&gt;:1.0];&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="padding:10px;background-color:#f4f4f4;border:1px solid #cccccc;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Lucida Grande', sans-serif; font-size: 11px; line-height: 21px; color: rgb(48, 48, 48); "&gt;&lt;h3 style="font-family: 'Helvetica Neue', 'Lucida Grande', sans-serif; font-weight: bold; color: rgb(0, 91, 177); padding-left: 21px; float: none; margin-top: 10px; width: auto; font-size: 16px; "&gt;Basic Memory Management&lt;/h3&gt;&lt;div class="imageblock right" style="float: right; margin-left: 10px;"&gt;&lt;img src="http://ss.textcube.com/blog/3/33793/attach/XIocXB0aR8.png" style="width:121px;height:172px;" alt=""  /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;만일 여러분들이 Max OS X를 위한 어플리케이션을 작업 중이라면, 여러분들은 garbage collection을 사용할 수 있습니다. 일반적으로, 조금더 복잡한 경우가 아니라면 메모리 관리에 대해서 생각하지 않아도 됨을 의미합니다.&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;그러나, 여러분들은 항상 garbage collection을 지원받을 수 있는 환경이진 않을 것입니다. 이런경우, 여러분들은 몇가지 기본적인 컨셉(개념)을 알 필요가 있습니다.&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;&lt;br /&gt;만일 여러분들이 메뉴얼 alloc 스타일을 이용하여 객체를 생성했다면, 나중에 객체를 &lt;b&gt;&lt;font class="Apple-style-span" color="#000000"&gt;해재&lt;/font&gt;&lt;/b&gt;해줘야 합니다. 오토메틱 스타일로 생성한 객체는 메뉴얼 스타일로 해제하면 안되는데, 그 이유는 그렇게 할 경우 여러분의 어플리케이션이 clash가 발생할 수 있기 때문입니다.&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;&lt;br /&gt;여기에 두가지 예제가 있습니다:&lt;/div&gt;&lt;div class="cl" style="clear: both; "&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="codeblock" style="color: rgb(66, 66, 66); background-color: rgb(235, 235, 235); border-top-width: 1px; border-top-style: solid; border-top-color: rgb(213, 213, 213); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(213, 213, 213); padding-top: 11px; padding-right: 21px; padding-bottom: 11px; padding-left: 21px; font-size: 12px; font-family: Monaco, monospace; white-space: pre; margin-bottom: 42px; line-height: 18px; "&gt;&lt;strong style="color: rgb(120, 120, 120); padding-top: 2px; padding-right: 8px; padding-bottom: 2px; padding-left: 2px; background-color: rgb(242, 242, 242); font-weight: normal; "&gt;// string1 will be released automatically&lt;/strong&gt;NSString* string1 = [NSString &lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;string&lt;/em&gt;];&lt;strong style="color: rgb(120, 120, 120); padding-top: 2px; padding-right: 8px; padding-bottom: 2px; padding-left: 2px; background-color: rgb(242, 242, 242); font-weight: normal; "&gt;// must release this when done&lt;/strong&gt;NSString* string2 = [[NSString &lt;em class="memorymanagement" style="color: rgb(192, 9, 0); font-style: normal; "&gt;alloc&lt;/em&gt;] init];[string2 &lt;em class="memorymanagement" style="color: rgb(192, 9, 0); font-style: normal; "&gt;release&lt;/em&gt;];&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;이 튜토리얼을 통해서, 여러분들은 오토매틱 객체가 현재 함수의 끝에서 사라질 것임을 추측할 수 있습니다.&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;메모리 관리에 대해서 배울것이 더 있지만, 우리가 몇가지 컨셉들을 보고 더 알게된 다음에 배울 것입니다.&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="padding:10px;background-color:#f4f4f4;border:1px solid #cccccc;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Lucida Grande', sans-serif; font-size: 11px; line-height: 21px; color: rgb(48, 48, 48); "&gt;&lt;h3 style="font-family: 'Helvetica Neue', 'Lucida Grande', sans-serif; font-weight: bold; color: rgb(0, 91, 177); padding-left: 21px; float: none; margin-top: 10px; width: auto; font-size: 16px; "&gt;Designing a Class Interface&lt;/h3&gt;&lt;div class="imageblock right" style="float: right; margin-left: 10px;"&gt;&lt;img src="http://ss.textcube.com/blog/3/33793/attach/XKxnZtlyhb.png" style="width:250px;height:231px;" alt=""  /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;클래스 생성을 위한 Objective-C 문법은 매우 간단합니다. 전형적인 두 파트로 나눠집니다.&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;클래스 인터페이스는 &lt;font class="Apple-style-span" color="#000000"&gt;&lt;b&gt;ClassName.h&lt;/b&gt;&lt;/font&gt; 파일에 담기고, 인터페이스 변수와 퍼블릭 매소드를 정의합니다.&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;구현부는 &lt;font class="Apple-style-span" color="#000000"&gt;&lt;b&gt;ClassName.m&lt;/b&gt;&lt;/font&gt; 파일 안에 있고, 이 메소드들의 실제 코드가 포함됩니다. 또한 클래스의 클라이언트에서 사용할 수 없는 private 메소드를 정의합니다.&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;여기에 인터페이스 파일의 예가 있습니다. 클래스 이름이 Photo 라서 파일 이름도 &lt;b&gt;&lt;font class="Apple-style-span" color="#000000"&gt;Photo.&lt;/font&gt;&lt;/b&gt;&lt;font class="Apple-style-span" color="#000000"&gt;&lt;b&gt;h&lt;/b&gt;&lt;/font&gt; 라고 이름지었습니다:&lt;br /&gt;&lt;/div&gt;&lt;div class="cl" style="clear: both; "&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="codeblock" style="color: rgb(66, 66, 66); background-color: rgb(235, 235, 235); border-top-width: 1px; border-top-style: solid; border-top-color: rgb(213, 213, 213); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(213, 213, 213); padding-top: 11px; padding-right: 21px; padding-bottom: 11px; padding-left: 21px; font-size: 12px; font-family: Monaco, monospace; white-space: pre; margin-bottom: 42px; line-height: 18px; "&gt;#import &amp;lt;Cocoa/Cocoa.h&amp;gt;    &lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;@interface&lt;/em&gt; Photo : NSObject {    &lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;NSString*&lt;/em&gt; caption;    &lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;NSString*&lt;/em&gt; photographer;}&lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;@end&lt;/em&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;먼저, 우리는 코코아 어플리케이션을 위해서 기본적인 클래스들을 끌어쓰기 위해 &lt;font class="Apple-style-span" color="#000000"&gt;&lt;b&gt;Cocoa.h&lt;/b&gt;&lt;/font&gt; 를 임포트 합니다. &lt;font class="Apple-style-span" color="#000000"&gt;&lt;b&gt;#import&lt;/b&gt;&lt;/font&gt; directive(이하 지시어)는 하나의 파일을 여러번 include 하는 것을 자동으로 방지 해줍니다.&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;&lt;font class="Apple-style-span" color="#000000"&gt;&lt;b&gt;@interface&lt;/b&gt;&lt;/font&gt;는 이것이 &lt;font class="Apple-style-span" color="#000000"&gt;&lt;b&gt;Photo&lt;/b&gt;&lt;/font&gt; 클래스의 선언이다 라는 것을 말해줍니다. 콜론은 NSObject와 같은 superclass(이하 슈퍼클래스)를 명시할 때 사용합니다.&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;중괄호 안에는 두개의 인스턴스 변수가 있습니다:&lt;font class="Apple-style-span" color="#000000"&gt;&lt;b&gt; caption, photographer&lt;/b&gt;&lt;/font&gt;. 두개 모두 NSStrings 이지만, id를 포함한 어떤 오브젝트 타입도 될 수 있습니다.&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;마지막으로, &lt;font class="Apple-style-span" color="#000000"&gt;&lt;b&gt;@end&lt;/b&gt;&lt;/font&gt; 심볼은 클래스 선언의 종료를 의미합니다.&lt;br /&gt;&lt;/div&gt;&lt;div class="cl" style="clear: both; "&gt;&amp;nbsp;&lt;/div&gt;&lt;h4 style="font-family: 'Helvetica Neue', 'Lucida Grande', sans-serif; font-weight: bold; color: rgb(101, 101, 101); padding-left: 21px; float: none; margin-top: 10px; width: auto; font-size: 16px; margin-bottom: 12px; "&gt;Add Methods&lt;/h4&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;인터페이스 변수들를 위한 getter 몇개를 추가 해봅시다:&lt;br /&gt;&lt;/div&gt;&lt;div class="cl" style="clear: both; "&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="codeblock" style="color: rgb(66, 66, 66); background-color: rgb(235, 235, 235); border-top-width: 1px; border-top-style: solid; border-top-color: rgb(213, 213, 213); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(213, 213, 213); padding-top: 11px; padding-right: 21px; padding-bottom: 11px; padding-left: 21px; font-size: 12px; font-family: Monaco, monospace; white-space: pre; margin-bottom: 42px; line-height: 18px; "&gt;#import &amp;lt;Cocoa/Cocoa.h&amp;gt;    @interface Photo : NSObject {    NSString* caption;    NSString* photographer;}- &lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;caption&lt;/em&gt;;- &lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;photographer&lt;/em&gt;;@end        &lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;Objective-C 메소드들은 일반적으로 "get" 접두어를 생략한다는 것을 기억합시다. 메소드 이름 앞의 하나의 '-'는 이것이 인터페이스 메소드이다 라는 것을 의미합니다. 메소드 이름 앞의 '+'는 이것은 클래스 메소드이다 라는 것을 의미합니다.&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;기본적으로, 컴파일러는 메소드가 하나의 id 객체를 반환할 것이고, 모든 입력 변수들이 id 일것 이라고 추정합니다. 위의 코드는 기술적으로 정확하지만 이것은 흔하지 않습니다. 반환 값을 위한 명확한 타입을 추가해 보겠습니다:&lt;br /&gt;&lt;/div&gt;&lt;div class="cl" style="clear: both; "&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="codeblock" style="color: rgb(66, 66, 66); background-color: rgb(235, 235, 235); border-top-width: 1px; border-top-style: solid; border-top-color: rgb(213, 213, 213); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(213, 213, 213); padding-top: 11px; padding-right: 21px; padding-bottom: 11px; padding-left: 21px; font-size: 12px; font-family: Monaco, monospace; white-space: pre; margin-bottom: 42px; line-height: 18px; "&gt;#import &amp;lt;Cocoa/Cocoa.h&amp;gt;    @interface Photo : NSObject {    NSString* caption;    NSString* photographer;}- (&lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;NSString*&lt;/em&gt;) caption;- (&lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;NSString*&lt;/em&gt;) photographer;@end        &lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;이제 setter를 추가해 봅시다:&lt;br /&gt;&lt;/div&gt;&lt;div class="cl" style="clear: both; "&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="codeblock" style="color: rgb(66, 66, 66); background-color: rgb(235, 235, 235); border-top-width: 1px; border-top-style: solid; border-top-color: rgb(213, 213, 213); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(213, 213, 213); padding-top: 11px; padding-right: 21px; padding-bottom: 11px; padding-left: 21px; font-size: 12px; font-family: Monaco, monospace; white-space: pre; margin-bottom: 42px; line-height: 18px; "&gt;#import &amp;lt;Cocoa/Cocoa.h&amp;gt;    @interface Photo : NSObject {    NSString* caption;    NSString* photographer;}- (NSString*) caption;- (NSString*) photographer;- (void) &lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;setCaption&lt;/em&gt;: (NSString*)input;- (void) &lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;setPhotographer&lt;/em&gt;: (NSString*)input;@end        &lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;setter는 반환값을 필요로 하지 않으므로, 우리는 그것들을 &lt;b&gt;&lt;font class="Apple-style-span" color="#000000"&gt;void&lt;/font&gt;&lt;/b&gt;로 명시합니다.&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="padding:10px;background-color:#f4f4f4;border:1px solid #cccccc;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Lucida Grande', sans-serif; font-size: 11px; line-height: 21px; color: rgb(48, 48, 48); "&gt;&lt;h3 style="font-family: 'Helvetica Neue', 'Lucida Grande', sans-serif; font-weight: bold; color: rgb(0, 91, 177); padding-left: 21px; float: none; margin-top: 10px; width: auto; font-size: 16px; "&gt;Class Implementation&lt;/h3&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;구현부를 만들어 봅시다, getter로 시작합니다:&lt;span class="Apple-style-span" style="color: rgb(48, 48, 48); font-size: 11px; "&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="cl" style="clear: both; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="codeblock" style="color: rgb(66, 66, 66); background-color: rgb(235, 235, 235); border-top-width: 1px; border-top-style: solid; border-top-color: rgb(213, 213, 213); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(213, 213, 213); padding-top: 11px; padding-right: 21px; padding-bottom: 11px; padding-left: 21px; font-size: 12px; font-family: Monaco, monospace; white-space: pre; margin-bottom: 42px; line-height: 18px; "&gt;#import "Photo.h"&lt;div class="imageblock right" style="float: right; margin-left: 10px;"&gt;&lt;img src="http://ss.textcube.com/blog/3/33793/attach/XbbdecxbbH.png" style="width:133px;height:167px;" alt=""  /&gt;&lt;/div&gt;&lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;@implementation&lt;/em&gt; Photo    - (NSString*) caption {    &lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;return&lt;/em&gt; caption;}- (NSString*) photographer {    &lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;return&lt;/em&gt; photographer;}&lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;@end&lt;/em&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;코드 중 이 파트는 &lt;font class="Apple-style-span" color="#000000"&gt;&lt;b&gt;@implementation&lt;/b&gt;&lt;/font&gt; 과 클래스 이름으로 시작하고, interface와 같이 &lt;font class="Apple-style-span" color="#000000"&gt;&lt;b&gt;@end&lt;/b&gt;&lt;/font&gt;를 갖습니다. 모든 메소드들은 반드시 두 문장 사이에 있어야 합니다.&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;코드를 작성 해봤다면 getter는 메우 익숙해 보일 수 있어서, setter의 설명이 조금 더 필요할 것 같습니다:&lt;br /&gt;&lt;/div&gt;&lt;div class="cl" style="clear: both; "&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="codeblock" style="color: rgb(66, 66, 66); background-color: rgb(235, 235, 235); border-top-width: 1px; border-top-style: solid; border-top-color: rgb(213, 213, 213); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(213, 213, 213); padding-top: 11px; padding-right: 21px; padding-bottom: 11px; padding-left: 21px; font-size: 12px; font-family: Monaco, monospace; white-space: pre; margin-bottom: 42px; line-height: 18px; "&gt;- (void) setCaption: (NSString*)input{    [caption &lt;em class="memorymanagement" style="color: rgb(192, 9, 0); font-style: normal; "&gt;autorelease&lt;/em&gt;];    caption = [input &lt;em class="memorymanagement" style="color: rgb(192, 9, 0); font-style: normal; "&gt;retain&lt;/em&gt;];}- (void) setPhotographer: (NSString*)input{    [photographer &lt;em class="memorymanagement" style="color: rgb(192, 9, 0); font-style: normal; "&gt;autorelease&lt;/em&gt;];    photographer = [input &lt;em class="memorymanagement" style="color: rgb(192, 9, 0); font-style: normal; "&gt;retain&lt;/em&gt;];}&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;각각의 setter는 두개의 변수와 함께 다뤄집니다. 첫번째는 존재하는 객체를 참조하기 위함이고, 두번째는 새로운 입력 객체입니다. garbage collect가 적용된 환경에서 우리는 새로운 값을 직접 설정할 수 있었습니다:&lt;br /&gt;&lt;/div&gt;&lt;div class="cl" style="clear: both; "&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="codeblock singlelinecode" style="color: rgb(66, 66, 66); background-color: rgb(235, 235, 235); border-top-width: 1px; border-top-style: solid; border-top-color: rgb(213, 213, 213); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(213, 213, 213); padding-top: 11px; padding-right: 21px; padding-bottom: 11px; padding-left: 21px; font-size: 12px; font-family: Monaco, monospace; white-space: pre; margin-bottom: 12px; line-height: 18px; "&gt;- (void) setCaption: (NSString*)input {    caption = input;}    &lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;하지만 만일 여러분들이 garbage collection을 이용할 수 없다면, 오래된 객체를 &lt;font class="Apple-style-span" color="#000000"&gt;&lt;b&gt;해재&lt;/b&gt;&lt;/font&gt;하고 새로운 것을 &lt;font class="Apple-style-span" color="#000000"&gt;&lt;b&gt;유지&lt;/b&gt;&lt;/font&gt;해야 할 필요가 있습니다.&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;실제로 객체에서 참조를 자유롭게 하는 방법은 &lt;font class="Apple-style-span" color="#000000"&gt;&lt;b&gt;해제&lt;/b&gt;&lt;/font&gt;와 &lt;font class="Apple-style-span" color="#000000"&gt;&lt;b&gt;자동해제&lt;font class="Apple-style-span" color="#999999"&gt; &lt;/font&gt;&lt;/b&gt;&lt;font class="Apple-style-span" color="#666666"&gt;두가지가 있다. 일반적인 해제는 참조를 즉시 제거해 준다. 자동해제 메소드는 일정시간 후에 해제를 하지만, 이는 분명히 현재의 함수가 종료 될 때 까지 머무르게 됩니다(만일 여러분들이 이것을 바꾸기 위한 특별한 코드를 작성하지 않았다면).&lt;/font&gt;&lt;/font&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;자동해제 메소드는 setter 안에서 더 안전한데, 이는 새롭고 오래된 값들을 위한 변수들이 같은 객체를 가리킬 수 있기 때문이다. 여러분들은 유지시키고 싶은 오브젝트가 바로 해제되는 것을 원하지 않을 것입니다. &lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;이러한 개념이 지금은 혼란스러울 수 있지만, 점점 여러분들이 나아가는데 도움이 될 것이다. 지금은 이것을 모두 숙지하지 않아도 됩니다.&lt;br /&gt;&lt;/div&gt;&lt;div class="cl" style="clear: both; "&gt;&amp;nbsp;&lt;/div&gt;&lt;h4 style="font-family: 'Helvetica Neue', 'Lucida Grande', sans-serif; font-weight: bold; color: rgb(101, 101, 101); padding-left: 21px; float: none; margin-top: 10px; width: auto; font-size: 16px; margin-bottom: 12px; "&gt;Init&lt;/h4&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;우리는 인스턴스 변수들을 위해 값들을 초기화는 init 메소들을 만들 수 있습니다:&lt;br /&gt;&lt;/div&gt;&lt;div class="cl" style="clear: both; "&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="codeblock" style="color: rgb(66, 66, 66); background-color: rgb(235, 235, 235); border-top-width: 1px; border-top-style: solid; border-top-color: rgb(213, 213, 213); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(213, 213, 213); padding-top: 11px; padding-right: 21px; padding-bottom: 11px; padding-left: 21px; font-size: 12px; font-family: Monaco, monospace; white-space: pre; margin-bottom: 42px; line-height: 18px; "&gt;- (id) &lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;init&lt;/em&gt;{    if ( self = [&lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;super init&lt;/em&gt;] )    {        [self setCaption:@"Default Caption"];        [self setPhotographer:@"Default Photographer"];    }    return self;}&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;이것은 매우자명하긴 하지만, 두번째 줄이 아주 조금 낯설어 보입니다. 이것은 하나의 equals sign(=)이고, 이는 &lt;font class="Apple-style-span" color="#000000"&gt;&lt;b&gt;[super init]&lt;/b&gt;&lt;/font&gt;의 결과를 &lt;font class="Apple-style-span" color="#000000"&gt;&lt;b&gt;self&lt;/b&gt;&lt;/font&gt;에 할당하게 됩니다.&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;이것은 근본적으로 슈퍼클래스가 스스로 초기화 하게 요청하게 됩니다. &lt;font class="Apple-style-span" color="#000000"&gt;&lt;b&gt;if&lt;/b&gt;&lt;/font&gt; 구문은 기본값을 설정하기 전에 초기화가 성공적으로 이루어졌는가를 확인합니다.&lt;br /&gt;&lt;/div&gt;&lt;div class="cl" style="clear: both; "&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="cl" style="clear: both; "&gt;&amp;nbsp;&lt;/div&gt;&lt;h4 style="font-family: 'Helvetica Neue', 'Lucida Grande', sans-serif; font-weight: bold; color: rgb(101, 101, 101); padding-left: 21px; float: none; margin-top: 10px; width: auto; font-size: 16px; margin-bottom: 12px; "&gt;Dealloc&lt;/h4&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;&lt;font class="Apple-style-span" color="#000000"&gt;&lt;b&gt;dealloc&lt;/b&gt;&lt;/font&gt; 메소드는 메모리로 부터 객체가 제거될 때 객체에서 호출됩니다.. 이는 흔히 여러분들의 모든 child 인스턴스 변수들의 참조를 해제하기 위한 최선의 시점입니다.&lt;br /&gt;&lt;/div&gt;&lt;div class="cl" style="clear: both; "&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="codeblock" style="color: rgb(66, 66, 66); background-color: rgb(235, 235, 235); border-top-width: 1px; border-top-style: solid; border-top-color: rgb(213, 213, 213); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(213, 213, 213); padding-top: 11px; padding-right: 21px; padding-bottom: 11px; padding-left: 21px; font-size: 12px; font-family: Monaco, monospace; white-space: pre; margin-bottom: 42px; line-height: 18px; "&gt;- (void) dealloc{    [caption &lt;em class="memorymanagement" style="color: rgb(192, 9, 0); font-style: normal; "&gt;release&lt;/em&gt;];    [photographer &lt;em class="memorymanagement" style="color: rgb(192, 9, 0); font-style: normal; "&gt;release&lt;/em&gt;];    [&lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;super dealloc&lt;/em&gt;];}&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;첫번째 두 줄은 우리가 각각의 인스턴스 변수들을 해제하기 위해 &amp;nbsp;메시지를 보낸 것입니다. 여기서 자동해제는 필요하지 않으며, 스탠다드 릴리즈가 조금더 빠릅니다.&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;마지막 줄은 매우 중요합니다. 우리는 수퍼클래스가 클린업하도록 요청하기 위해서 &lt;b&gt;&lt;font class="Apple-style-span" color="#000000"&gt;[super dealloc]&lt;/font&gt;&lt;/b&gt;메시지를 반드시 보내야 합니다. 만약에 우리가 이걸 하지 않으면, 객체는 제거되지 않을 것이고 메모리 누수가 발생할 것입니다.&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;dealloc 메소드는 grabage collection을 이용할 수 있다면 객체에서 호출하지 않습니다. 대신, 여러분들은&lt;b&gt;&lt;font class="Apple-style-span" color="#000000"&gt; finalize&lt;/font&gt;&lt;/b&gt; 메소드를 실행해야 합니다.&lt;span class="Apple-style-span" style="color: rgb(48, 48, 48); font-size: 11px; "&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="padding:10px;background-color:#f4f4f4;border:1px solid #cccccc;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Lucida Grande', sans-serif; font-size: 11px; line-height: 21px; color: rgb(48, 48, 48); "&gt;&lt;h3 style="font-family: 'Helvetica Neue', 'Lucida Grande', sans-serif; font-weight: bold; color: rgb(0, 91, 177); padding-left: 21px; float: none; margin-top: 10px; width: auto; font-size: 16px; "&gt;More on Memory Management&lt;/h3&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;Objecive-C의 메모리 관리 시스템은 reference counting 이라고 부릅니다. 여러분들은 반드시 여러분들의 참조들을 계속 파악하고 있어야하고, 런타임은 메모리를 해제합니다.&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;이해하기 쉽기 말하자면, 여러분은 어떤때에 객체를 &lt;b&gt;&lt;font class="Apple-style-span" color="#000000"&gt;alloc&lt;/font&gt;&lt;/b&gt; 하거나, &lt;font class="Apple-style-span" color="#000000"&gt;&lt;b&gt;retain&lt;/b&gt;&lt;/font&gt; 하는데, 당신이 보낸 각각의 alloc/retain을 위해 하나의 &lt;font class="Apple-style-span" color="#000000"&gt;&lt;b&gt;해제&lt;/b&gt;&lt;/font&gt;를 보냅니다. 그리고 만일 여러분들이 alloc 을 한번, 그리고 retain을 한번 사용했다면, 해제를 두번 해야 합니다.&lt;br /&gt;&lt;/div&gt;&lt;div class="cl" style="clear: both; "&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="featuredimagebox" style="background-color: rgb(240, 240, 240); border-top-width: 1px; border-right-width: initial; border-bottom-width: 1px; border-left-width: initial; border-top-style: solid; border-right-style: none; border-bottom-style: solid; border-left-style: none; border-top-color: rgb(213, 213, 213); border-right-color: initial; border-bottom-color: rgb(213, 213, 213); border-left-color: initial; text-align: center; margin-bottom: 21px; "&gt;&lt;div class="imageblock center" style="text-align: center; clear: both;"&gt;&lt;img src="http://ss.textcube.com/blog/3/33793/attach/XQFjHSkfup.png" style="width:480px;height:118px;" alt="" onclick="TC$PRIV_open_img('http://ss.textcube.com/blog/3/33793/attach/XQFjHSkfup.png')" /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;이것이 레퍼런스 카운팅의 이론이지만, 연습에서는 하나의 객체를 생성하기 위한 두가지 이유가 있습니다:&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;1. 인스턴스 변수를 유지하기 위해&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;2. 함수안에서 일시적으로 한번 사용하기 위해&lt;br /&gt;&lt;br /&gt;대부분의 경우, 인스턴스 변수를 위한 setter는 오래된 객체를 &lt;font class="Apple-style-span" color="#000000"&gt;&lt;b&gt;자동 해제&lt;/b&gt;&lt;/font&gt;하고, 새로운 것을 &lt;font class="Apple-style-span" color="#000000"&gt;&lt;b&gt;유지&lt;/b&gt;&lt;/font&gt;합니다. 그런 후 여러분들은 &lt;font class="Apple-style-span" color="#000000"&gt;&lt;b&gt;dealloc&lt;/b&gt;&lt;/font&gt; 에서 해제가 잘 되었는지 반드시 확인해야 합니다.&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;그래서 진짜 일은 함수안의 지역 참조들을 관리하는 것입니다. 그리고 거기에는 오직 한가지 규칙이 있습니다: 만일 여러분들이 객체를 &lt;font class="Apple-style-span" color="#000000"&gt;&lt;b&gt;alloc&lt;/b&gt;&lt;/font&gt; 또는 &lt;font class="Apple-style-span" color="#000000"&gt;&lt;b&gt;copy&lt;/b&gt;&lt;/font&gt;와 함께 생성했다면, &lt;font class="Apple-style-span" color="#000000"&gt;&lt;b&gt;해제&lt;/b&gt;&lt;/font&gt; 또는 &lt;font class="Apple-style-span" color="#000000"&gt;&lt;b&gt;자동해제&lt;/b&gt;&lt;/font&gt; 메시지를 함수의 종료 순간에 보내야 합니다. 다른 방법으로 객체를 선택했다면 그렇게 하지 않아도 됩니다.&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;인스턴스 변수를 관리하는 첫번째 경우가 여기에 있습니다:&lt;br /&gt;&lt;/div&gt;&lt;div class="cl" style="clear: both; "&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="codeblock" style="color: rgb(66, 66, 66); background-color: rgb(235, 235, 235); border-top-width: 1px; border-top-style: solid; border-top-color: rgb(213, 213, 213); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(213, 213, 213); padding-top: 11px; padding-right: 21px; padding-bottom: 11px; padding-left: 21px; font-size: 12px; font-family: Monaco, monospace; white-space: pre; margin-bottom: 42px; line-height: 18px; "&gt;- (void) setTotalAmount: (NSNumber*)input{    [totalAmount &lt;em class="memorymanagement" style="color: rgb(192, 9, 0); font-style: normal; "&gt;autorelease&lt;/em&gt;];    totalAmount = [input &lt;em class="memorymanagement" style="color: rgb(192, 9, 0); font-style: normal; "&gt;retain&lt;/em&gt;];}- (void) dealloc{    [totalAmount &lt;em class="memorymanagement" style="color: rgb(192, 9, 0); font-style: normal; "&gt;release&lt;/em&gt;];    [super dealloc];}&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;여기에 local references의 다른 경우가 있습니다. 우리는 오직 &lt;font class="Apple-style-span" color="#000000"&gt;&lt;b&gt;alloc&lt;/b&gt;&lt;/font&gt; 과 함께 생성된 객체만 해제하면 된다:&lt;br /&gt;&lt;/div&gt;&lt;div class="cl" style="clear: both; "&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="codeblock" style="color: rgb(66, 66, 66); background-color: rgb(235, 235, 235); border-top-width: 1px; border-top-style: solid; border-top-color: rgb(213, 213, 213); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(213, 213, 213); padding-top: 11px; padding-right: 21px; padding-bottom: 11px; padding-left: 21px; font-size: 12px; font-family: Monaco, monospace; white-space: pre; margin-bottom: 42px; line-height: 18px; "&gt;NSNumber* value1 = [[NSNumber &lt;em class="memorymanagement" style="color: rgb(192, 9, 0); font-style: normal; "&gt;alloc&lt;/em&gt;] initWithFloat:8.75];NSNumber* value2 = [NSNumber &lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;numberWithFloat&lt;/em&gt;:14.78];&lt;strong style="color: rgb(120, 120, 120); padding-top: 2px; padding-right: 8px; padding-bottom: 2px; padding-left: 2px; background-color: rgb(242, 242, 242); font-weight: normal; "&gt;// only release value1, not value2&lt;/strong&gt;[value1 &lt;em class="memorymanagement" style="color: rgb(192, 9, 0); font-style: normal; "&gt;release&lt;/em&gt;];&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;그리고 여기에 콤보가 있습니다: 인스턴스 변수처럼 객체를 설정하기 위한 local reference를 사용하기:&lt;br /&gt;&lt;/div&gt;&lt;div class="cl" style="clear: both; "&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="codeblock" style="color: rgb(66, 66, 66); background-color: rgb(235, 235, 235); border-top-width: 1px; border-top-style: solid; border-top-color: rgb(213, 213, 213); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(213, 213, 213); padding-top: 11px; padding-right: 21px; padding-bottom: 11px; padding-left: 21px; font-size: 12px; font-family: Monaco, monospace; white-space: pre; margin-bottom: 42px; line-height: 18px; "&gt;NSNumber* value1 = [[NSNumber &lt;em class="memorymanagement" style="color: rgb(192, 9, 0); font-style: normal; "&gt;alloc&lt;/em&gt;] initWithFloat:8.75];[self &lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;setTotal&lt;/em&gt;:value1];NSNumber* value2 = [NSNumber &lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;numberWithFloat&lt;/em&gt;:14.78];[self &lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;setTotal&lt;/em&gt;:value2];[value1 &lt;em class="memorymanagement" style="color: rgb(192, 9, 0); font-style: normal; "&gt;release&lt;/em&gt;];&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;local reference를 관리하는 규칙은 그것들을 인스턴스 변수로 설정 했는지 하지 않았는지 고려하지 않아도 동일하다. 여러분들은 setter를 어떻게 구현할까에 대해선 생각하지 않아도 됩니다.&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;여러분들이 이것을 이해한다면, Objective-C의 메모리 관리에 대해 알아야할 부분 중 90%를 이해한 것입니다.&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="padding:10px;background-color:#f4f4f4;border:1px solid #cccccc;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Lucida Grande', sans-serif; font-size: 11px; line-height: 21px; color: rgb(48, 48, 48); "&gt;&lt;h3 style="font-family: 'Helvetica Neue', 'Lucida Grande', sans-serif; font-weight: bold; color: rgb(0, 91, 177); padding-left: 21px; float: none; margin-top: 10px; width: auto; font-size: 16px; "&gt;Logging&lt;/h3&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;Objective-C 에서 Logging 메시지를 콘솔에 보내는 것은 매우 단순합니다. 사실, &lt;font class="Apple-style-span" color="#000000"&gt;&lt;b&gt;NSLog()&lt;/b&gt;&lt;/font&gt;가 객체를 위해 &lt;font class="Apple-style-span" color="#000000"&gt;&lt;b&gt;%@&lt;/b&gt;&lt;/font&gt; 토큰을 추가 했다는 점을 제외하면 C의 &lt;font class="Apple-style-span" color="#000000"&gt;&lt;b&gt;Printf()&lt;/b&gt;&lt;/font&gt; 함수와 유사합니다. &lt;br /&gt;&lt;/div&gt;&lt;div class="cl" style="clear: both; "&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="codeblock singlelinecode" style="color: rgb(66, 66, 66); background-color: rgb(235, 235, 235); border-top-width: 1px; border-top-style: solid; border-top-color: rgb(213, 213, 213); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(213, 213, 213); padding-top: 11px; padding-right: 21px; padding-bottom: 11px; padding-left: 21px; font-size: 12px; font-family: Monaco, monospace; white-space: pre; margin-bottom: 12px; line-height: 18px; "&gt;&lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;NSLog&lt;/em&gt; ( @"The current date and time is: &lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;%@&lt;/em&gt;", [NSDate date] );&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;여러분들은 콘솔에 객체의 로그를 남길 수 있습니다. NSLog 함수는 객체에서 &lt;font class="Apple-style-span" color="#000000"&gt;&lt;b&gt;description&lt;/b&gt;&lt;/font&gt; 메소드를 호출할 수 있고 반환값을 NSString 으로 찍을 수 있습니다. 여러분들은 커스텀 스트링을 반환하게 하기 위해서 여러분들의 클래스 안의 description 메소드를 override(이하 오버라이드)할 수 있습니다.&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="padding:10px;background-color:#f4f4f4;border:1px solid #cccccc;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Lucida Grande', sans-serif; font-size: 11px; line-height: 21px; color: rgb(48, 48, 48); "&gt;&lt;h3 style="font-family: 'Helvetica Neue', 'Lucida Grande', sans-serif; font-weight: bold; color: rgb(0, 91, 177); padding-left: 21px; float: none; margin-top: 10px; width: auto; font-size: 16px; "&gt;Properties&lt;/h3&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;우리가 &lt;font class="Apple-style-span" color="#000000"&gt;&lt;b&gt;caption&lt;/b&gt;&lt;/font&gt; 과 &lt;font class="Apple-style-span" color="#000000"&gt;&lt;b&gt;author&lt;/b&gt;&lt;/font&gt; 를 위해 접근자 메소드를 쓰기 전에 여러분들은 코드가 직관적이고 일반적일 수 있다는 것을 알아차릴 수 있을 것입니다.&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;Properties 는 우리에게 Objective-C 에서 접근자를 자동으로 만들어낼 수 있게 허락하는 특징을 가지고 있고, 또한 몇가지 다른면으로장점을 가지고 있습니다. properties를 이용하여 Photo 클래스를 컨버팅 해봅시다.&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;여기에 예전과 같은 모습의 코드가 있습니다:&lt;br /&gt;&lt;/div&gt;&lt;div class="cl" style="clear: both; "&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="codeblock" style="color: rgb(66, 66, 66); background-color: rgb(235, 235, 235); border-top-width: 1px; border-top-style: solid; border-top-color: rgb(213, 213, 213); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(213, 213, 213); padding-top: 11px; padding-right: 21px; padding-bottom: 11px; padding-left: 21px; font-size: 12px; font-family: Monaco, monospace; white-space: pre; margin-bottom: 42px; line-height: 18px; "&gt;#import &amp;lt;Cocoa/Cocoa.h&amp;gt;@interface Photo : NSObject {    NSString* caption;    NSString* photographer;}- (NSString*) caption;- (NSString*) photographer;- (void) &lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;setCaption&lt;/em&gt;: (NSString*)input;- (void) &lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;setPhotographer&lt;/em&gt;: (NSString*)input;@end&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;여기에 properties로 컨버팅된 코드가 있습니다:&lt;br /&gt;&lt;/div&gt;&lt;div class="cl" style="clear: both; "&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="codeblock" style="color: rgb(66, 66, 66); background-color: rgb(235, 235, 235); border-top-width: 1px; border-top-style: solid; border-top-color: rgb(213, 213, 213); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(213, 213, 213); padding-top: 11px; padding-right: 21px; padding-bottom: 11px; padding-left: 21px; font-size: 12px; font-family: Monaco, monospace; white-space: pre; margin-bottom: 42px; line-height: 18px; "&gt;#import &amp;lt;Cocoa/Cocoa.h&amp;gt;@interface Photo : NSObject {    NSString* caption;    NSString* photographer;}&lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;@property&lt;/em&gt; (retain) NSString* &lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;caption&lt;/em&gt;;&lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;@property&lt;/em&gt; (retain) NSString* &lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;photographer&lt;/em&gt;;@end&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;&lt;b&gt;&lt;font class="Apple-style-span" color="#000000"&gt;@property&lt;/font&gt;&lt;/b&gt; 는 특성을 선언하는 Objective-C 지시자 입니다. 괄호 안의 "retain"은 setter가 &amp;nbsp;입력값을 &lt;font class="Apple-style-span" color="#000000"&gt;&lt;b&gt;retain &lt;/b&gt;&lt;/font&gt;하도록 명시하고, 그리고 나머지 줄은 간단하게 타입과 특성의 이름을 명시합니다.&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;지금 바로 클래스의 구현부를 봅시다:&lt;br /&gt;&lt;/div&gt;&lt;div class="cl" style="clear: both; "&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="codeblock" style="color: rgb(66, 66, 66); background-color: rgb(235, 235, 235); border-top-width: 1px; border-top-style: solid; border-top-color: rgb(213, 213, 213); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(213, 213, 213); padding-top: 11px; padding-right: 21px; padding-bottom: 11px; padding-left: 21px; font-size: 12px; font-family: Monaco, monospace; white-space: pre; margin-bottom: 42px; line-height: 18px; "&gt;#import "Photo.h"        @implementation Photo&lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;@synthesize&lt;/em&gt; caption;&lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;@synthesize&lt;/em&gt; photographer;- (void) dealloc{    [caption &lt;em class="memorymanagement" style="color: rgb(192, 9, 0); font-style: normal; "&gt;release&lt;/em&gt;];    [photographer &lt;em class="memorymanagement" style="color: rgb(192, 9, 0); font-style: normal; "&gt;release&lt;/em&gt;];    [super dealloc];}@end&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;&lt;font class="Apple-style-span" color="#000000"&gt;&lt;b&gt;@synthesize&lt;/b&gt;&lt;/font&gt; 지시자는 우리를 위해 자동으로 setter와 getter를 만들어 주므로, 이 클래스를 위해 우리가 해야하는 일은 dealloc 메소드 입니다. &lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;접근자는 이미지 존재하는 것이 아니라면 생성만 할 수 있으므로, property를 위해 자유롭게 @synthesize를 명시하면 되고, 만일 여러분들이 원한다면 여러분들의 커스텀 getter 또는 setter를 구현할 수 있습니다. 컴파일러는 어느쪽이든 잃어버린 메소드들을 채워 줄 것입니다.&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;property를 선언하는 많은 다른 방법들이 있지만 이 튜토리얼에서는 다루지 않을 것입니다.&lt;br /&gt;&lt;/div&gt;&lt;div class="cl" style="clear: both; "&gt;&amp;nbsp;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="padding:10px;background-color:#f4f4f4;border:1px solid #cccccc;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Lucida Grande', sans-serif; font-size: 11px; line-height: 21px; color: rgb(48, 48, 48); "&gt;&lt;h3 style="font-family: 'Helvetica Neue', 'Lucida Grande', sans-serif; font-weight: bold; color: rgb(0, 91, 177); padding-left: 21px; float: none; margin-top: 10px; width: auto; font-size: 16px; "&gt;Calling Methods on Nil&lt;/h3&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;Objective-C 에서, nil 객체는 다른 많은 언어의 NULL 포인터와 상응하는 기능입니다. 다른 언어와 다른점은 충돌이나, 예외없이 nil 메소드를 호출할 수 있다는 점입니다.&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;이 테크닉은 프레임워크에서 다양한 방법으로 사용되고 있지만, 이것이 의미하는 가장 중요한 점은 지금 당장 객체에서 메소드를 호출하기 전에 nil을 체크하지 않아도 &amp;nbsp;된다는 것입니다. 만일 여러분들이 객체에서 반환된 nil 메소드를 호출한다면, 여러분들은 반환값으로 nil을 갖게됩니다.&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;우리는 또한 이것을 우리의 deallc 메소드를 개선시키는 것에 이용할 수 있습니다:&lt;br /&gt;&lt;/div&gt;&lt;div class="cl" style="clear: both; "&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="codeblock" style="color: rgb(66, 66, 66); background-color: rgb(235, 235, 235); border-top-width: 1px; border-top-style: solid; border-top-color: rgb(213, 213, 213); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(213, 213, 213); padding-top: 11px; padding-right: 21px; padding-bottom: 11px; padding-left: 21px; font-size: 12px; font-family: Monaco, monospace; white-space: pre; margin-bottom: 42px; line-height: 18px; "&gt;- (void) dealloc{    &lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;self&lt;/em&gt;.caption = &lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;nil&lt;/em&gt;;    &lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;self&lt;/em&gt;.photographer = &lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;nil&lt;/em&gt;;    [super dealloc];}&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;이렇게 해도 작동하는데 이는 우리가 인스턴스 변수로 &lt;b&gt;&lt;font class="Apple-style-span" color="#000000"&gt;nil&lt;/font&gt;&lt;/b&gt;을 설정 했을 때 setter는 nil을 retain 하고 오래된 값을 release 하기 때문입니다. 이러한 접근은 종종 dealloc 보다 나은데 왜냐하면 변수가 있었던 객체의 랜덤데이터를 가리킬 염려가 없기 때문입니다.&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;우리는 &lt;b&gt;&lt;font class="Apple-style-span" color="#000000"&gt;self.&amp;lt;var&amp;gt;&lt;/font&gt;&lt;/b&gt; 문법을 이용하고 있다는 점을 명심하십시오. 이는 우리가 setter를 이용하고 있다는 것과 메모리 관리를 자유롭게 이용하는 것을 의미하고 있습니다. 만일 우리가 아래와 같이 값을 직접 설정하면 메모리 누수가 발생 할 것이다:&lt;br /&gt;&lt;/div&gt;&lt;div class="cl" style="clear: both; "&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="codeblock" style="color: rgb(66, 66, 66); background-color: rgb(235, 235, 235); border-top-width: 1px; border-top-style: solid; border-top-color: rgb(213, 213, 213); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(213, 213, 213); padding-top: 11px; padding-right: 21px; padding-bottom: 11px; padding-left: 21px; font-size: 12px; font-family: Monaco, monospace; white-space: pre; margin-bottom: 42px; line-height: 18px; "&gt;&lt;strong style="color: rgb(120, 120, 120); padding-top: 2px; padding-right: 8px; padding-bottom: 2px; padding-left: 2px; background-color: rgb(242, 242, 242); font-weight: normal; "&gt;// incorrect. causes a memory leak.&lt;/strong&gt;&lt;strong style="color: rgb(120, 120, 120); padding-top: 2px; padding-right: 8px; padding-bottom: 2px; padding-left: 2px; background-color: rgb(242, 242, 242); font-weight: normal; "&gt;// use self.caption to go through setter&lt;/strong&gt;caption = nil;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="padding:10px;background-color:#f4f4f4;border:1px solid #cccccc;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Lucida Grande', sans-serif; font-size: 11px; line-height: 21px; color: rgb(48, 48, 48); "&gt;&lt;h3 style="font-family: 'Helvetica Neue', 'Lucida Grande', sans-serif; font-weight: bold; color: rgb(0, 91, 177); padding-left: 21px; float: none; margin-top: 10px; width: auto; font-size: 16px; "&gt;Categories&lt;/h3&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;Categories는 Objective-C에서 가장 유용한 특징입니다. 요점만 말하자면, 카테고리는 존재하는 클래스에 서브클래스 없이, 또는 그것들이 어떻게 구현되었나에 대한 자세한 정보를 알 필요 없이 메소드를 추가할 수 있도록 허락 해줍니다.&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;만들어진 객체에 메소드를 추가할 수 있기 때문에 이것은 매우 유용합니다. 만일 여러분들이 여러분들의 어플리케이션 안에서 NSString의 모든 인스턴스에 메소드를 추가하기를 원하다면, 단지 하나의 카테고리를 추가하기만 하면 됩니다. 커스텀 서브클래스를 사용하기 위해서 모든것을 가질 필요가 없습니다.&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;예를들면, 컨텐츠가 URL인지 확인하기 위해 NSString에 메소드를 추가를 원한다면 저는 이렇게 구현할 것입니다:&lt;br /&gt;&lt;/div&gt;&lt;div class="cl" style="clear: both; "&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="codeblock" style="color: rgb(66, 66, 66); background-color: rgb(235, 235, 235); border-top-width: 1px; border-top-style: solid; border-top-color: rgb(213, 213, 213); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(213, 213, 213); padding-top: 11px; padding-right: 21px; padding-bottom: 11px; padding-left: 21px; font-size: 12px; font-family: Monaco, monospace; white-space: pre; margin-bottom: 42px; line-height: 18px; "&gt;#import &amp;lt;Cocoa/Cocoa.h&amp;gt;            &lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;@interface&lt;/em&gt; NSString (&lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;Utilities&lt;/em&gt;)- (BOOL) isURL;&lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;@end&lt;/em&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;이건 클래스를 선언하는 모습과 매우 습사합니다. 다른점은 수퍼클래스의 리스트가 없고, 괄호에 카테고리를 위한 이름이 있다는 것입니다. 이름은 여러분들이 원하는 무엇이는지 될 수 있지만, 안에 있는 메소드와 커뮤니케이션 해야합니다.&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;여기에 구현부가 있습니다. 이 예가 URL 검출의 좋은 구현예는 아니지만, 우리는 카테고리에 대한 컨셉을 배우는 것에 중점을 둡시다:&lt;br /&gt;&lt;/div&gt;&lt;div class="cl" style="clear: both; "&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="codeblock" style="color: rgb(66, 66, 66); background-color: rgb(235, 235, 235); border-top-width: 1px; border-top-style: solid; border-top-color: rgb(213, 213, 213); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(213, 213, 213); padding-top: 11px; padding-right: 21px; padding-bottom: 11px; padding-left: 21px; font-size: 12px; font-family: Monaco, monospace; white-space: pre; margin-bottom: 42px; line-height: 18px; "&gt;#import "NSString-Utilities.h"            &lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;@implementation&lt;/em&gt; NSString (&lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;Utilities&lt;/em&gt;)- (BOOL) &lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;isURL&lt;/em&gt;{    if ( [self hasPrefix:@"http://"] )        return &lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;YES&lt;/em&gt;;    else        return &lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;NO&lt;/em&gt;;}&lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;@end&lt;/em&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;이제 여러분은 어떤 NSString 에서도 이 메소드를 사용할 수 있습니다. 아래의 코드는 "string1 is a URL"을 콘솔에 출력할 것 입니다:&lt;br /&gt;&lt;/div&gt;&lt;div class="cl" style="clear: both; "&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="codeblock" style="color: rgb(66, 66, 66); background-color: rgb(235, 235, 235); border-top-width: 1px; border-top-style: solid; border-top-color: rgb(213, 213, 213); border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: rgb(213, 213, 213); padding-top: 11px; padding-right: 21px; padding-bottom: 11px; padding-left: 21px; font-size: 12px; font-family: Monaco, monospace; white-space: pre; margin-bottom: 42px; line-height: 18px; "&gt;NSString* string1 = @"http://pixar.com/";NSString* string2 = @"Pixar";if ( [string1 &lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;isURL&lt;/em&gt;] )    NSLog (@"string1 is a URL");if ( [string2 &lt;em style="color: rgb(0, 91, 177); font-style: normal; "&gt;isURL&lt;/em&gt;] )    NSLog (@"string2 is a URL");        &lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;서브클래스와 다르게, 카테고리는 인스턴스 변수를 추가할 수 없습니다. 하지만, 클래스 안에 이미 존재하는 메소드를 오버라이드(override)하기 위해 카테고리를 이용할 수 있지만, 매우 조심해야 합니다.&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 190px; padding-left: 21px; "&gt;기억해야 합니다, 여러분들이 카테고리를 이용해서 클래스로 변경시킬 경우에, 이것은 어플리케이션 전체에 걸친 클래스의 모든 인스턴스에 영향을 줄 수 있습니다.&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="padding:10px;background-color:#f4f4f4;border:1px solid #cccccc;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Lucida Grande', sans-serif; font-size: 11px; line-height: 21px; color: rgb(48, 48, 48); "&gt;&lt;h3 style="font-family: 'Helvetica Neue', 'Lucida Grande', sans-serif; font-weight: bold; color: rgb(0, 91, 177); padding-left: 21px; float: left; margin-top: 0px; width: 190px; font-size: 16px; "&gt;Wrap Up&lt;/h3&gt;&lt;div class="contentbody" style="margin-left: 190px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 20px; padding-left: 21px; "&gt;이것은 Objective-C의 기본적인 개요입니다. 다른 언어를 경험한적이 있다면 매우 쉽게 익힐 수 있습니다. 특별한 문법을 배우기 위해서는 충분하지 않으며, Cocoa 전반에 걸쳐 같은 예제가 계속해서 사용되었습니다.&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 190px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 20px; padding-left: 21px; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 190px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 20px; padding-left: 21px; "&gt;여러분들이 이 예제들을 실행해 보고 싶으시다면, 아래의 프로젝트를 다운로드 받으시고, 소스 코드를 살펴 보십시오:&lt;br /&gt;&lt;/div&gt;&lt;div class="contentbody" style="margin-left: 190px; color: rgb(99, 99, 99); font-size: 12px; padding-right: 20px; padding-left: 21px; "&gt;&lt;div style="text-align: center; background-color: rgb(236, 236, 236); background-image: url(http://cocoadevcentral.com/images/layout/column-background.png); background-repeat: repeat-x; padding-top: 8px; padding-right: 8px; padding-bottom: 8px; padding-left: 8px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(213, 213, 213); border-right-color: rgb(213, 213, 213); border-bottom-color: rgb(213, 213, 213); border-left-color: rgb(213, 213, 213); "&gt;&lt;a href="http://cocoadevcentral.com/downloads/LearnObjectiveC-20080414a.zip" style="color: rgb(0, 91, 177); text-decoration: none; "&gt;LearnObjectiveC&lt;/a&gt;&amp;nbsp;Xcode 3.0 Project (56k)&lt;/div&gt;&lt;/div&gt;&lt;div class="cl" style="clear: both; "&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="credits" style="margin-left: 0px; color: rgb(99, 99, 99); font-size: 11px; padding-top: 10px; padding-right: 20px; padding-bottom: 20px; padding-left: 211px; border-top-width: 1px; border-top-style: dashed; border-top-color: rgb(192, 192, 192); "&gt;고맙습니다.&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="padding:10px;background-color:#d0ff9d;border:1px solid #d0ff9d;"&gt;&lt;font class="Apple-style-span" color="#666666"&gt;긴 번역이 끝났습니다. 서둘러 번역하느라, 이해하지 못한 부분도 있어서 어떤 부분은 반쪽짜리 번역이 되어 버렸네요. &lt;/font&gt;한번 번역으로 끝나지 않고, 지속적인 모니터링을 통해서 퇴고&lt;font class="Apple-style-span" color="#666666"&gt;해나갈 예정입니다.&lt;br /&gt;&lt;br /&gt;위 글은 Objective-C에 대한 기본적인 개념들의 개요를 간단한 예제를 통해 소개하고 있는데요, 객체에 대한 좀더 자세한 설명이 서두에 있었으면 하는 아쉬움이 남습니다.&lt;br /&gt;&lt;br /&gt;그래서 다음에 기회가 되면, &lt;/font&gt;Objective-C 에서 객체, 클래스, 인터페이스, 메소드 등에대한 이야기를 해볼까 합니다.&lt;font class="Apple-style-span" color="#666666"&gt; 그 글이 완료되면 이 포스팅에도 링크를 걸어둘테니 관심 있으신 분들은 가끔씩 생각나실때 보시면 될 듯 합니다.&lt;br /&gt;&lt;br /&gt;미숙한 번역 포스팅이 노력하시는 분에게 작은 도움이 되었으면 좋겠네요.&lt;br /&gt;즐거운 하루 되세요 : )&lt;/font&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Lucida Grande', sans-serif; font-size: 11px; line-height: 21px; color: rgb(48, 48, 48); "&gt;&lt;h3 style="font-family: 'Helvetica Neue', 'Lucida Grande', sans-serif; font-weight: bold; color: rgb(0, 91, 177); padding-left: 21px; float: none; margin-top: 10px; width: auto; font-size: 16px; "&gt;&lt;font class="Apple-style-span" color="#000000" face="Dotum, Verdana, AppleGothic, sans-serif" size="3"&gt;&lt;span class="Apple-style-span" style="font-size: 12px; font-weight: normal; line-height: 16px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/h3&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8479945912659192531-5637750911671969322?l=snowhouse-textcube.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snowhouse-textcube.blogspot.com/feeds/5637750911671969322/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://snowhouse-textcube.blogspot.com/2010/01/%EC%95%84%EC%9D%B4%ED%8F%B0-%EA%B0%9C%EB%B0%9C-%EC%99%84%EC%A0%84-%EC%B4%88%EB%B3%B4%EB%8F%84-%EB%B3%B4%EB%8A%94-objective-c-%EA%B8%B0%EC%B4%88%EA%B0%9C%EB%85%90.html#comment-form' title='29개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8479945912659192531/posts/default/5637750911671969322'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8479945912659192531/posts/default/5637750911671969322'/><link rel='alternate' type='text/html' href='http://snowhouse-textcube.blogspot.com/2010/01/%EC%95%84%EC%9D%B4%ED%8F%B0-%EA%B0%9C%EB%B0%9C-%EC%99%84%EC%A0%84-%EC%B4%88%EB%B3%B4%EB%8F%84-%EB%B3%B4%EB%8A%94-objective-c-%EA%B8%B0%EC%B4%88%EA%B0%9C%EB%85%90.html' title='아이폰 개발 : 완전 초보도 보는 Objective-C 기초개념'/><author><name>bloodforest</name><uri>http://www.blogger.com/profile/13414456106205156837</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm2.static.flickr.com/1434/534579532_118e2d5a44_t.jpg' height='72' width='72'/><thr:total>29</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8479945912659192531.post-7105492038070886850</id><published>2010-01-04T17:27:00.000+09:00</published><updated>2011-01-29T22:34:03.972+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Predictably Irrational'/><category scheme='http://www.blogger.com/atom/ns#' term='any Others'/><category scheme='http://www.blogger.com/atom/ns#' term='상식밖의 경제학'/><category scheme='http://www.blogger.com/atom/ns#' term='TED.com'/><category scheme='http://www.blogger.com/atom/ns#' term='Dan Ariely'/><title type='text'>우리는 우리 마음대로 결정을 내릴 수 있을까요?</title><content type='html'>&lt;a href="http://www.ted.com" target="_blank"&gt;Ted.com&lt;/a&gt;의 동영상에서 옮깁니다.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;오늘 Ted.com에서 행동 경제학자인 &lt;a href="http://www.predictablyirrational.com/" target="_blank"&gt;Dan Ariely&lt;/a&gt;의 강연 동영상을 접했습니다. 국내에서는 '&lt;a href="http://blog.naver.com/babybluerosa?Redirect=Log&amp;amp;logNo=70073905910" target="_blank"&gt;상식밖의 경제학&lt;/a&gt;(원제 'Predictably Irrational')'이라는 책으로 알려져 있는 사람입니다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;강연의 주된 내용은 자극적인 제목 그대로 &lt;b&gt;&lt;font class="Apple-style-span" color="#007A99"&gt;'우리는 매번 결정을 내리면서 사는데, 그 결정들이 100% 우리의 이성적인 판단에 의한 의사결정인가?'&lt;/font&gt;&lt;/b&gt; 에 대한 질문에, Dan Ariely가 자신의 연구를 토대로 접근해본 결과로 이루어져 있습니다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;font class="Apple-style-span" color="#C00000"&gt;&lt;b&gt;동영상이 꼭 한번쯤은 볼 가치가 있다&lt;/b&gt;&lt;/font&gt;라는 점에서 이 포스팅을 열람하시는 분들의 감상 동기를 이끌기 위해서 Dan Ariely의 결론을 살짝 빌리자면, 위의 질문에서 답은 : &lt;font class="Apple-style-span" color="#007A99"&gt;&lt;b&gt;'대부분의 결정에서 우리는 결정에 필요한 모든 부분을 인지하지 못하기 쉽상이며 때문에 이런 분야의 전문가들이 만들어둔 함정에 쉽게 빠질 수 있다'&lt;/b&gt;&lt;/font&gt; 입니다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;게임디자이너인 저로써는 어떻게 하면 나도 함정을 잘 만들까? 라는 측면에서 더욱 솔깃해지더군요. :P&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;아래엔 강연의 동영상이 스트리밍 되도록 했지만, 링크를 따라서 들어가시면 국내 분들이 힘써주신 오픈번역을 통해 여러가지 강연의 한국어 자막을 함께 감상할 수 있으니, 링크를 따라가실 것을 추천합니다. : )&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.ted.com/talks/dan_ariely_asks_are_we_in_control_of_our_own_decisions.html" target="_blank"&gt;한국자막을 제공하는 Ted.com으로 Dan Ariely의 'Dan Ariely asks, Are we in control of our own decisions?' 강연 보기&lt;/a&gt;&amp;nbsp;-- &lt;i&gt;크롬(Chrome)브라우저 에서는 스트링밍 서비스가 정상적으로 작동하는 것을 확인 했는데, 익스플로러 브라우저는 스트리밍 서비스가 정상적이지 않더군요. 참고로 제가 테스트해본 환경은 windows XP, Internet Explorer7 입니다.&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;영어에 거부감이 없으신 분들은 하단의 동영상을 바로 감상하시고, 한국어 자막을 원하시는 분들은 동영상 하단의 &lt;font class="Apple-style-span" color="#C00000"&gt;&lt;b&gt;&lt;font class="Apple-style-span" color="#FF0000"&gt;View&lt;/font&gt;&lt;font class="Apple-style-span" color="#FF0000"&gt; Subtitles&lt;/font&gt;&lt;/b&gt;&lt;/font&gt; 를 클릭하셔서 &lt;b&gt;&lt;font class="Apple-style-span" color="#999999"&gt;Korean&lt;/font&gt;&lt;/b&gt;를 설정 하시면 됩니다. : )&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;b&gt;Dan Ariely asks, Are we in control of our decisions?&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: center; clear: both;"&gt;&lt;object width="560" height="340"&gt;&lt;param name="movie" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;param name="bgColor" value="#ffffff"&gt;&lt;/param&gt; &lt;param name="flashvars" value="vu=http://video.ted.com/talks/dynamic/DanAriely_2008P-medium.flv&amp;amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/DanAriely-2008P.embed_thumbnail.jpg&amp;amp;vw=432&amp;amp;vh=240&amp;amp;ap=0&amp;amp;ti=548&amp;amp;introDuration=16500&amp;amp;adDuration=4000&amp;amp;postAdDuration=2000&amp;amp;adKeys=talk=dan_ariely_asks_are_we_in_control_of_our_own_decisions;year=2008;theme=unconventional_explanations;theme=speaking_at_ted2009;event=EG+2008;&amp;amp;preAdTag=tconf.ted/embed;tile=1;sz=512x288;" /&gt;&lt;embed src="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" pluginspace="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" bgColor="#ffffff" width="560" height="340" allowFullScreen="true" flashvars="vu=http://video.ted.com/talks/dynamic/DanAriely_2008P-medium.flv&amp;amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/DanAriely-2008P.embed_thumbnail.jpg&amp;amp;vw=432&amp;amp;vh=240&amp;amp;ap=0&amp;amp;ti=548&amp;amp;introDuration=16500&amp;amp;adDuration=4000&amp;amp;postAdDuration=2000&amp;amp;adKeys=talk=dan_ariely_asks_are_we_in_control_of_our_own_decisions;year=2008;theme=unconventional_explanations;theme=speaking_at_ted2009;event=EG+2008;"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;font class="Apple-style-span" color="#464646" face="monospace" size="2"&gt;&lt;span class="Apple-style-span" style="font-size: 10px; line-height: normal; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8479945912659192531-7105492038070886850?l=snowhouse-textcube.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snowhouse-textcube.blogspot.com/feeds/7105492038070886850/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://snowhouse-textcube.blogspot.com/2010/01/%EC%9A%B0%EB%A6%AC%EB%8A%94-%EC%9A%B0%EB%A6%AC-%EB%A7%88%EC%9D%8C%EB%8C%80%EB%A1%9C-%EA%B2%B0%EC%A0%95%EC%9D%84-%EB%82%B4%EB%A6%B4-%EC%88%98-%EC%9E%88%EC%9D%84%EA%B9%8C%EC%9A%94.html#comment-form' title='2개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8479945912659192531/posts/default/7105492038070886850'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8479945912659192531/posts/default/7105492038070886850'/><link rel='alternate' type='text/html' href='http://snowhouse-textcube.blogspot.com/2010/01/%EC%9A%B0%EB%A6%AC%EB%8A%94-%EC%9A%B0%EB%A6%AC-%EB%A7%88%EC%9D%8C%EB%8C%80%EB%A1%9C-%EA%B2%B0%EC%A0%95%EC%9D%84-%EB%82%B4%EB%A6%B4-%EC%88%98-%EC%9E%88%EC%9D%84%EA%B9%8C%EC%9A%94.html' title='우리는 우리 마음대로 결정을 내릴 수 있을까요?'/><author><name>bloodforest</name><uri>http://www.blogger.com/profile/13414456106205156837</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8479945912659192531.post-6118808088446326274</id><published>2010-01-01T15:33:00.000+09:00</published><updated>2011-01-29T22:34:02.342+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='아이폰 활용'/><category scheme='http://www.blogger.com/atom/ns#' term='아이폰 기능'/><category scheme='http://www.blogger.com/atom/ns#' term='아이폰'/><title type='text'>아이폰 이 기능 나만 알고 있는거야?</title><content type='html'>&lt;span style="color: rgb(77, 77, 77);"&gt;한달동안 회사를 비운 사이에 아이폰 사용자가 부쩍 늘었습니다. 아이폰 구매를 벼르고 있던 분들은 물론이거니와 고민하던 분들은 구매를 뒤늦게 하셨고, 지금은 전혀 미동하지 않으실 것 같으신 분들이 고민하고 계십니다.&lt;/span&gt;&lt;br style="color: rgb(77, 77, 77);"&gt;&lt;span style="color: rgb(77, 77, 77);"&gt;아마도 아이폰의 대항마라 여겨지는 안드로이드가 실체를 드러내기 전까지는 조금씩 사용자가 늘어날 것 같습니다. (조금 더 덧붙이자면, 안드로이드는 새로운 버전의 아이폰이나, 타블렛 PC에 묻히거나, 희석될 수 있다라는 점을 감안한다면 안드로이드에게는 시장의 난이도가 더 높아질 수 있겠군요.)&lt;/span&gt;&lt;br style="color: rgb(77, 77, 77);"&gt;&lt;br style="color: rgb(77, 77, 77);"&gt;&lt;span style="color: rgb(77, 77, 77);"&gt;그런데 아이폰이 기본적으로 지원해주는 기능 중 잘 드러나 있지 않아서, "그건 이렇게 하면 되던데?" 라고 하면 왜 그걸 이제 알려주냐고 투정을 부리시는(?) 분들이 계셔서 제가 알고 있는 부분을 포스팅 하려고 합니다. : ) 몇가지 없지만 시작해 보겠습니다.&lt;/span&gt;&lt;br style="color: rgb(77, 77, 77);"&gt;&lt;br style="color: rgb(77, 77, 77);"&gt;&lt;div style="border: 1px solid rgb(204, 204, 204); padding: 10px; background-color: rgb(244, 244, 244); color: rgb(77, 77, 77);"&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;아이폰으로 사진찍기 - 아웃 포커싱&lt;/span&gt;&lt;br /&gt;아이폰으로 사진을 찍으신 분들이 이런 말씀을 하시더군요. "역시 해상도가 떨어지네" 플래쉬 기능이 지원되지 않는 탓에 어두운상황에서 사진을 찍게되면 해상도가 자연스래 낮은 사진이 나오게 되지만, 낮에 찍으신 분들은 대부분 초점 맞추지 않으시고 찍으시는경우인 것 같습니다. &lt;br /&gt;&lt;br /&gt;초점 맞추기는, 카메라를 가동시키면, 화면의 중심에 자동으로 초점을 맞춰주는데, &lt;span style="font-style: italic; color: rgb(0, 47, 255);"&gt;찍고자 하는 대상이 화면 가운데 없을 경우에는대상이 있는 위치를 터치&lt;/span&gt; 해주시면 터치된 위치의 대상에 초점을 맞추게 됩니다. 이 기능을 활용하면 아웃포커싱을 살린 사진찍기도가능 하답니다.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;아이폰으로 사진찍기 - 셀카찍기&lt;/span&gt;&lt;br /&gt;아이폰은 화면 반대편에 카메라 1기가 위치하기 때문에 국내의 다른 폰들과는 다르게 화면을 보면서 셀카를 찍기 어려울 뿐더러외부장치 버튼을 사용하지 않고 하면 하단에 위치한 UI 버튼을 이용하기 때문에 버튼을 손가락으로 더듬어 가며 불안불안한 상태에서사진을 찍게 됩니다.&lt;br /&gt;&lt;br /&gt;첫번째 문제는 하드웨어 상의 문제이기 때문에 해결이 어렵지만, 두번째 문제는 타이머 기능을 지원하는 카메라 어플리케이션으로해결이 가능합니다. &lt;span style="color: rgb(0, 47, 255); font-style: italic;"&gt;무료 어플리케이션으로는 'Gorillacam'&lt;/span&gt;이 있겠네요. 아마 찾아보면 더 괜찮은 어플리케이션도 많을 듯합니다.&lt;br /&gt;&lt;/div&gt;&lt;br style="color: rgb(77, 77, 77);"&gt;&lt;br style="color: rgb(77, 77, 77);"&gt;&lt;div style="border: 1px solid rgb(204, 204, 204); padding: 10px; background-color: rgb(244, 244, 244); color: rgb(77, 77, 77);"&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;인터넷 사용 - 웹서핑 한번에 주소창으로 이동하기&lt;/span&gt;&lt;br /&gt;일반 웹페이지도 있겠지만, 모바일용으로 구성되어 있는 웹페이지의 경우 가독성을 위해 페이지가 세로로 긴 경우가 많습니다. 글을끝까지 읽은 후 다른 주소를 입력하거나 상단의 메뉴를 이용해야 할 때 하염없이 스크롤을 하기엔 너무 불편합니다.&lt;br /&gt;&lt;br /&gt;이때 &lt;span style="color: rgb(0, 47, 255); font-style: italic;"&gt;브라우져 최상단 시계가 보이는 부분을 한번만 터치&lt;/span&gt;(탭)해주시면 한번에 웹페이지의 최상단으로 이동하고 주소창이 보이게 된답니다.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;인터넷 사용 - 3G만 이용하기, Wi-Fi만 이용하기&lt;/span&gt;&lt;br /&gt;KT의 요금제 중 인터넷을 500MB만 사용 가능하게 해도, 아이폰에서는 충분하기 때문에 Wifi를 이용할 수 없는 상황이나,불안정한 상황에서는 3G를 이용한 인터넷 이용을 시도하게 됩니다. 주변에 AP가 전혀 없는 경우는 크게 문제없이 3G를 이용할수 있지만, 신호가 약한 wifi가 자꾸 잡혀서 인터넷 이용이 안되는 경우가 있습니다.&lt;br /&gt;&lt;br /&gt;이 경우에는 &lt;span style="color: rgb(0, 47, 255); font-style: italic;"&gt;'설정 아이콘 -&amp;gt; Wi-Fi 탭 -&amp;gt; Wi-Fi 끄기'&lt;/span&gt; 를 설정하시면 아이폰이 더이상 AP를 찾지 않기때문에 안정적으로 3G를 이용할 수 있습니다. 단, 이 설정을 이용하게 되면 자동으로 설정이 해제되진 않기 때문에 인터넷 이용종료 후 주변의 AP를 찾도록 설정을 다시 바꿔 주시는 편이 좋을 것 같습니다. 반대의 경우 &lt;span style="font-style: italic; color: rgb(0, 47, 255);"&gt;'설정 -&amp;gt; 일반 -&amp;gt;네트워크 -&amp;gt; 3G 활성화 끄기'&lt;/span&gt; 를 이용하시면 Wi-Fi를 이용한 인터넷 이용만 가능 합니다.&lt;br /&gt;&lt;br /&gt;두 설정 모두 켜져있을 경우 아이폰은 Wi-Fi를 우선으로 이용하려고 하기 때문에 평소에는 두 설정 모두 켜주시면 되겠습니다.&lt;br /&gt;&lt;br style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;인터넷 사용 - Wi-Fi를 이용할 수 없는 상황에서 아이폰을 이용해서 노트북으로 인터넷 사용하기&lt;/span&gt;&lt;br /&gt;손안의 PC역할을 하는 아이폰을 가지고 계신 분들은 아이러니 하게도 노트북도 가지고 계신 경우가 많습니다. 저역시 그런데요,노트북을 이용해서 인터넷을 사용해야 하는데 주변에 AP도 없고, 손에 들려있는 아이폰으로는 인터넷 익스플로러를 사용할 수없다거나, 여타 소프트웨어(엑셀, 워드)를 완벽히 이용할 수 없을 때 답답할 수 있습니다.&lt;br /&gt;&lt;br /&gt;하지만, 다른 스마트폰과 같이 아이폰도 3G를 이용하여 노트북으로 인터넷을 이용할 수 있게 해줍니다. 이 기능을 &lt;span style="color: rgb(0, 47, 255); font-style: italic;"&gt;'테더링'&lt;/span&gt;이라고합니다. 방법은 &lt;span style="color: rgb(0, 47, 255); font-style: italic;"&gt;'설정 아이콘 -&amp;gt; 일반 -&amp;gt; 네트워크 -&amp;gt; 인터넷 테더링 -&amp;gt; 인터넷 테더링 켜기'&lt;/span&gt;를설정 하시면 됩니다. 이 상태에서 인터넷을 이용하고자 하는 노트북이 블루투스를 지원하는 경우 아이폰의 블루투스 기능을 &lt;span style="color: rgb(0, 47, 255); font-style: italic;"&gt;'설정아이콘 -&amp;gt; 일반 -&amp;gt; Bluetooth -&amp;gt; Bluetooth 켜기'&lt;/span&gt; 로 설정하여 노트북과 연결하면 인터넷을이용할 수 있게 됩니다. 만일, 노트북이 블루투스를 지원하지 않는다면, 아이폰용 USB케이블을 이용하여 연결하면 됩니다.&lt;br /&gt;&lt;br /&gt;블루투스를 이용할 경우 아이폰의 베터리가 소모가 촉진되므로, 케이블이 있는 경우 반드시 케이블로 연결을 추천해 드립니다.&lt;br /&gt;&lt;/div&gt;&lt;br style="color: rgb(77, 77, 77);"&gt;&lt;br style="color: rgb(77, 77, 77);"&gt;&lt;div style="border: 1px solid rgb(204, 204, 204); padding: 10px; background-color: rgb(244, 244, 244); color: rgb(77, 77, 77);"&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;텍스트 입력 - 쌍자음&lt;/span&gt;&lt;br /&gt;아이폰에서 쌍자음을 입력하는 방법은 세가지 종류가 있습니다. 첫번째로 좌측 하단에 위치한 위쪽화살표 버튼(Shift)를 누르고자음을 입력하는 방법이 있고, 두번째로 자음을 연속하여 두번 입력하는 방법이 있습니다. 마지막으로 자음을 버튼을 누르고 있으면자음 버튼 위에, 자음과 쌍자음 둘중 어떤 것을 이용할 것인지 선택할 수 있는 버튼이 출력됩니다.&lt;br /&gt;&lt;br /&gt;개인적으로는 위쪽화살표 버튼을 이용해서 쌍자음을 입력하고 있는데, 세가지 방법 중 편하신 것을 이용하시면 되겠습니다.&lt;/div&gt;&lt;br style="color: rgb(77, 77, 77);"&gt;&lt;br style="color: rgb(77, 77, 77);"&gt;&lt;div style="border: 1px solid rgb(204, 204, 204); padding: 10px; background-color: rgb(244, 244, 244); color: rgb(77, 77, 77);"&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;이미지 저장하기 - 이미지 저장하기&lt;/span&gt;&lt;br /&gt;아이폰을 이용하면, 아이폰 시작화면의 이미지를 변경하시고 싶을 때가 있습니다. 보통은 카메라를 이용해서 사진을 찍거나, 월페이퍼 어플리케이션을 받으시고 해당 어플리케이션이 제공하는 이미지를 이용하실 수 있습니다.&lt;br /&gt;&lt;br /&gt;저같은 경우 사파리를 이용하면서 마음에 드는 이미지를 찾게되면 해당 이미지를 아이폰에 저장해서 사용하는데, 방법은 &lt;span style="color: rgb(0, 47, 255); font-style: italic;"&gt;사파리브라우저에서 보이는 이미지를 누르고 있으면 해당 이미지를 저장할 것인가를 묻는 별도의 UI가 하단에 출력&lt;/span&gt;됩니다. 이 중 이미지저자을 누르면 사진 보관함으로 해당 이미지가 이동하게 됩니다.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;이미지 저장하기 - 스크린샷&lt;/span&gt;&lt;br /&gt;위의 방법으로 갈무리가 안되는 경우가 두가지 정도 있는 것 같습니다. 첫번째는 웹페이지가 이미지 저장을 허용하지 않는경우가있으며, 두번째는 어플리케이션 이용도중 화면에 보이는 이미지를 저장하고자 할 때 인데요 이 경우 아이폰에서 기본적으로 제공해주는 스크린샷 기능을 이용하면 됩니다.&lt;br /&gt;&lt;br /&gt;이 기능은 &lt;span style="color: rgb(0, 47, 255); font-style: italic;"&gt;아이폰 머리 부분의 전원 버튼과 아이폰 스크린 하단부의 버튼을 동시에 누르는 것으로 이용 가능&lt;/span&gt;한데, 이 기능이 올바로작동 되었다면 '찰칵' 하는 효과음과 '번쩍'하는 효과가 출력되고 마찬가지로 사진 보관함으로 이미지가 이동 됩니다.&lt;br /&gt;&lt;br /&gt;이 방법을 이용할 경우 이미지에 원하지 않는 부분(브라우저의 상하단 메뉴)이 함께 스크린샷 될 수 있는데 이미지 보기에서 해당 이미지를 키운다음 다시 스크린샷을 이용하게 되면 제한적이지만 상하단 메뉴를 안보이도록 할 수 있습니다.&lt;br /&gt;&lt;br /&gt;제 경우 위와 같은 방법으로도 이용하지만, 웹서핑 중 좋은 읽기 자료를 발견 했을 때에도 스크린샷 기능을 이용해서 다음에 또 읽고 싶을 때 인터넷의 재사용 없이 활용하고 있습니다.&lt;/div&gt;&lt;br style="color: rgb(77, 77, 77);"&gt;&lt;span style="color: rgb(77, 77, 77);"&gt;아마 제가 적은 기능 이외에 더 훌륭히 활용되는 기능들이 있을 것으로 예상됩니다. 아이폰 사용자 들을 위해 함께 공유 해보는건 어떨까요? : )&lt;/span&gt;&lt;br style="color: rgb(77, 77, 77);"&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8479945912659192531-6118808088446326274?l=snowhouse-textcube.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snowhouse-textcube.blogspot.com/feeds/6118808088446326274/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://snowhouse-textcube.blogspot.com/2010/01/%EC%95%84%EC%9D%B4%ED%8F%B0-%EC%9D%B4-%EA%B8%B0%EB%8A%A5-%EB%82%98%EB%A7%8C-%EC%95%8C%EA%B3%A0-%EC%9E%88%EB%8A%94%EA%B1%B0%EC%95%BC.html#comment-form' title='7개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8479945912659192531/posts/default/6118808088446326274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8479945912659192531/posts/default/6118808088446326274'/><link rel='alternate' type='text/html' href='http://snowhouse-textcube.blogspot.com/2010/01/%EC%95%84%EC%9D%B4%ED%8F%B0-%EC%9D%B4-%EA%B8%B0%EB%8A%A5-%EB%82%98%EB%A7%8C-%EC%95%8C%EA%B3%A0-%EC%9E%88%EB%8A%94%EA%B1%B0%EC%95%BC.html' title='아이폰 이 기능 나만 알고 있는거야?'/><author><name>bloodforest</name><uri>http://www.blogger.com/profile/13414456106205156837</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8479945912659192531.post-6960572584251215931</id><published>2009-12-29T12:22:00.000+09:00</published><updated>2011-01-29T22:34:01.145+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='App'/><category scheme='http://www.blogger.com/atom/ns#' term='adhoc'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='top 100'/><category scheme='http://www.blogger.com/atom/ns#' term='아이폰 어플 마케팅'/><category scheme='http://www.blogger.com/atom/ns#' term='아이폰'/><title type='text'>아이폰 어플 마케팅은 이렇게!</title><content type='html'>&lt;script src='http://ss.textcube.com/service/blog/script/blogger.js' type='text/javascript'&gt;&lt;/script&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Arial, Helvetica, sans-serif; line-height: 15px; "&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Dotum, Verdana, AppleGothic, sans-serif; line-height: 16px; "&gt;&lt;div style="border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: dashed; border-right-style: dashed; border-bottom-style: dashed; border-left-style: dashed; border-top-color: rgb(183, 224, 169); border-right-color: rgb(183, 224, 169); border-bottom-color: rgb(183, 224, 169); border-left-color: rgb(183, 224, 169); padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; background-color: rgb(211, 238, 202); "&gt;&lt;a target="_blank" href="http://www.gamasutra.com/view/feature/4211/iphone_development_everything_you_.php"&gt;Gamasutra에 기고된 Brian Robins의 iPhone Development:Everything You Need To Know&lt;/a&gt;&lt;span class="newsTitle"&gt;&amp;nbsp;글에서 Marketing 섹션을 발췌하여 번역 했습니다. &lt;/span&gt;&lt;br /&gt;&lt;span class="newsTitle"&gt;런칭 경험을 해야만 얻을 수 있는 노하우이기 때문에 앱스토에 런칭을 앞둔 한국 분들에게 도움이 되었으면 좋겠습니다. : )&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;font class="Apple-style-span" face="Dotum, Verdana, AppleGothic, sans-serif"&gt;&lt;span class="Apple-style-span" style="line-height: 16px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font class="Apple-style-span" face="Dotum, Verdana, AppleGothic, sans-serif"&gt;&lt;span class="Apple-style-span" style="line-height: 16px;"&gt;&lt;div style="padding:10px;background-color:#f4f4f4;border:1px solid #cccccc;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Arial, Helvetica, sans-serif; line-height: 15px; "&gt;&lt;h1 style="font-family: Verdana, Arial, Helvetica, sans-serif; font-weight: bolder; font-size: 16px; color: rgb(0, 0, 0); line-height: 1.3em; margin-top: 1.25em; margin-bottom: 0.75em; "&gt;&lt;strong&gt;Marketing&lt;/strong&gt;&lt;/h1&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;아이폰 마케팅은 쉽게 접할 수 있게끔 가능한 동시에 시장에 노출될 수 있도록 많고 넓게 하는것이 중요한 점입니다. 이 방법으로 각각의 프로모션이 상위에 노출이 되면, 여러분의 게임이 Top 100 차트에 들어갈 때 까지 고수해야 합니다. 이런 차트들은 다운로드의 횟수 또는 수익의 평균 가중치를 이용하는데, 최근 48시간 내에 더 높은 가중치를 가지고 있는 것으로 노출 됩니다.&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;애플이 어떤날에 어플리케이션을 승인하게 되느냐에 달려있기 때문에 일반적으로 게임의 릴리즈되는 예정일을 알 수 없습니다. 개발자들은 특정한 릴리즈 날짜를 고를 수 있지만, New Releases 리스트에 포함되지 않을 수 있으므로 전적으로 외부 마케팅에 의존하게 되는 결과를 초례하게 됩니다.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="padding:10px;background-color:#d0ff9d;border:1px solid #d0ff9d;"&gt;번역자노트. 개발된 어플리케이션을 New Releases 리스트 상위에 노출 시키는 것을 포기하면 안된다는 내용을 말하고 있습니다. 관련된 포스팅이 &lt;a href="http://snowhouse.textcube.com/?page=4" target="_blank"&gt;여기&lt;/a&gt; 있습니다. : )&lt;/div&gt;&lt;br /&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;다행히도, 대부분의 아이폰 리뷰 사이트들은 이런 프로세스에 익숙하고 이런 제한적인 것들에 대해 잘 대처합니다. 만일 여러분들이 미디어를 구매할 예정이라면, 대부분은 여러분들의 어플리케이션이 릴리즈 된 것을 한번만 알려주면 준비된 광고를 시작해 줄 것입니다. 또한 여러분들은 리뷰사이트에 어플리케이션의 릴리즈 하기기 전 "AdHoc" 빌드 버전을 보낼 수 있는데, 이렇게 되면 그들이 &amp;nbsp;잠재적으로 리뷰 준비를 미리 할 수 있게 됩니다.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="padding:10px;background-color:#d0ff9d;border:1px solid #d0ff9d;"&gt;번역자 노트. Adhoc 빌드에 관한 자세한 내용을 담은 포스팅을 발견하여 &lt;a href="http://theeye.pe.kr/entry/how-to-distribute-using-adhoc-distribution-on-iphone-sdk#comment4087" target="_blank"&gt;링크&lt;/a&gt; 해둡니다. : )&lt;/div&gt;&lt;br /&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;복사본에 대한 추가사항으로, 애플은 각각의 어플리케이션 버전에 대하여 50개의 promo code를 제공해줍니다(업데이트 시에는 사용 가능한 promo code를 50개로 될돌려 줍니다). 모든 리뷰 사이트들은 어플리케이션을 리뷰하기 위한 promo code를 수락합니다. 런칭하기 전, 여러분들은 반드시 사이트에서 promo code를 받을 사람을 알고 연락 해야합니다.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;트위터와 유튜브는 아이폰 어플리케이션의 프로모션을 위한 매우 인기있는 채널을 제공합니다. 유튜브에 올린 트레일러는 몇천번이든 노출될 수 있고, 거의 모든 아이폰 리뷰 사이트들은 트위터에서 매우 활동적입니다.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;몇몇의 메이저 아이폰 리뷰 사이들 뿐만 아니라, 수백 또는 수천의 개인적이고 작은 사이트들도 어플리케이션을 리뷰하고 있습니다. 각각의 사람이 10에서 50명 정도에게 영향을 주기 때문에 이들은 전체 집계에 영향을 줄 수 있습니다. 매우 성공적인 장기 마케팅과 프로모션은 이를 깨닫게 해주고 이런 마이크로 채널에서 이득을 얻기위해 노력하도록 합니다.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;div class="imageblock center" style="text-align: center; clear: both;"&gt;&lt;img src="http://ss.textcube.com/blog/3/33793/attach/XVsWvRWnrP.png" style="width:500px;height:414px;" alt="" onclick="TC$PRIV_open_img('http://ss.textcube.com/blog/3/33793/attach/XVsWvRWnrP.png')" /&gt;&lt;/div&gt;&lt;/p&gt;&lt;div style="padding:10px;background-color:#d0ff9d;border:1px solid #d0ff9d;"&gt;번역자노트. 이미 릴리즈된 어플리케이션의 각 국가 카테고리별 Top 100 차트에서의 변동 순위를 보여주는 그래프 입니다. Top 100 차트안에 못들게 될 경우 변동순위조차 확인할 수 없으며 그만큼 Top 100 차트 안에 위치하는 것이 중요하다는 점을 말하고 있습니다.&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;p align="center" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8479945912659192531-6960572584251215931?l=snowhouse-textcube.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snowhouse-textcube.blogspot.com/feeds/6960572584251215931/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://snowhouse-textcube.blogspot.com/2009/12/%EC%95%84%EC%9D%B4%ED%8F%B0-%EC%96%B4%ED%94%8C-%EB%A7%88%EC%BC%80%ED%8C%85%EC%9D%80-%EC%9D%B4%EB%A0%87%EA%B2%8C.html#comment-form' title='6개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8479945912659192531/posts/default/6960572584251215931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8479945912659192531/posts/default/6960572584251215931'/><link rel='alternate' type='text/html' href='http://snowhouse-textcube.blogspot.com/2009/12/%EC%95%84%EC%9D%B4%ED%8F%B0-%EC%96%B4%ED%94%8C-%EB%A7%88%EC%BC%80%ED%8C%85%EC%9D%80-%EC%9D%B4%EB%A0%87%EA%B2%8C.html' title='아이폰 어플 마케팅은 이렇게!'/><author><name>bloodforest</name><uri>http://www.blogger.com/profile/13414456106205156837</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8479945912659192531.post-2684843491074171680</id><published>2009-12-24T13:27:00.000+09:00</published><updated>2011-01-29T22:33:57.206+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='아이폰 개발'/><category scheme='http://www.blogger.com/atom/ns#' term='Approved for sale'/><category scheme='http://www.blogger.com/atom/ns#' term='앱스토어'/><category scheme='http://www.blogger.com/atom/ns#' term='앱스토어 런칭 팁'/><category scheme='http://www.blogger.com/atom/ns#' term='신규 어플리케이션 상위 차지하기'/><category scheme='http://www.blogger.com/atom/ns#' term='아이폰 어플리케이션'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='AFS'/><title type='text'>애플 앱스토어 신규 어플 목록에서 상위차지하기</title><content type='html'>&lt;br /&gt;&lt;div style="border: 1px dashed rgb(183, 224, 169); padding: 10px; background-color: rgb(211, 238, 202);"&gt;&lt;a target="_blank" href="http://www.gamasutra.com/view/feature/4211/iphone_development_everything_you_.php"&gt;Gamasutra에 기고된 Brian Robins의 iPhone Development:Everything You Need To Know&lt;/a&gt;&lt;span class="newsTitle"&gt; 글에서 Launch 섹션을 발췌하여 번역 했습니다. &lt;/span&gt;&lt;br /&gt;&lt;span class="newsTitle"&gt;런칭 경험을 해야만 얻을 수 있는 노하우이기 때문에 앱스토에 런칭을 앞둔 한국 분들에게 도움이 되었으면 좋겠습니다. : )&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(204, 204, 204); padding: 10px; background-color: rgb(244, 244, 244);"&gt;&lt;h1 style="color: rgb(5, 170, 211);"&gt;&lt;strong&gt;Launch&lt;/strong&gt;&lt;/h1&gt;&lt;p&gt;요즘, 어플리케이션의 승인까지 2주에서 3주가 소요되지만 타이밍에 대한 보장은 없습니다. 2009년 초, 승인시간은 1주 였지만, 6월에 있었던 Apple's Worldwide Developers Conference 이후 많은 어플리케이션들이 승인까지 4주에서 5주가 걸렸습니다. 이 과정에 소모되는 시간을 줄일 수 있는 알려진 방법은 없고, 여러분의 유일한 안내자는 승인까지 보통 얼마나 걸리는지에 대한 iPhone Dev Center의 상황 보고밖에 없습니다. (글을 쓰는 지금 이순간 95%의 어플리케이션들이 14일 이내에 승인 받고 있습니다.)&lt;br /&gt;&lt;/p&gt;&lt;div class="adBox"&gt;								&lt;br /&gt;어플리케이션이 승인 되었다면 Team Agent 와 Admins 로부터 어플리케이션이 판매되기 위한 메일을 받을 것입니다.어떤 분들은 &lt;span style="font-style: italic; font-weight: bold;"&gt;즉시 itunes Connect의 로그에 들어가서어플리케이션의 릴리즈 날짜를 현재의 날짜로 변경&lt;/span&gt;합니다. 이렇게 해두면 설정해둔 릴리즈 날짜를 확인하여 여러분들이 만든어플리케이션의 실제 등록일로 설정합니다. 만일 이렇게 하지 않으면 원래 설정되어 있던 날짜, 즉 현재보다 더 빠른 날짜로 설정될수 있습니다. -- (별도의 갱신이 없다면)기본적으로 iTunes Connect 또는 Apple에서 어플에 대한 날짜를설정합니다.&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(208, 255, 157); padding: 10px; background-color: rgb(208, 255, 157);"&gt;(번역자 노트. Approved for sale 메일을 AFS 메일이라고도 하네요.) &lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;만일 어플리케이션이 12월 15일에 승인이 되었고 iTunes Connect에서 설정된 날짜가 12월 5일 이라면 어플리케이션은 12월 5일에 릴리즈 된것으로 App store 목록에 나타나게 되는걸 의미합니다. 반대의 경우 12월 15일에 어플리케이션이 승인되었고, 릴리즈 날자가 12월 20일로 설정되어 있다면, 12월 20일에 어플리케이션이 나타나게 됩니다. 하지만 이경우 12월 15일날 릴리즈 된것으로 나타나게 됩니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="border: 1px solid rgb(208, 255, 157); padding: 10px; background-color: rgb(208, 255, 157);"&gt;(번역자 노트. AFS메일을 받게 되었을 때 릴리즈 날짜를 해당 일자로 변경하지 않은 2가지 경우에 대한 예를 들고있는데, 두가지 경우 모두 App store 목록에서 밀리게 됨으로 AFS메일을 받은 즉시 릴리즈 날짜를 현재 날짜로 동기화시켜야 App store&amp;nbsp; 목록의 상단에 위치할 수 있고, 이는 목록에 조금 더 오래 남을 수 있음을 말하려고 하고 있습니다.)&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;New Releases 목록에 상단에 설정될 수 있는 유일한 방법은 어플리케이션이 승인된 시점으로 릴리즈 날짜를 재설정 하는 것입니다. 여기까지 이 로직은 잘 작동하지만 다음의 경우에는 작동하지 않습니다. 업데이트를 릴리즈하게 되면 여러분의 어플리케이션은 업데이트날짜에 업데이트가 승인되었다고 이야기 해주지만, New Releases 목록의 상단에 다시 나타나지는 않습니다.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8479945912659192531-2684843491074171680?l=snowhouse-textcube.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snowhouse-textcube.blogspot.com/feeds/2684843491074171680/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://snowhouse-textcube.blogspot.com/2009/12/%EC%95%A0%ED%94%8C-%EC%95%B1%EC%8A%A4%ED%86%A0%EC%96%B4-%EC%8B%A0%EA%B7%9C-%EC%96%B4%ED%94%8C-%EB%AA%A9%EB%A1%9D%EC%97%90%EC%84%9C-%EC%83%81%EC%9C%84%EC%B0%A8%EC%A7%80%ED%95%98%EA%B8%B0.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8479945912659192531/posts/default/2684843491074171680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8479945912659192531/posts/default/2684843491074171680'/><link rel='alternate' type='text/html' href='http://snowhouse-textcube.blogspot.com/2009/12/%EC%95%A0%ED%94%8C-%EC%95%B1%EC%8A%A4%ED%86%A0%EC%96%B4-%EC%8B%A0%EA%B7%9C-%EC%96%B4%ED%94%8C-%EB%AA%A9%EB%A1%9D%EC%97%90%EC%84%9C-%EC%83%81%EC%9C%84%EC%B0%A8%EC%A7%80%ED%95%98%EA%B8%B0.html' title='애플 앱스토어 신규 어플 목록에서 상위차지하기'/><author><name>bloodforest</name><uri>http://www.blogger.com/profile/13414456106205156837</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8479945912659192531.post-6505432101157501813</id><published>2009-12-23T20:30:00.000+09:00</published><updated>2011-01-29T22:33:56.561+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><category scheme='http://www.blogger.com/atom/ns#' term='C언어'/><category scheme='http://www.blogger.com/atom/ns#' term='C 언어 기초'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='C 언어 튜토리얼'/><category scheme='http://www.blogger.com/atom/ns#' term='Cocoa Dev Central'/><category scheme='http://www.blogger.com/atom/ns#' term='아이폰 개발 초보'/><category scheme='http://www.blogger.com/atom/ns#' term='Scott Stevenson'/><category scheme='http://www.blogger.com/atom/ns#' term='아이폰 개발'/><category scheme='http://www.blogger.com/atom/ns#' term='C 언어'/><category scheme='http://www.blogger.com/atom/ns#' term='cocoa'/><category scheme='http://www.blogger.com/atom/ns#' term='Object-C'/><category scheme='http://www.blogger.com/atom/ns#' term='X-code'/><category scheme='http://www.blogger.com/atom/ns#' term='objective-c'/><title type='text'>아이폰 개발 : 프로그래밍 초보가 보는 C언어 초석 다지기</title><content type='html'>&lt;div id="masthead"&gt;	&lt;div style="border: 1px dashed rgb(183, 224, 169); padding: 10px; background-color: rgb(211, 238, 202);"&gt;매끄럽진 않지만 아이폰의 국내 도입과 함께 아이폰 개발에 뛰어들고 싶으신 많은 분들 중 프로그래머가 아닌 분들을 위해서 아래의 C 언어 튜토리얼을 번역합니다.&lt;br /&gt;&lt;br /&gt;C 언어는 아이폰 어플리케이션 개발 언어인 Objective-C 언어의 전신이 되는 언어이며, 아래는Objective-C를 익히기위해 필요한 최소한의 C 언어의 개념들이며, 당연히 프로그래밍 언어에 약한 분들이 우선적으로 보셔야 할 부분이 아닌가 싶습니다.&lt;br /&gt;&lt;br /&gt;불행히도 프로그래밍 언어에 전혀 무지하신 분들에게는 다소 어려운 내용이 될 수 있지만, 아주 기초적인 부분만 인지하고 있더라도 아래의 튜토리얼이 크게 유용할 것입니다. 또한 아래는 Mac OS X 의 Termianl 환경에서 진행되지만, Window 환경에서도 문제 없을 것입니다.&lt;br /&gt;&lt;br /&gt;여유가 된다면 Objective-C에 대한 튜토리얼도 번역할 예정이며, 마지막으로 제 번역이 프로그래밍 언어를 배우고자 하시는 분들에게 도움이 되길 바라며 유용하셨다면 튜토리얼 제공자(번역자 아님)에게 기부를 하는 한국인의 센스도 보여주세요. : )&lt;/div&gt;&lt;img src="http://cocoadevcentral.com/images/articles/000081-title-learnc.png" style="margin-top: 52px; margin-bottom: 20px;" alt="Learn Cocoa" height="53" width="224"&gt;&lt;/div&gt;		&lt;div class="contentcontainer"&gt;			&lt;!-- #### section #### --&gt;		&lt;div class="contentsection" style="padding-bottom: 0px;"&gt;			&lt;div style="border: 1px solid rgb(204, 204, 204); padding: 10px; background-color: rgb(255, 255, 255);"&gt;&lt;h3&gt;&lt;span style="color: rgb(0, 122, 153);"&gt;Learn C for Cocoa&lt;/span&gt;&lt;br /&gt;&lt;/h3&gt;				&lt;div class="contentbody"&gt;이 튜토리얼은 코코아를 시작하기 위해 숙지하고 있어야 하는 C의 일부분을 설명하고 있습니다. 우리는 대부분의 컨셉을 하나의 페이지 또는 두개의 챕터로 구성해봤습니다. &lt;span style="font-style: italic; font-weight: bold;"&gt;지나치치 마시고&lt;/span&gt; 각각의 섹션에 주의를 기울여 보세요.&lt;br /&gt;&lt;br /&gt;여러분들은 최소한 함수와, 변수, 루프를 포함하고 있는 하나의 스크립트 또는 프로그래밍 언어를 숙지하고 계셔야 합니다. 그리고 우리는 OS X Terminal 에서 명령을 입력할 것입니다.&lt;br /&gt;		&lt;/div&gt;							 &lt;br /&gt;이 &lt;a href="http://cocoadevcentral.com/"&gt;Cocoa Dev Central&lt;/a&gt; 튜토리얼은 &lt;a href="http://theocacao.com/"&gt;Scott Stevenson&lt;/a&gt; 이 작성 했습니다.&lt;br /&gt;&lt;br /&gt;튜토리얼 작성에 무수히 많은 시간을 보냈습니다. 만일 당신이 찾아낸 이 튜토리얼이 유용했다면 우리에게 기부를 해주세요. 우리가 기부를 많이 받을 수록 글쓰기에 더 심혈을 기울일 수 있답니다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;		&lt;span style="padding: 4px; background-color: rgb(235, 235, 235);"&gt;Suggested amounts: &lt;cite&gt;Useful&lt;/cite&gt;: $5 | &lt;cite&gt;Very Useful&lt;/cite&gt;: $12 | &lt;cite&gt;Priceless&lt;/cite&gt;: $21&lt;br /&gt;&lt;/span&gt;		&lt;br /&gt;				&lt;input name="cmd" value="_s-xclick" type="hidden"&gt;		&lt;input src="https://www.paypal.com/en_US/i/btn/x-click-but04.gif" name="submit" alt="Make payments with PayPal - it's fast, free and secure!" border="0" type="image"&gt;		&lt;img alt="" src="https://www.paypal.com/en_US/i/scr/pixel.gif" border="0" height="1" width="1"&gt;&lt;/div&gt;&amp;nbsp;&lt;br /&gt;&lt;div style="border: 1px solid rgb(204, 204, 204); padding: 10px; background-color: rgb(255, 255, 255);"&gt;&lt;h4 style="color: rgb(0, 122, 153);"&gt;Skills Check&lt;/h4&gt;								&lt;div style="clear: both;"&gt;계속하기전에 아래의 코드를 충분히 이해하는지 확인 해보세요.&lt;br /&gt; &lt;/div&gt;		&lt;div class="codeblock"&gt;function display_area_code ($code)&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;{&lt;br /&gt;print ("$code ");&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;$area_codes[0] = 408;&lt;br /&gt;$area_codes[1] = 650;&lt;br /&gt;$area_codes[2] = 510;&lt;br /&gt;&lt;br /&gt;/* this is a comment */&lt;br /&gt;$count = 3;&lt;br /&gt;&lt;br /&gt;for ($i = 0; $i &amp;lt; $count; $i++)&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;display_area_code ($area_codes[$i]);&lt;br /&gt;					&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;			&lt;div class="contentbody"&gt;&lt;br /&gt;이 예는 function, a print statement, a comment, an array, varuables 그리고 loop를 가지고 있습니다. 만일 이걸 감지하신다면 당신은 이 튜토리얼을 시작할 준비가 되어 있습니다.&lt;br /&gt;&lt;br style="color: rgb(56, 204, 26); font-style: italic;"&gt;&lt;span style="color: rgb(56, 204, 26); font-style: italic;"&gt;&lt;span style="color: rgb(51, 128, 0);"&gt;(번역자 노트. 튜토리얼이 아주 기초적인 부분은 생략되어 있을 것 같네요. 아마도 코드에 나타나 있는 배열이라던가, 제어문에 대한 설명은 다루지 않을것 같네요. 하지만, 너무 걱정하지 마세요 배열, 제어문 등은 아주 많은 자료가 있답니다.)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;예제를 타이핑 하는대신 아래의 디스크 이미지를 이용하세요.&lt;br /&gt;:  &lt;a href="http://cocoadevcentral.com/downloads/000081-CLanguageExamples.zip"&gt;All examples for tutorial&lt;/a&gt;		&lt;br /&gt;&lt;br /&gt;Mac OS X에 인스톨된 Xcode로 빌드를 해야하지만, 여기의 대부분의 코드는 어떤 OS에서도 잘 실행 될 것입니다. &lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;input name="encrypted" value="-----BEGIN PKCS7-----MIIHXwYJKoZIhvcNAQcEoIIHUDCCB0wCAQExggEwMIIBLAIBADCBlDCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb20CAQAwDQYJKoZIhvcNAQEBBQAEgYBSSHHSNWYqWqKtQaw6APbksBifDgkVfmhgKHAddvv4DlV02qXnHGiXBRaCKntiAt3SaX4HnN3U+J9e+vXLbIqIKoaZiGzrTz2XOKzKqjiE4gyl9v523TCB9u2NgLZgGzq8LT6E2C8ZvdgaHduLvmHHLTHnEc0QMC5iSLCyHzNRcjELMAkGBSsOAwIaBQAwgdwGCSqGSIb3DQEHATAUBggqhkiG9w0DBwQIITNvUQrCB7uAgbi2iiaNsnIplXdVeqtmOaTTcdlIqi2mgoincUBWbHNSiucr+Rl9Ah2jW1dY37x6Ej30MtBWP2D4u1d6gqs/b57kmtZO6mDjJOCHgc2deevl334yFZaGulPFQXc+QJKNhvgT5yrq1DiyeWT79aBXDIIWukKowxQA/GXrLvOKWENzbMLRRSQi8l+3rMMcgRf5LTchxkST3tIxlO5g6K69YihuU2mcr3rPj1Fv/Voh2Af16InscAfsP3P+oIIDhzCCA4MwggLsoAMCAQICAQAwDQYJKoZIhvcNAQEFBQAwgY4xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLUGF5UGFsIEluYy4xEzARBgNVBAsUCmxpdmVfY2VydHMxETAPBgNVBAMUCGxpdmVfYXBpMRwwGgYJKoZIhvcNAQkBFg1yZUBwYXlwYWwuY29tMB4XDTA0MDIxMzEwMTMxNVoXDTM1MDIxMzEwMTMxNVowgY4xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLUGF5UGFsIEluYy4xEzARBgNVBAsUCmxpdmVfY2VydHMxETAPBgNVBAMUCGxpdmVfYXBpMRwwGgYJKoZIhvcNAQkBFg1yZUBwYXlwYWwuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDBR07d/ETMS1ycjtkpkvjXZe9k+6CieLuLsPumsJ7QC1odNz3sJiCbs2wC0nLE0uLGaEtXynIgRqIddYCHx88pb5HTXv4SZeuv0Rqq4+axW9PLAAATU8w04qqjaSXgbGLP3NmohqM6bV9kZZwZLR/klDaQGo1u9uDb9lr4Yn+rBQIDAQABo4HuMIHrMB0GA1UdDgQWBBSWn3y7xm8XvVk/UtcKG+wQ1mSUazCBuwYDVR0jBIGzMIGwgBSWn3y7xm8XvVk/UtcKG+wQ1mSUa6GBlKSBkTCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb22CAQAwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQCBXzpWmoBa5e9fo6ujionW1hUhPkOBakTr3YCDjbYfvJEiv/2P+IobhOGJr85+XHhN0v4gUkEDI8r2/rNk1m0GA8HKddvTjyGw/XqXa+LSTlDYkqI8OwR8GEYj4efEtcRpRYBxV8KxAW93YDWzFGvruKnnLbDAF6VR5w/cCMn5hzGCAZowggGWAgEBMIGUMIGOMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExFjAUBgNVBAcTDU1vdW50YWluIFZpZXcxFDASBgNVBAoTC1BheVBhbCBJbmMuMRMwEQYDVQQLFApsaXZlX2NlcnRzMREwDwYDVQQDFAhsaXZlX2FwaTEcMBoGCSqGSIb3DQEJARYNcmVAcGF5cGFsLmNvbQIBADAJBgUrDgMCGgUAoF0wGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMDYxMDE3MDM0MTE2WjAjBgkqhkiG9w0BCQQxFgQUxfBlMgCbjkSCybtXpRxQfvlP04cwDQYJKoZIhvcNAQEBBQAEgYCkIBkjh2AkLGTXW8GBvmaBEnuITVh2FBytXG0ob7ceJEfwHHIUkG72iuEYVfbzvW4DpkbK2l6JWF6iOgx3QpGWqaKg/nx0s7eIDvkeJgKd4s84oCiyZpIxfhcxF8QAoRTRicgHmXKI0q6RjY/Q/ogIqjpJKNMHsuVOklRC8hJo1A==-----END PKCS7-----" type="hidden"&gt;		&lt;div class="credits"&gt;		&lt;/div&gt;			&lt;/div&gt;			&lt;!-- #### section #### --&gt;			&lt;div class="contentsection codesection"&gt;&lt;div style="border: 1px solid rgb(204, 204, 204); padding: 10px; background-color: rgb(255, 255, 255);"&gt;&lt;div class="contentsection codesection"&gt;			&lt;h3&gt;&lt;span style="color: rgb(0, 122, 153);"&gt;A Sample C Program&lt;/span&gt;&lt;br /&gt;&lt;/h3&gt;				&lt;div style="clear: both;"&gt;&lt;br /&gt;이것이 첫번째 C 프로그램 입니다. text1.c라는 이름의 빈 텍스트 파일에 이 예제 코드를 복사해 보겠습니다.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="codeheader"&gt;test1.c&lt;/div&gt;				&lt;div class="codeblock"&gt;&lt;br /&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;&lt;br /&gt;main ()&lt;br /&gt;{&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;printf (&lt;em&gt;"&lt;span style="color: rgb(5, 170, 211);"&gt;I'm a C program\n&lt;/span&gt;"&lt;/em&gt;);&lt;br /&gt;&lt;/div&gt;}&lt;/div&gt;		&lt;div class="contentbody"&gt;		&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;#include &amp;lt;stdio.h&amp;gt;&lt;/span&gt; 는 C 코드에서 input 과 output 구문을 포함하고 있습니다. 우리는 printf 함수를 사용하기 위해 필요합니다.&lt;br /&gt;&lt;br /&gt;두 번째 줄은 모든 C 프로그램들이 가지고 있는 &lt;span style="font-style: italic; font-weight: bold;"&gt;메인&lt;/span&gt; 함수를 정의하고 있습니다.&lt;br /&gt;&lt;br /&gt;마지막으로, &lt;span style="font-weight: bold; font-style: italic;"&gt;printf&lt;/span&gt; 함수를 커맨드 라인에 보여줄 몇글자와 함께 적어보았습니다. /n를 텍스트에 포함시킴으로써 다음에 오는 문자열은 다음 줄에 나타나게 됩니다.&lt;br /&gt;&lt;/div&gt;	&lt;/div&gt;&lt;/div&gt;&lt;!-- #### section #### --&gt;	&lt;/div&gt;	&lt;div class="contentsection" style="padding-bottom: 0px;"&gt;		&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="border: 1px solid rgb(204, 204, 204); padding: 10px; background-color: rgb(255, 255, 255);"&gt;&lt;h3 style="color: rgb(0, 122, 153);"&gt;Use GCC to Compile&lt;/h3&gt;		&lt;div class="contentbody"&gt;					Terminal을 열고 text.c 파일의 디렉토리를 변경 해보겠습니다. &lt;span style="font-style: italic; font-weight: bold;"&gt;"gcc text1.c -o text1."&lt;/span&gt; 커맨드를 입력합니다. 프로그램을 실행시키고 &lt;span style="font-style: italic; font-weight: bold;"&gt;"./text1"&lt;/span&gt; 을 커맨드 라인에 입력합니다.&lt;br /&gt;&lt;br /&gt;만일 에어를 본다면, 샘플 소스 코드를 정확히 입력했는지 다시한번 확인 합니다.&lt;br /&gt;&lt;/div&gt;		&lt;div style="clear: both;"&gt;&amp;nbsp;&lt;br /&gt;-- Terminal 창 예시 --&lt;br /&gt;&lt;/div&gt;		&lt;div class="contentbody"&gt;host% gcc test1.c -o test1&lt;br /&gt;host% ./test1&lt;br /&gt;I'm a C program&lt;br /&gt;host%&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;-o&lt;/span&gt; parameter 는 프로그램 파일의 이름을 gcc에 설정 해줍니다. 이걸 꺼버리면 프로그램은 &lt;span style="font-style: italic; font-weight: bold;"&gt;"a.out"&lt;/span&gt;을 호출합니다.&lt;br /&gt;		&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(204, 204, 204); padding: 10px; background-color: rgb(255, 255, 255);"&gt;&lt;h4&gt;&lt;span style="color: rgb(0, 122, 153);"&gt;About the Compiler&lt;/span&gt;&lt;br /&gt;&lt;/h4&gt;		&lt;div class="contentbody"&gt;당신의 C 소스를 실행시키기 위해선 컴파일러를 이용해서 바이너리 프로그램으로 변경시켜줘야 합니다. 컴파일 프로그램은 종종 스크립트보다 빠르게 작동합니다. Mac OS X 에서 C로 쓰여진 것은 더욱 그렇습니다.&lt;br /&gt;&lt;br /&gt;이 튜토리얼에서, 우린 gcc의 커맨드 라인을 이용해서 컴파일을 했습니다만, Xcode는 좀더 그래픽적인 모습의 같은 툴을 제공합니다.&lt;br /&gt;&lt;br /&gt;&lt;h4&gt;&lt;span style="color: rgb(0, 122, 153);"&gt;Portability&lt;/span&gt;&lt;br /&gt;&lt;/h4&gt;		&lt;div class="contentbody"&gt;C 프로그램은 흔히 그것이 컴파일 된 컴퓨터와 동일한 타입의컴퓨터에선 작동 합니다. 만일, Mac OS X에서 C 소스로 컴파일 작업을 했다면, Linux와 같은 곳에선 작동하지않습니다. 이것을 가능하게 하기 위해서, 같은 코드를 리눅스에서 컴파일 해야 합니다.&lt;br /&gt;&lt;br /&gt;좀더 복잡한 C 프로그램들은 각각의 플랫폼에 알맞게 컴파일을 해줘야만 하는데, 이와같은 작업을 코드를 &lt;span style="font-style: italic; font-weight: bold;"&gt;porting(포팅)&lt;/span&gt; 한다라고 합니다, &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(204, 204, 204); padding: 10px; background-color: rgb(255, 255, 255);"&gt;&lt;h3&gt;&lt;span style="color: rgb(0, 122, 153);"&gt;C Differences&lt;/span&gt;&lt;br /&gt;&lt;/h3&gt;		&lt;div class="contentbody"&gt;이미 알고 있는 다른 언어를 C와 비교할 수 있다면 보다 쉽게 C를 익힐 수 있습니다. 만일 당신이 스크립트 언어인 PHP 또는 Perl등을 공부해 왔다면, 아래의 목록에 있는 컨셉들이 낯설게 느껴질 수 있겠습니다.&lt;br /&gt;&lt;/div&gt;		&lt;div class="cl"&gt;&amp;nbsp;&lt;/div&gt;		&lt;table style="width: 504px; height: 168px;" bgcolor="#f2f2f2"&gt;			&lt;tbody&gt;&lt;tr class="header" bgcolor="#e0e0e0"&gt;&lt;th colspan="2"&gt;Basic C Concepts&lt;/th&gt;&lt;/tr&gt;			&lt;tr bgcolor="#e0e0e0"&gt;				&lt;td style="color: rgb(0, 122, 153);" class="highlight"&gt;compiler&lt;/td&gt;				&lt;td&gt;creates useable programs from C source&lt;/td&gt;			&lt;/tr&gt;  			&lt;tr bgcolor="#e0e0e0"&gt;   				&lt;td style="color: rgb(0, 122, 153);" class="highlight"&gt;typed variables&lt;/td&gt;				&lt;td&gt;kind of data that a variable contains&lt;/td&gt;			&lt;/tr&gt;  			&lt;tr bgcolor="#e0e0e0"&gt;   				&lt;td style="color: rgb(0, 122, 153);" class="highlight"&gt;typed functions&lt;/td&gt;				&lt;td&gt;the kind of data returned from a function&lt;/td&gt;			&lt;/tr&gt;  			&lt;tr bgcolor="#e0e0e0"&gt;   				&lt;td style="color: rgb(0, 122, 153);" class="highlight"&gt;header files (.h)&lt;/td&gt;				&lt;td&gt;declare functions and variables in a separate file&lt;/td&gt;			&lt;/tr&gt;  			&lt;tr bgcolor="#e0e0e0"&gt;   				&lt;td style="color: rgb(0, 122, 153);" class="highlight"&gt;structs&lt;/td&gt;				&lt;td&gt;groups of related values&lt;/td&gt;			&lt;/tr&gt;  			&lt;tr bgcolor="#e0e0e0"&gt;   				&lt;td style="color: rgb(0, 122, 153);" class="highlight"&gt;enums&lt;/td&gt;				&lt;td&gt;lists of predefined values&lt;/td&gt;			&lt;/tr&gt;  			&lt;tr bgcolor="#e0e0e0"&gt;   				&lt;td style="color: rgb(0, 122, 153);" class="highlight"&gt;pointers&lt;/td&gt;				&lt;td&gt;aliases to other variables&lt;/td&gt;			&lt;/tr&gt;			&lt;/tbody&gt;&lt;/table&gt;			&lt;br /&gt;&lt;div class="contentbody"&gt;이것들 모두가 간단한 컨셉들 입니다. C 언어는 절대로 복잡하지 않습니다, 다른 조각들이 합꼐 놓일 수 있는데 이경우 복잡하게 보일 뿐입니다.&lt;br /&gt;&lt;br /&gt;포인터를 제외하면, C는 PHP와 거의 유사합니다. 포인터는 컨셉적으로 트릭이 있지만, 코코아는 기본적인 프로그래밍을 위한 이런 세부적인 것들로 부터 당신을 객관화 합니다.&lt;br /&gt;&lt;br /&gt;이 튜토리얼에서 포인터는 배우지 않을 것입니다. 이곳은 &lt;span style="font-weight: bold; font-style: italic;"&gt;빨리 익숙해 지는것&lt;/span&gt;에 초점을 맞추고 있습니다. 좀더 심오한 프로그래밍을 원한다면 포인터에 대해 알아보기 위해 되돌아 갈 수 있습니다.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(204, 204, 204); padding: 10px; background-color: rgb(255, 255, 255);"&gt;&lt;h3 style="color: rgb(0, 122, 153);"&gt;Typed Variables&lt;br /&gt;&lt;/h3&gt;		&lt;div class="contentbody"&gt;스크립트 언어에서는 변수를 자유롭게 선언할 수 있었을 것입니다. integer number로 선언된 변수를 십진수로 바꾸거나, text로도 바꿀 수 있었을 것입니다. &lt;br /&gt;&lt;/div&gt;		&lt;div style="clear: both;"&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="codeblock"&gt;&lt;em&gt;$&lt;/em&gt;variable  = 2;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;em&gt;$&lt;/em&gt;variable  = 1.618;&lt;br /&gt;&lt;em&gt;$&lt;/em&gt;variable  = 'A';&lt;/div&gt;				&lt;div style="clear: both;"&gt;&lt;br /&gt;C에서는, 규칙에 좀더 엄격합니다. 반드시 명확한 변수형으로 입력된 변수 데이터를 고정하고, 타입을 변경할 수 없습니다. 이것이 C의 변수선언 입니다:&lt;br /&gt;&lt;br /&gt; &lt;/div&gt;&lt;!-- code --&gt;&lt;div class="contentbody"&gt;&lt;em style="color: rgb(5, 170, 211);"&gt;int&lt;/em&gt;   variable1   = 2;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;em style="color: rgb(5, 170, 211);"&gt;float&lt;/em&gt; variable2   = 1.618;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;em style="color: rgb(5, 170, 211);"&gt;char&lt;/em&gt;  variable3   = 'A';&lt;br /&gt;&lt;br /&gt;알렸드렸듯이, 세계의 다른 변수들을 C 버전으로 정의 했으며, 각각의 모드 다른 데이터 타입으로 선언되어 있습니다.&amp;nbsp; 같은 변수에 대하여 오직 한번만 변수 타입을 선언할 수 있습니다. 보시죠:&lt;br /&gt;&lt;/div&gt;		&lt;div class="cl"&gt;&amp;nbsp;&lt;/div&gt;&lt;!-- code --&gt;&lt;em style="color: rgb(5, 170, 211);"&gt;float&lt;/em&gt; variable2  = 1.618;&lt;br /&gt;variable2        = 3.921;&lt;br /&gt;variable2        = 4.212;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;!-- #### section #### --&gt;	&lt;!-- #### section #### --&gt;	&lt;div class="contentsection codesection" style="padding-bottom: 0px;"&gt;&lt;div style="border: 1px solid rgb(204, 204, 204); padding: 10px; background-color: rgb(255, 255, 255);"&gt;&lt;h4&gt;&lt;span style="color: rgb(0, 122, 153);"&gt;Available Types&lt;/span&gt;&lt;br /&gt;&lt;/h4&gt;		&lt;div class="contentbody"&gt;우리의 목적을 위해, 당신이 알아야할 C의 변수 타입들 입니다:&lt;br /&gt;&lt;/div&gt;		&lt;div class="cl"&gt;&amp;nbsp;&lt;/div&gt;		&lt;table style="width: 481px; height: 106px;" bgcolor="#f2f2f2"&gt;			&lt;tbody&gt;&lt;tr class="header" bgcolor="#e0e0e0"&gt;				&lt;th&gt;Type&lt;/th&gt;				&lt;th&gt;Description&lt;/th&gt;				&lt;th&gt;Examples&lt;/th&gt;			&lt;/tr&gt;			&lt;tr bgcolor="#e0e0e0"&gt;				&lt;td style="color: rgb(0, 122, 153);" class="highlight"&gt;int&lt;/td&gt;				&lt;td&gt;integer numbers, including negatives&lt;/td&gt;				&lt;td&gt;0, 78, -1400&lt;/td&gt;			&lt;/tr&gt;			&lt;tr bgcolor="#e0e0e0"&gt;				&lt;td style="color: rgb(0, 122, 153);" class="highlight"&gt;unsigned int&lt;/td&gt;				&lt;td&gt;integer numbers (no negatives)&lt;/td&gt;				&lt;td&gt;0, 46, 900&lt;/td&gt;			&lt;/tr&gt;			&lt;tr bgcolor="#e0e0e0"&gt;				&lt;td style="color: rgb(0, 122, 153);" class="highlight"&gt;float&lt;/td&gt;				&lt;td&gt;floating point decimal numbers&lt;/td&gt;				&lt;td&gt;0.0, 1.618, -1.4&lt;/td&gt;			&lt;/tr&gt;			&lt;tr bgcolor="#e0e0e0"&gt;				&lt;td style="color: rgb(0, 122, 153);" class="highlight"&gt;char&lt;/td&gt;				&lt;td&gt;single text character or symbol&lt;/td&gt;				&lt;td&gt;'a', 'D', '?'&lt;/td&gt;			&lt;/tr&gt;		&lt;/tbody&gt;&lt;/table&gt;		&lt;br /&gt;&lt;div class="contentbody"&gt;비록 자주보진 않겠지만, float을 더큰 소수점 수로 사용할 수 있게 해주는 &lt;span style="font-style: italic; font-weight: bold;"&gt;double&lt;/span&gt; 타입, int의 보다 큰 버전인 &lt;span style="font-weight: bold;"&gt;long&lt;/span&gt;타입도 인지하고 있어야 합니다.&lt;br /&gt;&lt;br /&gt;C는 &lt;span style="font-style: italic; font-weight: bold;"&gt;당신의 고유한&lt;/span&gt; 변수 타입도 허용합니다.&lt;br /&gt;&lt;/div&gt;		&lt;/div&gt;&lt;br /&gt;&lt;!-- code --&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(204, 204, 204); padding: 10px; background-color: rgb(255, 255, 255);"&gt;&lt;h3 style="color: rgb(0, 122, 153);"&gt;Typed Functions&lt;/h3&gt;&lt;div style="clear: both;"&gt;C에서, 함수에서 받을 데이터 타입을 선언해야 합니다. 리턴될 타입은 C 변수 타입 중 어떤 것이든지 가능하고, 함수 이름의 왼편에 위치하게 합니다.&lt;br /&gt; &lt;/div&gt;&lt;!-- code --&gt;					&lt;div class="codeblock"&gt;&lt;em style="color: rgb(0, 122, 153);"&gt;int&lt;/em&gt; numberOfPeople ()&lt;br /&gt;{&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;return 3;&lt;br /&gt;&lt;/div&gt;}&lt;br /&gt;&lt;em&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 122, 153);"&gt;float&lt;/span&gt;&lt;/em&gt; dollarsAndCents ()&lt;br /&gt;{&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;return 10.33;&lt;br /&gt;&lt;/div&gt;}&lt;br /&gt;&lt;em&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 122, 153);"&gt;char&lt;/span&gt;&lt;/em&gt; firstLetter ()&lt;br /&gt;{&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;return 'A';&lt;br /&gt;&lt;/div&gt;}&lt;/div&gt;&lt;!-- code --&gt;				&lt;div class="cl"&gt;&lt;br /&gt;&lt;br /&gt;또한 &lt;span style="font-style: italic; font-weight: bold;"&gt;void&lt;/span&gt; 타입으로 지정할 수 있다. 지금, 값을 반환하지 않는 형태를 생각해 볼 수 있을 것입니다:&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;!-- code --&gt;					&lt;div class="codeblock"&gt;&lt;em&gt;void&lt;/em&gt; printHello ()&lt;br /&gt;{&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;printf ("Hello\n");&lt;br /&gt;&lt;/div&gt;}&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(204, 204, 204); padding: 10px; background-color: rgb(255, 255, 255);"&gt;&lt;h4 style="color: rgb(0, 122, 153);"&gt;Types for Parameters&lt;/h4&gt;&lt;div class="cl"&gt;또한 &lt;span style="font-style: italic; font-weight: bold;"&gt;함수에 들어갈 값&lt;/span&gt;의 타입도 정의해줘야 합니다. 스크립트 언어와는 다르게 디폴트 값으로 설정해 둘 수 없습니다.&lt;br /&gt; &lt;/div&gt;&lt;!-- code --&gt;&lt;div class="codeblock"&gt;&lt;span style="color: rgb(0, 122, 153);"&gt;int&lt;/span&gt; difference (&lt;em&gt;int&lt;/em&gt; value1, &lt;em&gt;int&lt;/em&gt; value2)&lt;br /&gt;{&lt;br /&gt;return value1 - value2;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 122, 153);"&gt;float&lt;/span&gt; changeDue (&lt;em&gt;float&lt;/em&gt; amountPaid, &lt;em&gt;float&lt;/em&gt; costOfItem)&lt;br /&gt;{&lt;br /&gt;return amountPaid - costOfItem;&lt;br /&gt;}&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;	&lt;/div&gt;&lt;!-- #### section #### --&gt;	&lt;div class="contentsection codesection" style="padding-bottom: 0px;"&gt;&lt;!-- code --&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(204, 204, 204); padding: 10px; background-color: rgb(255, 255, 255);"&gt;&lt;div class="contentsection codesection" style="padding-bottom: 0px;"&gt;		&lt;h3&gt;&lt;span style="color: rgb(0, 122, 153);"&gt;Declaring Functions&lt;/span&gt;&lt;br /&gt;&lt;/h3&gt;		&lt;div class="contentbody"&gt;C에서,함수는 다른 코드에서 불려지기 전에 &lt;span style="font-style: italic; font-weight: bold;"&gt;declared(이하 선언)&lt;/span&gt;되어 있어야 합니다. main() 전에 모든 함수들을 둘 수 있지만, 빨리 처리해야 할 많은 일이 됩니다.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;function prototype(이하 함수 프로토타입)&lt;/span&gt;의 해결책 입니다. 이것은 함수 정의 처럼 보이지만, 중괄호와 마지막의 세미콜론을 가지고 있지 않습니다:&lt;br /&gt;&lt;/div&gt;		&lt;div style="clear: both;"&gt;&amp;nbsp;&lt;/div&gt;&lt;!-- code --&gt;					&lt;!-- code --&gt;		&lt;div class="contentbody"&gt;int   difference ( &lt;em style="color: rgb(5, 170, 211);"&gt;int&lt;/em&gt; value1, &lt;em style="color: rgb(5, 170, 211);"&gt;int&lt;/em&gt; value2 );&lt;br /&gt;float changeDue  ( &lt;em style="color: rgb(5, 170, 211);"&gt;float&lt;/em&gt; amountPaid, &lt;em style="color: rgb(5, 170, 211);"&gt;float&lt;/em&gt; costOfItem );&lt;br /&gt;&lt;br /&gt;함수 프로토타입에서, 리턴될 데이터 타입, 함수이름, 함수에 들어갈 값들 각각의 타입을 기입합니다.&lt;em&gt;&lt;br /&gt;&lt;/em&gt;		&lt;/div&gt;				&lt;div class="cl"&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="codeheader"&gt;이것들은 예입니다. text2.c 파일을 불러 내용을 붙여넣읍시다.&lt;br /&gt;&lt;br /&gt;test2.c&lt;/div&gt;				&lt;div class="codeblock"&gt;&lt;br /&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;int &lt;em style="color: rgb(5, 170, 211);"&gt;sum&lt;/em&gt; ( int x, int y );&lt;br /&gt;&lt;br /&gt;main ()&lt;br /&gt;{&lt;br /&gt;int theSum = &lt;em style="color: rgb(5, 170, 211);"&gt;sum&lt;/em&gt; (10, 11);&lt;br /&gt;printf ( "Sum: %i\n", theSum );&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;int &lt;em style="color: rgb(5, 170, 211);"&gt;sum&lt;/em&gt; ( int x, int y )&lt;br /&gt;{&lt;br /&gt;return x + y;&lt;br /&gt;}&lt;/div&gt;		&lt;div class="contentbody"&gt;		&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;stdio.h&lt;/span&gt; 를 포함시켰는데 이렇게 되면 printf를 사용할 수 있습니다. 그리고 &lt;span style="font-style: italic; font-weight: bold;"&gt;sum&lt;/span&gt; 함수를 프로토타입을 이용해 선언 했습니다. main 안에는 sum 함수를 호출하고 &lt;span style="font-style: italic; font-weight: bold;"&gt;theSum&lt;/span&gt;이라는 변수에 결과를 넣었습니다.&lt;br /&gt;&lt;br /&gt;sum 함수의 리턴타입을 int로 기입한것은 theSum 변수를 int로 선언할 필요가 있었기 때문입니다. &lt;span style="font-style: italic; font-weight: bold;"&gt;변수 타입은 합수의 리턴 타입과 일치 시켜야 합니다. &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;				&lt;div class="cl"&gt;&lt;br style="font-style: italic; font-weight: bold;"&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;printf&lt;/span&gt;를 이용해서 theSum에 있는 내용을 표시 했습니다. sum 함수의 아래에서 두개의 숫자를 함께 더해 주고 있습니다. 이것을 함수 이행(function implementation)이라고 부릅니다.&lt;br /&gt;&lt;/div&gt;	&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;!-- code --&gt;			&lt;/div&gt;&lt;!-- #### section #### --&gt;	&lt;div class="contentsection codesection" style="padding-bottom: 0px;"&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(204, 204, 204); padding: 10px; background-color: rgb(255, 255, 255);"&gt;&lt;h3&gt;&lt;span style="color: rgb(0, 122, 153);"&gt;Compile the Example&lt;/span&gt;&lt;br /&gt;&lt;/h3&gt;		&lt;div class="contentbody"&gt;터미널을 열고 text2.c의 디렉토리를 변경 합니다. 그리고 컴파일 하기 위해 "text2.c -o test2" 를 적습니다.&lt;br /&gt;&lt;br /&gt;"./test2"를 적고 프로그램을 실행 시킵니다.&lt;br /&gt;&lt;/div&gt;		&lt;div style="clear: both;"&gt;&lt;br /&gt;-- 터미널 표시 예시 -- &lt;br /&gt;&lt;/div&gt;&lt;div class="unixbox"&gt;host% gcc test2.c -o test2&lt;br /&gt;host% ./test2&lt;br /&gt;Sum: 21&lt;br /&gt;host%&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;	&lt;/div&gt;	&lt;!-- #### section #### --&gt;	&lt;div class="contentsection" style="padding-bottom: 0px;"&gt;&lt;div style="border: 1px solid rgb(204, 204, 204); padding: 10px; background-color: rgb(255, 255, 255);"&gt;&lt;h3 style="color: rgb(0, 122, 153);"&gt;Format Strings&lt;/h3&gt;				&lt;div class="cl"&gt;어쩌면 예제 안의 %i 가 무슨 의미인지 궁금하실지도 모르겠습니다. PHP와 같은 스크립트 언어 등에서는 큰 따옴표의 안쪽에 자유롭게 변수를 끼워 넣을 수 있었을 것입니다:&lt;br /&gt;&amp;nbsp;&lt;/div&gt;&lt;!-- code --&gt;					&lt;!-- code --&gt;				&lt;div class="codeblock"&gt;$&lt;em&gt;var1&lt;/em&gt; = 3;&lt;br /&gt;$&lt;em&gt;var2&lt;/em&gt; = 8;&lt;br /&gt;print ("First value: $&lt;em&gt;var1&lt;/em&gt; second value: $&lt;em&gt;var2&lt;/em&gt;");&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="cl"&gt;&lt;br /&gt;C에서는, 텍스트(text)안에 바로 변수를 끼워넣을 수 없습니다. 반드시 변수들을 위해 format string과 함께 format markers 를 사용해야 합니다:&lt;br /&gt;&amp;nbsp;&lt;/div&gt;		&lt;!-- code --&gt;					&lt;div class="codeblock"&gt;int &lt;em&gt;var1&lt;/em&gt; = 3;&lt;br /&gt;int &lt;em&gt;var2&lt;/em&gt; = 8;&lt;br /&gt;printf ("First value: &lt;em&gt;%i&lt;/em&gt; second value: &lt;em&gt;%i&lt;/em&gt;", &lt;em&gt;var1&lt;/em&gt;, &lt;em&gt;var2&lt;/em&gt;);&lt;/div&gt;&lt;!-- code --&gt;						&lt;div class="contentbody"&gt;					&lt;table style="float: right;" bgcolor="#f2f2f2"&gt;			&lt;tbody&gt;&lt;tr class="header" bgcolor="#e0e0e0"&gt;&lt;th colspan="2"&gt;Format Markers&lt;/th&gt;&lt;/tr&gt;			&lt;tr bgcolor="#e0e0e0"&gt;			&lt;td&gt;int&lt;/td&gt;			&lt;td class="highlight"&gt;%i / %d&lt;/td&gt;			&lt;/tr&gt;  			&lt;tr bgcolor="#e0e0e0"&gt;   			&lt;td&gt;unsigned int&lt;/td&gt;			&lt;td class="highlight"&gt;%u&lt;/td&gt;			&lt;/tr&gt;  			&lt;tr bgcolor="#e0e0e0"&gt;   			&lt;td&gt;float&lt;/td&gt;			&lt;td class="highlight"&gt;%f&lt;/td&gt;			&lt;/tr&gt;  			&lt;tr bgcolor="#e0e0e0"&gt;   			&lt;td&gt;char&lt;/td&gt;			&lt;td class="highlight"&gt;%c&lt;/td&gt;			&lt;/tr&gt;		&lt;/tbody&gt;&lt;/table&gt;								&lt;br /&gt;format string 은 쌍따옴표 안쪽에 위치합니다. % maker는 변수를 나타내고 싶은 어떤 위치에서든지 두면 됩니다.&lt;br /&gt;&lt;br /&gt;보여주고 싶은 변수 타입에 따라 %심볼 옆에 문자열을 두면 됩니다. 이 경우에는 &lt;span style="font-style: italic; font-weight: bold;"&gt;int&lt;/span&gt;형태의 변수로 보여주고 싶었기 떄문에 &lt;span style="font-weight: bold;"&gt;%i&lt;/span&gt;를 사용했습니다.&lt;br /&gt;&lt;br /&gt;format string 은 콤마를 대등하고, 각각 당신이 사용한 maker에 변수 이름과 매칭됩니다. 쌍따옴표가 닫혀진 뒤의 위치에 각각의 콤마가 차례대로 매칭된다는 것에 주의하세요.&lt;br /&gt;&lt;br /&gt;코코아 프로그램은 &lt;span style="font-style: italic; font-weight: bold;"&gt;printf&lt;/span&gt; 대신 &lt;span style="font-weight: bold;"&gt;NSlog&lt;/span&gt;를 사용하지만, 포맷팅(formatting)룰은 거의 동일합니다.&lt;br /&gt;				&lt;/div&gt;				&lt;/div&gt;&lt;br /&gt;	&lt;/div&gt;	&lt;!-- #### section #### --&gt;	&lt;div class="contentsection codesection" style="padding-bottom: 0px;"&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(204, 204, 204); padding: 10px; background-color: rgb(255, 255, 255);"&gt;&lt;h3 style="color: rgb(0, 122, 153);"&gt;Type Casting&lt;/h3&gt;		&lt;div class="contentbody"&gt;		가끔씩 미리 정의해둔 &lt;span style="font-style: italic; font-weight: bold;"&gt;변수의 타입을 다른것으로 바꿀 필요&lt;/span&gt;가 있을 것입니다. 예를들면, float타입으로 정의해둔 변수지만 함수에서는 int형 변수를 필요로 할 수 있습니다.&lt;br /&gt;&lt;/div&gt;		&lt;div class="cl"&gt;&lt;br /&gt;어쩌면 아무런 오류없이 플롯형의 변수를 그대로 사용할 수 있을지도 모릅니다만, 변경을 하는 편이 좋습니다. 이런 변경을 &lt;span style="font-weight: bold; font-style: italic;"&gt;casting&lt;/span&gt;이라 불립니다.&lt;br /&gt; &lt;/div&gt;&lt;!-- code --&gt;					&lt;em style="color: rgb(0, 122, 153);"&gt;int&lt;/em&gt; multiply (&lt;em style="color: rgb(0, 122, 153);"&gt;int&lt;/em&gt; x, &lt;em style="color: rgb(0, 122, 153);"&gt;int&lt;/em&gt; y)&lt;br /&gt;{&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;return x * y;&lt;br /&gt;&lt;/div&gt;}&lt;br /&gt;&lt;br /&gt;&lt;em style="color: rgb(0, 122, 153);"&gt;int&lt;/em&gt;   trips           = 6;&lt;br /&gt;&lt;em style="color: rgb(0, 122, 153);"&gt;float&lt;/em&gt; distance        = 4.874;&lt;br /&gt;&lt;br /&gt;&lt;em style="color: rgb(0, 122, 153);"&gt;int&lt;/em&gt;   approxDistance  = (&lt;em style="color: rgb(0, 122, 153);"&gt;int&lt;/em&gt;)distance;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;em style="color: rgb(0, 122, 153);"&gt;int&lt;/em&gt; total = multiply ( trips, approxDistance );&lt;br /&gt;&lt;br /&gt;casting은 변수의 옆에 바꾸고자 하는 타입을 괄호속에 넣어 위치시키는 간단한 방법으로 가능합니다.&lt;br /&gt;&lt;br /&gt;casting의 결과는 어떤 변수를 어떻게 변경하느냐에 따라 결정됩니다. float 타입의 변수를 int 타입으로 변경하게 되면 소수점 자리를 버린채로 변경되게 됩니다. &lt;span style="font-style: italic; font-weight: bold;"&gt;casting은 숫자를 반올림하거나 하지 않습니다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;		casting은 일시적인 변경을 해줄뿐 변수 자신의 타입이 변경되는 것은 아닙니다. 예에서 보듯이 &lt;span style="font-style: italic; font-weight: bold;"&gt;distance는 후에도 여전히 float 타입의 변수&lt;/span&gt;로 남아있게 되는데 int형으로의 사용을 원한다면 매번 int형으로 casting을 해줘야 합니다.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;			&lt;/div&gt;&lt;!-- #### section #### --&gt;			&lt;!-- #### section #### --&gt;	&lt;div class="contentsection codesection" style="padding-bottom: 0px;"&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(204, 204, 204); padding: 10px; background-color: rgb(255, 255, 255);"&gt;&lt;h4 style="color: rgb(0, 122, 153);"&gt;More Casting Examples&lt;/h4&gt;				&lt;div class="cl"&gt;이번의 예에서는 approxDistance 변수 없이 함수를 호출해보겠습니다. 대신, 함수안에서 cast를 하면 됩니다.:&lt;br /&gt; &lt;/div&gt;&lt;!-- code --&gt;					&lt;!-- code --&gt;				&lt;div class="cl"&gt;&lt;em&gt;int&lt;/em&gt; result = multiply (trips, (&lt;em&gt;int&lt;/em&gt;)distance);&lt;br /&gt;&lt;br /&gt;가끔씩 함수로 부터 산출되는 값을 다른 타입의 변수로 변경해야 하는 경우가 생깁니다. 아래와 같이 따라해 보십시오:&lt;br /&gt; &lt;/div&gt;&lt;!-- code --&gt;					&lt;!-- code --&gt;						&lt;div class="contentbody"&gt;&lt;em style="color: rgb(5, 170, 211);"&gt;int&lt;/em&gt; multiply (int x, int y)&lt;br /&gt;{&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;return x * y;&lt;br /&gt;&lt;/div&gt;}&lt;br /&gt;&lt;br /&gt;&lt;em style="color: rgb(5, 170, 211);"&gt;float&lt;/em&gt; result;&lt;br /&gt;&lt;br /&gt;result = (&lt;em style="color: rgb(5, 170, 211);"&gt;float&lt;/em&gt;) multiply (3, 6);&lt;br /&gt;&lt;br /&gt;함수의 정의에서, 저는 &lt;span style="font-style: italic; font-weight: bold;"&gt;multiply&lt;/span&gt;의 리턴 값을 int로 볼 수 있었습니다. 하지만 float 타입으로 결과를 저장하기를 원했고, 함수가 호출될 때 함수 이름의 앞에&lt;span style="font-style: italic; font-weight: bold;"&gt; (float)&lt;/span&gt;을 cast 했습니다. 결과로 변수에 &lt;span style="font-style: italic; font-weight: bold;"&gt;18.0&lt;/span&gt;의 값을 갖게 했습니다.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(204, 204, 204); padding: 10px; background-color: rgb(255, 255, 255);"&gt;&lt;h3 style="color: rgb(0, 122, 153);"&gt;Header Files&lt;/h3&gt;C에선 함수들을 사용하기 전에 그것들을 먼저 선언해야 합니다, 이는 함수간 연관관계 선언에 도움을 주고 단일 공간에서 관리를 편리하게 합니다. 이것이 헤더파일이 하는 일입니다.&lt;br /&gt;&lt;br /&gt;헤더파일들은 큰 프로젝트에서 매우 중요한데 이는 소스 코드의 모든 라인을 보지 않아도 소스코드의 전반적인 부분을 확인할 수 있도록 해주기 때문입니다.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;!-- #### section #### --&gt;	&lt;div class="contentsection" style="padding-bottom: 0px;"&gt;&lt;div style="border: 1px solid rgb(204, 204, 204); padding: 10px; background-color: rgb(255, 255, 255);"&gt;&lt;h4 style="color: rgb(0, 78, 98);"&gt;Create a Header File&lt;/h4&gt;								&lt;div class="cl"&gt;여기에 헤더파일의 예제가 있습니다. &lt;span style="font-style: italic; font-weight: bold;"&gt;math_functions.h&lt;/span&gt; 파일에 내용을 복사 합니다.&lt;br /&gt;&amp;nbsp;&lt;/div&gt;&lt;!-- code --&gt;					&lt;div class="codeheader"&gt;math_functions.h&lt;/div&gt;&lt;!-- code --&gt;		&lt;div class="contentbody"&gt;&lt;br /&gt;int   &lt;em&gt;sum&lt;/em&gt;       (int x, int y);&lt;br /&gt;float &lt;em&gt;average&lt;/em&gt;   (float x, float y, float z);&lt;br /&gt;&lt;br /&gt;여기에 function implementations가 있습니다. 불러들인 &lt;span style="font-style: italic; font-weight: bold;"&gt;math_functions.c&lt;/span&gt; 파일에 붙여넣기 하세요. &lt;em&gt;&lt;br /&gt;&lt;/em&gt;		&lt;/div&gt;		&lt;div class="cl"&gt;&amp;nbsp;&lt;/div&gt;&lt;!-- code --&gt;					&lt;div class="codeheader"&gt;math_functions.c&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="codeblock"&gt;int &lt;em style="color: rgb(5, 170, 211);"&gt;sum&lt;/em&gt; (int x, int y)&lt;br /&gt;{&lt;br /&gt;return (x + y);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;float &lt;em style="color: rgb(5, 170, 211);"&gt;average&lt;/em&gt; (float x, float y, float z)&lt;br /&gt;{&lt;br /&gt;return (x + y + z) / 3;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;averrage 함수에서, 괄호안에 더하기 연산자만을 넣고 괄호 밖에서 나누기 연산자를 이용 했습니다. 그렇게 하지 않았다면 나누기 연산자와 연결된 마지막 숫자만 나누어 졌을 것입니다. 이러한 방식은 수학 연산자의 연습에 유용합니다.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 128, 0); font-style: italic;"&gt;(번역자 노트. 너무 기초적인 내용이라 혹시 심오한 뜻이 있을까 하시는 분들이 있을 까봐 노트를 남겨보자면, 이 튜토리얼 자체가 C를 전혀 모르는 사람을 대상으로 작성되어 있다는 것을 감안해 주세요. :D )&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(204, 204, 204); padding: 10px; background-color: rgb(255, 255, 255);"&gt;&lt;h4 style="color: rgb(0, 122, 153);"&gt;Using Header Files&lt;/h4&gt;				&lt;div class="cl"&gt;여기에 헤더파일에 선언된 함수를 사용함 프로그램이 있습니다. &lt;span style="font-style: italic; font-weight: bold;"&gt;test3.c&lt;/span&gt; 파일에 내용을 복사합니다.&lt;br /&gt;&lt;br /&gt; &lt;/div&gt;&lt;!-- code --&gt;					&lt;div class="codeheader"&gt;test3.c&lt;/div&gt;&lt;!-- code --&gt;		&lt;div class="contentbody"&gt;&lt;br /&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;#include "&lt;em style="color: rgb(5, 170, 211);"&gt;math_functions.h&lt;/em&gt;"&lt;br /&gt;&lt;br /&gt;main ()&lt;br /&gt;{&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;int   theSum     = &lt;em&gt;sum&lt;/em&gt; (8, 12);&lt;br /&gt;float theAverage = &lt;em style="color: rgb(5, 170, 211);"&gt;average&lt;/em&gt; (16.9, 7.86, 3.4);&lt;br /&gt;printf ("the sum is: %i ", theSum);&lt;br /&gt;printf ("and the average is: %f \n", theAverage);&lt;br /&gt;printf ("average casted to an int is: %i \n", (int)theAverage);&lt;br /&gt;&lt;/div&gt;}&lt;br /&gt;&lt;br /&gt;stdio.h 이후에 &lt;span style="font-style: italic; font-weight: bold;"&gt;math_function.h&lt;/span&gt;를 포함(include) 시켰습니다. 이렇게 해두면 프로그램에서 sum과 average 함수들을 호출할 수 있습니다.&lt;br /&gt;&lt;br /&gt;main안에, sum 함수를 호출했고 그 결과를 int변수에 넣었습니다. 그리고 average 함수를 호출하고&amp;nbsp; 그 결과를 float 변수에 넣었습니다.&lt;br /&gt;&lt;br /&gt;프로그램에서 printf를 세번 사용하고 있습니다. 한번은 &lt;span style="font-weight: bold; font-style: italic;"&gt;theSum&lt;/span&gt; 변수를 int로 표시하기 위해 &lt;span style="font-weight: bold; font-style: italic;"&gt;%i&lt;/span&gt; 심볼과 함께 사용했고, 한번은 &lt;span style="font-style: italic; font-weight: bold;"&gt;theAverage&lt;/span&gt; 변수를 float로 표시하기 위해 &lt;span style="font-style: italic; font-weight: bold;"&gt;%f&lt;/span&gt;와 함께 사용했으며, 마지막으로 &lt;span style="font-style: italic; font-weight: bold;"&gt;theAverage&lt;/span&gt;를 &lt;span style="font-style: italic; font-weight: bold;"&gt;int&lt;/span&gt;로 표시하기 위해 &lt;span style="font-style: italic; font-weight: bold;"&gt;%i&lt;/span&gt;로 casting 한것과 함께 사용 했습니다.&lt;br /&gt;&lt;/div&gt;		&lt;br /&gt;stdio.h는 꺽쇠 괄호 안에 존재하게 되는데 이것은 C 라이브러리(좀더 자세한건 이후에 설명)에서 온것이기 때문입니다. math_function.h 파일은 이 프로그램에서 명시하기 위해 쌍따옴표 안에 넣습니다.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;	&lt;/div&gt;&lt;!-- #### section #### --&gt;	&lt;div class="contentsection codesection" style="padding-bottom: 0px;"&gt;&lt;div style="border: 1px solid rgb(204, 204, 204); padding: 10px; background-color: rgb(255, 255, 255);"&gt;&lt;h3 style="color: rgb(0, 122, 153);"&gt;Compile the Example&lt;/h3&gt;				&lt;div style="clear: both;"&gt;아마 여러분들은 세개의 파일을 가지고 있을 텐데요, 모두를 같은 디렉토리 안에 넣어봅시다:&lt;br /&gt;&lt;br /&gt;		&lt;em&gt;math_functions.h&lt;/em&gt; - math function declarations&lt;br /&gt;		&lt;em&gt;math_functions.c&lt;/em&gt; - math function implementations&lt;br /&gt;		&lt;em&gt;test3.c&lt;/em&gt; - the actual program		&lt;br /&gt;&lt;br /&gt;스위치를 다시 터미널로 하고, 세개의 파일이 담긴 디렉토리로 변경 합니다. 프로그램을 컴파일 하기 위해서 &lt;span style="font-style: italic; font-weight: bold;"&gt;"gcc test3.c math_functions.c -o test3"&lt;/span&gt; 이라고 입력합니다.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;"./tset3"&lt;/span&gt; 을 입력해서 프로그램을 실행 해봅시다.&lt;br /&gt;&lt;br /&gt;-- 터미널 예시 -- &lt;br /&gt;&lt;/div&gt;		&lt;div class="contentbody"&gt;host% gcc test3.c math_functions.c -o test3&lt;br /&gt;host% ./test3&lt;br /&gt;the sum is: 20 and the average is: 9.386666&lt;br /&gt;average casted to an int is: 9&lt;br /&gt;host%&lt;br /&gt;&lt;br /&gt;이번 시간 우리는 gcc에게 두개의 input 파일을 주었습니다: test3.c 와 math_functuons.c. gcc 명령은 단일 프로그램 안에서 두개로 이루어진 .c 파일들의 내용을 합쳤습니다.&lt;br /&gt;&lt;br /&gt;커맨드 라인에 &lt;span style="font-style: italic; font-weight: bold;"&gt;math_functuons.h&lt;/span&gt; 헤더 파일의 목록은 필요하지 않았습니다. 단지 #include 구문을 대신했을 뿐인데 말이죠.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;!-- #### section #### --&gt;	&lt;div class="contentsection codesection" style="padding-bottom: 0px;"&gt;&lt;br /&gt;	&lt;/div&gt;&lt;!-- #### section #### --&gt;	&lt;div class="contentsection" style="padding-bottom: 0px;"&gt;&lt;div style="border: 1px solid rgb(204, 204, 204); padding: 10px; background-color: rgb(255, 255, 255);"&gt;&lt;h3 style="color: rgb(0, 122, 153);"&gt;Structs&lt;/h3&gt;		&lt;div class="contentbody"&gt;		Structs(이하 구조체)는 &lt;span style="font-style: italic; font-weight: bold;"&gt;변수들의 그룹을 구조화&lt;/span&gt; 한것입니다. 여기에 노래 정보들을 입력해놓은 것을 디자인한 구조체 예시가 있습니다.&lt;br /&gt;		&lt;/div&gt;		&lt;div class="cl"&gt;&amp;nbsp;&lt;/div&gt;&lt;!-- code --&gt;					&lt;div class="codeblock"&gt;typedef struct {&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;int lengthInSeconds;&lt;br /&gt;int yearRecorded;&lt;br /&gt;&lt;/div&gt;}&lt;em&gt; &lt;span style="color: rgb(0, 122, 153);"&gt;Song&lt;/span&gt;&lt;/em&gt;;&lt;/div&gt;&lt;!-- code --&gt;				&lt;div class="cl"&gt;				&lt;img src="http://cocoadevcentral.com/images/articles/000081-struct.png" style="border: 1px solid rgb(188, 188, 188); float: right; margin-left: 21px; margin-right: -42px; margin-bottom: 21px;" alt="Struct Diagram"&gt;				&lt;br /&gt;이것은 마치 제가 두개의 int 변수를 선언한것 처럼 보이지만, 실제적으론 새로운 타입의 변수를 만든 것입니다. typedef 구문은 구조체에 이름을 할당한 것입니다. 이경우 이름을 &lt;span style="font-style: italic; color: rgb(5, 170, 211); font-weight: bold;"&gt;Song&lt;/span&gt; 이라고 했군요.&lt;br /&gt;&lt;br /&gt;저는 모든 &lt;span style="font-style: italic; font-weight: bold; color: rgb(5, 170, 211);"&gt;Song&lt;/span&gt; 변수를 두 값으로 고정하여 선언 할 것입니다:&lt;span style="font-style: italic; font-weight: bold;"&gt; lengthInSeconds&lt;/span&gt; 와 &lt;span style="font-style: italic; font-weight: bold;"&gt;yearRecorded&lt;/span&gt;. 이 경우, 두 필드들은 int 변수로 고정 되지만, 구조체 선언안의 필드는 어떤 타입이든지 될 수 있습니다. &lt;br /&gt;&lt;br /&gt;구조체를 한번 정의 했다면, 여러분은 같은 방법으로 int, float 또는 char 등을 사용할 수 있습니다. 여러분이 원하는 만큰 Song 변수들을 만들 수 있으며 각각은 그들 고유의 length 와 year을 갖게 됩니다.&lt;br /&gt;&lt;br /&gt;여러분들은 dot syntax를 이용해서 구조체 안의 필드에 값을 할당할 수 있습니다:&lt;br /&gt; &lt;/div&gt;		&lt;!-- code --&gt;					&lt;!-- code --&gt;				&lt;div class="contentbody"&gt;&lt;em style="color: rgb(5, 170, 211); font-weight: bold;"&gt;Song&lt;/em&gt; song1;&lt;br /&gt;&lt;br /&gt;song1.lengthInSeconds =  213;&lt;br /&gt;song1.yearRecorded    = 1994;&lt;br /&gt;&lt;em&gt;&lt;br /&gt;&lt;span style="color: rgb(5, 170, 211); font-weight: bold;"&gt;Song&lt;/span&gt;&lt;/em&gt; song2;&lt;br /&gt;&lt;br /&gt;song2.lengthInSeconds =  248;&lt;br /&gt;song2.yearRecorded    = 1998;&lt;br /&gt;&lt;br /&gt;저는 &lt;span style="font-style: italic; font-weight: bold;"&gt;song1&lt;/span&gt;이라고 불리는 변수를 만들었고 &lt;span style="font-weight: bold; font-style: italic; color: rgb(5, 170, 211);"&gt;Song&lt;/span&gt;이라는 타입을 주었습니다. 그리고 dot syntax를 이용해서 length 와 year를 설정 했습니다. &lt;span style="font-style: italic; font-weight: bold;"&gt;song2&lt;/span&gt; 변수 역시 &lt;span style="font-style: italic; font-weight: bold; color: rgb(5, 170, 211);"&gt;Song&lt;/span&gt; 타입이지만 각각의 필드들은 다른 값을 가지고 있습니다.&lt;br /&gt;		&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;!-- #### section #### --&gt;	&lt;div class="contentsection codesection" style="padding-bottom: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;!-- #### section #### --&gt;	&lt;div class="contentsection codesection" style="padding-bottom: 0px;"&gt;&lt;div style="border: 1px solid rgb(204, 204, 204); padding: 10px; background-color: rgb(255, 255, 255);"&gt;&lt;h4 style="color: rgb(0, 122, 153);"&gt;Structs in Functions&lt;/h4&gt;		&lt;div class="contentbody"&gt;		함수들은 input 또는 output 처럼 구조체를 지정할 수 있습니다. 이런 함수 선언과 구조체는 스스로 헤더페일에 놓일 수 있습니다. &lt;br /&gt;&lt;/div&gt;		&lt;div class="cl"&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;song.h&lt;/span&gt; 파일에 아래의 코드를 붙여 넣어 봅시다.&lt;br /&gt; &lt;/div&gt;&lt;!-- code --&gt;&lt;div class="codeheader"&gt;song.h&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;					&lt;!-- code --&gt;			&lt;div class="contentbody"&gt;typedef struct {&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;int lengthInSeconds;&lt;br /&gt;int yearRecorded;&lt;br /&gt;&lt;/div&gt;} &lt;em style="color: rgb(0, 122, 153);"&gt;Song&lt;/em&gt;;&lt;br /&gt;&lt;br /&gt;&lt;em style="color: rgb(0, 122, 153);"&gt;Song&lt;/em&gt;  make_song    (int seconds, int year);&lt;br /&gt;void  display_song (&lt;em style="color: rgb(0, 122, 153);"&gt;Song&lt;/em&gt; theSong);&lt;br /&gt;&lt;br /&gt;이 헤더파일에서 저는 Song 구조체를 정의 했습니다. 또한 &lt;span style="font-weight: bold; font-style: italic;"&gt;make_song&lt;/span&gt; 과 &lt;span style="font-style: italic; font-weight: bold;"&gt;display_song&lt;/span&gt; 두개의 함수를 선언 했습니다. 이제 우리는 method(이하 메소드) 구현을 만들 필요가 있습니다.&lt;br /&gt;&lt;/div&gt;				&lt;div class="cl"&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;song.c&lt;/span&gt;&amp;nbsp; 파일에 아래의 코드를 붙여 넣어 봅시다.&lt;br /&gt; &lt;/div&gt;	&lt;!-- code --&gt;&lt;div class="codeheader"&gt;song.c&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;!-- code --&gt;				&lt;div class="contentbody"&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;#include "&lt;em style="color: rgb(0, 122, 153);"&gt;song.h&lt;/em&gt;"&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;em style="color: rgb(0, 122, 153);"&gt;Song&lt;/em&gt; make_song (int seconds, int year)&lt;br /&gt;{&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="margin-left: 40px;"&gt;&lt;em style="color: rgb(0, 122, 153);"&gt;Song&lt;/em&gt; newSong;&lt;br /&gt;newSong.lengthInSeconds = seconds;&lt;br /&gt;newSong.yearRecorded    = year;&lt;br /&gt;display_song (newSong);&lt;br /&gt;return newSong;&lt;br /&gt;&lt;/div&gt;}&lt;br /&gt;&lt;br /&gt;void display_song (&lt;em style="color: rgb(0, 122, 153);"&gt;Song&lt;/em&gt; theSong)&lt;br /&gt;{&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;printf ("the song is %i seconds long ", theSong.lengthInSeconds);&lt;br /&gt;  printf ("and was made in %i\n", theSong.yearRecorded);&lt;br /&gt;&lt;/div&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;make_song&lt;/span&gt; 함수는 두개의 int 값들을 가지고 있고 &lt;span style="color: rgb(0, 122, 153); font-weight: bold;"&gt;Song&lt;/span&gt; 구조체를 반환합니다. &lt;span style="font-style: italic; font-weight: bold;"&gt;display_song&lt;/span&gt; 함수는 input 처럼 어떤 Song 구조체든지 가질 수 있으며, 값들을 보여줍니다. make_song 함수가 display_song을 호출할 때 newSong이 만들어지는 것에 유념하십시오.&lt;br /&gt;&lt;br /&gt;저는 &lt;span style="font-style: italic; font-weight: bold;"&gt;song.c 안에 include song.h&lt;/span&gt; 헤더를 넣어야만 했드데 이는, 함수가 Song 타입을 이용하기 때문입니다. 여러분들도 어떤 파일이던지 Song을 이용하려면 song.h 헤더를 포함시켜야 합니다.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(204, 204, 204); padding: 10px; background-color: rgb(255, 255, 255);"&gt;&lt;h3 style="color: rgb(0, 122, 153);"&gt;Structs in Use&lt;/h3&gt;				&lt;div class="cl"&gt;이제 우리는 &lt;span style="font-weight: bold; font-style: italic;"&gt;song.h&lt;/span&gt;와 &lt;span style="font-style: italic; font-weight: bold;"&gt;song.c&lt;/span&gt; 파일을 이용한 프로그램이 필요합니다. &lt;span style="font-style: italic; font-weight: bold;"&gt;test4.c&lt;/span&gt; 파일에 아래의 코드를 붙여 넣으세요. &lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;!-- code --&gt;&lt;div class="codeheader"&gt;test4.c&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;!-- code --&gt;		&lt;div class="contentbody"&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;#include "&lt;em style="color: rgb(0, 122, 153);"&gt;song.h&lt;/em&gt;"&lt;br /&gt;&lt;br /&gt;main ()&lt;br /&gt;{&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="margin-left: 40px;"&gt;&lt;em style="color: rgb(0, 122, 153);"&gt;Song&lt;/em&gt; firstSong  = make_song (210, 2004);&lt;br /&gt;&lt;em style="color: rgb(0, 122, 153);"&gt;Song&lt;/em&gt; secondSong = make_song (256, 1992);&lt;br /&gt;&lt;em&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 122, 153);"&gt;Song&lt;/span&gt;&lt;/em&gt; thirdSong  = { 223, 1997 };&lt;br /&gt;display_song ( thirdSong );&lt;br /&gt;&lt;em&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 122, 153);"&gt;Song&lt;/span&gt;&lt;/em&gt; fourthSong = { 199, 2003 };&lt;br /&gt;&lt;/div&gt;}&lt;br /&gt;&lt;br /&gt;이 프로그램에서 저는 make_song 함수를 사용한 두개의 Songs를 만들었습니다. 세번째 노래를 위해서 make_song 을 사용하기 보다 중괄호 사이에 콤마로 구분된 값을 포함한 특수한 syntax를 사용 했습니다.&lt;br /&gt;&lt;br /&gt;노래를 만들기 위해서 제가 make_song을 호출하지 않은 라인을 유념하십시오. display_song 함수는 자동으로 호출되지 않습니다. 그래서 다음 줄에 수동으로 호출 했습니다. &lt;span style="font-style: italic; font-weight: bold;"&gt;네번째 노래&lt;/span&gt;는 같은 방법으로 만들었지만, 이를 위해 display_song을 호출하지 않았는데, &lt;span style="font-style: italic; font-weight: bold;"&gt;이로인해 터미널에서 출력되지 않을 것입니다.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;				&lt;br /&gt;새로운 구조체를 만들기 위해 함수를 사용하는 편이 프로세스를 보다 정확하게 컨트롤하기 좋습니다. 이 경우, 그렇게 만들어진 각각의 노래에 대한 정보를 자동으로 보여줄 수 있었습니다.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;!-- #### section #### --&gt;	&lt;div class="contentsection codesection" style="padding-bottom: 0px;"&gt;&lt;div style="border: 1px solid rgb(204, 204, 204); padding: 10px; background-color: rgb(255, 255, 255);"&gt;&lt;h3 style="color: rgb(0, 122, 153);"&gt;Compile the Example&lt;br /&gt;&lt;/h3&gt;		&lt;div class="contentbody"&gt;이제 여러분들은 &lt;span style="font-style: italic; font-weight: bold;"&gt;song.h, song.c&lt;/span&gt; 그리고 &lt;span style="font-style: italic; font-weight: bold;"&gt;test4.c&lt;/span&gt;를 가지게 되었고, 그것들은 컴파일 한 후 결과를 볼수있을 것입니다.&lt;br /&gt;&lt;br /&gt;터미널로 변경해서 세개의 파일을 포함하고 있는 디렉토리로 변경하고, "&lt;span style="font-style: italic; font-weight: bold;"&gt;gcc test4.c song.c -o test4&lt;/span&gt;" 명령을 내려봅시다.&lt;br /&gt;&lt;/div&gt;		&lt;div style="clear: both;"&gt;&lt;br /&gt;프로그램을 실행하기 위해 "&lt;span style="font-style: italic; font-weight: bold;"&gt;./test4&lt;/span&gt;" 를 입력 해봅시다.&lt;br /&gt;&lt;br /&gt;-- 터미널 예시 -- &lt;br /&gt;&lt;/div&gt;&lt;div class="unixbox"&gt;host% gcc test4.c song.c -o test4&lt;br /&gt;host% ./test4&lt;br /&gt;the song is 210 seconds long and was made in 2004&lt;br /&gt;the song is 256 seconds long and was made in 1992&lt;br /&gt;the song is 223 seconds long and was made in 1997&lt;br /&gt;host%&lt;/div&gt;		&lt;/div&gt;&lt;br /&gt;	&lt;/div&gt;&lt;!-- #### section #### --&gt;	&lt;div class="contentsection" style="padding-bottom: 0px;"&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(204, 204, 204); padding: 10px; background-color: rgb(255, 255, 255);"&gt;&lt;h3&gt;&lt;span style="color: rgb(0, 122, 153);"&gt;Constants&lt;/span&gt;&lt;br /&gt;&lt;/h3&gt;		&lt;div class="contentbody"&gt;변수의 값은 프로그램 실행을 바꿀 수 있습니다. 이와 대조적으로 &lt;span style="font-style: italic; font-weight: bold;"&gt;상수는 선언 속에서 값을 한번만 할당&lt;/span&gt;하게 되고, 그 값은 프로그램이 재실행 될 때 까지 바뀌지 않습니다.&lt;br /&gt;		&lt;/div&gt;		&lt;div class="cl"&gt;&amp;nbsp;&lt;/div&gt;&lt;!-- code --&gt;					&lt;div class="contentbody"&gt;&lt;em&gt;const&lt;/em&gt; float goldenRatio = 1.618;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;em&gt;const&lt;/em&gt; int   daysInWeek  = 7;&lt;br /&gt;&lt;br /&gt;여러분들은 표준 C 변수타입이면 어떤 것이던지 상수의 타입으로 지정할 수 있습니다. 오직 하나뿐인 꼼수는 변수를 만들 때 값을 제공하는 것입니다.&lt;br /&gt;		&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;	&lt;/div&gt;&lt;!-- #### section #### --&gt;	&lt;div class="contentsection codesection" style="padding-bottom: 0px;"&gt;&lt;div style="border: 1px solid rgb(204, 204, 204); padding: 10px; background-color: rgb(255, 255, 255);"&gt;&lt;h3 style="color: rgb(0, 122, 153);"&gt;Enums&lt;/h3&gt;				&lt;div class="cl"&gt;		우리는 enums 에 대하여 많은 시간을 보낼 수 있지만, 코코아와의 관련성에 초점을 맞추었기 때문에 우리는 아주, 아주 간단하게만 만들어 보겠습니다.&lt;br /&gt;&lt;br /&gt;여기에 텍스트 검색 옵션을 정의한 Cocoa의 NSString 클래스에 기인한 enum이 있습니다:&lt;br /&gt; &lt;/div&gt;&lt;!-- code --&gt;					&lt;!-- code --&gt;		&lt;div class="contentbody"&gt;&lt;em style="color: rgb(5, 170, 211);"&gt;enum&lt;/em&gt; {&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;NSCaseInsensitiveSearch = 1,&lt;br /&gt;NSLiteralSearch = 2,&lt;br /&gt;NSBackwardsSearch = 4,&lt;br /&gt;NSAnchoredSearch = 8,&lt;br /&gt;NSNumericSearch = 64&lt;br /&gt;&lt;/div&gt;};&lt;br /&gt;&lt;br /&gt;애플의 코코아는 &lt;span style="font-style: italic; font-weight: bold;"&gt;연관된 상수의 일련된 그룹화&lt;/span&gt;를 위해 enums를 사용합니다. 이것은 종종 특정 함수의 "mode"를 설정하는 방식을 위해 사용됩니다. 상수의 값은 그저 이름이기 때문에 그렇게 중요하진 않습니다.&lt;br /&gt;&lt;/div&gt;		&lt;div class="cl"&gt;&lt;br /&gt;여기에 enum이 사용된 예가 있습니다. 열거하는 방법에 대해서 집중하시고, 이 코드가 무엇을 하는지 궂이 이해하려고 하려 애쓰지 않아도 됩니다:&lt;br /&gt; &lt;/div&gt;&lt;!-- code --&gt;					&lt;div class="codeblock"&gt;[string compare:anotherString options:&lt;em style="color: rgb(0, 122, 153);"&gt;NSCaseInsensitiveSearch&lt;/em&gt;];&lt;br /&gt;[string compare:anotherString options:&lt;em style="color: rgb(0, 122, 153);"&gt;NSLiteralSearch&lt;/em&gt;];&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;		&lt;!-- #### section #### --&gt;	&lt;div class="contentsection codesection" style="padding-bottom: 0px;"&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(204, 204, 204); padding: 10px; background-color: rgb(255, 255, 255);"&gt;&lt;h3 style="color: rgb(0, 122, 153);"&gt;Libraries&lt;/h3&gt;		&lt;div class="contentbody"&gt;				stdio.h 파일이 모든 예제에 포함된어 있는건 표준 C 라이브러리의 일부 헤더파일이기 때문입니다. 라이브러리는 &lt;span style="font-style: italic; font-weight: bold;"&gt;재사용 코드의 모음&lt;/span&gt; 입니다. 이것은 함수, 구조체, 상수 그리고 enums와 같이 정의 할 수 있습니다.&lt;br /&gt;&lt;br /&gt;수천개에 달하는 사용 가능한 타사의 C 라이브러리들이 있습니다. 몇몇은 .c 소스 파일과 함께 무료입니다. 돈을 지불해야 하는 다른 것들은 소스 코드를 제외한 헤더파일들과 문서만 제공합니다.&lt;br /&gt;&lt;br /&gt;		&lt;img src="http://cocoadevcentral.com/images/articles/000081-libraries.png" style="border: 1px solid rgb(188, 188, 188); margin-bottom: 21px;" alt="Library Diagram"&gt;&lt;br /&gt;타사의 라이브러리를 이용하려면 "link"와 컴파일을 해야합니다. 예를들면, 만일 제가 MySQL 데이터 베이스와 소통이 가능한C 프로그램을 작성을 원한다면, libmysql을 링크하고 이것들의 헤더들을 나의 프로그램에 포함(include)시킬 것입니다.&lt;br /&gt;&lt;br /&gt;다른사람에 의해 만들어진 코드를 사용하고자 할 때 그것들의 사용조건을 알아두는 것이 중요합니다. 예를 들자면, 몇몇의 라이센스들은 여러분의 어플리케이션에 소스 코드를 모두 공유하기를 요구할 수 있습니다.&lt;br /&gt;&lt;/div&gt;				&lt;br /&gt;만약 여러분들의 모험심을 느껴보고 싶으시다면, 기본적으로 C 헤더 파일들이 위치한 &lt;span style="font-style: italic; font-weight: bold;"&gt;/usr/include&lt;/span&gt; 를 살펴보십시오.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;!-- code --&gt;	&lt;/div&gt;			&lt;!-- #### section #### --&gt;	&lt;div class="contentsection" style="padding-bottom: 0px;"&gt;&lt;div style="border: 1px solid rgb(204, 204, 204); padding: 10px; background-color: rgb(255, 255, 255);"&gt;&lt;h3 style="color: rgb(0, 122, 153);"&gt;Final Example&lt;/h3&gt;		&lt;div class="contentbody"&gt;		여기에 이 튜토리얼의 거의 모든 컨셉들이 사용된 마지막 프로그램이 있습니다. 프로그램을 따라오기전에 아래의 파일들이 필요합니다.&lt;br /&gt;&lt;br /&gt;		&lt;em&gt;math_functions.h&lt;/em&gt; - math function declaration&lt;br /&gt;		&lt;em&gt;math_functions.c&lt;/em&gt; - math function implementations&lt;br /&gt;		&lt;em&gt;song.h&lt;/em&gt; - Song struct and related function declarations&lt;br /&gt;		&lt;em&gt;song.c&lt;/em&gt; - implementation of the Song functions				&lt;br /&gt;&lt;br /&gt;				&lt;/div&gt;		&lt;div class="cl"&gt;final.c 파일에 아래의 내용을 붙여 넣어 봅시다.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;!-- code --&gt;&lt;div class="codeheader"&gt;final.c&lt;/div&gt;&lt;div class="codeblock"&gt;&lt;br /&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;#include "&lt;em&gt;math_functions.h&lt;/em&gt;"&lt;br /&gt;#include "&lt;em&gt;song.h&lt;/em&gt;"&lt;br /&gt;&lt;br /&gt;main ()&lt;br /&gt;{&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;&lt;em style="color: rgb(5, 170, 211);"&gt;const&lt;/em&gt; int numberOfSongs = 3;&lt;br /&gt;printf ("total number of songs will be: &lt;em&gt;%i&lt;/em&gt;\n", numberOfSongs);&lt;br /&gt;&lt;br /&gt;int i;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-left: 40px;"&gt;for (i = 0; i &amp;lt; numberOfSongs; i++){&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;printf ("loop trip %i ", i);&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="margin-left: 40px;"&gt;}&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;printf ("\n");&lt;br /&gt;&lt;br style="color: rgb(5, 170, 211);"&gt;&lt;em style="color: rgb(5, 170, 211);"&gt;Song&lt;/em&gt; song1  = &lt;em style="color: rgb(5, 170, 211);"&gt;make_song&lt;/em&gt; (223, 1998);&lt;br /&gt;&lt;em style="color: rgb(5, 170, 211);"&gt;Song&lt;/em&gt; song2  = &lt;em style="color: rgb(5, 170, 211);"&gt;make_song&lt;/em&gt; (303, 2004);&lt;br /&gt;&lt;em style="color: rgb(5, 170, 211);"&gt;Song&lt;/em&gt; song3  = { 315, 1992 };&lt;br /&gt;&lt;br /&gt;&lt;em style="color: rgb(5, 170, 211);"&gt;display_song&lt;/em&gt; (song3);&lt;br /&gt;&lt;br /&gt;int combinedLength = &lt;em style="color: rgb(5, 170, 211);"&gt;sum&lt;/em&gt; (song1.lengthInSeconds, song2.lengthInSeconds);&lt;br /&gt;printf ("combined length of song1 and song2 is %i\n", combinedLength);&lt;br /&gt;&lt;br /&gt;float x = (float) song1.lengthInSeconds;&lt;br /&gt;float y = (float) song2.lengthInSeconds;&lt;br /&gt;float z = (float) song3.lengthInSeconds;&lt;br /&gt;&lt;br /&gt;float averageLength;&lt;br /&gt;averageLength = &lt;em style="color: rgb(5, 170, 211);"&gt;average&lt;/em&gt; (x, y, z);&lt;br /&gt;&lt;br /&gt;printf ("average length is: %f as a float ", averageLength);&lt;br /&gt;printf ("and %i as an int\n", (int) averageLength);&lt;br /&gt;&lt;/div&gt;}&lt;/div&gt;&lt;!-- code --&gt;&lt;br /&gt;이 예는 복잡해 보일 수 있지만, 같은 컨셉들의 반복일 뿐입니다. 만약 내용중에 모르는 부분이 있다면, 앞쪽의 섹션으로 돌아가 다시한번 읽어보세요.&lt;/div&gt;&lt;br /&gt;		&lt;/div&gt;&lt;!-- #### section #### --&gt;	&lt;div class="contentsection codesection" style="padding-bottom: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;		&lt;!-- #### section #### --&gt;	&lt;div class="contentsection" style="padding-bottom: 0px;"&gt;&lt;div style="border: 1px solid rgb(204, 204, 204); padding: 10px; background-color: rgb(255, 255, 255);"&gt;&lt;h3 style="color: rgb(0, 122, 153);"&gt;Compile the Example&lt;/h3&gt;		&lt;div class="contentbody"&gt;내게의 파일을 가지고 있는 것이 호가실하다면 마지막에 작성한 &lt;span style="font-style: italic; font-weight: bold;"&gt;final.c&lt;/span&gt; 를 더해서 같은 파일에 위치 시켜봅시다. 터미널로 돌아가서 파일들을 포함하는 디렉토리를 변경해줍니다. "&lt;span style="font-style: italic; font-weight: bold;"&gt;gcc final.c song.c math_function.c -o final&lt;/span&gt;" 명령어를 입력 합니다.&lt;br /&gt;&lt;/div&gt;		&lt;div style="clear: both;"&gt;&lt;br /&gt;프로그램을 실행시키기 위해서 "&lt;span style="font-style: italic; font-weight: bold;"&gt;./final&lt;/span&gt;" 을 입력합니다.&lt;br /&gt;&lt;br /&gt;-- 터미널 예시 -- &lt;br /&gt;&lt;/div&gt;&lt;div class="unixbox"&gt;host% gcc final.c song.c math_functions.c -o final&lt;br /&gt;host% ./final&lt;br /&gt;total number of songs will be: 3&lt;br /&gt;loop trip 0 loop trip 1 loop trip 2&lt;br /&gt;the song is 223 seconds long and was made in 1998&lt;br /&gt;the song is 303 seconds long and was made in 2004&lt;br /&gt;the song is 315 seconds long and was made in 1992&lt;br /&gt;combined length of song1 and song2 is 526&lt;br /&gt;average length is: 280.333344 as a float and 280 as an int&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="border: 1px solid rgb(204, 204, 204); padding: 10px; background-color: rgb(255, 255, 255);"&gt;&lt;div class="contentsection" style="padding-bottom: 0px;"&gt;		&lt;h3 style="color: rgb(0, 122, 153);"&gt;Wrap Up&lt;/h3&gt;												&lt;div class="cl"&gt;					우리는 아주 큰 땅에 비교적 작은 부분만을 딪게 되었습니다. 여러분들이 마지막 예제의 코드를 이해할 수 있다면, 기본적인 Objective-C 와 Cocoa를 배울 수 있는 준비가 된 것입니다.&lt;br /&gt;&lt;br /&gt;더 많은 프로그래밍을 공부를 원한다면 포인터와 메모리 관리와 같은 보다 심오한 토픽들이 필요할 것입니다. 아래 목록이 몇몇의 시작 지점이 되어줄 것입니다.&lt;br /&gt;&lt;br /&gt;		Theocacao: &lt;a href="http://theocacao.com/document.page/231"&gt;C Memory and Arrays&lt;/a&gt;&lt;br /&gt;		Theocacao: &lt;a href="http://theocacao.com/document.page/234"&gt;C Pointers and Dynamic Memory&lt;/a&gt;		&lt;br /&gt;&lt;br /&gt;마음에 드셨나요? 의견이 있으신가요? 이 튜토리얼에 대한 &lt;a href="http://cocoadevcentral.com/message.page"&gt;의견을 보내주세요.&lt;/a&gt;&lt;br /&gt; &lt;/div&gt;&lt;div class="credits"&gt;		튜토리얼은 많은 노력과 시간이 들여서 작성 했습니다. 당신이 찾인 이 튜토리얼이 유용헸다면, 우리가 알 수 있도록 기부를 부탁드립니다. 우리가 더 많은 기부를 받는다면, 글쓰기에 보다 많은 노력을 기울일 수 있답니다.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;		&lt;span style="padding: 4px; background-color: rgb(235, 235, 235);"&gt;Suggested amounts: &lt;cite&gt;Useful&lt;/cite&gt;: $5 | &lt;cite&gt;Very Useful&lt;/cite&gt;: $12 | &lt;cite&gt;Priceless&lt;/cite&gt;: $21&lt;br /&gt;&lt;/span&gt;		&lt;br /&gt;		&lt;form action="https://www.paypal.com/cgi-bin/webscr" method="post"&gt;		&lt;input name="cmd" value="_s-xclick" type="hidden"&gt;		&lt;input src="https://www.paypal.com/en_US/i/btn/x-click-but04.gif" name="submit" alt="Make payments with PayPal - it's fast, free and secure!" border="0" type="image"&gt;		&lt;img alt="" src="https://www.paypal.com/en_US/i/scr/pixel.gif" border="0" height="1" width="1"&gt;		&lt;input name="encrypted" value="-----BEGIN PKCS7-----MIIHXwYJKoZIhvcNAQcEoIIHUDCCB0wCAQExggEwMIIBLAIBADCBlDCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb20CAQAwDQYJKoZIhvcNAQEBBQAEgYBSSHHSNWYqWqKtQaw6APbksBifDgkVfmhgKHAddvv4DlV02qXnHGiXBRaCKntiAt3SaX4HnN3U+J9e+vXLbIqIKoaZiGzrTz2XOKzKqjiE4gyl9v523TCB9u2NgLZgGzq8LT6E2C8ZvdgaHduLvmHHLTHnEc0QMC5iSLCyHzNRcjELMAkGBSsOAwIaBQAwgdwGCSqGSIb3DQEHATAUBggqhkiG9w0DBwQIITNvUQrCB7uAgbi2iiaNsnIplXdVeqtmOaTTcdlIqi2mgoincUBWbHNSiucr+Rl9Ah2jW1dY37x6Ej30MtBWP2D4u1d6gqs/b57kmtZO6mDjJOCHgc2deevl334yFZaGulPFQXc+QJKNhvgT5yrq1DiyeWT79aBXDIIWukKowxQA/GXrLvOKWENzbMLRRSQi8l+3rMMcgRf5LTchxkST3tIxlO5g6K69YihuU2mcr3rPj1Fv/Voh2Af16InscAfsP3P+oIIDhzCCA4MwggLsoAMCAQICAQAwDQYJKoZIhvcNAQEFBQAwgY4xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLUGF5UGFsIEluYy4xEzARBgNVBAsUCmxpdmVfY2VydHMxETAPBgNVBAMUCGxpdmVfYXBpMRwwGgYJKoZIhvcNAQkBFg1yZUBwYXlwYWwuY29tMB4XDTA0MDIxMzEwMTMxNVoXDTM1MDIxMzEwMTMxNVowgY4xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLUGF5UGFsIEluYy4xEzARBgNVBAsUCmxpdmVfY2VydHMxETAPBgNVBAMUCGxpdmVfYXBpMRwwGgYJKoZIhvcNAQkBFg1yZUBwYXlwYWwuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDBR07d/ETMS1ycjtkpkvjXZe9k+6CieLuLsPumsJ7QC1odNz3sJiCbs2wC0nLE0uLGaEtXynIgRqIddYCHx88pb5HTXv4SZeuv0Rqq4+axW9PLAAATU8w04qqjaSXgbGLP3NmohqM6bV9kZZwZLR/klDaQGo1u9uDb9lr4Yn+rBQIDAQABo4HuMIHrMB0GA1UdDgQWBBSWn3y7xm8XvVk/UtcKG+wQ1mSUazCBuwYDVR0jBIGzMIGwgBSWn3y7xm8XvVk/UtcKG+wQ1mSUa6GBlKSBkTCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb22CAQAwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQCBXzpWmoBa5e9fo6ujionW1hUhPkOBakTr3YCDjbYfvJEiv/2P+IobhOGJr85+XHhN0v4gUkEDI8r2/rNk1m0GA8HKddvTjyGw/XqXa+LSTlDYkqI8OwR8GEYj4efEtcRpRYBxV8KxAW93YDWzFGvruKnnLbDAF6VR5w/cCMn5hzGCAZowggGWAgEBMIGUMIGOMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExFjAUBgNVBAcTDU1vdW50YWluIFZpZXcxFDASBgNVBAoTC1BheVBhbCBJbmMuMRMwEQYDVQQLFApsaXZlX2NlcnRzMREwDwYDVQQDFAhsaXZlX2FwaTEcMBoGCSqGSIb3DQEJARYNcmVAcGF5cGFsLmNvbQIBADAJBgUrDgMCGgUAoF0wGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMDYxMDE3MDM0MTE2WjAjBgkqhkiG9w0BCQQxFgQUxfBlMgCbjkSCybtXpRxQfvlP04cwDQYJKoZIhvcNAQEBBQAEgYCkIBkjh2AkLGTXW8GBvmaBEnuITVh2FBytXG0ob7ceJEfwHHIUkG72iuEYVfbzvW4DpkbK2l6JWF6iOgx3QpGWqaKg/nx0s7eIDvkeJgKd4s84oCiyZpIxfhcxF8QAoRTRicgHmXKI0q6RjY/Q/ogIqjpJKNMHsuVOklRC8hJo1A==-----END PKCS7-----" type="hidden"&gt;		&lt;/form&gt;		&lt;/div&gt;						&lt;div class="credits"&gt;		Copyright © 2004-2006 Scott Stevenson&lt;br /&gt;		Made with &lt;a href="http://macromates.com/"&gt;TextMate&lt;/a&gt;		&lt;/div&gt;			&lt;/div&gt;&lt;!-- end of contentcontainer --&gt;&lt;div class="feedback"&gt;	&lt;a href="http://cocoadevcentral.com/message.page"&gt;Feedback Form&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;			Cocoa Dev Central is a servicemark of &lt;a href="http://treehouseideas.com/"&gt;Tree House Ideas&lt;/a&gt;&lt;br /&gt;	Site design © 2004-2006 Scott Stevenson&lt;/div&gt;&lt;br /&gt;&lt;div style="border: 1px dashed rgb(183, 224, 169); padding: 10px; background-color: rgb(211, 238, 202);"&gt;회사를 잠시 쉬는 동안 쉬엄쉬엄 번역을 시작했는데, 내용이 너무 간결하고 재미있어서 너무 빨리 번역이 끝나버렸네요. 번역에 대한 부족한 부분이나 의심쩍은 부분은 가차없이 의견 보내주세요. Gmail : snowrimp 입니다. : ) &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;	&lt;/div&gt;&lt;!-- #### section #### --&gt;&lt;/div&gt;&lt;script type="text/javascript"&gt;_uacct = "UA-644581-2";urchinTracker();&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8479945912659192531-6505432101157501813?l=snowhouse-textcube.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snowhouse-textcube.blogspot.com/feeds/6505432101157501813/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://snowhouse-textcube.blogspot.com/2009/12/%EC%95%84%EC%9D%B4%ED%8F%B0-%EA%B0%9C%EB%B0%9C-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EC%B4%88%EB%B3%B4%EA%B0%80-%EB%B3%B4%EB%8A%94-c%EC%96%B8%EC%96%B4-%EC%B4%88%EC%84%9D-%EB%8B%A4%EC%A7%80%EA%B8%B0.html#comment-form' title='1개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8479945912659192531/posts/default/6505432101157501813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8479945912659192531/posts/default/6505432101157501813'/><link rel='alternate' type='text/html' href='http://snowhouse-textcube.blogspot.com/2009/12/%EC%95%84%EC%9D%B4%ED%8F%B0-%EA%B0%9C%EB%B0%9C-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EC%B4%88%EB%B3%B4%EA%B0%80-%EB%B3%B4%EB%8A%94-c%EC%96%B8%EC%96%B4-%EC%B4%88%EC%84%9D-%EB%8B%A4%EC%A7%80%EA%B8%B0.html' title='아이폰 개발 : 프로그래밍 초보가 보는 C언어 초석 다지기'/><author><name>bloodforest</name><uri>http://www.blogger.com/profile/13414456106205156837</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8479945912659192531.post-2841158377568593203</id><published>2009-12-22T14:12:00.000+09:00</published><updated>2011-01-29T22:33:56.911+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='크리스마스'/><category scheme='http://www.blogger.com/atom/ns#' term='카드'/><category scheme='http://www.blogger.com/atom/ns#' term='any Others'/><title type='text'>아날로그 크리스마스</title><content type='html'>&lt;script src='http://ss.textcube.com/service/blog/script/blogger.js' type='text/javascript'&gt;&lt;/script&gt;디지털 세상에 살고 있지만, 아날로그가 필요한 때가 있다고 생각합니다.&lt;br /&gt;주변사람들에게 평소에 따듯한 이야기를 해줄 수 있는 성격도 아니고, 되려 딱딱하고 차갑게 대하게 될 경우가 많은 편이죠. -ㅅ-;&lt;br /&gt;&lt;br /&gt;그래도 친분있는 사람의 생일이라던가, 안부를 빌어줄 특정한 날은 여건이 가능하다면 정을 전하고 싶어집니다. 바로 이때가 아날로그적 정이 필요한 때가 아닌가 싶습니다. : )&lt;br /&gt;&lt;br /&gt;어김없이 올해도 실천해 볼까 합니다.&lt;br /&gt;....요즘 카드 값 많이 비싸더군요..ㅠ_);&lt;br /&gt;&lt;br /&gt;&lt;div class="imageblock center" style="text-align: center; clear: both;"&gt;&lt;img src="http://ss.textcube.com/blog/3/33793/attach/XCTbSFB41R.jpg" style="width:520px;height:610px;" alt="" onclick="TC$PRIV_open_img('http://ss.textcube.com/blog/3/33793/attach/XCTbSFB41R.jpg')" /&gt;&lt;/div&gt;&lt;br /&gt;지극히 개인적인 취향이지만..노골적으로 크리스마스를 티내는 디자인은 손이 가질 않더군요.&lt;br /&gt;&lt;br /&gt;크리스마스의 사전적 의미같은것 보다 크리스마스로 나타나는 감정에 충실한다면 신나는 크리스 마스를 즐길 수 있을것 같습니다.&lt;br /&gt;&lt;br /&gt;Merry Christmas.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8479945912659192531-2841158377568593203?l=snowhouse-textcube.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snowhouse-textcube.blogspot.com/feeds/2841158377568593203/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://snowhouse-textcube.blogspot.com/2009/12/%EC%95%84%EB%82%A0%EB%A1%9C%EA%B7%B8-%ED%81%AC%EB%A6%AC%EC%8A%A4%EB%A7%88%EC%8A%A4.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8479945912659192531/posts/default/2841158377568593203'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8479945912659192531/posts/default/2841158377568593203'/><link rel='alternate' type='text/html' href='http://snowhouse-textcube.blogspot.com/2009/12/%EC%95%84%EB%82%A0%EB%A1%9C%EA%B7%B8-%ED%81%AC%EB%A6%AC%EC%8A%A4%EB%A7%88%EC%8A%A4.html' title='아날로그 크리스마스'/><author><name>bloodforest</name><uri>http://www.blogger.com/profile/13414456106205156837</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8479945912659192531.post-4070950278788613123</id><published>2009-11-22T14:59:00.000+09:00</published><updated>2011-01-29T22:33:56.273+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='영화감상'/><category scheme='http://www.blogger.com/atom/ns#' term='달'/><category scheme='http://www.blogger.com/atom/ns#' term='any Others'/><category scheme='http://www.blogger.com/atom/ns#' term='더 문'/><category scheme='http://www.blogger.com/atom/ns#' term='SF'/><category scheme='http://www.blogger.com/atom/ns#' term='moon'/><title type='text'>더 문 (원제:Moon) - 나와 마주서다</title><content type='html'>&lt;script src='http://ss.textcube.com/service/blog/script/blogger.js' type='text/javascript'&gt;&lt;/script&gt;모처럼 여유시간을 갖게된 일요일 'Moon' 을 보게되었습니다. 한국제목은 '더 문'이군요&lt;br /&gt;달의 에너지 채취 기지에서 생활하는 한 남자의 이야기인데, 독특한 소재 때문에 보기를 벼르고 있던 터였습니다.&lt;br /&gt;그러고 보니 영화 내내 한명의 주인공밖에 등장하지 않는군요. 아래 내용부터는 스포일러가 될 수 있으니 주의하세요 : )&lt;br /&gt;&lt;br /&gt;&lt;div class="imageblock center" style="text-align: center; clear: both;"&gt;&lt;img src="http://ss.textcube.com/blog/3/33793/attach/XOMC1Gzbes.jpg" style="width:520px;height:741px;" alt="" onclick="TC$PRIV_open_img('http://ss.textcube.com/blog/3/33793/attach/XOMC1Gzbes.jpg')" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;간략한 내용은 이렇습니다.&lt;br /&gt;달의 광석을 채취하여 에너지화 할 수 있는 기술을 개발한 한 에너지 회사가 달에 광석 채취 기지를 건설해 두고, 1명의 인부를 고용하여 에너지 채취의 관리를 맡기게 됩니다.&lt;br /&gt;관리를 맡게된 1명의 인부가 수명이 짧은 결함을 지니고 있는 미완성 복제인간이라는 설정과, 이로인해 3년을 주기로 복제인간이 교체된다라는 설정을 이용하여 주인공 배우 한명으로 이야기를 전개하게 됩니다.&lt;br /&gt;그러던 중 3년을 다 채워가던 복제인간이 예상치 못한 사고를 당하게 되었는데 이 때문에 새로운 복제인간을 깨우게 되었고 새롭게 꺠어난 복제인간이 밖으로 나가지 말라는 경고를 무시하고, 사고의 현장에서 자신보다 이전의 복제인간을 발견하게 됩니다.&lt;br /&gt;당연히 둘은 서로의 정체성에 의심을 갖게 되면서 이야기가 큰 흡입력을 갖게 됩니다.&lt;br /&gt;&lt;br /&gt;흥미로운점은 완전히 동일한 과거의 기억이 입력된 복제(같은)인간인데 주어진 상황에 따라서 판이하게 다른 사고를 하게되고, 행동도 다르게 묘사를 하고 있습니다.&lt;br /&gt;&lt;br /&gt;혹시 한번쯤 과거의 나와 혹은 또다른 나와 마주하고 싶다고 생각한적이 있다면, 'Moon'이 그 호기심을 채워줄 수 있을것 같습니다.&lt;br /&gt;&lt;br /&gt;신선한 복제인간물(?)을 보고 싶으시다면 강추입니다. : )&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8479945912659192531-4070950278788613123?l=snowhouse-textcube.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snowhouse-textcube.blogspot.com/feeds/4070950278788613123/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://snowhouse-textcube.blogspot.com/2009/11/%EB%8D%94-%EB%AC%B8-%EC%9B%90%EC%A0%9Cmoon-%EB%82%98%EC%99%80-%EB%A7%88%EC%A3%BC%EC%84%9C%EB%8B%A4.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8479945912659192531/posts/default/4070950278788613123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8479945912659192531/posts/default/4070950278788613123'/><link rel='alternate' type='text/html' href='http://snowhouse-textcube.blogspot.com/2009/11/%EB%8D%94-%EB%AC%B8-%EC%9B%90%EC%A0%9Cmoon-%EB%82%98%EC%99%80-%EB%A7%88%EC%A3%BC%EC%84%9C%EB%8B%A4.html' title='더 문 (원제:Moon) - 나와 마주서다'/><author><name>bloodforest</name><uri>http://www.blogger.com/profile/13414456106205156837</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8479945912659192531.post-2851601685433505132</id><published>2009-09-27T20:29:00.000+09:00</published><updated>2011-01-29T22:33:55.600+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UV'/><category scheme='http://www.blogger.com/atom/ns#' term='Thinking Games'/><category scheme='http://www.blogger.com/atom/ns#' term='업데이트'/><category scheme='http://www.blogger.com/atom/ns#' term='NRU'/><category scheme='http://www.blogger.com/atom/ns#' term='MTS'/><category scheme='http://www.blogger.com/atom/ns#' term='mcu'/><title type='text'>온라인게임 지표에 대한 이야기 (3)</title><content type='html'>&lt;font style="font-weight: bold;" size="3"&gt;MCU의 재분석&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="imageblock center" style="text-align: center; clear: both;"&gt;&lt;a href="http://www.flickr.com/photos/31796655@N07/2974942783" target="_blank"&gt;&lt;img src="http://farm4.static.flickr.com/3199/2974942783_ecc8a050b7.jpg" style="width:347px;height:346px;" alt="" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;앞서 두번째 이야기에서 MCU라는 지표는 재분석이 필요한 지표라고 했었습니다. 이번 포스팅에선 MCU를 재분석 해야 하는 이유에 대해서 조금더 자세히 알아보겠습니다.&lt;br /&gt;&lt;br /&gt;MCU는 지표의 특성상 다양한 상황적 조건에 영향을 받게 되는데, 앞서 설명한 지표 중 MCU에 직접적으로 영향을 주는 지표가 두 가지가 있습니다.&lt;br /&gt;&lt;br /&gt;A. MTS -- Mutiplay Time Spent -- 게임 참여 시간&lt;br /&gt;B. UV -- Unique Visitor -- 방문한 유저 (중복 없음)&lt;br /&gt;&lt;br /&gt;A와 B 모두 그 값이 증가하게 되면, 동시간대에 활동하는 유저의 수를 느릴 수 있기 때문에 MCU에 영향을 주며, 두 값 모두 증가하게 되면 보다 큰 MCU 수치의 상승을 불러 오게 됩니다.&lt;br /&gt;&lt;br /&gt;만일 유저수를 높이는 것이 서비스의 효율을 높이는 유일한 방법이라는 인식이 있을 때 MCU로 그것을 판단하기 쉬운데 MCU의 재분석을 놓치게 된다면 함정에 빠질 수 있습니다.&lt;br /&gt;&lt;br /&gt;필자가 서비스 중인 게임에서 실제로 일어났던 일을 바탕으로 설명을 드리자면, 서비스 중인 게임에 유저가 늘어날 것으로 기대하는 업데이트를 진행 했습니다.&lt;br /&gt;결과는 MCU의 증가로 이어졌고 증가 추세는 예견 했었던 수치이기에 팀 관계자 모두에게 만족할 만한 결과로 판단 되었습니다.&lt;br /&gt;&lt;br /&gt;하지만, 곧 MCU의 추세가 생각보다 이르게 꺽기는 과정을 분석중에 높은 MCU를 기록했던 날짜에는 MTS가 기존보다 두배 이상으로 증가 했던것을 발견 했습니다.&lt;br /&gt;&lt;br /&gt;결국 MCU의 상승은 UV의 증가가 아닌, MTS의 증가였기에 유저가 업데이트에 익숙해 짐에 따라서 이상하게 상승한 MTS가 정상수치로 회복하는 추세였으며 다른 수치는 변화가 없었기 때문에 MCU는 결국 기존의 수치로 돌아갈 것으로 예상할 수 있었고, 결국 길지 않은 시간 내에 예상대로 기존의 수치와 다르지 않게 되었습니다&lt;br /&gt;&lt;br /&gt;물론, 업데이트가 나쁜 결과를 가지고 오진 않은 덕에 서비스에는 피해가 없었으나, MCU 의 증가만으로 섣부른 다른 판단을 했었더라면, 피해를 가져올 수 있었을지도 모르겠습니다.&lt;br /&gt;&lt;br /&gt;요약하자면 MCU의 변화가 있을 경우 변화에 대한 올바른 진단을 할 수 있어야 한다는 것입니다.&lt;br /&gt;&lt;br /&gt;여담이지만, 실은 NRU의 증가에 이어진 UV증가를 기대했었는데 말이죠.&lt;br /&gt;NRU에 대해서는 생각나는 이슈가 있을 때 포스팅 하기로 하겠습니다. : )&lt;br /&gt;&lt;br /&gt;내일부터는 한주가 다시 시작되는 군요.&lt;br /&gt;즐거운 한주 되세요!&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8479945912659192531-2851601685433505132?l=snowhouse-textcube.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snowhouse-textcube.blogspot.com/feeds/2851601685433505132/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://snowhouse-textcube.blogspot.com/2009/09/%EC%98%A8%EB%9D%BC%EC%9D%B8%EA%B2%8C%EC%9E%84-%EC%A7%80%ED%91%9C%EC%97%90-%EB%8C%80%ED%95%9C-%EC%9D%B4%EC%95%BC%EA%B8%B0-3.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8479945912659192531/posts/default/2851601685433505132'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8479945912659192531/posts/default/2851601685433505132'/><link rel='alternate' type='text/html' href='http://snowhouse-textcube.blogspot.com/2009/09/%EC%98%A8%EB%9D%BC%EC%9D%B8%EA%B2%8C%EC%9E%84-%EC%A7%80%ED%91%9C%EC%97%90-%EB%8C%80%ED%95%9C-%EC%9D%B4%EC%95%BC%EA%B8%B0-3.html' title='온라인게임 지표에 대한 이야기 (3)'/><author><name>bloodforest</name><uri>http://www.blogger.com/profile/13414456106205156837</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm4.static.flickr.com/3199/2974942783_ecc8a050b7_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8479945912659192531.post-6964465992022552586</id><published>2009-09-25T18:19:00.000+09:00</published><updated>2011-01-29T22:33:54.754+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='가차아이템'/><category scheme='http://www.blogger.com/atom/ns#' term='Thinking Games'/><category scheme='http://www.blogger.com/atom/ns#' term='부분유료화'/><category scheme='http://www.blogger.com/atom/ns#' term='유료아이템'/><title type='text'>개발자가 보는 온라인 게임 이야기 (1)</title><content type='html'>&lt;script src='http://ss.textcube.com/service/blog/script/blogger.js' type='text/javascript'&gt;&lt;/script&gt;&lt;div&gt;&lt;div class="imageblock center" style="text-align: center; clear: both;"&gt;&lt;img src="http://ss.textcube.com/blog/3/33793/attach/Xbv1TE3r2J.jpg" style="width:500px;height:375px;" alt=""  /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;현재 서비스 중인 게임에 업계에서 통용되는 일명 가차폰 아이템을 아래와 같은 스팩으로 출시했습니다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;- 종전과 판이하게 다른 외형 (덧. 서비스 중인 게임을 플레이하는 유저라면 모두 눈독들일)&lt;/div&gt;&lt;div&gt;- 다른 종류의 아이템 보다 좋은 능력치&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;소액권 현금으로 바로 아이템을 구매하면, 약 1%의 확률로 해당 아이템이 당첨되도록 설정 되었는데, 이는 현금을 바로사용하는 만큼 기대값에 대응하기 위해 설정된 값입니다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;기존에 비슷한 형태로 판매되던 아이템이 1%보다 낮은 확률로 설정되어 있었던 것에 비교하면 유저는 비교적 적은 돈(노력)을 투자하면 원하는 아이템을 얻을 수 있게 설정 했습니다.&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;/div&gt;&lt;div&gt;결국 캐시로 판매되는 특별한 아이템을 합리적인 돈(노력)을 투자하여 획득할 수 있도록 되었는데, 막상 시판하고 보니 유저들의 요청이 이렇더군요.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;&lt;font size="3"&gt;'좀더 낮은 확률로 나왔으면 좋겠다!!!'&lt;/font&gt;&lt;/strong&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;br /&gt;&lt;/div&gt;&lt;div&gt;'이런 아이템을 판매하는 것은 마땅하다, 하지만 능력치 차이가 존재하기 때문에 이런 아이템을 가진 사람(BU)이 많아 질수록 해당 아이템을 원하지 않는 유저 그룹과의 밸런스 붕괴가 진행될 것 걱정된다. 그렇기 때문에 아주 소수만 가질 수 있도록 확률을 낮춰달라.'&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;이런 유저 반응에 놀란 이유는 유저들이 생각보다 유료화 정책에 대해 관대해 졌으며, 한발 더 나아가 극 소수의 유저들은 (지나치지만 않으면)오버밸런스 무기를 이용해도 큰 영향을 주지 못할 것 역시 꿰뚫어 보고 있기 때문입니다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;위에서 일부러 언급하지 않은 부분이, 오버밸런스의 소지가 있는 가차형 아이템을 출시할 때 확률을 줄여야 하는 이유가 있는데, 이는 수익을 늘리기 위함보다 부분유료화 컨텐츠를 즐기지 유저그룹(BU)과 그렇지 않은 그룹(NBU)의 괴리감을 줄이기 위함입니다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;그럼에도 불구하고 기존과 비슷한 형태의 아이템보다 확률을 높인 이유는 '캐시를 직접 사용하는 것인 만큼 유저의 기대에 부흥시켜야 하지 않는가' 에 대한 고민 때문이었습니다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;하지만 이 일을 계기로 그런 고민은 날아가 버렸군요.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div class="imageblock center" style="text-align: center; clear: both;"&gt;&lt;a href="http://www.flickr.com/photos/11376310@N00/3013390617" target="_blank"&gt;&lt;img src="http://farm4.static.flickr.com/3064/3013390617_31f2a05889.jpg" style="width:500px;height:375px;" alt="" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;내일부턴 주말입니다.&lt;/div&gt;&lt;div&gt;이번주 4일을 철야로 보냈더니..지치내요 orz&lt;/div&gt;&lt;div&gt;다들 건강하세요 (응?)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8479945912659192531-6964465992022552586?l=snowhouse-textcube.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snowhouse-textcube.blogspot.com/feeds/6964465992022552586/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://snowhouse-textcube.blogspot.com/2009/09/%EA%B0%9C%EB%B0%9C%EC%9E%90%EA%B0%80-%EB%B3%B4%EB%8A%94-%EC%98%A8%EB%9D%BC%EC%9D%B8-%EA%B2%8C%EC%9E%84-%EC%9D%B4%EC%95%BC%EA%B8%B0-1.html#comment-form' title='3개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8479945912659192531/posts/default/6964465992022552586'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8479945912659192531/posts/default/6964465992022552586'/><link rel='alternate' type='text/html' href='http://snowhouse-textcube.blogspot.com/2009/09/%EA%B0%9C%EB%B0%9C%EC%9E%90%EA%B0%80-%EB%B3%B4%EB%8A%94-%EC%98%A8%EB%9D%BC%EC%9D%B8-%EA%B2%8C%EC%9E%84-%EC%9D%B4%EC%95%BC%EA%B8%B0-1.html' title='개발자가 보는 온라인 게임 이야기 (1)'/><author><name>bloodforest</name><uri>http://www.blogger.com/profile/13414456106205156837</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm4.static.flickr.com/3064/3013390617_31f2a05889_t.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8479945912659192531.post-8516748379074074526</id><published>2009-09-24T11:41:00.000+09:00</published><updated>2011-01-29T22:33:54.353+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Thinking Games'/><category scheme='http://www.blogger.com/atom/ns#' term='온라인게임 지표'/><category scheme='http://www.blogger.com/atom/ns#' term='최대동시접속자'/><category scheme='http://www.blogger.com/atom/ns#' term='KPI'/><category scheme='http://www.blogger.com/atom/ns#' term='mcu'/><title type='text'>온라인게임 지표에 대한 이야기 (2)</title><content type='html'>&lt;script src='http://ss.textcube.com/service/blog/script/blogger.js' type='text/javascript'&gt;&lt;/script&gt;&lt;font size="3"&gt;'홍보 불쏘시개 MCU'&lt;/font&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;MCU는 특정 기간(보통은 1일 단위)Max Current User 값을 말합니다.&lt;/div&gt;&lt;div&gt;웹에 게시되는 홍보물에 신규 게임으로 런칭되어 뜨기 시작한 게임에서 '최대 동시 접속자가 얼마다' 라고 할 때의 '최대 동시 접속자'와 동일한 의미 입니다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;다시 말하면 동시에 얼마만큼의 사람이 해당 게임에 몰렸느냐 인데, 이는 일종의 신종개업한 음식점과 비교했을 때 음식점 앞을 지나가는데 사람들이 줄지어 서있더라, 혹은 파리만 날리더라를 말해주는 것이기 때문에, '최대 동시 접속자'는 그 수치의 공개 만으로 유저들로 하여금 게임을 하고싶게 끔 만들어 준다는 맥락에서 중요한 지표라고 할 수 있습니다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;조금 다른 이야기를 해보자면, 물론 '신장개업'일 때만 이용할 수 있는 '맛집' 홍보 전략이 있을 수도 있겠죠. : )&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;font size="3"&gt;'재분석이 필요한 지표'&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;다시 개발자에게 있어 MCU의 의미를 생각해 보겠습니다.&lt;br /&gt;&lt;br /&gt;개발자에게 있어 게임은 수익을 창출하기 위한 도구이기도 합니다.&lt;br /&gt;수익을 많이 내는 게임이 훌륭한 게임이다 라고 할 순 없지만, 좋은 게임을 만들 수 있는 기반이 되어 주기에 수익은 개발자에게 있어 매우 중요합니다.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;이러한 맥락에서 적지 않은 분들이 MCU의 증감이 게임을 즐기고 있는 유저수의 변화를 나타낸다고 생각하고 있으며, 이러한 오해로 인해 MCU 수치가 매출의 증감과 직결된다고 이해하시고 계십니다.&lt;br /&gt;물론, MCU가 높은 게임이 매출이 높을 가능성이 크거나, 혹은 잠재 가능성이 큰건 사실이지만 매출에 직접적인 연관이 있는 수치는 아닙니다.&lt;br /&gt;&lt;br /&gt;그 이유를 알아보기 위해서 MCU의 정체를 뜯어보겠습니다.&lt;br /&gt;&lt;br /&gt;MCU는 Max Current User의 약어로 보통의 경우 1일 기간동안 특정 시간을 주기로 CU - 동시접속자 - 수를 기록하다가 가장 높은 수치를 MCU 라고 명명하게 됩니다.&lt;br /&gt;&lt;br /&gt;즉, 특정시간이라는 의미는 찰나의 순간일 수 있다라는 점에서 MCU의 가치가 정해지게 됩니다.&lt;br /&gt;&lt;br /&gt;일상 생활의 맛집 - 학교앞 분식점- 으로 생각해보면 쉽게 이해할 수 있습니다.&lt;br /&gt;&lt;br /&gt;학교앞 분식점에 가면 늘 사람이 붐비는 기분이 들게 됩니다. 하지만, 땡땡이를 치고 분식점에 가게되면 정말 조용한 분식점의 모습을 목격할 수 있으셨을 겁니다.&lt;br /&gt;&lt;br /&gt;학교 앞 분식점은 특정 짧은 시간(점심시간, 하교시간)에 많은 사람을 대상으로 수익을 올리게 됩니다.&lt;br /&gt;예시로 들기에는 무리가 있는 부분이 있지만 학생들이 붐비는 시간이 길어질 수록 매출이 더욱 증가할 수 있습니다.&lt;br /&gt;&lt;br /&gt;다시 말하자면, 특정 시간대의 최대 동시 접속자를 말해주는 MCU의 수치 만으로는 매출을 대변하기에는 어렵다 라는 것입니다.&lt;br /&gt;&lt;br /&gt;이러한 이유 이외에도 MCU의 수치가 경우에 따라 허수가 될 수 있다라는 점.&lt;br /&gt;그리고 다행히도, 접속자의 수를 나타내는 수치 이외에 부분유료화 온라인 게임에는 매출에 영향을 주는 다른 지표들이 존재 합니다만.&lt;br /&gt;&lt;br /&gt;다음 포스팅으로 미루고, 이번엔 여기까지만 정리해 두겠습니다. : )&lt;br /&gt;&lt;br /&gt;&lt;div class="imageblock center" style="text-align: center; clear: both;"&gt;&lt;img src="http://ss.textcube.com/blog/3/33793/attach/XCzUN8weEb.jpg" style="width:500px;height:375px;" alt=""  /&gt;&lt;/div&gt;&lt;br /&gt;이제는 완연한 가을인가 봅니다.&lt;br /&gt;출퇴근 시간 바람이 차갑네요.&lt;br /&gt;감기조심 하세요~ &lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8479945912659192531-8516748379074074526?l=snowhouse-textcube.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snowhouse-textcube.blogspot.com/feeds/8516748379074074526/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://snowhouse-textcube.blogspot.com/2009/09/%EC%98%A8%EB%9D%BC%EC%9D%B8%EA%B2%8C%EC%9E%84-%EC%A7%80%ED%91%9C%EC%97%90-%EB%8C%80%ED%95%9C-%EC%9D%B4%EC%95%BC%EA%B8%B0-2.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8479945912659192531/posts/default/8516748379074074526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8479945912659192531/posts/default/8516748379074074526'/><link rel='alternate' type='text/html' href='http://snowhouse-textcube.blogspot.com/2009/09/%EC%98%A8%EB%9D%BC%EC%9D%B8%EA%B2%8C%EC%9E%84-%EC%A7%80%ED%91%9C%EC%97%90-%EB%8C%80%ED%95%9C-%EC%9D%B4%EC%95%BC%EA%B8%B0-2.html' title='온라인게임 지표에 대한 이야기 (2)'/><author><name>bloodforest</name><uri>http://www.blogger.com/profile/13414456106205156837</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8479945912659192531.post-20370688623722301</id><published>2009-09-21T23:24:00.000+09:00</published><updated>2011-01-29T22:33:53.852+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UV'/><category scheme='http://www.blogger.com/atom/ns#' term='Thinking Games'/><category scheme='http://www.blogger.com/atom/ns#' term='온라인게임 지표'/><category scheme='http://www.blogger.com/atom/ns#' term='온라인게임'/><category scheme='http://www.blogger.com/atom/ns#' term='KPI'/><category scheme='http://www.blogger.com/atom/ns#' term='mcu'/><title type='text'>온라인게임 지표에 대한 이야기 (1)</title><content type='html'>&lt;script src='http://ss.textcube.com/service/blog/script/blogger.js' type='text/javascript'&gt;&lt;/script&gt;&lt;div class="imageblock center" style="text-align: center; clear: both;"&gt;&lt;img src="http://ss.textcube.com/blog/3/33793/attach/XcwIu3G9Ie.jpg" style="width:347px;height:346px;" alt=""  /&gt;&lt;/div&gt;필자의 경우 줄곧 온라인 게임을 서비스 해왔지만, 정작 온라인게임의 주요 지표들을 직접 확인할 수 있게 된것은 그리 오래되지 않았습니다.&lt;br /&gt;온라인 게임 지표들을 직접 확인할 수 있는 권한을 가지게 된 시점도 주요한 이유이지만, 얼마 전까지만 해도 '그 게임 떴다며? 동접이 얼마래?' 정도의 관심 밖에 없었던 탓도 있습니다.&lt;br /&gt;&lt;br /&gt;유저들이 접하는 동접자(최대 동시 접속자 or MCU) 수치 이외에 온라인 게임의 개발자들 -적어도 게임 개발 방향의 많은 영향을 주는 게임디자이너, PM, PD, 디렉터 등이 목표인- 사람들이 알아두어야 할 지표들이 있는데 그것들에 대해 이야기를 조금 풀어볼까합니다.&lt;br /&gt;&lt;br /&gt;아래는 온라인 게임이 수집하는 여러가지 수치 데이터들의(지표)의 명칭이며, 모든 업체에서 같은 용어를 사용하는지는 확인하지 않았다. 용어가 다르더라도 동일한 개념의 지표는 이용할 것이라 예상합니다.&lt;br /&gt;&lt;br /&gt;기본적인 지표들은 아래와 같습니다.&lt;div&gt;&lt;br /&gt;&lt;blockquote class="webkit-indent-blockquote" style="margin: 0 0 0 40px; border: none; padding: 0px;"&gt;CU -- Current User -- 동시 사용자 수&lt;br /&gt;UV -- Unique Visitor -- 일정 기간 한번 이상 게임을 진행한 유저 수&lt;br /&gt;RU -- Registered User -- 게임에 등록된 총 사용자&lt;br /&gt;TS -- Time Spent -- 사용자의 게임 서비스 이용 시간&lt;br /&gt;BU -- Buying User -- 게임을 목적으로 유료 아이템을 구매한 사용자&lt;/blockquote&gt;&lt;br /&gt;상기의 지표들에 특정 의미를 더하여 의미있게 사용할 수 있도록 재가공한 지표들이 있는데, 만들기 나름이기 때문에 그 중에서도 흔히 통용되는 것들은 아래와 같습니다.&lt;br /&gt;&lt;br /&gt;&lt;blockquote class="webkit-indent-blockquote" style="margin: 0 0 0 40px; border: none; padding: 0px;"&gt;MCU -- Max Current User -- 최대 동시 사용자 수 (흔이 이야기 하는 최대동접)&lt;br /&gt;ACU -- Average Current User -- 평균 동시 사용자 수&lt;br /&gt;MTS -- Mutiplay Time Spent -- 멀티 플레이 플레이 타임&lt;br /&gt;MUV -- Mutiplay Unique Visitor --&amp;nbsp; 멀티 플레이 참가자 수&lt;br /&gt;NRU -- New Resistered User -- 신규 가입자 수&lt;/blockquote&gt;&lt;br /&gt;상기의 지표들은 특정 주기(보통 1일 단위)를 가지고 유저의 성향이나, 현재 서비스 중인 게임의 방향을 분석하는 것에 요긴하게 사용됩니다.&lt;br /&gt;&lt;br /&gt;다음 차수에는, 흔히 보도에 많이 이용되는 MCU에 대해 좀더 정리해 보겠습니다. : )&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8479945912659192531-20370688623722301?l=snowhouse-textcube.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://snowhouse-textcube.blogspot.com/feeds/20370688623722301/comments/default' title='댓글'/><link rel='replies' type='text/html' href='http://snowhouse-textcube.blogspot.com/2009/09/%EC%98%A8%EB%9D%BC%EC%9D%B8%EA%B2%8C%EC%9E%84-%EC%A7%80%ED%91%9C%EC%97%90-%EB%8C%80%ED%95%9C-%EC%9D%B4%EC%95%BC%EA%B8%B0-1.html#comment-form' title='0개의 덧글'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8479945912659192531/posts/default/20370688623722301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8479945912659192531/posts/default/20370688623722301'/><link rel='alternate' type='text/html' href='http://snowhouse-textcube.blogspot.com/2009/09/%EC%98%A8%EB%9D%BC%EC%9D%B8%EA%B2%8C%EC%9E%84-%EC%A7%80%ED%91%9C%EC%97%90-%EB%8C%80%ED%95%9C-%EC%9D%B4%EC%95%BC%EA%B8%B0-1.html' title='온라인게임 지표에 대한 이야기 (1)'/><author><name>bloodforest</name><uri>http://www.blogger.com/profile/13414456106205156837</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
