본문 바로가기

Memo

Ajax instant suggest function

Ajax로 구현되는 여러 가지 특징적 기능 중 가장 자주 사용되는 것이 instant suggest가 아닐까 싶다. 아래 그림에서 볼 수 있듯 네이버에서 제공하는 '자동 완성'도 이런 기능을 응용한 것 중 하나다.


이 기능에서 한 단계 발전하여 직접 검색 결과를 출력해 버리는 야후!의 instant search도 있다. 특정 단어를 친 후 잠깐 멈추고 있으면 즉시 검색 결과를 새로운 인터페이스로 출력한다.


그런데 이런 기능은 아무리 비동기식을 적용한다고 해도 서버에 상당한 부담을 준다. 마치 신발 가게를 방문한 고객에게 도움을 주기 위해 1초 간격으로 "필요한 게 이거 아닙니까?"라고 질문하는 것과 같다. 분명 친절하지만 종업원에겐 매우 피곤한 일이 될 것이다. 특히 영세한 소규모 시스템으로 웹 서비스를 운영하는 회사라면 이런 기능을 쉽게 넣기 힘들다.


그런데 이 기능을 매우 적절한 곳에 활용하는 사이트를 얼마 전에 발견했다. (주)나우콤에서 웹 2.0 커뮤니티를 주창하며 내 놓은 오피라는 웹 사이트의 회원 가입 메뉴가 그것이다. 이 사이트의 회원 가입 메뉴에서 사용할 아이디를 입력하면 아래 그림에서 보듯 적절한 아이디가 아닌 경우 '사용할 수 없는 아이디'라는 메시지가 나온다.


그러다 사용 가능한 아이디를 입력하면 사용 가능한 아이디라는 메시지가 나온다. 만약 아이디가 3자 미만일 경우엔 또 다른 안내 메시지가 나온다.


회원 가입 메뉴는 다른 페이지에 비해 트래픽 비중이 그리 높지 않기 때문에 실시간으로 DB에 조회해도 크게 무리가 없다. 일반적인 웹 사이트에서 아이디를 입력한 후 "확인하기" 버튼을 누르게 만드는 것보다 훨씬 사용자에게 편리하다. 물론 좀 더 친절하다면 특정 문자열을 입력하고 잠시 (1초 정도) 키보드 입력이 멈춘다면 다른 웹 사이트에서 하듯 문자열의 앞이나 뒤에 특정 문자열을 붙여 제안하는 방법도 괜찮다. 'bluemoon2005로 하시겠어요?'와 같이 말이다.

그러나 이 정도만 해도 굉장히 좋다. 페이지를 이동하지 않고 그 자리에서 처리할 수 있고 DB에 큰 무리를 주지도 않고 사용자는 편리하다. 똑같은 instant suggest function이라도 적절한 위치에 있을 때 사용성과 효율성을 모두 향상 시킬 수 있음을 보여 주는 좋은 사례다.

'Memo' 카테고리의 다른 글

쓸데없는 관심  (0) 2006.07.11
선생님과의 대화  (0) 2006.07.10
콩깍지 closed  (2) 2006.07.10
디지로그 서평  (2) 2006.07.10
짧은 글과 긴 글  (0) 2006.07.10