python 5

[Django] JWT를 이용한 로그인/로그아웃 구현하기(feat. django-rest-framework-simplejwt)

Pre-requirementsJWT 인증과정JWT는 JSON Web token의 약자로, JSON 객체형태로 정보를 안전하게 전송하는 웹 토큰이다(자세한 설명은 여기).JWT도 토큰 기반 인증 방식이기에 인증 과정도 토큰 방식과 동일하다. JWT 내부에 디지털 서명이 포함되어 이 서명이 유효하다면 유저의 권한에 따라 응답을 반환한다. JWT이 어떤 과정을 통해 공격자(해커)에게 탈취된다면 공격자가 유저를 가장하고 서버에 접근할 수도 있다. 이를 방지하기 위해 JWT은 주로 몇 분에서 몇 시간정도의 짧은 만료기간을 가진다. 이는 유저에게 주기적으로 토큰을 재발급받아야 하는 번거로움을 준다.Refresh 토큰토큰 재발급 과정을 단순화하기 위해 토큰 기반 인증 방식은 접근을 위한 Access 토큰과 Acces..

Programming/Django 2023.09.11

[백준 으깨기] 1753 - 최단경로 (with. 다익스트라/Dijkstra)

문제 정보 1753번: 최단경로첫째 줄에 정점의 개수 V와 간선의 개수 E가 주어진다. (1 ≤ V ≤ 20,000, 1 ≤ E ≤ 300,000) 모든 정점에는 1부터 V까지 번호가 매겨져 있다고 가정한다. 둘째 줄에는 시작 정점의 번호 K(1 ≤ K ≤ V)가www.acmicpc.net문제 쪼개기문맥 파악하기방향그래프가 주어지면 주어진 시작점에서 다른 모든 정점으로의 최단 경로를 구하는 프로그램을 작성하시오. 단, 모든 간선의 가중치는 10 이하의 자연수이다.입력 조건 확인하기첫째 줄에 정점의 개수 V(1 ≤ V ≤ 20,000)와 간선의 개수 E(1 ≤ E ≤ 300,000)가 주어진다. 모든 정점에는 1부터 V까지 번호가 매겨져 있다고 가정한다. 둘째 줄에는 시작 정점의 번호 K(1 ≤ K ≤ V..

Programming/Python 2023.08.24

[백준 으깨기] 2615 - 오목

문제 정보 2615번: 오목오목은 바둑판에 검은 바둑알과 흰 바둑알을 교대로 놓아서 겨루는 게임이다. 바둑판에는 19개의 가로줄과 19개의 세로줄이 그려져 있는데 가로줄은 위에서부터 아래로 1번, 2번, ... ,19번의 번호www.acmicpc.net문제 쪼개기문맥 파악하기오목은 바둑판에 검은 바둑알과 흰 바둑알을 교대로 놓아서 겨루는 게임이다. 바둑판에는 19개의 가로줄과 19개의 세로줄이 그려져 있는데 가로줄은 위에서부터 아래로 1번, 2번, ... ,19번의 번호가 붙고 세로줄은 왼쪽에서부터 오른쪽으로 1번, 2번, ... 19번의 번호가 붙는다.같은 색의 바둑알이 연속적으로 다섯 알을 놓이면 그 색이 이기게 된다. 여기서 연속적이란 가로, 세로 또는 대각선 방향 모두를 뜻한다. 하지만 여섯 알 ..

Programming/Python 2023.08.01

[Python] 파이썬에서 반올림하기 - round()와 decimal 모듈

round() 파이썬의 내장 함수인 round()를 이용하다가 흥미로운 점을 발견했다. 0.5을 소수점 첫째자리에서 반올림하면, 1이 되는 것이 상식으로 통한다. 하지만 파이썬에서는 그 답이 0이 된다. ~ python >>> f = 0.5 >>> round(f) 0 반올림을 이용한 백준 문제(18110 solved.ac) - https://www.acmicpc.net/problem/18110 18110번: solved.ac 5명의 15%는 0.75명으로, 이를 반올림하면 1명이다. 따라서 solved.ac는 가장 높은 난이도 의견과 가장 낮은 난이도 의견을 하나씩 제외하고, {5, 5, 7}에 대한 평균으로 문제 난이도를 결정한다. www.acmicpc.net 은행원의 반올림(Banker's Round..

Programming/Python 2023.07.11

[웹 스크래핑] Scrapy + playwright를 이용한 유튜브 스크래핑

Scrapy Scrapy는 대표적인 웹 스크래핑 도구로, 파이썬에서 사용 가능하다. 스크래핑(scraping)은 날카롭거나 예리한 도구를 이용해 표면에 붙은 어떤 것을 떼어내는 행위를 뜻한다. 이와 비슷하게, 웹 스크래핑(web scraping)은 웹 사이트로부터 데이터를 추출해내는 행위를 뜻한다. 웹 스크래핑은 방대한 웹 사이트의 데이터를 손쉽게 모을 수 있다는 장점이 있지만, 타인의 콘텐츠를 무단으로 도용할 수 있다는 단점도 존재한다. 특히 브라우저를 통해 사이트를 접속할 경우, 웹 서버에서 접속자가 스크래핑 봇(bot)인지, 일반 사용자인지 구분하기 어렵다. 이를 이용해 Selenium은 CI/CD에서 테스트 도구로 활용되기도 한다. Scrapy 프로젝트 생성 간단한 scrapy 프로젝트를 만들어 ..

반응형