넷플릭스와 유튜브는 인터넷 트래픽을 아주 많이 잡아 먹고 있다.
이 섹션에서는 한 서버에서 다수의 호스트로 큰 파일을 배포하는 P2P 애플리케이션에 대해 알아본다.
호스트는 사람이 기억하기 쉬운 호스트명을 통해 식별된다. 하지만 이렇게 변동-길이의 문자열은 라우터로 처리하기 어렵기에 호스트는 IP 주소로도 식별할 수 있다.
인터넷 이메일 시스템은 세 개의 주요 구성 요소, 사용자 에이전트(user agent), 메일 서버, SMTP로 이루어져 있다.
컴퓨터 네트워크는 네트워크 애플리케이션들을 위해 존재한다. 이 장에서는 네트워크 애플레케이션의 개념과 구현에 대해 알아보도록 하자.
계층화된 구조를 이용하면 거대하고 복잡한 인터넷 시스템을 좀 더 단순하게 이해할 수 있다.
저번 글에서 버튼을 눌러서 토큰을 갱신하는 데에는 성공했다. 오늘은 `axios`의 인터셉터를 이용해 인증이 필요한 API 호출에 실패했을 때 자동으로 액세스 토큰을 갱신해보도록 하자.
쿠키에 들어있는 리프레시 토큰으로 새로 액세스 토큰과 리프레시 토큰을 받아와보자. 직전 글에서 했던 것과 거의 동일하게 리프레시 토큰 인증을 위한 Token, Provider, Filter를 만들고 필터 체인에 등록한다.
이상적으로는 두 종단 시스템 사이에서 원하는 만큼의 데이터를 지연없이 전송할 수 있다면 좋겠지만, 실제로는 그럴 수 없다.
로그인을 하면서 발급받은 액세스 토큰으로 인증을 해보자.
로그인을 처리할 필터와 로그인 성공 핸들러를 추가해보자.
UserDetails, UserDetailsService와 JWT와 관련한 서비스를 담당할 JwtService 인터페이스를 작성하고 구현한다.
SecurityFilterChain을 알아보고 SecurityConfig 써보기
이전 글을 2023년 10월 9일에 썼는데, 미루고 미루다 이제야 다음 내용을 쓰게 됐다.
세그먼트 트리의 구간 갱신이 상당히 느리게 이루어짐을 봤다. 지연 전파(lazy propagation)는 이러한 문제를 해결하기 위해 쓰이는 알고리즘으로, 구간 갱신이 O(logN)의 시간에 이뤄질 수 있도록 한다.