이론

[ 이론 ] - mvc / 쿠키 세션

algml0703 2022. 6. 15. 08:57
반응형

MVC (Model-View-Controller)

데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴
▪ 모델 : DATA, 정보들의 가공을 책임지는 컴포넌트
▪ 뷰 : 사용자에게 보여지는 부분, 즉 유저 인터페이스(User interface)
▪ 컨트롤러 : 모델(Model)과 뷰(View) 사이를 이어주는 브릿지(Bridge) 역할
mvc 패턴식 개발은 시스템 결합도를 낮추어 유지보수의 편리성을 높여준다.


 쿠키 vs 세션

기본적으로 HTTP프로토콜 환경은 클라이언트의 요청과 그에 대한 서버의 응답이 일회성으로 이루어지며, 이전의 기록은 유지되지 않는다., 
이러한'connectionless, stateless'의 HTTP 프로토콜의 특성으로 인하여 서버는 매요청시 사용자에 대한 검증이 필요하다. 이를 극복하기 위해 쿠키와 세션을 사용한다.
- 즉 정보를 계속 유지하고자 할 때 사용.
- 쿠키와 세션의 가장 큰 차이점은 유지하려는 정보를 어느 곳에 보관하느냐
- HTTP 1.1은 연결 유지하는 기능 추가됨.

[ 쿠키 ]
클라이언트(브라우저) 로컬에 저장되는 키와 값이 들어있는 작은 파일로 사용자의 컴퓨터에 저장한다.
  
▪ 특징
  1. 이름, 값, 유효시간, 도메인, 경로로 구성됨.
  2. 유효시간 내에서는 브라우저가 종료되어도 인증이 유지됨.
  3. 클라이언트는 총 300개의 쿠키 저장 가능, 하나의 도메인은 20개의 쿠키 저장 가능
  4. 쿠키값은 4KB까지 저장.
  5. Response Header에 Set-Cookie 속성을 사용하여 클라이언트에 쿠키 생성 가능.
  6. 저장형식은 text

▪ 쿠키 동작과정
  1. 사용자가 http프로토콜을 통해 페이지 요청
  2. 웹 서버는 쿠키를 생성하여 페이지 응답시 함께 전달
  3. 사용자는 쿠키를 로컬에 저장 후 서버에 새로운 요청을 할 때마다 해당 쿠키값을 요청과 함께 전달
  4. 유효시간 동안 쿠키에 담긴 정보가 유지되며, 브라우저 종료 후 사이트 재방문시 기존에 가지고 있던 쿠키값을 서버에 함께 전송(유효시간 이내의 경우만)
  
  ex) 팝업창 - 해당 팝업을 일주일간 보지 않겠습니까?
 
[ 세션 ]
:사용자에 대한 정보를 접속하고 있는 서버 측에 저장하며, 방문자가 웹서버에 접속하고 있는 시간동안만 유지되며 브라우저 종료시 세션 종료.

/ 방문자가 웹 서버에 접속된 상태의 하나의 단위로 보고 이를 세션이라 함.
/ 웹서버에 저장하는 쿠키라고 생각하면 될 듯.

▪ 특징
   1. 쿠키보다 뛰어난 보안성.
   2. 클라이언트 구분을 위해 각 클라이언트에게 Session ID 부여.
   3. 정보를 서버에 저장하기 때문에, 동시접속자가 많은 경우 서버가 부담하는 정보의 양이 많아져 서버에 과부하를 유발할 수 있다.
   4. 저장형식 object

▪ 세션의 동작과정
   1. 사용자가 http프로토콜을 통해 페이지 요청
   2. 웹서버는 사용자의 쿠키에 session ID 존재 유무 확인하고, 존재하지 않으면  페이지 응답시 session ID 함께 전달
   3. 사용자는 부여받은 session ID를 쿠키에 저장해두었다가 페이지 요청시마다 함께전달.
   ex) 사이트 방문 후 최초 로그인 후 로그아웃 하기 전까지 새로고침이나 페이지가 전환되어도 로그인이 유지됨.
   
   * 속도
   쿠키  >  세션
   
   * 보안
   쿠키  <  세션
   
   ** JWT : 토큰기반의 인증방식

반응형