CI 묻고 답하기

제목 Cart library class 질문있어요...
글쓴이 영하잇 작성시각 2014/07/16 16:37:15
댓글 : 6 추천 : 0 스크랩 : 0 조회수 : 11538   RSS
안녕하세요. 이제 막 시작한 프로그래밍 입문자입니다..
Cart library class 를 이용하면 세션에서 디비에 저장한다고 하는데요
기존에 php만을 이용한 방식에서는 바로 디비에 저장될수 있게 구현을 해보았었는데요
왜 Cart library class 에서는 세션을 이용하나요?
무엇때문에 세션을 이용하는지 잘 모르겠어요...

친절한 답변 부탁드립니다 ... 
 
 다음글 메일전송 시 팡리 첨부 (1)
 이전글 core에러 관련하여 질문드립니다. (5)

댓글

한대승(불의회상) / 2014/07/16 17:14:02 / 추천 0
Cart 라이브러리 제작자는 DB의 부하를 줄이고 싶었던 모양입니다.
슘님 / 2014/07/16 18:20:11 / 추천 0
세션이 만료되었을 때 cart도 초기화 시키려는 의도도 있을 수 있습니다.
영하잇 / 2014/07/16 22:05:32 / 추천 0
한대승님 슘님 좋은 의견 감사합니다.

생각을 조금만 깊게 해봤으면 알수있었던 문제인것 같았는데... 너무 미숙했네요.

불의회상님 예제 잘 보구 있습니다. ^^
겐자이 / 2014/07/16 22:23:30 / 추천 0
 먼저 장바구니를 왜 세션을 이용하여 DB를 사용하는지에 알기위해 코드이그나이트에서 세션을 어떻게 관리하는지에 대해 알 필요가 있습니다.
코드이그나이트에서는 세션을 DB로 관리하고있습니다.
 즉, 클라이언트단에는 쿠키로 키값을 저장하고, 서버의 DB에는 세션에 관련된 정보가 들어있습니다.
세션을 DB로 관리하기 때문에 서버의 과부화를 줄여줄 수 있겠죠. 
예를들어 100만명의 세션을 메모리상에 올린다던가 파일로 저장을 하여 쓰는것보다 DB에서 사용하는것이 서버과부화를 줄여줄수있습니다.
 장바구니를 세션을 이용하여 사용하는 이유를 코어단에서 보니,  결국 세션의 user_data을 이용하여 (코드이그나이트에서 제공하는 세션의 user_data 칼럼, Text타입) 배열형태로 저장합니다.

세션을 사용하는 이유는 로그인 또는 접속되고 있는 동안 사이트내에서 장바구니에 대한 정보를 저장하여 값을 유지 하기위해서 사용합니다.
DB에 저장을 해도 되는데, DB에 저장하게되면 단순히 로그인 정보를 받아 아이디값과 자신이 만들어준 DB컬럼대로 다 넣어주어야 하는데, 코드이그나이트는 단순한 문자열을 저장을합니다. 그 단순한 문자열은 유저의 추가적인 데이터를 배열형태를 이용하여 한개의 컬럼에 저장하기 때문에 좀 더 효율적이라고 할 수 있습니다.
 
겐자이 / 2014/07/16 22:29:25 / 추천 0
간단하게 정리하면 일반적으로 만드는 장바구니 DB는 따로 테이블을 만들어 주어야하고, 컬럼도 여러개 생성하게 됩니다.
하지만 코드이그나이트의 장바구니는 기본적으로 제공하는 세션 테이블중 user_data라는  text타입의 컬럼을 이용하여 모든 정보를 담기때문에 DB에 대한 부담을 줄여주는 것입니다.
한대승(불의회상) / 2014/07/17 11:07:14 / 추천 0
영하잇// 도움이 되셨다니 제가 기쁩니다. ^^