Fast Web Service #3 어디서 빨라야 하는가. 2

다즐링의 이미지

프로젝트가 대략 끝나서 블로그 글을 이제야 씁니다.

이제 가장 중요한 서버에서 처리하는 시간에 대한 이야기를 해야합니다.
사실 이부분에 대한 명확한 답은 없는게 사실입니다만,
다음의 사항에 대해서만 주의 한다면 Processing Time 을 많이 줄일수 있습니다.

  • 이 컨텐츠가 과연 시간을 써서 처리할 이유가 있는것인가?
  • DB 까지 다시 다녀와야하는가?
  • 똑같은 컨텐츠를 표현하는데 얼마나 많은 시간이 필요한가?

간단하게 다음의 경우를 생각해봅시다.
웹에서 게임을 하는데 사용자의 점수를 계산합니다.
업데이트는 업데이트시마다 디비에 쿼리를 하나씩 날릴수 밖에 없고
대부분의 경우 같은 점수를 보는게 변경된 점수를 보는 것보다 경우의 수가 많습니다.
그렇다면 업데이트시마다 memcache 같은곳에 업데이트를 해준다면
그리고 조회시는 memcache 를 참조하고 없다면 database process 를 한다면
아까운 database 의 cache 및 connection 그리고 사용자가 보는 시간을 상당히 줄일수가 있습니다.
이러한 경우는 하나의 요소에 대한 이야기고 그것이 페이지 단위라면 엄청나게 많은 시간을 줄일수가 있습니다.

자 그럼 여기서 수 많은 변수가 가능한데
먼저 이것을 고려하기 위해서는 기획단부터 고려가 되어야합니다. ( 디자인 , 프로그래밍은 당연합니다. )

  • 쓸데 없이 많은 정보가 한 페이지에 나와야하는가?
  • 이 정보는 얼마나 자주 변하는가?
  • 캐슁이 가능하기 위한 key 는 어떤것이 있는가?
    • client id
    • ip
    • 시간
    • url
    • uri

물론 KLDP 는 주로 서버사이드 엔지니어들이 많긴합니다만.
모든 시스템은 Client 와 Server 를 다 아울러야 튜닝이 가능합니다.
다음에 쓸 글은 client 단 ( html ) 이 되겠네요.

댓글

소타의 이미지

전 client id에 굽기는 미디엄이고요. 사이드는 grilled onion, sour potato이요.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.