본문 바로가기
반응형

울고넘는 딥러닝160

[FastAPI] 파이썬 멀티 프로세싱 해당 글은 인프런의 ' 파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI)'을 수강하며 정리한 글이다. 파이썬 멀티 프로세싱 동시성과 병렬성 개념 정리 와 파이썬 멀티 스레딩 사용해보기를 통해서 파이썬이 왜 병렬적 멀티 스레딩 연산을 하지 못하는 지에 대해 알아보았다. '동시성'의 개념을 이용한 I/O bound 코드에 있어 멀티 스레딩은 가능했지만, 파이썬은 GIL이라는 개념이 있기 때문에 스레드로 병렬 연산을 하지 못했다. (Cpu bound 코드와 같이 하나의 계산을 여러 번 반복하는 일 등) 파이썬에서 병렬 연산을 위해서는 프로세스 자체를 복사해 사용하는 '멀티 프로세싱'을 사용할 수 있다. 스레드 연산으로는 구현하기 힘든 병렬 연산을 멀티 프로세싱에서는 할 수 .. 2024. 4. 3.
[FastAPI] 파이썬 멀티 스레딩 사용해보기 해당 글은 인프런의 ' 파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI)'을 수강하며 정리한 글이다. 파이썬 멀티 스레딩 우선 멀티 스레딩이란, 이전 글에서 정리한 '동시성'의 개념에서 비롯된 프로그래밍 개념이다. 하나의 프로세스 내에서 여러 개의 스레드가 동시에 작업을 실시해 속도 향상 등의 성능 개선 효과를 기대할 수 있다. 각 스레드가 독립적으로 실행하지만 자원을 공유하기 때문에, 효율적이면서도 충돌 가능성의 위험이 있다. 싱글 스레딩의 예시 # 파이썬 싱글스레딩 예시 import requests import time import os import threading def fetcher(session, url): print(f"{os.getpid()} proces.. 2024. 4. 1.
[FastAPI] 동시성과 병렬성 개념 정리 FastAPI를 공부하는데 필요한 동시성과 병렬성에 대해 정리해보았다. 해당 글은 인프런의 ' 파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI)'을 수강하며 정리한 글이다. 동시성 (Concurrency) - 동시성은 한 번에 여러 작업을 동시에 다루는 것을 의미한다. - 즉, 하나의 주체가 스위칭을 통해 여러 작업을 진행한다는 것이다. (코루틴이 대표적인 예시) - A작업을 하는 동안 B작업으로 스위칭, A작업이 끝나지 않았다면 C작업으로 스위칭... - 멀티 스레딩의 개념이지만 싱글 스레드에서 사용되기도 한다. - 싱글 코어뿐 아니라 멀티 코어에서도 동시성 사용 가능하다. - 한 주체가 임의적으로 여러 작업을 진행하는 것이기때문에 일종의 논리적 개념이라고 할 수 있.. 2024. 3. 31.
[FastAPI] 동기와 비동기, 코루틴 개념 정리 FastAPI를 본격적으로 사용해보기에 앞서 알아보아야 할 개념인 동기와 비동기의 차이, 그리고 코루틴 함수에 대해서 공부해보았다. 동기와 비동기 - 동기(sync) '코드가 동기적으로 동작한다'라는 말의 뜻은 '코드가 반드시 작성된 순서로 실행된다.'라는 뜻과 동일하다고 생각하면 된다. A,B,C의 순서로 코드가 작성되어 있다면, A 함수가 실행되고 끝나면 B가 실행되는 플로우로 진행된다. import time def delivery(name, mealtime): print(f"{name}에게 배달완료!") time.sleep(mealtime) # n초 대기 print(f"{name} 식사완료, {mealtime}시간 소요...") print(f"{name} 그릇 수거 완료") def main(): d.. 2024. 3. 3.
[FastAPI] FastAPI 특장, 설치 방법 Python을 기반으로 하는 웹 프레임워크 중 최근(이라고 하기도 좀 뭐하지만)에 각광받고 있는 FastAPI를 한번 배워보려고 한다. 본격적으로 나만의 '무언가'를 만들어 보려고 하는데, 가장 일반적이고 내가 원하는 바를 표현해낼 수 있는 것이 웹이라고 생각되었다. html과 css 등의 프론트엔드는 그나마 찍먹 정도는 해봤기 때문에 백엔드 포지션이라고 할 수 있는 웹 프레임워크부터 배워보기로 했다. FastAPI의 특징은? 이름에서부터 알 수 있듯이 FastAPI는 API를 만드는데 특화된 웹 프레임워크이며, 빠른 속도를 자랑한다. 이는 Python의 async와 await을 이용해 비동기 프로그래밍을 지원해 동시성을 높일 수 있었기 때문이다. Python 3.8 기준의 API를 빌드를 목적으로 하고.. 2024. 1. 14.
류현진 경기 리뷰 - 230821 vs 신시내티 레즈 지난 경기에서 444일만의 승리를 거둔 류현진. 그 기세를 이어 2승째를 수확하기 위해 신시내티 레즈전에 나섰다. 시즌 첫 등판이었던 볼티모어전에서 위기의 순간 커브를 이용했던 것이 오늘 경기를 위한 것이었을까. 오늘 류현진의 커브는 '폼 미쳤다'라는 말이 절로 나올 정도였다. 커브의 위력과 뛰어난 제구력으로 포심의 최고 구속이 89.6마일밖에 나오지 않았음에도 불구하고 류현진은 시즌 최다인 7K를 잡아냈다. 시즌 2승째를 거둔 류현진은 무자책 행진을 이어가며 시즌 평균자책점은 1.89를 마크했다. 오늘의 류현진 경기 리뷰 류현진 이닝 별 성적 1회: 페어차일드(유땅) - 맥클레인(삼진) - 데 라 크루즈(3땅) / 12구 2회: 스티어(내안) - 보토(삼진) - 엔카나시온(우안) - 마르테(좌플, 3실.. 2023. 8. 21.
728x90
반응형