본문 바로가기

전체 글20

[DRF] JWT로 회원가입, 로그인 기능 구현 Django DRF 라이브러리를 사용하여 JWT 회원가입, 로그인 기능을 구현해보았다. 먼저 SimpleJWT docs를 통해 기본 환경설정을 해주었다. https://django-rest-framework-simplejwt.readthedocs.io/en/latest/getting_started.html Getting started — Simple JWT 5.2.2.post13+g960ab2b documentation Cryptographic Dependencies (Optional) If you are planning on encoding or decoding tokens using certain digital signature algorithms (i.e. RSA and ECDSA; visit Py.. 2023. 3. 7.
(오류 해결)Docker로 띄운 MySQL 컨테이너 Django와 연동하기 로컬에서 띄운 Django와 Docker로 MySQL 컨테이너를 생성하여 연동하는 과정에서 여러가지 이슈가 생겨 포스팅을 한다. 로컬에 설치되어있는 MySQL은 5.7 버전이라 8.0버전의 MySQL 서버를 독립적으로 설치하고 관리하고 싶어 컨테이너를 생성하였다. 먼저 Docker 컨테이너 생성 과정이다. 도커가 설치되어있고, mysql 이미지를 가져온 상태라고 가정한다. docker run -d --name mysql-db \ -e MYSQL_ROOT_PASSWORD={PASSWORD} \ -p 3307:3306 mysql:latest 터미널에서 위의 명령어를 입력하면 컨테이너가 생성된다. 명령어를 자세히 살펴보면 -d : 백그라운드에서 실행 가능하도록 --name : 컨테이너 이름 -e : 환경변수 .. 2023. 3. 6.
Redis란? Redis란? Key, Value 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터베이스 관리 시스템이다. 캐시 시스템으로서 동일한 기능을 제공하며 영속성, 다양한 데이터 구조와 같은 부가적인 기능을 지원한다. DB, Message Queue, Shared Memory 용도로 사용된다. 레디스는 모든 데이터를 디스크에 쓰지 않고 메모리에 저장하고 조회한다. 그래서 작업속도가 상당히 빠르며 인-메모리 구조의 데이터베이스라고 한다. Cache의 개념 캐시는 DB에서 한 번 읽어온 데이터를 다음에 다시 사용할 때 DB에서 찾지 않고 바로 가져올 수 있도록 해주는 임의의 공간을 말한다. 즉 이 임의의 공간에 저장해놓고 다음에 사용할 때 빠르게 가져올 수 있다. 그래서 DB의 부하를.. 2023. 2. 26.
CORS에 대한 이해 CORS(Cross-Origin Resource Sharing)를 이해하기 위해 이번 포스팅을 진행하려고 한다. CORS는 교차 출처 리소스 공유라는 의미로 여기서 '교차 출처'를 다른 의미로 해석하면 '다른 출처' 라고 생각할 수 있다. 즉 다른 출처간의 리소스를 공유하는 정책을 의미한다. 먼저, 출처(Origin)에 대해 자세하게 알아보자. Origin (출처) Origin은 URL에서 프로토콜, 도메인, 포트번호를 합친 것을 말한다. 서버의 위치를 찾아가기 위해 필요한 가장 기본적인 것들을 합쳐놓은 것이다. https://techgm28.tistory.com:80/posts/2 다음의 URL을 살펴보면 https:// 이부분이 프로토콜(scheme)에 해당되며 techgm28.tistory.com이.. 2023. 2. 25.
에라토스테네스의 체 에라토스테네스의 체는 소수를 찾는 방법이다. 고대 그리스 수학자 에라토스테네스가 발견한 것으로 마치 체로 숫자를 걸러내는 것처럼 보여 '에라토스테네스의 체' 라고 불린다. 먼저 소수란, 1보다 큰 자연수 중 1과 자기자신만을 약수로 가지는 수이다. 예를 들어 2, 3, 5, 7은 약수인데 이들은 모두 1과 자기자신으로만 나누어질 수 있다. 반면에 4는 1과 자기자신 4 말고도 2로 나누어지기 때문에 소수가 아니다. '에라토스테네스의 체'의 원리에 대해서 알아보자. 알고리즘 설명 1부터 120까지의 숫자중 소수를 찾아보자. 1) 1부터 소수를 구하고자하는 구간인 120까지 나열한다. 2) 먼저 1을 제거한다. 3) 2는 소수이므로 Prime Numbers에 기입 4) 자기자신을 제외한 2의 배수를 모두 지.. 2023. 2. 24.
RESTful API 프론트엔드와 백엔드 간의 소통이 원활해지려면 상호간의 엔드포인트인 API가 중요하다. 얼마나 명확하고 직관적이게 작성하냐에 따라 이해도가 달라지기 때문이다. 그래서 우리는 RESTful하게, 즉, 일종의 약속을 통해 API가 어떤 동작을 수행하는지 명확하게 작성하려고 노력해야한다. 여기서 REST란 Representational State Transfer의 약자로 2000년, 로이 필딩(Roy Fielding)이 박사학위 논문에 소개된 API 아키텍처 가이드라인이다. 현재까지도 이 가이드라인을 지키기 위해 많은 사람들이 노력하고 있다. 가이드라인이기 때문에 안지킨다고 해서 에러가 발생하거나 그러진 않지만 개발자들이 API를 접했을 때 RESTful하게 작성되었을 것이라 생각하고 API를 대하기 때문에 지.. 2023. 2. 23.