Page 17 -
P. 17
말을 절대 할 수 없는 식당에 비유하면 이해하기 쉽다. 이 식당은 손님이
‘신선한 치킨 샐러드’를 주문하면 ‘이 식당에서 주문하신 메뉴에 가장 가까
운 메뉴’라며 생닭을 내온다. 이처럼 내가 뭔가 하라고 시켰는데 웹 브라우
저가 에러를 내는 대신 내 의도를 추측하는 데만 열중한다면 얼마나 답답할
지 상상해보라. 그리고 웹 페이지가 ‘제대로 나타나지 않는 이유’를 사용자
가 알아내기란 꽤 어렵다.
왜 브라우저는 사용자가 무엇을 잘못했는지 그냥 편하게 알려주지 않을
까? 사실 HTML은 엄격하지 않아서 사용자가 무엇을 잘못했는지 잘 모르
기 때문이다! 그래서 손님 앞에 양상추도 없이 생닭을 떨어뜨려놓고 가는
것이다.
맞다. 나도 이제 와서 ‘웹을 망가뜨리지’ 않고 HTML을 엄격하게 만들 수
있다고 생각하는 건 아니다. 하지만 HTML이 애초에 엄격하지 않았기 때문
에 이런 사달이 났다는 점을 지적하고 싶다. 당장 엄격해져야 한다는 말이
아니다. 당장 그렇게 바꾼다는 건 불가능에 가까운 일이기 때문이다. (그런
방향으로 점진적으로 진화해나가는 건 좋다.)
나는 컴퓨터가 사용자의 입력에 대해 ‘추측’하거나 ‘안 되는 걸 되게 하려
해서는’ 안 된다고 확신한다. 그랬다가는 통제 불능의 끔찍한 복잡성 지옥
이 펼쳐질 것이다. 유일하게 추측이 개입되어도 좋다고 보는 영역은 구글의
자동 교정 기능 정도다. 사용자에게 선택지를 줄 뿐 앞서 나가서 추측을 바
탕으로 무언가를 해서는 안 된다. 입력은 옳거나 옳지 않거나 둘 중 하나일
뿐 ‘아마’라고 보는 일은 절대 없어야 한다는 게 중요하다. 만약 입력이 두
가지 의미를 지닌다면 사용자에게 둘 중 하나를 선택할 기회를 주거나 에러
를 도출해야 한다.
11장 단순성과 엄격성 047
심플소프트웨어_06.indd 47 2019-10-18 오전 10:33:59