2025-5-16 40일차

심서진·2025년 5월 16일

수업 정리

동기 VS 비동기

동기

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

  • 순차적인 처리

  • 1요청 1응답

  • 요청 -> 응답 사이에 대기시간이 있음
    -> 응답이 오기 전까지 다른 작업 불가

  • 장점
    1.디버깅이 쉬움(순차적으로 동시에 이루어지지 않으니 단계별로 디버깅 할 수 있음)
    2.코드 작성이 간단

  • 단점
    1.여러가지 작업을 동시에 할 수 있음
    2.사용성이 떨어짐(사용자 경험이 저하됨) (응답이 늦어지면 멈춘것 처럼 보이기 때문)
    3.네트워크가 지연되면 전체가 먹통

비동기

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

*콜백함수 - 나중에 실행될 함수
콜백지원의 문제를 조금이나 해결하기 위해 나온 문법
promise
async/await

  • 장점
    1.여러가지 작업을 동시에 할 수 있음
    2.사용성이 올라감(사용자 경험이 향상됨)
    3.네트워크가 지연돼도 유연하게 대응
  • 단점
    1.통신의 흐름을 제어하기가 쉽지 않음
    2.디버깅이 어려워짐(콜백지원)
  • ajax, fetch, axios, XMLHttpRequest ...
    우리가 사용할 것은 ajax
    jquery에서 지원해주기 때문

ajax(Asyncronous Javascript and XML), json

  • 비동기 통신을 하기 위해 자바스크립트와 *XML 기술을 활용하여 만든 방법

응답으로 받는 데이터의 형식
*XML
-> 태그로 구성된 문서 확장자

json
-> 객체 형태로 구성된 문서 확장자
-> 우리가 사용할 것

ajax를 통해 응답으로 받는 데이터의 형식
xml, json, text, html ...

ajax 사용 방법

제네릭

ResultData<제네릭>
A클래스를 만듦 - A타입을 지정
앞으로 A타입의 데이터를 사용할 수 있음

List< Article >
Article타입의 데이터들만 저장할 List

Session

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

HTTP는 기본적으로 상태 유지를 안함

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

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

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

0개의 댓글