The Swiss Cheese model, pt. 2

Marcin Wichary

스위스 치즈 모델, 2부

원문은 Marcin Wichary님이 에 게재했습니다. 이 블로그 구독하기

1.

아이고, 하필 작업 중인 걸 들켰네요. 친구에게 줄 Windows 버전 목록을 만들고 있었거든요. 그것도 하필 Google Docs에서요.

별거 아닐 줄 알았죠. 위키백과에서 하나 가져와서 좀 다듬긴 했는데, 아직도 좀 못생겼더라고요:

여기 패딩이 너무 빡빡한 게 마음에 안 드네요. 좀 더 넓게, 0.08인치 정도로 해볼까요? 첫 번째 열을 선택해서 숫자만 입력하면 되고…

뭐야 이게!!!

맙소사. 무슨 일이 일어난 거지? 일단 ⌘Z를 눌러 되돌려 보죠…

아, 안 되네. Esc를 눌러보면 어떨까…

젠장.

2.

자, 정확히 무슨 일이 있었는지 하나하나 짚어보죠:

  • Backspace를 눌러 기존의 0을 지웠습니다:
  • “.08”을 입력하기 시작했습니다. “.”를 눌렀을 때는 괜찮았는데, 툴팁이 좀 과하게 적극적이긴 하더군요:
  • “0”을 추가하자 Docs가 “.”를 지워버려서 결과는 그냥 “0”이 됐습니다:
  • “8”을 추가하자 Docs가 앞에 있던 0을 지워버려서 결국 그냥 “8”만 남았습니다:
  • 페이지는 결과값인 “8”을 보고 8인치 패딩(원했던 것의 100배!)을 적용해 버렸고, 그걸 실시간으로 화면에 보여줬습니다. 그 결과 표는 완전히 알아볼 수 없게 망가졌고, 뭔가 심각하게 잘못된 것처럼 보였습니다,
  • ⌘Z를 눌러도 아무 일도 일어나지 않았고,
  • Esc를 누르니 입력 필드에서 포커스만 빠져나갔습니다.

제 생각에 여기서 일어난 일련의 과정과 버그를 정확히 설명할 수 있을 것 같습니다:

  • 일단, 숫자를 입력하면 왼쪽에 바로 미리보기가 뜹니다. 보통은 꽤 괜찮은 경험이죠!
  • 입력값을 확정(Enter)할 때 고치는 대신, 타이핑하는 도중에 입력값이 실시간으로 다시 쓰입니다. 제가 추천할 방식은 아니지만, 이런 설계 결정은 이해할 수 있습니다.
  • 만약 “08”이라고만 입력하면 “8”로 다시 쓰입니다. 숫자를 정규화해서 일관되게 만든다는 점에서는 어느 정도 말이 됩니다.
  • “.1”이라고 입력하면 “0.1”로 다시 쓰입니다. 네, 괜찮죠, 비슷한 취지입니다.
  • 그런데 “.0”이라고 입력하면 그냥 “0”으로 다시 쓰입니다. 이건 버그거나 상상력이 부족한 거라고 생각합니다. “0.0”으로 다시 쓰여야 맞죠.
  • ⌘Z가 동작하지 않습니다. 시스템이 숫자를 다시 쓰는 과정에서 그 변경 사항이 실행 취소 스택에 쌓이지 않는 버그라고 생각합니다. (사실 상황은 더 심각해 보였습니다. ⌘Z를 몇 번 더 누르니 숫자가 “80”으로 바뀌어 버렸는데, 그러면 상황은 더 악화됐을 겁니다!)

결국 제 “.08”은 “8”로 망가진 채 즉시 적용됐고, 쉽게 되돌릴 수도 없었던 셈입니다.

3.

이건 스위스 치즈 모델이 실제로 작동하는 아주 좋은 예시처럼 느껴집니다:

아래 항목 중 단 하나만 다르게 동작했더라도, 이런 상황까지는 오지 않았을 겁니다:

  • 숫자가 입력 중에 실시간으로 다시 쓰이지 않았다면, 문제가 없었을 겁니다,
  • “.”가 그렇게 공격적으로 “0.”으로 다시 쓰이지 않았다면, 문제가 없었을 겁니다,
  • 실시간 미리보기가 없었다면, 화면에 데이터가 날아간 것처럼 보이는 엄청난 변화를 보고 패닉에 빠지는 대신, 잘못된 입력을 직접 발견해서 고칠 수 있었을 겁니다,
  • 입력 필드의 실행 취소가 제대로 동작했다면, 그 패닉의 순간을 되돌릴 수 있었을 겁니다,
  • Esc가 확정이 아니라 취소로 동작했다면, 마찬가지였을 겁니다.

이 결정들은 하나하나 따로 보면 모두 말이 되고, 위험하거나 중요하게 느껴지지 않았습니다. 하지만 함께 맞물리면서 치즈의 구멍들이 완벽하게 정렬됐고, 꽤나 아찔한 경험을 만들어낸 거죠.

이 사례를 공유해 주신 Ezra Spier에게 감사드립니다.

이 글은 muse-spark-1.2-contributor 모델을 사용해 번역했습니다.

댓글