CI 묻고 답하기

제목 캐싱기능.
글쓴이 스크림 작성시각 2010/05/01 14:55:02
댓글 : 7 추천 : 0 스크랩 : 0 조회수 : 25723   RSS
clien.net 처럼.

첫화면에 로그인 박스가 있는 첫화면을 캐싱하려고 하는데요.

그렇게 되면. 로그인을 했을 때 다른 화면이 나와야 하는데.

로그인 해도 그대로 그화면이 나오는 건 어떻게 해결 할 수가 있을까요~?
생각나는건. 아이프레임으로 로그인 박스를 감싸면 될것같기도 한데..
 다음글 $foo에 관하여 (2)
 이전글 라우팅에 관련하여 질문드립니다. (1)

댓글

헛발이 / 2010/05/01 15:21:59 / 추천 0
그런 부분은 Ajax로도 하지 않나요?
mycastor / 2010/05/06 18:06:06 / 추천 0
음.. 로그인 박스에 캐싱을 하실 필요가 있을까요?

무엇보다 일단 캐싱의 목적을 분명히 하시고 사용하시는게 좋을 듯합니다.

로그인 처럼 처리하는데 시간이 오래 걸리지 않고

각 사용자에 따라 보여지는 결과물이 제 각각인 경우에는

캐싱을 하실 필요도 없고 이유도 없다고 생각합니다.
스크림 / 2010/05/06 19:01:55 / 추천 0

mycastor // 클리앙 사이트를 보시면 이해가 쉬우실 것같은데요 주소는 http://clien.net

사이트 전면에 최근 게시물이 왕창있어요. 즉 쿼리를 기본 10개 이상 날려야 하구요.
매 접속시마다 그러기엔 어려우니 캐싱을 써야하는데.

왼쪽에 로그인 박스도 있으니 어떻게 하냐는 거였죠^ ^

마냐 / 2010/05/06 20:47:28 / 추천 0
DB캐싱을 하셔도 되겠지만 Ajax 가 깔끔할 것 같네요.
http://www.codeigniter-kr.org/user_guide/database/caching.html
kirrie / 2010/05/06 21:40:59 / 추천 0
예전에 생각했던 부분인데, 현재 CI의 웹페이지 캐싱 같은 경우는 최종 결과물만을 캐싱합니다만, 여러가지 view 파일들을 '조립'해서 페이지를 렌더링 하는 경우는 view파일별로 따로 캐싱을 하도록 하는 것도 좋겠다는 생각을 해봅니다. 물론 '생각'만 하는게 문제지만... 뭐, 조만간 나올지도;;
변종원(웅파) / 2010/05/06 23:50:09 / 추천 0

예전에 썼던 방법인데 부하 분산이라고 이름 붙였던 건데.. ^^;

말씀하신대로 메인에 최신 리스트가 주르륵 있으면 쿼리가 많겠죠.
그래서 그걸 분산하는 겁니다. 메인에 접속할때 쿼리에 의해 페이지를 만드는 것이 아니라
글을 쓸때, 수정할때, 삭제할때 해당 부분만 html로 만드는거죠. 조각조각..
그리고 메인에서는 각 조각을 인클루드해서 보여주면 됩니다. 로그인은 그대로 프로그램으로 돌리고
각 부분을 html로 만들때 캐싱까지 사용하면 더 좋구요.

또 한가지는 로그인 부분과 그외 나머지 부분으로 나눠서 나머지 부분을 만드는 프로그램을 돌리고 html생성, 캐싱 그리고 로그인과 캐싱부분 합치기.

첫번째 방법이 귀찮기는 하지만 실질적으로 액션에 대응하기때문에 실시간이라 볼수있습니다.
두번째 방법은 편하기는 해도 실시간은 아닙니다.

별거 아닌 것 같아도 꽤 쓸모가 많았던 방법입니다.

메인에 15번이 넘는 쿼리가 필요했고 꽤나 많은 사람이 접속했던 사이트에서 사용했던 방법입니다.
db와 http가 같은 서버에서 돌았던...

그리고 질문하신 내용은 ci와는 상관없는 부분입니다.
팁게시판에 동일한 내용을 올려놓은 적이 있습니다.
다음부터는 검색어로 답변을 대신하겠습니다.

mycastor / 2010/05/07 10:45:03 / 추천 0
스크림 //
제가 오해를 했네요. 로그인박스 부분만 별도로 캐싱을 하시는줄 알았습니다.

근데 솔찍히 저정도 쿼리를 날리는데 캐싱이 굳이 필요할까 생각이 듭니다.

최신글 몇개 가져오는 쿼리를 날려봤자 크게 속도가 오래걸리지 않을꺼 같구요.

각 쿼리가 다수의 테이블을 조인하는 경우가 아닐경우라면요..

차라리 마냐님 말씀 처럼 ajax를 쓰는게 더 낫겠네요.

말씀하신 사이트와 같은 경우라면

좌측 사이드의 뷰 페이지와 메인 및 우측 사이드의 뷰를 각각 나눠서

좌측 사이드 뷰를 제외하고 나머지 두개의 뷰를 캐싱 하시면 될듯합니다.

일정시간의 캐시 생성 시간을 설정하시구요.

하지만 게시판의 최신글을 보여주는 경우 처럼 캐싱을 할 경우 실제 게시판에 새로 작성된

게시물이 있더라도 캐시 때문에 메인 최신글 목록에서는 반영이 안되는 경우가 있을텐데..

이런것은 감수 하실껀가요?

그렇다고 캐시 생성 주기를 너무 짧게 하시면 캐싱을 하는 의미가 없을테구요..