[현장 업무 앱 만들기] 5편
안녕하세요! AiApp을 만드는 엠바스의 신입 개발자입니다.
지난 편 마지막에 다음 주제를 예고해 두었습니다. 화면에 박혀 있는 선택 항목을 우리가 직접 관리하는 것. 코드는 한 줄도 쓰지 않는 것과 개발 용어 없이 채팅으로만 진행하는 것, 두 조건은 이번 편에도 그대로 갑니다.
화물을 등록할 때 화물형태 칸은 팔레트, 컨테이너, 벌크, 박스 네 가지 중에서 고르게 되어 있습니다. 그런데 이 네 가지가 화면에 박혀 있어서 현장에 새 포장 방식이 하나 생기면 값 하나를 늘리는 데도 앱을 수정해야 합니다. 코딩 없이 앱 만들기로 여기까지 왔는데 선택지 하나 늘리는 일이 매번 수정 요청이 된다면 어딘가 덜 된 셈입니다.
반대편 사정은 정반대였습니다. 선적항이나 작업구분 같은 칸은 아무 글자나 적을 수 있어서 사람마다 표기가 달라지고, 나중에 모아서 세어 볼 방법이 없습니다. 한쪽은 지나치게 굳어 있고 한쪽은 지나치게 풀려 있는 상태.
선택지를 직접 관리하겠다고 요청하기
계획 모드를 켜고 업무 이야기 그대로 적었습니다. 고르는 목록 아홉 개를 우리가 직접 관리할 화면이 필요하다, 한 번 쓴 값은 지우면 안 되고 안 쓰게만 할 수 있으면 된다, 보여 주는 순서도 우리가 정하고 싶다, 지금 들어 있는 화물 693건의 값은 그대로 있어야 한다.
지우면 안 된다는 말을 먼저 적는 것은 이제 이 시리즈의 버릇입니다. 3편의 선적계획과 4편의 화물이 그렇게 남았고, 이번에는 고르는 값 하나하나가 대상이 됐습니다.
계획서가 먼저 짚은 위험 읽기
계획서는 요청을 성공 기준 네 가지로 정리했습니다. 아홉 개 목록을 화면에서 추가하고 순서를 바꾸고 사용 안 함으로 돌릴 수 있을 것, 한 번 쓰인 값은 삭제되지 않을 것, 바꾸는 과정에서 기존 693건의 값이 하나도 사라지지 않을 것, 우리가 값을 손으로 다시 입력할 필요가 없을 것.
그 아래에 경고 문단이 하나 붙어 있었습니다. 등록 화면과 파일 업로드와 내려받기가 같은 선택 목록 정의를 함께 보고 있어서, 타이핑하던 칸을 고르는 칸으로 바꾸는 순간 목록에 값을 올려 두지 않으면 지금까지 잘 올라가던 파일이 갑자기 전부 거부된다는 내용입니다. 이 문단은 뒤에서 다시 등장합니다.
되물음도 있었습니다. 제가 부탁한 아홉 개 밖에서 같은 방식으로 관리할 후보 두 개를 계획서가 먼저 찾아 물어 왔습니다. 이번에도 되물음에는 답하지 않고 추천안 그대로 시작. 1편부터 지켜 온 진행 방식입니다.
새 관리 화면 확인하기
관리자 메뉴에 코드 목록 관리가 새로 생겼습니다. 왼쪽에 목록 아홉 개가 나란히 있고, 값마다 사용 중 표시와 순서를 바꾸는 화살표, 그 값을 쓰는 화물이 몇 건인지 보여 주는 버튼까지 붙어 있는데 삭제 버튼만은 어디에도 없습니다.

화면 위에는 안내문 한 줄. 이미 쓰인 값도 삭제할 수 없고 사용 안 함으로만 전환된다는 문장입니다. 제가 채팅에 적은 요구가 화면의 안내문으로 옮겨 앉은 것.
이미 들어 있던 값도 자동으로 목록에 올라와 있었고, 팔레트부터 박스까지 그대로인 채 화물 693건도 값 하나 바뀌지 않았습니다. 등록 화면의 고르는 칸은 이제 박힌 값이 아니라 이 목록을 읽습니다.
쓰다 보니 걸리는 데가 두 군데 있었습니다. 관리 화면을 가장 먼저 열면 목록이 비어 보였다가 다른 화면을 다녀오면 채워지는 것, 그리고 타이핑하던 네 칸은 등록된 값이 아직 없어서 고를 것이 하나도 없는데 화면이 그 사정을 알려 주지 않는 것.
비어 있는 목록에 안내 붙이기
계획 모드는 끄고 두 가지만 적어 보냈습니다. 어느 화면부터 열든 목록은 항상 보여야 한다, 비어 있는 칸은 비어 있다고 알려 주고 값을 채우러 갈 수 있게 해 달라.
돌아온 화면에서 값이 없는 칸에는 등록된 값이 없다는 안내와 함께 코드 목록 관리로 가는 글자가 붙었고, 눌러 보니 그 칸의 목록이 바로 열립니다. 네 칸의 글자가 각자 제 목록을 가리키게 되어 있었는데 이 부분은 제가 말한 적 없는 설계입니다.

함께 다니는 값 짝으로 등록하기
배 이름과 항해번호는 성격이 조금 달랐습니다. 각각 목록으로 만들면 되는 값이 아니라 선적계획마다 어떤 배가 어떤 번호로 다니는지 짝이 정해져 있는 값입니다. 그런데 아무 글자나 적을 수 있으니 오타가 나도 그대로 들어가는 구조.
계획 모드를 다시 켜고 적었습니다. 계획마다 쓸 배와 항해번호를 미리 등록해 두고 화물을 넣을 때는 등록된 짝에서 고르게 해 달라, 파일에 등록 안 된 짝이 들어 있으면 그 줄만 빼고 무엇이 안 맞는지 알려 달라, 기존 화물이 쓰는 짝은 그대로 살아 있어야 한다, 배도 번호도 지우는 대신 안 쓰는 것으로만.
선적계획 관리에 배와 항해번호를 등록하는 자리가 생겼고, 기존 화물이 쓰던 짝 네 개가 자동으로 목록에 들어와 있었습니다. 등록 화면의 두 칸은 짝 하나를 통째로 고르는 한 칸으로 합쳐졌습니다. 배는 맞는데 번호가 다른 조합은 목록에 아예 없으니 오타가 들어올 문이 닫힌 셈입니다.

경고 문단을 점검 목록으로 쓰기
계획서의 경고 문단이 계속 마음에 남아 있었습니다. 그대로 해 봤습니다. 목록 화면에서 파일을 내려받아 한 글자도 수정하지 않고 다시 올렸더니 347줄이 전부 거부됐습니다. 선적항 값이 비어 있다는 안내가 줄마다 붙어 있었는데, 우리 화물은 그 칸을 쓰지 않아 전에는 잘 올라가던 파일입니다.
경고 그대로였습니다. 타이핑하던 칸이 고르는 칸으로 바뀌면서 아직 값을 등록하지 않은 목록이 빈 칸까지 막아선 것입니다.
화면에 보이는 것만 적어 보냈습니다. 내려받은 파일을 그대로 올렸는데 전부 거부된다, 비어 있던 칸은 비어 있는 채로 올라가야 한다, 값을 등록하지 않은 목록 때문에 파일 전체가 막히면 안 된다.
답은 원인부터 정리해 왔습니다. 필수가 아닌 칸을 필수처럼 다루고 있었다는 것. 이제 비어 있으면 빈 값 그대로 통과하고, 값이 있는데 목록에 없을 때만 걸러지며, 그때도 목록 자체가 비어 있는 경우와 값이 목록에 없는 경우를 구분해 안내합니다. 같은 파일을 다시 올리니 347줄 전부 변경 없음으로 통과.

계획서가 미리 적어 둔 경고 문단은 그대로 점검 목록이 됐습니다. 계획서를 승인 서류처럼 한 번 읽고 넘기는 대신 구현이 끝난 뒤에 경고 자리만 다시 열어 하나씩 눌러 보는 것, 이번 편에서 얻은 사용법입니다.
마지막으로 비어 있던 네 목록에 값을 직접 넣었습니다. 터미널 네 곳과 물류센터 세 곳과 작업 구분 네 가지. 개발이 아니라 관리 화면의 추가 버튼으로 끝나는 일이 됐고, 사용 건수 보기를 누르면 그 값을 쓰는 화물이 몇 건인지 바로 보입니다.

1편에서 화면을, 2편에서 규칙을, 3편에서 데이터를, 4편에서 되돌리는 길을 채팅만으로 적용해 왔습니다. 이번 편에서 적용한 것은 고르는 값입니다. 앱에서 가장 굳어 있던 부분이 관리 화면으로 나왔고, 선택지에 새 값을 넣거나 쓰지 않게 돌리는 일이 더는 개발 요청이 아니게 됐습니다.
여기까지가 이번 편입니다. 다음 편에서는 현장 담당자가 이 앱을 휴대폰에 담아 쓸 수 있는지 알아보겠습니다.




