달력

4

« 2024/4 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

사실 튜닝이 필요할 정도의 traffic이 몰리고 있지는 않지만, 여러가지 속도 저하의 요인이 있기에 튜닝작업을 해봤습니다. 개인 서버인지라 비용을 많이 들일 수 없기에, P3 1G 서버 한대를 사업하는 선배한테 삐대어 운용중인지라, 적어도 어느정도는 버텨줘야 한다고 생각했거든요.
게다가 눈에 보이는 것과는 달리 내부의 DB구조와 query는 상당히 복잡합니다. 애초에 설계할때 많은 튜닝 포인트를 두긴 했으나 저희들의 DB에 대한 욕심이 과했는지 상당히 복잡해서 한달정도 작업에 손놓고 있다가 다시 할려고 하면 기억이 잘 안납니다.. --;;;;


1. 메인 페이지에 대한 튜닝
  - web 2.0과 ajax라는 기술에 대한 관심으로 인해 메인에서는 5개의 서브 페이지를 불러오도록 되어 있었습니다만, 삽질임을 깨닫고, 모듈화하여 한방에 다 불러오게 했습니다. 쓰잘데 없이 DB를 5번 open하게 된 셈이었거든요.
아마 계속 뒀다면 ajax 기술 남용 사례가 되지 않았을까... --;;

  - 첫 페이지의 발전사는

1) google style의 검색창 only : 2006년 1월 버젼!
구글처럼 simple하게 만들어보자는 생각에서 검색창만 가져다 붙였지요.
html 소스 조차 구글꺼를 바탕으로 내용만 바꾼거였으니.. 뭐.. 비슷했지요.. 느낌은 훨씬 구렸지만.. --;;
(당시 로고를 제작해주었던 melani양에게 감사의 말을 늦었지만 이제사 전합니다.. ^^)
(원래는 imhelix가 design해주기로 해놓고 배째서 그냥 제가 대충 하고 삽니다. 흑.. 그를 아는 분들은 그눔에게 구박 좀 해주세요.. T_T)

      

2) 핫아티스트, 핫키워드 노출 시작 : 2006년 2월 버젼!
어느날 큐박스를 가봤는데, 심플하면서도 이쁘더라구요.. 그 흉내 함 내봤지요..
아울러 구글 AdSense를 붙여봤답니다.. ^^;;
(얼빵하게도 제 PC의 LCD 모니터와 놋북의 콘트라스트 조정의 실수로 로고 뒤에 색깔이 있는 줄 몰르고 한동안 유지했었답니다.. T_T)

3) 드뎌 태그 클라우드 적용 : 2006년 3월
이올린 첫페이지에 있었던 태그 클라우드.. 괜히 멋있다는 생각이 들어 흉내함 내봤습니다.
스타일을 훔쳐왔으나 잘 안먹더군요.. 역시 스타일은 예나 지금이나.. 글구 자바스크립트도 참 싫어했는데..

4) 트랙백, 코멘트도 노출 시작 : 2006년 4월
  트랙백과 코멘트 역시 메인에 노출시키기 시작했습니다.
  심플하게 가려던 메인이 점점 지저분해짐을 느끼고 있었으나, 위기 의식 따위는 없었던.. ^^;;;


5) 현재의 모습입니다.. : 2006년 8월
메인으로 트랙백을 올렸지요... maniadb는 음악(에서 시작!) 자료를 전문적으로 찾고자 하는 이들에게 도움을 주고자 하여 만들었습니다. (처음 시작은 제 개인 자료 정리하려고 한거지만.. ^^;;) 하지만, 사람들이 찾고 관심을 갖고 또 미디어에서 조명하는 것들이 어떤 것들인지.. 그런 관심도에 따라 음반(혹은 아티스트)을 중심으로 재배치할 수는 없을까.. 그러한 생각에 의해 트랙백이 제일 위로 올라왔습니다. 지금은 트랙백 날려주는 분들이 적어서, 거의 한두개의 트랙백이 있는 음반이 메인으로 올라오지만, 추후 트랙백 양, 질, 그리고 관심사 등에 따라 차별화를 할 수 있도록 할 생각입니다.. 몇몇 관심있어하시는 분들의 글도 링크 달려고 하고 있구요..
(리뷰 링크를 허락해주신 코너뮤직의 송명하님께 다시 한번 감사드립니다.. ^^)
뭐.. 생각은 많은데 시간이 그닥 많지 않아.. 진도가 잘 안나가네요.. 흑..
DB 퍼가서 블로그에 꾸미실 수 있게 Open API도 만들어드려야 하는데.. 우엉..
여튼.. 지금의 모습입니다.. 어제까지의 5개 sub module을 순차적으로 부르는 것은 배제했습니다.
또, 태그 클라우드에 실시간 변하던 것을 1시간 주기로 업데이트하도록 수정했습니다. 뒤에 말씀드리겠지만 성능에 신경좀 썼습니다..



2. 검색 페이지에 대한 튜닝
검색 페이지에는 좌측에 구글 광고와 linkprice 광고가 있었습니다. 과연 이렇게 했을때 수익이 생길까에 대한 궁금증으로 해봤습니다만.. 결론만 말씀드리면.. 형편없었습니다.. --;;
특히 구글 광고는 페이지 로딩 속도만 느려지고 맘에 안들더라구요.. 그래서, 이번에 과감하게 구글 광고를 날려버렸습니다. 대신 링크프라이스 광고는 늘렸는데, 이유는 제가 자주가는 - 혹은 자주 갈거 같은 - 쇼핑몰 배너를 달아두고, 제가 좀 이용할까 해서요.. 맘씨 좋은 분들이 또 이용해주시면 제가 CD 사는데 보탬이 될것 같긴 합니다.. ㅎㅎ

아티스트 검색 후 음반 페이지를 가기 위해 클릭수가 너무 많은게 짜증나서, 검색 결과가 5개 이하의 경우에는 인기 음반 5개를 보여주고, 검색 결과 1개인 경우는 인기 음반 50개까지 보여주도록 해봤습니다.
이게 query 최적화가 잘 안되서 애먹었는데, 우찌우찌해서 어느정도 해결하게 되었습니다. 여기는 index를 잘 써서 해결된거지, 아직까지 cache를 쓰지는 않으므로 추후 더 튜닝의 여지는 있겠지요.



또, 일전에 말씀드렸다시피 검색 결과 노출 순서는 그간 그 검색어에 대해 사용자들이 어디로 이동했느냐를 분석해서 순위 조정을 한다고 말씀드렸었는데요.. 이걸 실시간 DB에서 계산토록 한거를 수정했습니다. 파일로 로깅하고, 1시간 단위로 batch processing하도록 바꿨습니다. 결과적으로 검색은 거의 순식간에 뜹니다.
(검색 처리 시간과 페이지 로딩 시간을 노출해놓고 있으니 참고하세요.. ^^)

검색도 점차적으로 개선할 생각은 있습니다만, 아직 해야할 것들이 많아서 우선순위에서는 제껴두었습니다. 일단은 정보 제공 페이지인 앨범과 아티스트에 초점을 맞추려고 하고 있거든요.. (노래에 대해서는 정말 하고 싶은게 많은데 아마 연내에는 힘들거 같네요.. 제대로 노래 DB 만들겁니다.. 기술적 준비는 거의 다 되었는데, 이제 노가다 처리에 시간이 모질라서.. 흑)



3. 로깅에 대한 튜닝
기존에 DB에 로깅하던 걸 전부 파일에 로깅하고 1시간 Batch Job으로 DB에 반영하도록 수정했습니다.
결국 트래픽 몰렸을때에 대한 대비이자, 한대뿐인 서버 안 죽일려는 나름대로의 배려라고나 할까요..
(아.. 하드도 모질랍니다.. 스캔을 너무 크게 하고 있는지 몰르겠네요.. 새로 스캔하는 것들은 가로 800이상에 맞추려고 하고 있거든요.. )
결국 로그는 파일에 남게 되므로 DB transaction은 매우 줄게 되구요.. 앞서 검색이나 태그 클라우드 등을 보여주는데 리소스를 적게 먹게 됩니다.
그간 남을 위해서 이런 짓 하다가 내꺼에 할려니깐 참... 기분이 묘하더군요..

요거하다가 잼있는것을 발견했는데, 혹시 관심있는 분들은 이용해보세요..
M$의 사이트에서 공짜로 받아 쓸수 있는 Log Parser입니다.
로그 파일을 DB query로 쓸 수 있고, 로그 파일을 DB나 csv, xml 등으로 덤프도 가능하고.. IIS에서만 쓸 수 있는게 아니라 범용적으로 쓸 수 있습니다. input format과 output format을 설정하고, 그걸 바탕으로 마치 DB에서 query하듯이 할 수 있어서 매우 좋았습니다.


최근에 계속 삽질한게 기술적인 부분이어서 오랜만에 올린 글이 거의 기술이야기가 되어버렸네요.
다음에는 얼마나 DB를 알차게 꾸미고, 사이트를 멋지게 할지... 그런 글을 올리겠습니다..
matia군이 좀 올려줘야 하는데, 이눔이 바쁘다고 제가 자꾸 올리게 하네요.. --;;;

그럼.. 오늘은 요기까지...


:
Posted by 알 수 없는 사용자

음악을 접하는 것은 TV, 라디오, 잡지 등의 미디어이고,
그것을 소유하는 것은 LP, CD, Tape 등의 상품에서 시작됩니다.
물론, 요즘은 더 많은 관련 상품들, 즉 mp3, 컬러링, 벨소리, bgm... 많이 있지만요.

maniadb 이전부터 저희는 음반을 수.집하였고,
그 양이 많아지면서, 목록을 정리해야겠다는 생각을 했습니다.

matia는 "JG이의 가요 DB"였고,
xfactor는 "xfactor's Music Database"였지요..
그리고 xfactor는 그걸 토대로 Mxxx이라는 음반 쇼핑몰을 창업했었구요.

따라서, 음악 DB의 시작은 음반을 중심으로 잡아나가는 것이 "쉽다"고 생각했습니다.
무엇보다도 "실체"가 있고, 그 실체에는 부족하나마 "정보"가 씌여져 있으니깐요.

물론, 요즘은 음반보다는 노래쪽으로 기울고 있습니다. 저희도 그것을 잘 알고 있지만, 일단 음반부터 정리를 시작하려는 것이 순서가 맞을것 같다는 생각을 하고 있을뿐입니다. 노래는 너무 "방대"하기도 하구요..

이러한 음반 페이지를 어떻게 보여줘야 할 것인가... 하는 것이 저희가 제시하는 첫번째 과제입니다.
현재 만들어진 음반 페이지는 "그냥 대충" 한것으로 보시면 될 것 같구요.. 보다 짜임새 있게.. 1차 음반 페이지 기획을 하고, 완성을 할겁니다..

현재 보여지는 정보와 추가적으로 생각하는 정보를 간략히 정리하면 아래와 같구요..
추가적인 의견과 기획의 보완을 바탕으로... 기획안이 정리되면, 1차 개발분량을 정하고, D-Day를 count하려고 합니다..

커멘트나 트랙백 환영합니다..

감사합니다.

============================
* 현재까지 개발된 내용 혹은 개발 예정인 내용 요약

페이지는 크게 세 섹션으로 나뉩니다. (모든 페이지 공통 header/footer 제외)

1. 상단 타이틀 및 메뉴 영역
  - 일반적인 음반은 "가수이름" - "음반제목"
  - Various 의 경우는 "음반제목"
   - OST/ Live 인 경우는 "음반제목" (O.S.T) or "음반제목" [live]
  - 시리즈인 경우는 "시리즈 이름" "음반제목"

   * 사실 DB 구조는 이보다 훠얼씬 더 세분화되어 있습니다만.. brief하게 요약한다면 이렇다는 거죠.

2. Left Menu 영역

  1) 커버 : 앞, 뒤면
  2) 아티스트 ( 솔로가 아닌 경우 해당 음반의 라인업)
  3) 음반 일반 정보
       - 음반이름
       - 음반 구분 : 타입, 서브타입, 레코딩타입, 카테고리, 서브카테고리, 집수
       - 음반 발매일 (잘 모를 경우 추정연,월)
    4) 관련 음반
        - 해당 아티스트의 가장 최근 음반
        - 해당 아티스트의 가장 인기있는 음반
        - 해당 아티스트 음반의 직전 음반
        - 해당 아티스트 음반의 직후 음반
        - Different Edition (같은 음반의 다른 Edition, cf. 음반 출시에 따라 같은 음반 다른 음반을 어떻게 구분할것인가의 이슈 공유 필요!!)
3. Body 영역
  3-1. standard
     1) 앨범 소개 글 : 현재는 단순 홍보성 글이 주를 이루나, 곧 전문 editor 혹은 "여러분"의 리뷰로 바꿀 예정
     2) 수록곡
     3) 발매 음반 목록 : 빠른 순으로... (release incr. order)
     4) 크레딧
     5) 사용자 참여 : 트랙백, 스크랩(rss), 전문리뷰, 인터뷰, 커멘트 등
  3-2. galley
     1) 부클릿
     2) 해당 음반, 혹은 참여자 스틸컷 등
  3-3. product details
     1) 해당 음반의 발매 상품별 상세 정보
  3-4. reviews
     1) 해당 음반 관련 참여 정보, 링크 총 모음

뭐.. 대략 요약하면.. 요렇다구나 할까... :)

:
Posted by 알 수 없는 사용자