도구들

스토리지와 컴퓨팅

AWS, GOOGLE 같은 것들

환경관리툴

conda, virtualenv 같은 것 들

conda와 virtualenv(venv) 비교

특징condavirtualenv/venv
지원 언어Python뿐 아니라 R, Julia 등 여러 언어 지원Python 전용
패키지 관리자체 패키지 관리(비단 Python 패키지뿐 아니라 C/C++, CUDA 등 시스템 라이브러리도 관리)pip 등 별도 도구 필요, 순수 Python 패키지만 관리
환경 관리환경 및 패키지 관리 통합(버전, 의존성 자동 해결)환경만 관리, 패키지는 pip 등으로 별도 설치
설치 및 사용별도 설치 필요(Anaconda, Miniconda 등)Python 표준 라이브러리(venv), 별도 설치 필요 없음(venv)
복잡한 의존성과학/데이터 분석 등 복잡한 의존성, 시스템 라이브러리까지 손쉽게 관리복잡한 의존성(특히 비-Python)은 직접 OS 패키지 매니저로 설치 필요
환경 위치기본적으로 중앙(글로벌) 위치에 환경 저장프로젝트 폴더별로 로컬 환경 생성
크기/성능환경 크기가 큼(수백 MB 이상), 설치 속도 느릴 수 있음환경 크기가 작음(수십 MB), 빠름
대표적 활용 분야데이터 과학, 머신러닝, 과학 컴퓨팅, 크로스플랫폼 개발웹 개발, 순수 Python 프로젝트, 경량 환경
상호운용성pip 사용 가능(권장: conda 패키지 우선, pip는 보조적으로만)pip와 완벽 호환
라이선스/상업적 제한일부 채널(Anaconda 기본 채널 등) 상업적 사용 제한 있음MIT 라이선스(제약 없음)

conda의 장점

  • Python뿐 아니라 R, Julia 등 다양한 언어와 시스템 패키지까지 환경에 포함 가능^2^5.
  • 과학/데이터 분석 등 복잡한 의존성과 시스템 라이브러리(C, Fortran, CUDA 등)까지 한 번에 설치 및 관리^3^6.
  • 환경 및 패키지 관리를 통합해, 재현성과 일관성 있는 개발 환경 제공^2^6.
  • conda-forge 등 방대한 커뮤니티 패키지 저장소 지원^3.

conda의 단점

  • 환경 크기가 크고, 설치 및 환경 생성 속도가 느릴 수 있음^3.
  • pure Python 프로젝트에는 다소 과한 선택일 수 있음^3.
  • 일부 패키지는 pip만큼 최신이 아닐 수 있고, conda와 pip 혼용 시 주의 필요^1^8.
  • Anaconda의 공식 채널은 상업적 사용에 라이선스 제한이 있을 수 있음^3.

virtualenv/venv의 장점

  • Python 표준 라이브러리(venv)는 별도 설치 없이 바로 사용 가능^2.
  • 환경 생성이 빠르고, 크기가 작아 경량 프로젝트에 적합^2^8.
  • 순수 Python 프로젝트에 충분하며, pip와 완벽 호환^2^7.
  • 라이선스 제약이 거의 없음^8.

virtualenv/venv의 단점

  • Python 이외의 언어나 시스템 패키지(C 라이브러리 등)는 직접 OS 패키지 매니저로 설치해야 함^2^5.
  • 복잡한 과학/데이터 분석 프로젝트에서는 환경 재현성이 떨어질 수 있음^3.
  • 패키지 의존성 충돌 해결이 conda에 비해 불편할 수 있음^2^5.

정리: 어떤 경우에 무엇을 선택할까?

  • 단순한 Python 프로젝트, 웹 개발, 경량 환경:
    venv/virtualenv가 빠르고 간단하며 충분합니다^2^7.
  • 데이터 과학, 머신러닝, 복잡한 의존성(특히 비-Python 라이브러리 포함):
    conda가 환경 재현성, 의존성 해결, 다양한 언어 지원 측면에서 훨씬 유리합니다^2^5.
  • 상업적 배포, 경량화, 최신 패키지 필요:
    venv/virtualenv가 더 적합할 수 있습니다^3.
  • 크로스플랫폼, 여러 언어/라이브러리 혼합 환경:
    conda가 강력한 선택입니다^2^5.

팁: 한 프로젝트 내에서는 conda와 venv를 혼용하지 않고, 하나의 도구만 사용하는 것이 가장 안전합니다^2.

컨테이너

docker - vmware랑 다름.

도커 생성 단계

  1. 도커 파일 작성
  2. 도커파일 내에 스크립트를 실행한다면 스크립트를 작성
  3. 도커파일 이미지 빌드
  4. 도커 컨테이너 실행

오케스트레이터

다수의 컨테이너를 조정하고 관리하는 시스템, 컨테이너 배포, 스케일링, 네트워킹 자동화

워크플로우 메니지먼트

airflow - DAG

CI/CD

연속 통합, 연속 배포
젠킨스

서버통신이론

HTTP, REST API

버전관리

git, mlops platfome 에서 버전관리 해줌
코드 버전 관리, 데이터 버전 관리, 모델 버전 관리(머신러닝 라이브러리에 포함되어 있다고 함)

데이터 버전 관리 도구
DVC, git LFS, delta lake

콘다 venv 차이

profile
Don Quixote

0개의 댓글