사용자 세션의 흐름 사용자가 최초로 서버에 접속하면, 서버는 사용자를 식별하기 위해 세션 ID를 생성하고 이를 사용자에게 전달합니다. 이 세션 ID는 쿠키를 통해 사용자의 브라우저에 저장됩니다. 사용자가 로그인을 시도하면, 서버는 사용자의 아이디와 비밀번호를 확인하고, 이 정보가 정확하다면 해당 사용자의 세션 데이터에 로그인 정보를 저장합니다. 서버는 필요에 따라 세션 데이터에 추가적인 속성값을 저장할 수 있습니다. 예를 들어, 사용자의 아이디나 권한 등의 정보를 저장할 수 있습니다. 사용자가 서버에 요청을 보낼 때마다 서버는 세션 ID를 통해 사용자의 세션 데이터를 확인하고, 이를 통해 사용자를 식별하고 인증합니다. 로드 밸런싱(Load Balancing) 로드 밸런싱은 사용자의 요청을 여러 서버로 분..
세션(Session) 세션은 웹 사이트에 접속한 사용자를 서버측에서 식별하기 위해 사용하는 메커니즘입니다. HTTP는 기본적으로 상태를 유지하지 않는(stateless) 프로토콜이기 때문에, 사용자의 상태 정보를 서버측에서 유지하기 위해 세션이 필요합니다. 사용자가 웹 사이트에 로그인하면, 서버는 사용자의 ID와 같은 정보를 세션에 저장하고, 해당 세션에 대한 고유한 ID인 세션 ID를 생성하여 사용자에게 전달합니다. 이후 사용자가 요청을 보낼 때마다 해당 세션 ID를 포함시켜 서버에 전달하고, 서버는 이를 통해 사용자를 식별하고 상태 정보를 유지합니다. 세션은 로그인 상태 유지, 쇼핑 카트 정보 저장, 사용자별 페이지 커스터마이징 등 다양한 목적으로 사용됩니다. 세션은 사용자가 로그아웃하거나 일정 시간..
이 두 가지는 보안 시스템에서 핵심적인 역할을 담당하며, 서로 다르지만 밀접한 관련이 있는 개념입니다. 인증은 사용자의 신원을 확인하는 첫 단계이며, 인가는 그 다음 단계로, 인증된 사용자에게 어떤 서비스를 제공할 것인지를 결정하는 단계입니다. 인증(Authentication) 인증은 사용자가 누구인지 확인하는 과정입니다. 이는 사용자가 자신이 주장하는 사람임을 증명하는 것을 의미합니다. 일반적으로 사용자 이름과 비밀번호를 입력하는 로그인 과정이 대표적인 인증 과정입니다. 인증 과정을 통해 시스템은 사용자의 신원을 확인하고, 이후의 서비스 제공을 위한 기초를 마련합니다. 인가(Authorization) 인가는 이미 인증된 사용자가 어떤 서비스나 리소스에 접근할 수 있는 권한이 있는지를 결정하는 과정입니다..
JWT (JSON Web Token)는 웹 표준 (RFC 7519)으로서, 두 개체 사이에서 JSON 객체를 안전하게 전송하기 위해 설계된 작은 디지털 토큰입니다. 이는 정보를 안전하게 전송하는 데 사용되며, 이 정보는 디지털 서명을 통해 검증 및 신뢰성을 보장받을 수 있습니다. JWT는 웹 보안과 인증, 인가에 있어서 매우 중요한 역할을 하므로, 이에 대한 깊은 이해가 필요합니다. JWT의 구성 JWT는 세 부분으로 구성되어 있습니다: 헤더 (Header), 페이로드 (Payload), 시그니처 (Signature) 헤더: 토큰의 타입과 해싱 알고리즘을 정의합니다. 페이로드: 전송할 데이터를 담고 있습니다. 이 데이터는 클레임 (Claim)이라는 표현을 사용하며, 이 클레임은 세 가지 유형이 있습니다 ..