교육 · 8강

예외와 고장을 어떻게 다룹니까?

예외는 과정 밖의 사고가 아니라 아직 적히지 않은 과정의 한 부분입니다. 이 강의에서는 장부를 엽니다. 규칙이 담지 못한 입력이 들어오면 흐름은 무엇을 하는지, 어떤 고장이 멈추고 어떤 고장이 이어지는지, 누가 소식을 받는지, 내린 결정이 시스템에 어떻게 반영되는지.

이 강의에서 배우는 것

앞선 강의에서 흐름을 만들고 두 시스템을 이었습니다. 둘 다에서 예외는 한 줄이었습니다. 구축 카드의 "예외 경로", 연동 지도의 "끊김 동작". 이 강의는 그 두 줄 뒤의 일을 펼칩니다. 규칙이 담지 못한 입력이 들어왔을 때 흐름이 무엇을 하는지, 누가 소식을 받는지, 내린 결정을 어디에 적는지.

강의는 예외를 없애자고 하지 않습니다. 예외는 과정 밖의 사고가 아니라, 아직 적히지 않은 과정의 한 부분입니다. 적히면 규칙이 되고, 적히지 않으면 매번 새로 결정해야 합니다.

강의 목표

  • 예외와 고장을 갈라 보고 둘을 따로 다루기
  • 예외 기록 장부를 네 칸으로 채우기
  • 뜻밖의 입력 앞에서 흐름의 동작을 적기
  • 어떤 고장이 멈추고 어떤 고장이 이어지는지 정하기
  • 소식이 가는 길과 손으로 손대는 문을 정의하기
  • 조용한 오류를 드러내는 측정을 세우기

선행 조건: 다섯째 강의의 흐름과 여섯째 강의의 연동 지도. 흐름이 없으면 예외도 없습니다. 예외는 돌아가는 흐름의 가장자리에서 생깁니다.

예외란 무엇이고 고장이란 무엇인가

둘이 섞이면 다루는 방식도 섞입니다. 예외는 규칙이 담지 못한 상황입니다. 시스템은 제대로 돌아가지만 마주친 입력에 대한 답이 적혀 있지 않습니다. 고장은 적혀 있는데도 시스템이 다르게 움직이는 일입니다.

실무에서 이 구분은 한 물음으로 이루어집니다. 지도를 보면 이 상황의 답이 거기 있습니까? 있는데 시스템이 달리 움직였다면 고장이고, 없다면 예외입니다. 같은 일이 이틀 잇달아 온다면 예외이기를 그치고 빠진 규칙이 됩니다.

예외

규칙이 담지 못한 입력이나 상황. 해법은 결정입니다. 그 결정 자체도 기록에 남습니다. 두 번째로 물어질 것이기 때문입니다.

고장

적힌 규칙이 있는 자리에서 시스템이 달리 움직이는 일. 해법은 고침이고, 고침이 오래 가는지는 따로 시험합니다.

경계 표시

"이건 예외인가 고장인가" 논의가 길어지면, 그 자리에서 지도가 흐릿한 것입니다. 논의는 시스템이 아니라 지도에서 풀립니다.

예외 기록 장부: 네 칸

장부는 한 쪽에 들어가고 각 줄이 예외 하나를 적습니다. 네 칸은 예외가 생겼을 때 묻게 되는 네 물음에 대응합니다. 한 칸이 비면 그 예외는 다음번으로 아무것도 옮기지 못합니다.

장부를 두는 진짜 값은 두 번째 마주침에서 보입니다. 처음에는 결정에 시간이 걸리고, 두 번째에는 장부에 적힌 것이 적용되며 논의가 다시 열리지 않습니다.

장부의 네 칸

  • 어떤 예외인가: 들어온 입력이나 상황, 한 문장으로
  • 언제 나왔나: 날짜와 어느 단계에서
  • 어떻게 결정했나: 무엇을 했고 누가 정했는지
  • 시스템에 반영됐나: 규칙이 됐는지, 됐다면 어디에 적혔는지

네 번째 칸이 장부를 살아 있게 합니다. 비어 있으면 장부는 보관함이 되고, 채워지면 과정 지도가 스스로 자랍니다.

뜻밖의 입력: 반쯤 채운 서식, 빠진 항목, 바뀐 형식

흐름은 대개 입력이 기대한 모양으로 온다는 전제 위에 세워집니다. 뜻밖의 입력은 그 전제가 깨지는 자리입니다. 서식이 반만 보내지고, 필수라고 여겼던 항목이 비어서 오고, 출처 시스템이 항목의 형식을 조용히 바꿉니다.

이들의 공통점은 대부분 오류 메시지를 내지 않는다는 것입니다. 흐름은 계속 돌아가고, 모자란 자료로 만들어진 결과가 나옵니다. 그래서 뜻밖의 입력에 대한 답은 지도의 출력 쪽이 아니라 입력 쪽에 적습니다.

반쯤 채운 서식

기록은 생겼지만 항목의 일부가 비어 있습니다. 결정: 기록을 붙잡아 두는지, 그대로 쓰는지, 보낸 사람에게 되묻는지.

빠진 필수 항목

필수로 여긴 항목이 비어서 온다면 그 필수는 실제로 세워진 적이 없습니다. 항목 사전과 흐름 사이의 어긋남이 여기서 드러납니다.

바뀐 형식

출처 쪽에서 날짜나 전화 형식이 바뀝니다. 흐름은 예전처럼 읽어 나가고 값은 조용히 어긋납니다.

겹친 기록과 중복 제거

여섯째 강의에서 중복 제거 키를 골랐습니다. 이 강의는 그 키가 버티지 못하는 경우를 다룹니다. 같은 사람이 두 번째로 쓰고, 같은 서식이 두 번 보내지고, 같은 주문이 두 경로로 들어옵니다.

겹친 기록은 조용히 커지는 문제입니다. 하나씩 보면 다 맞아 보이지만 합쳐 보면 보고서가 부풀고 고객에게 두 번 닿습니다. 결정을 미리 적어 두는 편이 기록이 생긴 뒤에 치우는 것보다 쌉니다.

중복 제거 규칙은 장부의 첫 줄 가운데 하나입니다. 자주 마주치는데 그 결정이 쉽게 잊히기 때문입니다.

어떤 고장이 멈추고 어떤 고장이 이어지는가

고장마다 흐름을 멈추면 안전해 보이지만 일이 멈춥니다. 아예 멈추지 않으면 일은 굴러가지만 잘못된 결과가 커집니다. 결정은 고장마다 내리고 지도에 적습니다.

잣대는 이렇습니다. 이 단계가 잘못 돌아갔을 때 결과를 되돌릴 수 있습니까? 되돌릴 수 있으면 흐름은 이어질 수 있고 기록에 표시가 붙습니다. 되돌릴 수 없으면 흐름이 멈추고 기다리는 사람이 소식을 받습니다.

멈추는 고장

결과를 되돌릴 수 없는 단계: 바깥으로 나가는 메시지, 결제, 지워서 되돌릴 수 없는 삭제. 망설여지는 자리에서는 멈춤을 고릅니다.

이어지는 고장

기록 하나에만 닿고 되돌릴 수 있는 경우. 기록에 표시를 붙이고 흐름은 나머지와 함께 가며, 표시된 기록은 하루 끝에 훑습니다.

반쯤 된 일

가장 어려운 경우입니다. 단계의 일부가 처리됐습니다. 이 가능성에 대해 되돌리기가 적혀 있지 않으면 기록이 두 시스템에서 다르게 보이기 시작합니다.

시스템이 고장을 낼 때 누가 소식을 받는가

알림이 가는 자리는 알림 자체만큼 중요합니다. 공용 사서함에 떨어지는 알림은 대개 누구의 일도 아닙니다. 모두가 볼 수 있는 통로가 아무도 책임지지 않는 통로가 되기도 합니다.

소식 줄은 사람 이름을 요구합니다. 그 사람이 자리를 비울 때 누가 볼지도 같은 줄에 적습니다. 예외는 쉬는 날을 기다리지 않기 때문입니다.

소식 줄에 적히는 것

  • 누가 받는가: 이름이 적힌 한 사람
  • 어떻게 받는가: 어느 통로, 어떤 제목으로
  • 언제 받는가: 곧바로인가, 하루 끝에 모아서인가
  • 대신 볼 사람: 첫 사람이 볼 수 없을 때
  • 응답 기대: 얼마 안에 볼지 이야기됐는가

알림 글도 결정의 한 부분입니다. 어느 기록이 어느 단계에서 무슨 까닭으로 멈췄는지 적혀 있으면 보는 사람이 시스템에 들어가지 않고도 결정할 수 있습니다.

고장 기록은 어디에 두고 어떻게 읽는가

고장 기록은 나중에 무슨 일이 있었는지 알려 주는 단 하나의 자료입니다. 흐름 안에 둘 수도, 도구 자체의 일지에 있을 수도, 따로 표에 적을 수도 있습니다. 중요한 건 자리가 아니라 찾을 수 있느냐는 것입니다.

기록 읽기에는 나름의 차례가 있습니다. 차례를 따르지 않으면 보게 되는 것은 대개 마지막 줄이고, 마지막 줄은 흔히 원인이 아니라 결과를 보여 줍니다.

1 기록 찾기

어느 기록, 어느 시간대. 기록 번호가 없으면 날짜에서 찾아 들어가고 이웃 기록도 함께 보입니다.

2 차례 읽기

단계마다 무슨 일이 있었는지. 결과 줄이 아니라 처음 어긋난 줄부터 읽는 것이 원인을 보여 줍니다.

3 입력 견주기

들어온 자료가 기대한 모양이었습니까? 고장의 적지 않은 부분이 여기서 나오고, 시스템 자체는 제대로 돌아간 것으로 드러납니다.

손으로 손대는 일은 어디서 하는가

모든 흐름에는 손으로 손대는 문이 필요합니다. 멈춘 기록을 이어가고, 잘못된 기록을 되돌리고, 대기 목록을 손으로 훑는 일. 문이 없으면 손대는 일은 도구 안에서 이루어지고 자취를 남기지 않습니다.

손댐은 예외이고 장부에 적힙니다. 적히지 않으면 두 가지 문제가 생깁니다. 같은 일이 다시 왔을 때 무엇을 했는지 기억나지 않고, 시스템이 낸 결과와 손으로 한 일이 서로 맞지 않게 됩니다.

손으로 손대기가 쉬운 것은 흐름의 약점이 아니라 오래 가는 힘입니다. 문이 없는 흐름은 첫 예외에서 손으로 돌리는 과정이 됩니다.

조용한 오류: 메시지 없이 잘못 돌아가기

가장 비싼 고장은 고장을 내지 않는 고장입니다. 흐름은 초록으로 보이고 기록은 만들어지며 아무도 알림을 받지 않습니다. 그런데 나온 결과가 틀렸습니다. 여섯째 강의에서 한 문장으로 지나간 이 일이 예외 다루기의 진짜 주제입니다.

조용한 오류의 뿌리는 대개 입력 쪽입니다. 빈 값이 기본값으로 떨어지고, 형식이 잘못 읽히고, 맞춤이 다른 기록을 잡습니다. 시스템이 자기 안에서 앞뒤가 맞게 돌아가므로 스스로 알리지도 않습니다.

조용한 오류가 잘 나는 자리

  • 빈 값이 기본값으로 떨어져 채워진 것처럼 보이는 자리
  • 날짜 형식이 거꾸로 읽히는데도 기록은 멀쩡해 보이는 자리
  • 맞춤이 엉뚱한 기록을 잡는데 처리는 제대로 끝나는 자리
  • 조건이 어느 길에도 들지 않아 기록이 조용히 기다리는 자리
  • 연결이 절반만 옮겨 대상에 모자란 기록이 생기는 자리

공통점은 이것입니다. 모두에서 시스템은 "성공"이라고 말합니다. 그래서 조용한 오류는 알림이 아니라 측정으로 잡힙니다.

조용한 오류를 드러내기

드러내는 길은 시스템 자신의 보고를 믿지 않는 데서 시작합니다. 세 측정을 함께 하면 조용한 오류의 대부분이 수면으로 올라옵니다.

셋 다 주간 습관으로 세우고 누가 할지 적습니다. 주인 없는 측정은 바쁜 첫 주에 놓입니다.

1 세기

들어온 수와 나간 수를 견줍니다. 차이는 조용히 떨어져 나간 기록을 보여 줍니다.

2 맞춰 보기

두 시스템의 같은 기록을 나란히 엽니다. 항목마다 보는 대신 열쇠 항목만 봐도 넉넉합니다.

3 표본 보기

무작위로 고른 몇 기록을 끝에서 끝까지 따라갑니다. 측정이라기보다 관찰이며, 보고서가 보여 주지 않는 어긋남이 여기서 보입니다.

측정 결과는 장부에 적습니다. 어긋남이 없던 주도 적습니다. "봤고 깨끗했다"도 기록이기 때문입니다.

예외에서 규칙으로: 언제 시스템에 반영되는가

모든 예외가 시스템으로 옮겨지지는 않습니다. 한 번 본 일은 적어 두고 기다리고, 되풀이되는 일은 규칙이 됩니다. 일찍 옮기면 흐름이 쓸데없이 얽히고, 늦게 옮기면 같은 결정을 여러 번 내리게 됩니다.

잣대는 잦기와 값입니다. 같은 예외가 되풀이되거나, 한 번이라도 되돌릴 수 없는 결과를 냈다면 규칙을 씁니다. 규칙을 쓰면 과정 지도와 항목 사전도 함께 고칩니다. 그러지 않으면 지도가 현실보다 뒤에 남습니다.

규칙으로 바꾸는 차례

  • 장부의 줄을 읽습니다: 이 예외가 몇 번 나왔는가
  • 결정을 한 문장으로 씁니다: 어떤 경우에 무엇을 하는가
  • 지도에 넣습니다: 어느 단계에, 어떤 조건으로
  • 흐름에 적용하고 시험 자료로 시험합니다
  • 장부의 네 번째 칸을 채웁니다: 어디에 반영됐는지 적습니다

이 차례가 닫히면 예외는 사라지지 않고 규칙이 됩니다. 장부는 그렇게 과정 지도의 갱신 일지가 됩니다.

처음부터 끝까지 예: 부동산 사무소가 예외를 만납니다

사무소는 시범 업무를 고르고, 과정을 적고, 항목 사전을 만들고, 도구를 고르고, 첫 흐름을 만들고, 두 시스템을 이었습니다. 이제 흐름이 돌아가고 첫 주에 세 가지 일이 잇달아 옵니다.

셋 다 지도에 적혀 있지 않습니다. 사무소 담당자가 하나씩 장부에 적고 결정을 씁니다. 주말이 되자 세 줄 가운데 둘이 규칙이 됩니다.

장부의 첫 세 줄

첫째 줄: 매물 사이트에서 온 문의에 전화 항목이 비어 있습니다. 기록을 관리 표에 쓰지 않고 대기 목록으로 떨어뜨리기로 정합니다. 담당자가 하루 끝에 그 목록을 훑습니다. 같은 일이 세 번 되풀이되자 규칙으로 바꾸어 지도에 넣습니다.

둘째 줄: 같은 사람이 다른 두 매물에서 글을 써서 관리 표에 기록이 둘 열립니다. 결정: 둘째 문의는 같은 사람 밑에 메모로 들어갑니다. 이 결정은 여섯째 강의 키 규칙에서 빠져 있던 절반이라 곧바로 시스템에 반영합니다.

셋째 줄: 매물 사이트가 날짜 항목의 형식을 바꾸어 약속 날짜가 하루씩 밀립니다. 고장 메시지는 없고 기록은 멀쩡해 보입니다. 어긋남은 주간 세기가 아니라 표본 보기에서 잡힙니다. 무작위로 고른 두 기록의 날짜가 매물과 맞지 않습니다. 형식 변환을 고치고, 영향을 받은 기록을 손으로 되돌리고, 손댐을 장부에 적습니다.

주말에 사무소는 알림이 공용 사서함으로 가고 아무도 보지 않는다는 것을 알아차립니다. 소식 줄을 사람 이름으로 바꾸고 대신 볼 사람도 적습니다.

세 줄 가운데 둘이 규칙이 됐고 하나는 관찰에 남았습니다. 장부의 값이 여기서 보입니다. 어떤 결정을 내렸는지만이 아니라 어느 결정이 시스템에 닿았는지도 적혀 있습니다.

연습: 이번 주에 할 일

이번 주에는 장부를 열고 돌아가는 흐름의 가장자리에서 무슨 일이 있는지 적으십시오. 새 예외를 기다릴 필요는 없습니다. 지난 두 주 동안 손으로 한 손댐이 이미 예외 줄입니다.

예외 기록 장부 내려받기 (xlsx) · 어떤 예외인지, 언제 나왔는지, 어떻게 결정했는지, 시스템에 반영됐는지 네 칸이 있는 한 쪽짜리 장부. 소식, 손대는 문, 주간 측정 부분도 함께 들어 있습니다.

자주 하는 실수

아래는 예외 자체가 아니라 예외를 다루지 않은 데서 나옵니다. 공통점은 이것입니다. 어느 것도 시스템에서 고장으로 보이지 않습니다.

장부 없이 다루기

결정이 이야기 속에서 내려지고 기록에 남지 않습니다. 같은 일이 두 번째로 오면 다른 결정이 내려지고 두 기록이 다르게 처리됩니다.

고장마다 멈추기

기록 하나에 닿은 어긋남이 흐름 전체를 멈춥니다. 얼마 뒤 알림을 꺼 버리고, 정말 멈춰야 할 고장도 보이지 않게 됩니다.

공용 사서함으로 알리기

알림이 모두에게 가고 아무도 맡지 않습니다. 보지 않은 알림은 보내지 않은 알림과 같은 결과를 냅니다.

자취 없는 손댐

기록을 손으로 고치지만 누가 무엇을 했는지 적지 않습니다. 다음 주에 같은 기록이 또 어긋나면 까닭을 찾을 수 없습니다.

시스템 보고를 믿기

"모두 성공" 줄은 조용한 오류를 보여 주지 않습니다. 측정을 세우기 전까지 잘못된 결과가 몇 주 동안 옳은 것으로 여겨집니다.

예외를 곧바로 규칙으로 만들기

한 번 본 일이 조건으로 흐름에 더해집니다. 흐름은 예외마다 조금씩 더 얽히고 돌보기가 어려워집니다.

점검 목록

흐름이 첫 주를 마쳤을 때 이 목록의 항목마다 답할 수 있으면 예외 다루기가 선 것으로 칩니다.

예외 다루기가 서 있는가

  • 장부가 열려 있고 줄마다 네 칸이 차 있음
  • 뜻밖의 입력 세 가지에 대한 결정이 적혀 있음
  • 중복 제거와 합치기 규칙이 적혀 있음
  • 멈추는 고장과 이어지는 고장이 단계마다 표시돼 있음
  • 소식 줄에 사람 이름과 대신 볼 사람이 있음
  • 손대는 문이 정해져 있고 자취를 남김
  • 멈추는 단계마다 되돌리기가 적혀 있음
  • 주간 측정이 서 있고 주인이 있음
  • 되풀이되는 예외가 규칙이 되어 지도에 들어감

용어

예외 이야기에서 나오는 말들입니다. 같은 말에 같은 뜻을 주면 장부가 둘째 주에도 읽힙니다.

다음은 무엇인가

이 강의에서 흐름의 가장자리를 적었습니다. 예외와 고장을 갈랐고, 장부를 열었고, 소식과 손댐의 길을 정했고, 조용한 오류를 측정으로 드러냈습니다. 다음 강의들은 팀을 과정에 들이는 일과 결과를 재는 일을 다룹니다.

이미 나온 강의로 이어가고 싶다면, 고장을 차례로 좁히는 모듈이 차례입니다.

7강: 자동화가 안 된다고 말할 때

고장 카드, 반으로 가르는 방법, 오래 가는 고침. 이 강의의 장부가 거기에 먹이를 줍니다.

6강: 시스템을 말하게 하기

연동 지도와 끊김 동작. 여기 예외의 일부가 거기서 생깁니다.

전체 강의

교육 부분 전체와 그동안 더해진 모듈들.

예외 장부를 함께 열고 싶으시면 연락 주십시오. 첫 줄들을 같이 채우겠습니다.

WhatsApp으로 견적 요청

자주 묻는 질문

예외와 고장은 실무에서 어떻게 가릅니까?
지도를 봅니다. 그 상황의 답이 적혀 있는데 시스템이 달리 움직였다면 고장이고, 적혀 있지 않으면 예외입니다. 해법이 다르기 때문에 이 구분이 중요합니다. 고장은 고치고, 예외는 결정을 내려 장부에 적습니다. 같은 예외가 되풀이되면 이제 빠진 규칙으로 칩니다.
모든 예외를 시스템에 반영해야 합니까?
그럴 필요는 없습니다. 한 번 본 일은 장부에 적고 기다릴 수 있습니다. 흐름에 조건을 더할수록 돌보기가 무거워집니다. 잣대는 잦기와 값입니다. 되풀이되거나 되돌릴 수 없는 결과를 내는 예외는 규칙이 되고, 나머지는 관찰에 남습니다.
어떤 고장에서 흐름이 멈춰야 합니까?
결과를 되돌릴 수 없는 단계에서 멈춤을 고릅니다. 바깥으로 나가는 메시지, 결제, 되돌릴 수 없는 삭제. 기록 하나에만 닿고 결과를 되돌릴 수 있는 자리에서는 기록에 표시를 붙이고 흐름을 이어갈 수 있습니다. 망설여지면 멈추는 편이 잘못된 결과를 키우는 것보다 쌉니다.
조용한 오류는 어떻게 알아차립니까?
알림이 아니라 측정으로 알아차립니다. 시스템이 자기 안에서 앞뒤가 맞으므로 스스로 알리지 않습니다. 들어온 수와 나간 수를 견주고, 두 시스템의 같은 기록을 나란히 열고, 무작위로 고른 몇 기록을 끝에서 끝까지 따라가면 조용한 오류의 대부분을 드러낼 수 있습니다.
손으로 손대면 흐름이 망가집니까?
망가지지 않고 오히려 오래 갑니다. 망가뜨리는 것은 자취 없는 손댐입니다. 누가 무엇을 했는지 적지 않으면 같은 기록이 다시 어긋났을 때 까닭을 찾을 수 없습니다. 손댐이 예외 줄로 장부에 들어가면 자취가 남고, 되풀이되는 손댐은 규칙이 될 수 있습니다.