본문 바로가기

Python10

UV(Ultraviolet)로 빠르게 효율적으로 파이썬 패키지 관리하기 🚀 1. 들어가며Python을 활용한 개발 환경에서 패키지 관리자의 선택은 프로젝트의 효율성에 큰 영향을 줍니다. 본 글에서는 최근 많은 주목을 받고 있는 UV(Ultraviolet)를 소개하고, 기존의 패키지 관리자들과 어떤 차별점이 있는지 알아봅니다. 📚 2. Python 패키지 관리 도구의 이해pipPython의 기본 패키지 관리자간편한 사용법과 광범위한 지원의존성 충돌 관리가 다소 불편conda데이터 과학 환경에서 널리 사용Python뿐 아니라 다른 언어 및 시스템 종속성 관리 가능비교적 느린 성능 및 큰 용량 요구poetry 및 pipenv프로젝트 관리 중심의 패키지 관리자가상환경과 패키지 관리를 통합 ✨ 3. UV(Ultraviolet)란?UV는 Rust 언어를 기반으로 만들어진 최신 Py.. 2025. 5. 14.
[Python] @contextmanager 데코레이터 에 대해서 ❓ @contextmanager란?Python의 @contextmanager 데코레이터는 컨텍스트 매니저(Context Manager) 를 손쉽게 만들 수 있도록 도와주는 도구이다. 컨텍스트 매니저는 주로 리소스(파일, 네트워크 연결, 락 등)를 열고 닫는 등의 정리(cleanup) 작업을 자동으로 처리해줘서, 코드의 안정성과 가독성을 높여줍니다. with 문과 함께 사용되어, 리소스를 열고 사용한 뒤 자동으로 정리(종료)해주는 구조를 만들어줍니다.  🤔 왜 사용하나요?프로그래밍을 하다 보면 자원을 열고 나서 반드시 닫아줘야 하는 경우가 많죠.예를 들면:파일을 열면 반드시 닫아야 하고,데이터베이스 연결도 끊어줘야 하며,락(lock)을 잡았다면 해제를 해줘야 해요.이걸 매번 try-finally로 쓰면 .. 2025. 4. 1.
[FastAPI] Server Send Event(SSE) 구현 개요 기존 프로젝트의 소스코드를 수정을 해야하는 날이 있었다.SSH 로 연결하여 tail -f 명령어로 실시간으로 로그데이터를 가져오는 기능이였는데 보안 정책으로 인해 원격서버가 주기적으로 비밀번호가 변경되어, SSH 연결정보를 수동으로 바꿔줘야하는 상황이 생겨버렸다. 수동적인 변경이 어려워 이를 해결할 방법으로 API서버를 구현하여 이를 수행하게 만드는 것이였다.이를 구현하는 방법 중 하나로 SSE(Server Sent Event)를 선택하게 되었고, FastAPI를 사용하여 구현하였다. SSE 로 구현한 이유 Server Sent Event( SSE )란, 서버가 실시간으로 발생시키는 이벤트나 데이터를 클라이언트 에 단방향으로 전달하기 위해 설계된 웹 표준 방식 중 하나이다. 단방향 실시간 통신에 적.. 2025. 2. 10.
[Python] Python Portable( 무설치 파이썬 ) 설치 방법 1. Python 소스 다운로드Python 공식 웹사이트에서 원하는 버전의 소스를 다운로드합니다.wget https://www.python.org/ftp/python//Python-.tgz# 예: Python 3.9.9wget https://www.python.org/ftp/python/3.9.9/Python-3.9.9.tgz 압축해제tar -xvzf Python-3.9.9.tgzcd Python-3.9.9 2. Portable 설치를 위한 빌드Python을 독립 실행 가능한 형태로 빌드합니다../configure --prefix=/path/to/python-portable --enable-shared --with-ensurepip=install LDFLAGS="-Wl,-rpath=\$$ORIGIN/.... 2025. 1. 14.
plot 한글 깨지는 현상 해결 ( Python, Pandas, matplotlib ) plot 한글 깨짐 현상 해결방법. ( ubuntu 기준 ) 1. 폰트 설치 및 시스템 캐시 업데이트 하기 sudo apt-get install -y fonts-nanum # 폰트 설치 sudo fc-cache -fv # 시스템 캐시 업데이트 sudo rm -rf ~/.cache/matplotlib # 폰트캐시제거 2. 설치된 폰트 목록 확인 import matplotlib.font_manager as fm fm.fontManager.ttflist 3. 폰트 지정 (나눔고딕 기준) import matplotlib.pyplot as plt plt.rc('font', family='NanumGothic') 순서대로 하면은 한글이 정상적으로 표시되는걸 확인할 수 있다. 2023. 11. 24.
[python] zero width space , <200b>, <200d>, u200b 삭제 python3 기준입니다. zero width space 폭없는 공백이란 뜻으로 파일에 적혀있어 파일 처리가 안될때가 있다. 제거하고 사용하고 싶을때 사용한다. s = 'zero test code' s = s.replace('\u200b','') ss = 'zero test \u200bcode' ss = ss.replace('\u200b','') replace 하여 처리해주면 된다. linux 환경에서 vi 에서 처리해주고 싶으면 :%s/\%u200b//g 명령어를 실행하면 된다. 2022. 8. 22.