저자: 『Web Performance Tuning, 2nd Edition』의 저자 패트릭 킬레리아(Patrick Killelea), 역 전순재
편집자 주 -- 웹 출판을 할 때 사용자 인터페이스에 기능을 구축해 넣는데 많은 노력이 들어가지만 다음 프로젝트로 맹렬히 돌진해 나가기 바쁘다는 이유로 종종 성능 조율(Web Performance Tuning)이 간과되는 경우가 있다.
패트릭 킬레리아(Patrick Killelea)는 성능 조율이 웹 출판 작업과 함께 똑같이 주의를 기울일만한 가치가 있다고 믿는다. 그는 최근 오라일리에서 출간된 『Web Performance Tuning, 2nd Edition』에서 자신의 뛰어난 접근법을 그려 내었다. 성능 모니터링(Performance Monitoring)을 다룬 샘플 챕터를 살펴 보면 그의 접근법을 느껴볼 수 있을 것이다.
그러나 곧바로 본론으로 들어가기를 원한다면 패트릭(Patrick)의 10가지 성능 개선 팁을 살펴보자. 이 팁은 즐겨찾기 목록으로 해놓고 자주 살펴볼 가치가 분명히 있다.
- Weblint나 다른 HTML 점검 도구들을 사용해서 표준을 준수하는지 점검하자!
컨텐츠가 HTML 4.0 표준을 준수하면 브라우저가 다음에 무엇이 올지를 예상할 수 있기 때문에 어느 브라우저에서나 더 빠르게 적재되고 작동할 것이다. 주목할 것은 마이크로소프트 기반의 도구들이 만들어 내는 컨텐츠는 표준 ASCII 문자 집합조차도 사용하지 않는 대신 주로 독점적인 마이크로소프트 문자들을 많이 사용하기 때문에 넷스케이프에서는 화면에 물음표로 표시되고 렌더링 속도가 느려질 수도 있다는 사실에 주목해야 한다.
- 자바스크립트와 스타일시트의 사용을 최소로 자제하자!
자바스크립트는 비호환성, 브라우저 다운, 팝업 광고의 주범이다. 페이지가 화면에 표시될 수 있게 하려면 먼저 스타일 시트를 별도로 내려 받아야만 한다. 자바스크립트와 스타일 시트에 멋진 특징이 없는 것은 아니지만 상당한 비용이 들어간다. 따라서 자바스크립트나 스타일 시트가 없어도 큰 지장은 없다.
- 웹 서버에서 역 DNS 참조를 꺼놓자!
만약 켜진 상태로 있다면 역 DNS는 IP 주소보다 클라이언트 머신의 이름을 기록할 것이다. 이에는 엄청난 수행 비용이 들어가기 때문에 꺼놓는 편이 낫다. 나중에 언제라도 로그 분석 도구를 실행해 보면 그 이름들을 찾아 볼 수 있기 때문이다.
- 무료 분석 도구를 시험해 보자!
나의 웹 사이트에서 제공하는 무료 도구는 병목이 DNS에 있는지, 연결에 걸리는 시간이나 내용의 크기 때문인지, 아니면 서버 쪽에 있는지 어떤지를 알려 줄 수 있다. 가장 느린 부분부터 먼저 개선해나가는데 주력하자.
- 간단한 서블릿이나 CGI를 사용하자!
CORBA나 EJB 같은 분산 객체 전략 말고 간단한 서블릿, CGI, 또는 여러분 웹 서버의 API를 사용하자. 분산 객체 전략(Distributed object schemes)의 의도는 프로그래머의 코드 작성 생산성을 개선하는 것이지만 그러려면 최종사용자에 대해서는 받아 들이기 힘든 비용이 요구된다.
- 메모리를 더 확보하자!
여러분의 웹 서버, 미들웨어(middleware), 그리고 데이터베이스 모두는 여전히 하드 디스크를 자주 사용한다고 하더라도 메모리 용량이 더 늘어나면 아마도 더 잘 수행될 것이다. 하드 디스크는 문자 그대로 메모리보다 백만 배나 느리기 때문에 디스크가 다 닳아 버리기 전에 메모리를 더 구입하는게 좋을 것이다.
- 데이터베이스 테이블을 잘 인덱스하자!
만약 무심코 특정 URL을 히트할 때마다 모든 테이블 스캔을 해줄 경우 눈부신 개선이 가능하다. 인덱스를 사용하면 즉시 필요한 데이터에 접근할 수 있을 것이다.
- 데이터베이스 질의를 삼가하자!
미들웨어나 서블릿에 내용을 캐시할 수 있다면 그렇게 하자. 데이터베이스에 연결을 하고 그러한 데이터베이스 연결을 사용하는 것은 전형적으로 성능향상을 가로 막는 병목이다.
- 패킷 소실과 패킷 재전송을 탐지하자!
이렇게 하는데 도움을 주는 네트워크 스누핑(snooping) 그리고 모니터링(monitoring) 도구들이 많이 있다. 종종 분실되거나 망가진 패킷으로 인해 간헐적으로 느려지는 현상이 나타나기도 한다. 이것은 패킷이 재전송되기 전에 타임-아웃 기간이 지나야 하기 때문이다.
- 웹 사이트의 성능을 모니터링하고 자동화된 그래픽 기능을 설정하자!
오라일리에서는 2002년 4월
『Web Performance Tuning, 2nd Edition』이 출간되었다.
패트릭 킬레아(Patrick Killelea)는 현재 썬 마이크로시스템(Sun Microsystems Professional Services)에서 근무하고 있다.