Skip to content

페이스북의 강용성(http://www.facebook.com/xympl)님은 “내가 서비스에 캐시 붙이는 걸 싫어하는 이유는 다음과 같다“를 통해서 캐시 구현에 있어서의 고려사항을 소개하고 있다.

1. 첫째 쿼리 튜닝과 DB 설계가 우선이라는 것이다. 이 기본적인 요소만 견고하게 구성해도 캐시 없이 빠른 서비스를 일정부분 구현 할 수 있다. 그래도 안 될 경우 역정규화를 이용해 구성을 통해 문제점을 해결하는 방법이다. 그래도 안될 경우 파티셔닝을 진행하며 캐시처리 이전에 최소한의 소프트웨어 튜닝이 선행되어야 한다.

2. 둘째 캐시처리를 남발하면 데이터 오류를 발생시킬 수 있다. memcache나 redis 같은 오픈소스를 이용할 경우 atomic operation을 지원하더라도 DB에 직접직접 바인딩(각종 값들이 확정되어 더 이상 변경할 수 없는 구속(bind) 상태가 되는 것)되어 있지 않고, 일일이 transaction을 만들어서 데이터를 맞춰줘야 하는데 이때 설정을 잘못할 경우, 잘못 캐시된 값으로 인해 데이터가 꼬일 수 있다.

3. 셋째 캐시를 투명한 레이어에 얹는 문제이다. 데이터 접근에 대한 추상화가 잘되어 있다면 모르겠지만, 그렇지 않은 경우 코드가 지저분해지는 것은 물론 코드의 복잡도를 향상 시킬 수 있다. ORM(Object Relational Mapping)을 사용하고 안하고의 문제가 아니라, 순수한 백엔드 개발자 역량에 달려 있는 문제라는 것이다. .

4. 넷째 캐시의 마법에 취하지 말아야 한다. 캐시는 만능이 아니다. 따라서 cache invalidate 혹은 expire 될 경우, workaround, fallback에 대한 고려를 잘 못 하게 된다. 그러다 캐시에 문제가 생기면 서버는 죽었다고 보면된다.
profile

I see no changes, wake up in the morning and I ask myself

Is life worth living should I blast myself

Things would never be the same.

엮인글 :
http://adminplay.com/185056/12b/trackback
List of Articles
번호 제목 글쓴이 날짜sort 조회 수
47 Tip 그누보드의 visit 문제 file ADMINPLAY 2012-01-16 6789
46 [긴급]그누보드 4.34.05 패치 ADMINPLAY 2012-01-16 5358
45 Tip 그누보드 팁. $wr_id 값을 사용하지 않습니다_라고 뜰때 해결방법 1 (그누보드 관련 게시판이 있다면....) ADMINPLAY 2012-01-16 11362
44 Tip 그누보드 팁. $wr_id 값을 사용하지 않습니다_라고 뜰때 해결방법 2 (그누보드 관련 게시판이 있다면....) ADMINPLAY 2012-01-16 5838
43 Tip 그누보드 팁. $wr_id 값을 사용하지 않습니다_라고 뜰때 해결방법 3 (그누보드 관련 게시판이 있다면....) ADMINPLAY 2012-01-16 6584
42 Tip 그누보드 메타태그(description, keywords) 설정 file [1] ADMINPLAY 2012-01-16 15397
41 Tip 중규모 커뮤니티 속도저하방지를 위한 튜닝 [그누보드 관련] ADMINPLAY 2012-01-16 8789
40 플러그인 그누보드 내글 모니터 (쿠키 및 구글 스타일 변환) file ADMINPLAY 2012-01-16 13178
39 플러그인 게시판의 정렬을 이용한 최신글 file ADMINPLAY 2012-01-16 28515
38 플러그인 게시물 순위를 이전과 비교해서 등수 출력 file ADMINPLAY 2012-01-16 11496
37 플러그인 코멘트 Ajax 처리 - 아직도 코멘트(댓글)쓰고 전체 페이지 로딩되나요? ADMINPLAY 2012-01-16 16636
36 Tip 효율적으로 디비 쿼리수 줄이기 Tip ADMINPLAY 2012-01-16 8013
35 플러그인 네이버 스타일 아웃로그인 스킨(?) file ADMINPLAY 2012-01-16 11837
34 Tip 투표(설문) 새창 띄우기 ADMINPLAY 2012-01-16 8826
33 Tip 포인트 반복 차감 기간 제한 ADMINPLAY 2012-01-16 8047
32 Tip 공지사항 리스트에 이중 출력 안되도록. ADMINPLAY 2012-01-16 10403
31 Tip 오늘의 주인공 onfocus="this.blur();"와 a:visited를 소개합니다. ADMINPLAY 2012-01-16 9991
30 Tip 그누보드 회원 포인트 일괄삭제 하기 (mb_point + 포인트 내역) ADMINPLAY 2012-01-16 9585
29 최적화 그누보드에서 효율적으로 디비에 쿼리수 줄이기 ADMINPLAY 2012-01-16 9004
28 Tip 출석시 과거 특정날짜 자동출석 인정하는 방법 - 미션출석부 l2zeo 2012-03-12 9322

Copyright ADMINPLAY corp. All rights reserved.

abcXYZ, 세종대왕,1234

abcXYZ, 세종대왕,1234