모두의 창업AI 솔루션 공급기업
성공사례

코딩 없이 업무 앱 만들기(7편), 휴대폰 카메라까지 채팅으로 다룹니다

강경훈·2026.08.14
코딩 없이 업무 앱 만들기(7편), 휴대폰 카메라까지 채팅으로 다룹니다

[현장 업무 앱 만들기] 7편

안녕하세요! AiApp을 만드는 엠바스의 신입 개발자입니다.

지난 편 마지막에 현장에서 실제로 물건을 확인하는 작업을 만들어 보겠다고 적어 두었습니다. 그 이야기입니다. 코드는 한 줄도 쓰지 않는 것과 개발 용어 없이 채팅으로만 진행하는 것, 두 조건은 이번 편에도 그대로 갑니다.

여섯 편에 걸쳐 만든 것은 사무실과 현장이 같이 쓰는 앱입니다. 사무실은 PC로 화물 목록을 관리하고 현장은 단말기로 물건을 확인합니다. 그런데 현장 쪽을 열어 보니 화면만 있고 안이 비어 있었습니다. 지금까지 이 앱에 남은 검수 결과는 한 건도 없습니다.

검수를 실제로 시작하려니 먼저 정리할 것이 있었습니다. 현장에서 하는 검수는 한 종류가 아닙니다.

그리고 현장에서 화물을 불러오는 일은 단말기 카메라로 합니다. 화면과 데이터는 여섯 편 동안 말로 만들어 봤는데 기기에 달린 장치는 처음입니다. 카메라까지 채팅으로 다룰 수 있을지가 이번 편의 두 번째 물음이었습니다.

업무를 있는 그대로 설명하기

계획 모드를 켜고 현장 사정을 그대로 적었습니다. 들어오는 화물은 배에서 부두로 내릴 때와 부두에서 야드로 들여놓을 때 두 번 확인하고, 나가는 화물은 야드에서 부두로 낼 때와 부두에서 배에 실을 때 두 번 확인합니다. 여기에 들어오고 나가는 것과 상관없이 터미널 안에서 자리만 옮길 때 하는 확인이 하나 더 붙습니다. 모두 다섯 가지입니다.

그 뒤에 붙인 문장이 이번 편의 요구입니다. 한 화물은 이 중 여러 작업을 거치지만 같은 작업을 두 번 하지는 않는다, 지금은 검수 결과를 남겨도 어떤 작업으로 한 검수인지가 안 남는다, 작업을 골라서 검수하게 하고 이미 끝낸 작업은 다시 못 하게 해 달라. 사무실에서는 화물마다 무엇이 끝났고 무엇이 남았는지 보이면 좋겠다는 한 줄도 함께 적었습니다.

코딩 없이 앱 만들기를 여섯 편 해 오면서 요청은 업무 설명과 원하는 결과 두 덩어리로 굳었고, 어떻게 만들지는 이번에도 적지 않았습니다.

되물음에 답하지 않고 시작하기

계획서는 방향을 셋으로 갈라 왔습니다. 작업 종류를 검수 기록에 더하고 사무실은 진척을 체크리스트로 보는 쪽, 정해진 순서대로만 지나가게 막는 쪽, 관리자가 할 작업을 미리 만들어 배정해 두는 쪽. 첫 번째를 추천했습니다.

두 번째 방향 아래에 스스로 적어 둔 한계 한 줄이 눈에 걸렸습니다. 요구사항은 안 한 작업 중 아무거나인데 이보다 더 강한 제약을 얹는 것이라 검증 규칙이 커진다는 내용입니다. 자기가 낸 방향을 자기가 기각한 문장이라 두 번 읽었습니다.

되물음도 세 가지 왔습니다. 그중 하나가 자리만 옮기는 작업은 한 화물에 여러 번 생길 수 있는데 두 번 금지를 여기에도 적용할지였고, 이것만 반복을 허용하는 편이 현장에 맞을 수 있다는 의견까지 붙어 있었습니다. 이번에도 되물음에는 답하지 않고 추천안 그대로 시작. 1편부터 지켜 온 진행 방식입니다.

나온 결과는 다섯 가지 전부 한 번씩이었습니다. 자기가 먼저 권한 예외를 스스로 버리고 제가 처음 적은 문장을 그대로 따른 것입니다. 되물음은 제안이 아니라 확인이었고, 답이 없으면 처음 지시가 이깁니다.

스스로 붙인 규칙 확인하기

구현이 끝나고 현장 화면을 열었습니다. 화물을 부르면 작업유형 선택이 먼저 나오고 다섯 가지가 나란히 놓여 있습니다. 이 화물은 수출이라 반출 검수와 선적 검수에만 필수 표시가 붙어 있는데, 무엇을 필수로 볼지는 제가 적어 보낸 적이 없습니다. 화물에 이미 들어 있던 수출입 구분에서 끌어다 쓴 것.

반출 검수를 골라 실측값을 넣고 전송했더니 검수결과 전송 완료가 떴습니다. 여섯 편 만에 이 앱에 남은 첫 검수입니다.

같은 화물을 다시 열어 봤습니다. 반출 검수 자리가 회색으로 바뀌어 있고 완료됨과 검수원 이름과 완료 시각이 함께 적혀 있습니다. 눌러 봐도 반응이 없는 상태. 끝난 작업을 목록에서 지워 버리면 화면은 깔끔해지지만 현장에서는 왜 안 되는지 알 수 없는데, 남겨 두고 이유를 붙이는 쪽이 됐습니다.

사무실 쪽 화물 목록에는 검수 진척 열이 새로 생겼습니다. 동그라미 다섯 개가 화물마다 붙어 있고 끝낸 작업만 채워집니다. 이어서 선적 검수까지 마치니 그 화물의 상태가 대기에서 완료로 바뀌었습니다. 수출 화물에 필요한 작업 두 가지가 다 끝났다는 판단을 앱이 스스로 한 것입니다.

빠진 두 가지 마저 채우기

검수를 몇 건 더 남겨 보니 아쉬운 데가 두 군데였습니다. 하나는 나중에 그 검수를 다시 봐도 어느 선적계획에서 한 것인지 알 수 없다는 것. 검수할 때 화면에는 계획이 떠 있는데 남은 기록에는 붙어 있지 않았습니다. 다른 하나는 수량을 잘못 세거나 이슈를 잘못 고른 것을 나중에 알았을 때 고칠 길이 없다는 것입니다.

계획 모드는 끄고 두 가지만 적어 보냈습니다. 계획도 같이 남게 해 달라, 잘못 적은 검수를 다시 열어 값을 고칠 수 있게 해 달라, 다만 같은 작업을 새로 하는 것은 계속 막아야 한다, 고치는 것과 새로 하는 것은 다르다.

돌아온 화면에서 각 작업 섹션에는 선적계획 이름이 붙었고 완료된 섹션에만 검수 결과 수정 버튼이 생겼습니다. 아직 안 한 작업 자리에는 문장이 하나 들어가 있었습니다. 현장 앱에서 새로 검수해야 하고 관리자 화면에서는 이미 있는 결과만 고칠 수 있다는 내용입니다. 수정을 어느 화면에서 허용할지는 제가 정해 준 적이 없는데 경계가 먼저 그어져 있었습니다.

붙어 있는 규칙이 하나 더 있었습니다. 이슈유형을 손상으로 바꾸고 저장했는데 넘어가지 않길래 수정이 안 되는 줄 알았는데, 화면을 다시 보니 이슈가 있는 경우 사진을 최소 한 장 첨부해 달라는 문구가 있었습니다. 제가 적어 보낸 적 없는 업무 규칙입니다.

화면 순서를 다시 정하기

여기까지는 사무실 쪽에서 본 것이고, 현장 흐름을 처음부터 따라가 보니 순서가 반대였습니다. 검수원은 그날 한 배, 한 작업을 맡습니다. 단말기를 들면 먼저 어느 배의 어느 항차인지 고르고 오늘 할 작업을 고른 다음, 그 상태로 화물을 하나씩 계속 스캔합니다. 화물마다 작업을 다시 고르는 일은 없는데 앱은 화물을 먼저 스캔한 뒤에 작업을 고르게 되어 있었습니다.

이번에는 만드는 방법 대신 일하는 순서를 적었습니다. 검수원이 하루를 어떻게 시작하는지, 무엇을 먼저 고르고 무엇을 반복하는지. 그리고 세 가지를 요구했습니다. 배와 항차를 고르면 그 항차 화물만 조회될 것, 이미 끝낸 작업을 스캔하면 그 자리에서 알려 주고 넘어가지 않을 것, 지금 고른 값이 검수하는 내내 화면에 보일 것.

화면이 두 개 늘었습니다. 배와 항차를 고르는 화면과 오늘 할 작업유형을 고르는 화면. 위쪽에는 앞에서 고른 값이 계속 붙어 있고 되돌아가는 링크도 함께 놓였습니다. 검수 입력 화면에서는 작업을 다시 고르지 않고 미리 정해 둔 작업으로 바로 전송됩니다.

막는 자리도 옮겨졌습니다. 전에는 화물을 열어야 잠긴 버튼이 보였는데, 이제는 화물을 열기도 전에 이미 반출 검수를 완료했다는 안내가 뜨고 그대로 다음 화물로 넘어갑니다. 한 작업으로 수십 건을 연달아 찍는 흐름에서는 이 두 단계 차이가 큽니다.

안내 문구는 세 갈래로 갈려 있었습니다. 이미 끝낸 작업, 다른 배와 항차 소속, 이 계획에 아예 없는 코드. 제가 말한 것은 첫 번째뿐이고 나머지 둘은 제가 요구하지 않았습니다. 기능을 하나 더 만드는 것보다 순서를 바꾸는 쪽이 훨씬 짧게 끝났습니다.

눈에 보이는 것만 적어 보내기

여기부터는 단말기를 손에 들고 확인했습니다. 스캔 화면에서 카메라로 스캔 시작을 눌렀더니 화면이 까맣기만 합니다. 권한은 허용했고 단말기 위쪽에도 카메라가 켜졌다는 표시가 떠 있는데 아무것도 보이지 않습니다.

이 화면은 1편부터 있던 자리입니다. 검수가 한 건도 없으니 여섯 편 동안 아무도 이 버튼을 누르지 않았고, 그래서 몰랐습니다. 기능이 빠져 있어서가 아니라 지나가 본 적 없는 길이라 드러나지 않은 것.

원인을 적어 보내지는 않았습니다. 보이는 것만 적었습니다. 권한은 허용했다, 카메라가 켜졌다는 표시는 뜬다, 그런데 화면은 까맣다, 바코드를 비춰도 반응이 없다. 여기에 하나를 덧붙였습니다. 카메라를 못 쓰는 단말기도 있을 테니 그럴 때는 왜 안 되는지 알려 주고 코드를 직접 입력하는 쪽으로 안내해 달라.

답은 원인부터 나왔습니다. 카메라 영상을 화면에 붙이는 일이 붙일 자리가 만들어지기도 전에 벌어지고 있었다는 것. 그래서 카메라는 정상으로 켜지는데 영상이 갈 데가 없어 검은 화면이던 것입니다. 순서를 바로잡으니 화면이 나왔고, 권한 거부와 카메라 없음과 다른 앱이 쓰는 중까지 각각 갈라 안내가 붙었습니다.

잘못 읽은 증상 바로잡기

화면은 나왔는데 이번에는 바코드가 읽히지 않았습니다. 다시 보이는 것만 적었습니다. 카메라 화면은 잘 나온다, 그런데 아무리 비춰도 읽히지 않는다, 읽으면 그 값이 코드 칸에 글자로 들어가고 바로 조회까지 되면 된다, 손에 쥐는 스캐너로 찍는 것과 똑같이 동작하면 된다.

브라우저에 들어 있는 인식 기능을 쓰고 있었는데 그것이 대부분의 기기에서 제대로 지원되지 않아 애초에 거의 못 읽는 상태였다는 답이 왔고, 인식기를 통째로 다른 것으로 갈았습니다. 종이에 인쇄한 것도 다른 화면에 띄운 것도 이제 읽힙니다.

여기서 제가 두 번 잘못 옮겨 적었습니다. 처음에는 읽히자마자 화면이 넘어가 버려 볼 새가 없는 상황으로 이해했는데 실제는 정반대였습니다. 아무 일도 일어나지 않는 것처럼 보이는데 화면을 아래로 내려 보면 코드 칸에 번호가 이미 들어가 있는 상태. 읽힌 줄을 모르는 것이 문제였습니다. 잘못 쓴 요청은 두 번 다 진행 중에 중지시켰고 앱에는 변경이 남지 않았습니다. 방향이 틀렸다 싶으면 끝까지 가지 않고 멈추는 편이 쌉니다.

마지막으로 제 해석을 걷어내고 본 그대로 옮겼습니다. 카메라를 대고 있어도 읽혔다는 표시가 전혀 없다, 한참 뒤에 화면을 내려 보니 번호가 들어가 있었다, 찍는 사람은 카메라 화면만 쳐다보고 있으니 읽히는 그 순간 카메라 화면 위에 표시가 나야 한다.

돌아온 답이 제 오해까지 정정했습니다. 조회는 원래 이어지고 있었고 결과 문구가 화면 맨 아래에만 뜨고 있었다는 것. 게다가 이미 끝낸 작업을 찍었을 때 카메라가 꺼져 버리는 문제가 하나 더 있었는데, 그건 저도 본 적이 없습니다.

이제 결과가 카메라 화면 위에 바로 겹쳐 뜹니다. 못 찾은 코드와 다른 배·항차 소속은 빨간색, 이미 끝낸 작업은 호박색으로 잠깐 떴다가 인식 중으로 돌아갑니다. 단말기로 다시 찍어 보니 읽히고, 검수 입력으로 넘어가고, 전송까지 이어집니다.

도입에서 던진 두 번째 물음은 여기서 답이 됐습니다. 카메라는 화면이나 데이터와 달리 기기에 달린 장치라 이번만은 다를 줄 알았는데, 켜지는 것부터 바코드를 읽고 조회로 이어지는 데까지 채팅 밖으로 나갈 일이 없었습니다.

여기까지가 이번 편입니다. 다음 편에서는 쌓이기 시작한 검수 결과를 사무실에서 모아 보는 화면을 만들어 보겠습니다.