WEB/CS
앞 포스팅에서 세션 방식의 인증과, 성능 개선을 위한 방법들에 대해서 다루어 보았었는데 이번에는 언급했던 토큰 인증 방식에 대해서 알아보려고 한다. 토큰 인증 세션 인증 방식과 달리 인증이 완료되었을 시 인증 정보를 서버에 저장하는 것이 아니라 클라이언트에 저장하는 것이다. 인증을 완료하면 서버는 인증완료 의미의 토큰을 클라이언트에게 부여한다 클라이언트는 API 요청 시, 토큰을 HTTP 헤더에 붙여서 보내게 되며 서버는 토큰을 바탕으로 인가처리를 한다. 토큰은 암호화되어 클라이언트에 저장된다. 웹 이외에 쿠키와 세션을 이용할 수 없는 Application에서의 인증을 구현하기에도 유리하다. 토큰은 일반적으로 유효 시간(Expired Time)을 설정하여 발급하여 기간이 지날 시 사용할 수 없게 된다. ..
쿠키 & 세션 방식의 한계 웹 Application 서버측에 저장한다는 것은 서버 메모리에 인증 정보를 저장한다는 것. 세션은 사용자의 인증 정보를 서버에 저장한다. 서버의 과부하 유발. 특히 동시 사용자가 많아질수록 서버의 메모리를 비례하여 사용하게 된다. 그렇다면 쿠키와 세션 사용 방식을 보완해보도록 하자. 1. 인증 서버의 메모리 증설 (Scale Up) 가장 단순하고도 확실한 방법이다. 메모리가 부족하면 메모리를 늘리면 된다. 물리적으로 서버 컴퓨터의 RAM을 업그레이드 시켜서 해결 그렇지만 물리적으로 성능을 높이는 데에는 한계가 있고, 사용자가 더 많아질수록 한계가 명확하다. 이러한 방법을 Scale-Up, 수직 스케일 방식이라고 부른다. 2. 인증 서버의 수 증가 (Scale Out) 인증 서..
인증과 인가 우리가 웹 서비스를 사용하다 보면 흔히 보이는 것이 로그인이다. 로그인을 해야 해당 웹 서비스를 사용 가능한 경우가 많다. 로그인을 만들어둔 이유가 무엇일까? 우리가 허용한 사람들에 한해서만 서비스를 이용할 수 있게 하기 위해서이다. 개발자들은 이러한 일련의 과정을 위해 인증과 인가의 개념을 도입하여 어플리케이션에 도입한다. 인증 (Authentication) ID와 비밀번호로 로그인 하여 신분증을 받는 과정 인증은 클라이언트가 누구인지를 확인하는 과정이다. 웹 같은 경우에는 보통 아이디와 비밀번호, 혹은 그 외의 사용자에게 요구하는 정보를 통해 인증 과정을 거치며, 사용자가 아니더라도 어떠한 장치나 클라이언트 프로그램을 Key 등을 이용하여 사용자 주체를 판단하는 과정을 통틀어서 인증이라고..
아래의 문구는 갓 웹개발을 입문했을 때 나를 아주아주아주 괴롭혔던 친구이다. 아마 웹 개발자라면 이녀석과 한바탕 싸운 기억이 한번쯤은 있을 것이다. Access to XMLHttpRequest at 'http://localhost:3000/tokens/phone' from origin 'http://127.0.0.1:5500' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: The 'Access-Control-Allow-Origin' header has a value 'http://127.0.0.1:5510' that is not equal to the supplied origi..