본문 바로가기

혼자이야기/책이야기

자바스크립트 성능 이야기 (NHN은 이렇게 한다!)

반응형

아주 어려운 내용은 없지만, 그래도 꽤나 도움될만한 내용이 많은 책이었습니다.

 

웹 서비스를 개발하는 사람으로써, 성능 이슈는 항상 중요한 문제입니다.

 

- 사이트에 접속하는 방문자에게 빠른 응답 서비스를 제공해야 하며,

- 서버는 많은 사용자의 접근에도 안정적으로 빠른 응답을 보여야 하고,

- 수 많은 데이터베이스 접근을 통한 데이터 질의에도 빠르고, 정확한 결과를 반환해야 합니다.

 

요즘은 웹서비스를 제공하는 데에 있어서 서버의 저장 공간(HDD나 메모리 여유)에 대한 이슈보다는 성능(특히 응답 속도)이 더 큰 관건인 세상입니다.

 

 


자바스크립트 성능 이야기

저자
박재성, 심상민 지음
출판사
위키북스 | 2012-09-17 출간
카테고리
컴퓨터/IT
책소개
[NHN은 이렇게 한다! 자바스크립트 성능 이야기]는 NHN의 ...
가격비교 글쓴이 평점  

 

 

개인적으로는 웹 서비스의 성능 개선을 해야 한다고 하면.

보통 DB쿼리문 최적화, 한 번 질의된 DB결과를 빠르게 반환해주는 캐시 서버 활용, 클라이언트의 페이지 및 데이터 캐시 등을 많이 활용해 왔습니다. 사실 이 정도로도 어느 수준까지는 커버가 되는 서비스를 개발해와서 그런 것일까요?

 

책은 자바스크립트 성능 이야기라고 되어있지만, 좀 더 웹 브라우저라는 광범위한 범위 전체적으로 최적화할 수 있는 기법을 소개하고 있습니다. 책을 보고 나니, 웹 서비스에 대해 좀 더 깊은 지식을 얻었다는 생각입니다. (제가 너무 단편적으로만 알았던 것일 수도 있구요^^)

 

즉, 웹 서비스의 아주 기초적인 부분부터 광범위하게 성능을 개선할 수 있는 기법을 소개하고 있습니다.

그런데 그 기법들이 어려운 것도 아니고, 책을 읽어보면 충분히 이해하고, 실제 서비스에 적용할 만한 수준의 코드로 작성되었습니다.

 

그런데 보통 코드 하나 개선해서 0.0001초 개선된다고 한다면.. 아마도 많은 분들이 '그 정도 노력들여서 고작 그 정도 개선 될 것이면 뭐.. 굳이 고쳐? 그냥 그대로 서비스해.' 라고 생각하실 수도 있는 수준까지도 성능 개선 이야기를 담고 있습니다.

 

물론 책을 보면서 기존에 이미 접해보았던 내용들도 있었습니다. 하지만 단지 이렇게까지 해야돼? 하고 그냥 넘겼던 경우가 많았던 것 같네요.^^

 

정말 네이버나 다음과 같이 하루에도 수백 수천만명이 접속하는 서비스를 개발하는 부서에 있지 않고서는 이렇게까지 성능을 개선해야 하나 싶을 정도로 정말 단순한 코드에서도 최적화를 위해 노력한 흔적이 보입니다. (네이버에서 정말 핵심으로 가지고 있는 성능 개선에 대한

 

책 내용은 웹 서비스라는 분야에서 브라우저 동작 방식을 기반으로하여 모든 단계에서 최적화할 수 있는 기법을 소개하고 있습니다.

 

CSS파일을 보통 게임에서 많이 활용하는 스프라이트 기법, Gzip 을 활용 등에 대한 기법은 자주 사용하는 것들이지요. 흥미로웠던 것은 Javascript 코드를 통한 성능 개선이었습니다. Javascript나 JQuery는 그냥 개발 언어나 라이브러리로써 활용했을 뿐이지, 성능 개선을 위해서까지 생각했던 적은 없었거든요. (설령 있다 하더라도 성능 개선은 거의 미비할 것이다 하여 고려하지 않은 경우가 대부분이었습니다.) 

그런데 정말 눈꼽만큼일지라도 Javascript 의 개발 코드 스타일을 바꾸는 것만으로도 성능을 개선하는 방법이 매우 흥미롭게 다가왔습니다.

 

그외에 화면에 돔 오브젝트들이 렌더링 되는 부분에서의 최적화 방법 외에 타이머, 캐싱, CSS속성 등을 활용한 최적화 방법도 소개하고 있습니다. 물론 AJAX에 대한 최적화 방법도 다룹니다.

 

 

마지막으로... 책에 대해 약간 아쉬운 점이라고 해야할까요? (아니면 제가 책을 너무 늦게 접한 것이 문제일 수도 있습니다.)

정말 이런 기술 이슈들은 정말 하루가 멀다하고 변합니다. 그러다보니 1년 전에 각광받던 기술이, 오늘날에는 전혀 쓸모가 없어져 다른 기술로 대체되는 경우도 많습니다.

 

2012년도에 발매된 책이라 모든 성능 개선 코드가 당시의 크롬, 사파리, 파폭, IE 등에만 100% 적용된다는 점입니다.

책을 보고, 코드를 적용해 보시면 알겠지만, 오늘날의 웹 브라우저에 대해서는 실제 책에서 다루는 성능 개선이 실질적인 효과가 없는 것들도 있습니다. 그리고 당시에는 크롬에서 가장 성능이 더 좋았던 기법이나 코드가 현재에는 IE에서 더 좋은 성능을 낸다든지, 또는 과거에 성능이 좋지 않았던 코드 스타일이 각 브라우저들이 모두 최적화 버전업 되면서 자체적으로 알아서 성능을 개선시켜 주어, 해당 코드 스타일에 대한 성능 이슈가 사라져 버린 케이스도 있습니다.

 

하지만, 분명 아직까지도 효력이 있는 성능 개선 내용들이 있고, 현재에도 충분히 활용 가능한 내용들도 많이 포함하고 있습니다.

그리고 책 자체가 어떤 특정 코드를 가지고 성능을 개선하려고 한다기 보다는 웹 브라우저의 동작 특성을 잘 분석하여 어떤 부분에서 어떤 기술을 활용하면 최적화된 성능을 낼 수 있는지에 대한 것도 잘 안내하여 주고 있기 때문에 지금 시점에 이 책을 보시더라도 많은 도움이 되실 것이라 생각됩니다. (특히 저 같은 허접스러운 웹 개발자에게는 말이지요^^)

 

개인적으로 개정판 같은 것이 또 나오면 좋을 것 같다는 생각도 듭니다.^^

 

 

반응형