본문으로 건너뛰기
Max
전체 프로젝트 목록으로 돌아가기
iOS 네이티브 · 온디바이스 인식·2026.07 – 현재
iOS MVP · 다중 사진 인식 실험 중

찍술: 기기 안에서 분석하고 직접 확인하는 음주 기록

술병·술캔의 라벨과 바코드를 기기 안에서 분석하고, 사용자가 제품과 실제 마신 양을 확인한 뒤 캘린더에 저장하는 iPhone 앱입니다. 기록 경험 개선을 기본 브랜치에 반영했고, 여러 사진의 관찰 결과를 모으는 인식 기능은 별도 PR에서 검증하고 있습니다.

담당 역할SwiftUI·SwiftData 기반 iOS 앱 설계와 개발
핵심 제약사진 속 제품·용기 수를 사용자의 실제 음용량으로 간주할 수 없음
해결 아키텍처Vision OCR·바코드와 출처를 확인한 로컬 카탈로그로 제품 후보를 만들고 실제 음용량은 사용자가 입력하도록 구성
검증된 결과Today·캘린더·제품 확인·직접 입력·내보내기를 연결한 iOS MVP

검증 가능한 증거 자료

찍술 iOS 앱을 위해 제작한 아이콘 자산

ZzikSool 앱 아이콘

찍술 iOS 앱을 위해 제작한 아이콘 자산

01.내가 맡은 역할

  • SwiftUI·SwiftData 기반 iOS 앱 설계와 개발
  • Vision OCR·바코드 분석, 제품 후보 확인과 명시적 저장 흐름 구현
  • 한국어·영어 UI, 접근성 검사와 내부 TestFlight 배포 절차 구축

02.시작 당시 상황

사진만으로는 실제로 마신 양을 알 수 없고, 곡면 라벨·반사·물방울 때문에 제품 식별도 불확실할 수 있습니다.

사진을 외부 서버로 보내지 않고 분석하되, 부족한 근거를 사용자가 확인하고 수정할 수 있는 기록 앱을 만들고자 했습니다.

03.실제로 마주친 제약

[1]사진 속 제품·용기 수를 사용자의 실제 음용량으로 간주할 수 없음
[2]제품 카탈로그와 OCR 근거가 부족할 때 확정 대신 후보·미확인 상태를 유지해야 함
[3]시뮬레이터 검사와 실제 iPhone 카메라·Vision 검증의 차이

04.내가 내린 주요 판단

Vision OCR·바코드와 출처를 확인한 로컬 카탈로그로 제품 후보를 만들고 실제 음용량은 사용자가 입력하도록 구성
촬영·사진 선택·직접 입력 모두 확인 화면을 거쳐 명시적으로 저장할 때만 기록 생성
기본 브랜치의 한 장 입력과 개발 중인 1~5장 세션 인식을 구분하고, 다중 사진의 중복·불확실한 후보는 보수적으로 처리
SwiftData 기록·수정·삭제·내보내기와 한국어·영어, Dynamic Type 접근성 흐름을 함께 검증

[아키텍처]온디바이스 비전 처리와 엄격한 휴먼 인 더 루프 설계

찍술(ZzikSool)은 사진을 외부 서버에 전송하지 않고 기기 안에서 라벨과 바코드를 분석하도록 설계했습니다. 사용자가 제품 후보를 수정하고 실제 마신 양을 입력한 뒤 저장하면 Today와 캘린더에 반영됩니다.

기본 브랜치에는 한 장 입력과 기록 경험 개선을 반영했습니다. 별도 PR에서는 1~5장의 사진을 순서대로 분석하고, 사진 사이에 반복해서 등장하는 병과 불확실한 제품 후보를 보수적으로 처리하는 기능을 개발하고 있습니다. 사진 속 용기 수가 실제 음용량을 대신하지 않도록 사용자 확인 전 저장을 차단합니다.

구현과 검증 범위
• 기본 브랜치: 기록·수정·삭제·내보내기, 한국어·영어 UI
• 진행 중인 PR: 다중 사진 인식, 제품별 확인과 일괄 저장
• 해당 PR 기록: 내부 TestFlight 1.1 (26) 업로드·처리·그룹 연결
• 남은 확인: 테스터 설치·실행, 실제 촬영, 독립된 사진 평가
찍술 네이티브 앱 아이콘

ZzikSool 네이티브 앱 아이콘

한국 주류(소주·맥주) 모티프의 벡터 아이콘 디자인

Apple 네이티브 프레임워크 선택 이유

  • Vision Framework: 기기 내 라벨·바코드 분석과 근거에 따른 제품 후보 제시
  • AppIntents & Shortcuts: 촬영·사진 선택·직접 입력 화면으로 연결하는 진입점. 실제 시스템 화면에서의 동작은 별도 확인
  • SwiftData & Observation: 로컬 기록 변경과 Today·캘린더 상태 연결

05.구현하거나 배포한 결과

  • Today·캘린더·제품 확인·직접 입력·내보내기를 연결한 iOS MVP
  • 기본 브랜치에 기록 경험, Xcode Canvas 프리뷰, App Intents와 워드마크 개선 병합
  • 별도 다중 사진 PR에 내부 TestFlight 1.1 (26) 업로드·처리·테스터 그룹 연결 기록

06. 실패 또는 남은 한계

  • 다중 사진 인식은 미병합 PR이며, 내부 TestFlight 업로드를 테스터의 설치·실행 성공이나 App Store 출시로 간주하지 않습니다.
  • 기존 실제 사진 검사는 독립된 정확도 평가셋이 아니므로 제품 식별 정확도 수치를 주장하지 않습니다.
  • 실제 기기 카메라·Apple Intelligence·iOS 18 동작은 별도 검증이 필요합니다.

07. 다음 설계 및 개편 계획

  • 실제 iPhone 설치·촬영 흐름과 독립된 촬영 세션에서 제품 식별·중복 처리 검증
  • 다중 사진 PR의 검증 결과를 정리한 뒤 기본 기록 흐름에 통합

08.사용 기술과 선택 이유

기술선택 이유 및 적용 위치실제 겪은 제약 및 배운 점
Swift 6 & SwiftUI
iPhone 앱 UI와 비동기 분석 상태 관리분석 취소·화면 전환·오래된 결과의 반영을 제어
Apple Vision
기기 내 한글·영문 라벨 OCR과 바코드 분석사진 조건에 따른 오인식을 후보 확인 흐름으로 처리
SwiftData & Observation
로컬 기록과 캘린더 상태 관리저장·삭제 실패 시 일관성과 복구 확인
AppIntents & PhotosUI
촬영·사진 선택·직접 입력으로 연결하는 시스템 진입점단축어 진입이 기록 저장을 대신하지 않도록 분리
Xcode & TestFlight
빌드·접근성 검사와 내부 배포업로드·처리·설치·실행 상태를 각각 기록
다음 프로젝트KBPM거래 정보를 읽고 비교하는 화면부터, 실행을 멈추는 조건까지 설계
사례 연구 보기다음 프로젝트: KBPM