행복
처음에는 HTML만으로도 사람들은 행복했습니다. 다른 사람의 컴퓨터의 정보를 내 컴퓨터에서 볼 수 있다니! 이것은 정말 혁명적인 사건이었습니다.
절망
하지만 행복은 영원하지 않았습니다. 웹이 성장함에 따라서 웹은 여러가지 시대의 요구사항에 둘러 쌓이게 됩니다.
갈림길
여러가지 형태의 절망들이 차차로 생겨나기 시작했는데, 이 절망감들은 크게 두가지로 나눌 수 있고, 그 성격에 따라서 다른 길을 따라가게 됩니다.
사용성과 생산성
사용성
사람들은 정보가 아름답게 보여지길 원했습니다. 이것은 훗날 CSS가 출연하는 계기가 됩니다.
사람들은 웹을 편리하게 이용하기를 원했습니다. 마치 데스크탑 앱처럼 사용자와 상호작용하는 기능을 갖고 싶어졌습니다. 이것은 훗날 JavaScript가 출연하는 계기가 됩니다.
생산성
우리가 코드를 짜서 문제를 해결하는 것은 코드를 짜는 것이 쉽기 때문이 아니라, 코드를 짜는 것 보다 현실의 문제가 훨씬 더 어렵기 때문입니다. 즉 수작업을 하는 것 보다 코딩을 통해서 자동화하는 것이 더 쉬울 때 우리는 코딩을 합니다. 그래서 코딩은 작은 문제를 처리하지 않습니다. 코딩은 해야 할 양이 많거나, 자주 반복되거나, 실수하기 쉬운 일을 대상으로 합니다.
그래서 어떤 개념을 배울 때 항상 잊지 말아야 할 것이 있습니다. 그 개념을 통해서 해결하려고 하는 문제를 무한으로 가져다 놓고, 극단적인 상황에서 이 개념이 없다면 얼마나 절망적일까를 상상해보셔야 합니다.
상상해봅시다. 웹 사이트의 모든 h1 태그를 h2 태그로 교체해야 할 일이 생겼다고 생각해보세요. 페이지가 5개라면 아무 문제가 없습니다. 하지만 5억개라면 어떤 일이 생길까요? 또 그 일을 하루에도 여러번씩 해야 한다면?
웹이 폭발적으로 성장하면서 큰 규모의 사이트들이 생겨나기 시작합니다. 자연스럽게 웹페이지를 수작업으로 만드는 것에 한계가 생기기 시작합니다. 이를 극복해서 대규모의 웹페이지를 만들기 위해서는 지금까지와는 전혀 다른 차원의 접근이 필요해집니다.
선택
인류가 어떤 갈림길에 서게 되었는지 아시겠죠? 여러분도 선택을 하시면 됩니다. 웹의 사용성을 높이고 싶다면 CSS나 JavaScript을 공부해서 도입하면 됩니다. 대규모의 웹페이지를 쉽게 만들고 싶다면 Web Application Server 을 배워서 생산성을 높이면 됩니다.