ONEDiary 무료로 시작하기
개발 이야기

사진, 장소, 그리고 요청하지 않기로 한 권한

기록에 사진과 장소를 붙이는 일은 한 번의 탭이면 충분해야 합니다. 그 과정에서 쉽게 보여 줄 수 있었던 두 개의 권한 요청을 포기했습니다.

2026년 7월 3일2분 읽기Soosu Studio, Inc.

선택한 사진과 장소 핀, 개인정보를 고려한 사진 선택기를 담은 ONEDiary 스타일 이미지

사진과 장소가 붙은 기록은 같은 문장만 있는 기록보다 훨씬 쉽게 기억납니다. 동시에 일기 앱에서 가장 많은 접근 권한을 요구해 온 부분이기도 합니다. 우리는 몇 번의 릴리스에 걸쳐 권한 요청 없이 첫 번째 경험을 얻으려 했습니다.

사진: 권한이 필요 없는 선택기

ONEDiary는 미디어 라이브러리 전체 접근을 요청하는 대신 Android 사진 선택기를 사용합니다. 선택기는 앱 밖에서 실행되고, 사용자가 원하는 이미지만 고르면 앱은 그 이미지만 받습니다. 갤러리 전체 읽기 권한이 필요 없으므로 승인할 권한 대화상자도, 나중에 철회할 권한도 없습니다.

대신 사진 선택기를 열기 전에는 라이브러리를 훑어 오늘의 사진을 제안할 수 없습니다. 실제로 포기한 기능입니다. 앱이 기기의 모든 사진에 상시 접근 권한을 갖는 형태는 무엇을 하든 좋은 구조가 아니라고 판단했습니다.

장소: 휴대폰 대신 사진을 읽기

1.4.9에서는 편집기의 느낌을 바꾼 작은 기능을 추가했습니다. 첨부한 사진의 EXIF 메타데이터에 GPS 정보가 있으면 기록이 그 장소를 자동으로 제안합니다.

흥미로운 점은 이것이 무엇을 대체했는가입니다. 위치를 자동으로 채우는 가장 쉬운 방법은 위치 권한을 요청하고 현재 기기 위치를 읽는 것입니다. 하지만 사진은 이미 촬영 장소를 알고 있고, 사용자는 이미 그 사진을 첨부하기로 했습니다. 실제로 필요한 좌표는 기록하는 순간 앉아 있는 곳이 아니라 그 장면이 일어난 곳입니다. 파일을 읽는 편이 더 정확하고 권한도 덜 필요합니다.

물론 장소를 직접 검색할 수도 있고, 저장하기 전에 제안된 장소를 지우거나 바꿀 수도 있습니다.

Places API (New)로 이전하기

장소 입력란의 검색은 1.4.9에서 Places SDK 5.2.0 계열과 새로운 Places API로 옮겼습니다. SDK 변경과 함께 주변 화면도 다시 설계했습니다. 이전 흐름에 문제가 쌓여 있었기 때문입니다.

  • 검색은 별도 화면으로 이동하지 않고 위치 시트 안에서 진행됩니다. 화면 전환 중 인증 흐름에서 발생하던 충돌의 한 종류가 사라졌습니다.
  • 최근 장소는 최근 사용 순서가 아니라 현재 위치와의 거리순으로 정렬되어 가까운 장소가 먼저 나옵니다.
  • 최근 장소에는 도로 주소보다 실제로 부를 법한 건물이나 가게 이름이 표시됩니다.
  • 시트가 열리면 키보드 위로 올라옵니다. 당연해 보이지만 이전에는 그렇지 않았습니다.

1.4.8에서는 지도와 닫기 제스처가 서로 방해하지 않도록 바꿨습니다. 드래그 가능한 시트 안에서 지도를 움직이면 모든 드래그가 모호해지므로, 이제 위치 패널은 제스처를 추측하지 않고 명시적인 버튼으로 닫습니다.

일반적인 원칙

기능에 데이터가 필요할 때 데이터를 얻는 방법은 보통 세 가지입니다. 시스템에 권한을 요청하거나, 사용자에게 필요한 대상을 직접 받거나, 이미 정당하게 가지고 있는 정보에서 도출하는 것입니다. 우리에게 편한 순서로는 앞에서 뒤로 갈수록 편의가 줄고, 사용하는 사람에 대한 존중은 커집니다.

항상 세 번째 방법을 택할 수 있는 것은 아닙니다. 그래도 우리는 먼저 그 방법을 찾고, 이번 두 기능은 결국 그곳에 도달했습니다.

직접 사용해 보세요.

Google Play에서 무료로 받을 수 있습니다. Android 10 이상에서 계정 없이 기록을 시작하세요.

Google Play에서 무료로 사용

계속 읽기