Tidy가 돌아왔습니다: 6년 만의 완전한 재구축 비하인드 스토리
이 글을 읽고 계신다면, Tidy를 기억하실 수도 있습니다. 2018년이나 2019년에 사용해 보셨을 수도 있고, 엄지 손가락 하나로 수백 장의 사진을 스와이프하며 갤러리를 정리하셨을 수도 있습니다. 리뷰를 남겨주셨을 수도 있습니다. 그러셨다면, 감사합니다. 저희는 모든 리뷰를 하나하나 읽었습니다.
관련 글: Tidy 2.1 & 2.2 새로운 기능: 앨범 분류, 위클리 챌린지 등
그리고 저희는 사라졌습니다.
6년 동안 Tidy는 App Store에 방치되어 있었습니다. 업데이트도 없었고, 새로운 기능도 없었고, 아무런 소통도 없었습니다. 앱은 대체로 작동했지만, 주변 세상은 계속 변해갔습니다. iOS는 진화했고, 폰 카메라는 더 좋아졌고(사진 라이브러리는 더 커졌고), 새로운 앱들이 나타났다가 사라졌습니다. 그리고 Tidy는 그저... 그 자리에 있었습니다.
관련 글: 아이폰 사진 정리하는 방법: 완벽 가이드 (2026)
오늘, 그것이 바뀝니다. Tidy v2.0은 처음부터 완전히 새로 만든 앱입니다. 업데이트가 아닙니다. 리프레시가 아닙니다. 최신 기술, 새로운 기능, 그리고 처음 출시 이후 배운 모든 것을 담아 처음부터 만든 완전히 새로운 앱입니다.
관련 글: AI가 중복 및 유사 사진을 찾는 방법 (수동 검색보다 나은 이유)
이것은 우리가 여기까지 오게 된 이야기입니다.
오리지널 Tidy: 별점 4.8, 리뷰 723개
Tidy는 2018년에 간단한 전제로 출시되었습니다: 사진 라이브러리 정리는 게임처럼 느껴져야 한다. 오른쪽으로 스와이프하면 사진을 보관하고, 왼쪽으로 스와이프하면 삭제합니다. 복잡한 메뉴도, 폴더 시스템도, 정리 체계도 없습니다. 빠르고 직관적인 결정만으로 어수선함을 정리합니다.
반응은 저희를 놀라게 했습니다. 몇 달 만에 Tidy는 5점 만점에 평균 4.8점의 평점으로 수백 개의 리뷰를 모았습니다. 723개의 리뷰에 도달했을 때, 패턴은 분명했습니다: 사람들은 스와이프 방식을 사랑했습니다. 빠른 속도를 사랑했습니다. 지루한 작업을 재미있게 만들어 준다는 것을 사랑했습니다.
숫자로 보는 Tidy
- 4.8 별점
- 723 리뷰
- 31 지원 언어
- 2018 출시 연도
사용자들은 “몰랐는데 꼭 필요했던 앱”이라거나 “한 오후에 사진 3,000장을 정리했다”고 말해주었습니다. 앱은 31개 언어로 번역되었고, 여러 나라의 App Store에 피처링되었습니다. 명확한 목적을 가진 작은 인디 앱치고는 기대 이상의 성과를 거뒀습니다.
오리지널 Tidy는 당시 iOS 개발의 표준이었던 MVC 아키텍처 패턴을 사용해 Swift 4로 만들어졌습니다. 그 시대에는 탄탄한 앱이었습니다. 하지만 기술은 빠르게 변하고, 2019년이 되자 균열이 보이기 시작했습니다.
왜 6년간 침묵했는가
솔직한 답은: 삶이 그랬습니다.
Tidy는 소규모 팀이 만들었고, 인디 개발자들이 그렇듯 우선순위가 바뀌면서 앱은 목록의 맨 아래로 밀려났습니다. 극적인 이야기도, 인수도, 종료 결정도 없었습니다. 그저 사이드 프로젝트가 관심을 받지 못할 때 일어나는 느린 표류였습니다.
한편, Tidy의 현재 수준과 필요한 수준 사이의 격차는 계속 커져갔습니다:
- SwiftUI가 등장해 2019년에 빠르게 성숙하면서, UIKit 기반 인터페이스는 구식으로 느껴지기 시작했습니다
- 사진 라이브러리가 폭발적으로 증가했습니다. 평균 iPhone 사용자의 사진이 2,000-5,000장에서 10,000-50,000장으로 늘었습니다
- AI와 머신러닝이 실험적 단계에서 필수적 기대로 바뀌었습니다. 사용자들은 앱이 스마트하기를 기대하기 시작했습니다
- iOS 위젯과 라이브 액티비티가 앱이 지원해야 할 새로운 영역을 만들었습니다
- 개인정보 보호에 대한 기대가 크게 높아져, 사용자들은 기기 내 처리와 투명성을 요구하기 시작했습니다
- Swift 자체가 5.0에서 6.0까지 발전하며, 엄격한 동시성과 새로운 언어 기능을 도입했습니다
저희가 다시 Tidy를 진지하게 살펴봤을 때, 원래 코드베이스는 고고학적 유물이었습니다. 최신 툴체인으로 컴파일되지 않는 Swift 4 코드, 두 번이나 대체된 UIKit 패턴, 사용자들이 기대하는 어떤 기능도 지원할 수 없는 아키텍처였습니다.
두 가지 선택지가 있었습니다: 기존 코드베이스를 패치하고 업데이트하거나, 새로 시작하거나.
처음부터 다시 만들기로 한 결정
저희는 재구축을 선택했습니다. 그 이유는 이렇습니다.
기존 Tidy를 업데이트한다는 것은 Swift 4 코드를 Swift 6로 포팅하고, 전체 UI를 UIKit에서 SwiftUI로 재작성하고, MVC 아키텍처를 현대적인 것으로 교체하고, 새로운 Apple 프레임워크(Vision, Core ML, StoreKit 2, WidgetKit)를 추가하고, 어떻게든 이 모든 변경사항이 기존 앱을 깨뜨리지 않으면서 함께 작동하게 만드는 것을 의미했습니다.
소프트웨어 개발에서 Joel Spolsky의 유명한 에세이 “절대 하지 말아야 할 것들, 1부”가 있는데, 처음부터 다시 쓰는 것은 거의 항상 실수라고 주장합니다. 대부분의 프로젝트에서 그가 맞습니다. 하지만 Tidy는 예외였습니다:
- 공유 코드 제로 - 기존 코드베이스를 평가한 결과, 원래 코드의 5% 미만만 재사용 가능했습니다. 언어가 너무 많이 바뀌었고, 프레임워크는 완전히 달랐으며, 아키텍처는 호환 불가능했습니다
- 다른 플랫폼 - 오리지널 Tidy는 iOS 11을 대상으로 했습니다. 새로운 Tidy는 iOS 18을 대상으로 합니다. 이들은 사실상 다른 기능, 디자인 언어, 사용자 기대를 가진 다른 플랫폼입니다
- 확장된 범위 - 오리지널 Tidy는 한 가지 일만 했습니다: 스와이프로 정리. 새로운 Tidy에는 AI 필터, 사진 편집기, 비교 모드, 게이미피케이션, 위젯, 라이브 액티비티 등이 필요했습니다. 이 모든 것을 기존 아키텍처에 억지로 붙이는 것은 1층 집 지붕에 층을 쌓는 것과 같았을 것입니다
- 미래를 위한 깨끗한 기반 - 새로 시작한다는 것은 첫날부터 Swift 6 엄격한 동시성을 채택하고, Core Data 대신 SwiftData를 사용하고, 적절한 클린 아키텍처를 구현하고, 향후 수년간의 개발을 지원할 기반을 구축할 수 있다는 것을 의미했습니다
재구축은 빠른 결정이 아니었습니다. 저희는 수주간 기존 코드를 평가하고, 양쪽 방향(업데이트 vs. 재작성)으로 프로토타이핑한 끝에, 기존 앱을 현대화하려는 어떤 시도보다 완전한 재구축이 더 빠르고 깔끔하며 더 나은 앱을 만들 수 있다는 결론을 내렸습니다.
갤러리를 정리할 준비가 되셨나요?
Tidy를 다운로드하고 스와이프를 시작하세요. AI 기반 중복 감지, 스마트 필터, 사진 편집기가 내장되어 있습니다.
Tidy v2.0의 모든 새로운 것
그래서 무엇을 만들었을까요? 새로운 Tidy의 모든 주요 기능과 개선 사항을 소개합니다.
최신 iOS를 위한 SwiftUI 재작성
전체 앱이 Apple의 최신 선언적 UI 프레임워크인 SwiftUI로 만들어졌습니다. 이는 유려한 애니메이션, Dynamic Type(접근성 텍스트 크기 조절) 기본 지원, 자동 다크 모드 지원, 그리고 모든 화면에서 일관되고 세련된 모습을 의미합니다. UI가 iOS 18에 딱 어울리는 느낌인 것은 바로 그것을 위해 만들어졌기 때문입니다.
AI 기반 스마트 필터
이것은 Tidy의 핵심 경험에 가장 큰 추가 기능입니다. 전체 사진 라이브러리를 수동으로 스크롤하는 대신, AI 기반 필터를 사용하여 정리 대상이 될 수 있는 특정 유형의 사진을 찾아낼 수 있습니다:
- 흐린 사진 - AI가 모션 블러, 카메라 흔들림, 초점 맞지 않은 사진을 식별합니다
- 저품질 - 노출 부족, 과도한 압축, 또는 기타 저품질 이미지를 감지합니다
- 유사한 사진 - 지각 해싱을 사용하여 거의 동일한 사진을 그룹화하여, 최고의 사진을 선택하고 나머지를 버릴 수 있습니다
- 중복 - 메타데이터와 시각적 유사성을 기반으로 정확한 중복 및 거의 동일한 중복을 찾습니다
- 베스트 샷 - 유사한 사진 그룹에서 AI가 가장 선명하고 구도가 좋은 옵션을 제안합니다
- 유틸리티 - 스크린샷, 영수증, 문서 및 기타 영원히 보관할 필요가 없는 “유틸리티” 사진을 식별합니다
모든 AI 처리는 Apple의 Core ML 및 Vision 프레임워크를 사용하여 기기 내에서 이루어집니다. 어떤 사진도 서버에 업로드되지 않습니다. 분석은 밤새 충전하는 동안 백그라운드에서 실행되므로, 준비가 되면 바로 사용할 수 있습니다.
29개 필터를 갖춘 완전한 사진 편집기
Tidy v2.0에는 완전한 사진 편집 도구가 포함되어 있습니다. 기본적인 밝기/대비 편집기가 아니라 5가지 카테고리의 전문 편집 시스템입니다:
- 조정 - 노출, 하이라이트, 섀도우, 대비, 채도, 색온도, 선명도, 그레인, 배경 블러를 포함한 10가지 조정 슬라이더
- 뷰티 - 바디 포지티브 메시지가 포함된 6가지 내추럴 뷰티 도구(피부 보정, 포트레이트 라이트, 눈 밝게, 얼굴 슬림, 눈 확대, 입술 볼륨)
- 리터치 - 부분 수정을 위한 힐링 브러시 및 치아 미백 도구
- FX - 은은한 필름 에뮬레이션부터 대담한 아티스틱 효과까지 29가지 크리에이티브 필터
- AI - 초해상도 업스케일링 및 AI 기반 스타일 전환 효과
편집기에는 실행 취소/다시 실행, 전후 비교 슬라이더, 캔버스에서의 핀치 줌이 포함됩니다. 모든 편집은 비파괴적이며, 새 복사본으로 저장하거나 원본을 대체할 수 있습니다.
비교 모드
오리지널 Tidy에서 가장 많이 요청된 기능 중 하나는 유사한 사진을 나란히 비교하는 것이었습니다. Tidy v2.0은 빠른 탐색을 위한 썸네일 스트립, 세부 검사를 위한 핀치 줌, 편집 평가를 위한 전후 슬라이더가 포함된 전용 비교 모드로 이를 실현합니다.
게이미피케이션
오리지널 Tidy는 스와이프 방식으로 정리를 재미있게 만들었습니다. Tidy v2.0은 완전한 게이미피케이션 시스템으로 이를 한 단계 더 발전시켰습니다:
- 세션 통계 - 매 세션마다 검토, 보관, 삭제한 사진 수와 시간
- 정리 연속 기록 - 꾸준함을 유지하기 위한 일간 및 주간 연속 기록 추적
- 마일스톤 - 색종이 애니메이션과 햅틱 축하가 있는 성취 시스템
- 공유 가능한 정리 카드 - 소셜 미디어에 바로 공유할 수 있는 아름다운 요약 그래픽
RTL을 포함한 20개 언어
Tidy v2.0은 20개 언어를 지원합니다: 영어, 히브리어, 아랍어, 페르시아어, 러시아어, 프랑스어, 힌디어, 루마니아어, 스페인어, 포르투갈어, 독일어, 이탈리아어, 일본어, 한국어, 네덜란드어, 폴란드어, 태국어, 터키어, 중국어 간체, 중국어 번체.
이 중 세 개 언어(히브리어, 아랍어, 페르시아어)는 오른쪽에서 왼쪽(RTL)입니다. Tidy의 모든 화면은 스와이프 게임, 편집기, 전후 슬라이더, 모든 내비게이션 요소를 포함하여 RTL 사용자를 위해 올바르게 전환되도록 설계되었습니다. RTL 지원은 나중에 추가된 것이 아니라 기초부터 내장되어 있습니다.
인터랙티브 위젯과 라이브 액티비티
인터랙티브 위젯을 사용하면 홈 화면에서 한 번의 탭으로 정리 세션을 시작할 수 있습니다. 라이브 액티비티는 잠금 화면과 다이나믹 아일랜드에서 실시간으로 정리 진행 상황을 보여줍니다. 이 둘이 합쳐져 “사진을 정리해야지”와 실제로 하는 것 사이의 마찰을 줄여줍니다.
Gold 구독
Tidy v2.0은 무료로 다운로드하여 사용할 수 있습니다. 핵심 스와이프 게임, 기본 필터, 사진 비교 기능은 모두 무료입니다. 더 많은 기능을 원하는 사용자를 위해 Tidy Gold가 다음을 잠금 해제합니다:
- 모든 AI 기반 스마트 필터(흐림 감지, 유사 사진, 베스트 샷, 유틸리티)
- 29개 필터와 뷰티 도구가 포함된 완전한 사진 편집기
- 고급 게이미피케이션 기능
- 광고 없음
Gold는 1개월, 3개월, 6개월 구독으로 이용 가능합니다. 저희가 이 모델을 선택한 이유는 저희의 인센티브와 여러분의 인센티브가 일치하기 때문입니다: 여러분이 Tidy를 계속 사용할 만큼 가치 있다고 느낄 때만 저희도 성공합니다.
재구축의 기술적 도전
앱을 처음부터 다시 만드는 것은 해방감을 주는 것처럼 들리고, 처음에는 실제로 그렇습니다. 하지만 그것은 나름의 도전도 함께 가져옵니다. 저희가 직면한 가장 중요한 기술적 난관들을 소개합니다.
Swift 6 엄격한 동시성
Swift 6는 엄격한 동시성 검사를 도입했는데, 이는 컴파일러가 빌드 시 스레드 안전성을 강제한다는 것을 의미합니다. 버그 방지에는 훌륭하지만 개발 과정에서는 매우 까다롭습니다. 모든 공유 가변 상태는 액터로 보호되거나, Sendable로 표시되거나, 메인 스레드에 격리되어야 합니다.
사진 앱의 경우, 사진 처리는 본질적으로 동시적이기 때문에 특히 어렵습니다. 썸네일 로딩, AI 분석 실행, 필터 적용, 편집 저장 - 이 모든 작업은 백그라운드 스레드에서 실행되면서 UI는 메인 스레드에서 업데이트됩니다. 동시성 모델을 올바르게 만드는 데 상당한 노력이 필요했지만, 결과적으로 스레딩 문제와 관련하여 사실상 크래시가 없는 앱이 되었습니다.
유사 사진 감지를 위한 지각 해싱
유사한 사진을 찾는 것은 대규모로 구현하려고 하기 전까지는 간단해 보입니다. Tidy는 지각 해싱(pHash)이라는 기술을 사용하여 사진을 시각적으로 비교합니다. 각 사진은 시각적 콘텐츠를 나타내는 64비트 해시로 축소되고, 유사한 해시를 가진 사진들이 함께 그룹화됩니다.
도전은 유사성 임계값을 조정하는 것이었습니다. 너무 엄격하면 관련 사진이 함께 그룹화되지 않고, 너무 느슨하면 관련 없는 사진이 같은 그룹에 들어갑니다. 저희는 일반 비교에는 해밍 거리 임계값 10, 연속 촬영 사진(서로 10초 이내에 촬영)에는 14로 설정했으며, 클러스터가 너무 커지는 것을 방지하기 위해 최대 그룹 직경을 14로 설정했습니다.
또한 올바른 클러스터링 알고리즘을 선택해야 했습니다. 단순한 탐욕 접근법은 때때로 관련 사진을 별도의 그룹으로 나누곤 했습니다. 대신 Union-Find 클러스터링을 구현하여, 연결된 구성 요소를 올바르게 식별하고 과대 그룹에만 직경 제약을 적용합니다. 결과는 자연스럽고 직관적인 사진 그룹화입니다.
기기 내 AI 처리
기기 내에서 AI 모델을 실행하는 것은 정확도와 성능 사이의 끊임없는 트레이드오프를 제시합니다. 사진당 2초가 걸리는 모델은 30,000장의 사진을 분석해야 할 때 사용할 수 없습니다. 사진당 10밀리초로 실행되는 모델은 유용할 만큼 정확하지 않을 수 있습니다.
저희는 백그라운드 처리로 이를 해결했습니다. Tidy는 iOS BGProcessingTasks를 사용하여 폰이 충전 중이고 WiFi에 연결되어 있는 밤새 전체 AI 분석을 실행합니다. 분석에는 블러 감지, 품질 점수화, 유사성 해싱, 얼굴 감지가 포함됩니다 - 시간 압박이 없기 때문에 모두 높은 정확도로 처리됩니다. 아침이면 결과가 준비되어 있습니다.
실시간 기능(뷰티 편집기 등)에는 약간의 품질을 속도와 교환하는 최적화된 파이프라인을 사용합니다. 뷰티 도구는 모든 최신 iPhone에서 하드웨어 가속되는 Apple의 Metal GPU 셰이더와 Core Image 필터를 사용하기 때문에 인터랙티브 프레임 레이트로 실행됩니다.
얼굴 변형을 위한 Metal 셰이더
얼굴 특징을 변형하는 뷰티 도구(얼굴 슬림, 눈 확대, 입술 볼륨)는 실시간 메시 변형을 위해 Metal CIWarpKernel 셰이더를 사용합니다. 이러한 셰이더를 작성하려면 Core Image의 파이프라인과 호환되는 Metal Shading Language의 제한된 하위 집합에서 작업해야 했습니다.
특히 까다로운 버그 중 하나는 턱선 변형과 관련된 것이었습니다. 초기 구현에서는 워프 앵커가 잘못된 수직 좌표(턱 대신 이마)에 위치하여, 얼굴 슬림이 얼굴의 잘못된 부분을 변형했습니다. Vision 프레임워크의 얼굴 랜드마크 좌표 시스템을 세심하게 연구해야 올바른 위치를 잡을 수 있었습니다.
RTL 레이아웃 지원
오른쪽에서 왼쪽 방향 언어를 지원하는 것은 텍스트 정렬을 뒤집는 것 이상입니다. 모든 인터랙티브 요소가 양방향에서 올바르게 작동해야 합니다. 스와이프 게임(“오른쪽으로 스와이프하면 보관, 왼쪽으로 스와이프하면 삭제”)은 RTL에서도 의미론적 의미를 유지합니다 - 제스처는 왼쪽/오른쪽 방향이 아닌 보관/삭제 의미에 기반하기 때문에 동일하게 유지됩니다. 사진 편집기의 전후 슬라이더는 올바르게 방향이 전환됩니다. 내비게이션 흐름이 반전됩니다. 그리고 모든 레이아웃 제약이 LTR과 RTL 모드 모두에서 테스트되었습니다.
다음에 올 것은
Tidy v2.0은 기반이지 결승선이 아닙니다. 다가오는 릴리스에서 작업 중인 내용을 미리 보여드립니다:
- 자르기 및 회전 도구 - v2.1에서 제공 예정이며, 수평 맞추기 가이드와 종횡비 프리셋 포함
- Siri 및 App Intents 통합 - “시리야, 사진 정리 세션 시작해줘”가 바로 작동합니다
- 비디오 압축 - 품질을 유지하면서 대용량 비디오 파일의 크기를 줄입니다
- 정리 챌린지 - 테마 목표가 있는 주간 및 월간 챌린지(예: “스크린샷 대청소 주간”)
- 용량 예측 - 사진 촬영 패턴을 기반으로 폰의 저장 공간이 언제 부족해질지 AI가 예측합니다
- 더 많은 AI 필터 - 밈 감지 필터와 개선된 분류를 포함
또한 Apple의 Foundation Models API를 활용한 기기 내 자연어 검색(예: “해변에서 찍은 강아지 사진 보여줘”)도 탐색 중이지만, 이는 Apple의 API 출시 일정에 달려 있습니다.
저희의 목표는 4-6주마다 의미 있는 업데이트를 릴리스하는 것입니다. 다시는 침묵하지 않겠습니다.
커뮤니티에 감사드립니다
마무리하기 전에, 오리지널 Tidy를 사용했고 이 글을 읽고 있을 수 있는 분들에게 직접 말씀드리고 싶습니다.
리뷰에 감사드립니다. 기능 요청에 감사드립니다. 버그 리포트에 감사드립니다. 트윗과 메시지, 그리고 친구들에게 추천해 주신 것에 감사드립니다. 여러분은 간단한 앱 주변에 특별한 무언가를 만들어 주셨고, 저희는 그것에 감사합니다.
6년간의 침묵이 긴 시간이라는 것을 알고 있습니다. 한번 깨진 신뢰를 회복하는 데는 노력이 필요하다는 것을 알고 있습니다. 저희는 약속이 아닌 꾸준한 업데이트, 투명한 소통, 그리고 계속 좋아지는 앱으로 그것을 되찾기 위해 최선을 다하겠습니다.
오리지널 Tidy를 사용하셨다면, 다시 돌아오셨으면 좋겠습니다. v2.0을 다운로드하고 사용해 보시고 어떻게 생각하시는지 알려주세요. 여러분의 피드백이 첫 번째 Tidy를 만들었고, 앞으로 나올 모든 버전도 만들어 나갈 것입니다.
그리고 Tidy를 처음 접하시는 분이라면 - 환영합니다. 저희가 정말 자랑스럽게 생각하는 것의 시작에 함께하시게 됩니다. 마음에 드셨으면 좋겠습니다.
사진 라이브러리를 정리하기 가장 좋은 때는 6년 전이었습니다. 두 번째로 좋은 때는 바로 지금입니다.
새로운 Tidy가 무엇을 할 수 있는지 알아보고 싶으세요? 내추럴 뷰티 필터, 사진 나란히 비교하기, 게이미피케이션으로 정리 습관 만들기, 위젯과 라이브 액티비티로 빠른 정리 가이드를 시작해 보세요.
관련 게시물
- 진짜 자연스러운 뷰티 필터 - Tidy의 윤리적 사진 보정으로 최고의 날처럼 자연스러운 모습을 유지하세요.
- 사진 정리를 매일의 습관으로 - 게이미피케이션, 연속 기록, 마일스톤이 사진 관리를 하고 싶은 일로 만드는 방법.


