서버의 종류
• 웹서버
• 웹 애플리케이션 서버
• 데이터베이스
• 프록시 서버
• 캐시 서버
3.
Web Server와 WebApplication Server
• 정적인 파일을 제공하는 웹 서버
• 동적인 처리를 담당하는 웹 애플리케이션 서버(WAS)
4.
Web Server와 WebApplication Server
• 정적인 파일을 제공하는 웹 서버
• 서버가 제공하는 것: 파일 (html, jpg, png, txt⋯)
• 동적인 처리를 담당하는 웹 애플리케이션 서버(WAS)
• 서버가 제공하는 것: 계산된 결과, DB로부터의 데이터
• 예전에는 계산된 값을 담아 HTML 문서 형태로 제공하였으나,
현재는 데이터 그 자체(json)만 전달하는 경우가 대부분
대표적인 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
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