왜 쓰이는가? 프로그램의 성능을 알기 위해 but 고려해야 할 것이 너무 많아서 정확하게 알 수 없기 때문에 Big-O 표기법 탄생
* 2가지만 기억하라
1. 상수항 무시
2. 가장 큰 항 외엔 무시
프론트엔드에서 저장하고 관리
클라이언트에서 저장, 관리하는 데이터들. 브라우저를 닫아도 데이터 유지 가능
서버에서 set-cookie를 응답 헤더로 내려주면 클라이언트는 받아서 저장
클라이언트에서 자체적으로 조작 가능
각 상태에 수명을 정할 수 있다.
Set-cookie
응답 헤더에 담으면 브라우저가 알아서 저장하는데 각 데이터엔 여러 옵션이 존재
취약점
- XSS 공격을 당할 수 있음
- 쿠키를 암호화하지 않고 보내면 쿠키값 중간에 탈취 가능성 ⇒ HTTPS로 해결
HTTP Session Id를 식별자로 사용자를 구분한다.
클라이언트는 HTTP Session Id를 쿠키 형태로 저장
서버 자체적으로 기록하고 관리
문제점
해결법
- 서버와 클라이언트 간 인증은 별도 토큰을 사용한다
- 쿠키는 클라이언트 자체적인 지속적인 데이터 관리 용도로 많이 사용
클라이언트에 데이터를 저장하기 위한 새로운 방법
HTML5부터 등장
쿠키에서 하기 힘든 것들을 지원하기 위해 등장
로컬 스토리지와 세션 스토리지가 있다
로컬 스토리지
- 로컬 스토리지에 데이터를 저장하면 반영구적으로 데이터가 저장
- 브라우저를 종료해도 계속해서 데이터가 남음
- 저장했던 도메인과 이용하는 도메인이 다른 경우엔 접근 불가
- 쿠키와 마찬가지로 Key-Value 형태로 저장
세션 스토리지
- 새 창을 생성할 때마다 개별적으로 저장되는 데이터를 관리한다.
- 브라우저를 닫는 순간 사라진다.
- 같은 도메인이어도 세션이 다르면 데이터에 접근할 수 없다.
- 쿠키와 마찬가지로 Key-Value 형태로 저장
Transactional한 로컬 데이터베이스
새로운 웹 브라우저 표준 인터페이스
파일이나 블롭 등 많은 양의 구조화된 데이터를 클라이언트에 저장하기 위한 API
웹 스토리지는 적은 양의 데이터를 저장하는데 유용하지만 많은 양의 구조화된 데이터에는 IndexedDB가 적합
애플리케이션 블록을 방지하기 위해 모두 비동기로 이뤄짐.
자료구조와 알고리즘 강의를 들으면서 추가로 선택과제를 내주셨다. DoublyLinkedList, CircularLinkedList를 구현해보는 과제였는데 설명을 잘해주셔서 구현할 만 했다. 최근에 개념 위주의 공부만 해서 오랜만에 vsc켜서 작업했던 것 같다.🙂 알고리즘 문제를 몇 문제 풀었는데 시간이 금방 지나가 오늘 할 일을 미처 다 하지 못했다.😞 시간을 정해서 풀 수 있을 만큼만 해야겠다. 못한 공부는 미루지 말고 자기 전까지는 하자