일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 인공지능모델학습
- 엘리스AI트랙데모데이
- Python
- 웹개발포트폴리오
- 부트캠프프로젝트발표
- reactStrictMode
- aws_s3
- 엘리스 AI 트랙
- 엘리스
- 블로그와 친해지기
- pymupdf
- devmode
- 팀프로젝트
- 코딩 국비지원
- 엘리스AI트랙
- fabricjs
- 코딩교육
- 코딩부트캠프
- FLASK
- tempfile
- after_this_request
- 코딩배우기
- 와탭랩스
- 프로젝트마무리
- 웹개발프로젝트
- 개발자 채용설명회
- 코딩국비지원
- REACT
- 이미지처리프로젝트
- 프레임워크vs라이브러리
Archives
- Today
- Total
자몽이 조아
[diykitten] 사용하고 있는 파이썬 라이브러리 정리 본문
반응형
Python을 사용하여 다양한 기능을 개발하면서 여러 개의 모듈을 추가하게 되었다. 이미지 처리, PDF 생성, S3 파일 관리, 웹 API 개발 등 여러 요소를 다루면서, 각 모듈이 프로젝트에서 어떤 역할을 하는지 정리하고, 왜 추가하게 되었는지 설명하고자 한다.
1. Flask - 웹 API 개발
✨ 추가 이유
웹 API를 통해 클라이언트와 서버 간 데이터를 주고받기 위해 Flask를 사용했다. Flask는 가볍고, 빠르게 REST API를 만들 수 있는 프레임워크로, 프로젝트의 핵심 백엔드 역할을 한다.
🔍 사용 예시
@app.route('/generate-png/<file_id>', methods=['GET'])
def generate_png_api(file_id):
return send_file(png_path, as_attachment=True, download_name="output.png")
📦 설치
pip install flask flask-cors
2. Pillow (PIL) - 이미지 처리
✨ 추가 이유
PNG 파일에 워터마크 추가, 회전, 크롭, 투명도 조정 등의 작업을 위해 Pillow를 사용했다. ImageDraw, ImageFont, ImageOps 등을 활용하여 텍스트를 이미지 위에 삽입할 수 있다.
🔍 사용 예시
img = Image.open(png_path).convert("RGBA")
draw = ImageDraw.Draw(img)
draw.text((50, 50), "Watermark", font=font, fill=(150, 150, 150, 100))
📦 설치
pip install pillow
3. Matplotlib - 데이터 시각화 및 이미지 생성
✨ 추가 이유
CSV 데이터를 PNG 이미지로 변환하는 과정에서 matplotlib의 imshow()를 사용하여 픽셀 아트 디자인을 생성했다.
🔍 사용 예시
plt.imshow(color_matrix, aspect="auto")
plt.savefig("output.png", format="png")
📦 설치
pip install matplotlib
4. NumPy - 고속 배열 연산
✨ 추가 이유
HEX 색상 데이터를 RGB 배열로 변환할 때, numpy를 활용하여 효율적인 연산을 수행했다.
🔍 사용 예시
np.array([[hex_to_rgb(str(color)) for color in row] for row in data.values])
📦 설치
pip install numpy
5. PyMuPDF (fitz) - PDF 생성 및 워터마크 추가
✨ 추가 이유
PNG를 PDF로 변환하고, PDF에 워터마크를 추가하기 위해 PyMuPDF를 사용했다. 기존 reportlab 대신 더 빠르고 가벼운 PDF 처리 기능을 제공하는 PyMuPDF를 선택했다.
🔍 사용 예시
doc = fitz.open(pdf_path)
page = doc[0]
page.insert_text((100, 100), "Watermark", fontsize=30, rotate=30)
📦 설치
pip install pymupdf
6. Boto3 - AWS S3 파일 업로드 및 다운로드
✨ 추가 이유
CSV 파일을 S3에서 불러와 PNG 및 PDF로 변환한 후, 다시 S3에 저장해야 했기 때문에 boto3를 사용했다.
🔍 사용 예시
s3.download_file(bucket_name, f"csv/{file_id}.csv", temp_file_path)
s3.upload_file(output_file, bucket_name, f"pdf/{file_id}.pdf")
📦 설치
pip install boto3
7. Flask-CORS - Cross-Origin 요청 허용
✨ 추가 이유
클라이언트(React 등)에서 Flask API에 요청할 때, CORS 오류(보안 정책 문제)를 해결하기 위해 추가했다.
🔍 사용 예시
CORS(app)
📦 설치
pip install flask-cors
반응형
'개인프로젝트' 카테고리의 다른 글
[aws ec2, crontab]자동 재배포 도입 후기 (0) | 2025.02.10 |
---|---|
[fabricjs]"Trying to initialize a canvas that has already been initialized" (0) | 2025.02.08 |
Comments