본문 바로가기

개발이야기

얕은 지식 높은 직위 <Ajax편>

<몸담고 있었던 회사에 대한 이야기입니다.>

IT세계 속은 늘 새로운 기술로 넘쳐 납니다. 그 중에  한동안 이슈가 되었다가 없어 지거나 많은 거품이 빠지는 기술이 있습니다.

여기서 한때 Web2.0의 부흥을 일으키며 Web2.0의 부속기술로 오해한 Ajax가 있는데 그때는 엄청난 묘미에 많은 개발자와 고객이 모든 사이트가 AJAX이길 바랬습니다.(Ajax를 도입하면 마치 Web2.0 사이트가 된다고 생각하는 사람이 많았습니다.)

본인은 Ajax 초기 시절 여러 책과 사이트에서 공부를 하였는데 사이트를 추천한다면 역사부터 잘 설명한 김태영님의 taeyo.net의 글입니다.

http://www.taeyo.net/Columns/List.aspx?SEQ=22&IDX=0 (여기서 정말 많은 공부를 했습니다.)

여기서 Ajax는 신기술도 아니고 그저 편법으로 사용되었다가 제대로 명칭이 정해지고 사용된 것임을 알
수가 있습니다.

제가 여기서 말씀드리는 내용은 Ajax의 남용으로 인한 피해 인데 윤석찬님이 쓰신 웹 개발 시 저지르는 실수들에서 자바스크립트를 끄면 완전히 동작하지 않는 문제와 IBM의 기술자료에 애플리케이션 개발시 Ajax를 사용해야 할 부분과 시점을 보면 뒤로가기키 와 앞으로가기키가 Ajax로 인한 백그라운드 작용안에서는 무용지물이 되는 문제가 있습니다. 그리고 많은 개발코드량과 그로 인한 관리, 그리고 디버깅과 유지보수가 문제가 있습니다.

사이트가 Ajax를 사용해 너무 자주 업데이트를 하면, BackForward 버튼 그리고 북마크가 깨진다는 것을 사용자들은 알고 있을 수도 있다(이런 상황은 Ajax로만 이루어진 사이트에서뿐만 아니라 플래시 사이트에서도 쉽게 볼 수 있다). 사용자들은 Back 버튼을 클릭해 이전 페이지나 뷰로 넘어가길 원할 것이다. 사용자 경험이 더 나빠지는 상황은 다음과 같다. 사용자가 Forward 버튼을 다시 클릭했는데 자신이 방금 전에 보았던 페이지 대신 마치 Ajax 사이트를 리프레시한 것과 같이 초기 뷰를 보는 것이다.

IBM 기술자료 - 애플리케이션 개발시 Ajax를 사용해야 할 부분과 시점



저는 2006년 Ajax를 알기 위해 많은 책과 사이트 그리고 Ajax을 이용한 웹 기반의 영어공부플레이어(사전 OpenAPI이용)를 만들어 입상을 이루어낸 실적이 있습니다. 
아무튼 이 회사 수석급 연구원이 주장하는 것에 대해 나열해 보겠습니다.

  1. 적은 량만 전송 받기 때문에 네트윅 패킷이 효율적으로 사용된다.
  2. 속도가 빠르다.
  3. 깜박임이 없다.

위의 리스트를 다 맞습니다. 정확히 맞습니다. 하지만 오용된다는 것에 초점을 맞추어 말씀 드리는 것입니다. 즉 잘만 쓰면 사용자 편의를 극대화 하지만 남용한다면 여러가지 단점이 있다라는 말입니다.

사용자 편의
리스트의 Ajax화는 사용자에게 더더욱 나쁜 편의를 보여지게 되는데 그것은 위에 인용한 글 처럼 바로 뒤로 가기 입니다. 한페이지 안에서 필터나 검색을 통해 나열된 리스트의 뒤로가기는 Ajax안에서 모두 무시하고 전 페이지로 가게 됩니다.

페이지 로드 속도 VS 개발 속도
네 웹페이지 로드 속도가 빨라지는 것은 당연합니다. 하지만 문제는 개발량과 유지보수 입니다. Gmail처럼 자주 업데이트되어 바로바로 보여줘야 하는 사이트라면 그래야 될지 모르겠습니다. 하지만 그렇지 않는 곳에서 모든 기능의 AJAX화는 개발시간소모와 유지보수의 피곤함을 감당해야 합니다. 백그라운드로 빠진 통신을 디버깅한다는건 여간 귀찮은게 아닙니다.

깜박임
역시 맞는 말입니다. 적절하게 쓰면 멋진 웹어플리케이션이 됩니다. 하지만 단순히 좋다고 해서 모든 페이지에 적용한다는건 왠지 수고스럽지 않습니까? 필요한 곳에 적절히 사용하여 사용자의 입력값을 날리지 않거나 바로바로 업데이트 된 데이터를 보여지게 하는 비동기 통신으로 마치 웹이 아닌 것처럼 보이게 해야하지 그거와 상관없이 모든 기능에 기술도입하여 모든 각각의 페이지에서 깜박임을 없애야 한다는 것을 주장한다는건...차라리 이 시대에 죽어가는 ActiveX를 도입하는게 나을 듯 싶습니다. 아니 플래쉬 떡칠 사이트가 더 나을듯 싶군요.(농담)

 

하고 싶은 말!!

여기서 빠르다, 깜박임이 없다라고 주장하여 정작 필요한 곳은 어딘지 모른채 그저 모든 리스트 및 삽입, 수정, 삭제까지 Ajax를 도입하자고 주장하는 분은 바로 많이 알고있어야 할 수석급 연구원입니다. 놀랍습니다. 그리고 궁금합니다. 도대체 어디서 Ajax를 공부했는지요. 또 오랫동안 공부했던 본인안테 까지 사용하라고 권고하는 것에 그저 격분할 뿐입니다.

아무튼 이 회사에서 개발하는 사이트는 대부분 리스트형식이며 사용인원은 50명도 되지 않는 관리페이지입니다. 단순히 리스트로 보여지고 추가, 수정, 삭제하는 곳인데 그 모두를 Ajax를 사용한다는것이 과연 옳은 일 일까요? 또한 기능 중에 엑셀 업로드 및 대량파일 업로드가 있는데 이 부분에서 Ajax를 사용한다면 사용성이 높아질 거라 생각이 듭니다.

어설프다는 것은 참으로 위험합니다. 더 위험한건 남을 가르치는 또한 관리하는 위치에서 어설프다는 것은 선무당이 사람죽이는 결과를 초래하게 됩니다.

저는 하루빨리 이 문제점을 빨리 캐치하여 정정하고 다시 얕은 기술지식으로 뭔가 이루어내는 것처럼 주도적으로 알리려 하지 말았으면 좋겠습니다.