당신의 성공적인 비즈니스를 위한

홈페이지 속도 개선.jpg

 

[질문] 


홈페이지속도가 부분별로 카테로그 안에 데이터가 거의 없는데도 
클릭을 하면 달팽이가 돌면서 5~6초 정도 후에 열립니다
이런부분들을 서버확장을 하면 개선이 되는건가요?
개발해준 업체에서 비용을 들여서 서버확장하면 개선이 되고 빨라진다는데
맞는것인지? 아니면 처음 개발할때 부터 잘못된것인지 궁금합니다.
컴퓨터나 서버 관련 홈페이지제작을 하시는 분들께 문의 드립니다.
그런부분들이 개선이 되는 구체적인 방법을 알고 싶습니다.



[답변]


안녕하세요. IT전문 컨설턴트 입니다.



일단 사이트에 대한 정보가 더 필요할 듯 하지만, 개발에 문제가 있을 가능성이 높습니다.


웹호스팅과 서버호스팅의 개념에 대해서 정리를 해볼 필요가 있을 것 같습니다. 일반적으로 웹호스팅의 경우 Web서버 1대(또는 2대이상)을 여러 사이트가 나눠서 쓸수 있는 방법입니다. 평균적으로 350~500여개의 사이트를 사용합니다. 서버 1대를 운영하기 위해서는 서버구입비에서, 상면료, 전기세, 렉비용, 방화벽, 백업장비운영 등의 다양한 요소가 필요합니다. 물론 일부는 자동화 하여 효율적으로 운영하지만, 이렇게 발생되는 비용을 사이트를 사용하는 사용자 숫자로 나눠서 비용을 청구하는 방식이 될것입니다. 1000만원의 경비가 발생하는데 100여개의 사이트가 사용하고 있다면 개당 10만원의 비용을 청구하면 될것이고, 200여개의 사이트가 사용한다면 개당 5만원의 비용을 청구할것입니다. 당연히 웹호스팅과 서버호스팅은 금액만으로 비교할수 있는것은 아닙니다.


서버호스팅은 서버를 단독으로 운영하는 경우에 사용하는 용어입니다. 당연히 여러업체가 분담하는것보다는 많은 비용이 들수 밖에 없습니다.



비싼 가격에도 서버호스팅이 필요한 이유는 무엇일까요?.

일반 호스팅의 경우 여러 사이트가 하나의 서버를 공동으로 사용하기 때문에.


1. 서버에 영향을 주는 프로그램의 설치가 어렵다.

2. 트레픽에 대한 제한이 심하다

3. 용량이 작다.

4. 한 사이트가 해킹 등의 문제 발생시에 전체 사이트가 영향을 받을수 있다.

5. Session수가 제한적이다.


등의 문제가 발생하게 됩니다.

이런 이유에서 서버호스팅을 사용합니다.



워드프레스 등의 CMS(컨텐츠관리시스템)기반의 도구로 제작된 홈페이지의 경우 일반적으로 제작된 홈페이지에 비해서 현저히 속도가 느립니다. 필요없는 모듈 및 플러그인이 많이 사용된다면 더욱더 그렇겠죠. 이런 이유에서 속도를 우선으로 하는 사이트거나 기능적인 추가를 지속적으로 해야하는 경우라면 워드프레스 보다는 일반적인 구축을 추천드립니다.


가장 손쉬운 방법은 플러그인을 실행했을때의 속도를 채크하고, 실행하지 않을때의 속도를 채크하는 방법입니다. 이후에 문제가 되는 플러그인과 유사한 기능을 하는 플러그인으로 교체를 하는 방법이 가장 간단할듯 합니다. 플러그인의 사용규정에 따라서 다르지만 대부분의 플러그인은 기능적인 부분에서 제약이 걸려있거나 수정이 불가능한 범위에서 배포되는 경우가 있습니다. 상용 플러그인일수록 수정이 불가능할 가능성이 높습니다. 또한 수정이후의 유지보수 및 관리에도 영향을 줄수 있기때문에 가능하면 해당 플러그인이나 모듈을 직접 구현하실것을 추천드립니다.



기술상으로 어렵지 않은 개발이 가능한 경우에도 플러그인을 사용하는 경우가 많습니다.


플러그인이나 CMS상의 모듈들은 다양한 경우의수나 다양한 환경에서 사용이 가능해야 하기 때문에 필요없는 기능이 많아질수 밖에 없습니다. 이런 부분을 정확히 채크하기 위해서는 전문적인 감리업체를 통해서 속도최적화를 진행하거나 해당 영역을 시스템화하는 구축이 가능한 회사를 통한 제작을 추천드립니다.



또하나 생각을 해야할것이 플러그인간의 충돌현상입니다. 개발자들이 임의로 사용하는 변수가 충돌되거나 메모리 과다 사용 등으로 인하여 문제가 발생하는 경우도 많습니다. 이를 점검하고 재구성하는데 필요한 리스크는 큰편이기 때문에 추천드리지는 않습니다. 예를들어 A 플러그인에서 지정메모리 영역을 사용하고 있을때, 같이 사용되는 B플러그인에서 해당 메모리 영역을 반드시 사용해야만 할때, A플러그인에서 자원을 반납할때까지 B플러그인이 실행지연되는 데드락현상이 발생할수 있습니다. 이를 점검하는 것은 웹브라우저 및 사용OS별 채크를 진행해야 하기 때문에 위험도가 큰상황입니다. 실제 감리업무를 진행해 보면 해당 경우가 빈도상으로 높으며, 동시에 많은 사용자들이 접속해서 유사한 작업을 반복하는 웹비즈니스의 특성상 작은 요소가 큰 영향을 줄 가능성이 높습니다. 데이터베이스의 무리한 조합이나, 비 효율적인 배치, 개발방법론의 문제 등으로 인해서도 충분히 속도지연현상이 나타날수 있습니다.



기타 현장에서 자주 문제가 되는 속도문제에 대한 개선방안을 말씀드리겠습니다.


홈페이지 로딩속도에 영향을 주는 요소는 많습니다.

이 부분에 대해서 정밀하게 진단을 해봐야지, 개선안이 나올것으로 생각이 됩니다.

일단, 의심되는 부분과 대략적으로 확인을 해보셔야 하는 부분에 대해서 말씀드리겠습니다.


1. 사이트 개발방법론


웹사이틀 제작하는 방법은 다양합니다. 어떤 개발방법론을 사용하는지에 따라서 다양한 채크포인트가 발생할수 있습니다. 예를들어 단계별 개발방법론을 기준으로 작업을 했다면, 비효율적으로 운영되는 프로세스를 분석해 보고, 이를 개선하는 방법에 있어서 최적화를 기대해 볼수가 있습니다. 일반적으로 많이 사용하는 통합보드+스킨 제작을 사용하신 경우 통합보드 자체의 논리적인 결함 혹은 과부하 현상으로 사이트가 느려지는 경우도 있습니다. 이와 같이 사이트를 제작하는데 있어서 사용한 개발방법론에 대한 점검은 필수입니다. 특히 워드프레스라면 기본적으로 개발방법론상의 문제가 발생합니다.



2. 프로그래밍언어


웹사이트를 제작하기 위해서 일반적으로 3세대 개발언어인 ASP,PHP,JSP를 주로 사용합니다. 만약 CGI와 같은 2세대 개발언어를 사용하게 된다면 동시접속자가 몰리게 되었을때 속도저하 현상이 나타나게 될것입니다. 또한 각 언어별로 활용해야 하는 개발방법론이 다르기 때문에 여기에 맞춰진 개발 또한 점검해야 하는 부분입니다. 일반적으로 속도 부분은 ASP>PHP>JSP 의 순서로 언어별 속도가 차이가 있습니다.


특히 JSP의 경우 JAVA언어의 특징을 반영한 캡슐화 기법을 활용하기 때문에 소스코드의 낭비로 인한 속도저하 현상이 나타날수 있습니다.



3. DB정규화 및 최적화


화면상에 DB연결 구문이 많거나, 프로그램적으로 객체 소멸인자를 정상적으로 사용하지 않은경우 사이트에서 속도저하 현상이 나타날수가 있습니다. 이때는 DB사용을 최소화 할수 있는 여러가지 방안이 필요할것입니다. 또한 습관적으로 소스 하단에 객체 소멸인자를 명시하는 방법을 사용할수도 있습니다.


뿐만아니라 DB자체가 최적화 되지 않게 구현이 되어있다면, 많은 DB 조회 및 사용으로 인하여 속도저하 현상이 나타날수도 있습니다. DB튜닝이라 불리는 단계를 통해서 어느정도 해결할수 있으리라 생각이 됩니다. 정규화에 있어서도 속도와 활용을 잘 고려하여 어느 단계의 정규화를 진행할것인가에 대해서 고민을 해보셔야 할듯 합니다. 정규화가 정밀해 지게 되면, DB는 효율적으로 사용하게 되지만, 그만큼 join을 해야하는 테이블이 많아 지기 때문에 속도는 느려질수 있습니다. 현재 확률상으로 워드프레스의 플러그인에서 DB점검이 필요합니다.



4. 알고리즘 구성


프로그램을 기반으로 한 사이트에서 알고리즘이 차지하는 비중은 높은 편입니다. 이 알고리즘상에서 흐름이 잘못되어 일부 LOOP현상이 발생하게나, DeadLook현상이 발생하게 되는 경우 심각한 속도저하 현상이 나올수도 있습니다. 이 부분은 사이트 및 프로그램의 특성에 맞는 알고리즘 구성이 필수적입니다.



5. 이미지 최적화


최근 디지털 카메라가 고화소를 지원하고, 사진파일 하나의 용량이 20Mbyte를 넘어가는 경우도 있습니다. 이를 웹상에서 최적화 하여 웹용 이미지로 변환하지 않는다면 문제는 심각해 집니다. 20Mbyte의 파일이 20개가 나열되어있다면 400Mbyte의 용량이 발생하게 됩니다.


1Mbyte라 하더라도 20개의 파일이면 20Mbyte의 트래픽이 발생하게 되겠죠..

일반적으로 갤러리에서 사용하는 이미지의 경우 썸네일이미지라 불릴 정도로 용량이 작고, 사이즈도 작은 이미지를 사용하게 됩니다.. 이런 방법으로 한페이지의 로딩시 평균 용량이 500Kbyte~800kbyte로 조절하시면 문제가 없을듯 합니다.



6. 코딩 기법


포털 및 대형사이트에 사용되는 코딩방법과, 일반사이트에서 사용되는 코딩방법은 다릅니다. 그만큼 동시에 많은 사용자들이 사용하고, 속도저하 현상이 의심될수록 효율적인 코딩이 필요합니다. 현재 사이트의 코딩방법을 점검해 보고, 이미지의 쓸데없는 사용이나 불필요한 소스 코드의 사용으로 인하여 트레픽낭비가 없는지 확인해 보셔야 할듯합니다.



7. 프로그램 최적화


10줄의 소스코드와 100줄의 소스코드. 어떤게 더 빠를까요?.. 답은 전자일 가능성이 높다 입니다.

동일한 결과를 처리하는 소스코드라 하더라도 개발자의 습관, 개발방법론, 소스코드의 최적화, 알고리즘의 최적화, DB구조 등에 따라서 달라지게 됩니다. 이런 부분에서 프로그램에 대한 최적화가 필수입니다.



8. 서버 및 회선상태


일반적으로 많은 업체들이 속도가 느려진다 판단되면 많이 사용하는 방법이지만, 이 방법은 최악의 경우일때 선택하는 방법입니다. 서버 및 회선을 조절하여 속도를 향상시킬경우 근본적인 해결책이 되지 않기 때문에 사용자가 늘어나게 된다면 다시 같은 일이 반복되게 됩니다. 위의 다른 7가지 요인을 우선적으로 점검하여 개선해 보신뒤. 서버 및 회선의 품질과 업그레이드를 고민해 보십시오.. 서버 및 회선비용은 매달 지속적으로 나가는 비용이지만, 개발비용은 1회성이라 생각해 보신다면 어떤 부분에 대한 점검이 우선인지 결정하시는데 도움이 되리라 생각이 됩니다.




[IT 컨설턴트의 생각]


많은 사이트들이 위와 같은 고민을 하실것입니다.



웹개발에 있어서 여러가지 개발방안이 있고, 개발인력의 노하우에 따라서도 다양한 위험요인에 대한 대응이 가능합니다. 포털사이트를 제작해본 개발자가 일반 웹사이트를 제작하는 개발자와 다른 이유는 위와같은 8가지에 대해서 대응해본 경험의 차이 입니다. 확인하는 측면에서 위의 요소를 점검해 보시고, 전문적인 컨설턴트의 컨설팅을 통해서 근본적인 원인에 대한 해결을 해보실것을 추천드립니다. 웹사이트에 있어서 로딩속도는 생명력입니다. 일반적인 유저들은 몇초의 짧은 시간도 지루하게 판단하며, 속도차이가 나는 사이트의 접근을 꺼려 합니다. 이런 이유에서 많은 수의 유저들을 위한 서비스를 준비중이시거나 유료회원제로 운영되는 사이트라면 여러가지 부분에서 진단과 보안이 필수적이라 생각이 됩니다