03.24 학습&숙제

한강섭·2025년 3월 24일
0

학습 & 숙제

목록 보기
50/103
post-thumbnail

03.24 학습! 🟥🟧🟨🟩🟦🟪🟫⬜⬛🫢🔔😎😊🤔😭⭐🫢

상태관리🟥


Cookie🟧

HTTP 특징

Stateless: 상태를 기억하지 않음
왜? Stateless 할까? -> 이렇게 해놓으면 단순해지기 때문!

단순성 (속도), 확장성 (요청 분산 가능), 신뢰성 (독립적), 자원절약 (메모리 절약)

Cookie, Session등으로 stateless 특성 보완

⭐순서⭐

  1. 최초 요청

  2. WAS(Tomcat)에서 쿠키 생성!

  3. response 시 쿠키 전송

  4. 브라우저에 쿠키 저장

  5. request 시 쿠키 전송

KEY VALUE값으로 생성 저장
domain: 설정된 도메인과 그 하위 도메인만 접근 가능
path: 쿠키가 유효한 경로 (경로 미 설정 시: context root 설정)

⭐ 유효 기간 ⭐
양수 : 해당 시간까지 쿠키 존재
음수 : 세션 쿠키로 세션 종료 시 폐기
0 : 브라우저에 도착하는 즉시 폐기

secure: HTTPS 에서만 전송 허용

자바스크립트에서는 잘 안되는 거 CORS SOP
httpOnly HTTP 에서만 관리해!

⭐response 되어야 쿠키가 생성된다!


Session🟨

page 영역 - 하나의 page -> 페이지 내에서 만 존재
request 영역
session 영역
application 영역 - 여러 session으로 구성 -> 애플리케이션이 종료될 때까지 존재

서버에 클라이언트의 상태 값을 저장

세션이 동작하기 위해서는 JSESSIONID라는 이름의 쿠키 필요
JSESSIONID는 서버의 세션 공간에 들어가기 위한 키!

  1. 최초 요청
  2. 세션 생성 및 저장 (KEY: JSESSIONID)
  3. 최소 쿠키 전달
  4. 브라우저 내 재요청

HttpSession 사용
Servlet에서 Session 객체 획득
request.getSession(): 현재의 세션을 반환하며 아직 없을 경우 새로 생성

HttpSession ⭐유효기간⭐

세션은 getLastAccessedTime() 부터 getMaxInactiveInterval() 까지 유효

  1. WAS의 web.xml에 container 차원의 session-timeout 설정 (분 단위)
  2. 애플리케이션 별 web.xml에서 context단위 재정의 가능

AJAX

get, forward, fetch
비동기 await fetch
화면 안바뀌는 것은 동기 -> 비동기로 하는 것들이 있음


강사님 수업 🟩


Catalina는 큰 자동차다 - 작은 자동차를 태운다 (Spring Container)


서버에서는 클라이언트 코드가 돌지 않는다


화면 변하지 않음 -> 뒤에서 일어남 -> 데이터만 이동 => 비동기
사용할 때
1. 아이디 가입 -> 이미 아이디가 있어 -> 아이디가 있다고만 알림
2. 세계 대학교를 찾을 때 미국 클릭 -> 대학교 쫙 뜸 -> MIT 선택 -> 과가 다 뜸 -> 왼쪽에 있는 데이터를 계속 가져가야 함;;
=> 이럴때 비동기를 통해 효율적으로 처리 가능하다!

front vs backend 비동기 vs 동기 구분 할 줄 알아야 함
리액트 비동기 MVC 동기


비동기를 할 수 있게 하는 가장 중요한 놈 -> XHR

get방식은 send 없음
data를 바디에 넣어서 보냄
답이 오면 callback이 가로채서
이걸 감싼게 React Axios, 바닐라 Fetch, J-Query ajax


비동기에는 jsp가 없다
jsp가 없어졌다 -> data가 온다
A를 요청하고 B를 요청했다 -> A 오고 B 오는게 보장이 안된다!
보장을 하고 싶을때 async, await 로 하는 것

동기안에 비동기는 사용 가능
비동기에 동기를 넣으면 목졸림


회원가입
fetch 사용


인증(Authentication) vs 인가(Authorization)
사용자가 주장하는 신원을 확인하는 과정 vs 인증된 사용자에게 어떤 자원이나 기능을 사용할 수 있는 권한을 부여하는 과정

로그인은 인증! Authentication!


stateless vs stateful


session vs cookie


동기 vs 비동기

동기 : db 가져오고 html로 바꾸고 클라이언트에 html 던짐 dom 으로 렌더링

비동기 : jsp 없음 data가 날라옴 화면이 javascript 로 렌더링 됨

서버렌더링 vs 자바스크립트 렌더링이랑 같은 이야기임


숙제 🟦

알고리즘 연습!

profile
기록하고 공유하는 개발자

0개의 댓글