Python
-
FastAPI 애플리케이션의 성능을 개선하기 위해 많은 자료를 찾아보고 정리해봅니다.예제 소개다음은 FastAPI의 기본적인 엔드포인트 예제입니다. Product라는 Pydantic 모델을 정의하고, products 리스트를 반환하는 엔드포인트를 구현했습니다. 각 섹션에서 이 코드를 조금씩 최적화하며 개선해 보겠습니다.from fastapi import FastAPIfrom pydantic import BaseModelapp = FastAPI()class Product(BaseModel): product_id: str price: float@app.get("/products/", response_model=list[Product])def read_products(): products =..
FastAPI 성능 최적화하기FastAPI 애플리케이션의 성능을 개선하기 위해 많은 자료를 찾아보고 정리해봅니다.예제 소개다음은 FastAPI의 기본적인 엔드포인트 예제입니다. Product라는 Pydantic 모델을 정의하고, products 리스트를 반환하는 엔드포인트를 구현했습니다. 각 섹션에서 이 코드를 조금씩 최적화하며 개선해 보겠습니다.from fastapi import FastAPIfrom pydantic import BaseModelapp = FastAPI()class Product(BaseModel): product_id: str price: float@app.get("/products/", response_model=list[Product])def read_products(): products =..
2025.01.15 -
AI 웹앱 개발자로서 Python은 이제 너무 중요한 언어인것 같습니다. 주력 언어로 Javascript와 Python은 계속 이어질것 같고 Python을 좀 더 딥하게 이해하고 숙달하기 위해 중요 개념들을 정리해봅니다.1. 객체지향 프로그래밍(OOP)선행 지식: Python 기본 문법, 함수연관 개념: 클래스, 상속, 다형성, 캡슐화객체지향 프로그래밍은 Python을 배우는 여정에서 꼭 익혀야 할 가장 중요한 개념 중 하나입니다.Python은 Java처럼 엄격한 객체지향 언어는 아니지만, 실제 프로젝트에 기여하기 위해서는 좋은 OOP 개념과 모범 사례를 반드시 이해해야 합니다.객체지향 프로그래밍은 단순히 클래스와 객체를 만드는 것이 아니라, 현실 세계에 맞게 코드를 구조화하는 방법을 배우는 것입니다...
시니어 파이썬 개발자로 나아가기위한 10가지 개념AI 웹앱 개발자로서 Python은 이제 너무 중요한 언어인것 같습니다. 주력 언어로 Javascript와 Python은 계속 이어질것 같고 Python을 좀 더 딥하게 이해하고 숙달하기 위해 중요 개념들을 정리해봅니다.1. 객체지향 프로그래밍(OOP)선행 지식: Python 기본 문법, 함수연관 개념: 클래스, 상속, 다형성, 캡슐화객체지향 프로그래밍은 Python을 배우는 여정에서 꼭 익혀야 할 가장 중요한 개념 중 하나입니다.Python은 Java처럼 엄격한 객체지향 언어는 아니지만, 실제 프로젝트에 기여하기 위해서는 좋은 OOP 개념과 모범 사례를 반드시 이해해야 합니다.객체지향 프로그래밍은 단순히 클래스와 객체를 만드는 것이 아니라, 현실 세계에 맞게 코드를 구조화하는 방법을 배우는 것입니다...
2025.01.15 -
Python 3.14: 주요 업데이트와 새로운 기능 Python 3.14의 세 번째 알파 릴리스가 공개되면서 많은 주목을 받고 있습니다. Python 커뮤니티는 매 릴리스마다 점진적인 개선과 주요 기능 추가를 통해 개발자들에게 강력한 도구를 제공하고 있습니다. 이번 3.14 릴리스에서도 눈에 띄는 새로운 업데이트가 포함되었습니다. 다음은 그 중 상위 5개의 주요 개선 사항입니다.1. 환경 변수 다시 로드 기능 추가os.environ은 Python 프로그램의 시작 시 정의된 캐시된 환경 변수를 보관합니다. 그러나 Python 스크립트 외부에서 환경 변수가 변경되었을 때 이를 반영하지 못하는 문제가 있었습니다. 이를 해결하기 위해 Python 3.14에서는 새로운 내장 함수 os.reload_environ(..
Python 3.14 출시 - 꼭 알아야 할 5가지 주요 기능Python 3.14: 주요 업데이트와 새로운 기능 Python 3.14의 세 번째 알파 릴리스가 공개되면서 많은 주목을 받고 있습니다. Python 커뮤니티는 매 릴리스마다 점진적인 개선과 주요 기능 추가를 통해 개발자들에게 강력한 도구를 제공하고 있습니다. 이번 3.14 릴리스에서도 눈에 띄는 새로운 업데이트가 포함되었습니다. 다음은 그 중 상위 5개의 주요 개선 사항입니다.1. 환경 변수 다시 로드 기능 추가os.environ은 Python 프로그램의 시작 시 정의된 캐시된 환경 변수를 보관합니다. 그러나 Python 스크립트 외부에서 환경 변수가 변경되었을 때 이를 반영하지 못하는 문제가 있었습니다. 이를 해결하기 위해 Python 3.14에서는 새로운 내장 함수 os.reload_environ(..
2025.01.15 -
Python의 collections 모듈에 있는 Counter 클래스에 대해 알아보겠습니다.Counter는 데이터의 빈도를 계산하는 데 특화된 도구로, 코드를 간결하게 만들고 성능을 향상시키는 데 큰 도움이 됩니다.Counter 소개Counter는 해시 가능한 객체를 세는 데 사용되는 딕셔너리의 하위 클래스입니다. 요소가 딕셔너리 키로 저장되고, 그 개수가 딕셔너리 값으로 저장됩니다.기본 사용법from collections import Counter# 리스트에서 요소 개수 세기fruits = ['apple', 'banana', 'apple', 'cherry', 'banana', 'apple']fruit_counter = Counter(fruits)print(fruit_counter) # Counter(..
Python Collections의 Counter: 데이터 빈도 계산의 강력한 도구Python의 collections 모듈에 있는 Counter 클래스에 대해 알아보겠습니다.Counter는 데이터의 빈도를 계산하는 데 특화된 도구로, 코드를 간결하게 만들고 성능을 향상시키는 데 큰 도움이 됩니다.Counter 소개Counter는 해시 가능한 객체를 세는 데 사용되는 딕셔너리의 하위 클래스입니다. 요소가 딕셔너리 키로 저장되고, 그 개수가 딕셔너리 값으로 저장됩니다.기본 사용법from collections import Counter# 리스트에서 요소 개수 세기fruits = ['apple', 'banana', 'apple', 'cherry', 'banana', 'apple']fruit_counter = Counter(fruits)print(fruit_counter) # Counter(..
2024.08.29 -
파이썬에서 리스트를 다룰 때 흔히 마주치는 문제 중 하나는 리스트를 순회하면서 동시에 요소를 제거하는 상황입니다. 이런 작업이 예상치 못한 결과를 낳는 경우가 많은데, 오늘은 이 문제와 그 해결 방법을 알아보겠습니다.문제가 있는 코드다음 코드를 봐주세요:def remove_max_values(values): if not values: return max_val = max(values) for i, v in enumerate(values): if v == max_val: values.pop(i) result.append(v) return result# 테스트values = [5, 5, 4, 3, 5, 2]result = []print..
파이썬 리스트 순회 중 요소 제거(반복문 도중에 멈춤): 함정과 해결책파이썬에서 리스트를 다룰 때 흔히 마주치는 문제 중 하나는 리스트를 순회하면서 동시에 요소를 제거하는 상황입니다. 이런 작업이 예상치 못한 결과를 낳는 경우가 많은데, 오늘은 이 문제와 그 해결 방법을 알아보겠습니다.문제가 있는 코드다음 코드를 봐주세요:def remove_max_values(values): if not values: return max_val = max(values) for i, v in enumerate(values): if v == max_val: values.pop(i) result.append(v) return result# 테스트values = [5, 5, 4, 3, 5, 2]result = []print..
2024.08.21 -
Python 유효성 검사하고 dictionary 특정 키값 업데이트하기. Clean하게. 유효성 검사 안하면 아래처럼 에러가 생깁니다.bson.errors.InvalidId: 'undefined' is not a valid ObjectId, it must be a 12-byte input or a 24-character hex string 우선 키값을 update하려면 아래처럼 유효성을 검사하고 새로운 value를 넣으면 됩니다. if aiPicPrompt: aiPicPrompt["_id"] = str(aiPicPrompt.get("_id")) 하지만 위의코드도 작동하지만 한줄로 줄이고, 더 멋지게 작성할 수 있습니다.aiPicPrompt and aiPicPrompt.update(_id=str(ai..
Python 유효성 검사하고 dictionary 특정 키값 업데이트하기[As Clean](bson.errors.InvalidId: 'undefined' is not a valid ObjectId, it must be a 12-byte input or a 24-character hex string)Python 유효성 검사하고 dictionary 특정 키값 업데이트하기. Clean하게. 유효성 검사 안하면 아래처럼 에러가 생깁니다.bson.errors.InvalidId: 'undefined' is not a valid ObjectId, it must be a 12-byte input or a 24-character hex string 우선 키값을 update하려면 아래처럼 유효성을 검사하고 새로운 value를 넣으면 됩니다. if aiPicPrompt: aiPicPrompt["_id"] = str(aiPicPrompt.get("_id")) 하지만 위의코드도 작동하지만 한줄로 줄이고, 더 멋지게 작성할 수 있습니다.aiPicPrompt and aiPicPrompt.update(_id=str(ai..
2024.08.16 -
Python의 비동기 프로그래밍을 활용하여 데이터베이스 쿼리를 어떻게 효율적으로 최적화할 수 있는지 알아보겠습니다.특히 asyncio.gather()를 사용한 멋진 코드 한 줄로 어떻게 성능을 크게 향상시킬 수 있는지 살펴보죠.문제 상황여러분이 아래와 같은 코드로 여러 개의 데이터베이스 쿼리를 순차적으로 실행하고 있다고 가정해봅시다:hashTags = []for val in hashBroker: hashtag = await findOne(dbName, table, {"_id": ObjectId(val.get('hashtagID'))}) hashTags.append(hashtag)이 코드는 작동하지만, 각 쿼리를 하나씩 순차적으로 처리하기 때문에 hashBroker의 크기가 크다면 상당한 시간이..
비동기 프로그래밍의 마법: asyncio.gather()로 데이터베이스 쿼리 최적화하기Python의 비동기 프로그래밍을 활용하여 데이터베이스 쿼리를 어떻게 효율적으로 최적화할 수 있는지 알아보겠습니다.특히 asyncio.gather()를 사용한 멋진 코드 한 줄로 어떻게 성능을 크게 향상시킬 수 있는지 살펴보죠.문제 상황여러분이 아래와 같은 코드로 여러 개의 데이터베이스 쿼리를 순차적으로 실행하고 있다고 가정해봅시다:hashTags = []for val in hashBroker: hashtag = await findOne(dbName, table, {"_id": ObjectId(val.get('hashtagID'))}) hashTags.append(hashtag)이 코드는 작동하지만, 각 쿼리를 하나씩 순차적으로 처리하기 때문에 hashBroker의 크기가 크다면 상당한 시간이..
2024.08.13 -
Error! Cannot read input picture file 'img.HEIC' HEIC 파일은 High Efficiency Image Coding(HEIC) 포맷으로, 주로 iOS 기기에서 사용되는 이미지 파일 형식입니다. 주로 HEIC 포맷은 이미지 파일을 고효율로 압축하면서도 품질을 유지하는 데 사용됩니다.이 오류 메시지는 지정한 경로에 있는 HEIC 파일을 읽거나 처리할 수 없음을 나타냅니다. 이 문제를 해결하기 위해 다음과 같은 방법을 시도해볼 수 있습니다. 1. HEIC 파일을 PNG 또는 JPG로 변환HEIC 파일을 보다 널리 사용되는 PNG 또는 JPG 형식으로 변환하면 오류를 피할 수 있습니다. Python에서는 PIL(Pillow) 라이브러리와 함께 pyheif 라이브러리를 사용..
파이썬에서 HEIC 이미지 저장하기 (Error! Cannot read input picture file 'img.HEIC')Error! Cannot read input picture file 'img.HEIC' HEIC 파일은 High Efficiency Image Coding(HEIC) 포맷으로, 주로 iOS 기기에서 사용되는 이미지 파일 형식입니다. 주로 HEIC 포맷은 이미지 파일을 고효율로 압축하면서도 품질을 유지하는 데 사용됩니다.이 오류 메시지는 지정한 경로에 있는 HEIC 파일을 읽거나 처리할 수 없음을 나타냅니다. 이 문제를 해결하기 위해 다음과 같은 방법을 시도해볼 수 있습니다. 1. HEIC 파일을 PNG 또는 JPG로 변환HEIC 파일을 보다 널리 사용되는 PNG 또는 JPG 형식으로 변환하면 오류를 피할 수 있습니다. Python에서는 PIL(Pillow) 라이브러리와 함께 pyheif 라이브러리를 사용..
2024.08.11