본문 바로가기

[내일배움캠프]스파르타코딩클럽 AI 웹개발/Today I Learned

[내일배움캠프 37일차 TIL]

 

 

쿠키와 세션

 

 

쿠키

서버에서 웹 브라우저로 전달하는 작은 데이터 조각으로 유저가 웹을 방문하게 되면 서버로부터 쿠키를 전달받는다. 쿠키는  key-value 형태로 데이터가 저장된다. 그리고 쿠키 데이터는 유저의 로컬에 저장되는 정보이다.

 

쿠키는 장바구니 기능이나 최근 검색한 상품들에 이용되어 광고시장에서 활용된다. 검색 기록을 추적해서 쉽게 유저별 맞춤형 광고를 할 수 있기 때문이다. 이러한 기능으로 인해 쿠키에 대한 개인정보이슈 논의가 이루어지고 있으며 구글 크롬도 쿠키를 제거하려는 계획을 했으나 철회하였다. (관련 기사)

 

웹 페이지에 요청을 보내면 서버가 쿠키를 함께 전달하고,
이후부터는 같은 서버에게 보내는 모든 요청에 쿠키를 함께 담아서 요청을 보내게 됨

 

 

세션

쿠키는 유저의 로컬에 저장된 단순한 문자열 정보이기에 유저가 마음대로 바꿀 수 있다. 따라서 클라이언트가 서버에 접속하면 서버가 특정 세션 id를 발급하고 기억한다. 그리고 세션 id를 전달받아 쿠키에 저장한다. 이후 클라이언트는 해당 쿠키를 이용해서 요청하고 서버에서는 쿠키에서 세션 id를 꺼내서 검증한다.

 

세션은 서버와 클라이언트(브라우저)간 상태를 기억하기 위한 것이다. 쿠키에 민감한 정보를 저장할 필요 없이 세션 id만 저장하고 서버에 검증하는 방식으로 사용한다.

 

 

 

 

 

 

 

API와 REST

 

API

API는 Application Programming Interface로 소프트웨어 간의 상호작용을 가능하게 하는 인터페이스이다. API에서 애플리케이션은 고유한 기능을 가징 모든 소프트웨어를 나타낸다. 인터페이스는 두 애플리케이션 간의 서비스 계액이며 이 계약은 요청과 응답을 사용하여 두 애플리케이션이 서로 통신하는 방법을 정의한다. 따라서 API문서에는 개발자가 이러한 요청과 응답을 구성하는 방법에 대한 정보가 들어있다.

 

 

 

REST

REST는 Represntational State Transfer로 클라이언트가 서버 데이터에 액세스하는 데 사용할 수 있는 GET, POST, PUT, DELETE 등의 함수 집합을 정의한다. 

 

REST API는 무상태의 특징을 가지고 있다. 무상태는 서버가 요청 간에 클라이언트 데이터를 저장하지 않는 것을 의미한다. 서버에 대한 클라이언트 요청은 웹 사이트를 방문하기 위해 브라우저에 입력하는 URL과 유사하다. 서버의 응답은 웹 페이지의 일반적인 그래픽 랜더링이 없는 일반 데이터이다.

REST API를 사용하면 통합, 혁신, 확장, 유지관리 용이성과 같은 이점을 얻을 수 있다. API는 새로운 애플리케이션을 기존 소프트웨어 시스템과 통합하는데 사용하는데, 각 기능을 처음부터 작성할 필요가 없기 때문에 개발 속도가 빨라진다. 그리고 새로운 앱의 등장으로 서비스의 신속한 배포를 지원하기 위해 전체 코드를 다시 작성할 필요 없이 API 수준에서 변경하여 수행할 수 있다. API는 두 시스템 간의 게이트웨이 역할을 하므로 API가 영향을 받지 않도록 각 시스템은 내부적으로 변경해야 한다. 이를 통해 한 시스템의 코드 변경이 다른 시스템에 영향을 주지 않는다.