분류 전체보기 19

[FastAPI] OAuth2.0 소셜 로그인 구현 (Naver, Kakao, Google) #1

지난 포스팅에서 OAuth2.0에 대해 알아 보았고, 이번 포스팅에서는 간단하게 소셜 로그인을 구현 하려고 한다. 각 로그인 API 설정을 받아야 한다. 1. Googlehttps://console.cloud.google.com/projectselector2/apis/dashboard?supportedpurview=project Google 클라우드 플랫폼로그인 Google 클라우드 플랫폼으로 이동accounts.google.com 1. Google 클라우드 플랫폼에 접속하여 프로젝트가 없다면 프로젝트를 만들어 준다. 2. 사용자 인증 정보 - 사용자 인증 정보 만들기 3. 이후 동의 화면 구성을 만든다. 4. Google 계정이 있는 모든 사용자가 사용 가능하도록 외부로 설정한다. 5. 동의화면은 구..

WEB 개발 2025.09.03

[OAuth] OAuth2.0 이란?

대부분의 서비스에는 회원가입과 로그인 기능이 필수적으로 포함된다. 가장 기본적인 방식은 ID와 비밀번호를 직접 받아 저장하는 것이지만, 이 방식만으로는 사용자 편의성과 서비스 보안을 모두 충족하기 어렵다.이를 보완하기 위해 많은 서비스가 OAuth 2.0을 도입하고 있다. OAuth가 무엇인지 글을 써보려 한다.1. OAuth(Open Authorization)의 정의OAuth는 인터넷 사용자들이 비밀번호를 직접 제공하지 않고도, 다른 웹사이트나 애플리케이션이 특정 계정의 자원(Resource)에 접근할 수 있도록 허용하는 인증(Authorization) 프로토콜이다.즉, "내 계정 비밀번호를 알려주지 않고도, 내가 허락한 범위 내에서만 다른 서비스가 내 데이터를 쓸수 있도록 해주는 표준 방식" 이다.2..

WEB 개발 2025.09.02

[FastAPI] FileUpload, FileDownload (feat.BackgroundTasks)

FastAPI에서는 요청 처리 후 백그라운드에서 실행할 작업을 쉽게 등록할 수 있도록 BackgroundTasks 기능이 있다. 보통 이메일 발송이나, 로그 기록 등에 많이 쓰이지만, 파일 업로드/다운로드 처리에도 유용하게 사용할 수 있다. FastAPI에서 파일 업로드 다운로드 기능을 구현하면서, 여러 파일을 다운로드 받을때 files.zip으로 압축하여 응답을 보낸후 압축 파일은 삭제하는 구조를 BackgroundTasks로 구현해보려 한다.1. 요구사항파일업로드 (/api/upload)확장자는 .txt, .png 만 받을것업로드 가능한 파일 크기는 16MBuploads 폴더에 저장파일 다운로드 (/api/download)두 개이상 요청 가능하며고 ','로 파일을 구분하여 요청한다.두 개 이상 요청시..

WEB 개발 2025.08.30

[Github Action] AWS에 자동 배포 하기

개발을 진행하고 배포 자동화를 위해 Docker Hub, Github Action으로 자동 배포를 구현해보려 한다. 1. Docker Hub 설정Docker hub에선 크게 두 가지를 해야한다. 1.access token 생성2. Repository 생성 개인 프로젝트로 진행하기에, private로 설정했다. 2. Actions secrets 설정자동 배포를 위해서는 dockerhub username, token, ec2 정보등 Repository에 저장되어야 한다.New repositroy secret을 눌러 등록해 준다.3. EC2 서버 Docker 설치Docker 설치1. 패키지 리스트 최신으로 업데이트sudo apt update 2. 도커 다운로드를 위해 필요한 https 관련 패키지 설치su..

WEB 개발 2025.08.25

[AWS] EC2 인스턴스 생성하기

1년차 개발자지만, on-premise 환경만 사용해봐서, AWS 경험이 없어 DockerHub와 github actions를 사용해 자동 배포를 위해 AWS를 사용해 보려한다.EC2(Elastic Compute Cloud)란?AWS(Amazon Web Services)클라우드에서 온디맨드 확장 가능 컴퓨팅 용량을 제공한다.하드웨어 비용을 절감하여 애플리케이션을 빠르게 개발하고 배포할 수 있도록 한다.EC2 인스턴스 생성하기1. 인스턴스 시작AWS Console > EC2 > 인스턴스 시작 인스턴스 이름 설정 2. 인스턴스 AMI(Amazon Machine Image) 선택AMI는 AWS에서 EC2 인스턴스를 생성할때 사용하는 서버 운영체제 + 소프트웨어 환경이 미리 세팅된 템플릿이다.즉, 서버를 시작..

WEB 개발 2025.08.25

[FastAPI] 비밀번호 변경 구현하기(feat. Redis, SMTP)

지난 포스팅에 python으로 이메일 보내기를 구현했었다.2025.06.02 - [분류 전체보기] - [Python] 파이썬으로 이메일 발송하기 [Python] 파이썬으로 이메일 발송하기최근 FastAPI로 백엔드를 구현하면서 회원가입 인증, 비밀번호 변경 등 메일 자동화가 필요하여 파이썬으로 이메일 발송하는 방법에 대해 포스팅 하려한다. 이전 회사에선 gmail 워크스페이스를 사mayhun.tistory.comSMTP를 사용해서 웹에서는 회원가입 축하메일, 비밀번호 변경 이메일 인증번호 전송 등 다양한 분야에 사용할수 있다.오늘은 FastAPI에서 SMTP를 사용해 패스워드 변경 하는 로직을 구현하려고 한다.왜 Redis 인가?비밀번호 재설정 기능을 구현할때, 인증번호를 생성하고 이를 임시로 저장해둘 ..

WEB 개발 2025.07.25

[데이터 수집] selenium 사용하지 않고 데이터 수집하기

지난 글에서 네이버 영화 리뷰의 감성 분석을 하는 모델을 간단하게 만들어봤습니다. 2025.07.14 - [Data Science&AI] - [NLP] 네이버 영화 리뷰 데이터 감성분석 - LSTM [NLP] 네이버 영화 리뷰 데이터 감성분석 - LSTMLSTM을 사용하여 영화 리뷰 데이터의 감성 분석을 하려고 한다. 데이터셋 다운로드https://raw.githubusercontent.com/e9t/nsmc/master/ratings_train.txthttps://raw.githubusercontent.com/e9t/nsmc/master/ratings_test.txt 0. 필요 라mayhun.tistory.com이번엔 실제로 작성된 영화 리뷰를 수집하려고 합니다. 데이터 수집 방법에는 여러 방법이 있습..

Data Science&AI 2025.07.15

[NLP] 네이버 영화 리뷰 데이터 감성분석 - LSTM

LSTM을 사용하여 영화 리뷰 데이터의 감성 분석을 하려고 한다. 데이터셋 다운로드https://raw.githubusercontent.com/e9t/nsmc/master/ratings_train.txthttps://raw.githubusercontent.com/e9t/nsmc/master/ratings_test.txt 0. 필요 라이브러리 선언import pickleimport pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport reimport urllib.requestfrom konlpy.tag import Oktfrom tqdm import tqdmfrom tensorflow.keras.preprocessing.text impor..

Data Science&AI 2025.07.14

[Python] 파이썬으로 이메일 발송하기

최근 FastAPI로 백엔드를 구현하면서 회원가입 인증, 비밀번호 변경 등 메일 자동화가 필요하여 파이썬으로 이메일 발송하는 방법에 대해 포스팅 하려한다. 이전 회사에선 gmail 워크스페이스를 사용하고 있어, 본인도 gmail로 실행하려 한다 SMTP란?SMTP(Simple Mail Transfer Protocol)는 메일을 보내기 위한 표준 프로토콜이다. python에서는 기본 내장 모듈인 smtplib를 사용해 SMTP 서버와 연결하고 메일을 전송할 수 있다. 1. Gmail SMTP 설정기존에는 일반 비밀번호로 SMTP 로그인도 가능했지만, 2022년 Google 보안 정책 변경으로 인해 이제는 반드시 앱 비밀번호를 사용해야만 함.그렇지 않으면 SMTPAuthenticationError: 534 ..

카테고리 없음 2025.06.02

[FastAPI] JWT 로그인 로그아웃 구현 (SQLAlchemy, RESTful API, JWT)

이전 포스팅에서 Fast API로 기본적인 게시판에 대한 CRUD API를 구현하였고, 이번 포스팅에서는 JWT를 활용한 로그인, 로그아웃 API를 구현하려고 한다. ➡️이전글2025.05.27 - [WEB 개발] - [FastAPI] CRUD API 구현 (SQLAlchemy, RESTful API) [FastAPI] CRUD API 구현 (SQLAlchemy, RESTful API)FastAPI + RESTful API 구현이전 회사에서 FastAPI로 개발을 하였으나, RESTful 하지 않게 설계도 하였고 정리도 해볼겸 간단한 CRUD API를 RESTful 하게 구현 해보려 한다. ▶ RESTful API 에 관련된 내용은 이전mayhun.tistory.com2025.06.01 - [WEB 개발..

WEB 개발 2025.06.02