웹사이트를 운영하다 보면 많은 어려움이 존재한다. 그 중 특히 문제가 되는 것은 콘텐트의 업데이트가 잦은 경우에 발생된다. 대부분의 사이트는 개발이 완료되면 지속적으로 콘텐트가 업데이트된다. 이러한 업데이트가 계속적으로 이뤄지다 보면, 사이트의 소스는 점차적으로 꼬이기 시작한다. 같은 함수의 이름을 지닌 스크립트의 중복 사용이나, 불필요한 로딩, 소스 오류로 인한 페이지 오류 등의 문제는 초기에는 볼 수 없지만, 점차적으로 잦은 소스의 수정에 더 많은 사람들이 참여하게 됨으로써 소스가 복잡해지며 발생되는 문제이다.


 또한, 이러한 콘텐트의 입력은 대부분 전문 개발인력이 아닌, 콘텐트 작성을 담당하는 인력에 의해 이뤄지기 때문에 이미 복잡해진 페이지를 찾아서 그 오류를 수정 하기란 결코 쉬운 작업이 아닐 것이다. 이런 경우 개발자가 다시 소스를 수정하게 되는데, 문제는 이 소스의 결과를 보고 판단하기란 아주 고달픈 작업이다.


 이러한 경우 웹 관리자의 입장에서는 일단 웹 로그 분석을 시도할 것이다. 하지만, 웹 로그 분석을 할만한 시간적 여유는 주어지지 않으며, 이를 분석하기에는 너무나 많은 노력이 들어간다. 결국 경험에 의해 디버깅을 해야한다. 하지만, 이런 디버깅 시간을 대폭 줄이는데 도움이 되는 프로그램들이 많이 존재한다. 그 중에서 이번에 소개할 도구는 ‘HttpWatch’라는 프로그램으로 작고 단순하지만 웹 브라우저에서 각종 스트리밍을 모니터링할 수 있는 유용한 도구이다.



  

 웹 디버깅 도구인 ‘HttpWatch’‘Neumetrix’사의 상용 제품으로 유료 에디션(Professional Edition)과 일부 기능이 제한되어 있는 무료 에디션(Basic Edition)이 있다. 이 소개글에서는 ‘HttpWatch’의 주요기능들을 소개하기 위해 무료 버전인 Basic Edition을 사용하였으며, 유료 버전과의 차이점은 자동 기록 기능, 파일 내보내기(CSV, HAR, XML) 기능 등이 비활성화되어 있다. 제품 에디션 별 기능 비교는 아래와 같다.




 ‘HttpWatch’IE(Internet Explorer) 또는 FireFox와 같은 웹 브라우저에 추가하여 프로그램을 사용할 수 있으며, 웹 페이지에 액세스할 때 생성되는 HTTP HTTPS 트래픽을 디버깅할 수 있다. 또한 HTTPS의 경우 SSL 루트 인증서를 개인 키에 액세스할 수 있어 번거로움 없이 디버깅이 가능하다.


 ‘HttpWatch’의 설치 과정은 매우 간단하므로 생략한 후 이 프로그램에서 제공되는 주요기능들에 대해 소개한다. ‘HttpWatch’를 사용하기 위해선 독립적으로 프로그램을 실행시킬 수도 있지만 웹 브라우저에 추가하여 실시간 트래픽을 디버깅할 수 있다. 아래와 같이 IE를 실행시키고 [도구 > 추가기능관리] 탭에서 ‘HttpWatch Basic(Neumetrix Limited)’에 대해 추가 기능 사용설정을 마치게 되면 추가 기능탭에 ‘HttpWatch’가 나타나게 된다.

 



 추가 기능 탭에서 ‘HttpWatch’를 실행하면 [Record], [Stop], [Clear], [View], [Summary] 등의 버튼이 나타나게 되고 이 중 [Record] 버튼을 클릭하면 아래와 같이 웹 페이지에 대한 디버깅을 시작할 수 있다. 디버깅을 시작하게 되면 웹 페이지에 액세스하면서 발생되는 트래픽들에 대한 로그들이 나타나게 되며, 각 페이지 처리 시간과 Request(Post, Get), Header, Cookie 정보 등 시간대 별(Time Chart)로 발생된 트래픽에 대해서 분석할 수 있다.



 



또한, 트래픽 로그에 나타나는 URL정보들은 그룹화되어 비전문가라도 필요한 내용들을 쉽게 찾을 수 있다. 데이터의 내용을 정확히 이해할 수 없을 땐, 마우스 포인터를 데이터 제목에 가져다 대면 해당 데이터의 내용에 대한 힌트를 얻을 수도 있다. 그리고 발생된 트래픽 로그들에 대한 상세 정보들을 텍스트 파일(txt, csv)로 변형하여 내보내기(Export)하는 것이 가능하므로 이미 지나간 과거 로그에 대한 관리가 용이하다.




수 많은 데이터 중에 찾고자 하는 데이터가 있을 경우에는 검색탭을 이용하여 필요한 정보만 얻을 수 있으며, 필터링 기능을 통해서도 필요한 정보를 얻을 수 있다. 필터링은 데이터의 유형(text/html, text/css ), 상태코드(200,404 ), 헤더 등의 조건을 통해 필요한 데이터를 찾는 것이 가능하다.


 보통 이러한 웹 디버깅 도구는 개발자가 웹 어플리케이션 개발이 완료된 시점에서 웹 페이지의 상태를 점검하기 위해 사용한다. 특정 웹 페이지에서 500번과 같은 상태 코드가 나타날 경우 서버 장애가 일어났다는 것을 알 수 있기 때문에 해당 웹 페이지의 소스를 점검해야 한다. 이와 같은 장애 여부를 파악하는 것 뿐만 아니라 웹 페이지의 반응 속도를 측정하여 소스를 수정할 수 있다. 적절하지 않은 함수를 사용하여 특정 웹 페이지의 네트워크 비용에 대한 효율성이 떨어지는 경우 이를 확인하고 소스코드를 최적화하여 웹 서버의 가용성을 유지할 수 있다.


따라서 웹 서비스를 제공하는 관리자 또는 개발자의 경우 이와 같은 웹 디버깅 도구를 이용하여 웹 서버 내에 존재하는 불필요한 페이지들을 관리하고 웹 서버의 가용성을 침해하는 공격으로부터 예방하여 원활한 서비스를 제공할 수 있도록 하는 것이 바람직하다.

블로그 이미지

Diano.

http://www.diano.kr / 이사하는중 /

,