현실에서 발생하는 예외 처리는 실제 사례에서 시작합니다. 앱 로직을 작성하기 전에 늦은 승인, 누락된 데이터, 특수 사례를 어떻게 수집할지 알아보세요.

깔끔한 순서도는 사람들이 항상 올바른 순서, 올바른 데이터, 올바른 시간에 행동한다고 가정하기 때문에 보기 좋습니다. 현실의 업무는 거의 그렇지 않습니다. 누군가 양식을 늦게 제출하고, 관리자가 병가를 내고, 고객이 중요한 세부 정보를 빠뜨리거나, 결제에 처음에는 언급되지 않은 특별 승인이 필요한 경우가 생깁니다.
이 때문에 데모에서는 완성된 것처럼 보였던 앱의 첫 버전이 실제 사용자들이 쓰기 시작하면 곧 문제가 생깁니다. 좋은(해피) 경로는 작동하지만, 일상 업무는 오래도록 그 경로에 머물지 않습니다.
가장 안전한 시작점은 깔끔한 버전이 불완전하다고 가정하는 것입니다. 작은 하나의 상세가 어긋나면 간단한 요청이 빠르게 바뀔 수 있습니다. 한 필드가 빠졌거나, 한 명의 비정상적인 고객이 있거나, 한 번의 승인 지연이 전체 프로세스를 멈추고 사람들로 하여금 다음에 무엇을 해야 할지 추측하게 만듭니다.
흔한 실패는 보통 단순합니다:
이것은 단순한 불편함 이상입니다. 하나의 특이한 사례가 뒤에 있던 모든 작업을 막을 수 있습니다. 직원들은 채팅, 스프레드시트, 이메일로 우회 방법을 쓰기 시작하고, 앱은 더 이상 업무가 일어나는 단일 장소가 아니게 됩니다.
더 나은 목표는 단순합니다: 규칙을 작성하기 전에 예외를 수집하세요. 데이터가 없을 때, 타이밍이 어긋날 때, 요청이 표준 경로에 맞지 않을 때 무슨 일이 일어나는지 물으세요. 그런 엉킨 사례들은 부수적인 세부가 아닙니다. 실제로 앱이 작동할지 결정하는 요소입니다.
처음 포착해야 할 문제들은 드문 엣지 케이스가 아닙니다. 매주 일어나면서 깔끔한 워크플로를 조용히 깨트리는 지저분한 사건들입니다. 견고한 첫 버전을 원한다면 업무가 지연되거나, 막히거나, 시스템이 결정할 수 없어 사람에게 넘겨지는 곳을 찾아보세요.
늦은 승인이 보통 상단에 있습니다. 관리자가 마감일 이후, 급여 마감 이후, 혹은 이미 재고가 재주문된 이후에 승인을 합니다. 앱은 그 순간에 대한 규칙이 필요합니다. 요청을 다시 열어야 할까요, 새 요청을 만들어야 할까요, 재무팀에 알릴까요, 아니면 원래 시간에 승인된 것처럼 가장하면 안 될까요?
누락된 데이터도 흔한 차단 요소입니다. 양식이 세금 ID, 영수증, 배송일, 고객 연락처 없이 제출될 수 있습니다. 다음 단계가 그 필드에 의존한다면 흐름은 막연한 오류로 실패하면 안 됩니다. 중단하고 무엇이 빠졌는지 보여주며 수정하기 쉽게 만들어야 합니다.
특수 사례는 정상 경로의 한계를 드러내므로 중요합니다. 대부분의 환불은 단순할지 모르지만, 일정 금액 이상의 환불은 추가 증빙이 필요할 수 있습니다. 또는 한 부서가 다른 승인 규칙을 따를 수 있습니다. 이런 사례는 전체 앱을 새로 만들 필요는 없지만 명확한 분기가 필요합니다.
유용한 첫 번째 점검은 네 가지 패턴을 찾는 것입니다: 원래 경로를 따르기엔 너무 늦게 도착한 승인, 다음 동작을 막는 누락된 세부사항, 다른 규칙이 필요한 비정상적인 요청, 그리고 시스템이 멈추고 사람에게 물어봐야 할 순간.
사람의 검토는 실패가 아닙니다. 충돌하는 데이터, 정책 예외, 큰 비용이 걸리는 행동을 시스템이 감지하면 사람의 검토가 종종 가장 안전한 선택입니다. 멈춰 있는 검토 대기열은 무시된 실수보다 보통 낫습니다.
이런 예외를 일찍 찾으면 첫 버전이 훨씬 실용적이고 덜 약해 보입니다.
나쁜 예외를 놓치는 가장 빠른 방법은 과정을 설계한 관리자에게만 묻는 것입니다. 실제 문제는 매일 작업을 수행하는 사람들에게 있습니다. 그들은 어떤 단계가 건너뛰어지는지, 어떤 필드가 자주 비어 있는지, 어떤 승인들이 늦게, 순서가 어긋나거나 시스템 밖에서 일어나는지 압니다.
짧은 대화로 시작하세요. 사람들에게 정상적인 사례를 단계별로 설명하게 한 다음, 일이 엉망이 되었던 마지막 경우에 무엇이 달라졌는지 물어보세요. 프로세스에 대한 광범위한 의견을 묻지 마세요. 사실적 이야기, 즉 무슨 일이 일어났고 무엇이 빠졌으며 누가 고쳤고 수작업으로 무엇을 했는지를 물어보세요.
과거 업무 기록도 좋은 자료입니다. 이전 이메일, 지원 티켓, 채팅 메시지, 이관 노트는 깔끔한 흐름이 깨진 정확한 순간을 종종 보여줍니다. 이런 기록은 사람들이 문제가 생겼을 때 사용하는 언어를 포착하기 때문에 유용합니다.
사람들이 사이드로 사용하는 도구도 확인하세요. 누군가 예외를 추적하기 위해 스프레드시트, 포스트잇 목록, 개인 문서를 사용한다면 강한 신호입니다. 우회 방법이 존재하는 데는 이유가 있습니다. 그들은 보통 앱이 첫날부터 필요로 할 규칙을 드러냅니다.
먼저 검토할 최적의 자료는 보통 그림자 시스템(스프레드시트, 개인 체크리스트), 누락 세부나 수동 승인을 요청하는 이메일 스레드, 긴급 수정에 관한 채팅 대화, 지연이나 거부를 언급하는 지원 티켓, 그리고 전체 타임라인이 있는 최근 실패 사례들입니다.
마지막 자료는 생각보다 더 중요합니다. 최근 실패한 사례는 오래된 요약보다 더 낫습니다. 승인 지연이 반복되는지, 고객이 필수 파일을 보내지 않는지, 문서화되지 않은 특별 규칙을 누군가 사용하는지 같은 패턴을 바로 보여줍니다.
채팅 기반 빌더로 첫 버전을 스케치 중이라면 로직을 생성하기 전에 이런 사례들을 모으세요. 엉킨 사례가 일찍 드러나면 더 안전한 흐름을 만들기 쉽습니다.
이론이 아닌 한 건의 실제 사례로 시작하세요. 팀원에게 설명하듯이: 그들이 무엇을 하려 했는지, 무엇이 잘못됐는지, 누가 개입했는지, 어떻게 끝났는지를 적으세요.
"관리자가 휴가 중이라 요청이 멈췄고 재무가 나중에 한 필드가 빠진 상태로 승인했다" 같은 지저분한 이야기는 깔끔한 순서도보다 더 유용합니다. 앱이 보통 어디서 깨지는지를 보여주기 때문입니다.
각 사례에서 네 가지 사실을 뽑으세요: 무슨 일이 일어났는가, 누가 결정을 내렸는가, 왜 그렇게 했는가, 그리고 앱은 다음에 무엇을 해야 하는가.
이렇게 하면 화면에만 집중하지 않고 행동에 초점을 맞출 수 있습니다. 목표는 첫날 모든 이상한 경우를 다 포괄하는 것이 아닙니다. 반복되는 패턴을 발견하는 것입니다.
사례 몇 건이 모이면 비슷한 것들끼리 묶어보세요. 단순한 버킷들이 저절로 나타납니다: 늦은 승인, 누락된 정보, 잘못된 사람에게 요청됨, 중복 요청, 특정 금액 이상에서 필요한 특별 승인 등.
그 다음 각 버킷을 작동하는 최소한의 규칙으로 바꾸세요. 그 규칙이 항상 완전한 자동화여야 할 필요는 없습니다. 경고, 일시 중지, 수동 검토 단계가 최선인 경우도 많습니다.
예를 들어 승인자가 부재중이라 승인이 늦어졌다면 앱은 24시간 후 알림을 보내고 48시간 후 재할당하거나 백업 승인자에게 검토를 요청할 수 있습니다. 중요한 필드가 누락됐다면 강제 오류 대신 저장 후 재개 가능한 초안을 허용하는 것이 더 나을 수 있습니다. 이렇게 하면 문제를 숨기지 않으면서도 프로세스는 계속 진행됩니다.
Koder.ai 같은 채팅 기반 도구에서 작업한다면 평이한 언어의 사례가 큰 도움이 됩니다. 시스템에 구체적인 사례를 주면 첫 워크플로가 현실적인 결정에 기반하여 만들어집니다. 깔끔하지만 비현실적인 추측에 의지하지 않습니다.
로직을 확정하기 전에 두세 건의 실제 이야기를 통과시켜 보세요. 기본적인 질문을 던져보세요. 흐름이 실제 사례와 같은 결과에 도달하는가? 정보가 없을 때 안전하게 실패하는가? 사람에게 멈추고 물어볼 줄 아는가?
아니라면 즉시 복잡성을 추가하지 마세요. 먼저 규칙을 더 단순한 말로 다시 써보세요. 명확한 규칙이 아무도 설명할 수 없는 영리한 규칙보다 더 나은 워크플로를 만듭니다.
먼저 깔끔한 버전을 생각해보세요. 직원이 고객 방문 후 $42 택시비를 제출합니다. 날짜, 금액, 프로젝트 이름, 영수증을 추가합니다. 관리자가 급여 마감 전에 승인하고, 재무가 다음 환급에 포함합니다.
그 경로는 모델링하기 쉽지만 전부는 아닙니다.
이제 첫 번째 예외를 추가하세요. 직원이 제때 제출했지만 관리자는 급여 마감 하루 후에 승인했습니다. 앱은 아무 일도 없었던 것처럼 조용히 처리해서는 안 되고, 청구를 거부해서도 안 됩니다.
더 나은 대응은 요청을 "마감 후 승인(approved after cutoff)" 같은 명확한 상태로 이동시키는 것입니다. 그 상태에서 앱은 지급을 다음 급여 주기로 보류하고, 직원에게 새 지급일을 알리며 회사 정책이 오프사이클 지급을 허용할 경우에만 재무로 라우트할 수 있습니다.
이를 위해 앱은 하나 이상의 날짜를 저장해야 합니다. 제출일, 승인일, 어떤 마감일을 놓쳤는지를 추적해야 합니다.
두 번째 예외를 추가해보세요. 직원이 영수증을 깜빡해 관리자에게 설명으로 승인을 받았고, 이틀 뒤에야 영수증이 도착했습니다.
잘 만든 앱이라면 사례가 사라지거나 처음부터 다시 시작되지 않습니다. "영수증 대기" 상태로 보류하고 알림을 보내며 열려 있어야 합니다. 영수증이 나중에 업로드되면 사례를 다시 열고 여전히 조치가 필요한 단계로만 보냅니다.
이런 흐름은 몇 가지 간단한 상태를 거칠 수 있습니다: 제출됨, 관리자 승인 대기, 마감 후 승인, 영수증 대기 보류, 재무 검토를 위해 재개됨.
이것이 실제로 예외를 처리하는 방식입니다. 앱은 단순히 예/아니오를 결정하는 것이 아니라 보류할지, 라우트할지, 컨텍스트와 날짜, 책임을 잃지 않고 다시 열지를 결정합니다.
누락된 정보는 예외가 아니라 정상입니다. 앱이 모든 양식이 처음부터 완전하다고 가정하면 실제 사용자가 빈틈을 만나는 순간 흐름은 멈춥니다. 더 나은 규칙은 간단합니다: 다음 단계에 필요한 것만 요구하세요.
단계별로 계획하세요. 지금 당장 앱이 알아야 할 것과 나중에 기다릴 수 있는 것을 구분하세요. 예를 들어 비용 요청은 제출 전에 금액과 직원 이름이 필요할 수 있지만, 최종 영수증은 지급 직전에만 필요할 수 있습니다. 이렇게 하면 통제를 낮추지 않으면서도 작업을 진행할 수 있습니다.
사용자는 일부 세부가 없어도 진행 상황을 저장할 수 있어야 합니다. 다시 열 수 있는 초안은 처음부터 다시 작성하게 하는 양식보다 훨씬 낫습니다. 특히 누락 정보가 관리자, 공급업체, 재무팀 등 다른 사람에게 달린 경우 더 중요합니다.
명확한 상태는 모두가 무슨 일이 일어나고 있는지 이해하게 도와줍니다. 짧고 스캔하기 쉬운 상태를 유지하세요: 정보 대기, 문서 누락으로 차단, 검토 필요, 승인 준비, 업데이트를 위해 반려됨.
이 라벨들은 두 가지 역할을 동시에 합니다. 현재 상태를 보여주고 어떤 문제가 주의가 필요한지 사용자에게 알려줍니다.
각 누락 항목에도 책임자가 필요합니다. 세금 ID가 누락되었다면 누가 추가하나요? 영수증이 불명확하면 누가 교체하나요? 승인 노트가 없다면 누가 제공할 수 있나요? 누가 수정할지 소유자가 없으면 기록은 표류합니다.
간단한 예로 명확해집니다. 직원이 호텔에서 영수증을 아직 못 받아서 여행 비용을 제출하지 못한 상황을 상상하세요. 앱은 여전히 저장하고 "영수증 대기" 상태로 제출할 수 있게 해야 합니다. 재무는 나머지를 검토할 수 있고, 직원은 무엇이 누락되었는지 알며 요청이 조용한 오류로 사라지지 않습니다.
자동화는 같은 입력이 거의 항상 같은 결과로 이어질 때 가장 잘 작동합니다. 요청이 명확한 패턴을 따르면 규칙을 적용하세요. 결론이 누락된 맥락, 비정상적 타이밍, 판단이 필요한 경우라면 사람에게 보내세요.
이 분기는 중요합니다. 좋은 앱은 정상 케이스는 빠르게 진행시키고 불명확한 경우는 속도를 늦춥니다. 잘못된 자동 결정은 짧은 수동 검토보다 더 많은 일을 만들 수 있습니다.
간단한 테스트가 도움이 됩니다: 동일한 데이터를 보고 서로 다른 두 팀원이 같은 결정을 내릴까? 그렇다면 자동화하세요. 아니라면 사람을 유지하세요.
자동화에 적합한 후보는 모든 필수가 채워진 완전한 양식, 정책 제한에 맞는 요청, 명확한 마감이 있는 반복 작업, 항상 같은 경로를 따르는 승인 등입니다.
다음과 같은 상황은 추측하면 안 됩니다: 핵심 세부가 누락되었거나 요청이 정상 패턴을 깨거나 두 규칙이 충돌하거나 비용·위험이 높거나 누군가 예외를 설명해야 하는 경우.
예를 들어 목적지가 없는 긴급한 일정에 평소보다 높은 비용이 든 출장 요청이 있다면 앱은 영리하게 처리하려고 하지 말고 사유를 표시하고 흐름을 일시 중지하여 적절한 사람에게 라우팅해야 합니다.
동시에 예외의 이유를 가시화하세요. 앱이 왜 멈췄는지, 어떤 규칙이 발동했는지, 어떤 정보가 부족한지 보여주면 검토가 빨라지고 팀이 나중에 워크플로를 개선하기 쉬워집니다.
많은 앱 프로젝트는 로직을 작성하기 전에 잘못됩니다. 팀이 깔끔한 경로만 스케치하고 사람들이 그 경로를 따를 거라 가정하며 매주 발생하는 이상한 경우들을 무시하면 단순한 워크플로가 지원 티켓, 수작업 수정, 혼란스러운 사용자로 변합니다.
첫 번째 실수는 가정에만 기반해 설계하는 것입니다. 승인, 누락 필드, 예외가 보통 어떻게 작동하는지 추측하면 가장 중요한 사례들을 놓칩니다. 관리자가 늦게 승인하거나 고객 레코드가 반쯤만 도착하거나 금액 때문에 추가 검토가 필요한 상황 등이 그렇습니다.
또 다른 실수는 서로 다른 많은 상황을 하나의 모호한 규칙 안에 숨기는 것입니다. "뭔가 이상하면 관리자에게 보낸다" 같은 규칙은 유연하게 들리지만 새로운 문제를 만듭니다. 관리자가 누구인가? 무엇이 이상한가? 이틀 동안 아무도 응답하지 않으면 무슨 일이 일어나나?
앱이 전체 재시작을 강요할 때도 사용자가 피해를 봅니다. 한 문서가 누락되거나 한 명의 승인자가 단계를 반려하면 사용자에게 모든 것을 다시 입력하게 해서는 안 됩니다. 더 나은 흐름은 진행 상황을 저장하고 문제를 명확히 표시하며 사용자가 막힌 부분만 고치게 합니다.
타이밍, 소유권, 기록 같은 문제는 부차적으로 들릴 수 있지만 그렇지 않습니다. 승인이 마감 이후에 도착하면 앱은 수락할지, 에스컬레이션할지, 요청을 다시 열지 알아야 합니다. 케이스가 막히면 누가 다음 행동을 소유하는지 필요합니다. 상태가 바뀌면 누가 언제 변경했는지도 모두가 볼 수 있어야 합니다.
감사 기록은 간단한 이유로 중요합니다. 누가 값을 변경했는지, 누가 예외를 승인했는지, 상태가 언제 이동했는지 알아야 합니다.
워크플로를 규칙으로 바꾸기 전에 입력이 실제 업무와 일치하는지 잠시 멈춰 확인하세요. 깔끔한 다이어그램은 종종 지연, 혼란, 나중에 발생할 수작업 수정을 일으키는 이상한 경우를 놓칩니다.
간단한 검토로 도움을 받을 수 있습니다:
단순한 테스트 케이스 하나가 약한 로직을 드러내기 충분합니다. 공급업체 이름 없이 제출된 구매 요청이 있고, 부서장이 늦게 승인한 상황을 생각해보세요. 요청자가 누락 필드를 수정할 수 있나요? 앱은 요청을 다시 열지, 계속 진행할지, 재무에 검토를 요청할지 알고 있나요?
이 정도 수준의 세부가 로직을 생성하기 전에 필요합니다. 짧고 실제적인 이야기가 더 안전한 첫 버전과 사용자가 시작한 뒤의 놀라움을 줄여줍니다.
작게 시작하세요. 전체 비즈니스가 아니라 한 가지 워크플로를 선택하세요. 그런 다음 매일 업무를 수행하는 사람들에게서 늦은 승인, 누락 영수증, 관리자의 부재, 중복 요청, 재무 개입이 필요했던 케이스 같은 실제 예외 다섯 건을 수집하세요.
그 좁은 워크플로와 다섯 가지 사례를 중심으로 첫 버전을 만드세요. 규칙은 읽기 쉽게 유지하세요. 요청이 불완전하면 무엇이 빠졌는지 보여주고, 승인이 늦으면 언제 알릴지, 언제 에스컬레이션할지, 언제 보류할지 결정하세요. 경로에 맞지 않는 경우 누가 검토해야 하는지 명확히 하세요.
그런 다음 관련된 사람들과 테스트하세요: 요청을 제출하는 사람, 첫 승인자, 예외를 고치는 사람, 에스컬레이션을 받는 관리자, 최종 결과를 보는 사람.
그들이 어디에서 멈추고, 추측하고, 도움을 요청하는지 관찰하세요. 그 순간들이 원활히 작동한 부분보다 더 중요합니다. 세 사람이 같은 단계에서 막힌다면 그 규칙이나 화면은 바뀌어야 합니다.
예를 들어 비용 앱은 프로젝트 코드 없이 택시 영수증을 제출하거나 월 마감 이후에 보낸 경우까지는 잘 작동할 수 있습니다. 첫 버전은 모든 희귀한 경우를 해결할 필요는 없습니다. 흔한 예외를 잡고 다음 행동을 설명하며 사람의 검토로 이어지는 명확한 경로를 남기면 됩니다.
그 후 실제 테스트를 거쳐 규칙을 조금씩 수정하세요. 혼란을 만드는 단계를 제거하고, 반복 문제를 막을 때만 필드를 추가하세요. 알림 타이밍이 너무 빠르거나 느리면 조정하세요. 실제 테스트 후의 작은 수정이 복잡한 특수 사례 로직을 너무 일찍 추가하는 것보다 보통 더 낫습니다.
빠르게 프로토타입을 원한다면 Koder.ai 같은 채팅 기반 빌더가 실제 사례를 단계별로 작동하는 앱으로 바꾸는 데 도움을 줄 수 있습니다. 핵심은 동일합니다: 먼저 엉킨 이야기를 모으고, 그 다음에 규칙을 만드세요.