Software Engineer · Busan

Jaemyeong Jin.

I have spent more than nine years designing and shipping iOS, iPadOS and tvOS products at Favorie, Sendy, Goodoc and Coupang Play. These days I pair AI agents with my development and verification workflow to move faster, and I am widening my work from apps to the web and services. I write about the process on my blog.

Recent posts

  1. IT TechmacOS 27에서 끊긴 Time Capsule 백업, TimeCapsuleSMB로 되살린 기록KoreanmacOS 27은 AFP 클라이언트를 제거해 Time Capsule을 Time Machine 대상으로 쓸 수 없습니다. 4세대 Time Capsule에 TimeCapsuleSMB로 SMB3 Samba를 올린 절차와, 설치 전에 꺼야 할 NBNS·텔레메트리 설정을 정리합니다.
  2. IT DevREADY_FOR_REVIEW는 «제출됨»이 아니다: App Store Connect 제출을 멱등하게 만들기Korean응답이 유실되면 재실행이 중복 제출로 거부되어, 복구용 재시도가 오히려 확실한 실패가 됐습니다. 멱등 가드를 붙였더니 이번엔 그 가드가 세 가지 방향으로 배신했습니다.
  3. IT DevUMP가 ATT를 직접 부른다: 프레임워크 바이너리로 확인한 순서 계약KoreanAdMob IDFA 설명 메시지를 게시하려다 막혔습니다. 어느 쪽이 requestTrackingAuthorization을 부르는지 공식 문서에 없어서 UMP 프레임워크 바이너리를 읽었고, 거기서 앱과 SDK가 일회성 프롬프트를 두고 경합한다는 걸 확인했습니다.
  4. IT Dev경고 주석은 있는데 대조는 없었다: ITSAppUsesNonExemptEncryption 두 원천 검증Korean수출 규정 선언은 Info.plist와 제출 선언 파일 두 곳에 있습니다. 어긋나면 자동 제출이 멈추는데, 「한쪽만 고치지 말 것」이라는 경고 주석만 있고 실제로 대조하는 코드는 없었습니다.
  5. IT Dev@Suite(.serialized)로는 못 막는다: Swift Testing 병렬 실행과 전역 NotificationCenterKoreanCI에서만 죽는 테스트 하나를 쫓다 45분 hang의 원인을 두 번 진단했습니다. 첫 진단은 hang만 고쳤고, 진짜 원인은 전역 NotificationCenter를 구독하는 뷰와 병렬 실행이 만든 격리 결함이었습니다.
  6. IT Dev이미 만료된 Task.sleep은 throw하지 않는다: 버전당 1회 리뷰 요청 지키기KoreanAppStore.requestReview(in:)는 실패를 알려주지 않는데 게이트는 버전당 1회입니다. 같은 설계를 iOS와 Android에 옮겼더니 Swift Concurrency와 Kotlin의 취소 의미론 차이로 iOS에만 결함이 남았습니다.
  7. IT DevApple Pencil 손글씨 숫자 입력: PencilKit·Core ML reject 설계KoreanPencilKit stroke를 스도쿠 숫자 입력으로 바꿀 때 필요한 tap·ink 세션 분류, 28×28 전처리, confidence reject, 비동기 추론 계약을 DailySudoku 구현으로 살펴봅니다.
  8. IT Dev픽셀보다 계약: UIKit·Jetpack Compose 스도쿠 보드 접근성Korean하나의 9×9 커스텀 보드를 VoiceOver와 TalkBack이 탐색할 수 있는 81개 셀로 바꾸고, 위치·값·선택·오류·입력 동작을 두 플랫폼에 매핑하는 기준을 정리합니다.
  9. IT TechiOS·Android·Web 광고 노출: loaded·rendered·impression 구분법Korean광고 SDK의 load·impression·paid callback과 Web 가시성 신호를 분리해, 자동 수집과 수동 로깅이 중복되지 않는 이벤트 계약을 정리합니다.
  10. IT TechGame Center·Play Games 리더보드: 날짜 경계·제출 신뢰성Korean퍼즐 날짜, 점수 제출 시각, 플랫폼 표시 구간을 분리하고 best-effort 보류와 durable outbox 사이에서 리더보드 전달 보장을 선택하는 방법을 정리합니다.