ajax를 기반으로 한 페이스북, 트위터 같은 소셜 게시판을 제작하고 있습니다.
페이스북이나 트위터는 실시간으로 새로고침이 되는 것 같은데,
ajax로 충분히 이들과 흡사하게 구현할 수 있을까요?
ajax를 기반으로 한 페이스북, 트위터 같은 소셜 게시판을 제작하고 있습니다.
페이스북이나 트위터는 실시간으로 새로고침이 되는 것 같은데,
ajax로 충분히 이들과 흡사하게 구현할 수 있을까요?
트래픽이 몇 테라인지는 중요하지 않습니다. 움짤 첨부파일 10테라를 전송하는 것보다 HTML 페이지 10기가를 전송하는 것이 훨씬 많은 부하를 일으킬 수도 있습니다.
이렇게 생각하시면 됩니다. 일반적인 사용자들은 평균 30초에 한 번씩 새 글을 읽거나 댓글을 쓰는 등 서버에 어떤 작업을 요청하는데, ajax 실시간 기능을 사용하면 5초에 한 번씩 서버에 업데이트를 요청한다고 가정해 보아요. 100명이 30초에 한 번씩 작업을 요청한다면 1분에 200개만 처리해 주면 됩니다. 100명이 5초에 한 번씩 작업을 요청한다면 1분에 1200개를 처리해 줘야 합니다. 단순히 계산해도 서버 부하가 6배로 늘어나겠지요? 게다가 다른 탭에 사이트를 띄워놓고 딴짓하는 사이에도 일정한 주기로 계속 서버에 접속할 테니, 실제 부하는 10배, 20배로 늘어날 수도 있습니다.
실시간 새글 알림이라는 모듈이 이미 오래 전부터 있었습니다. 체크 주기를 1~2분 정도로 해놓으면 그나마 괜찮은데, 동접수가 100명쯤 되는 사이트에서 체크 주기를 몇 초 단위로 했다가는... 그 기능 켜는 순간 서버 다운됩니다.
새로 글이 등록되거나 추천이 발생했는지 클라이언트가 어떻게 알죠? 서버에 물어봐야 알죠.
웹소켓(node.js) 등 다른 기술을 사용하지 않는다면 클라이언트가 물어보지도 않은 정보를 서버에서 임의로 보내줄 수 없습니다. 일반 ajax라면 주기적으로 물어보는 수밖에 없지요.