Python6 FFMPEG 윈도우 설치 방법 먼저 공식 사이트 들어가서 순서대로 하고 다운로드 받는다.https://www.ffmpeg.org/ 이후 원하는 위치에 압축을 풀고 bin 의 경로를 복사한다. 시스템 환경 변수 편집 검색후 들어가서 환경변수 클릭후 편집을 누른다. 이후 새로 만들기 클릭후 아까 ffmpeg의 bin 경로 복사한거 넣어주면 된다. 2025. 2. 6. Flask에서 celery이용한 비동기 처리 실습 이전에는 간단한 예시로해서 백그라운드 작업중 DB 사용 이런게 없어서 컨텍스트 개념 사용 안하니 문제없었다.그러나 이제 실제 API에 적용해보려면 컨텍스트에 설정된 DB 객체등 가져다 사용해야해서 문제들이 일어났다.1. Flask vs Celery 컨텍스트일단 컨텍스트는 애플리케이션이 요청을 처리하는 동안 현재 작업과 관련된 데이터(예: 설정, 데이터베이스 연결, 사용자 정보 등)를 저장하고 관리하는 공간이다. Flask는 요청 들어오면 자체 컨텍스트를 생성하고 응답하면 컨텍스트가 사라지니, Celery는 Flask와는 별도로 Celery 전용 프로세스에서 백그라운드 작업을 처리하니 Celery 작업에서도 Celery 전용 컨텍스트가 필요하다. 즉,별도의 프로세스에서 celery가 작업하니 Flask의.. 2025. 1. 13. Flask에서 celery+redis 이용한 비동기 처리 일단 원본 영상을 설정한 단위로 분리하고 저장하는 API가 있는데 영상의 크기가 클수록 오래 걸리니 생각나서 해보는거다.Celery는 Python으로 작성된 비동기 작업 큐 이기 때문에 Flask와 같은 Python Web Framework에 붙여서 사용하기 수월하다.Celery의 구성 Celery 예제Celery Workers인 celery를 설치하고 Message Broker역활인 redis를 설치pip install celerypip install redis 이제 Celery는 flask와 별도의 프로세스 생성후 그거로 백그라운드 작업해야해서, Celery worker 프로세스를 따로 생성하도록하는 설정 코드 작성한다.# Celery 설정app.config.update( CELERY_BROK.. 2025. 1. 10. 파이썬 비동기 프로그래밍 asyncio 클라-서버간의 통신 비동기 말고 서버 성능을 위한 비동기인 파이썬의 asyncio 라이브러리를 사용해서 비동기 프로그래밍을 하는 방법에 대해 정리해 보겠다asyncio는 단일 스레드에서 여러 작업을 동시에 처리하는 것처럼 보이게 해서, I/O 바운드 작업의 성능을 크게 향상시킬 수 있는 도구다.동기 vs. 비동기 예시동기식 프로그래밍은 한 명의 요리사가 한 번에 하나의 요리만 하는 레스토랑. 손님이 스테이크 주문하면, 요리사는 스테이크 다 구워질 때까지 아무것도 안 하고 멀뚱멀뚱. 다음 손님 파스타는 스테이크 다 만든 다음에야 시작.비동기식 프로그래밍은 한 명의 짱짱 요리사가 여러 요리를 동시에 하는 레스토랑. 스테이크 굽기 시작하고, 기다리지 않고 바로 파스타 면 삶기 시작. 면 삶는 동안 샐러드도 만.. 2025. 1. 8. Python Ray 라이브러리 (병렬처리) 1.병렬처리 이전의 방법 multiprocessing에 대해multiprocessing의 라이브러리 경우 프로세스 스포닝(Process Spawning)을 지원하여 자원 내에서 사용 가능한 다중 프로세서를 활용 가능하게 하고 생성한 프로세스 풀을 제어하는 프로세스 풀 객체(pool)을 통해 병렬 처리를 한다. [프로세스 스포닝: 부모 프로세스가 운영 체제에 요청하여 자식 프로세스를 생성하는 과정]그러나 multiprocessing는 자식 프로세스한테 작업해야하는 큰 데이터를 전달할때 pickle을 사용해 직렬화(데이터를 바이트로 변환)한 뒤 전달한다.만약 20개 프로세스에서 작업하도록 설정했다면 그 만큼 직렬화한 데이터 복사본을 만들어야 하므로 큰 메모리 사용하고,직렬화 데이터 받은 프로세스는 원래 .. 2025. 1. 7. 파이썬 복습 1. 삼항연산자 변수 대입조건문에서 참,거짓일때 둘다 어떤 같은 변수에 대입하려하면 이때 참의 경우 행동쪽에 변수를 같이 적어주고 거짓의 행동일땐 값만 넣어준다ex) answer = 1 if num1 == num2 else -1 2. 타입 확인 함수 isinstance()* isinstance(확인하고자 하는 데이터 값, 확인하고자 하는 데이터 타입) 반환은 True,Falseex) if isinstance( 6 , int ) 3. "".join(리스트) 문자열 합치기예를들어 a = ["3","1","2"] 있을때 문자열로 합치고 싶으면 "".join(a) 이렇게 하면 "321" 이다. 만약 구분자 넣어주면 -> "_".join(a) 하면 "3_2_1" 4. 두 변수 a,b 값을 서로 교환.. 2023. 11. 11. 이전 1 다음