Ajax 가 만능은 아니다

logo.jpg

오늘 Web World Conference 에 다녀왔다.
4일간의 일정으로 진행되는 WWC에서 오늘은 Development 섹션에 관한 것이었고 아무래도 근간의 최고 이슈인 Ajax 가 주제이다 보니 참석안할 수가 없었다.
이런 류의 행사에는 이제 겨우 서너번 참석해보는 것이지만, 늘 느끼는 것은 “소문난 잔치에 먹을 것 없다”는 것이었다. 솔직히 나로서도 뭘 바라고 있는건지는 모르겠지만, 그렇다고 해도 이런 식은 아닌 것 같다는 생각이 든다.

어쨌거나…
다녀오고 나서의 느낌을 단어로 말하자면… 홍보, 맹신, 낚시(?) 같은 단어가 떠올랐다.
기술적인 내용은 거의 없었고, 특히 MS같은 경우에는 Ajax 는 어디가고 WPF/E에 대한 홍보로만 가득했었다. 그나마 내용이 좀 있었던 것은 안철수연구소에서 했던 웹보안 관련된 내용과 NHN에서 했던 웹표준 프로세스 관련 내용이었다. 다음쪽에서는 UCC라는 주제를 가지고 기술 이슈를 분석한다고는 했지만 실제로는 동영상 서비스에 있어서의 의사결정과정…쯤이 되었던 것 같다.

하지만, 오늘 하려는 얘기는 위의 내용이 아니다. 위의 내용들은 응당 컨퍼런스라면 있을만한 내용이었으니까 뭐… 그렇다고 치자. 내가 하고픈 얘기는 Ajax에 대한 맹신에 관한 얘기다.

섹션중에 “실제 업무에 활용가능한 Ajax 프로그래밍”이라는 주제로 했던 강연이 있었는데, 글쎄… 관련 서적을 쓰신 분이라 그런지 몰라도 Ajax에 대해 너무 맹신하고 있다는 느낌이 강했다. 같이 갔던 분이 “목사님 같았다”라고 표현할 정도였으니 대충 짐작하리라 믿는다. Web2.0, Ajax라는게 국내에서 이슈가 되기 전부터 관심을 가지고 사용해왔었지만, 언제나 그렇듯 각자의 영역이 있는 것이다. MVC 패턴으로 따졌을때 Ajax가 일부 Control 부분을 예전보다는 더 다룰 수 있다고 생각하지만 전담은 물론, 메인이 되는 것조차 꿈같은 얘기다.

그런데도, 마치 Ajax가 만능인 것처럼 말하고 있는 그 분을 보면서 너무 맹신하는게 아닌가 했다는 생각을 했다. 더군다나, Ajax 중에서도 특히 prototype.js 프레임웍에 너무도 강하게 매료가 되었는지, 사실 섹션 전체가 prototype.js 에 대한 소개와 사용법 정도라고 보는게 더 맞겠다 싶었다. 나도 1년이 넘게 사용해봤으니, 편한 것도 알고 좋은 것이라는 것도 알지만 분석과 비판은 없는 맹신이라는 태도에는 고개를 저을 수 밖에 없었다. prototype.js 도 다른 것과 같은 하나의 프레임웍일 뿐이다. 모든 사람이 그것을 쓰도록 강요할 이유도, 마치 그것이 진리인 것처럼 할 필요도 없다고 생각한다.

다시, Ajax 얘기로 가자. 강연중에 그러더라. “웹서비스 개발자는 DB에 넣고 빼는 것만 하면 된다”라고…
보안에 관련된 것만 조금 더 전담해주면 된다고 말하는데 내 결론은 아니올시다이다. 사용자의 편리함을 위해서 미리 체크를 해주고 잘못된 데이터 혹은 잘못된 프로세스에 대한 경고를 주는 것 정도는 가능하겠지만, 클라이언트에서 데이터를 체크해서 건네준다는 생각은 이미 틀린 생각이다. 모든 데이터는 서버에서 검증되어야 한다. 이 부분에 있어서 만큼은 클라이언트 언어인 Javascript 그리고 그 방법인 AJAX는 결코 메인이 될 수 없다. 클라이언트에서 보내는 데이터는 어떤 식으로던지 조작이 가능하기 때문이다.

전산경력이 27년이라는 그 분은 스크립트 기반 언어를 충분히 접해보지 못했었는지, javascript로 가능한 연관배열 형태(사실은 Object 에 property 붙이는거다)를 획기적인 것처럼 보고있더라. 이미 PHP니 Python, Perl 등을 봐왔던 나로서는 그게 그렇게 흥분할만큼 획기적이라는 생각은 안들더라. Javascript 가 객체지향언어라고도 했는데 그렇게 보기에는 Language Structure 가 너무 빈약하다. C로도 OOP 구현은 가능하다. 하지만 C를 객체지향언어로 부르진 않는다(객체지향이 반드시 우월성을 의미하는 것은 아니다).

Ajax가 분명 웹에서 구현되는 UI나 몇몇 구조적인 변화를 가져온 것은 사실이지만, 다른 모든 기술 혹은 방법론과 마찬가지로 “반드시”라는 단어가 들어가는 것은 아니다. 다만, Ajax가 어떤 형태의 방법인지를 알고 있다면 자신이 필요한 일에 사용할 수도 있을 것이고, 배우는 것은 그 때 배워도 충분하다. 혹은 정말 필요한 일이라면 전문인력을 들여도 된다.

Web 2.0, Ajax, 웹 표준, UCC(혹은 UGC) 항간에 화두가 되는 이슈들을 볼 때마다 왜 그렇게 많은 사람들이 저런 단어들에 목을 매는가 싶다. 트렌드도 좋고, 기술을 익혀두는 것도 좋지만 그건 자신이 필요할 경우이고, 그게 자신의 방향과 맞을 경우뿐이라고 생각한다. 지금 꼴은 김치찌개가 잘팔린다고 하니까 중국집에서도 김치찌개를 만드는 모양으로 보인다. 소신을 좀 가지자. 세상에 만능은 없다. 맹신은 눈을 멀게 한다.

  1. 후후.. 어떤 강연이었는지 느낌이 오는군요.
    웹에서 클라이언트단의 validate는 사용자 편의를 위해 (이거 틀리셨네..) 쓰이는거고, 실제로는 서버단에서 해야하는데 말이죠. 무엇보다 웹 개발자라면 서버와 클라이언트 양쪽을 모두 다뤄야 한다고 생각하는데요. 넣었다 뺐다…만 하는거라니… ^^;;

  2. 서버사이드에서 모든 데이터의 체크가 이루어져야 한다는 의견에 동참합니다.
    브라우저에서 자바스크립트로 체크해주는 것은 이에 대해 부수적으로 사용자의 편의성을 위해 가미 되는 것이라는게 제 생각이구요..

    사족일지는 모르겠습니다.

    행복한 고니님은 이미 고수라고 생각합니다.
    허나.

    문제의 대목은
    ———————————————————————————————-
    전산경력이 27년이라는 그 분은 스크립트 기반 언어를 충분히 접해보지 못했었는지, javascript로 가능한 연관배열 형태(사실은 Object 에 property 붙이는거다)를 획기적인 것처럼 보고있더라. 이미 PHP니 Python, Perl 등을 봐왔던 나로서는 그게 그렇게 흥분할만큼 획기적이라는 생각은 안들더라. Javascript 가 객체지향언어라고도 했는데 그렇게 보기에는 Language Structure 가 너무 빈약하다. C로도 OOP 구현은 가능하다. 하지만 C를 객체지향언어로 부르진 않는다(객체지향이 반드시 우월성을 의미하는 것은 아니다).
    —————————————————————————————

    여기 였던것같습니다.

    고니님이 아저씨라고 부르시는 코멘트를 다신 저분은 나름 느꼈고 들으신바가 있기에 고니님의 비아냥에 기분이 상하신것 같습니다.

    1. 제가 어지간하면 저렇게 남에 대해 다소 무례할 수 있는 평가는 안할텐데요… 직접 그 강연을 보셨어야 했습니다. 한 섹션 전체를 prototype.js 의 사용법에 대해서 강의하며, 농담이 아니라 정말로 javascript의 Object 가 HashTable 처럼 사용할 수 있는 것이 “엄청난 장점”인 것처럼 표현했습니다. 전체 섹션이 다 그런 식이어서, 본문에도 있지만 “목사님”이라고 표현할 정도였다니까요. -_-;;

      그 분이 한말 중에 정확히 이런 표현도 있었습니다.
      _______________________________________________________
      저는 서버 개발자들 우습게 봅니다. 그 사람들은 우리가 던지는 데이터 받아다가 서버에 넣었다 뺐다만 하는거 아닙니까?
      _______________________________________________________
      javascript를 전문으로 하며 직업으로 삼고 있는 저조차도 javascript를 만능으로 보는 그 강연에는 어이가 없었으니까요.

      객체지향언어 얘기도… 상속, 다형성, 데이터 은닉, 클래스 문법, 그 어느 것도 지원하지 않는 언어를 객체지향 언어라고 보기엔 무리가 있지 않을까요? ^^

      비슷하게 보이는 방법은 저도 잘 알고, 잘 써먹고 있습니다만 그렇다고 그게 javascript의 language 특성은 아니거든요. 아래에 계시는 … 이 분… 본격적으로 토론을 해보고 싶은데 그 뒤론 안오시더군요.

  3. 초등학생이 선생님의 말씀 중에서 일부만을 듣고 친구들에게 선생님의 말씀을 비평한다. 물론, 친구들도 초등학생이니 거기서 거기다.

    만약, 초등학생이 ‘선생님 말씀에 내가 모르는 무엇이 있을 것이다…’, ‘왜, 경험이 많은 선생님이 저런 말씀을 할까?’, ‘내가 생각한 것을 선생님이 모르지 않을 텐데…’라는 생각을 할 수 있다면, 비평을 하지 않고 고개를 숙일 것이다. 그러니에 초등학생인 것이다.

    그렇다고 선생님이 초등학생에게 이러쿵 저러쿵 말을 하지 않는다. 지금 설명을 한 들 초등학생은 이해하지 못하기 때문이다. 선생님 말씀을 이해하기 위해서는 이론이 아니라 경험이 필요하고, 그것은 많은 시간이 필요하기 때문이다.

    초등학생이 성인이 되었을 때, 어릴때 생각했던 것이 너무도 어리석었다는 것을 느끼게 된다. 나도 이 업계에서 내 목소리를 낼 수 있다고 생각하지만, 그 사람하고 대화를 나눌 때에는 조심하게 된다. 왜냐하면, 그 사람 앞에 선 나는 초등학생이기 때문이다. 이런 생각을 하는 것을 보니 나도 초등학생은 지난 것 같다.

    이 글을 쓴 사람도 시간이 지나면 이 글에서 잘못된 점들을 느끼게 될 것이다. 만약, 못 느낀다면 발전을 하지 못한 것이다. 이 글의 잘못된 점이 너무 많다. 왜냐하면 기술은 증명이 되고 논리가 맞어야 하는데, 이 글은 느낌이 많기 때문이다. 이것은 초등학생이 생각하는 것과 다름이 없다.

    만약, 내가 이런 글을 쓰려고 생각하였다면, 적어도 말한 사람에게 확인을 할 것이다. 정확하게 진의를 파악한 후에 글을 쓸 것이다. 자신의 느낌을 쓰는 것이 아니라 상대방을 비평하는 글이라면, 철저하게 준비를 할 것이다.

    그래서 이 글을 쓴 사람은 초보자이다.

    1. 초등학생하고 선생님 얘기를 하다가 갑자기 제가 초보자란 얘기가 나왔군요.
      강연에 대해서 한번 말씀해보시죠? 제 글이 느낌이라는 걸 차치하고 그런 느낌과 판단이 정확한지 아닌지에 대해서 그 강연 자체에 대해서 말씀해보세요.

      그 사람이 대단한 사람이라는 건 본인의 느낌이죠. 아니 주변 사람들도 인정하나요? 그렇다고 해서 항상 그 사람이 하는 말이 맞는게 아닙니다. 그런걸 우리는 “권위에의 호소의 오류”라고 배웠죠. 맹신이라고 볼만했으니 맹신이라고 보는거죠.

      혹시 본인이세요? 제발 와서 말도 안되는 소리만 하지말고 자신도 좀 보여가면서 제대로 된 글을 한번 써보세요.

  4. 요즘 ajax 추세를 보다보면…

    왠지 전에 iframe 맹신에 빠져서 허덕거리던 모습이 떠오릅니다.

    … 글쎄요 너무 남발하는건 곤란하죠.

    갖은 협잡과 술수가 넘쳐나는 웹계에서

    “데이터의 검증은 서버 사이드에서라는 기본이 가장 중요하다”고 생각됩니다.

    ajax 는 편의를 위한 툴일 뿐입니다.

  5. 세미나 강사는 개인적으로 만난것이 아니라 강의 내용으로 만난 것이니 사람을 평가해서는 안되며, 한다고 하면 내용을 평가해야 한다.

    또한, 논리를 가지고 반박을 해야 하므로 그 사람이 말했던 깊은 곳에 있는 내용까지 파악해야 한다. 그런데, 이것을 파악하기가 쉽지 않다. 그래서 다른 사람의 강의 내용을 평가하는 것을 잘못하면 내 실력이 이 정도 밖에 안됩니다라고 공표하게 되는 결과를 초래할 수 있다.

    이 글을 본 내 느낌은 그 사람의 내공을 따라가기에는 너무도 많은 시간이 필요한 것으로 생각된다. 글을 쓴 수준을 볼때 이제 막 초보에서 넘어선 느낌이 드는데, 그 정도로 저 정도 고수를 평가하는 것은 그 사람에게 무례를 범하는 것이다.

    내가 알고 있는 그 사람은 이 글을 쓰는 사람이 평가할 수 있는 그 정도의 레벨이 아니다. 그 사람을 알고 있는 지인으로서 이 글을 쓴 사람에게 마지막으로 하고 싶은 말은 조금 더 내공을 쌓은 후에 다른 사람의 실력에 대해서 거론하라고 말하고 싶다.

    1. 메일이나 홈페이지 주소라도 남기셨으면 제가 어떤 분인지 좀 더 알 수 있었을텐데 그게 없네요.

      제 레벨을 어느 정도로 평가하셨는지 모르겠군요. 글을 쓰시는 분은 저를 평가할, 그 소위 레벨이라는게 되시는지 궁금합니다. 어떤면에서 제 실력이 부족하다고 생각하셨는지 어떤 방면으로 제가 내공을 더 쌓아야 할지 말씀해주셨으면 좋겠군요. 정확히 어느 부분이 틀렸는지도 부탁합니다.

      팔이 안으로 굽는 것은 부정하지 않겠습니다만(절 아는 사람들은 제가 그러한 “레벨”이 된다고 생각하거든요), 그것을 증명하기 위해서 제 실력까지 검증해주시니 제 경력이 초보 수준을 막 벗어난 것이라고 하면 대체 얼마나 많은 시간을 들여야 평가할 수 있을 정도의 사람이 되는지도 궁금합니다.

      그리고 제 글은 내용을 평가하기도 했습니다. 순전히 prototype.js 에 관한 찬양일색이라고 했으며, Ajax 에 관해 맹신하고 있다고 했습니다. 실제 내용자체가 그랬다고 아직도 생각하며, 같이 들었던 동료들도 여전히 그렇게 생각하고 있습니다. 그 동료들 마저도 “레벨”이 안된다면 어쩔 수 없기는 하네요.

      저와 토론하고 싶다면 언제든 채널을 열어두겠으니 필요하시면 연락하시기 바라며, 가능하다면 메일이나 홈페이지 중에 하나 정도는 남겨주시면 감사하겠습니다.

  6. 저도 거기 다녀왔었는데고니님도 거기 계셨을줄이야 어떤분이신지..;;

    혹시 상품받으신 분중에 한분이신가?ㅎㅎㅎㅎ

    아무튼…ms는 원래 그냥 안좋은 이미지였는데 이번에 완전히 실망햇습니다.

    저는 아직 이 세계에 발을 담근지도 얼마 대지 않고 세미나는 처음이었는데 10만원이나 주고 간 난생처음의 세미나가 실력없고 볼품없는 제 기분에도 만족도가 40프로 정도라는 생각이 들정도니..;;

    마지막 7번째 쎄션 해주신분과 오픈마루의 그분은 그래도 세미나처럼 먼가 알려주고 도움이 되려는 느김이 강해서 그분들때문에 만족하려고 생각합니다. ㅎㅎ

    prototype.js 아저씨는 완젼 잼있었는데..ㅋㅋㅋ

    그냥 전 왜그랫는지 재미있게만 보고…물론 내용이아닌 그아저씨의 동작과 말투등..을 재미있게만 보고 지나쳤는데 역시 고니님은 생각이 다르네요.ㅋㅋ

    오늘에서야 이곳을 즐찾합니다. 앞으로 자주 올께요..^^

    그럼 메리크리스마스하세요.^^

Leave a Reply