Page 17 -
P. 17

말을 절대 할 수 없는 식당에 비유하면 이해하기 쉽다. 이 식당은 손님이
                  ‘신선한 치킨 샐러드’를 주문하면 ‘이 식당에서 주문하신 메뉴에 가장 가까

                  운 메뉴’라며 생닭을 내온다. 이처럼 내가 뭔가 하라고 시켰는데 웹 브라우
                  저가 에러를 내는 대신 내 의도를 추측하는 데만 열중한다면 얼마나 답답할

                  지 상상해보라. 그리고 웹 페이지가 ‘제대로 나타나지 않는 이유’를 사용자

                  가 알아내기란 꽤 어렵다.
                    왜 브라우저는 사용자가 무엇을 잘못했는지 그냥 편하게 알려주지 않을

                  까? 사실 HTML은 엄격하지 않아서 사용자가 무엇을 잘못했는지 잘 모르
                  기 때문이다! 그래서 손님 앞에 양상추도 없이 생닭을 떨어뜨려놓고 가는

                  것이다.
                    맞다. 나도 이제 와서 ‘웹을 망가뜨리지’ 않고 HTML을 엄격하게 만들 수

                  있다고 생각하는 건 아니다. 하지만 HTML이 애초에 엄격하지 않았기 때문

                  에 이런 사달이 났다는 점을 지적하고 싶다. 당장 엄격해져야 한다는 말이
                  아니다. 당장 그렇게 바꾼다는 건 불가능에 가까운 일이기 때문이다. (그런

                  방향으로 점진적으로 진화해나가는 건 좋다.)
                    나는 컴퓨터가 사용자의 입력에 대해 ‘추측’하거나 ‘안 되는 걸 되게 하려

                  해서는’ 안 된다고 확신한다. 그랬다가는 통제 불능의 끔찍한 복잡성 지옥
                  이 펼쳐질 것이다. 유일하게 추측이 개입되어도 좋다고 보는 영역은 구글의

                  자동 교정 기능 정도다. 사용자에게 선택지를 줄 뿐 앞서 나가서 추측을 바

                  탕으로 무언가를 해서는 안 된다. 입력은 옳거나 옳지 않거나 둘 중 하나일
                  뿐 ‘아마’라고 보는 일은 절대 없어야 한다는 게 중요하다. 만약 입력이 두

                  가지 의미를 지닌다면 사용자에게 둘 중 하나를 선택할 기회를 주거나 에러
                  를 도출해야 한다.









                                                                   11장  단순성과 엄격성  047




     심플소프트웨어_06.indd   47                                                 2019-10-18   오전 10:33:59
   12   13   14   15   16   17   18   19   20   21   22