언젠가 웹 프로그램을 하면서 명심해야 할 것들이 있다는 조언을 들은적이 있다.
그중 가장 기억에 남은 것은 이것이다.

"사용자들은 세살이거나 장난꾸러기이다"

컴퓨터에 저장되어 있는 정보를 끄집어 내어 사용자에게 제공하는 웹페이지를 만드는건 맘편한 일이다.
적어도 컴퓨터에 저장되어 있는 "정보는 정확하다" 라는 판단하에 하는 작업이니까..
그에 반에 컴퓨터에 무언가를 저장하는 일은 몹시나 맘 불편한 작업이다. 정보가 옳바른 지를 늘 체크해 주어야 하니까..

물론 프로그램 내부의 변수의 유효성검사에 관련된 부분은 저장쪽에서.. 혹은 호출쪽에서 라는 다양한 의견들이 있지만 그건 프로그램을 통해서 데이터가 가공될때의 이야기기고 웹 프로그램에서 사용자에게 정보를 받아서 저장하는 것이라면 정보를 받아서 저장하는 쪽에서 정보의 상태를 판단해서 옳바른 정보를 저장 해 주어야만 한다.
그건 누구나 인정하는 일이다.

이름을 넣어주세요.. 하지만 사람들은 숫자를 넣는다.
한번만 클릭해주세요.. 하지만 사람들은 더블클릭을 한다.
이메일 주소를 넣어주세요.. 하지만 사람들은 "1111"만 넣는다.

처음 웹 프로그램들은 이런 문제들을 서버쪽 프로그램에서 해결했다.
그때는 차라리 좋았다. 어차피 검증해야 하는 거라면.. 서버 프로그램에서 한번만 하면 되는거였다.
하지만 문제는 잘못된 정보를 넣었을때 서버에서 "잘못넣었어요"라고 출력하고 다시 보여줄때..

"그 과정이 너무 느리다던가
그사람들이 적었던 정보들이 백지가 되어 다시 처음부터 입력해야 하는 아픔을 주던가"

하는 문제들이 발생했다.

그래서 누군가는 JavaScript를 사용했다. 서버로 오기전에 로컬에서 검증하겠다는 뜻이다. 처음에는 그럭저럭 괜찮았다.
입력을 해야하는 곳에 아무것도 입력을 하지 않았다던지, 이메일 주소에 엉뚱한 문자를 적었다던지(그저 형식만 검사할 뿐이지만), 숫자를 넣어야하는 곳에 문자를 넣었다던지 등등..
그런 부분들은 그럭 저럭 편하게 검사할 수 있었다. (그래서 처음엔 난 JavaScript가 폼 검사에만 쓰이는 언어라고 생각한 적도 있었다.)
 
하지만...
프로그램들은 여기서 멈추지 않았다. 더 많은 사람들을 끌어들이기 위하여 더 화려한, 편한, 사용하기 좋은 UI를 선보였다. 누군가 하니 다들 그렇게 한다. 그래야 사람들이 모이니까..
하지만 그 화려하고, 편하고, 사용하기 좋은 UI는 더욱 복잡한 프로그램 소스가 되어 버렸다.
(JavaScript는 정말 소스를 복잡하게 만든다.)

수십개의 입력창들이 숨어있다가 필요에 따라서 등장한다.
때론 마우스로 안에 있는 것들을 옮기기도 한다.

이젠 검증하는 소스가 실제 프로그램의 줄 수에 늘려주는 큰 역할을 하고 있다. (프로그래머를 강하게 압박하고 있다. 프로그래머라는 직업이 점점 더 힘들어 지고 있음을 요즘 급격하게 느끼고 있다. ㅠ.ㅠ;;)

그래 이정도는 봐줄 수 있다. 사람은 누구나 실수를 할 수 있으니까.. 어차피 검증은 필요한 부분이다. 하지만 정말 정말 싫은건 그 "검증작업을 피할 수 있을까?" 라는 생각을 가지고 이것 저것 도전해 보는 사람들이다.

F5를 수십번 누르고 뒤로가기, 앞으로가기, 그리고 몇가지 전문적인 지식으로 해킹을 시도하기도 하는 사람들이다. 이젠 데이터의 검증을 넘어서 보안까지도 고려해야 한다.
프로그램은 더욱 더 복잡하고 힘들어진다.

결국 프로그램은 사용자의 눈높이를 높여주고 그 댓가를 톡톡히 치루고 있는 셈이다.
물론 눈높이를 높여준 사람은 '다른 사람'이고 댓가를 치루는 사람은 '프로그래머'이다. 그게 더 맘 아프다. ㅠ.ㅠ

물론 이건 넋두리이다. 사용자들의 눈이 높아지는 건 좋은 현상이고 당연한 현상이다.
그에 따라 프로그래머의 업무량과 프로그램의 복잡도가 높아지는 것도 당연한 현상이다.
다만 좋은.. 당연한.. 현상이지만.. 지금이 버거워서 넋두리를 해본다.

PS)
아참.. 사용자가 만나는 페이지야 어쩔수 없다고 하더라도
관리자 페이지를 만들어 줄때는 조금 편하게 프로그램했으면 좋겠다.
하지만 관리자도 자신이 사용자(User)인척 한다. ㅠ.ㅠ;;
그건 너무 싫다..
User는 받아드릴 수 있다.

하지만 관리자여..
제발 "Don't be Evil" 해 주세요...
Posted by 달빛변신
,