더북(TheBook)

단순성(엄격성)을 살리기 위해 사용성이 저해된 예다. 엄격하다고 해서 항상 이런 트레이드오프 관계가 형성되는 건 아니지만 사실 그렇게 되는 경우가 많다. 1, One, ‘1’을 입력할 수 있게 허용하여 실수를 더 너그럽게 용인한다면 사용자는 조금 더 편하게 쓸 수 있다. 하지만 동시에 코드는 더 길고 복잡해진다. 대개 프로그램이 덜 엄격할수록 코드가 길어지는데 이는 필연적으로 복잡성을 증가시킨다.

 

프로그래머를 위한 프레임워크나 언어를 만드는 중이라면 ‘덜 엄격한’ 인터페이스는 최대한 간소하게 만드는 게 좋다. 그러면 사용성을 위해 단순성을 희생하지 않아도 되므로 사용성과 단순성, 두 마리 토끼를 모두 잡을 수 있다.

 

물론 사용자가 O1n1e1을 입력해도 ‘1’로 인식되게 한다면 코드가 필요 이상으로 복잡해지므로 그보다는 엄격해야 한다.

앞에서 든 예처럼 엄격성은 대체로 입력과 연관된다. 출력이 항상 특정한 표준에 맞추어 나오도록 엄격하게 통제하는 애플리케이션도 물론 있다. 하지만 애플리케이션이 엄격하냐 아니냐는 대체로 어떤 입력을 허용하고 어떤 입력이 에러를 일으키게 할 것이냐로 구분되는 경우가 많다.

엄격성과 관련하여 가장 악명이 높은 사례는 아마 HTML일 것이다. 애초에 아주 엄격하게 설계되지 않았기 때문에 웹 브라우저 디자이너들이 엄청나게 고생해야 했다. 결국 표준화가 되긴 했지만 그렇게 되기까지 HTML 코드는 대부분 아주 엉망이었고 지금도 크게 좋아지지는 않았다. 애초에 엄격하게 만들지 않았기 때문에 이제 와서 하위 호환성을 깨뜨리고 엄격하게 만드는 건 불가능하다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.