KEMBAR78
Python & Django Framework - UV를 이용한 Python 개발 환경 | PDF
Python & Django Framework
DEEP DIVE 클라우드 네이티브 엔지니어링
서버의 종류
• 웹 서버
• 웹 애플리케이션 서버
• 데이터베이스
• 프록시 서버
• 캐시 서버
Web Server와 Web Application Server
• 정적인 파일을 제공하는 웹 서버
• 동적인 처리를 담당하는 웹 애플리케이션 서버(WAS)
Web Server와 Web Application Server
• 정적인 파일을 제공하는 웹 서버
• 서버가 제공하는 것: 파일 (html, jpg, png, txt⋯)
• 동적인 처리를 담당하는 웹 애플리케이션 서버(WAS)
• 서버가 제공하는 것: 계산된 결과, DB로부터의 데이터
• 예전에는 계산된 값을 담아 HTML 문서 형태로 제공하였으나,
현재는 데이터 그 자체(json)만 전달하는 경우가 대부분
대표적인 Web Server
• nginx
• Apache
대표적인 WAS
• WAS는 http 서버 모듈을 내장하는 대부분의 언어에서 개발 가능
주로, WAS 구현을 돕는 프레임워크를 활용
• Python (django)
• node.js (express, fastify)
• 어떤 언어들은 WAS 기능을 담당하는 별도의 프로그램이 존재함
• Java (tomcat, Jetty)
• C# (.NET Framework, ASP.NET)
• Python (gunicorn WSGI)
개발 환경 설정 시 알아야 할 용어
• 패키지 매니저
• 가상 환경
• 종속성 (의존성)
Python, 패키지 매니저로 설치하세요
• 실행하고자 하는 파이썬 코드가 서로 다른 버전의 파이썬 런타임을
요구하는 경우가 많음
예)
• A라는 프로젝트는 Python 3.8에서 정상 작동
• B라는 프로젝트는 Python 3.11 이상을 요구
• 대표적인 패키지 매니저
• pyenv
• mise
• uv
프로젝트마다 각기 다른 환경 구성
• 가상 환경
• 같은 python 버전이라도, 프로젝트마다 요구하는 의존성이 다를 수 있다
예)
• A라는 프로젝트에서는 numpy 2.0 버전을 필요로 한다
• B라는 프로젝트에서는 numpy 1.20 버전을 필요로 한다
• 디렉토리마다 .venv 파일을 통해 가상 환경을 설정
• 관련 툴
• venv
종속성 설치
• 일반적으로 pip와 requirements.txt를 이용해서 종속성 설치
• 전통적인 방법이므로 익혀둘 필요가 있음
• pip install –r requirements.txt
• 컨테이너 환경에서는 이를 이용할 것임
종속성 설치
• pyproject.toml 을 사용하는 추세로 점차 바뀌는 중
• 프로젝트 메타데이터
• 종속성 관리가 pip보다 뛰어남
• 관련 툴
• Poetry
• uv
uv 하나만으로 대부분의 문제를 해결할 수 있음
• 프로젝트 생성
• uv init
• 가상 환경 구성
• uv venv
• 특정 종속성 설치
• uv add Django
• 종속성 조회
• uv tree
• pyproject.toml 을 기반으로 종속성 설치
• uv sync

Python & Django Framework - UV를 이용한 Python 개발 환경

  • 1.
    Python & DjangoFramework DEEP DIVE 클라우드 네이티브 엔지니어링
  • 2.
    서버의 종류 • 웹서버 • 웹 애플리케이션 서버 • 데이터베이스 • 프록시 서버 • 캐시 서버
  • 3.
    Web Server와 WebApplication Server • 정적인 파일을 제공하는 웹 서버 • 동적인 처리를 담당하는 웹 애플리케이션 서버(WAS)
  • 4.
    Web Server와 WebApplication Server • 정적인 파일을 제공하는 웹 서버 • 서버가 제공하는 것: 파일 (html, jpg, png, txt⋯) • 동적인 처리를 담당하는 웹 애플리케이션 서버(WAS) • 서버가 제공하는 것: 계산된 결과, DB로부터의 데이터 • 예전에는 계산된 값을 담아 HTML 문서 형태로 제공하였으나, 현재는 데이터 그 자체(json)만 전달하는 경우가 대부분
  • 5.
  • 6.
    대표적인 WAS • WAS는http 서버 모듈을 내장하는 대부분의 언어에서 개발 가능 주로, WAS 구현을 돕는 프레임워크를 활용 • Python (django) • node.js (express, fastify) • 어떤 언어들은 WAS 기능을 담당하는 별도의 프로그램이 존재함 • Java (tomcat, Jetty) • C# (.NET Framework, ASP.NET) • Python (gunicorn WSGI)
  • 7.
    개발 환경 설정시 알아야 할 용어 • 패키지 매니저 • 가상 환경 • 종속성 (의존성)
  • 8.
    Python, 패키지 매니저로설치하세요 • 실행하고자 하는 파이썬 코드가 서로 다른 버전의 파이썬 런타임을 요구하는 경우가 많음 예) • A라는 프로젝트는 Python 3.8에서 정상 작동 • B라는 프로젝트는 Python 3.11 이상을 요구 • 대표적인 패키지 매니저 • pyenv • mise • uv
  • 9.
    프로젝트마다 각기 다른환경 구성 • 가상 환경 • 같은 python 버전이라도, 프로젝트마다 요구하는 의존성이 다를 수 있다 예) • A라는 프로젝트에서는 numpy 2.0 버전을 필요로 한다 • B라는 프로젝트에서는 numpy 1.20 버전을 필요로 한다 • 디렉토리마다 .venv 파일을 통해 가상 환경을 설정 • 관련 툴 • venv
  • 10.
    종속성 설치 • 일반적으로pip와 requirements.txt를 이용해서 종속성 설치 • 전통적인 방법이므로 익혀둘 필요가 있음 • pip install –r requirements.txt • 컨테이너 환경에서는 이를 이용할 것임
  • 11.
    종속성 설치 • pyproject.toml을 사용하는 추세로 점차 바뀌는 중 • 프로젝트 메타데이터 • 종속성 관리가 pip보다 뛰어남 • 관련 툴 • Poetry • uv
  • 12.
    uv 하나만으로 대부분의문제를 해결할 수 있음 • 프로젝트 생성 • uv init • 가상 환경 구성 • uv venv • 특정 종속성 설치 • uv add Django • 종속성 조회 • uv tree • pyproject.toml 을 기반으로 종속성 설치 • uv sync