상상그이상의

Backend, Mobile Software Developer.

Flutter 앱에 1:1 음성 통화를 얹기까지 — WebRTC, CallKit, 그리고 삽질의 기록

서비스 앱에 사용자 간 1:1 음성 통화 기능을 넣게 되었다. “그냥 WebRTC 붙이면 되는 거 아니야?” 하고 시작했다가, iOS PushKit의 절대적인 규칙, Android Cold Start의 타이밍 지옥, Socket.IO의 미묘한 연결 순서 문제, 그리고 예상치 못한 레이스 컨디션들을 하나씩 뚫어 나간 이야기다. 1장. “전화가 와야 하는데, 앱이 죽어있어요” 프로젝트의 요구사항은 단순했다. 사용자 A가 사용자 B에게 전화를

100개의 버튼 색상을 한 번에 바꾸는 법: 디자인 토큰과 아토믹 디자인

디자이너의 한마디 “브랜드 컬러를 #0066FF에서 #00B900으로 변경하기로 했어요.” 디자이너의 이 한마디에 개발팀 전체가 얼어붙었습니다. 서비스 전체에 흩어져 있는 수백 개의 버튼, 링크, 아이콘들의 색상을 일일이 찾아서 수정해야 한다는 의미였으니까요. 더 큰 문제는 각 개발자마다 미묘하게 다른 색상 값을 사용하고 있었다는 것입니다. 같은 “파란색”이지만, 누군가는 헥스 코드로, 누군가는 RGB로, 그리고 미묘하게 다른 값들로 구현해두었습니다. 이것이 바로

Dependency Injection with “GetIt” .aka DI

Flutter에서 의존성 주입(DI) 완벽 가이드: GetIt을 활용한 실전 예제 모바일 앱 개발을 하다 보면 클래스 간의 의존성이 복잡하게 얽히는 경험을 한 번쯤 해보셨을 겁니다. 한 클래스를 수정했는데 연쇄적으로 다른 클래스들까지 수정해야 하는 상황, 테스트 코드를 작성하려는데 의존성 때문에 막막한 상황. 이런 문제들을 해결하기 위한 핵심 개념이 바로 **의존성 주입(Dependency Injection, DI)**입니다. 이 글에서는 DI의 기본