Page 16 -
P. 16
인한다면 사용자는 조금 더 편하게 쓸 수 있다. 하지만 동시에 코드는 더
길고 복잡해진다. 대개 프로그램이 덜 엄격할수록 코드가 길어지는데 이는
필연적으로 복잡성을 증가시킨다.
프로그래머를 위한 프레임워크나 언어를 만드는 중이라면 ‘덜 엄격한’ 인터
페이스는 최대한 간소하게 만드는 게 좋다. 그러면 사용성을 위해 단순성
을 희생하지 않아도 되므로 사용성과 단순성, 두 마리 토끼를 모두 잡을 수
있다.
물론 사용자가 O1n1e1을 입력해도 ‘1’로 인식되게 한다면 코드가 필요
이상으로 복잡해지므로 그보다는 엄격해야 한다.
앞에서 든 예처럼 엄격성은 대체로 입력과 연관된다. 출력이 항상 특정한
표준에 맞추어 나오도록 엄격하게 통제하는 애플리케이션도 물론 있다. 하
지만 애플리케이션이 엄격하냐 아니냐는 대체로 어떤 입력을 허용하고 어
떤 입력이 에러를 일으키게 할 것이냐로 구분되는 경우가 많다.
엄격성과 관련하여 가장 악명이 높은 사례는 아마 HTML일 것이다. 애초
에 아주 엄격하게 설계되지 않았기 때문에 웹 브라우저 디자이너들이 엄청
나게 고생해야 했다. 결국 표준화가 되긴 했지만 그렇게 되기까지 HTML
코드는 대부분 아주 엉망이었고 지금도 크게 좋아지지는 않았다. 애초에 엄
격하게 만들지 않았기 때문에 이제 와서 하위 호환성을 깨뜨리고 엄격하게
만드는 건 불가능하다.
HTML이 엄격하지 않게 설계됐기 때문에 널리 사용되고 인기를 끈 것이
라고 주장하는 사람들도 있다. 웹 브라우저가 유효하지 않은 HTML을 받아
들이지 않고 늘 에러를 일으켰다면 사람들은 HTML을 쓰지 않았을 거라고 말
이다.
말도 안 되는 주장이다. 종업원이 “저희 가게에는 없는 메뉴예요.”라는
046
심플소프트웨어_06.indd 46 2019-10-18 오전 10:33:59