분류 전체보기 (273) 썸네일형 리스트형 [Python] uv 프로젝트 관리 기존 python 생태계는 pip 와 requirements.txt 조합으로 패키지 의존성 관리를 해왔다. 나도 동일하게 pip, requirements.txt, venv 등을 사용해서 프로젝트 환경 관리, 패키지 관리 등을 했다. 이번에 새로운 프로젝트를 진행하면서 팀원의 제안으로 uv 도입을 검토하게 되었다. uv 는 더 빠른 속도의 패키지 관리를 넘어 프로젝트 전반적인 관리까지 다양한 기능을 제공해 준다고 한다. 이 글에서는 uv 가 무엇인지, 어떤 기능을 제공해주는지, 그리고 기존의 pip 와 어떤 차이가 있는지를 정리한다.1. uv 란uv 는 Rust 로 개발된 빠른 속도를 자랑하는 파이썬 패키지 및 프로젝트 관리 도구이다. 기본적인 파이썬 패키지 설치, 의존성 관리 등의 기능뿐 아니라 가상환경.. [Linux] sudo vs su 서버에서 작업을 하던 중 관리자 권한이 필요한 작업이 있었다. 관리자 권한을 얻기 위해서 'sudo su' 를 실행한 후 관리자 권한으로 작업을 진행했다. 그런데 명령어를 실행하니까 에러가 발생하면서 명령어가 정상적으로 동작하지 않았다. 로그상으로는 명령어가 저장된 path 를 찾지 못하는 것 같았다. 그래서 이번에는 'su -' 명령어로 관리자 권한을 얻은 뒤 명령어를 실행해보았다. 그러자 이번에는 정상적으로 명령어가 동작했다. 이 과정에서 sudo 와 su 가 같은 동작이 아닌 내부적으로 차이가 있다는 것을 알게 되었다. 이 글에서는 이 둘을 비교하면서 내용을 정리한다.1. sudo vs su- susu 는 substitue user 의 줄임말로 다른 계정, 다른 사용자로 전환하는 명령어이다. su .. [LLM] LLM Provider 와 OpenAI API 사내에서 LLM 을 이용한 서비스를 개발하고 있다. 그 과정에서 여러 LLM Provider 를 고려한 설계가 필요하게 되었다. 각 회사마다 제공하는 API 스펙, SDK 가 다르기 때문에 이들을 어떻게 한번에 관리할 수 있을까 고민하게 되었다. multiple LLM provider 에 대한 고민을 하면서 개발을 하고 있는데, 한번씩 그 내용들을 글로 정리하려고 한다. 이번 글에서는 처음했었던 고민과 OpenAI API 기반으로 초기 개발 방향을 선정한 과정을 정리한다.1. LLM API providerLLM 서비스를 개발하다보면 다양한 선택지의 provider 들을 만난다. OpenAI, Microsoft Azure, Anthropic, Google, Amazon Bedrock 등등 다양한 회사들에서.. [nginx] Docker 컨테이너 재시작 시, Nginx Connection Error 발생 docker compose 로 개발 환경을 구성했다. 이 환경에서 nginx 를 리버스 프록시로 사용하고 있는데, docker 서비스 컨테이너를 재시작 한 뒤 nginx 에서 Connection Error 가 발생하면서 해당 서비스에 접근하지 못하는 문제가 발생했다.여러 자료를 찾아보니 컨테이너를 재생성하면서 변경된 IP 가 nginx 에 캐싱된 IP 정보와 달라서 발생하는 문제였다. 문제는 nginx reload 로 DNS 정보를 업데이트 하여 문제를 해결했는데, 그 과정에서 찾아본 여러가지 내용들과 해결법 등을 정리해본다.1. docker compose network- default networkdocker compose 환경을 실행할 때 따로 네트워크를 명시하지 않으면 자동으로 기본 네트워크를 하나.. [Django] View - Base view Django view 의 가장 기본이 되는 View 클래스에 대해서 알아보려 한다.1. Base viewDjango 에서 view class 를 구현하기 위해 기본적으로 제공해주는 Base view 들이 있다. View, TemplateView, RedirectView 이렇게 3가지 클래스를 Base view 라고 한다. 이들은 각각의 용도에 맞게 사용할 수도 있고 다른 View class 에서 상속받아 사용하기도 한다. - View: 모든 class-based view 가 상속하는 클래스- TemplateView: request 로 입력된 parameter 들을 가지고 지정되어 있는 템플릿을 렌더링 해주는 view- RedirectView: 지정된 URL 로 redirect 하는 view 이 중에서 가.. [Django] View - function-based view, class-based view Django 에서는 비즈니스 로직에 따라 사용자의 요청을 처리하여 응답을 반환해주는 레이어를 View 라고 부른다. view 는 함수로 구현할 수도 있고, 클래스 형식으로도 구현할 수 있다. 이 글에서는 View 를 구현한 예제와 Django 에서 제공해주는 View 관련 기능들에 대해서 정리해본다.1. View 사용 에제- function-based views함수형 뷰는 request 를 받아서 response 를 반환하는 로직을 함수로 구현한 것이다. 함수의 결과값인 response 는 html 웹 페이지나, 다른 주소로의 redirect, xml 문서, json 형식 데이터, 이미지 등등 다양한 형식이 될 수 있다. View 함수는 일반적으로 django app 의 views.py 에 구현한다. 아.. [Django] Logging 개발을 하다보면 시스템의 상태에 대한 로깅이 필요한 경우가 있다. 이번 글에서는 Django 에서 제공하는 logging 기능과 어떻게 사용하는지 등에 대해서 정리해본다.1. LoggingDjango 는 python 의 기본 logging 모듈을 기반으로 기능을 제공한다. logging 모듈에 사용되는 Logger, Handler, Filter, Formatter 등을 Django setting 에 설정하고, 이를 코드에서 호출하여 사용할 수 있다.- Loggers로그를 남기기 위해 사용하는 객체로 logging system 의 기능을 제공하는 일종의 인터페이스이다. 각 logger 의 이름을 지정하여 원하는 logger 를 선택해서 logging 을 수행할 수 있다.Logger 는 DEBUG, INFO.. [Django] Caching Django 에서는 웹서버 개발에 필요한 여러가지 기능을 제공해주는데, 그 중 하나가 Cache 이다. 복잡한 연산의 경우 한번 실행된 결과를 캐싱해놓고 이를 재사용하는 식으로 성능을 향상할 수 있는데, 이 글에서는 Django 의 cache framework 를 어떻게 설정하고 사용하는지 정리해본다.1. Cache FrameworkDjango 에서 cache 를 사용하기 위해서는 settings 에 설정을 추가해줘야 한다. 설정은 settings 의 CACHES 라는 속성으로 dict 형식으로 값을 저장해주면 된다. 아래 코드는 CACHES 의 기본값으로 아무런 설정이 없는 경우 Local-memory caching 을 사용하도록 설정되어 있다. { "default": { "BACKE.. 이전 1 2 3 4 ··· 35 다음