본문 바로가기
728x90
반응형

python419

의존성 주입(Dependency Injection)과 FastAPI에서의 활용 의존성 주입(Dependency Injection)과 FastAPI에서의 활용안녕하세요! 오늘은 의존성 주입(Dependency Injection)의 개념과 이를 FastAPI에서 어떻게 활용할 수 있는지 알아보겠습니다. Python과 FastAPI를 처음 접하시는 분들도 이해하기 쉽도록 예제를 통해 설명드리겠습니다.의존성 주입이란?의존성 주입(Dependency Injection)은 소프트웨어 디자인 패턴 중 하나로, 객체 간의 의존 관계를 외부에서 주입해주는 방식을 말합니다. 이를 통해 코드의 유연성, 재사용성, 테스트 용이성을 높일 수 있습니다.왜 필요한가요?결합도 감소: 모듈 간의 의존성을 낮춰 코드 변경 시 영향 범위를 줄입니다.테스트 용이성: Mock 객체를 주입하여 단위 테스트를 쉽게 작성할.. 2024. 11. 1.
Python을 이용한 POST 요청 보내기 - 웹사이트에 로그인하는 방법 Python을 이용해 특정 웹사이트에 로그인하는 방법에 대해 알아보려고 합니다. 웹 스크래핑이나 자동화된 작업을 하다 보면 특정 웹페이지에 로그인해야 할 때가 종종 있는데요, Python의 requests 라이브러리를 사용하면 생각보다 쉽게 해결할 수 있답니다. 그럼 시작해 볼까요?1. 준비물: requests 라이브러리 설치하기먼저, Python에서 HTTP 요청을 보내기 위해 필요한 requests 라이브러리를 설치해야 해요. 터미널이나 명령 프롬프트에서 아래 명령어를 실행해 주세요.$ pip install requests이제 준비가 되었습니다. 아주 간단하죠?2. 목표: POST 요청을 이용해 로그인하기이번에 우리가 할 작업은 https://test.co.kr 이라는 URL로 POST 요청을 보내는.. 2024. 9. 30.
[Selenium] 셀레니움으로 크롤링 할 때 시크릿 모드 브라우저 열기 [Selenium] 셀레니움으로 크롤링 할 때 시크릿 모드 브라우저 열기크롬 브라우저 옵션에 --incognito 플래그를 추가하면 간단하게 시크릿 모드로 실행 시킬 수 있습니다 !! 예제코드from selenium import webdriverfrom selenium.webdriver.chrome.options import Options# 크롬 옵션 설정chrome_options = Options()chrome_options.add_argument("--incognito") # 시크릿 모드 옵션 추가# 크롬 드라이버 경로 설정 (자신의 경로로 수정)driver_path = "/path/to/chromedriver" # 크롬 드라이버 경로를 설정하세요.# 드라이버 생성 (옵션 포함)driver = w.. 2024. 9. 11.
[Python & FastAPI] FastAPI와 Gunicorn을 사용한 서버 설정 (systemctl 에 설정하기) [Python & FastAPI] FastAPI와 Gunicorn을 사용한 서버 설정 (systemctl 에 설정하기) FastAPI와 Gunicorn을 연동하여 서버를 설정을 해보았습니다 !Gunicorn 시스템 서비스 파일 설정우선, FastAPI 애플리케이션을 Gunicorn과 함께 실행하기 위해 시스템 서비스 파일을 설정해야 합니다. 아래는 systemd에서 사용하는 서비스 파일의 예제입니다. vi /etc/systemd/system/gunicorn.service# gunicorn.service[Unit]Description=gunicorn daemonAfter=network.target[Service]User=ubuntuGroup=ubuntuWorkingDirectory=/home/ubuntu/.. 2024. 8. 23.
[Ubuntu & Linux] 주피터 노트북(jupyter notebook) 실행 시 에러 TypeError: __init__() got an unexpected keyword argument 'registry' 해결방법 [Ubuntu & Linux] 주피터 노트북(jupyter notebook) 실행 시 에러 TypeError: __init__() got an unexpected keyword argument 'registry' 해결방법우분투 서버에 주피터 노트북을 설치 후 실행했더니 아래와 같은 에러가 발생하였다.OS 버전은 Ubuntu 20.04, Python은 3.8.10 이다. 확인을 해보니 패키지 버전이 안맞아서 그런거라 최신버전으로 업데이트 해주어 쉽게 해결했다.Traceback (most recent call last): File "/home/drsong/.local/bin/jupyter-notebook", line 5, in from notebook.app import main File "/ho.. 2024. 8. 12.
[Python] Django, Flask, FastAPI 대표 프레임워크의 장점과 단점 Django장점Full-Stack Framework: Django는 풀스택 프레임워크로, 웹 애플리케이션을 만드는 데 필요한 모든 도구를 제공합니다. ORM, 인증, 관리 인터페이스 등 다양한 기능이 내장되어 있습니다.보안 기능: CSRF, XSS, SQL 인젝션 방지 등 기본적으로 보안 기능을 많이 제공하여 안전한 웹 애플리케이션을 만들 수 있습니다.큰 커뮤니티 및 문서: Django는 오랜 역사를 가지고 있어, 큰 커뮤니티와 방대한 문서를 제공합니다. 문제 해결이 용이합니다.단점복잡성: 풀스택 프레임워크이기 때문에, 작은 프로젝트나 단순한 API를 만들 때는 오히려 불필요하게 복잡할 수 있습니다.유연성 부족: 기본적으로 제공되는 구조와 규칙을 따르는 것이 좋습니다. 이를 벗어나기 위해서는 많은 커스터.. 2024. 7. 30.
[Ubuntu & Linux ] nohup과 systemd 의 장단점과 차이점 [Ubuntu & Linux ] nohup과 systemd 의 장단점과 차이점 nohup과 systemd는 각각 다른 목적과 기능을 가진 도구입니다. 성능 면에서도 차이가 있지만, 더 중요한 것은 관리와 신뢰성 측면에서의 차이입니다. 여기에서 두 도구의 차이점과 성능 차이를 설명하겠습니다.nohupnohup은 단순히 프로세스를 백그라운드에서 실행하고, 터미널 세션이 종료되어도 해당 프로세스가 계속 실행되도록 합니다.장점:간단하고 사용하기 쉬움.별도의 설정 파일 없이 빠르게 실행 가능.추가적인 데몬 관리 도구 없이 사용 가능.단점:프로세스 모니터링 및 자동 재시작 기능이 없음.시스템 재부팅 시 자동으로 시작되지 않음.로그 관리가 어려움(nohup.out 파일로 로그가 저장됨).systemdsystemd는 .. 2024. 7. 11.
[Python & Matplotlib] Matplotlib 한글이 깨지는 문제 해결하는 방법 !! [Python & Matplotlib] Matplotlib 한글이 깨지는 문제 해결하는 방법 !!Matplotlib 는 한글폰트를 지정해주지 않으면 한글이 깨지는 문제가 발생한다.아래와 같이 폰트를 지정해주면 끝 ! 해결방법import matplotlib.pyplot as pltplt.rcParams['font.family'] ='Malgun Gothic'plt.rcParams['axes.unicode_minus'] =False 2024. 6. 27.
[Python & PyAutoGUI] 일정시간 마다 스크린샷을 찍는 자동화 만들기 !! [Python & PyAutoGUI] 일정시간 마다 스크린샷을 찍는 자동화 만들기 !!이 코드를 실행하면 컴퓨터 화면의 현재 상태를 일정한 시간 간격으로 캡처하여 저장할 수 있습니다 !!예를 들어, 특정 작업을 모니터링하거나, 시간의 경과에 따른 화면 변화를 기록하는 등의 용도로 활용할 수 있습니다 :) 예시코드import pyautoguiimport timeimport os# 스크린샷을 저장할 폴더 경로save_folder = "screenshots"# 폴더가 없으면 생성if not os.path.exists(save_folder): os.makedirs(save_folder)# 스크린샷을 찍고 저장하는 함수def take_screenshot(): timestamp = time.strftim.. 2024. 6. 26.
728x90
반응형