
쿠키, 세션, TCP/UDP, break
쿠키
클라이언트 측에서 저장하는 작은 데이터 파일이다.
웹 브라우저가 웹 서버에 요청을 보낼 때 서버는 쿠키를 포함한 응답을 보내며 클라이언트의 브라우저에 저장한다.
만료날짜가 설정되어 있으면 해당 날짜까지 유지되고, 만료날짜가 없는 경우 세션 쿠키로 간주되어 브라우저가 닫힐 때까지 유지된다.
세션
서버 측에서 사용자 상태를 관리하는 방법이다.
클라이언트가 서버에 접속할 때 세션 ID가 생성되며, 이 ID를 사용하여 서버 측에 사용자 정보를 유지하거나 조회할 수 있다.
일반적으로 세션은 서버의 데이터, 데이터베이스, 파일 시스템을 저장한다.
일정 시간 또는 사용자의 로그아웃과 함께 만료될 수 있다.
차이점
TCP
전송을 제어하는 프로토콜을 뜻한다.
인터넷상에서 데이터를 메세지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜이다.
일반적으로 TCP와 IP를 함께 사용하는데, IP가 데이터의 배달을 처리한다면 TCP는 패킷을 추적 및 관리하게 된다.
TCP는 연결형 서비스로 신뢰성을 보장한다. 따라서 파일전송과 같은 경우에 사용된다.
UDP
사용자 데이터그램 프로토콜을 뜻한다.
데이터를 데이터그램 단위로 처리하는 프로토콜이다.
(데이터그램이란 독립적인 관계를 지니는 패킷을 뜻한다.)
UDP는 비연결형 프로토콜이기 때문에 각각의 패킷이 다른 경로로 전송되고 독립적인 관계를 지니게 된다.
UDP는 비연결형 서비스로 서로 다른 경로로 독립적으로 처리되기 때문에 TCP보다 속도가 빠르다. 실시간 서비스 같이 신뢰성보다 연속성이 중요한 서비스에 사용된다.
{ count: 490, results: [] } 이런식으로 데이터 개수와 결과 값을 받아온다.{ count: 490, results: [] } 이렇게 콘솔에 찍히는 것을 확인하고 sneakersData.results.length가 0일 경우에 빠져나가도록 수정하였다.async fetchSneakers(saveShoesDto: SaveShoesDto) {
const { brand } = saveShoesDto;
for (let i = 1; i <= 15; i++) {
const page = i.toString();
const sneakersData = await this.SneakersApiCall(page, brand);
if (sneakersData.results.length === 0) {
break;
}
const sneakersDataSave = sneakersData.results.map((sneakerData) => {
const { brand, styleId, title, media } = sneakerData;
if (media.imageUrl === null || styleId === '') {
return null;
} else {
return { brand, shoeCode: styleId, name: title, imgUrl: media };
}
});
await this.saveSneakers(sneakersDataSave);
await new Promise((resolve) => setTimeout(resolve, 1000));
}
}
반복문의 i를 콘솔로 찍어보면 15까지 찍히지 않는 것을 확인할 수 있다.
