반응형 Python112 Python의 메모리 관리 준비물Python을 사용하다 보면 자연스럽게 메모리 관리에 대해 고민하게 됩니다.오늘은 Python의 메모리 관리 기법에 대해 알아보겠습니다.1. Python 환경 설정먼저 Python을 설치해야 합니다. 대부분의 OS에서는 기본적으로 Python이 설치되어 있지만, 최신 버전을 사용하고 싶다면 Python 공식 웹사이트에서 다운로드할 수 있습니다. 2. Python의 기본 메모리 관리 - 참조 카운팅Python의 메모리 관리의 기본은 참조 카운팅입니다. 이게 뭐냐면, 객체가 몇 개의 참조를 받고 있는지를 세어주는 카운터입니다. 참조 카운트가 0이 되면, Python은 그 객체를 메모리에서 해제해 버립니다.예제 코드:import sys# 객체 생성obj = []print("참조 카운트:", sys.get.. 2024. 8. 6. Python 기본적인 File 다루기 Python으로 다양한 파일 다루기 Python은 다양한 유형의 파일을 읽고 쓰는 기능을 제공합니다. 이 글에서는 텍스트, 이미지, ZIP, CSV, PDF 파일을 읽고 쓰는 방법을 다룹니다. 1. 텍스트 파일 읽고 쓰기 텍스트 파일은 Python에서 가장 기본적으로 다루는 파일 유형입니다. 간단한 텍스트 파일을 생성하고 읽는 방법을 살펴봅시다. 텍스트 파일 쓰기 # 파일을 쓰기 모드로 열고, 내용을 작성합니다. with open('example.txt', 'w', encoding='utf-8') as file: file.write('안녕하세요, Python 파일 처리 예제입니다.') 텍스트 파일 읽기 # 파일을 읽기 모드로 열고, 내용을 읽습니다.. 2024. 1. 26. Python async/await Python에서 async/await를 사용하면 비동기 코드를 동기 코드처럼 간단히 작성할 수 있습니다. async/await는 Python 3.5 버전부터 지원하는 기능으로, asyncio 모듈을 기반으로 동작합니다. 기본 사용법은 다음과 같습니다: import asyncio async def main(): print('hello') await asyncio.sleep(1) print('world') asyncio.run(main()) - async def로 비동기 함수를 정의합니다. - await를 사용하여 비동기 함수 안에서 다른 비동기 함수를 호출할 수 있습니다. - asyncio.run으로 비동기 함수를 실행합니다. 이렇게 하면 hello를 출력하고 1초 기다린 후 world가 출력되는 비동기 .. 2024. 1. 26. [Python] Redis Docker 로 실행하고 Python 으로 사용하기 관련 글 [AWS] Elasticache Redis 사용하기 [AWS] Elasticache Redis 에 Python 으로 사용하기 조건 local 에 Docker 설치 python 설치 Docker 만 설치되어있다면 아주 간단합니다. redis docker image 받기 docker image pull redis redis-cli 와 redis-server 간 network 생성 docker network create redis-network docker 실행 docker run --name local-redis -p 6379:6379 --network redis-network -v redis_temp:/data -d redis:latest redis-server --appendonly yes 확인.. 2023. 12. 16. [Python] slack 으로 메시지 보내기 (webhook) 우선 slack 아래 주소로 접속합니다. https://api.slack.com/messaging/webhooks Sending messages using Incoming Webhooks Creating an Incoming Webhook gives you a unique URL to which you send a JSON payload with the message text and some options. api.slack.com Create your Slack app 클릭 From scratch 클릭 App 이름과 slack 의 어떤 워크스패이스에서 사용될 지 선택합니다. Webhooks 말고도 다른 방법들도 있습니다만, 여기에서는 Webhooks 를 사용합니다. On 으로 변경 [Add New We.. 2023. 12. 16. [FireFox] Selenium "not reachable by keyboard" 오류 해결 일반적으로 아래와 같은 input element 에는 작동이 잘 되는 것 같습니다. driver.find_element(By.CSS_SELECTOR, 'input[name="email"]').send_keys(user_id) textarea, d-textarea 등에서 종종 발생하는 문제 인거 같습니다. (input 도 가끔 발생합니다) 저의 경우는 위와 같은 코드로 textarea 를 했을 때 크롬 드라이버는 정상적으로 작동했습니다. firefox 로 실행하니 "not reachable by keyboard" 이러한 오류가 발생해서 다음과 같은 코드로 해결했습니다. from selenium.webdriver import ActionChains source = driver.find_element(By.C.. 2023. 11. 30. [DeepL] python api 사용하기 우선 계정부터 만들어야합니다. 무료가입. 신용카드가 필요합니다. 결제되지 않습니다만, 본인 확인용으로 0원 결제가 진행됩니다. https://www.deepl.com/ DeepL 번역: 세계에서 가장 정확한 번역기 텍스트 및 전체 문서 파일을 즉시 번역하세요. 개인과 팀을 위한 정확한 AI 번역. 매일 수백만 명이 DeepL 번역기로 작업합니다. www.DeepL.com 가입을 마치면, 내 DeepL 계정 에서 "계정" 탭에 맨 아래쪽에 api key 가 있습니다. 설치 pip install deepl 예제1. 단건 import deepl api_key = "deepl의 계정에 있는 api key" translator = deepl.Translator(api_key) message = '안녕하세요. 반갑.. 2023. 9. 24. [Python] package name 에 하이픈(-)이 있을 때 import 하는 방법 가장 좋은 방법은 "-" 없이 package 를 생성하는거겠죠. (directory 나 filename 모두) 하지만, 어쩔수 없이 사용해야할 경우가 생긴다면, yourpath some-dir-name model.py class User 가 있다고 함 utils.py class Utils 가 있다고 함 이렇게 있을 때, module = __import__("yourpath.some-dir-name", fromlist=['model', 'utils']) User = module.model.User Utils = module.utils.Utils # 아래와 같이 import User 로 사용했을 때와 같이 사용 user: User = User() 2023. 9. 21. [FastAPI] SQLModel 에서 MySQL 의 Json 컬럼 사용방법 sqlmodel 의 Field, SQLModel, JSON, Column 를 imort from sqlmodel import Field, SQLModel, JSON, Column friends_id_list 와 같이 python data type 은 dict SQLModel Field 는 sa_column=Column(JSON) 으로. class User(SQLModel, table=True): __tablename__ = 'user' user_id: str = Field(primary_key=True) friends_id_list: dict = Field(sa_column=Column(JSON)) reg_date: Optional[datetime] = Field(default_factory=dateti.. 2023. 9. 18. [FastAPI] Html 띄우기 server.py from typing import Union from fastapi import FastAPI, Request from fastapi.templating import Jinja2Templates templates = Jinja2Templates(directory="templates") app = FastAPI() @app.get("/") def read_root(request: Request): return templates.TemplateResponse("test.html", {'request': request}) @app.get("/items/{item_id}") def read_item(item_id: int, q: Union[str, None] = None): return {"i.. 2023. 9. 15. 이전 1 2 3 4 ··· 12 다음 728x90 반응형