공부/Django

    Django + React로 로그인 시스템 구현하기 / Pt. 3) 토큰 저장하기

    Pt. 3) 토큰 저장하기 파트 2에서는 프론트엔드에서 로그인 성공 여부를 확인하고 토큰을 받아오는 데에 성공했다. 토큰은 서버가 저장하는 것이 아니라, 클라이언트가 저장했다가 서버에게 보내면 서버는 확인만 해 준다고 배웠다. 그러므로 이번에는 클라이언트가 토큰을 어떻게 저장하는지 알아보고, 그 중 하나를 선택해서 직접 실행해 보자. JWT는 어디에 저장해야 하는가? 토큰을 받으면 어디에 저장해야 할까? 먼저, JavaScript 내부 변수에 저장하면 어떻게 될지 생각해 보자. JavaScript가 저장하는 변수는 휘발성이기 때문에 웹 페이지를 새로고침하는 순간 사라지게 된다. 토큰을 가지고 있으면 액세스 정보를 저장할 수 있다는 것이 한 가지 장점인데, 새로고침할 때마다 또는 이동할 때마다 액세스 정보..

    Django + React로 로그인 시스템 구현하기 / Pt. 1) Django JWT 설정하기

    Pt. 1) Django JWT 설정하기 1인 프로젝트를 진행하는 데에 있어서 프론트엔드는 평소에 하고 있어서 문제가 없었지만 백엔드는 평소에 많이 만진 적이 없어서 로그인 기능을 구현하는 데부터 살짝 애를 먹었다. 일반적으로 개인이 진행하는 토이 프로젝트의 경우 그냥 DB에 username과 (암호화 된) password를 DB에 저장해서 lookup하는 정도로도 구현할 수 있지만, 로그인은 보안이 중시되는 작업인데 너무 허술해 보이기도 하고 회사에서 JWT로 인증 작업을 진행하던 걸 본 적이 있어서 JWT를 사용해서 본격적으로 해 보고자 했다. JWT가 무엇인지, 특히 인증 단계에서 JWT를 왜 쓰는지도 시간이 된다면 정리해 보고 싶다. 이하에서 진행하는 프로젝트는 이미 프로젝트를 위한 가상 환경 설..

    Django 초기 설정 - 가상 환경부터 프로젝트 생성까지

    개인 웹 프로젝트를 진행함에 있어 백엔드로 Django를 선택했고, 기본적인 설정을 하는 방법을 글로 작성해서 나중에 헷갈리지 않으려고 한다. 모든 터미널 코드는 macOS 환경을 기준으로 작성되었음을 미리 알린다. 가상 환경 설정하기 먼저, 프로젝트 관리의 편의성을 위해 가상 환경을 설정해 주도록 하자. 설정하기에 앞서 가상 환경이란, 개별의 파이썬 프로젝트들이 서로 다른 버전의 라이브러리를 사용할 수 있도록 하는 환경을 쉽게 구축할 수 있게 해 주는 것이다. 둘 이상의 파이썬 프로젝트가 같은 라이브러리를 사용하지만 버전은 서로 다를 수 있는데, 이러한 환경에서의 개발을 도와주는 것이다. 만약 이 글을 보고 있는 당신이 하나의 컴퓨터로 하나의 프로젝트만 평생 개발할 것이라면 가상 환경은 필요하지 않겠지..