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

코딩 없이 업무 앱 만들기(4편), 요청을 무르는 것도 채팅으로

강경훈·2026.08.13
코딩 없이 업무 앱 만들기(4편), 요청을 무르는 것도 채팅으로

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

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

지난 편에서 사무실과 현장이 같이 쓰는 앱에 데이터가 쌓이기 시작했습니다. 코드는 한 줄도 쓰지 않는 것, 개발 용어 없이 채팅으로만 진행하는 것. 두 조건은 이번 편에도 그대로 갑니다.

이번 편에는 지난 세 편에 없던 대목이 하나 있습니다. 만들어 달라고 해서 나온 것을 다시 빼 달라고 한 것입니다. 코딩 없이 앱 만들기를 하다 보면 요청이 늘 맞을 수는 없는데, 틀렸을 때 어떻게 되는지는 아직 해 본 적이 없었습니다.

지우지 말라는 요구로 첫 요청

목록에서 화물을 하나 지워 봤더니 확인 대화상자에 문장 하나가 떠 있었습니다. 연결된 검수 결과가 함께 삭제되며 되돌릴 수 없다는 안내.

우리 일에서는 곤란한 동작입니다. 현장에서 검수를 마친 기록이 그 화물을 보고 있는데 화물이 통째로 없어지면 검수 기록도 같이 날아가고, 잘못 지운 것을 되살릴 방법도 없으니까요.

계획 모드를 켜고 업무 이야기 그대로 적었습니다. 새로 넣거나 지운 것도 고친 것과 똑같이 기록에 남아야 한다, 지운 화물이 정말로 없어지면 안 된다, 예전 검수 기록이 그 화물을 보고 있으니 지우는 대신 안 쓰는 것으로만 표시하고 목록에서 안 보이게 해달라, 필요하면 다시 쓸 수 있어야 한다.

지우면 안 된다는 말을 먼저 적은 것은 3편에서 통했던 방식입니다. 선적계획도 끝난 것을 삭제하는 대신 사용 안 함으로 표시하는 구조가 그렇게 나왔습니다.

계획서가 먼저 짚은 전제

계획서는 제 요청을 성공 기준 네 가지로 정리했습니다. 등록과 수정과 비활성화와 복원 모두 누가 언제 무엇을 했는지에 답할 수 있을 것, 화물을 지워도 과거 검수 기록과의 연결이 끊기지 않을 것, 목록에서는 안 쓰는 화물이 방해되지 않을 것, 기록에서 네 가지를 한눈에 구분할 수 있을 것.

그 아래에 제가 생각하지 못한 줄이 하나 붙어 있었습니다. 지금 화물의 상태 칸은 검수 진행 상태를 뜻하므로, 사용 여부는 그것과 별개의 표시로 다뤄야 두 개념이 섞이지 않는다는 지적이었습니다.

제 요청 어디에도 상태라는 말은 없었습니다. 이미 만들어 둔 화면에 대기와 완료를 표시하는 칸이 있다는 것을 계획서가 먼저 확인하고, 거기에 사용 여부를 얹으면 두 가지가 한 칸에서 부딪힌다는 점까지 짚어 온 것입니다.

방향은 이번에도 셋. 기록을 시간순 한 줄기로 두고 목록에 안 쓰는 화물 보기 스위치를 붙이는 안, 안 쓰는 화물만 따로 모으는 보관함 화면을 두고 되살리는 일은 관리자만 하게 하는 안, 화면은 그대로 두고 데이터가 사라지는 것만 먼저 막는 안이었습니다.

각 방향마다 무엇을 잃는지도 같이 적혀 있었는데, 첫 번째 안은 되살리는 권한이 화물을 고칠 수 있는 사람 전체에게 열린다는 대목이 붙어 있었고 세 번째 안은 안 쓰는 화물을 찾아낼 입구가 없어 관리번호를 모르면 복원이 사실상 불가능하다고 스스로 밝히고 있었습니다. 추천안인 첫 번째로 시작.

새로 생긴 표시 확인하기

목록에 다녀오니 버튼 이름부터 달라져 있었습니다. 삭제가 아니라 안 쓰는 것으로 표시. 눌러 보면 확인 문구도 함께 바뀌어서, 되돌릴 수 없다던 자리에 목록에서 안 보이게 되고 연결된 검수 결과는 그대로 남으며 나중에 다시 활성화해 쓸 수 있다는 안내가 들어와 있습니다.

총 건수 옆에는 안 쓰는 화물 포함이라는 스위치가 새로 생겼는데, 켜면 안 쓰기로 표시한 화물이 회색 취소선으로 목록에 다시 나타나고 그 줄에서 바로 복원할 수 있습니다.

화물 상세로 들어가면 변경 이력 자리의 이름이 생애주기 타임라인으로 바뀌어 있고, 한 건을 새로 등록하고 안 쓰기로 표시했다가 다시 복원해 보니 세 가지가 순서대로 남았습니다. 등록은 초록, 안 씀은 빨강, 복원은 보라. 오른쪽에는 엑셀로 올린 것인지 사람이 직접 한 것인지가 따로 표시되니, 무슨 일이 있었는지와 어디서 왔는지를 한 줄에서 같이 읽게 됩니다.

검수 현황 대시보드에서도 안 쓰기로 표시한 화물이 빠져 있었는데, 제가 말한 것은 목록이었으니 같은 성격의 다른 화면까지 함께 정리된 셈입니다.

빠진 곳 찾아 다시 요청하기

쓰다 보니 어긋나는 데가 두 군데 보였습니다. 안 쓰기로 표시할 때는 한 번 물어보는데 되살릴 때는 아무것도 묻지 않고 바로 되고, 총 건수가 스위치를 켜고 끌 때마다 달라지는데 무엇을 센 숫자인지 화면에 적혀 있지 않았습니다.

계획 모드는 끄고 이 두 가지만 적어 보냈습니다. 되살릴 때도 한 번 물어봐 달라, 검수 기록이 몇 건 같이 돌아오는지도 알려주면 좋겠다, 지금 세고 있는 게 무엇의 총인지 숫자 옆에 적어 달라.

돌아온 화면에서 총 건수는 사용 중인 화물 총 몇 건과 전체 화물 총 몇 건으로 갈렸고, 복원 버튼에는 확인 대화상자가 붙었습니다. 목록에 다시 나타나고 연결된 검수 기록 몇 건도 함께 돌아온다는 문장까지 들어가 있었습니다.

이 문장을 보고 계획서를 다시 열어 봤습니다. 검수 기록이 몇 건 붙어 있는지 알려주자는 아이디어는 제가 고르지 않은 두 번째 방향, 그러니까 보관함 화면 쪽에 적혀 있던 대목입니다. 방향을 하나 고르면 나머지는 버려지는 줄 알았는데, 안 고른 방향의 조각도 한 줄만 적으면 나중에 가져올 수 있었습니다.

기록을 한 화면에 모으기

여기까지는 화물 하나를 열어야 그 화물의 기록이 보였습니다. 숫자가 안 맞는 날에 필요한 건 그게 아니라, 선적계획 하나를 놓고 그 안에서 무슨 일이 있었는지를 통째로 보는 화면입니다.

다시 계획 모드를 켜고 적었습니다. 계획 단위로 한 화면에서 다 보고 싶다, 어떤 화물에 무슨 일이 있었는지를 화물별로 묶어 달라, 엑셀로 올린 건지 사람이 손으로 한 건지 등록인지 수정인지 안 쓰기인지 복원인지 골라서 걸러 볼 수 있어야 한다, 그 목록을 파일로 받을 수 있어야 한다. 문제가 생기면 그 파일을 놓고 이야기해야 하니까요.

관리자 메뉴에 화물 변경 이력이 새로 생겼습니다. 기본은 시간순 표이고, 오른쪽 위 스위치로 화물별 보기로 넘어갑니다. 화물별로 넘기면 화물관리번호마다 묶여서 이력이 몇 건인지, 마지막으로 언제 손을 탔는지, 등록과 수정과 안 쓰기와 복원이 각각 몇 번인지가 먼저 보이고 그 아래로 상세가 펼쳐집니다.

출처와 이벤트로 거르는 칸이 위에 있고 화물관리번호로 찾는 칸도 있습니다. 안 쓰기만 골라 보니 총 건수 자리가 이 조건으로 몇 건, 전체 몇 건 중이라는 문장으로 바뀝니다. 결과 다운로드를 누르면 화면에 걸어 둔 조건이 그대로 반영된 파일이 나오고, 파일 이름에는 선적계획 이름과 받은 날짜가 들어가 있습니다.

파일 이름은 제가 말한 적 없는 부분입니다. 그 파일을 놓고 이야기해야 한다고 적은 한 줄을 받아서, 어떤 조건의 어느 시점 자료인지 나중에 특정할 수 있어야 한다는 설계로 옮겨 놓은 셈이었습니다.

이력이 340건쯤 된다는 것과 한 화면에 다 안 나올 테니 나눠서 보여 달라는 것도 미리 적었더니, 50건씩 넘겨 보는 방식이 되고 전체가 몇 건인지가 위에 늘 표시됩니다. 3편에서 화물 목록에 했던 요청과 같은 형태인데, 이번에는 규모를 먼저 말하는 것만으로 같은 구조가 나왔습니다.

요청을 되돌리기

이력 화면을 보다가 출처 배지가 눈에 걸렸습니다. 엑셀 업로드라고 적힌 옆 괄호 안에 원본 파일의 몇 번째 줄이었는지가 같이 들어가 있었는데, 배지는 엑셀인지 직접인지만 보여주는 자리라 다른 정보가 섞이니 둘 다 잘 안 읽힙니다.

줄 번호를 배지에서 빼고 따로 칸을 만들어 달라고 했고, 내려받는 파일에는 이미 그 칸이 따로 있으니 화면도 그렇게 맞춰 달라는 말을 붙였습니다. 답이 왔는데 칸을 새로 만들면서 다운로드 파일과 순서를 같게 맞췄다는 설명이 함께 있었습니다. 화면과 파일의 칸 순서를 맞춘다는 건 제가 요청하지 않은 조건입니다.

그런데 새 칸을 보고 나니 생각이 바뀌었습니다. 엑셀은 계속 붙어 있는 게 아니라 한 번 올리고 끝나는 도구입니다. 올린 파일은 우리가 계속 들고 있지도 않고 앱에도 남지 않으니, 나중에 기록에서 7줄이라는 표시를 봐도 어느 파일의 7줄인지 알 방법이 없습니다. 줄 번호가 쓸모 있는 순간은 파일을 아직 열어 놓고 있는 업로드 직후뿐이고, 그 자리에는 이미 몇 행이 걸렸는지 알려주는 안내가 있습니다.

그래서 방금 만들어 달라고 한 것을 다시 빼 달라고 적었습니다. 이력 화면에서도 파일에서도 그 칸을 없애 달라, 화물별 보기와 화물 상세에 붙은 것도 같이 없애 달라, 엑셀로 올린 건지 직접 고친 건지만 남으면 된다. 업로드 직후 안내는 잘 되고 있으니 그대로 두라는 말도 함께.

빼는 것도 넣는 것만큼 걸리지 않았습니다. 화면 칸이 없어지고 내려받는 파일에서도 사라졌으며, 그대로 두라고 한 업로드 직후 안내는 손대지 않았다는 확인까지 왔습니다. 빼 달라는 범위와 남겨 달라는 범위가 한 문단 안에 섞여 있었는데 그 경계가 그대로 지켜졌습니다.

1편에서 화면을, 2편에서 규칙을, 3편에서 데이터를 말로 옮겼습니다. 이번 편에서 알게 된 것은 그 말이 한 방향으로만 흐르지 않는다는 점입니다. 만들어 달라고 한 것을 빼 달라고 할 수 있고, 고르지 않고 지나친 방향도 나중에 가져올 수 있습니다. 처음부터 정확하게 요청해야 한다는 부담이 여기서 줄어듭니다.

여기까지가 이번 편입니다. 다음 편에서는 화면에 박혀 있는 선택 항목들을 우리가 직접 관리하는 부분을 다뤄 보겠습니다.