가구 놓을 공간의 치수를 사진에 남기는 사진 줄자

가구를 놓을 자리를 재고 숫자만 적어 두면 나중에 어느 부분의 길이였는지 헷갈릴 수 있다. 사진은 공간의 모습을 남기고 줄자는 길이를 알려 주지만 둘을 따로 보관하면 다시 연결해서 봐야 한다. 사진 줄자는 그 두 가지를 한 장에 남기려는 앱이다. 이번 글에서는 기능 목록보다 사진을 고르고 치수를 적고 다시 꺼내 보는 흐름을 어떻게 만들었는지 정리해 보려고 한다.

처음 떠올릴 수 있는 사용 장면은 복잡하지 않다. 가구를 놓을 벽이나 선반 안쪽을 찍고 직접 잰 길이를 사진 위에 적어 두는 것이다. 사진에 표시한 선을 보면 숫자가 어느 부분을 가리키는지 알 수 있다. 공간 전체의 모습과 필요한 길이를 함께 보면서 다른 사람에게 설명할 때도 같은 사진을 기준으로 이야기할 수 있다. 이런 용도에 맞춰 제목과 메모도 함께 남기도록 했다.

사진 줄자에는 카메라로 거리를 추정하는 AR 측정도 있다. 다만 앱의 출발점은 사진에 기록을 남기는 일이다. AR을 지원하지 않는 기기에서도 사진을 불러와 직접 잰 치수를 입력할 수 있도록 두 흐름을 나눴다. 새로운 기능 때문에 원래 하려던 간단한 기록까지 막히지 않게 하고 싶었다.

사진에서 시작하고 사진으로 돌아오기

홈 화면에서는 사진 선택과 촬영, AR 측정을 바로 시작할 수 있다. 아래에는 저장한 작업을 최근 순서로 보여 주고 미리보기를 누르면 다시 편집하도록 했다. 작업 이름만 나열하는 것보다 사진을 보고 찾는 편이 이 앱의 사용 방식에 맞았다. 사용자는 사진을 고른 뒤 그 위에 표시를 더하고 다음에 다시 같은 사진을 열어 내용을 확인한다.

사진을 가져올 때는 기기에 있는 모든 사진을 앱이 살펴볼 필요가 없다. 시스템 사진 선택기에서 사용할 사진을 직접 고르는 방식을 사용했다. 새로 찍고 싶을 때는 촬영으로 이어진다. 앱을 열었다는 이유만으로 카메라 권한부터 요구하기보다 실제로 카메라가 필요한 흐름에서 권한을 요청하도록 했다.

편집 화면에서는 선을 추가하고 시작점과 끝점을 고른 뒤 치수를 입력한다. 이미 기록한 치수가 있는 사진은 수정할 수 있는 상태로 열린다. 숫자를 잘못 적었거나 선 하나가 필요 없어졌을 때는 목록에서 고치거나 지울 수 있다. 새로 작성하는 순간만큼 이전 기록을 수정하는 흐름도 필요했다.

사진에 선을 여러 개 그어 두면 표시한 길이 외에 설명이 더 필요한 경우가 있다. 제목과 메모는 그런 내용을 적는 자리에 두었다. 제목을 누르면 내용을 수정할 수 있고 나중에 작업을 다시 열었을 때도 사진과 함께 확인한다. 작은 기록 앱이라도 다시 찾아볼 수 있어야 처음에 적어 둔 내용이 쓸모를 갖는다.

책상 예시 이미지에 직접 입력한 치수선을 표시한 화면
예시 이미지에 직접 입력한 치수입니다. 실제 AR 측정 결과가 아닙니다.

사진 위의 숫자가 뜻하는 것

사진 한 장에는 최대 50개의 치수선을 기록할 수 있다. 선을 그었다고 사진 속 실제 길이가 자동으로 계산되는 것은 아니다. 사진 메모에서 보이는 숫자는 사용자가 직접 재서 입력한 값이다. 사진만 가지고 길이를 알아낸 것처럼 보이지 않도록 AR 추정값과 직접 입력한 값을 구분했다.

이 구분은 설명을 붙이는 데서 끝나지 않는다. AR로 가져온 숫자를 사용자가 수정하면 직접 입력한 값으로 바뀐다. 출발점이 카메라 측정이었더라도 고친 숫자까지 앱이 측정한 결과라고 표시해서는 안 된다. 나중에 사진을 다시 봤을 때 그 값이 어디에서 왔는지 이해할 수 있도록 한 부분이다.

단위는 cm와 m를 바꿔 사용할 수 있다. 넓은 공간을 적을 때와 짧은 길이를 적을 때 읽기 편한 단위가 다르기 때문이다. 단위를 바꾼다고 측정 자체가 더 정확해지지는 않는다. 숫자가 더 세밀하게 표시되는 것과 실제 길이를 더 정확하게 알아낸 것은 구분해야 했다.

블로그에 넣은 화면도 예시 이미지에 직접 치수를 적은 것이다. 실제 공간에서 AR 정확도를 확인한 증거로 넣은 사진은 아니다. 앱의 화면 구성과 기록 방식을 보여 주는 자료로 보면 된다. 길이를 기록하는 앱인 만큼 화면에 그럴듯한 숫자가 보인다는 이유만으로 측정 성능까지 입증한 것처럼 소개하지 않으려 했다.

카메라로 두 점을 고르는 흐름

AR 측정에서는 카메라 화면의 시작점과 끝점을 차례로 누른다. 두 점 사이의 직선거리를 구하는 방식이다. 화면 가운데에 물체를 맞춘 뒤 별도 버튼을 누르게 하기보다 사용자가 보고 있는 위치를 직접 선택하는 흐름으로 만들었다.

누른 곳이 선택됐는지는 바로 알 수 있어야 한다. 잠깐 표시되는 원과 안내 문구를 보여 주고 시작점에는 표시를 유지했다. 선택할 수 없는 위치를 눌렀을 때도 아무 일도 일어나지 않은 것처럼 두지 않고 이유를 안내한다. 카메라로 공간을 인식하는 과정은 눈에 보이지 않기 때문에 앱이 무엇을 받아들였는지 알려 주는 반응이 필요했다.

기기가 누른 위치를 파악하지 못하면 그 점을 측정에 넣지 않는다. 시작점을 고른 뒤 휴대전화를 움직여 끝점을 찾는 동안에도 추적 상태를 살핀다. 이미 선택한 지점을 놓치면 다시 비추도록 안내한다. 숫자를 빨리 보여 주는 것보다 선택이 유지되고 있는지 알 수 있는 편이 기록을 남길 때 덜 혼란스럽다.

측정은 한 번에 최대 10개까지 가능하다. 사진으로 넘길 때는 측정 지점이 추적되고 모든 치수선이 화면 안에 들어오는지 확인한다. 카메라에서 고른 위치와 저장할 사진의 위치가 맞아야 이후에도 같은 부분을 가리키는 기록으로 볼 수 있다. AR 화면에서 나온 값을 사진 편집으로 이어 쓰는 과정까지 하나의 흐름으로 다뤘다.

AR 기능은 기기의 지원 여부와 별도 서비스 설치 상태에 영향을 받는다. 지원 확인이나 권한 요청이 잘되지 않아도 사진 치수 메모는 사용할 수 있도록 했다. AR이 필요한 작업인지, 직접 잰 숫자를 사진에 적는 것으로 충분한지를 사용자가 선택할 수 있어야 한다. 두 기능을 한 앱에 넣되 어느 한쪽을 쓰려다 다른 쪽까지 사용할 수 없게 만들지는 않았다.

작성하던 내용을 잃지 않도록

사진에 표시를 하다 보면 휴대전화를 가로로 돌릴 수도 있다. 그때 입력하던 메모나 먼저 고른 시작점이 사라지면 다시 작업해야 한다. 화면이 다시 만들어져도 작성 중인 내용과 선택 상태를 복원하도록 했다. 저장이 끝난 작업을 여는 것과 아직 작성 중인 상태를 유지하는 일은 따로 챙겼다.

가로 화면에서는 편집 도구를 사진 옆에 배치했다. 사진의 모양과 화면 방향이 달라져도 표시하려는 부분을 보면서 작업할 수 있도록 했다. 화면을 회전했을 때 배치만 바뀌는지 보는 데서 그치지 않고 그 전에 하던 입력이 이어지는지도 확인할 대상으로 잡았다.

큰 사진을 다룰 때는 화면에 보여 주는 크기와 저장할 결과를 구분했다. 작은 미리보기를 그대로 결과로 내보내면 편집할 때는 괜찮아 보여도 저장한 사진이 달라질 수 있다. 반대로 목록에서부터 큰 사진을 계속 읽을 필요도 없다. 사용자가 사진을 고르고 다시 여는 과정이 지나치게 무거워지지 않도록 화면과 내보내기의 처리를 나눴다.

개발 중 검사도 이 흐름에 맞췄다. 작업을 저장하고 다시 불러오는지, 단위를 바꾼 상태가 유지되는지, 화면이 다시 열려도 입력이 남는지, 결과 사진이 만들어지는지를 확인했다. 검사에 사용한 이미지는 예시 자료로 준비했다. 개인 사진을 검사용 자료에 섞지 않는 것도 함께 지켰다.

저장과 공유는 같은 일이 아니었다

앱 안에 보관한 작업과 갤러리에 저장한 결과 사진은 쓰임이 다르다. 작업을 다시 열면 치수와 메모를 고칠 수 있고 갤러리에 내보낸 사진은 표시가 담긴 결과물로 남는다. 편집할 원본 작업과 다른 곳에서 볼 결과를 구분해 두었다.

저장 버튼은 결과를 갤러리에 보관하고 공유 버튼은 다른 앱으로 보내는 선택창을 연다. 공유만 했을 때 갤러리에 같은 사진을 하나 더 만들지는 않는다. 다른 사람에게 잠깐 전달하려는 동작과 내 사진 목록에 계속 보관하려는 동작을 나눴다.

삭제할 때도 이 차이가 남는다. 앱에서 작업을 지워도 이미 갤러리에 저장했거나 다른 앱으로 보낸 사진이 함께 사라지지는 않는다. 앱이 관리하는 작업의 범위와 사용자가 내보낸 사본의 범위를 같다고 설명할 수는 없었다. 저장이나 공유가 간단하게 느껴지는 것과 결과가 어디에 남는지 알 수 있는 것을 함께 챙기려 했다.

사진과 치수, 메모는 기기에 보관한다. 작업을 별도 서버로 올리는 기능은 넣지 않았고 계정도 필요하지 않다. 다만 AR 기능에 사용하는 Google 서비스의 데이터 처리는 별개의 안내가 필요하다. 사진을 서버에 올리지 않는다는 사실을 앱에서 어떤 데이터 처리도 없다는 말로 넓혀 쓰지는 않았다.

편리한 기록 도구로 남기기

사진 줄자는 Android 11 이상에서 사용할 수 있고 광고나 인앱 구매, 회원가입은 없다. 사진 치수 메모는 AR을 쓰지 않아도 가능하다. AR 서비스를 설치하거나 업데이트하는 과정에는 네트워크가 필요할 수 있으며 관련 안내는 앱에서 확인할 수 있도록 했다.

카메라로 추정한 거리는 조명과 표면의 무늬, 움직임과 공간 인식 상태에 영향을 받는다. 작은 물체의 정밀 치수를 재거나 시공과 안전 기준을 판단할 때 전문 계측기를 대신하는 용도로 소개하지 않는다. 정확한 길이가 필요한 작업은 직접 측정하고 그 결과를 어디의 길이인지 알아볼 수 있게 남기는 쪽이 이 앱에서 중요하게 본 쓰임이다.

만들면서 다룬 부분을 돌아보면 선과 숫자를 그리는 것만으로 끝나는 앱은 아니었다. 사진을 가져오는 순간부터 편집 중 상태를 유지하고 다시 열고 내보내는 과정까지 이어져야 했다. AR도 그 흐름에 들어오는 한 가지 방법으로 두었다. 이 작업을 다시 살펴볼 때도 기능의 개수보다 기록을 만들고 꺼내 보는 과정이 자연스럽게 이어지는지를 먼저 확인하려 한다.

Google Play에서 앱 보기 · 개인정보 안내

문의: 이메일 보내기

#개발 #Android #사진 줄자 #ARCore #치수 기록

댓글 0

    댓글 남기기