반응형

async 5

파이썬 셀레니움 함수 비동기(async)로 실행 방법

Python의 Selenium을 이용하여 크롤링을 진행할 때,드라이버가 포함된 함수를 async로 실행해야 하는 경우가 있을 수 있습니다. 이 경우, 셀레니움의 함수를 비동기 함수처럼 사용이 가능하도록코드를 작성할 수 있는 방법이 있는데요.이번 글에서 해당 방법을 간략하게 정리해보도록 하겠습니다.  Sync 함수 예시먼저, 이해를 돕기 위하여 다음과 같이 간단한 driver를 호출하는 함수 get_driver과원하는 url에서 title 정보를 추출하는 get_title 함수가 있다고 가정해보도록 하겠습니다.from selenium import webdriverfrom selenium.webdriver.chrome.service import Servicefrom webdriver_manager.chrom..

Python/Crawling 2024.07.19

FastAPI 비동기 세션 처리 AsyncSession 활용 예제(sqlalchemy)

지난 번의 글에서는 FastAPI로 sqlalchemy 활용 CRUD 예제 코드를 다룬 적이 있습니다. FastAPI에서 sqlalchemy 활용 SQL DB CRUD 구현 예제안녕하세요. 아래 링크의 지난 글에서는 NoSQL인 MongoDB를 기준으로fastapi의 CRUD 메소드 구현 방법을 알아보았습니다. FastAPI에서 MongoDB 데이터 연동 CRUD 예제안녕하세요. 아래 링크의 지난 글에서는jimmy-ai.tistory.com 이번 글에서는 해당 포스트의 코드를 비동기로 세션을 처리하는AsyncSession를 활용한 코드로 변경해보도록 하겠습니다.  모듈 설치AsyncSession 처리를 위하여 몇 가지 모듈 설치가 더 필요합니다.필요한 모듈들을 설치하는 예제 명령어는 다음과 같습니다. p..

Python/Backend 2024.06.01

자바스크립트 Promise 객체, async 및 await 개념 정리 예제

javascript에서 비동기 처리를 하는 과정에서 필수적인 개념인 Promise 객체, async 및 await의 개념들을 간단한 예시를 통하여 이해를 해보는 시간을 가져보도록 하겠습니다. Promise 객체 Promise는 자바스크립트에서 비동기 작업을 표현하는 객체입니다. 비동기 작업이 완료된 후에 요청이 성공하면 결과값을 반환해주고, 실패한 경우에는 이유를 처리할 수 있는 방법을 제공하는 원리입니다. 해당 객체는 세 가지 상태를 가질 수 있는데요. 아직 요청을 처리하고 있는 중이라면 pending, 요청의 결과값을 성공적으로 받았다면 fulfilled, 요청이 실패하였다면 rejected의 상태를 가지게 됩니다. Promise 객체의 선언 방식은 다음과 같이 정리할 수 있습니다. const pro..

TypeError: object async_generator can't be used in 'await' expression 해결 방법

오류 개요 Python의 generator 중 async로 구현된 경우가 있습니다. 이 경우 단순히 await로 데이터를 가져오려고 시도하면 에러가 발생합니다. async_gen = AsyncGenerator() data = await async_gen # TypeError: object async_generator can't be used in 'await' expression 디버깅 방법 다음과 같이 .__anext__() 기능을 활용하면 비동기로 구현된 generator에서 데이터를 순차적으로 가져올 수 있습니다. async_gen = AsyncGenerator() data = await async_gen.__anext__()

Python/Debugging 2024.03.08

파이썬 class __init__에서 async로 변수 초기화 하는 방법

Python에서 클래스를 구현할 때, 선언부인 __init__에서 비동기 함수에서 변수를 가져와 초기화하고 싶은 경우가 있습니다. 이 경우, __init__은 async로 직접 구현은 불가하지만, 이를 우회할 수 있는 방법이 있어 간략하게 정리해보도록 하겠습니다. __init__에서 비동기 선언이 필요한 코드 예시 다음과 같은 class가 있다고 가정해보도록 하겠습니다. 여기에서는 class의 value 속성에서 필요한 값을 불러와야 합니다. ### async def load_from_some_async_function(): # 비동기 함수를 불러와야 하는 상황 # do something ### class AsyncInitClass: def __init__(self): # async가 불가능! self...

Python/Utils 2024.02.20
반응형