파이썬 썸네일형 리스트형 [FastAPI] 파이썬 멀티 프로세싱 해당 글은 인프런의 ' 파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI)'을 수강하며 정리한 글이다. 파이썬 멀티 프로세싱 동시성과 병렬성 개념 정리 와 파이썬 멀티 스레딩 사용해보기를 통해서 파이썬이 왜 병렬적 멀티 스레딩 연산을 하지 못하는 지에 대해 알아보았다. '동시성'의 개념을 이용한 I/O bound 코드에 있어 멀티 스레딩은 가능했지만, 파이썬은 GIL이라는 개념이 있기 때문에 스레드로 병렬 연산을 하지 못했다. (Cpu bound 코드와 같이 하나의 계산을 여러 번 반복하는 일 등) 파이썬에서 병렬 연산을 위해서는 프로세스 자체를 복사해 사용하는 '멀티 프로세싱'을 사용할 수 있다. 스레드 연산으로는 구현하기 힘든 병렬 연산을 멀티 프로세싱에서는 할 수 .. 더보기 [FastAPI] 파이썬 멀티 스레딩 사용해보기 해당 글은 인프런의 ' 파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI)'을 수강하며 정리한 글이다. 파이썬 멀티 스레딩 우선 멀티 스레딩이란, 이전 글에서 정리한 '동시성'의 개념에서 비롯된 프로그래밍 개념이다. 하나의 프로세스 내에서 여러 개의 스레드가 동시에 작업을 실시해 속도 향상 등의 성능 개선 효과를 기대할 수 있다. 각 스레드가 독립적으로 실행하지만 자원을 공유하기 때문에, 효율적이면서도 충돌 가능성의 위험이 있다. 싱글 스레딩의 예시 # 파이썬 싱글스레딩 예시 import requests import time import os import threading def fetcher(session, url): print(f"{os.getpid()} proces.. 더보기 [FastAPI] 동시성과 병렬성 개념 정리 FastAPI를 공부하는데 필요한 동시성과 병렬성에 대해 정리해보았다. 해당 글은 인프런의 ' 파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI)'을 수강하며 정리한 글이다. 동시성 (Concurrency) - 동시성은 한 번에 여러 작업을 동시에 다루는 것을 의미한다. - 즉, 하나의 주체가 스위칭을 통해 여러 작업을 진행한다는 것이다. (코루틴이 대표적인 예시) - A작업을 하는 동안 B작업으로 스위칭, A작업이 끝나지 않았다면 C작업으로 스위칭... - 멀티 스레딩의 개념이지만 싱글 스레드에서 사용되기도 한다. - 싱글 코어뿐 아니라 멀티 코어에서도 동시성 사용 가능하다. - 한 주체가 임의적으로 여러 작업을 진행하는 것이기때문에 일종의 논리적 개념이라고 할 수 있.. 더보기 [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.. 더보기 [FastAPI] FastAPI 특장, 설치 방법 Python을 기반으로 하는 웹 프레임워크 중 최근(이라고 하기도 좀 뭐하지만)에 각광받고 있는 FastAPI를 한번 배워보려고 한다. 본격적으로 나만의 '무언가'를 만들어 보려고 하는데, 가장 일반적이고 내가 원하는 바를 표현해낼 수 있는 것이 웹이라고 생각되었다. html과 css 등의 프론트엔드는 그나마 찍먹 정도는 해봤기 때문에 백엔드 포지션이라고 할 수 있는 웹 프레임워크부터 배워보기로 했다. FastAPI의 특징은? 이름에서부터 알 수 있듯이 FastAPI는 API를 만드는데 특화된 웹 프레임워크이며, 빠른 속도를 자랑한다. 이는 Python의 async와 await을 이용해 비동기 프로그래밍을 지원해 동시성을 높일 수 있었기 때문이다. Python 3.8 기준의 API를 빌드를 목적으로 하고.. 더보기 Python 프로그래밍 중 가장 많이 발생하는 5가지 에러코드 정리 Python을 몇 년 동안 사용해왔음에도 멍 때리며 코드를 작성하다 보면 실수로 에러코드를 화면에 띄우기도 한다. 이 참에 Python 프로그래밍 중 보통 사람들이 가장 많이 실수하는(물론 나도 마찬가지다.) 에러코드를 정리해보면서 코드 작성시 유의해보려고 한다. 1. SyntaxError (구문 오류) 이 에러는 코드가 파이썬 문법에 맞지 않을 때 발생한다. 주로 쉼표, 괄호, 콜론 등을 잘못 사용할 때 발생할 수 있다. # SyntaxError 예시 print("Hello World" # 올바른 코드 print("Hello World") 해결방법: 코드를 정확하게 다듬고 문법을 검토하여 올바른 구문을 사용하면 된다. 앞 뒤를 잘 살펴보자. 2. IndentationError (들여쓰기 오류) 거의 대.. 더보기 [Pygame] 11. 게임오버 화면 추가 및 게임 종료하기 목표 공이 바닥에 닿았을 때 게임오버 텍스트 출력하기 텍스트 출력 후 자동으로 게임 종료시키기 펑고게임 코드에 적용시키기 기존 펑고게임 코드에 게임오버 텍스트 및 게임 종료코드를 적용시키고자 한다. 기존코드가 이미 꽤 길어진 편이기에, 추가시킬 부분만 따로 보도록 하겠다. # 게임 오버 텍스트 추가 gameover_font = pygame.font.SysFont('g마켓산스ttfmedium', 80) gameover_text = gameover_font.render('GAME OVER',True,(255,0,0)) # Gameover 텍스트의 사이즈 가져오기 (화면 가운데 배치시키기 위해) size_text_width = gameover_text.get_rect().size[0] size_text_hei.. 더보기 [Pygame] 10. 점수 추가하기 이 글은 아래 영상을 참고했다. https://www.youtube.com/watch?v=MKrubv0dmKw&list=PLz2iXe7EqJOMp5LozvYa0qca9E4OBkevW&index=10 목표 캐릭터(객체 or 이미지)끼리 닿았을 때, 점수가 올라가도록 만들기 게임화면에 글자가 표시되도록 만들기 게임화면에 텍스트 표시하는 법 기존 코드가 너무 길기 때문에 텍스트 표시하는 법부터 따로 배워본다. import pygame pygame.init() background = pygame.display.set_mode((480,360)) pygame.display.set_caption('Pygame_9') # 폰트설정 (None = 기본 글씨체) font_test = pygame.font.SysFont(.. 더보기 이전 1 2 3 4 5 6 7 8 ··· 10 다음