태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

'session'에 해당되는 글 1건

  1. 2007.05.02 Web - 데이터를 어디에 저장하지? (2)

Web - 데이터를 어디에 저장하지?

Tech 2007. 5. 2. 01:13

세션이나 쿠키에 대해 알게 되면서 시작되는 초보적인 고민 - 이라고 생각한다 - 은 "그래서 둘중 뭘 쓰지?" 가 아닐까 한다. ... 왜냐하면, 나는 지금 웹 개발의 초보이고 그 고민을 가지고 있기 때문에 ... 함께 프로젝트를 하고 있는 후배와 이야기를 하다가 간혹 나오는 주제인데, 주제의 기술적 난이도나 난해함에 비해 중요도가 매우 높다고 생각된다. 조금이나마 시간을 내서 정리해 보는건 유익할 것 같다.

웹 서비스를 제공하기 위해서는 로그인 정보나, 현재 보고 있는 글의 분류 정보, 에러 메시지, 페이지간 주고받는 데이터 등 기억해 둘 것이 많다. 정보의 갱신 주기에 따라 데이터를 분류해 보자면 사용자의 액션에 따라 계속해서 변하거나 생성/소멸되는 동적인 데이터, 로그인 정보처럼 한번 만들어지면 자주 바뀔 필요가 없는 정적인 데이터가 있다. 정보의 노출 범위, 유효시간 등에 의해서 나눌 수도 있는데, 지금 화면에 뿌려지고 있는 글의 카테고리처럼 페이지-View 마다 존재하는 데이터나, 사용자 인증 정보처럼 여러 페이지가 공유하는 - Session - 스타일의 데이터가 있다. 그 외에도 여러가지 기준이 있을 수 있다. Post, Get등의 방식을 통해 페이지를 넘나드는 데이터도 있으며, DB, Session 혹은 RoR의 Flash같은 객체를 통하여 다른 페이지에 넘어가는 데이터도 있다. 그 외에도 무언가를 저장하는 곳 - 으로 쿠키, 파일, 소스코드 등을 생각할 수 있다. 참 많기도 해라...!

그럼 어떤 상황에서 어떤 데이터 저장공간을 사용해야 하는가? 아무거나 편한걸 쓰면 되나? 라는 물음이 나오는데 잘 생각해보면 몇몇 위험한(?), 또는 좋지 않아보이는 선택이 있을 수 있다. 나는 안되는 것이 아니면 된다, 정도의 포용주의를 펴고 있으니 쓰면 안될 것 같은 경우를 정리하고 그것만 피해서 쓰고싶은걸 쓰자 라는 정책을 세웠다. 자, 이게 최소한의 원칙이다.

1. 링크는 웹 서비스의 내부 상태(DB라던가...)를 변경시켜선 안된다. => GET method로 중요한 정보를 넘기지 않는다
2. 세션은 커넥션 단위로 유지되는 정보를 담는다 => 서버쪽에 저장
3. 뷰(페이지?)에 대한 정보는 뷰에 담는다 => 클라이언트쪽에 저장 (URL encoded...)
4. 3번의 경우라도, 중요한 정보(보안? 개인정보? 상태변화가능성 등?)는 삽질이 되더라도 뷰에서 뺀다

 1번에 대해서는 여기에 대강의 설명이 되어 있다. GET은 side-effect가 없도록 하는게 안전, 혹은 권장사항이다.

 2,3번의 차이에 대해서는... 예를 들어, 글 목록을 보는 링크는 페이지에 대한 정보다. 로그인 한 후 여러 탭을 띄워 여러 게시판을 볼 수 있는데, 이 경우 현재 보고 있는 게시판이 뭔가에 대한 정보는 커넥션이 아니라 뷰 단위 관리가 맞다. 그러므로, 세션은 안됨. 뷰쪽에서 가지고 있는게 맞는것 같다. (물론 세션으로 구현할 수는 있다) 로그인 정보는 커넥션 단위로 관리되는 정보이므로 클라이언트보다는 서버쪽에 - 세션에 저장되는게 더 그럴싸해 보인다. (물론 쿠키에 때려넣을수도 있겠다)

 4번은 당연.

 그 외의 경우라면, 그냥 맘 가는대로 해보자.


P.S. Difference between GET and POST - 라는 주제는 여기저기서 꽤나 많이 언급되었던 것인가 보다. 내가 무지했던게로군...

'Tech' 카테고리의 다른 글

실명인증  (5) 2007.07.02
지름: Ferret short cuts (O'reilly), PDF  (0) 2007.06.08
Web - 데이터를 어디에 저장하지?  (2) 2007.05.02
Ruby On Rails - Scaffold의 함정  (2) 2007.04.18
Javascript - folding  (2) 2007.04.16
책 제본했다! 아자~  (4) 2007.04.07
tags : , , ,
Trackbacks 0 : Comments 2
  1. Favicon of http://etnalry.tistory.com etnalry 2007.05.02 03:07 신고 Modify/Delete Reply

    후훗.. 옛 생각이 나게 하는 글이군.
    예전엔 주로 웹을 이용해서 뭔가를 시도해보곤 했었는데
    요즘은 웹을 다루는 사람들의 얘길 가끔 지나가는 글을 통해 읽어보는 정도가 되었지.
    IT는 재미있는 분야가 참 많아..

Write a comment