Web

    캐시(로컬 캐시 & 글로벌 캐시)에 대해 알아보자!

    데이터 액세스의 성능과 효율성을 향상하기 위해 캐시는 중요한 역할을 합니다. 이번 포스팅에서는 캐시에 대해 알아보고, 로컬 캐시와 글로벌 캐시의 특징에 대해 알아보겠습니다. 캐시? 캐시(Cache)는 데이터를 미리 저장하여 빠른 액세스와 성능 향상을 위해 사용되는 임시 저장소입니다. 캐시는 데이터 액세스의 반복적인 작업을 줄이고, 시스템의 응답 시간을 단축시켜 전반적인 성능을 향상합니다. 어떤 데이터를 캐시에 담아야 할까? 자주 액세스되는 데이터 애플리케이션에서 반복적으로 액세스 되는 데이터는 캐시에 저장하는 것이 유용합니다. 이를 통해 매번 데이터를 가져오는 네트워크 비용이나 디스크 액세스 시간을 절약할 수 있습니다. 비용이 높거나 시간이 오래 걸리는 데이터 데이터를 가져오기 위해 많은 비용이 들거나 ..

    JWT의 다양한 보안 전략에 대해 알아보자!

    이전 포스팅에서 JWT(Json Web Token)의 개념과 구조에 대해서 알아보았습니다. 이번 포스팅에서는 JWT의 보안 전략과 각각의 장단점을 알아보도록 하겠습니다. AccessToken 사용 JWT에서는 기본적으로 AccessToken을 제공한다. 서버가 클라이언트에게 발급해주는 AccessToken은 클라이언트의 저장공간에 저장된다. 그러므로 AccessToken은 데이터베이스나 파일 등에 저장할 필요가 없고 메모리상에서 인증을 처리하기 때문에 추가적인 I/O 작업이 필요가 없다. 이러한 이유 때문에 한번 발급된 AccessToken은 서버 측에서 만료시킬 수 없어 특정 사용자의 접속을 강제로 만료시킬 수 없다. 일반적으로 클라이언트 측의 저장공간에서 토큰을 삭제하는 방법을 통해 특정 사용자의 접..

    JWT(Json Web Token)에 대해 알아보자!

    이전 포스팅에서 서버 기반 인증과 토큰 기반 인증을 비교해보고 토큰 기반 인증의 장점에 대해서 알아보았습니다. 이번 포스팅에서는 JWT의 개념 및 구조 그리고 어떠한 전략으로 JWT가 구현될 수 있는지 알아보겠습니다. JWT(Json Web Token) 이란? JWT(Json Web Token)란 인터넷 표준 인증 방식으로 Json 포맷을 이용하는 Claim 기반(사용자에 대한 속성을 저장)의 Web Token이다. 다시 말해, JWT는 인증에 필요한 정보들을 토큰에 담아 암호화시켜 사용하는 토큰이다. JWT는 대표적으로 HMAC(SHA) 이나 RSA 암호화 알고리즘을 통해 서명된다. 서버에서 발급된 토큰을 클라이언트 영역에 저장해놓고 HTTP 통신을 할 때마다 JWT를 HTTP 헤더에 담아서 서버로 전..

    서버 기반 인증과 토큰 기반 인증에 대해 알아보자!

    최근 진행한 프로젝트에서 Spring Security와 JWT를 이용한 로그인을 구현하였습니다. 구현했던 내용을 정리해보고자 글을 작성하게 되었습니다. 이번 포스팅에서는 서버 기반 인증과 토큰 기반 인증 방식에 대해 알아보고 이후 포스팅에서는 대표적인 토큰 기반 인증 방식인 JWT(JSON Web Token)에 대해 다뤄보도록 하겠습니다. 서버(session/cookie) 기반 인증과 토큰 기반 인증 기존 시스템에서는 서버 기반의 인증 방식을 사용하였다. 하지만 시스템의 규모가 커지면서 서버 기반의 인증 방식에 한계점이 보이기 시작하였고, 토큰 기반 인증 방식이 등장하게 되었다. 현재 API를 이용한 웹 서비스를 개발할 때, 토큰을 사용하여 사용자들의 인증 작업을 처리하는 것이 널리 사용되고 있다. 서버..