web

Web

[FastAPI] 의존성 주입 (Dependency Injection) 개념과 활용

의존성 주입 (Dependency Injection) 개념과 활용개념의존성 (Dependency)A 함수 또는 클래스에서 B 기능 사용할 때, A는 B에 의존 (Dependency)한다고 이야기할 수 있다. 하나의 컴포넌트 (함수, 클래스)가 다른 컴포넌트에 의존하는 경우 해당 의존성을 해결하는 것이 중요하다.send_email (A) 함수는 email_service (B) 객체에 의존만약 email_service가 없다면, send_email() 함수는 동작할 수 없음def send_email(email_service): email_service.send("Hello!") # send_email()은 email_service에 의존의존성 주입 (Dependency Injection, DI)의존성..

Web

[FastAPI] 데이터베이스 Session 생성을 위한 get_db() 이해

get_db()FastAPI는 비동기 웹 프레임워크로 데이터베이스와 상호작용을 위해 SQLAlchemy 같은 ORM을 자주 사용한다. 일반적으로 데이터베이스 세션을 관리하기 위해 get_db() 함수를 정의하여 사용하는데, 알아야 할 개념과 함수의 동작 방식에 대해 알아보려고 한다.def get_db(): db = SessionLocal() try: yield db finally: db.close()개념get_db()에 사용되는 SessionLocal과 yield의 개념을 숙지하기 위해 ORM, Session & SessionLocal, yield vs return을 소개한다. 여기서 설명하는 개념은 Python의 SQLAlchemy를 기준으로 소개하므로 다른 기..

Web

[Web] 웹 크롤링을 위한 Fiddler와 Postman 설치 및 사용법

웹 크롤링을 위한 Fiddler와 Postman 설치 및 사용법웹 크롤링을 진행할 때, 일반적으로 관리자 도구(F12)를 사용하는 경우가 많다. 단순히 웹에서 제공하는 기능이 아닌 관련 프레임워크를 사용하면 더 효율적으로 데이터 수집이 가능하다. 그래서 Fiddler와 Postman에 관해 소개해보려고 한다. 설치 및 사용법 기준은 모두 Window 운영체제를 기준으로 진행한다.웹 디버깅을 위한 Fiddler 소개 및 설치Fiddler 소개 및 기능FiddlerHTTP 프로토콜을 사용하는 브라우저 및 응용 프로그램을 디버깅할 수 있는 디버거Classic, Everywhere, Cap, Core 총 4개의 버전을 제공하며, 버전 별로 특징과 가격이 다름웹 크롤링을 진행하기 위한 수단으로 관리자 도구와 비슷..

Web

[Web] 데이터 수집을 위한 웹 크롤링 3가지 방법 (정적 vs 동적)

데이터 수집을 위한 웹 크롤링 방법ML 모델링, 대시보드 제작 등 여러 이유로 웹 사이트를 크롤링해야 하는 상황이 생긴다. 물론 Python의 BeautifulSoup나 Selenium을 사용하면 크롤링이 가능하지만, 여기서는 "추출 방법"보다는 "추출 링크를 찾는 것"에 초점을 맞춰보려고 한다. 특정 페이지에서 원하는 정보를 가져오는 링크나 API를 찾을 수 있으면, 더 간단하고 빠르게 데이터를 추출할 수 있다. 정적/동적 페이지와 정적/동적 수집의 특징, API에 대해 먼저 살펴보고 싶다면, 아래 링크를 참고하면 된다. [Web/Python] 동적(Dynamic)/정적(Static) 수집 방법 비교서론 BeautifulSoup과 Selenium은 웹 스크래핑/크롤링하는 데 사용되는 Python 라이브..