[Ruff] Python 포매팅과 린팅 한 번에 관리하기(w/ uv)
·
Python
1. Ruff란?Ruff는 Rust로 작성된 Python Linter & Formatter다.주요 특징은 다음과 같다.매우 빠른 린팅코드 포매팅 지원import 정렬 지원Flake8, isort 등 여러 도구의 규칙 지원pyproject.toml을 통한 설정 관리⚠️ 기존에 여러 도구를 조합해서 사용했다면 Ruff 하나로 상당 부분을 통합할 수 있다.2. 설치uv를 사용하고 있다면 다음과 같이 개발 의존성으로 추가한다.uv add --dev ruff 프로젝트 의존성에 추가하지 않으려면 `uv run` 대신 `uvx`를 사용하면 된다. (최초 실행시 별도의 격리된 환경에 설치됨)uvx ruff --version 설치 후 다음 명령어로 확인할 수 있다. (이 글에서는 `uv add`로 Ruff를 추가한 경우..
[uv] Python 패키지 매니저 완전 정복
·
Python
Python 패키지 관리의 새로운 표준, uv를 처음부터 차근차근 배워보자.1. uv란?Python으로 개발하다 보면 패키징 도구의 파편화에 한 번쯤 지쳐본 경험이 있을 것이다.1. 인터프리터 버전은 pyenv로,2. 가상환경은 virtualenv로,3. 의존성 잠금은 pip-tools로,4. CLI 도구는 pipx로 하나의 프로젝트를 제대로 굴리려면 네다섯 개의 도구를 머릿속에 동시에 띄워야 했다.📌`uv`는 이 모든 것을 하나로 합친다. Astral(현재 OpenAI 소속, Ruff를 만든 팀)이 Rust로 작성한 단일 바이너리로, pip·pyenv·pipx·virtualenv·pip-tools를 한 번에 대체한다.주요 특징단일 바이너리로 pip / pyenv / pipx / virtualenv /..
[Pytest] 입문자용 가이드
·
Python
Python 테스트의 표준, pytest를 처음부터 차근차근 배워보자. 1. pytest란?pytest는 Python에서 가장 널리 쓰이는 테스트 프레임워크다. 기본 내장 모듈인 unittest보다 훨씬 간결한 문법을 제공하고, 강력한 플러그인 생태계 덕분에 대규모 프로젝트에서도 널리 사용된다. 주요 특징함수 하나로 테스트 작성 가능 (클래스 불필요)assert 문만으로 직관적인 검증풍부한 플러그인 (pytest-cov, pytest-mock 등)자동 테스트 파일/함수 탐색2. 설치pip install pytest 설치 확인:pytest --version 3. 첫 번째 테스트 작성파일명은 test_로 시작하거나 _test로 끝나야 pytest가 자동으로 인식한다.# test_calculator.pydef..
[Docker] NVIDIA GPU가 인식되지 않을때
·
DevOps
에러 메시지Error response from daemon: could not select device driver "nvidia" with capabilities: [[gpu]] NVIDIA Container Toolkit 설치 Installing the NVIDIA Container Toolkit — NVIDIA Container ToolkitNote There is a known issue on systems where systemd cgroup drivers are used that cause containers to lose access to requested GPUs when systemctl daemon reload is run. Refer to the troubleshooting docu..
[Kubernetes] NVIDIA GPU 플러그인 인식 문제
·
DevOps
Kubernetes에서 NVIDIA GPU 플러그인이 인식되지 않을 때 — 트러블슈팅 기록AI 추론 서버 2대로 Kubernetes 클러스터를 구성하는 과정에서 GPU 플러그인이 노드에 인식되지 않는 문제를 겪었다. 원인을 찾는 데 꽤 시간이 걸렸어서 같은 상황에 처한 사람에게 도움이 되길 바라며 과정을 기록한다.환경Ubuntu 24.04Kubernetes (kubeadm)containerd (CRI)NVIDIA GPU 탑재 서버 2대 (Worker Node)CNI: Flannel문제 상황GPU 플러그인 DaemonSet을 배포했는데 Pod가 ContainerCreating 상태에서 멈췄다.kubectl get pods -n kube-system | grep nvidia# nvidia-device-plu..
[Kubernetes] Taint & Toleration 완전 정복
·
DevOps
Control Plane에 Pod가 안 뜨는 이유"분명히 클러스터에 노드가 있는데 왜 Pod가 Pending 상태에서 안 넘어가지?"쿠버네티스를 처음 접한 사람이라면 한 번쯤 겪어보는 당혹스러운 순간입니다.이 글에서는 그 원인 중 하나인 Taint와 Toleration을 개념부터 트러블슈팅까지 차근차근 살펴봅니다.1. Taint와 Toleration이란?비유로 이해하기Taint(오염)는 노드에 붙이는 "출입 제한 표지판" 이라고 생각하면 됩니다. 예를 들어 "위험물 취급 구역 — 허가받은 차량만 출입 가능" 같은 표지판이죠. 이 표지판이 붙은 구역(노드)에는 허가받은 차량(Pod)만 들어올 수 있습니다.그 허가증에 해당하는 것이 바로 Toleration(허용) 입니다.[노드] ←── Taint: "출입 ..
flash-attn 설치
·
카테고리 없음
uv pip install https://github.com/mjun0812/flash-attention-prebuild-wheels/releases/download/v0.4.15/flash_attn-2.8.3+cu126torch2.9-cp312-cp312-linux_x86_64.whl 아래 링크에서 호환되는 버전 참고https://github.com/mjun0812/flash-attention-prebuild-wheels/releases Releases · mjun0812/flash-attention-prebuild-wheelsProvide with pre-build flash-attention 2 and 3 package wheels on Linux and Windows using GitHub Act..
[EventBridge] AWS Lambda와 연동하기(일정 시간마다 자동 실행)
·
AWS
AWS Lambda 함수 생성 [AWS Lambda] Lambda로 Code 실행시키기1. Lambda 함수 생성오른쪽 위 함수 생성 클릭함수 이름 및 런타임 설정함수 예시이미지. 기본으로 제공해주는 Python 코드는 아래와 같습니다.import jsondef lambda_handler(event, context): # TODO implement return {ssun-g.tistory.com `EventBridge(CloudWatch Events)`를 추가 트리거로 설정하고 규칙을 설정합니다. 규칙 유형은 예약 표현식으로 합니다.예약 표현식Cron 표현식구문cron(fields)# cron(* * * * * *) -> 왼쪽부터 (분, 시간, 일, 월, Day-of-week, 연도)를 의미.# (초 단..