2025-05-16 [40일차]

dong_c·2025년 5월 19일

수업정리


수업페이지


세션(Session)이란 HTTP 프로토콜을 사용하는 인터넷 사용자가 어떤 웹사이트를 방문할 경우, 웹 사이트의 여러 페이지에 걸쳐 사용되는 사용자 정보를 저장하는 방법을 의미합니다. 사용자가 브라우저를 닫아 서버와의 연결을 끝내는 시점까지를 세션이라고 합니다.

앞서 살펴본 쿠키는 클라이언트 측의 컴퓨터에 모든 데이터를 저장합니다.
세션은 서버 내부에 저장되며, 세션의 키값만을 클라이언트 측에 남겨둡니다.
브라우저는 필요할 때마다 이 키값을 이용하여 서버에 저장된 데이터를 사용하게 됩니다.
저장된 값은 반영구적이며, 사용자가 특정 시간동안 사용되지 않을 경우 폐기될 수 있는 정보입니다.
세션은 쿠키와 마찬가지로 연결 지향 통신을 수행하는데 기초적인 요구사항입니다.
방문자가 웹서버에 접속해 있는 상태를 하나의 단위로 보고 세션이라고 칭합니다.


동기 통신 vs 비동기 통신 차이

동기(현재 우리가 홈페이지로 구현중이었던 방식)

웹의 통신 방식 1(요청을 보내면 응답이 올 때까지 기다린다)

  • 순차적인 처리 방식
  • 1요청 -> 1응답
  • 요청시 응답 대기 시간이 존재
  • 순차적인 요청->응답방식으로 데이터가 꼬이거나 할 확률은 줄어들지만
    데이터가 대량이라면 로딩 시간도 길어지기에 사용자의 불편함이 있음
    (응답이 오기 전까지 다른 작업이 불가)

브라우저가 멈춘것처럼 동작(렉?!)

동기 통신 방식의 장점
코드 작성이 간단
디버깅이 쉽다(순차적으로 동시에 이루어지지 않으니 단계별로 디버깅 할 수 있다)

동기 통신 방식의 단점

  • 여러가지 작업을 동시에 할 수 없다
  • 사용성(사용자 경험)이 저하된다
  • 네트워크가 지연되면 전체가 먹통이 된다

비동기 방식

웹의 통신 방식 2

  • (요청을 보내면 응답을 기다리지 않고
    다른 작업을 계속 수행)
  • 병렬적인 처리 방식
  • 반응이 빠르다
  • 응답이 오면 콜백함수 , 이벤트로 처리

장점

  • 여러가지 작업을 동시에 할 수 있다
  • 사용성이 올라간다(사용자 경험이 향상된다)
  • 네트워크가 지연되도 유연하게 대응

단점

통신의 흐름을 제어하기가 쉽지 않음(동기에 비해 복잡성 ▲)
디버깅이 무조건 어렵지는 않으나 특정상황에서 어려움(콜백지옥?)


콜백함수

나중에 실행될 함수

콜백지옥?

콜백 안에 콜백 안에 콜백함수...;;

..........

콜백지옥의 문제를 조금이나 해결하기 위해 나온 문법
promise
astnc/await


비동기 통신 방식 사용하는 스크립트 문법 정의한 것들

ajax(아작스), 액시오스, 패치스 ..

ajax(아작스/에이잭스)- 제이쿼리에서 기능 제공

ajax -> 비동기통신을 하기 위해 자바스크립트와 xml 기술을 활용하여
만든 방법


응답으로 받는 데이터의 형식

xml -> 태그로 구성된 문서 확장자

json -> 객체형태로 구성된 문서 확장자

ajax를 통해 응답으로 받는 데이터의 형식

-> xml , json , text , html, ~~~

ajax 문법 예시

$.ajax({
	url : '/url/home/test',
    type : 'GET',
    data : {
    	test1 : '비동기테스트'
	}, 
    dataType : '',
    success : function (){
    
    } ,
	error : function(){
    
		}
	})
}

비동기 문법

''말고 백틱으로 써도 문자처럼 인식?
\ el표기 ,...


세션이란?

웹에서 사용자의 상태 정보를 서버에 일시적으로 저장하기 위한 방식

http는 기본적으로 상태 유지를 안한다

세션으로 사용하는 상황들

로그인 유지, 장바구니

세션이 생성되는 시점이 있다.
요청을 받으면(서버에 접속) 세션이라는 영역이 생겨난다
해당 영역을 찾아갈 수 있는 세션ID(서버가 생성)가 생겨난다
생성된 세션ID가 클라이언트(브라우저)에게 전달(쿠키)된다
클라이언트는 다음 요청부터 쿠키에 있는 세션 id를 같이 보낸다
서버는 세션id를 통해 사용자를 식별 후 저장하고 있던 정보를 제공한다

----> 세션의 동작 흐름

위에 처럼 보면 어렵게 보이지만(복잡하게 보이지만)
체감상 요청 자체에 세션이 들어있는 것처럼 느껴진다

서버

상대적으로는 쿠키보다 보안에 강하다
서버에 데이터를 저장
데이터베이스도 가능
사이즈의 한계가 있다(서버의 용량에 따라 달라진다)
개발자가 특정 시점을 정해놓고 없애지 않으면 일정 시간이 지났을때
사라짐

쿠키
클라이언트에 데이터를 저장
보안에 취약함
개발자가 정해놓은 시점에 사라진다
사용자가 시점을 정하기도 한다

profile
코딩초보

0개의 댓글