Lunive LogoLunive
스토리

제자리를 만들면서

placeryandroidinventoryproduct

이사를 하거나 창고를 정리하면 상자는 금방 늘어납니다. 상자에 무엇을 넣었는지는 넣는 순간에만 분명합니다. 테이프를 붙이고 나면 그 기억은 금방 흐려지고, 필요한 물건 하나를 찾으려고 상자를 차례로 열어 보게 됩니다.

제자리는 그 수고를 줄이려고 만든 Android 앱입니다. 물건을 넣을 때 적어 두고, 상자에 QR 라벨을 붙이고, 나중에는 라벨을 비추거나 검색해서 찾습니다. 첫 버전은 Google Play 비공개 테스트로 먼저 공개됩니다.

이 글은 이전 앱을 처음부터 다시 만들면서 무엇을 남기고 무엇을 바꿨는지에 대한 기록입니다.

이전 앱에서 시작했습니다

제자리의 출발점은 MoveInventory라는 이전 앱입니다. 1.x 버전을 거치며 스티커 용지 한 장에 라벨을 여러 개 인쇄하는 기능, QR 네 개가 찍힌 보정 시트로 프린터의 인쇄 위치를 맞추는 기능, 라벨을 읽는 카메라 스캐너가 차례로 들어갔습니다.

2026년 10월, Kotlin과 Jetpack Compose로 앱을 처음부터 다시 짓기 시작했습니다. 기능 목록을 그대로 옮겨 적는 대신, 물건을 넣고 옮기고 다시 찾는 동안 사용자가 실제로 겪는 수고가 무엇인지부터 다시 물었습니다. 새 이름 제자리도 그 과정에서 정했습니다. 영어 이름은 Placery입니다.

이름만 적어도 저장됩니다

등록에서 가장 먼저 줄인 것은 입력입니다. 이름만 적으면 바로 저장되고, 수량과 단위, 분류, 메모는 필요할 때만 적습니다. 여러 개를 한꺼번에 등록할 때는 한 줄에 하나씩 이름을 적고, 끝에 붙인 숫자는 수량이 됩니다. 처음 쓰는 사람에게 빈칸을 모두 채우게 하지 않는 것 — Lunive가 말하는 좋은 기본값은 여기서 시작합니다.

사용 목적도 같은 생각에서 나왔습니다. 처음 시작할 때 개인과 고급 개인 중 하나를 고르면 그 목적에 필요한 탭과 기능만 보입니다. 둘은 계정 종류나 요금제가 아니라 화면의 깊이입니다. 집의 수납 상자를 정리하는 사람과 수천 개의 물품을 관리하는 사람은 필요한 기능의 깊이가 다르기 때문입니다. 고르지 않고 건너뛸 수도 있고, 나중에 설정에서 기능을 하나씩 켜고 끌 수도 있습니다.

시작하기 화면: 사용 목적 선택
내 공간 화면: 상자마다 한 장씩 놓인 카드와 펼친 주방 상자 A

라벨은 기본값부터 쓸 만해야 합니다

상자를 다시 찾는 열쇠는 라벨입니다. 제자리는 상자와 물품마다 QR 코드, 이름, 짧은 코드가 들어간 라벨을 만들고, A4 스티커 용지나 연속 라벨에 인쇄하거나 PDF로 저장합니다. 따로 편집하지 않아도 바로 붙여 쓸 수 있는 라벨이 나오는 것을 기본으로 삼았습니다.

라벨 엔진은 한 번 다시 만들었습니다. 새 앱의 첫 빌드는 라벨을 한 번에 한 장씩, 한 가지 크기로만 만들었습니다. 이전 앱에서 쓰던 스티커 용지 인쇄가 빠진 것이었습니다. 그래서 용지 한 장에 여러 라벨을 배치하고, 여러 물품의 라벨을 한 번에 만드는 엔진을 새로 짰습니다.

라벨 모양도 한 번 더 고쳤습니다. 미리 보기를 보니 QR이 칸을 거의 다 차지하고 이름은 작게 찍혀서 읽기 어려웠습니다. 지금은 왼쪽에 QR, 그 옆에 칸에 맞춰 최대한 크게 쓴 이름, 그 아래 가는 선과 짧은 코드가 들어갑니다.

프린터마다 인쇄 위치가 조금씩 어긋나는 문제는 보정으로 풉니다. 보정 시트를 한 번 인쇄해 카메라로 찍으면, 그 프린터에 맞춰 다음 인쇄부터 위치를 바로잡습니다.

주방 상자 A 상세 화면: 들어 있는 물품과 라벨 코드
라벨 만들기 화면: A4 스티커 용지 한 장에 라벨 8개 미리 보기

비추면 상자 속이 보입니다

상자에 붙인 라벨을 카메라로 비추면 그 상자와 안에 든 물건이 바로 나옵니다. 짐을 쌀 때는 상자 라벨과 물품 라벨을 차례로 스캔하며 넣을 수 있고, 다 싼 상자는 봉인해 실수로 더 넣지 않게 합니다. 이름이나 라벨 코드로 검색할 수도 있고, 목록에서 항목을 길게 누르면 수량 변경, 다른 상자로 옮기기, 꺼내기, 봉인, 삭제를 그 자리에서 합니다.

스캐너도 처음에는 빠져 있었습니다. 이전 앱에 있던 기능이 새 앱에서 사라진 것을 검토하다 발견해 다시 넣었습니다. 카메라 화면은 기기 안에서 바로 분석하고, 영상이나 사진은 저장하지 않습니다.

움직임도 사용 경험의 일부입니다

화면 전환과 선택은 물리 기반 스프링 애니메이션으로 만들었습니다. 움직이는 도중에 다시 누르거나 방향을 바꿔도 처음부터 다시 시작하지 않고, 지금 위치에서 이어집니다.

검토하면서 고친 것도 있습니다. 사용 목적을 고를 때 선택 상자가 선택지 사이를 미끄러지던 움직임은 고른 자리에서 바로 강조되는 방식으로 바꿨습니다. 테마를 바꿀 때 끊기던 전환은 다듬었고, 스크롤 끝에서 고무줄처럼 튕겨 돌아오던 효과는 Android 기본 동작으로 돌려놓았습니다. 움직임이 불편하면 설정의 '화면 움직임'에서 끌 수 있습니다.

계정도 서버도 없이

제자리는 가입이 필요 없고, 광고나 분석 도구가 없습니다. 모든 자료는 기기 안의 앱 전용 저장공간에만 있고, 첫 버전이 요청하는 권한은 카메라 하나입니다. 인터넷 권한은 요청하지 않습니다.

처음부터 이렇게 정한 것은 아닙니다. 다시 만들기 초기에는 Google 계정으로 로그인해 사용자의 Google Drive에 자동으로 백업하는 방식도 검토했습니다. 결국 첫 버전은 계정 없이 기기 안에만 두는 쪽으로 정리했습니다. 자료를 받지 않으니 지켜야 할 약속도 분명해졌고, 그 내용은 개인정보 처리방침에 그대로 적었습니다.

백업은 기기 안에서 하루 한 번 자동으로 합니다. 백업 파일을 내보내 암호로 잠글 수 있고, 이전 앱(MoveInventory 1.9)의 백업을 가져와 쓰던 자료를 그대로 옮겨 올 수 있습니다.

다음 단계

비공개 테스트에서 실제로 써 본 사람들의 의견을 듣고 다듬은 뒤 정식으로 출시할 계획입니다. 같은 Wi-Fi에 있는 내 기기끼리 서버 없이 목록을 맞추는 기능은 다음 버전을 위해 준비하고 있습니다.

앱 사용에 관한 문의는 support@lunive.app으로 받습니다.

제자리를 만들면서 · Lunive