네트워크상에서 케싱이 전송 속도에 얼마나 영향을 미치나요?

divi의 이미지

네트워크상에서 케싱이 전송 속도에 얼마나 영향을 미치나요?

웹 서비스중 이미지만 따로 별도 서버에서 관리하고 클라이언트 pc에서 좀더 빠르게 이미지를 불러들이고 싶어하는 고객이 있습니다.

즉 고객PC에서 자신의 사이트의 그림파일이 빨리 열리길 원하는 것으로 해석할 수 있습니다.

그런데 곰곰히 생각해 보니 cache 라는 것이 네트워크 통신에서 얼마나 영향을 미치는지 알고 싶습니다.

서버의 메모리에 아무리 캐싱되어 있다고 해도 클라이언트 입장에서 보면 결국 네트워크를 통해 다운받는 것 이기 때문에 캐싱되다고 하는 것이 네트워크에서는 의미가 없다고 생각되는데요..

물론 파일 사이즈가 매우 크거나, 로컬 I/O가 느려 네트워크 접속 후 데이터를 메모리에 넣는 과정이 오래 걸린다면 캐싱의 효과가 있겠지만 네트워크 통신에서 이미지 파일같은 작인 파일을 캐싱이라는 영역에 넣어야 할 필요가 있을까요? 특히 웹 서비스에서 말입니다.

그래서 apache 의 Expires module로 제한 시간을 연장하고 데이터를 압축 전송을 이용해서 이미지 캐싱서버로 설치하고 있습니다.
즉 클라이언트 PC에 임시 저장되는 파일의 저장기간을 임의로 늘려 서버에서 가져오는 데이터양을 줄이는 방법을 택했는데요..

이게.. 눈가리고 아웅이 아닌지.. 궁굼합니다.

그리고 데이터를 압축 전송하는 기술을 사용하면 실제 전송되는 시간이 짧아 지는 것인가요?
단순하게 생각하면
데이터를 압축한다 = 네트워크 전송량이 줄어 든다 = 전송 속도가 빨라진다.
이런 가정이 맞는지요?
그럼 실제로 데이터를 가져오는 시간이 단축되어 클라이언트 입장에서 전송속도가 빨라졌다고 말할 수 있는 건가요?

요즘 제가 가진 지식의 깊이에 절감하게 됩니다. ㅜ,ㅜ

선배님들의 고견은 어떠신지요?

김정균의 이미지

딱히 이것이 답이다라는 것은 없습니다. 상황에 따라 달라질 요소가 상당히 많으니까요.

예를 들어, 압축 전송의 경우에는 compress/decompress 에 대한 서버와 클라이언트의 CPU 사용률을 높이게 됩니다. 압축 전송할 것이 얼마 되지 않는다면 모르겠지만, 무수히 많다면 네트워크 입장에서는 이득을 볼 수 있겠지만, 서버와 클라이언트의 입장에서는 리소스 손실을 입게 되는 것입니다.

cache 쪽도 할말이 많지만 글로 쓰기에는 너무 범위가 넓어지는지라..

expire를 이용한 browser caching 도 좋은 대안중의 하나이기는 하지만, 이 경우에는 html image link에 대한 정책을 디자이너나 html coder들과 잘 협업을 해야할 문제이기도 하죠. 그래도 캐싱 기법 중에서는 양쪽이 모두 이득을 얻는 방법이 아니지 않나 생각되기는 합니다.

결국 정확한 답은 없습니다. 상황에 맞게 사용을 하는 것이지요.

pynoos의 이미지

http://developer.yahoo.com/performance/rules.html

이것을 숙지하심이..
---
coolengineer.com

ironiris의 이미지

몇년전에 적용한 사례가 있긴한데..
상당히 속도가 느린 전용선을 사용하는 업체에서 그룹웨어를 도입할때
테마에 따라서는 모든 이미지를 로컬에 저장하고
그 이미지 경로를 사용했던 적이 있습니다.
좀 괜찮긴 하더군요.

divi의 이미지


이 부분은 proxy를 이용해 처리하려고 합니다.
proxy시로 cache좀 잡고 필터를 사용해서 이미지 요청은 이미지 전용서버에서 전송되는 방식입니다.
뭐.. 얼마나 빨라질지는 모르겠지만 이것 저것 해 보며서 관련 내용을 정리해 보겠습니다.

그리고 웹개발 이론 고맙습니다.
제가 개발했으면 전적으로 실행해 보겠지만 이미 완성되어 있는 사이트라.. 아쉽습니다.
감히 가르칠 수도 없는 고.객.사.라.. ㅎㅎ

진심어린 댓글 감사합니다.

IT를 강하게 하는 프레임워크 Cobit 4.1

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.