본문 바로가기

.Net Technology/UI Performance

넥슨 사이트의 성능튜닝 - #5 캐시활용의 효과


안녕하세요~ 암암리에 넥슨의 뒤를 캐고 있는 튜닝요원 HOONS입니다. 원래 ETag에 대한 포스트를 쓰려고 했지만 한 초등학교 선생님의 제보가 도착해서 그 사건을 한번 분석해 보려합니다. 




제보받은 내용

어느 초등학교 선생님으로부터 전달된 제보입니다. 




사건 분석은 넥슨 사이트가 빨라졌다는 담긴 한 초딩의 일기로부터 시작합니다. 아니 넥슨이 어떻게 변했길래 사이트가 빨라졌다고 생각하는 걸까요?! 그래서 넥슨 사이트를 조사해 보았습니다. 



[MAX-AGE를 적용한 이미지]


넥슨의 성능을 높이는 방법중에 캐시를 활용해야 한다는 내용을 먼저 포스트 했었습니다. (넥슨 사이트의 성능튜닝 - #2 캐시의 활용) 3주전만 하더라도 넥슨은 캐시를 활용하지 않고 있었지만 언제부터인가 넥슨은 Cache-Control의 max-age속성을 이용하여 캐시를 적용하고 있었던 것입니다. 





그럼 얼마나 빨라졌을까?


그럼 얼마나 빨라졌을지 어떻게 관찰해볼 수 있을까요? HOONS요원은 지난번 넥슨을 조사하면서 기록한 자료들을 체계적으로 정리해 놓았습니다. (HOONS요원, 정말 꼼꼼하시군요!) 이 자료를 가지고 지금의 넥슨과의 속도를 비교해 보도록 하겠습니다. 지난 포스트(넥슨 사이트의 성능튜닝 - #2 캐시의 활용)에서 설명했듯이 캐시를 활용하면 넥슨 사이트를 재방문 했을 때의 속도를 빠르게 할 수 있는 작업입니다. 그럼 3월 3일에 조사했던 자료를 첨부해 보도록 하겠습니다. 



재 방문 했을 때의 응답속도는 1.5초정도 되는 것을 볼 수 있고 요청 또한 155번 일어나는 것을 볼 수 있습니다. 캐시를 활용하지 않기 때문에 서버로 이미지 확인 요청을 계속 보내게 되는 것입니다. 자! 그럼 캐시를 활용하고 있는 넥슨사이트의 지금 속도를 확인해 보도록 하겠습니다. 



요청시간은 0.8초로 반정도 줄어들게 되고 또한 100개 이상의 HTTP 요청이 줄어든 것을 볼 수 있습니다. 다시 말하자면 100개 이상의 HTTP 요청이 줄었기 때문에 시간이 줄어들게 되는 것이죠. 

하지만 조금 아쉬운 부분은 캐시 만료기간을 1시간으로 지정하고 있다는 것입니다.(max-age=3600) 네이버와 다음의 경우 최소 1달 이상의 만료기간을 지정하고 있습니다. 즉, 파일을 업데이트 될 경우 아에 파일이름을 바꾸겠다는 것입니다. 파일명을 무조건 새롭게 해서 업데이트 하는 방식은 아마 새로운 관리 프로세스를 필요로 하기 때문에 큰 시스템일수록 단기간에 적용하기 어려울 것입니다. 때문에 넥슨은 지금 가장 간단하게 적용할 수 있는 방법을 활용한 것이 아닐까 생각이 듭니다. 

어쨌든 넥슨은 1시간 범위에서 움직이는 사용자들이라면 0.7초나 빨라진 넥슨 사이트를 볼 수 있게 될 것입니다.





  
 "HOONS요원..오늘은..당신의 생일이잖아.. 일찍 들어가지 왜 여기서 이러고 있나?"

"괜찮습니다. 저한테는 수사가 더 중요합니다!!"