Youngkyu`s Devlog

[AVFoundation] 버퍼링 없는 숏폼 경험을 위한 프리로드 플레이어 아키텍쳐 설계하기

최근 진행 중인 사이드 프로젝트 ‘풀’에서 숏폼 재생 기능 개발을 담당하게 되었습니다. 숏폼 서비스의 핵심은 빠른 컨텐츠 소비인데, 초기 구현에서 재생 딜레이 문제를 발견했고 프리로드 아키텍처로 해결한 경험을 공유합니다. 🎯 문제 인식 ‘풀’은 숏폼 재생 기능을 메인으로 하는 서비스입니다. 팀 구성은 PM 1명, 디자인 2명, iOS 2명, 백엔드...

[Blog] AI와 함께한 블로그 마이그레이션 기록

작년 말부터 블로그를 옮겨야겠다고 생각만 하고 있었는데, 신년 계획으로 삼아 드디어 실행에 옮겼습니다. 티스토리에서 Jekyll 기반 깃블로그로 40개의 포스트와 220개의 이미지를 2시간 만에 이전한 경험을 공유합니다. 🤔 왜 깃블로그로 옮겼나 티스토리의 한계 티스토리를 사용하면서 몇 가지 불편함을 느꼈습니다. 먼저 스킨 커스터마이징이 생각...

[SwiftUI]Shorts UI 구현하기 SwiftUI+UIViewRepresentable+UICollectionView

배경 유튜브 Shorts, 인스타그램 릴스, TikTok과 같은 숏폼 콘텐츠 UI를 어떻게 구현할 수 있을까요? 최근 사이드 프로젝트를 진행하며 Shorts 화면을 담당하게 되었고, 구현하며 마주한 고민들과 기술적인 선택, 그리고 그 안에서 마주했던 문제 해결 경험을 정리해보려고 합니다. 요구사항 정의 구현에 들어가기 전 먼저 만족해야 하는 요...

[Server]EC2 인스턴스 스토리지 용량 확장하기

개인용 서버를 운영하면서 처음에는 10GB면 충분하겠지 싶어 작게 디스크 용량을 설정했었습니다. 하지만 Node.js, MySQL 및 다양한 도구들을 설치하다보니 예상보다 빠르게 부족해졌습니다. 특히 n8n 셀프 호스팅을 위해 Docker를 구성하다보니 여유 공간이 급격히 줄어들고 있었습니다. 이에 따라 EC2 인스턴스의 EBS 볼륨 및 파일시스템 ...

[WWDC]WWDC25 - FoundationModels로 엿본 애플이 꿈꾸는 개인화 AI의 미래

올해 WWDC25에서 가장 궁금하던 부분은 “애플은 AI에 어떻게 대응할까?” 였습니다. ChatGPT나 Gemini처럼 클라우드 기반 LLM이 각광받는 시대에 개인정보 보호와 기기간 통합을 중시하는 애플이 어떻게 대응할지 궁금했는데요. 바로 이번에 발표된 FoundationModels을 통해 애플의 스탠스를 확인할 수 있었습니다. 이미 과열된 LL...

[Architecture]의존성 역전을 통한 독립적인 네트워크 모듈 설계하기

최근 프로젝트를 진행하며 독립적인 네트워크 모듈을 직접 설계하며, 아래와 같은 목표를 세웠습니다. 네트워크 관련 서드파티 라이브러리는 네트워크 모듈 내에서만 알도록 할 것 모듈 외부에선 NetworkService만 알도록 할 것 토큰 리프레쉬 로직과 같이 인증 관련 세부 구현은 숨길 것 이를 위해 NetworkService 내부에서 A...

[SwiftUI]SwiftUI 커스텀 뷰 선언하기

개요 SwiftUI는 사용자 인터페이스 디자인을 선언형(declarative) 방식으로 제공합니다. 전통적인 명령형(imperative) 방식에서는 뷰를 생성하고, 배치하고, 설정하는 책임은 물론, 상태 변화에 따라 뷰를 지속적으로 업데이트하는 책임까지 컨트롤러 코드가 부담합니다. 반면, 선언형 방식에서는 UI의 원하는 레이아웃을 반영하는 뷰 계층...

[SwiftUI]Demystify SwiftUI - Identify SwiftUI는 어떻게 뷰를 갱신할까

SwiftUI는 어떻게 뷰를 갱신할까? SwiftUI는 이전 뷰의 상태와 현재 뷰의 상태를 비교하여 재렌더링이 필요한 뷰만 다시 그린다고 알고 있습니다. 그렇다면 어떻게 이전 뷰의 상태와 현재 뷰의 상태를 비교하는걸까요? SwiftUI는 현재 뷰의 상태가 이전 뷰의 상태와 달라졌는지를 어떻게 구분할까? SwiftUI는 정체성(Ident...