분류 전체보기 11

[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

[JWT] JWT 토큰 이란?

1. 인증(Authentication)이란?인증(Authentication)은 시스템이나 서비스가 사용자가 누구인지 확인하는 과정사용자가 주장하는 신원이 실제로 그 사람인지 확인2. JWT 토큰이란?JWT (JSON Web Token) 는 이름 그대로 JSON 형식의 데이터를 안전하게 전달하기 위한 토큰이다주로 로그인 인증, 권한 부여, 사용자 정보 전달 등에 사용되며, 토큰 자체에 필요한 정보(Claims)를 포함하고 있어서 별도의 서버 저장소 없이도 인증 처리가 가능한 Self-Contained 구조이다.주요 특징Self-contained: 토큰 자체에 인증 정보가 포함되어 있음Stateless: 서버가 별도로 세션을 저장하지 않아도 됨빠른 처리: DB 조회 없이 토큰만으로 인증 가능2.1 JWT의 ..

WEB 개발 2025.06.01

[FastAPI] CRUD API 구현 (SQLAlchemy, RESTful API)

FastAPI + RESTful API 구현이전 회사에서 FastAPI로 개발을 하였으나, RESTful 하지 않게 설계도 하였고 정리도 해볼겸 간단한 CRUD API를 RESTful 하게 구현 해보려 한다. ▶ RESTful API 에 관련된 내용은 이전 블로그 참고2025.05.20 - [WEB 개발] - REST, REST API, RESTful API REST, REST API, RESTful API개요REST, REST API, RESTful 특징1. REST 란?REST는 REpresentational State Transfer 의 약자입니다.REST의 정의REST는 자원을 이름(URI)으로 표현하고, 해당 자원에 대한 행위(HTTP Method)를 통해 상호작용하는 아키텍mayhun.tis..

WEB 개발 2025.05.27

REST, REST API, RESTful API

개요REST, REST API, RESTful 특징1. REST 란?REST는 REpresentational State Transfer 의 약자입니다.REST의 정의REST는 자원을 이름(URI)으로 표현하고, 해당 자원에 대한 행위(HTTP Method)를 통해 상호작용하는 아키텍처 스타일입니다. URI와 URL의 차이점?URL은 Uniform Resource Locator로 인터넷 상 자원의 위치를 의미하고, URI는 Uniform Resource Identifier로 인터넷 상의 자원을 식별하기 위한 문자열 구성으로,URI는 URL을 포함하게 됨.즉, URI가 URL보다 포괄적인 범위라고 할수 있습니다. REST의 특징1. 클라이언트 - 서버 구조 (Server - Client)자원이 있는 쪽이 S..

WEB 개발 2025.05.20

파이썬으로 MS Word 문서 작성하기(python-docx)

이전 회사에서 실제로 구현했던 python-docx를 활용한 Word 보고서 자동화 방법을 정리해보려고 한다.보고서 내용에는 데이터에 대한 여러 정보들을 정형화된 틀(template)에 작성하여 docx 문서로 만든 후 pdf로 사용자에게 전달하는 방식을 선택했다. 1. python-docx란?python-docx는 Python에서 Microsoft Word 문서(.docx)를 생성하고, 수정할 수 있도록 도와주는 라이브러리이다. 보고서 자동화, 템플릿 기반 문서 생성, 문서 파싱 등 다양한 용도로 활용된다.2. python-docx의 기본 구조Word 문서 계층 구조더보기Document ├── Paragraph (본문 문단) │   └── Run (문장/단어 스타일 단위) ├── Table (표) │ ..

Python 2025.04.07

[Python] 학식 봇 만들기(Crawling, Slack, Webhook)

이전에 학식 봇을 만든적이 있다. 이유는 사실 별 생각 없이 학식을 먹을지, 메뉴를 보고 별로다 생각이 들면 외부 음식점을 갈지 하곤 했는데 매일 학식 확인하는 페이지를 들어가 확인하는 것도 귀찮았다.  코드는 유실되어 없지만 지금 시점에서 재구현을 해보려 한다.  모교의 학식 메뉴 확인하는 페이지 구성은 이렇다. 현재 종강을 하여 메뉴가 없다..그렇다면 교직원 식당으로 학식봇(교식봇)을로 구성하겠다.   Selenium 기본 코드크롤링은 selenium을 통해 할것이다. 크롤링에는 requests를 통한 정적 크롤링도 가능하겠지만, 해당 페이지는 동적으로 동작하는 클라이언드 사이드 렌더링 되는 페이지이기 때문이다. 라이브러리 installpip install selenium webdriver_manag..

Python 2024.12.27

[Ubuntu] Ubuntu WOL(Wake On Lan) 설정

0. 개요sudo apt-get install ethtool wakeonlan집에서도 미니 PC로 우분투 홈서버를 운영중이고, 회사에서도 IDC가 아닌 외부에 서버를 운영 중이다. 홈서버는 매일 켜둘 필요는 없고, 회사 서버는 전기 공사 등으로 인해 서버를 종료 후 서버를 켜줄 인력은 있지만, 서로 편하지 않아 WOL을 사용해보려고 한다.더보기WOL (Wake On Lan) 이란 Lan(Network)을 통해 컴퓨터를 원격으로 켜는 기술을 말한다. WOL 조건WOL이 모든 PC에서 동작한다고는 할수 없으나, 메인 보드가 WOL을 지원해야한다. 요즘 메인 보드는 WOL을 대부분 다 지원을 하고 있다.  바이오스 설정에서 WOL을 활성화 해두어야 한다.1. Ubuntu WOL 설정설정 사양더보기서버: Ubu..

Ubuntu 2024.12.27

[DB] MongoDB 설치

sudo systemctl start mongodMongoDB 란?MongoDB는 NoSQL 데이터 베이스로, JSON과 유사한 BSON(Binary JSON) 형식으로 데이터를 저장한다. 관계형 데이터베이스(RDBMS)와 달리, 고정된 스키마를 가지지 않아 대량의 비정형 데이터를 저장하고 처리하는데 사용된다. 데이터 구조MongoDB는 데이터를 컬렉션(Collection)이라는 컨데이터에 저장하며, 각 컬렉션은 여러 문서(Document)로 구성된다. 문서 내에는 필드(Field)와 값(Value)이 BSON(Binary JSON) 형식으로 저장된다. MongoDB 특징스키마의 유연성: 스키마고정된 스키마를 요구하지 않으며 각 문서(Document)는 독립적으로 저장되며, 동일한 컬렉션(Collecti..

DB 2024.12.22

[DB] MySQL 설치 및 초기 세팅

1. MySQL 설치# apt 업데이트sudo apt update# mysql 설치sudo apt install mysql-server# Mysql 방화벽 포트 열기sudo ufw allow mysql# MySQL 실행sudo systemctl start mysql# 서버 부팅시 MySQL 자동 시작sudo systemctl enable mysql2. 초기 세팅 - root 계정 초기 설정초기 설정# MySQL 접속sudo mysql -u root# root 계정 비밀번호 재설정ALTER USER 'root'@'localhost' IDENTIFIED BY '[비밀번호]';# 변경 사항 적용FLUSH PRIVILEGES; 권한 변경 (외부 접속 허용)# MySQL 접속sudo mysql -u root -p..

DB 2024.12.22