<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Jaeho Yoo on Medium]]></title>
        <description><![CDATA[Stories by Jaeho Yoo on Medium]]></description>
        <link>https://medium.com/@Jager-yoo?source=rss-f88627dad9ff------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*i2TP15Qp0FckjZsQ9B_2Eg.jpeg</url>
            <title>Stories by Jaeho Yoo on Medium</title>
            <link>https://medium.com/@Jager-yoo?source=rss-f88627dad9ff------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Mon, 13 Jul 2026 09:49:39 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@Jager-yoo/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[아내가 바이브 코딩을 시작했다.]]></title>
            <link>https://medium.com/@Jager-yoo/wife-vibe-coding-199a4d4fb272?source=rss-f88627dad9ff------2</link>
            <guid isPermaLink="false">https://medium.com/p/199a4d4fb272</guid>
            <category><![CDATA[ios]]></category>
            <category><![CDATA[baking]]></category>
            <category><![CDATA[vibe-coding]]></category>
            <category><![CDATA[bakebook]]></category>
            <category><![CDATA[바이브코딩]]></category>
            <dc:creator><![CDATA[Jaeho Yoo]]></dc:creator>
            <pubDate>Mon, 25 May 2026 16:18:05 GMT</pubDate>
            <atom:updated>2026-05-25T18:01:53.711Z</atom:updated>
            <content:encoded><![CDATA[<p>나는 약 4년 경력의 현업 개발자. 아내는 IT 회사에서 PM 으로 일하고 있다.</p><p>아내는 GPT, Gemini 같은 LLM 은 꾸준하게 사용해 왔으나 코딩까지 한 적은 없었다. 그러다 1달 쯤 전에 바이브 코딩을 해보겠다고 선언했다.</p><p>만들고 싶은 앱이 있다고 했다. 아내는 평소 집에서 베이킹(제빵)을 많이 한다. 홈메이드 베이킹. 손재주가 좋아서 베이글, 바게트, 피자, 쿠키 등 다양하게 만든다.</p><figure><img alt="" src="https://cdn-images-1.medium.com/proxy/1*CMhIHCUfOTfUUgBaWrREGw.png" /><figcaption>아내가 만든 것들</figcaption></figure><p>베이킹 앱? 특이하다고 생각했다. 요새는 엄청나게 많은 바이브 코딩 앱들이 나오고 있지만, 베이킹이 흔한 주제는 아니라고 생각했다.</p><p>아내에게 Claude Pro 1년 구독권을 선물했다. 그리고 처음에 세팅만 도와주고 어떤 기술들이 편할 것이라고 조언만 했다. 예를 들면, 서버는 <strong>SUPABASE</strong> 로 MCP 연결해서 하면 구성하기 쉽다더라. 이 정도?</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*uD-OLFf0cqAcfUKUMAsbww.jpeg" /><figcaption>SUPABASE 티셔츠를 입고 바이브 코딩 중인 아내</figcaption></figure><p>아내는 회사에서 매니저 역할도 하고 있어서 일을 굉장히 많이 한다. 평일에는 12시간 정도 근무하고, 가끔 주말에도 일한다. 그래서 퇴근하고 집에 오면 밤 10–11시 정도다.</p><p>이 상태에서 쉬지도 않고 매일 2~3시간씩 바이브 코딩을 했다. 사실 나는 좀 걱정이 앞섰다. 왜냐면 요새 바이브 코딩으로 개인 앱이 하도 많이 나오니까, 앱 다운로드가 잘 나오기 진짜 어렵다. 무엇보다 출시는 한다고 쳐도, 결국 ‘운영’ 이 쉽지 않다는 걸 알고 있으니까.</p><p>내 우려와 달리, 아내는 되게 즐겁게 만들고 있었다. 이런저런 기능도 기획하고, 앱에 들어가는 아이콘이나 작은 에셋은 직접 손으로 그렸다.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*3kVLeyDkeysq6MvbkXuupA.png" /><figcaption>아내가 아이패드로 직접 그린 아이콘들</figcaption></figure><p>그렇게 아내 혼자서 2주 만에 앱을 개발해서 배포했다. 앱스토어 배포한 뒤에는 인스타그램, 스레드에 동시에 마케팅을 전개했다.</p><p><a href="https://www.instagram.com/bakebook.app">https://www.instagram.com/bakebook.app</a></p><p>앱의 이름은 <strong>&lt;Bake Book&gt;</strong> 으로, 홈베이커들을 위한 베이킹 기록, 레시피 저장, 커뮤니티 기능을 가진 앱이다.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/768/1*a8-o4UOU_aV5x4VLdBXB9w.jpeg" /><figcaption>초기 프로토타입 때 내가 찍어준 사진</figcaption></figure><p>이제부터 웃긴 이야기를 하자면, 아내가 2주 동안 앱을 하나 만들 동안, 나는 방해만 했다. 어떤 방해를 했냐면…</p><h4>아내: “캘린더 기능을 넣고 싶어.”</h4><p>유저들이 그 날 올린 베이킹 기록을 커스터마이징된 캘린더 위에서 볼 수 있길 원했다.</p><p>나는 캘린더 기능은 어렵고 버그가 많이 날 것 같으니, 배포한 뒤 안정되면 만들자고 제안했다. → 아내는 30분 뒤 캘린더를 완성해서 가져왔다.</p><h4>아내: “베이킹 기록 피드, 댓글 기능을 만들고 싶어.”</h4><p>유저들이 서로 소통할 공간을 갖길 원했다.</p><p>나는 유저도 많지 않은데 벌써 피드를 생각하냐고, 나중에 하자고 제안했다. → 아내가 주말 하루 동안 만들어서 배포를 준비하고 있다.</p><h4>아내: “홈베이커들의 커뮤니티를 만들고 싶어.”</h4><p>아내는 베이킹 커뮤니티를 만들고 싶어 했다. 서로 레시피 공유하고 만든 빵 사진도 공유하면서 소통하는 그런 장소를 꿈꾸고 있었다.</p><p>나는 그런 건 유저가 일단 모여야 하는 거라고 조언했다. → 아내는 진심으로 참여할 소수의 베타테스터를 모집하겠다고, 모집 form 을 만들고 인스타그램/스레드로 홍보할 준비를 시작했다.</p><p>나는 현업 개발자인데 아내의 바이브 코딩에 병목 현상만 만들고 있었던 것이다. 나는 그렇지 않다고 생각했는데, 어느새 나도 <strong>“안 된다.”</strong> 라고 말하는 개발자가 되어 있었다.</p><figure><img alt="" src="https://cdn-images-1.medium.com/proxy/0*KK9xxp_QfcqEGTkc.jpg" /></figure><p>아내의 바이브 코딩을 보며 배운 점이 있다면, 개발자라는 직업을 가진 내가 오히려 겁이 많고, 방어적이고, 느리게 개발하고, 편견이 있다는 것을 알게 됐다.</p><p>개발해 본 적이 없지만, AI 를 잘 다루고 만들고자 하는 게 뚜렷한 사람이 더 용감하고 더 빠르게 뭔가 만들어내는 걸 봤다.</p><p>나는 <strong>Maker</strong> 가 아니고 그냥 <strong>직업으로서의 개발자</strong>였나 하는 반성도 하고 있다.반성뿐만 아니라, 개발자라는 직업의 미래에 대한 고민이 생겼다. 어떤 고민을 하는지는 나중에 다른 글로 풀어보겠다.</p><p>요즘엔 어떤 취미를 갖고 있는 지도 커리어에 영향을 준다. 아내의 경우는 그녀가 베이킹을 좋아하기 때문에 베이킹 앱이 탄생한 것이다. 최근 관심 있게 보는 1인 개발 앱인 <a href="https://kyro.team/">Kyro</a> 도 러닝을 좋아하는 분이 만들었다.</p><p>내 취미가 무엇인가? 나는 애니메이션, 인디 공포 게임, 보드게임을 좋아한다. 외국어 공부, 사람들 만나는 거, 도와주는 걸 좋아한다. 앞으로는 취미에 좀 더 시간을 써야겠다. 그러면 오히려 본업이 더 잘 풀릴 수 있으니.</p><p>아내의 앱 <strong>&lt;Bake Book&gt;</strong> 링크는 아래에! (iOS only)</p><p><a href="https://apps.apple.com/kr/app/bake-book-%EB%B2%A0%EC%9D%B4%ED%82%B9-%EA%B8%B0%EB%A1%9D-%EB%A0%88%EC%8B%9C%ED%94%BC-%EB%8F%84%EA%B5%AC/id6762632408">Bake Book - 베이킹 기록, 레시피, 도구 앱 - App Store</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=199a4d4fb272" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[명작 공포 게임 <Love, Sam>의 개발자 최세윤님을 만나다.]]></title>
            <link>https://medium.com/@Jager-yoo/indie-horror-game-9422ed85cbee?source=rss-f88627dad9ff------2</link>
            <guid isPermaLink="false">https://medium.com/p/9422ed85cbee</guid>
            <category><![CDATA[korean-linguistics-lab]]></category>
            <category><![CDATA[letters-of-bernard-thorne]]></category>
            <category><![CDATA[sam-love]]></category>
            <category><![CDATA[공포게임]]></category>
            <category><![CDATA[수탉]]></category>
            <dc:creator><![CDATA[Jaeho Yoo]]></dc:creator>
            <pubDate>Sat, 14 Mar 2026 14:49:37 GMT</pubDate>
            <atom:updated>2026-03-14T14:49:37.498Z</atom:updated>
            <content:encoded><![CDATA[<p>공포 게임, 좋아하시나요?</p><p>저는 공포 게임을 직접 하는 건 무서워하지만, 유튜버 수탉님을 통해 대리만족하고 있어요.</p><p>수탉님을 정말 오랫동안 구독해 온 팬으로서, 최근 충격적인 납치 사건을 겪으셔서 크게 걱정했어요. 무사히 돌아와 다시 방송도 빠르게 복귀하신 것에 그저 감사한 마음입니다.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*Ysf3Jq-U2Pkf6LHY.png" /><figcaption>어느새 100만 유튜버가 된 수탉님</figcaption></figure><p>저는 공포 게임이라는 환경에서 주제 의식을 전달하는 건 정말 어렵다고 생각합니다. 그래서 수탉님 영상들을 보면, 소위 <strong>똥겜</strong>이라고 하는 게 많은 것이겠죠.</p><p>그러다 2023년 &lt;러브, 샘&gt;을 보고 완전히 시각이 바뀌었어요. 거의 영화를 보듯이 빠져들었거든요. 개발자가 한국 사람이라는 걸 듣고 도대체 어떤 분이 이런 걸 혼자서 만들었을까 검색해 보기도 했습니다.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FFgFc9HlbT2I%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DFgFc9HlbT2I&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FFgFc9HlbT2I%2Fhqdefault.jpg&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/5b1bc343f32043cc8fbf95ef0391fc12/href">https://medium.com/media/5b1bc343f32043cc8fbf95ef0391fc12/href</a></iframe><p>&lt;러브, 샘&gt;을 개발한 곳은 <a href="https://x.com/KoreanLLab">Korean Linguistics Lab</a>, 줄여서 ‘KLL’ 이라 부르겠습니다. KLL 은 1인 개발자 최세윤 님이 운영하는 게임 스튜디오입니다.</p><p>지난 2025년 상반기에는 KLL 의 두 번째 게임 &lt;Letters of Bernard Thorne(버나드 쏜의 편지)&gt; 가 출시되었습니다. 줄여서 &lt;LBT&gt; 라고 부르겠습니다.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FhHO9OsDmyko%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DhHO9OsDmyko&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FhHO9OsDmyko%2Fhqdefault.jpg&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/0afe6a094b4e14306cea318221d2af5d/href">https://medium.com/media/0afe6a094b4e14306cea318221d2af5d/href</a></iframe><p>저는 두 작품을 정말 재미있게 봤습니다. 또 두 작품이 주는 울림을 기억하고 있습니다. 공포 게임으로 예술을 하는 분이라고 생각했어요.</p><p>공포 콘텐츠, 인디 게임, 스토리텔링을 좋아하는 사람으로서 KLL 최세윤 개발자님과 대화를 나눠보고 싶었습니다. 그래서 세윤님께 X(트위터)로 조심스럽게 연락드렸고 흔쾌히 수락하셔서 직접 만나 뵐 수 있었습니다.</p><p>2026년 3월의 어느 맑은 주말. 강남에서 식사하고 커피를 마시며 나눈 대화를 인터뷰 형식으로 정리했습니다.</p><blockquote><strong><em>요즘에는 어떻게 지내고 계신가요?<br>혹시 다음 작품을 만들고 계신가요?</em></strong></blockquote><p>&lt;LBT&gt;를 출시하고 나서 거의 바로 차기작 준비를 시작하긴 했습니다. 하지만 이번에는 전작 때보다 조금 더 여유를 두고 취미 생활이나 다른 아이디어 구상도 병행하면서 개발하고 있어요.</p><p>여자친구가 카페 가는 걸 좋아해서, 저를 자꾸 밖으로 끄집어내 준 덕분에 밖에서 영감을 얻기도 해요. 집에서만 일을 하다 보니 건강이 나빠지는 것 같아 헬스장에서 PT 도 받고 있어요.</p><blockquote><strong><em>세윤님에 대한 공개된 내용이 많지 않아요.<br>과거 2024년 기사를 보면, 광고 회사에서 일하시다가 하고 싶은 일을 해보고 싶어 3년 간 개발한 것이 &lt;러브, 샘&gt; 이라는 내용을 봤어요.<br>그 당시 이야기를 좀 더 구체적으로 들을 수 있을까요?</em></strong></blockquote><p>처음에는 인터넷 강의 회사 마케팅팀에서 일하다가 창의적인 일을 하고 싶어 광고 대행사로 이직해 SNS팀에서 일했습니다. 카피도 쓰고 기획도 했지만, 제 창의성보다는 광고주의 입맛에 맞춰 끊임없이 설득해야 하는 ‘영업’에 가까운 환경에 현타가 왔습니다.</p><p>그러다 어느 날 자다가 <strong>“일기장을 소재로 한 공포 게임을 만들어야겠다!”</strong> 아이디어가 떠오르면서 눈이 확 떠졌어요. 그 후로 부모님의 만류에도 불구하고 바로 퇴사하고 게임 개발을 공부하기 시작했죠.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*tPpl-HI-fKXJ_EMy.png" /><figcaption>&lt;러브, 샘&gt; 게임의 등장하는 일기장</figcaption></figure><p>언리얼 엔진은 유튜브 강의를 보며 무작정 시작했어요. 언리얼 엔진의 블루프린트 방식이 마치 &lt;심즈&gt; 게임에서 방을 한 칸 한 칸 만드는 것 같아 재밌었거든요. 다만 제가 아트에 소질이 없어서 그게 제일 힘들었어요.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*7K1wdIgj0fpbumvb.png" /><figcaption>언리얼 블루프린트 개발 예시</figcaption></figure><p>제가 게임에 넣을 그림을 열심히 그린 걸 보고, 당시 같이 살던 룸메이트 친구가 이걸 공포 게임에 넣으려고 그린 거냐고. 자기가 그려주겠다고 하며 &lt;러브, 샘&gt;에서 사용되는 그림의 90% 를 대신 그려줬습니다.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*qxKxoMy663Gacd67.png" /><figcaption>친구가 그려준 그림 중 하나</figcaption></figure><blockquote><strong><em>직장인으로 일하시던 시절과 1인 게임 개발자로 활동하고 계신 지금의 삶은 어떤 차이가 있을까요?<br>지금의 삶에 더 만족하고 계신지도 궁금합니다.</em></strong></blockquote><p>네 만족하고 있어요. 1인 개발의 장점은 출퇴근 시간을 자유롭게 조절할 수 있고 제 생각대로 개발을 빠르게 진행할 수 있다는 것입니다. 다만 게임 출시 전에 피드백을 주고받거나 창작의 고통을 공감해 줄 동료가 없다는 점은 단점이에요.</p><p>심지어 저희 부모님은 한동안 제가 정확히 어떤 일을 하는지 잘 모르셨어요. 제가 하는 일을 완전히 이해해 줄 사람이 없다는 게 어렵죠.</p><blockquote><strong><em>조심스러운 질문이지만, 수익 측면에서는 직장인 때와 비교하면 어떠신가요?</em></strong></blockquote><p>&lt;러브, 샘&gt; 최초 출시 때는 회사 다닐 때 받던 수입보다는 적었습니다. 하지만 <a href="https://store.steampowered.com/news/app/1073820/view/3380540365826494118">rewrite</a> 버전을 출시한 이후부터 수익이 증가하기 시작했어요.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FpTvp7B1EYa4%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DpTvp7B1EYa4&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FpTvp7B1EYa4%2Fhqdefault.jpg&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/79ea8d0ff5a4d9ceeaa15610e271e77c/href">https://medium.com/media/79ea8d0ff5a4d9ceeaa15610e271e77c/href</a></iframe><p>이후 후속작인 &lt;LBT&gt;가 출시되면서 사람들이 전작을 함께 구매하는 시너지 효과가 발생했고, 지금은 꽤 안정적인 수익을 얻고 있습니다.</p><p>수익 패턴은 출시 직후에 판매량이 가장 높았다가 점차 줄어들긴 해요. 그러다 유명 스트리머가 방송에서 플레이하면 다시 판매량이 확 뛰곤 합니다.</p><blockquote><strong><em>많은 사람들이 세윤님의 게임을 즐기고, 무서워하는 모습을 보면 창작자로서 기분이 어떠신가요?</em></strong></blockquote><p>제가 의도한 타이밍과 연출의 강약 조절에 따라 사람들이 비명을 지르거나 무서워해 주면 창작자로서 매우 뿌듯하고 다행(?)이라고 느낍니다.</p><p>유튜브에서 어떤 여성 스트리머가 &lt;러브, 샘&gt;을 플레이하는 영상을 본 적이 있는데요. 어떤 장면에서 비명을 지르시더니 막 울기 시작하는 거예요. 그때는 너무 우셔서 약간 죄송한 마음이 들기도 했습니다.</p><blockquote><strong><em>&lt;러브, 샘&gt;의 시나리오를 구성하실 때, 일기장 말고도 영감을 받은 곳이 있으신가요?</em></strong></blockquote><p>세상에서 가장 짧은 공포 소설에 대해 아시나요? 두 문장 만으로 공포 소설을 쓰는 것인데요.</p><p>“세상에 홀로 남은 마지막 인간이 방 안에 홀로 앉아 있었다.”</p><p>“그때 밖에서 누가 문을 두드렸다.”</p><p>처음에는 이런 단편 영화적 아이디어에서 시작했어요.</p><p>여기에 집안을 돌아다니며 일기나 편지를 읽고 스토리를 파악하는 흐름은 <a href="https://store.steampowered.com/app/232430/Gone_Home/">&lt;Gone Home&gt;</a> 이라는 게임에서 많은 영감을 받았습니다.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*_4bj3pNZF4K_aud8.png" /><figcaption>&lt;러브, 샘&gt; 도입부의 한 장면</figcaption></figure><blockquote><strong><em>&lt;LBT&gt;의 주제의식은 상당히 묵직합니다.<br>어떻게 이런 주제의 게임을 만드셨나요?</em></strong></blockquote><p>전작인 &lt;러브, 샘&gt;이<strong> ‘공간의 제약’</strong> 을 다뤘다면, &lt;LBT&gt;에서는 <strong>‘행동의 제약’</strong>을 활용해보고 싶었어요. 그래서 <strong>휠체어</strong>를 떠올렸습니다.</p><p>주제는 저의 개인적인 경험에서 왔어요. 학창시절에 우울증으로 심하게 힘들어하던 친구가 제 앞에서 “죽지 못해 산다”고 말한 적이 있어요.</p><p>주변에 그렇게 마음의 병을 앓는 사람들이 많은데, <strong>‘저들은 어떻게 살아가는가, 왜 살아야 하는가’</strong>에 대한 깊은 고민을 계속해왔고, 그 주제를 <strong>참전 용사의 PTSD </strong>와 결합하게 된 것입니다.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*_5_okrCQeh3eGuje.png" /><figcaption>유튜버 jacksepticeye</figcaption></figure><p>&lt;LBT&gt; 를 출시한 이후, 마음에 상처를 안고 살아가는 많은 분들에게 감사 메일을 정말 많이 받았습니다.</p><p>알고 보니, 해외 유튜버 jacksepticeye (구독자가 무려 3,110만 명…) 가 &lt;LBT&gt;를 플레이하며 눈물을 흘리면서 자신의 과거 트라우마를 진지하게 털어놓는 영상이 화제가 된 거예요.</p><p>제가 보통은 유튜브에 댓글을 남기지 않지만, 이 영상에는 댓글을 길게 남겨서 감사 인사를 전했어요. (<a href="https://youtu.be/r0XBzd2l2G8?si=lm6RBfTkffdX21_o">링크</a>)</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*zumIs5iK5-9uZ298.png" /><figcaption>세윤님이 jacksepticeye 영상에 남긴 댓글</figcaption></figure><blockquote><strong><em>저는 세윤님 게임의 연출을 되게 좋아합니다.<br>영화 연출 처럼 느껴질 때도 많았는데요, 이런 연출은 시나리오 작성 단계에서 미리 생각해두시는 건지, 아니면 게임을 개발하는 과정에서 고치고 또 고치고 하면서 만들어지는 것인지 궁금합니다.</em></strong></blockquote><p>연출 아이디어와 제가 생각한 스토리가 처음부터 끝까지 계속 치고 받으면서 만들어져요.</p><p>예를 들어, 어두운 밤에 창문 밖에 사람이 서있는 실루엣이 보인다거나, 어두운 화장실에서 카메라 플래시만 터뜨려서 길을 찾아야 한다는 등 <strong>“이런 장면을 짜면 무섭겠다.”</strong> 는 아이디어가 떠오르면, 그에 맞춰 스토리에 살을 붙이면서 개발을 하기도 해요.</p><blockquote><strong><em>최근 &lt;8번 출구&gt;, &lt;백룸&gt; 등 인디 공포 게임을 모티브로 한 영화가 많이 나오잖아요?<br>혹시 세윤님 게임에 대한 영화화 제안을 받으신 적은 없나요?</em></strong></blockquote><p>&lt;러브, 샘&gt; 초기 버전 출시 때 국내의 영화 제작자분께 연락을 받은 적이 있지만, 첫 작품이기도 하고 제가 원하는 그림이 나올지 조심스러워 정중히 거절했습니다.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/500/0*2JGzBU5__0JMzWT6.jpg" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/686/0*PcCEmMXPB9NiCm_m" /><figcaption>영화로 만들어진 &lt;8번 출구&gt;와 &lt;백룸&gt;</figcaption></figure><p>제 게임을 해주신 분들이 종종 <strong>‘영화 같다’</strong>라는 평가를 해주시거든요.</p><p>그 이유는 제가 게임을 만들기 시작할 때부터 <strong>“이 장면을 영화로 만들면 어떨까?”</strong> 생각하면서 만들어서 그런 것 같아요. 이 영화의 예고편이 나온다면 어떨지 상상해 보기도 하고요.</p><p>하지만 <strong>게임이기 때문에 전달할 수 있는 감정과 경험</strong>이 분명히 있다고 생각해요. 플레이어가 되어 직접 그 공간에 들어간 느낌을 받을 수 있고, 1인칭 시점에서 경험하는 긴장감이 재밌잖아요.</p><p>이런 게임이란 매체의 장점을 영화에서 그대로 표현할 수 있는, 그런 걸 잘하시는 영화감독을 만난다면 좋을 것 같아요.</p><blockquote><strong><em>AI 발전으로 소프트웨어 개발자의 영역이 무섭게 침범당하고 있습니다.<br>저는 이런 시대에는 오히려 ‘네러티브 게임’이 주는 가치는 높아지고 있다고 생각합니다.<br>코딩은 AI 가 순식간에 정답을 낼 수 있지만, 스토리와 감동이란 건 정답이 없기 때문이라 생각하는데요. 이 점에 대한 세윤님 의견이 궁금합니다.</em></strong></blockquote><p>동의합니다. 저 역시 창작자로서 언젠가 제 일이 AI 에게 따라잡히지 않을까 걱정하곤 해요. 하지만 창작이라는 것은 결국 <strong>‘사람이 사람의 경험과 감정을 나누는 것’</strong>이라고 생각합니다.</p><p>아무리 화려하고 예쁜 그림을 보더라도, 이거 AI 가 만든 거라는 걸 알게 되는 순간 감동이 식어버리거든요.</p><p>물론 AI가 많은 업무에 사용되고 광고 이미지를 만들거나 코딩 수단으로 쓰이는 것은 피할 수 없는 흐름이겠지만, 순수 창작물에 있어서는 AI가 발전할수록 오히려 <strong>‘사람의 손길’</strong>을 더욱 찾게 될 거라 생각해요.</p><p>예를 들어, 아무리 AI가 문법적으로 완벽하게 잘 쓴 글이 있더라도 저는 사람이 직접 썼다는 게 확실한 글, 심지어 열 살짜리 아이가 휘갈겨 쓴 글을 더 집중해서 읽을 것 같아요.</p><p>앞으로 온전히 사람의 손을 거친 창작물의 개수 자체는 줄어들지 몰라도, 그 <strong>희소가치</strong>는 훨씬 더 높아질 거로 생각합니다.</p><blockquote><strong><em>혹시 오프라인 강의 콘텐츠를 오픈하실 생각은 없으신가요?<br>게임 개발 강의 혹은 스토리 설계에 대해 강의하신다면 수요가 분명 있을 거라 생각합니다.</em></strong></blockquote><p>제가 외향적인 성격이 아니어서 그런 강의에 대한 부담감이 좀 있어요.</p><p>하지만 이렇게 재호님 처럼, 제 게임을 좋아해 주시는 분들, 공포 게임과 인디 게임을 진심으로 좋아하시는 분들이 모인다면 재밌게 진행할 수 있을 것 같아요.</p><blockquote><strong><em>마지막으로 질문입니다.<br>앞으로 어떤 게임을 만들고 싶으신가요? 혹시 다음 작품의 대략적인 주제와 출시 일정을 알려주실 수 있나요?</em></strong></blockquote><p>저는 항상 현실에 발을 딛고 있는 게임을 만들고 싶어요. 공포, 두려움이라는 감정은 결국 사람의 현실적인 걱정과 맞닿아 있거든요. 게임과 현실이 강하게 연결될 때 비로소 큰 공감과 감동을 이끌어낼 수 있다고 생각해요.</p><p>다음 작품은 개발을 시작한 지 거의 1년이 되었는데요. 계속 스토리를 뜯어고치고 있어서 정확한 출시 일정은 저도 모르겠습니다.</p><p>이번 주제도 저의 개인적인 경험에서 가져오려 합니다. 제가 직장인 시절에 너무 힘들어서 공황이 크게 온 적이 있거든요. 당시 겪었던 <strong>‘당장 죽을 것 같은 공포감’</strong>을 스토리에 녹여낸 게임을 만들고 있습니다.</p><p>인터뷰는 여기까지입니다. 사실 인터뷰 외에도 여러 공포 게임에 관한 얘기도 많이 나눴어요. ㅎㅎ</p><p>일본의 게임 스튜디오 <a href="https://namu.wiki/w/Chilla&#39;s%20Art">칠라스 아트</a>, 그리고 <a href="https://namu.wiki/w/Fears%20to%20Fathom">Fears to fathom</a> 시리즈, <a href="https://namu.wiki/w/Inscryption">인스크립션(Inscryption)</a>, <a href="https://namu.wiki/w/Layers%20of%20Fear">Layers of Fear</a> 같은 공포 게임 덕후들만 아는 내용으로 신나게 떠들었습니다.</p><p>이런 주제로 대화할 수 있는 친구를 만난 것 같아 신났습니다. KLL 최세윤 개발자님의 다음 작품도 응원하겠습니다!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*alaPRSaI_5weTCPS.jpeg" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/768/0*rzN-FZjGO8KVhnU5.jpeg" /><figcaption>세윤님과 식사를 하고 카페에서 대화를 나누는 모습</figcaption></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=9422ed85cbee" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[[iOS] 위젯 갤러리에서 위젯 노출 순서와 위젯 위치 권한에 대한 실험]]></title>
            <link>https://medium.com/@Jager-yoo/ios-%EC%9C%84%EC%A0%AF-%EA%B0%A4%EB%9F%AC%EB%A6%AC%EC%97%90%EC%84%9C-%EC%9C%84%EC%A0%AF-%EB%85%B8%EC%B6%9C-%EC%88%9C%EC%84%9C%EC%99%80-%EC%9C%84%EC%A0%AF-%EC%9C%84%EC%B9%98-%EA%B6%8C%ED%95%9C%EC%97%90-%EB%8C%80%ED%95%9C-%EC%8B%A4%ED%97%98-20559e997a29?source=rss-f88627dad9ff------2</link>
            <guid isPermaLink="false">https://medium.com/p/20559e997a29</guid>
            <category><![CDATA[widget]]></category>
            <category><![CDATA[ios]]></category>
            <category><![CDATA[swift]]></category>
            <category><![CDATA[xcode]]></category>
            <category><![CDATA[위젯]]></category>
            <dc:creator><![CDATA[Jaeho Yoo]]></dc:creator>
            <pubDate>Wed, 18 Feb 2026 08:16:48 GMT</pubDate>
            <atom:updated>2026-02-20T02:22:21.055Z</atom:updated>
            <content:encoded><![CDATA[<blockquote><strong><em>이 글은 LLM 의 도움을 받지 않았습니다.<br>iOS 26.2 시뮬레이터로 실험했습니다.<br>혹시 실기기에서 다르게 작동하거나 오류가 있다면, 댓글로 제보 부탁드립니다.</em></strong></blockquote><ul><li>iOS 앱이 위젯을 여러 개 가지고 있는 경우, 사용자에게 먼저보여주고 싶은 위젯이 있을 것이다. 좀 더 앞에 내세우고 싶은 그런 위젯</li><li>이번 글에서는 위젯 갤러리에서 보여지는 순서에 대한 실험을 해봄</li><li>위젯 타겟이 딱 1개 있고 supportedFamilies 가 여러 타입이라면?</li><li>[.systemLarge, .systemMedium] 이렇게 배치하면 systemMedium -&gt; systemLarge 순서로 노출됨</li><li>즉, 동일한 위젯 kind 에서는 타입이 작은 순서대로 노출</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/748/1*dnvwGXeJR4Y8i1m5RG91Pw.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*al2zZY_OUrmPtrbO0olBTg.png" /></figure><ul><li>위젯 구조체를 2개로 만들고 같은 kind 설정</li><li>두 위젯 구조체의 supportedFamilies 를 일부러 다르게 함</li><li>WidgetBundle 의 body 에 배치할 때 A2Widget() 을 먼저 선언하면, 이 위젯만 노출됨</li><li>둘의 순서를 바꾸면, 반대로 AWidget() 만 노출되고 A2Widget() 은 안 보임</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/732/1*3mR-2nqGsaPsiSaO8wC0hA.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/740/1*MnrC5Fv4HiZWmQP44Vtgtw.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*mDMP_hYMSlpUvTjcqVilKw.png" /></figure><ul><li>kind 가 다른 BWidget() 생성</li><li>WidgetBundle 바디에 배치할 때, A -&gt; B 순서로 배치</li><li>B 위젯은 systemSmall 이지만 갤러리에서 가장 우측 배치됨</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/722/1*RiNlNwqR2tP6S7K4yfGI4w.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/378/1*-Cv6SBAR8o_7JCMPTZsuOQ.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Phu5D0erYJk02CQFe1ewZw.png" /></figure><ul><li>만약 B 위젯의 supportedFamilies 가 [.systemSmall, .systemLarge] 가 되면?</li><li>예상한 대로, 같은 kind 안에서는 반드시 작은 위젯 타입부터 배치됨</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Oi7dyj3FiX3ho0WNc2DZBg.png" /></figure><ul><li>만약 나는 B 위젯들이 A 위젯들보다 먼저 보이길 원한다면</li><li>WidgetBundle 의 바디에서 먼저(위에) 선언하면 됨!</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/418/1*WGz8ZnrhBu4C3G6nvxbWWg.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*63gNMdOW4WzdfHHbVhi8wA.png" /></figure><ul><li>참고로, 앱 아이콘을 롱탭해서 위젯으로 transform 할 수 있는 기준도 이와 동일함</li><li>갤러리의 맨 앞에 있는 위젯의 kind 를 따라감</li><li>즉, 위의 경우 B 위젯을 최우선하기 때문에, systemSmall, systemLarge 로 변신 가능 (아래 왼쪽 스크린샷)</li><li>만약 A 위젯이 먼저 선언되면, systemMedium, systemLarge 로 변신 가능 (아래 오른쪽 스크린샷)</li><li>이거 즉시 반영되는 거 아님. 시뮬레이터 껐다 켜야 바뀜</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*xFw9dYXyPSwuQWw025XeKg.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*0kZpGZpXpbC_BHeYGDXpJA.png" /></figure><ul><li>이제 B 위젯을 지우고, 새로운 위젯 타겟을 만들자. (지금까진 같은 위젯 타겟)</li><li>만약에 위젯 타겟은 서로 다르지만, 두 위젯의 kind 가 똑같으면 무슨 일이 생길까?</li><li>즉, 타겟 마다 WidgetBundle 이 존재하지만, 결국 두 위젯 구조체의 kind 가 같으면 어떻게 되나 실험해보자</li><li>새로운 위젯 타겟에서 B 위젯의 supportedFamilies 는 systemSmall 만 채택</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/710/1*oyOMEXcaYFIZ-9-w5LA5zg.png" /></figure><ul><li>예상과 달리(?) A, B 위젯 둘 다 잘 작동함. 갤러리에서 title 구별도 되고, 설치도 잘 됨</li><li>앱 아이콘 롱탭해서 위젯 변신하는 거는 여전히 위젯 갤러리 맨 앞에 있는 B 위젯의 supportedFamilies 에만 반응함 (systemSmall)</li><li>홈 화면에 설치한 위젯을 롱탭했을 때는 A, B 위젯의 각자의 supportedFamilies 에서만 가능했음</li><li>즉, 위젯 타겟이 다르면 위젯 kind 가 ‘똑같아도’ 문제는 없음. 하지만 일반적으로 이렇게 하면 안 됨</li><li>그리고 롱탭 위젯 변신의 기준은, 아이콘은 ‘갤러리의 맨앞에 오는 위젯’ 을 우선하고, 화면에 설치한 위젯은 자신의 kind 끼리만 변신 가능</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Bw16HtrKGk6wzbFoFlvbfQ.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*KG5swGWICxDjSNdSafpggQ.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*U-L8ALL3Yg4x-pd4uZuS3Q.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*_HTXfTEDdq6AHFynhj4lMg.png" /></figure><ul><li>근데 서로 다른 두 개의 위젯 타겟(A, B)을 만들었을 때, 갤러리 노출 순서는 왜 B 위젯이 먼저 나왔을까?</li><li>어떤 기준으로 B 가 먼저 나왔는지 모르겠음</li><li>알파벳상으로는 AWidget &gt; BWidget 임. 갤러리에서 A 위젯이 먼저 나오는 게 자연스러움. 하지만 실제론 BWidget 이 먼저 보임</li><li>여기서 예외 케이스가 하나 발생</li><li>앱 아이콘 롱탭해서 위젯으로 변신시키는 게, 지금까지는 위젯 갤러리 맨 앞의 위젯을 우선했는데, 위젯 타겟이 2개 이상이 되니까 그게 안 지켜짐</li><li>즉, 갤러리 맨 앞에 B 위젯이 있어도 앱 아이콘은 A 위젯으로만 변신 가능할 때가 있음. 그러다 앱 삭제하고 재설치하면 B 위젯으로 변신할 때도 있었음</li><li>어디서 순서를 정하는거지? 알파벳 순서가 아닌가?</li><li>3년 전 스택오버플로우 글 하나 찾았는데, 댓글 보면 애플 TSI(Technical Support Incident) 에 문의했었는데, 위젯 타겟을 나누지 말고, 하나의 타겟 안에서 순서를 조절하라고 했다고 함</li><li><a href="https://stackoverflow.com/questions/74301476/determine-the-order-of-the-widgets-in-the-widget-gallery-without-widgetbundle-s">https://stackoverflow.com/questions/74301476/determine-the-order-of-the-widgets-in-the-widget-gallery-without-widgetbundle-s</a></li></ul><blockquote><em>TSI를 접수했고, 다음과 같은 답변을 받았습니다:<br></em><strong><em>두 개의 별도 익스텐션을 사용하면 안 됩니다. 대신 하나의 익스텐션과 Widget Bundle을 사용해야 하며, Widget Bundle은 표시 순서도 지정합니다.</em></strong></blockquote><blockquote><em>사용 사례는 이해하지만, 두 개의 익스텐션을 쓰면 앱의 컴파일 시간이 느려지고, 서로 다른 프로세스에 속하기 때문에 두 익스텐션 사이의 순서를 제공할 방법이 없습니다. […]</em></blockquote><blockquote><em>제 입장이라면 앱을 [단일 위젯 익스텐션을 쓰는 구조로] 바꾸고, 특정 위젯에 한정된 권한을 부여할 수 있도록 기능 개선 요청을 제출하겠습니다.</em></blockquote><ul><li>근데 위젯 개발하다 보면 이런 일도 생김. A 위젯은 평범하고, B 위젯은 <strong>‘위치 권한’</strong> 이 필요한 경우</li><li>만약 A 위젯은 위치 권한이 필요하지 않다면, 둘을 단일 위젯 타겟에 묶어두지 않는 게 개발자에겐 자연스러운 행동일 것임</li><li>B 위젯 타겟의 Info.plist 에서 “Widget Wants Location” 를 “YES” 로 설정하면 위젯에서 사용자 위치에 접근할 수 있음</li><li>(중요) 위젯에서 위치 권한을 쓰려면, iOS 호스팅 앱에서 먼저 위치 권한을 얻어야 함. 앱에서 허락 안 했다면 위젯에서는 물어보지도 않음</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*pH6jI-Bklaiv-PLCHg_Uvg.png" /></figure><ul><li>재밌는 사실. Widget Wants Location 을 “YES” 로 설정한 B 위젯에 위치 관련 코드를 아무것도 넣지 않았음에도, 앱을 최초 설치 후, 인앱에서 위치 권한 허용하고 백그라운드로 나가게 되면, 위젯 위치 권한 팝업이 뜸!</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/720/1*f-CViiK6ijElpFLNEkCWOg.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/674/1*v8nqmYE_r3QdbXBw9yVBlQ.png" /></figure><ul><li>즉, A 위젯은 위치 권한 안 쓰는 위젯, B 위젯은 위치 권한 필요한 위젯으로 구분하고, 둘의 위젯 타겟을 분리하더라도, 위젯 타겟 중 하나라도 Widget Wants Location 가 “YES” 이고 사용자가 호스팅 iOS 앱에서 “앱을 사용하는 동안 허용&quot; 을 눌렀다면, 백그라운드로 나가는 순간, 위젯 위치 팝업이 즉시 뜬다.</li><li>만약 “한 번 허용” 혹은 “허용 안 함” 을 선택한다면, 앱을 나가도 위젯 위치 팝업이 뜨지 않음 (원하면 나중에 설정에서 직접 바꿔야 함)</li><li>만약 이 상황에서, B 위젯의 Info.plist 에서 “Widget Wants Location” 을 NO 로 바꾸면, 백그라운드 나가더라도 위젯 위치 팝업이 뜨지 않는 걸 확인함</li><li>실기기로 테스트할 때는 일정하지 않은 모습을 보임. 앱에서 위치 권한 허용하고 BG 로 나가도 위젯 위치 권한 팝업이 안 뜨기도 함. 실제로 위젯을 설치할 때가 되어서야 뜬다.</li><li>그런데 실기기에서 앱 삭제 후 재설치 하니까 이번엔 BG 로 나갈 때 바로 위젯 위치 권한 팝업이 뜬다. 왔다갔다 하는 듯.</li></ul><h3>실험 결론</h3><ul><li>위젯 갤러리에선 작은 사이즈 타입부터 노출된다. (small → medium → large)</li><li>kind 를 나눠서 위젯을 구분했다면, WidgetBundle 에서 선언한 순서대로 위젯이 노출된다.</li><li>위젯 타겟이 하나만 있어야지 위젯 갤러리에서 노출 순서 조절하는 게 쉽다. (단일 Widget Extension 타겟)</li><li>위치 권한이 필요한 위젯과 필요 없는 위젯을 같이 운영하는 경우, 그냥 위젯 타겟 분리하지 말고 하나에 다 때려 넣자.</li><li>어차피 위젯 위치 권한은 앱에서 위치 권한 허용하고 BG 나가면 바로 뜬다. (위젯을 설치하지 않았더라도)</li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=20559e997a29" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[애플 아카데미 쇼케이스25 후기]]></title>
            <link>https://medium.com/@Jager-yoo/%EC%95%A0%ED%94%8C-%EC%95%84%EC%B9%B4%EB%8D%B0%EB%AF%B8-%EC%87%BC%EC%BC%80%EC%9D%B4%EC%8A%A425-%ED%9B%84%EA%B8%B0-f96397083cfc?source=rss-f88627dad9ff------2</link>
            <guid isPermaLink="false">https://medium.com/p/f96397083cfc</guid>
            <category><![CDATA[애플아카데미]]></category>
            <category><![CDATA[showcase25]]></category>
            <category><![CDATA[ios]]></category>
            <category><![CDATA[apple]]></category>
            <category><![CDATA[apple-academy]]></category>
            <dc:creator><![CDATA[Jaeho Yoo]]></dc:creator>
            <pubDate>Tue, 09 Dec 2025 18:38:48 GMT</pubDate>
            <atom:updated>2025-12-09T18:38:48.941Z</atom:updated>
            <content:encoded><![CDATA[<p>추워질 때쯤이면 애플 아카데미의 쇼케이스가 열린다. 작년 이맘때도 참여하고 후기를 작성했었다.</p><p><a href="https://medium.com/@Jager-yoo/%EC%95%A0%ED%94%8C-%EC%95%84%EC%B9%B4%EB%8D%B0%EB%AF%B8-%EC%87%BC%EC%BC%80%EC%9D%B4%EC%8A%A424-%ED%9B%84%EA%B8%B0-9bb255188ab0">애플 아카데미 쇼케이스24 후기</a></p><p>벌써 1년이 지난 게 놀랍다. 올해는 4기 러너들의 차례다. 올해는 구경한 앱이 너무 많아서, 그냥 작년에 비해 뭐가 나아졌는지, 어떤 생각을 했는지 편하게 적어보려 한다.</p><p>올해도 현대자동차 팀원들과 <strong>개인 연차</strong>를 쓰고 포항으로 향했다. ㅎㅎ</p><p>이번 쇼케이스25 에 나온 모든 앱은 아래 <strong>노션 링크</strong>에서 자세히 살펴볼 수 있다.</p><p><a href="https://posacademy.notion.site/2352b843d5af808ab847ce10c684535f?v=2352b843d5af81779d65000ce7452b85">[2025] SHOWCASE | Notion</a></p><h4>1. 공공기관, 병원, 기업과의 협업이 눈에 띄게 늘어났다.</h4><p>올해 느낀 가장 큰 변화다. 많은 팀이 단순히 앱만 출시하는 게 아니라, 더 큰 사회적 임팩트를 만들어내기 위해, 아카데미 외부와 협업하기 시작했다.</p><p><a href="https://posacademy.notion.site/24-2a62b843d5af80c08ad6c29f0d212d56?pvs=25"><strong>수사24</strong></a> 팀은 경북 경찰청과 협업하여 <strong>‘형사’</strong> 들을 위한 iOS 앱을 개발했다.</p><p><a href="https://posacademy.notion.site/HIPPO-2a92b843d5af80648349e47a985d4c1e"><strong>히포</strong></a> 팀은 삼성서울병원과 협업하여 <strong>‘의사’</strong> 들을 위한 visionOS 앱을 개발했다.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*DhDsF6Ha2qOV9ZNWll4Vgg.jpeg" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*r7MNnFUVmplp18bVimIwbg.jpeg" /><figcaption>&lt;수사24&gt; 팀과 &lt;히포&gt; 팀 구경</figcaption></figure><p>일반 사용자들이 아닌 특수 사용자를 위한 <strong>전용 앱</strong>을 만드는 전략. 되게 매력 있다고 느꼈다.</p><p>왜냐면 팀플로 만들어진 일반 사용자를 위한 앱이 ‘진짜로’ 그럴싸한 성과를 내기가 너무 어렵기 때문이다. DAU 10명 만들기도 진짜 어렵다.</p><p>하지만 협업으로 만들어진 전용 앱은, 일단 협업을 이끌어낸 것 자체가 큰 성과다. 어필이 잘 된다.</p><p>팀원들은 소수의 타겟 유저의 불편함에 집중해서 앱을 뾰족하게 다듬어 나가는 경험을 할 수 있다.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ZneL8BIKF50MvOZFWHD5EQ.jpeg" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*7i2KqO1-D9ASsQtCpAdwew.jpeg" /><figcaption>&lt;스틸워크&gt; 팀과 &lt;우아&gt; 팀 구경</figcaption></figure><p><strong>조금 느슨한 형태</strong>의 협업 프로젝트들도 많았다.</p><p><a href="https://posacademy.notion.site/2a92b843d5af80aa918bedc0082e9553"><strong>스틸워크</strong></a> 팀은 포항시 및 포스텍 사회문화데이터 사이언스연구소와 함께 게이미피케이션이 강조된 포항 철길숲 산책 iOS 앱을 개발했다.</p><p><a href="https://posacademy.notion.site/WoA-2a72b843d5af8054ba1dd052b682ee83"><strong>우아</strong></a> 팀은 전시를 준비하는 예술가들과 함께 관객과 작가의 소통을 돕는 iOS 앱을 개발했다.</p><p>사실 이런 느슨한 협업이야말로 가장 균형 잡힌 프로젝트라고 생각한다. 특히 기획이나 PM 직무를 준비하는 러너들에게 좋다. 타겟 유저들의 Pain Point 를 분석해서 기획에 녹일 수 있다는 건 정말 좋은 경험이니까.</p><p>듣기로는 애플 아카데미가 올해 협업을 많이 만들어낸 건 <strong>멘토</strong>분들의 공이 크다고 한다. 고생 많이 하셨을 듯. 내년(5기) 기수에는 협업이 더 많아질 것 같다.</p><p>글을 쓰며 떠오른 재밌는 아이디어가 있는데, 애플 아카데미 쇼케이스를 준비하는 똑똑한 친구들의 개발 리소스를 <strong>‘외주화’</strong> 해 보는 건 어떨까?</p><p>예를 들어, 아이디어가 있는 초기 창업팀이 아카데미 측으로 <strong>기획서를 제출</strong>하고, 러너들이 그 기획서를 검토 후 구현 가능성이나 매력도가 괜찮아 보이는 아이디어를 선택하는 식으로.</p><p>그러면 러너들이 아이디어를 떠올리기 위해 낭비하는 시간도 줄어들 것이고, 개발자가 부족한 외부의 초기 창업팀도 도와줄 수 있는 Win-Win 전략이 나올 수 있을 것 같다.</p><h4>2. AI 생성 이미지/영상을 안 쓰는 팀이 없다.</h4><p>2025년에 AI 생성 이미지/영상 기술이 엄청나게 발전한 건 알고 있다. 얼마 전 출시된 구글의 <a href="https://blog.google/intl/ko-kr/company-news/technology/nano-banana-pro/"><strong>나노 바나나 프로</strong></a>만 봐도 미친 성능을 보여주니까!</p><p>근데 와~ 역시 러너들이 기술 적응이 빠르다. 앱 소개 목적으로 만든 AI 이미지나 영상이 수준급이었다.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*lWP0uGfDHzmzWck1mrLGXA.jpeg" /><figcaption>&lt;픽픽&gt; 팀의 AI 생성 동영상을 활용한 앱 소개</figcaption></figure><p>이제 AI 생성 콘텐츠를 사용하는 게 <strong>NEW NORMAL</strong> 이 된 거다. 안 쓰면 오히려 생산성이 떨어지는 시대. 휴… 요즘 취준생들은 정말 배워야 할 게 많구나.</p><h4>3. 과한 일회용품 사용이 99% 줄었다.</h4><p>작년 후기에서 나는 이런 피드백을 남겼다. 러너들이 <strong>마케팅을 위해 일회용품을 조금 과하게</strong> 준비하는 것 같다고.</p><p>이게 보기엔 예뻐 보이지만, 솔직히 스티커나 팜플릿은 집에 가면 쓰레기통에 버려지는 게 현실이다. 심지어 러너들이 ‘사비’로 준비해야 하고, 다른 팀과 경쟁 심리도 자극하게 되니 지양하면 좋겠다고 생각했다.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*GxpJRstLwUHNf8FrSoImpA.jpeg" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*VLYLu-UMbns0Jj2jd9-1UA.jpeg" /><figcaption>&lt;오디오로그&gt; 팀과 &lt;탭탭&gt; 팀의 깔끔한 책상</figcaption></figure><p>올해 쇼케이스에선 이 피드백이 완전히 반영된 것 같았다. <strong>나눠주는 게 없으니, 모든 팀이 앱의 소개에만 집중했다.</strong> 방문자로서는 받는 게 없으니, 손이 가벼워서 돌아다니기도 편했다.</p><p>테이블을 과하게 꾸미는 팀도 사라졌다. 이건 정~말 좋은 변화인 듯!</p><p>마지막으로 <strong>쇼케이스25 현장 스케치 영상</strong>을 첨부한다. 다들 고생 많으셨고 수료 축하합니다!</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FjWlsB8MCfr0%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DjWlsB8MCfr0&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FjWlsB8MCfr0%2Fhqdefault.jpg&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/9c43e7b02491e446e1e4e370f839b74c/href">https://medium.com/media/9c43e7b02491e446e1e4e370f839b74c/href</a></iframe><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*jFvsmQOMgHR0mgXfXyOEuQ.jpeg" /><figcaption>일본에서 방문한 Masakaz 상과 함께!</figcaption></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=f96397083cfc" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[애플의 새로운 아이콘 제작기! <Icon Composer> WWDC25 요약 정리]]></title>
            <link>https://medium.com/@Jager-yoo/%EC%83%88%EB%A1%9C%EC%9A%B4-%EC%95%84%EC%9D%B4%EC%BD%98-%EC%A0%9C%EC%9E%91%EA%B8%B0-icon-composer-wwdc25-%EC%9A%94%EC%95%BD-%EC%A0%95%EB%A6%AC-46405ed45d0c?source=rss-f88627dad9ff------2</link>
            <guid isPermaLink="false">https://medium.com/p/46405ed45d0c</guid>
            <category><![CDATA[liquid-glass]]></category>
            <category><![CDATA[apple]]></category>
            <category><![CDATA[app-icon]]></category>
            <category><![CDATA[ios]]></category>
            <category><![CDATA[icon-composer]]></category>
            <dc:creator><![CDATA[Jaeho Yoo]]></dc:creator>
            <pubDate>Sat, 30 Aug 2025 07:01:56 GMT</pubDate>
            <atom:updated>2026-02-18T08:49:19.573Z</atom:updated>
            <content:encoded><![CDATA[<p>현대차 내부에서 최근 WWDC25 를 주제로 스터디를 진행했었는데요, 제가 맡았던 파트가 <strong>Icon Composer</strong> 였습니다.</p><p>이 스터디 자료를 조금 수정해서, 블로그에 다시 포스팅합니다.</p><p>WWDC25 에서 등장한 <a href="https://developer.apple.com/icon-composer/"><strong>&lt;Icon Composer&gt;</strong></a> 에 대한 두 편의 WWDC 영상을 정리했습니다.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2Fl-9tYm0U998%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3Dl-9tYm0U998&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2Fl-9tYm0U998%2Fhqdefault.jpg&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/b6842d5cd0063e9ed4c881e27c0ad7e4/href">https://medium.com/media/b6842d5cd0063e9ed4c881e27c0ad7e4/href</a></iframe><ul><li>iOS 26 의 아주 큰 디자인 변화. visionOS 에서 영감을 받아 liquid glass material 을 만들어냄</li><li>빛을 받아 반사되는 듯하고, 불투명도도 있고, 깊이감도 있는 앱 아이콘 만들 수 있음</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*TLniteb6IgH_M7WUubEWXQ.png" /></figure><ul><li>gyro input 에 따라 빛이 반사되는 방향이 라이브하게 바뀜.</li><li>light tint, dark tint 모드도 생김</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ZmayyeOWzS91ZU3D7rhHNA.png" /></figure><ul><li>앱 아이콘 업데이트는 iPhone, iPad, Mac, watchOS 전부 적용됨</li><li>당연히 앱스토어에서도 업데이트된 앱 아이콘으로 보임</li><li>지금까지는 플랫폼 마다 앱 아이콘의 디자인이 좀 달랐음</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*tCL3qqrGor_FCcwSxMxJJw.png" /></figure><ul><li>그런데 이제는 쉬워짐!</li><li>macOS, iPadOS, iOS → 왼쪽의 Rounded Rectangle format</li><li>watchOS → 오른쪽의 Circle format</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*3OAzuGHuki9MhdirD6FFZw.png" /></figure><ul><li>이미 심플한 구조를 가진 앱 아이콘은 아무 처리를 하지 않아도, 자동으로 새로운 디자인이 적용됨.</li><li>아래 스크린샷을 보면, 앱 아이콘 테두리가 반짝반짝 거리고 “box” 텍스트엔 입체감이 생긴 걸 볼 수 있음.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*R9I4AHNs5nD_d1ZbGIaKog.png" /></figure><ul><li>만약 아래 스크린샷의 왼쪽 처럼, 특별한 디자인을 가진 앱 아이콘은 자동으로 조정(auto adjusted) 됨</li><li>하지만, 전체 앱 아이콘 공간을 잘 쓰려면 그냥 다시 만드는 걸 추천함!</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ReFYTb1aRT7Pw8YCUjhp-w.png" /></figure><ul><li>watchOS 에서는 어떻게 보일까?</li><li>Rounded Rectangle 앱 아이콘을 둥글게 변형 → 픽셀이 1088 x 1088 로 변경됨</li><li>visual consistency 를 유지하면서 플랫폼 간의 디자인을 맞출 수 있다.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/342/1*pnWZJnG5TMrvarj6za0zdg.png" /></figure><ul><li>이 새로운 디자인 시스템을 쉽게 만들 수 있도록, 템플릿 만듦</li><li>피그마, 일러스트레이터, 스케치, 포토샵 포맷으로 뿌림</li><li>아래와 같이 피그마 템플릿을 보면, 정확한 비율과 가이드라인이 제시되어 있음.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/864/1*wWEwow4OfdQVtiNKbFZOqw.png" /></figure><ul><li>이제 앱 아이콘 구성을 알아보자!</li><li>기본적으로 아이콘은 background 와 foreground layer → 이렇게 2개 층인 것임</li><li>아래 있는 메시지 앱 아이콘 처럼!</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*txboOMjwsrQb9O8J1FBQjQ.png" /></figure><ul><li>foreground layer 가 단 1겹이더라도, 충분한 디테일이 녹아든 것을 볼 수 있음</li><li>메시지 버블에는 멋진 투명도가 들어가 있고, 살짝 그림자가 있어서 조금 떠있는 듯한 느낌도 줌</li><li>물론 배경은 한 장이지만, foreground 에는 보통 multiple layers 가 포함됨</li><li>그리고 이런 layers 를 stacking 하는 게 아주 흥미롭다.</li><li>&lt;팟캐스트&gt; 앱을 예시로 들자.</li><li>기존 팟캐스트 아이콘은 플랫한 느낌.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*xUin4U1Y1-5tskA2u73C2Q.png" /></figure><ul><li>하지만 이제는 애플의 레이어링 테크닉을 이용해서, 팟캐스트 아이콘 모양을 차곡차곡 스태킹할 수 있다.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*wiodisEfwEJ9Xgq6RdxpTQ.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Jo_S4dZt4LEgRV961uUC3g.png" /></figure><ul><li>&lt;체스&gt; 앱 아이콘은 기존엔 머티리얼 느낌이 강했음</li><li>새로 만들어진 앱 아이콘은 flat 하고 리퀴드 글래스 느낌 추가됨</li><li>&lt;미리보기&gt; 앱도 기존 대비해서 더 멋있어졌다!</li><li>그리고 좀 더 목적이 명확해짐. magnifying glasses 더 중앙에 둬서 집중할 수 있도록</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*LcWl83G2NUayHwQebwJWNA.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*7Ye1C_8OnTLbWOjKaqw1fg.png" /></figure><ul><li>translucency in blur 는 특히 아름다워 짐</li><li>만들기도 쉬움</li><li>가볍고, 디자인에 깊이감을 줄 수 있음</li><li>translucency 는 낮과 밤 둘 다 예쁘다.</li><li>투명 모드에서도 아주 예쁘다.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*1m58kwW01vZZEI2TJnWAjQ.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Kce86U5OFE4PVHAKJRzlkg.png" /></figure><ul><li>&lt;사진&gt; 앱 아이콘 보면 대박임. petals(꽃잎)들을 겹쳤을 때, 유리 처럼 서로 비치는 디자인이 아주 예쁘다.</li><li>petal 아래에 그림자가 있어서 depth 도 강조된다.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/309/1*enX8nbvmSfpf5ypT6yv9Kw.png" /></figure><ul><li>기존의 &lt;홈&gt; 아이콘을 보면, 그림자를 잘 써서 되게 입체적이다.</li><li>이 디자인에 glass icon 디자인을 적용해서 아래와 같이 리디자인했다.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*jBXsSFv6CJqOCYf2EAqdiw.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*l536ZfacthgYQ8GAQCpsiw.png" /></figure><ul><li>앱 아이콘 만들 때, 뾰족한 선은 피해라.</li><li>대신에 둥근 코너를 만들어서, 빛이 잘 반사되도록 구현해라.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*NGs_J6JE9hO15ifnuqhKFA.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*b_Vs73AXzQUaqQv_LksvfQ.png" /></figure><ul><li>작게 보이는 텍스트에는, 예외적으로 bolder line weight 을 적용해서, 글자를 두껍게 보이게 만들어라.</li><li>그러면 글자가 작아져도 가독성이 좋음!</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/289/1*6ttsOMQRf5fcBEowLkSkJw.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/309/1*Qs17q4fwJtkW0i37Cxw_zA.png" /></figure><ul><li>애플이 단순 흰색이나 검정색 배경 하지 말라고, system 배경도 준비해둠</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*DhtY6iudmfoby9WOlQfm3w.png" /></figure><ul><li>다크 모드가 예쁘니까, 라이트 모드를 반대로 되게 비비드한 컬러 백그라운드 넣기를 추천한다.</li><li>그러면 라이트 ↔ 다크 모드 전환할 때 훨씬 예쁘게 느껴지기 때문이다!</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*wsBFyLUVM1J0460qYdpd6g.png" /></figure><ul><li>이제 이어서 <strong>“Make app icons with Icon Composer”</strong> 를 보면 된다.</li></ul><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2F4usD1hP1nYY%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D4usD1hP1nYY&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2F4usD1hP1nYY%2Fhqdefault.jpg&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/6ce7fece19af45f595bbab16395662dd/href">https://medium.com/media/6ce7fece19af45f595bbab16395662dd/href</a></iframe><ul><li>다음 WWDC 영상으로 들어갑니다.</li><li>새로운 도구 <strong>&lt;Icon Composer&gt;</strong> 를 어떻게 사용하는지 알아봅시다.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*vAf_Nhf02JaSJwDvNumiSw.png" /></figure><ul><li>2025년, 테마가 다양해지며 만들어야 하는 앱 아이콘 종류가 참 많아짐</li><li>default, Dark, Clear light, clear dark, Tinted light, Tinted dark</li><li>이제 이 많은 아이콘 종류들은 단 1개의 파일로 처리 가능하게 됨</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*_ow3K1wtFtMrPosOsjpqiQ.png" /></figure><ul><li>그게 바로 Icon Composer 로 제작한 .icon 파일임</li><li>Icon Composer 로 앱 아이콘 제작하면, 매번 여러 사이즈를 대응할 필요가 없음</li><li>자동으로 아이콘의 스케일이 조정되며 대응됨!</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ILADQe9-zXb1hHROql0aAA.png" /></figure><ul><li>아이폰, 아이패드, 맥에서 보이는 아이콘은 <strong>1024 x 1024</strong> 임</li><li>와치앱에서 아이콘은 <strong>1088 x 1088</strong> 임</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/968/1*GlSqJ-AUVSDTqRgX9uHFKw.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*wQWzWMpFbwfKbk2-b8N2pQ.png" /></figure><ul><li>레이어링을 다뤄보자</li><li>아래 번역 앱을 보면, 여러 레이어링이 있지만, 테마에 따라 컬러 지정만 해주면 됨</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*HCN4BKZbGlhM72KfoOPNDQ.png" /></figure><ul><li>Icon Composer 안에는 여러 설정들도 존재함</li><li>Blur</li><li>Shadow</li><li>Specular : 반사광</li><li>Opacity : 불투명도</li><li>Translucency : 반투명도 (흐릿하게 보이는 정도 — 유리 느낌)</li><li>Opacity 와 Translucency 는 반대 개념이 아님.</li><li>Opacity 는 수치적 “불투명 정도” (1 → 완전 불투명, 0 → 완전 투명)</li><li>Translucency 는 시각적/재질적 “빛 투과 성질”을 더 강조함</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*_V_qIGxVzsnYRFR1dTU_QQ.png" /></figure><ul><li>기존에 있던 앱 아이콘을 Icon Composer 를 통해 다시 작업하고 싶다?</li><li>일단 기존 아이콘의 구성 요소 레이어들을 SVG 포맷으로 canvas 사이즈로 export 해야 함.</li><li>그래야지 Icon Composer 에 옮겼을 때 올바른 자리에 떨어지기 때문임</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*8h1Et3H-jHqjP-u7sjHLtQ.png" /></figure><ul><li>Z축 방향 순서는 파일 이름 맨 앞에 숫자를 붙여주면 됨</li><li>0 이 가장 아래, 높을수록 위로 가는 것임</li><li>물론 나중에 Icon Composer 안에서 순서는 바꿀 수 있으니 걱정 ㄴㄴ</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*HoXYyAQTxHArJcEd8XMigg.png" /></figure><ul><li>간단한 배경화면은 Icon Composer 안에서 만드는 게 나으니까, 애매하면 빼버려도 됨</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*PLeqADXkiOGhPHHArwM1pA.png" /></figure><ul><li>혹시 SVG 로 표현이 안 되는 투명도가 포함된 에셋이 있다면, PNG 포맷으로 export 해라</li><li>PNG 는 손실이 없는(lossless) 포맷이라 투명도 표현하기 좋다.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Hk-s3vOO2R5B0Iq7bzAP2g.png" /></figure><ul><li>중요한 사실, 경계선에 미리 radius 넣어서 crop 해서 export 할 필요 없다.</li><li>네모난 이미지를 첨부하면, 나중에 Icon Composer 가 자동으로 예쁘게 crop 해줄 것임</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/512/1*beMSm-hd7St23Mxu4c9T_w.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/536/1*zOv7FHmI_cQA_7fuEgG3oA.png" /></figure><ul><li>레이어를 다 준비했다면 &lt;Icon Composer&gt; 실행해보자!</li><li>일단 파란색 배경이 보일텐데, 이걸 바꾸려면, 왼쪽 side bar 에서 “home” 선택하고</li><li>우측 inspector 에서 컬러나 gradient 를 선택해서 변경 가능!</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*NmQezsjqzpY9bzf02r9zvw.png" /></figure><ul><li>아까 export 해놨던 에셋들을 가져와서 왼쪽 side bar 에 드래그 앤 드랍해보자</li><li>알파벳 순서대로 정렬이 될 것임</li><li>만약 파일 이름 앞에 숫자를 Z 순서대로 붙였다면, 그 순서가 유지된다.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/321/1*nUT-v1OQ-QfOd4U9aFr-7g.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/348/1*cbbDU0w5G_tAwUAAFLSKug.png" /></figure><ul><li>에셋을 넣으면 <strong>“Group”</strong> 이 생기는데, 이 그룹 단위로 glass 효과를 가짐</li><li><strong>Group 은 최대 4개 까지 생성 가능함</strong></li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*szmPLfJBajYMgnBb9N9INg.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*vUfqq8_kpxLgRW15oM2SYg.png" /></figure><ul><li>Icon Composer 앱의 아래를 보면, 플랫폼이나 Appearances 를 바꿀 수 있음</li><li>Default(Light), Dark, Mono</li><li>모노는 Clear Light, Clear Dark, Tinted Light, Tinted Dark 4개로 바꿔볼 수 있음</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*4iZGXqvUVC0yWPuTfo9NMg.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*99Sy9t12qrUfB7BAfmnOwQ.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*iTwmedOjxx1MRgVxhLt-pw.png" /></figure><ul><li>인스펙터로 가면, 레이어에 적용된 효과를 바꿀 수 있음</li><li>기본적으로 “Liquid Glass Effects” 토글이 ON 상태임. 원한다면 끌 수 있음.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*55-xwg-2nvXuEEONailqLA.png" /></figure><ul><li>불투명도나 Blend Mode, Fill color 등을 바꿀 수도 있음</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*0f6GDU_gEn252iXX9O9nsQ.png" /></figure><ul><li>만약 “Group” 레벨로 바꿔본다면, 인스펙터에 못 보던 게 생김 (Liquid Glass)</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*4ET8eDIr4QGwGp3KyoR85w.png" /></figure><ul><li>Liquid Glass 효과는 바리언트가 달라져도 똑같이 가도 되지만</li><li>만약 특정 바리언트 마다 조금 다르게 주고 싶다면, 아이콘에 마우스 hover 하면 <strong>Vary</strong> 할 수 있는 옵션이 뜰 것임</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*gPBJoa18yVf6McocItTtAA.png" /></figure><ul><li>실전 예시를 들어보자, &lt;캘린더&gt; 앱 상단에 “Wed” 란 글자에 <strong>Specular</strong> 효과가 들어가서, 조금 pillowy 해보인다면 (베개처럼 보인다면)</li><li>“Group” 을 찾아서 Specular 토글을 꺼버리면 좀 더 가독성이 좋아진다.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Mm84mPsgvHIdlzkzyBPfmg.png" /></figure><ul><li>Shadow 효과의 옵션 중에서는 <strong>“Chromatic”</strong> 이란 게 있음</li><li>그림자인데, 컬러가 들어간 그림자임. 떠있는 요소의 컬러가 자동으로 그림자 컬러로도 반영되는 효과</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*2rcr61LZohid5YZS5v5fkQ.png" /><figcaption>(Chromatic) 핑크색 하트 아이콘 아래에 핑크색 그림자가 약간 보임</figcaption></figure><ul><li>다크 모드에서는 고민해야 하는 지점이 있음</li><li>배경색이 바뀌면, 라이트 모드 때 컬러가 제대로 안 보이고 묻히는 경우도 있기 때문에, 라이트와 다크 때 각각 다른 컬러로 바꿔주는 것도 중요함</li><li>(왼쪽) 라이트 모드 때 쓰던 라벨 컬러 그대로 다크 모드로 가져오니까 가시성이 뚝 떨어짐</li><li>(오른쪽) 하지만 라벨 컬러를 좀 더 밝은 Red 로 바꿔주니 가시성 좋아짐</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Anlt7AXHOnHFVywOV5KukA.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*liGzu5u2oBNgehgsY-uoPg.png" /></figure><ul><li>만약 아래의 loupe 이미지 같은 PNG 포맷을 사용해야 한다면, 컬러를 채울 수 없으니까</li><li>다크 모드에서 쓰는 별도의 PNG 이미지로 분기처리를 하면 됨</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*7grhIggWUZDCIiWC1s9WuQ.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Vv7ivjRcisLNOvcYalW24Q.png" /></figure><ul><li>Mono 톤에서는 최소 하나의 요소는 ‘흰색’ 으로 해라</li><li>보통 가장 중요하고 눈에 띄는 부분에 흰색 바르면 됨</li><li>다른 색상들은 grayscale 로 작업하면 됨</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*WLlyVpCYiMf4gxvWgT-Oig.png" /></figure><ul><li>RoundedRectangle 아이콘과 watchOS 아이콘을 위한 Circle 아이콘 사이에 별다른 처리는 필요 없음</li><li>Icon Composer 가 자동으로 처리해주기 때문임</li><li>watchOS 를 위한 아이콘은 <strong>1024 x 1024</strong> 가 아니라 <strong>1088 x 1088</strong> 로 살짝 크기 때문에 주의할 점이 생기기도 함</li><li>‘건강’ 앱 처럼, 우측 상단에 ❤️ 레이어가 있는데, Circle 로 컷 할 때 조금 더 중앙에 가까워지도록 X, Y 축 방향으로 -13pt 씩 땡겨온 예시</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*EWIg7YYhlWbkBXG9vdVS6Q.png" /></figure><ul><li>Siri 앱을 보면, 배경이 canvas 끝에 딱 닿아있음</li><li>1024 x 1024 그대로 watchOS 아이콘으로 변환되면, 1088 x 1088 이 되면서 끝에 여백이 생김</li><li>따라서 watchOS 에서는 <strong>106.25%</strong> 확대시켜주는 분기를 적용하면 canvas 끝에 딱 닿아서 예쁨</li><li>왜 106.25% 냐면, 1088 / 1024 에 해당하는 숫자임</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*urFUXkFqaeixRGIzzmwGOQ.png" /></figure><ul><li>Icon Composer 상단에 보면 <strong>배경</strong>을 바꿀 수 있는 버튼도 있음</li><li>이 버튼을 이용해서 <strong>legibility</strong> 를 테스트해보자!</li><li>참고로 legibility 와 readability 는 뜻이 다름</li><li>legibility: 시각적인 관점에서 식별 가능성</li><li>readability: 글을 읽는 관점에서 얼마나 술술 읽히는 좋은 글인지</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*VmGQ-QhfjQF_99aOOCDRBQ.png" /></figure><ul><li>가상의 그리드를 만들거나, 빛이 내려오는 방향도 각도계를 통해 조절할 수 있음</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*nNzRmx1dcx7OG3JUYUHOLQ.png" /></figure><ul><li>아이콘을 다 완성했다면, <strong>`.icon`</strong> 파일을 저장하면 된다.</li><li>그리고 Xcode 의 프로젝트 에디터에 드래그 앤 드랍하고 선택해라.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*kAi59vdVdaEbDy9_sTe6lA.png" /></figure><ul><li>Icon Composer 로 더 짧은 시간으로 더 멋진 앱 아이콘 만들어보자!</li><li>그리고 포토샵으로 glass effects 구현하려고 고생하지마라. 편한 거 만들어뒀으니 이거 써라!</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*SlZc3UtaG_boahk90JxBdg.png" /></figure><ul><li>기존의 아이콘 디자인은 그저 단순한 이미지들이었지만</li><li>이제는 expressive, multi-layered artworks 로 진화한다.</li><li>유저 인풋과 주변 환경에 반응한다.</li><li>애플 디바이스에서 훨씬 멋지고 풍부하게 보일 것이다.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*8RdjoeFtZ81QIsQ6DGiOPw.png" /></figure><ul><li>Icon Composer 는 베타 버전으로 바로 사용 가능!</li><li><a href="https://developer.apple.com/icon-composer/">https://developer.apple.com/icon-composer/</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=46405ed45d0c" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[영어 공부 열심히 해서 Speak(스픽) 대표 만난 썰]]></title>
            <link>https://medium.com/@Jager-yoo/%EC%98%81%EC%96%B4-%EA%B3%B5%EB%B6%80-%EC%97%B4%EC%8B%AC%ED%9E%88-%ED%95%B4%EC%84%9C-speak-%EC%8A%A4%ED%94%BD-%EB%8C%80%ED%91%9C-%EB%A7%8C%EB%82%9C-%EC%8D%B0-40f97a9cca14?source=rss-f88627dad9ff------2</link>
            <guid isPermaLink="false">https://medium.com/p/40f97a9cca14</guid>
            <category><![CDATA[speak]]></category>
            <category><![CDATA[ios]]></category>
            <category><![CDATA[영어]]></category>
            <category><![CDATA[스픽]]></category>
            <category><![CDATA[duolingo]]></category>
            <dc:creator><![CDATA[Jaeho Yoo]]></dc:creator>
            <pubDate>Thu, 31 Jul 2025 15:27:04 GMT</pubDate>
            <atom:updated>2025-07-31T15:27:04.688Z</atom:updated>
            <content:encoded><![CDATA[<p>제 Medium 블로그에서 두 번째로 조회수가 높은 글은 아이러니하게도 개발 글이 아닙니다. 바로 <strong>“개발자의 영어 공부”</strong> 글입니다. (아래 링크)</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*F377y1smizWsXqQPwaRPfQ.png" /></figure><p><a href="https://medium.com/@Jager-yoo/%EA%B0%9C%EB%B0%9C%EC%9E%90%EB%8A%94-%EC%98%81%EC%96%B4-%EA%B3%B5%EB%B6%80-%EC%96%B4%EB%96%BB%EA%B2%8C-%ED%95%B4%EC%9A%94-b477653847e7">개발자는 영어 공부 어떻게 해요?</a></p><p>위 글에서는 <strong>&lt;말해보카&gt;</strong> 앱을 중심으로 얘기했어요. 실제로 제가 가장 오랫동안 streak 를 유지하고 있는 앱이 말해보카입니다.</p><p>근데 저는 말해보카 외에도 <strong>&lt;스픽&gt;</strong> 과 <strong>&lt;듀오링고&gt;</strong> 도 매일 하고 있습니다. 스픽으로는 영어 공부를 하고, 듀오링고로는 독일어/일본어 공부를 해요. (개인적으로 듀오링고의 영어 학습 콘텐츠는 별로라고 생각)</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*DS9hiBhub-OPu8n9i87Zfw.png" /></figure><p>마켓에서 제일 잘 나가는 외국어 앱을 매일 하고 있으니, 자연스럽게 이런 language learning apps 의 이해도가 높고 각 앱의 장단점도 아주 잘 알고 있습니다.</p><p>&lt;스픽&gt; 앱은 streak 를 높게 유지하는 유저를 대상으로 <strong>베타 테스터</strong>를 운영하고 있습니다. 저는 24년 7월부터 베타 테스터로 참여하고 있어요. 가끔 신기능이 출시되거나 디자인이 변경되면, 먼저 사용해 보고 스픽에게 솔직한 의견을 전달하고 있습니다.</p><p>제 직업이 iOS 개발자이기 때문에, 독특하게도 <strong>“개발자이자 사용자의 피드백”</strong> 을 전달할 수 있었습니다.</p><p>그렇게 지내던 중, 25년 7월에 우연히 <strong>스픽 CEO</strong> 와의 온사이트(현장) 인터뷰를 제안받게 됩니다.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*mG5nua9JkSe_03O1JYF-0Q.png" /><figcaption>갑자기?!</figcaption></figure><p>기존에 참여하던 베타 테스트는 그냥 인터뷰도 없이 피드백을 텍스트로 적어 제출하는 게 전부였는데, 갑자기 대표랑 인터뷰라니. 그리고 대표는 미국인이잖아… 😓</p><p>걱정이 앞섰지만, 한국인 팀원이 들어와서 통역을 도와준다고 하니 안심이었습니다. 무엇보다 거절할 이유가 없었어요. 매일 사용하는 앱의 대표랑 만나서 대놓고 피드백할 수 있는 기회니까요.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*uz5XV0GZhbjpifNwj8O2pg.jpeg" /><figcaption>스픽 성수동 오피스 방문</figcaption></figure><p>그렇게 저는 <strong>“실리콘 밸리의 유니콘 스타트업”</strong> — 스픽의 대표 <strong>Connor Zwick</strong> 하고 만났어요. 유저 인터뷰는 1시간이 조금 넘게 진행됐고 정말 재밌게 많은 얘기를 나눴습니다.</p><p>제가 인터뷰 때 전달한 내용은 아래 간단한 메모로 정리했어요. 재미로 읽어보시면 좋겠습니다!</p><ul><li>제가 마켓의 여러 언어 앱을 다 하는 사용자라서, 다른 앱 대비 스픽의 장단점이나 AI 튜터 기능에 대해 피드백을 꽤 했는데요, 대표가 정말 열정적으로 되묻고, 메모하고, 직접 화면도 같이 보면서 확인하려고 하고… 왜 스픽이 유니콘이 되었는지 그 이유를 알 것 같더라구요.</li><li>제가 지난 3년 동안 영어 실력이 많이 좋아지긴 했으나, 그건 오로지 스픽 때문이라고 보긴 어렵고 복합적인 이유일 겁니다. (이것저것 영어 공부 열심히 함) 근데 항상 유창성 수준의 천장을 느끼고 있고, 그걸 break through 해서 더 성장하려면 아이러니하게도 <strong>오프라인 학원</strong>같이 네이티브들과 아이 컨택하며 두려움을 극복하고 쫄지 않는 연습이 필요할 거 같다고 얘기했습니다. 스픽의 비전이 오프라인 영어 학원을 대체하는 것이기 때문에, 아이러니한 것입니다. ㅎㅎ</li><li>지금의 스픽 AI 튜터는 너무 착하고, 뻔하다고 말했습니다. 요즘 GPT 대답 meme 도 있잖아요? <strong>“너 정말 **핵심** 을 찔렀어.”</strong> 같은 거요. 스픽 AI 도 비슷하거든요. 일단 리액션을 먼저 하고, 그다음에 착한 질문을 하고… 이런 방법으로만 영어를 학습하다가, 갑자기 미국에 가면 네이티브 스피커들의 무자비한 영어에 놀라게 되고, 오히려 더 벽을 느낄 수 있다는 경험담을 얘기했습니다.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*4_M-3t9A6O8hi-kH" /><figcaption>GPT 말투 특징</figcaption></figure><ul><li>결국 AI 튜터가 더 공격적이고, 다양한 성격 모드를 가져야 한다고 얘기했습니다. 머스크의 Grok 이 최근 출시한 AI waifu 기능처럼, 정말 대화를 하고 싶게 만드는 특별한 AI 튜터가 되면 좋겠습니다. 이를 위해 <strong>unexpectedness</strong> 와 <strong>randomness</strong> 가 가미된 ‘하드 모드’를 추가하면 좋겠다고 얘기했습니다.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*-dBzdMWndAaUqZt0.png" /><figcaption>Grok waifu</figcaption></figure><ul><li>그 외에도 앱의 디자인(UI, UX)에 대한 얘기도 했지만, 결국엔 외국어 학습에서 <strong>AI 튜터</strong>의 방향성에 대한 대화를 많이 했습니다.</li><li>인터뷰가 마무리될 때, 가장 궁금했던 질문을 던졌습니다. <strong>“왜 저를 인터뷰에 초대했나요?”</strong> 혹시 저의 직업이나 배경에 대해 알고 있냐구요. 근데 놀라운 건, 스픽은 제 직업이나 나이, 다니고 있는 회사도 몰랐습니다. 스픽을 열심히 사용하는 베타 테스터 중에서 선발했다고 합니다.</li><li>그래서 제가 iOS 개발자임을 얘기하고, 좀 더 기술적인 얘기도 나눴습니다. 저는 스픽 대표인 Connor 의 창업 이야기를 알고 있습니다. 그도 처음에는 iOS 개발자였거든요.</li><li>인터뷰 후에는 같이 기념사진도 찍었습니다. ㅎㅎ</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/752/1*MJG_xgMbn1hoQ3amFdLPfg.png" /><figcaption>인터뷰 후에 업로드한 인스타그램 스토리</figcaption></figure><p>그렇게 인터뷰를 다녀오고, 일주일 사이에 스픽 앱의 AI 튜터 버튼 위치, 스마트 리뷰 기능의 업그레이드 등 아주 빠르게 업데이트가 나왔습니다. 아마 저의 피드백만으로 업데이트가 이뤄진 게 아니라, 많은 사용자들의 피드백을 반영한 것이겠죠.</p><p>알고 계셨나요? 스픽이 이제는 영어뿐만 아니라, 해외 사용자들을 대상으로 스페인어, 불어, 한국어, 일본어, 이탈리아어 교육도 시작했습니다.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/824/1*zIV1fy8QYHnUq6ueT7zU9Q.png" /><figcaption>사용 언어를 English 로 바꾸면 나오는 리스트</figcaption></figure><p>스픽도 듀오링고 처럼 글로벌 언어 시장을 노립니다. 두 앱의 학습 경험은 분명 다릅니다. 장단점도 명확하구요. 앞으로 둘의 대결이 기대됩니다. 저는 그럼 다시 스픽을 하러 가야겠네요.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=40f97a9cca14" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[How to get watchOS device model name, size, GPS/Cellular]]></title>
            <link>https://medium.com/@Jager-yoo/how-to-get-watchos-device-model-name-size-gps-cellular-a1810dfccd58?source=rss-f88627dad9ff------2</link>
            <guid isPermaLink="false">https://medium.com/p/a1810dfccd58</guid>
            <category><![CDATA[logging]]></category>
            <category><![CDATA[apple-watch]]></category>
            <category><![CDATA[ios]]></category>
            <category><![CDATA[amplitude]]></category>
            <category><![CDATA[watchos]]></category>
            <dc:creator><![CDATA[Jaeho Yoo]]></dc:creator>
            <pubDate>Mon, 14 Jul 2025 18:17:11 GMT</pubDate>
            <atom:updated>2025-09-22T05:29:59.217Z</atom:updated>
            <content:encoded><![CDATA[<blockquote><em>Updated to support Apple Watch Series 11, Ultra 3, and SE 3rd-gen.</em></blockquote><p>In my last post I talked about the tools you can use for event logging on watchOS.</p><p><a href="https://medium.com/@Jager-yoo/logging-in-watchos-369a53e95cc6">Need watchOS Event Logging?</a></p><p>If your watchOS does not have a logging system yet or you are just getting started I recommend <a href="https://github.com/amplitude/Amplitude-Swift"><strong>Amplitude</strong></a>. If for some reason you end up going with <strong>Firebase Analytics</strong> then good luck.</p><p>In that case you will need to send your watchOS logs to the <strong>companion iOS app</strong> and let the iOS app handle sending them on behalf of watchOS.</p><h3>Here is the catch:</h3><p>here is no built-in way for the iOS app to retrieve the paired watch’s model name. You have to include the model name yourself when sending logs from watchOS to iOS.</p><p>Does getting the <strong>device model name</strong> seem easy to you? That just means you have not spent enough time on watchOS.</p><p>Let’s start by printing <a href="https://developer.apple.com/documentation/watchkit/wkinterfacedevice/name"><strong>WKInterfaceDevice.current().name</strong></a> on watchOS. You will see different results in the simulator versus on a real device.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/778/1*gGUQxdqtDx_grEcc22fkEw.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*RLE0pFUh7roYdvC0ern3rA.jpeg" /><figcaption>Simulator vs Real watch</figcaption></figure><p>In the simulator, you get the correct device model name. But on a real device, it only shows “Apple Watch.”</p><p>If you use <strong>Amplitude</strong> on watchOS, you can track the device model name without any extra code. I tested it myself, and when logs are sent from a real device, Amplitude records the exact Apple Watch model name.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*re5mt6LeRnW2vBDHrYdrzw.png" /></figure><p>There is a catch, though. You also lose details like <strong>case size</strong> or whether it’s a <strong>GPS or Cellular</strong> version.</p><p>In many cases you don’t need that level of detail, but it never hurts to know exactly which Apple Watch you’re dealing with.</p><p>So how do you get the precise watchOS device model name?</p><h3>The answer is simple:</h3><p>Use the code I wrote. I’m sharing it right here.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/a6a2e374f351bd0ee5da6266f574c539/href">https://medium.com/media/a6a2e374f351bd0ee5da6266f574c539/href</a></iframe><p>This code is really simple to use. I’ll show in <strong>red text</strong> how it appears in the simulator versus on a real device.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/778/1*C4YS66VoPQEDA-Ox8BV6NA.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*49x9val78j6ojgM7ORWGZA.jpeg" /><figcaption>See? You can accurately check the <strong>case size</strong> and whether it’s a <strong>GPS or Cellular</strong> model.</figcaption></figure><p>I checked out <a href="https://github.com/devicekit/DeviceKit"><strong>DeviceKit</strong></a>, that popular library with over <strong>4.6k</strong> stars, and I think it hasn’t been very well maintained.</p><p>It even lacks support for Apple Watch Series 9 models. I submitted a PR to add them, but a month has passed with no response. That’s a bummer.</p><p><a href="https://github.com/devicekit/DeviceKit/pull/448">https://github.com/devicekit/DeviceKit/pull/448</a></p><h4>My code already includes the latest Apple Watch models.</h4><p>I’ll keep it updated as new watches come out, but even if I don’t, adding them yourself will be really easy.</p><p>When a new Apple Watch model is released, just refer to the link below to update it. Good luck!</p><p><a href="https://appledb.dev/device-selection/Apple-Watch.html">Device Selection (Apple Watch)</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=a1810dfccd58" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Need watchOS Event Logging?]]></title>
            <link>https://medium.com/@Jager-yoo/logging-in-watchos-369a53e95cc6?source=rss-f88627dad9ff------2</link>
            <guid isPermaLink="false">https://medium.com/p/369a53e95cc6</guid>
            <category><![CDATA[logging]]></category>
            <category><![CDATA[ios]]></category>
            <category><![CDATA[watchos]]></category>
            <category><![CDATA[amplitude]]></category>
            <category><![CDATA[google-analytics]]></category>
            <dc:creator><![CDATA[Jaeho Yoo]]></dc:creator>
            <pubDate>Sun, 30 Mar 2025 14:59:33 GMT</pubDate>
            <atom:updated>2025-04-10T08:11:50.280Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*b-yS9DGj5s3mIBHPovnN_g.png" /><figcaption>generated by GPT</figcaption></figure><p>If you’re building an app, logging user events to understand how people use your app is essential.</p><p>For iOS developers, the most common choice would be <a href="https://github.com/firebase/firebase-ios-sdk"><strong>Firebase Analytics</strong></a>. But there’s a challenge if you’re like me, someone who also build <strong>watchOS</strong> apps.</p><p><strong>Firebase Analytics doesn’t support watchOS.</strong> I actually tried importing it into my watchOS target, but it just doesn’t work.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*zHABc_tCcDg0mqWHpNgBLw.png" /></figure><p>I develop various extensions such as Widgets, App Intents, and watchOS apps.</p><p>Firebase Analytics works fine on Widgets and App Intents, but strangely it doesn’t support watchOS.</p><p>Because of this limitation, if you want to log user actions on watchOS, you need to send the actions from the <strong>watch app → companion iOS app</strong>.</p><p>Then the iOS companion can send logs <strong>‘on behalf of’</strong> watchOS. Just like a proxy!</p><p>However, this solution is complicated to build and difficult to debug. And more importantly, if you have a standalone watchOS app (without an iOS companion), you can’t log anything at all.</p><h3>The cleanest solution is to use <strong>Amplitude</strong>.</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*hDSVeBwHNXF7U0DlcfAcPg.png" /></figure><p><a href="https://github.com/amplitude/Amplitude-Swift"><strong>Amplitude</strong></a> officially supports not only iOS but also watchOS, macOS, and tvOS.</p><p><a href="https://community.amplitude.com/product-updates/amplitude-ios-support-for-watchos-233">Amplitude-iOS support for WatchOS | Community</a></p><p>I tested this myself, and logging watchOS events using the Amplitude SDK was really easy.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*PGi3PzusJjv3fqg1JCqtJw.png" /></figure><p>Even if your app is a standalone watchOS app, it still works fine.</p><p>If there’s any difficulty, it won’t be technical thing.</p><p>If your company already uses Firebase Analytics, you’ll face an <strong>extra</strong> challenge — like persuading coworkers, refactoring code, or migrating existing data.</p><p>But if you’re a startup, or your watchOS app is important, I strongly recommend starting with <strong>Amplitude</strong> from the beginning.</p><h3>Conclusion</h3><p>Firebase Analytics, a common logging tool, does not officially support watchOS.</p><p>If you want to log events on watchOS, I recommend using <strong>Amplitude</strong>. It’s even easier and more elegant from a technical perspective.</p><p>If you check Firebase Analytics’ repository, you’ll see it says watchOS is “partially supported.”</p><p>However, this support isn’t official from Firebase. It’s only available because of open-source contributions.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*1ZUltHdxGvS-wWuGwTLCAQ.png" /></figure><p><a href="https://github.com/firebase/firebase-ios-sdk/tree/main/Example/watchOSSample">firebase-ios-sdk/Example/watchOSSample at main · firebase/firebase-ios-sdk</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=369a53e95cc6" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[현대자동차 iOS 개발자 — 2년 차 회고]]></title>
            <link>https://medium.com/@Jager-yoo/%ED%98%84%EB%8C%80%EC%9E%90%EB%8F%99%EC%B0%A8-ios-%EA%B0%9C%EB%B0%9C%EC%9E%90-2%EB%85%84-%EC%B0%A8-%ED%9A%8C%EA%B3%A0-d5006d774ec1?source=rss-f88627dad9ff------2</link>
            <guid isPermaLink="false">https://medium.com/p/d5006d774ec1</guid>
            <category><![CDATA[현대자동차]]></category>
            <category><![CDATA[ios]]></category>
            <dc:creator><![CDATA[Jaeho Yoo]]></dc:creator>
            <pubDate>Sun, 16 Mar 2025 09:15:15 GMT</pubDate>
            <atom:updated>2025-03-16T09:15:15.162Z</atom:updated>
            <content:encoded><![CDATA[<h3>현대자동차 iOS 개발자 — 2년 차 회고</h3><p>며칠 전, 2025년 3월 13일이 현대차 입사 2주년이었다.</p><p>내 블로그에서 가장 조회수가 잘 나오는 글 중 하나가, <strong>현대차 이직 3개월 차 회고 글</strong>이라는 재밌는 사실 ㅎㅎㅎ</p><p>이번 2주년을 작게 기념하며 2년 차 회고를 써본다.</p><p><a href="https://medium.com/@Jager-yoo/%ED%98%84%EB%8C%80%EC%9E%90%EB%8F%99%EC%B0%A8-ios-%EA%B0%9C%EB%B0%9C%EC%9E%90-%EC%9D%B4%EC%A7%81-3%EA%B0%9C%EC%9B%94-%EC%B0%A8-%ED%9A%8C%EA%B3%A0-e0d59ee3157">현대자동차 iOS 개발자 이직 — 3개월 차 회고</a></p><p>위 글에서 현차 입사하고 2주 만에 바로 특근을 했다고 썼었는데, 특근은 요즘에도 하고 있다. ㅎㅎ 솔직히 좀 바쁘다가 여유로운 기간도 생겨서 팀원들과 같이 스터디도 하고 ~ 사이드 프로젝트 아이디어도 나누고~ 이럴 줄 알았다.</p><p>하지만 2년 동안 ‘계속’ 바빠지기만 했고 업무 난이도도 우상향만 했다.</p><p>왜 그랬을까? 푸념하듯 써본다.</p><p>일단 우리 팀이 다뤄야 하는 <strong>앱의 종류</strong>가 늘었고, <strong>앱의 권역(Region)</strong>이 늘었고 <strong>차종</strong>이 많아졌다. 차종이 많아졌다는 게 어떤 말이냐면, 예를 들어 테슬라는 전부 ‘전기차’ 만 있고 내연기관 차량은 없다. 그리고 그 전기차도 종류가 소수다. (모델 S, 3, X, Y, 사이버트럭)</p><p>하지만 현대는 내연, 전기, 하이브리드, 수소차가 있고 같은 내연이더라도 오래 전 차량과 최근 차량들의 차량 스펙이 다르다. 여기에 버스/트럭 상용차들도 다룬다.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*XIytbrZXI_wS5Um3E-_8eg.png" /></figure><p>국내와 유럽은 차량 사양과 법규가 다르다. 그래서 한국에서는 노출해야 하는 기능이지만 외국에서는 막아야 하는 기능, 텍스트가 달라져야 하는 기능도 많다.</p><p>23년도에는 다국어 처리도 없이 그저 깔끔하게 한국어만 지원했었는데, 이제는 다국어를 20개 다루고 있다.</p><p>다국어와 함께 <strong>단위/온도 분기</strong>도 있다. 북미는 km 안 쓰고 mile 쓰고, 섭씨 안 쓰고 화씨 단위를 사용하니까. 아..</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/788/0*IFDz8KAHYnYFt6_Y.jpg" /></figure><p>이렇게 어마어마한 소프트웨어 복잡도와 분기 처리를 고려하면서 일하다 보니, 머리가 지끈지끈하다.</p><p>그 외에도 테스트를 하다 보면, 차량 하드웨어에 문제가 있을 때도 있다. 클라이언트와 서버 모두 잘 해놨는데, 정작 버그의 범인은 차량일 때도 있다. 범인이 서버일 때도 있다.</p><p>마지막으로 앱 개발의 오너십이 우리 팀에 온전히 있지 않다. 이게 가장 믿기 힘든 부분인데, 설명하기도 어려우니 일단 넘어간다.</p><p>현대 서버에 대해서도 할 말이 많지만 비난이 될 수 있기에 쓰진 않겠다. 다들 자신의 자리에서 최선을 다 하고 있을 거라 생각한다.</p><p>난 입사 초반엔 앱과 위젯을 같이 하다가, 이제는 위젯/watchOS/인텐트(단축어) 위주로만 하고 있다.</p><p>전부 iOS 앱이 아니라, Extension 들이다. 그렇다. 나는 그렇게 <strong>DLC 전문가</strong>가 되었다. 는 농담이고, 아직 멀었다. ㅋ.. 위젯이나 와치나 인텐트나 굉장히 tricky and flaky 하기 때문에 열 받을 때가 많고 가끔은 좌절한다.</p><p>특정 OS 버전이나, 특정 아이폰 디바이스에서만 나오는 버그도 있는데, 이건 진짜 어떻게 고칠 방법을 찾기 힘들다. 재현도 어렵다. 그런 고객 VOC 가 들어오면 진짜 난감하다. 애플을 탓하고 싶지만, 고객들은 그런 걸 믿지 않아서 더 힘들다.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*wCgNaPFncb3_S9FtMSOGtw.png" /><figcaption>레츠스위프트 뉴스레터 (제122호)</figcaption></figure><p>지난 레츠스위프트 뉴스레터(제122호) 에서 공감이 많이 되는 기사가 있었는데, 애플이 최적화보다 기능 추가에만 집중해서, 소프트웨어 품질 문제가 있다는 말이다.</p><p><a href="https://www.eliseomartelli.it/blog/2025-03-02-apple-quality">Apple&#39;s Software Quality Crisis: When Premium Hardware Meets Subpar Software</a></p><p>이 글은 좀 제너럴한 내용이지만, 개발자 관점에서 미완성 상태로 느껴지는 프레임워크들이 있다. iOS 17 에서 나온 <strong>Interactive Widget</strong> 이 특히 그렇다. 아무튼 애플이 기존 프레임워크 버그들 좀 빨리 잡아주면 좋겠다.</p><p>그래도 현대차에서 개발하며 좋은 점이 있다면, 내가 만든 앱이 글로벌로 나간다는 거다. 흐미.. 내가 만든 기능이 전 세계로 진짜 나가도 되나? 부담될 때도 있지만, 책임감과 자부심을 가지려 노력하고 있다.</p><p>가끔씩 엄마나 와이프한테는 익살스럽게 과장해서, <strong>“나는 국가와 전 세계를 위한 일을 한다.”</strong> 고 표현할 때가 있는데, 생각해보면 진짜 그렇다.</p><p>일주일 뒤에 다시 독일에 2주 출장을 떠난다. 작년엔 2월에 다녀왔는데, 1년 만에 다시 독일에 간다. 올해도 무사히 다녀오고 싶다.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=d5006d774ec1" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[2년 묵은 개인 앱 <Chopinate!> 업데이트 이야기]]></title>
            <link>https://medium.com/@Jager-yoo/2%EB%85%84-%EB%AC%B5%EC%9D%80-%EA%B0%9C%EC%9D%B8-%EC%95%B1-chopinate-%EC%97%85%EB%8D%B0%EC%9D%B4%ED%8A%B8-%EC%9D%B4%EC%95%BC%EA%B8%B0-c882210a6f5f?source=rss-f88627dad9ff------2</link>
            <guid isPermaLink="false">https://medium.com/p/c882210a6f5f</guid>
            <category><![CDATA[chopinate]]></category>
            <category><![CDATA[piano]]></category>
            <category><![CDATA[gamekit]]></category>
            <category><![CDATA[ios]]></category>
            <category><![CDATA[amplitude]]></category>
            <dc:creator><![CDATA[Jaeho Yoo]]></dc:creator>
            <pubDate>Sun, 02 Mar 2025 14:58:45 GMT</pubDate>
            <atom:updated>2025-03-03T05:38:25.222Z</atom:updated>
            <content:encoded><![CDATA[<p>저는 지난 2022년 9월에 피아노 악보 읽기 연습 앱 &lt;Chopinate!&gt; 를 출시했습니다.</p><p><a href="https://medium.com/@Jager-yoo/%EC%B2%AB-%EB%B2%88%EC%A7%B8-%EA%B0%9C%EC%9D%B8%EC%95%B1-chopinate-%EC%B6%9C%EC%8B%9C-%EC%9D%B4%EC%95%BC%EA%B8%B0-5d706f98271b">첫 번째 개인앱 &lt;Chopinate!&gt; 출시 이야기</a></p><p>당시의 기술 스택은 아래와 같습니다.</p><ul><li>최소 버전: iOS 16</li><li>100% SwiftUI</li><li>그래프를 그리기 위한 Swift Charts 프레임워크</li><li>Local DB: Realm</li><li>Remote DB: Firebase Realtime Database</li><li>피아노 사운드: GarageBand 를 통해 추출한 57개의 mp3 파일</li></ul><p>최소 기능을 담은 심플한 앱이었지만, 오가닉하게 다운로드가 꾸준하게 나오는 게 은근 기분이 좋았습니다. 개발자가 자신의 앱을 잊으면 안 되기에, 저도 가끔은 실행해서 악보 읽기 연습을 하곤 했어요.</p><p>지난 2년 동안 업데이트를 아~주 가끔씩 소소하게만 했었어요. 그러다 24년 12월, 연말 연휴 기간 동안 집중적으로 큰 업데이트를 준비했습니다.</p><h3>전체적인 디자인 개선</h3><p>&lt;Chopinate!&gt; V1(Version 1) 디자인이 플랫하고 단순했다면 V2 에서는 화려하면서도 고급스러운 분위기를 주고 싶었습니다.</p><p>그래서 화려한 그라데이션으로 배경을 장식했고, 폰트는 전부 세리프(serif)로 교체했습니다. 앱 아이콘까지 다 바꿨습니다.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*3cdbtr_mZdApjmLqmAT1Jw.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*OQJcsIUPP379tgkck61rug.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*uLodVPoup70QBiREjFqi5g.png" /><figcaption>메인 화면 변천사</figcaption></figure><p>위 스크린샷을 보시면, 큰 차이가 느껴지죠? ㅎㅎㅎ</p><p><strong>라이트/다크 모드</strong>에 신경을 많이 썼습니다. 뭔가 한국에서 만든 앱이 아니라, 완전히 외국앱 처럼 디자인 하고 싶었어요. 실제로 지인들로부터 그런 평가를 많이 들어서 기분이 좋았습니다.</p><h3>LocalDB 를 Realm → SwiftData 으로 전환</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*GnPjxxVk7ELlIMkS1iJkDA.png" /><figcaption>Realm 의 Deprecation 소식</figcaption></figure><p>2024년 9월에, LocalDB 로 사용하고 있던 <a href="https://github.com/realm/realm-swift">Realm 의 Deprecation 소식</a>을 접했습니다. 당장 사용을 못하게 되는 건 아니었지만, 업데이트가 중단되는 건 확실했어요.</p><p>역시 애플의 퍼스트 파티를 사용하는 게 좋겠다는 생각이 들었고, 이왕에 새로 나온 <a href="https://developer.apple.com/documentation/swiftdata/">SwiftData</a> 로 모델링을 바꿔보기로 결심했습니다.</p><p>이 과정에서 <strong>ChatGPT o1</strong> 의 도움을 많이 받았습니다. 앱의 기능을 구체적으로 설명하고 그에 맞는 모델링을 부탁하니 발군의 성능을 보여줬습니다.</p><h3>사운드 폰트(sf2) 적용</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*PymO96TF-og2GmzMuMp33A.png" /><figcaption>사운드폰트란? (출처: 나무위키)</figcaption></figure><p>가장 큰 업데이트 중의 하나는 피아노 소리를 내기 위해 사용하던 57개의 mp3 파일을 모두 삭제해서 앱의 용량을 30% 가량 줄였습니다.</p><p>대신 <strong>‘사운드 폰트’</strong>를 사용했는데요. 사운드 폰트는 저도 처음 알게된 신기한 개념이었습니다. 마치 폰트를 사용하듯 악기의 소리를 재생할 수 있는 파일입니다. 덕분에 피아노 소리를 내는 방법을 훨씬 간단하게 리팩토링 할 수 있었습니다.</p><p>예를 들어, 만약 <strong>가운데 도(C4)</strong> 소리를 재생하고 싶다면, 아래와 같은 코드를 통해 쉽게 재생할 수 있게 됐어요.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/420/0*uXPRJxir51UKKNnk" /></figure><pre>// 피아노 엔진 의존성<br>@EnvironmentObject private var pianoEngine: PianoEngine<br><br>// 피아노 소리를 내는 코드<br>pianoEngine.playSound(midi: 60) // middle C 의 midiValue</pre><h3>게임센터(Game Center) 도입</h3><p>이전 글이 게임센터 내용이었는데요, 리더보드(leaderboard)와 업적(achievement) 기능을 추가하기 위해 게임센터(GameKit)를 도입했습니다.</p><p><a href="https://medium.com/@Jager-yoo/gamekit-swiftui-%ED%99%98%EA%B2%BD%EC%97%90%EC%84%9C-game-center-%EB%8C%80%EC%8B%9C%EB%B3%B4%EB%93%9C-present-%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95-9e7d77f1e473">[GameKit] SwiftUI 환경에서 Game Center 대시보드 present 하는 방법</a></p><p>유저들의 최고 점수를 비교하기 위해선 Remote DB 가 필요했습니다. 각자의 디바이스에서 최고 점수를 서버로 올리면, 비교를 통해 자신의 순위를 알 수 있으니까요.</p><p>기존에는 Firebase Realtime Database 를 사용하고 있었는데요, 게임센터의 리더보드 기능이 있으면, 이런 Remote DB 가 필요가 없었습니다. 그냥 애플 서버를 무료로 사용할 수 있는 것이지요.</p><p>게다가 게임센터는 <strong>로그인 기능</strong>까지 탑재하고 있으니, 애플 로그인이나 카카오 로그인 같은 절차를 구현하지 않아도 돼서 간편했습니다.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*LXX0lGBTcTjZ7DTU2aV6nA.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*tvh2ySVlE5uhU5CLytrErA.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*f5UtjXmnNSNIYuMbhjCeCw.png" /><figcaption>게임센터 관련 화면들</figcaption></figure><p>만약 앱을 실행한 유저가 게임센터 미로그인 상태라면, 위 스크린샷의 맨 왼쪽과 같은 sheet 가 뜨게 됩니다. 꼭 로그인을 하지 않고 sheet 를 dismiss 해도 앱을 사용할 수 있는데요.</p><p>그런 경우엔, 리더보드 탭에 진입했을 때, 로그인을 유도하기 위한 mock list 를 보여주는 식으로 구현했습니다. Medium 에서 유료 글을 보려고 하면 중간에 글이 끊기고 불투명해지는 것에 영감을 받았습니다.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*OKIBfwAHsCk39Kr9egnPFQ.png" /><figcaption>Medium 유료 글 읽을 때의 경험 아시죠?!</figcaption></figure><h3>Amplitude 도입</h3><p>앱의 유저 데이터 분석을 위해 <strong>앰플리튜드</strong>를 처음으로 도입했습니다.</p><p>기존엔 구글 애널리틱스(GA) 조차 적용하고 있지 않았습니다. 데일리 유저가 많지 않으니 도입할 필요성을 못 느낀 것도 사실이구요.</p><p>하지만 V2 부터는 데이터 분석을 해보고 싶었어요. 유저 데이터를 보고, 앱을 개선하고 그 후에 다시 데이터를 보고 앱 개선하고… 그런 이터레이션을 해보고 싶었습니다.</p><p>많은 스타트업에서 앰플리튜드를 사용하고 있다고 하길래 저도 시도해봤는데요, 인터페이스가 깔끔하고 좋았습니다.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*g6zpmPM2zYs_b4xO9wP4hg.png" /><figcaption>앰플리튜드를 통해 본 실제 유저의 로그</figcaption></figure><p>앰플리튜드 전문가인 와이프의 도움을 받아, <strong>이벤트 로그</strong>를 앱 전체에 꼼꼼하게 심어놨습니다. 그래서 유저가 앱을 실행하고 어떤 행동을 하고 나가는지를 확인할 수 있어요.</p><p>유저를 몰래 염탐하는 것 같기도 하고 기분이 묘했습니다. 초라한 앱이지만 방문해준 유저들에게 감사한 마음도 들더라구요. 흑흑.</p><p>어쨌든 이런 로그가 꽤 쌓이면 유의미한 인사이트를 뽑아낼 수 있겠죠? 그걸 바탕으로 앱을 또 개선해나가려고 합니다.</p><h3>하려고 했으나 못 한 것</h3><p>네, 당연히 계획은 세웠지만 시간 관계상(힘들어서) 추가하지 못한 기능들도 있습니다.</p><p>먼저, <strong>OpenAI 연동</strong>인데요. 악보 연습 앱이지만, 단순히 랜덤하게 문제를 출제하는 것이 아니라 AI 를 활용해서 유저 맞춤형으로 문제 난이도를 조절하거나, 멜로디를 만들어내는 기능을 상상했습니다.</p><p>하지만 연휴 때 쉬지 않고 계속 앱을 개발하다 보니, 꽤 지치기도 했고 진도가 더뎠습니다. 아시겠지만, 회사 다니면서 사이드 프로젝트 하는 게 정말 힘들더라구요.</p><p>그래서 “아 모르겠다. 일단 V2 배포하고 나중에 생각하자!” 마인드로 배포부터 했습니다. ㅎㅎ</p><p>두 번째는 <strong>애드몹(AdMob) 광고 도입</strong>입니다.</p><p>네.. 개인/1인 개발 업계에서는 어쨌든 수익성이 중요합니다. 돈을 약간이라도 벌 수 있는 앱을 만들어보고 싶었어요. 진지하게 돈을 많이 벌고 싶다가 아니라, <strong>“돈이 벌리나?”</strong> 를 확인해보고 싶었습니다.</p><p>조만간 작은 배너 광고라도 추가해서 업데이트 해보려 합니다.</p><p>마지막은 <strong>지역화(localization)</strong> 입니다.</p><p>좀 웃기지만, V1 때는 지역화를 한국어/영어/일본어 → 3개나 해두고, 이번 V2 때는 100% 영어 앱으로 만들었습니다.</p><p>디폴트 언어를 영어로 해서 다 만들고, 나중에 지역화/다국어화를 추가하려 했는데, 막상 한국어로 번역하려고 하니 뭔가 어색하게 느껴지고 은근 고민하는 시간이 길어지더라구요.</p><p>특히 피아노/악보 주제의 단어들은 평소 접하기 어려운 생소한 단어들이라서, 번역을 하면 오히려 더 이상하게 느껴지는 것들이 있었습니다.</p><p>마찬가지로 “나중에 생각하자!” 마인드로 100% 영어 앱으로 배포하게 됐네요. 하하… 심지어 앱 소개 스크린샷도 전부 영어입니다.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*vvy_Uii5da3R3zT3uDM69Q.png" /></figure><p>궁금하신 분들은 아래 링크를 통해 앱 구경해보세요!</p><p><a href="https://apps.apple.com/kr/app/chopinate/id6443471411">‎Chopinate!</a></p><p>감사합니다.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=c882210a6f5f" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>