Codebasic (c) 2015-2025
이 문서는 플랫폼별 기계학습 환경 설치 방법을 안내합니다. 아래 절차는 플랫폼 전반에 대체로 공통이며, 오픈소스 라이선스 소프트웨어만을 활용합니다.
- 윈도우(Windows)
- 유닉스 계열(Unix-like)
- 맥(macOS)
- 리눅스(Linux)
각 플랫폼별 환경 설정 섹션을 참조하여 설치를 진행할 수 있습니다.
미니콘다(Miniconda)를 각 플랫폼별 안내에 따라 설치합니다.
콘다는 크로스 플랫폼(cross-platform) 범용 바이너리 패키지 관리자입니다.
미니포지(Miniforge), 아나콘다 배포판(Anaconda Distribution)과 같은 콘다 배포판에서 사용되며, 다양한 시스템에서도 활용 가능합니다.
주로 파이썬(Python) 기반 소프트웨어와 라이브러리 설치 및 환경 관리에 활용되지만, 다른 언어의 패키지와 도구도 관리할 수 있습니다.
콘다 명령줄 인터페이스(CLI)는 전적으로 파이썬(Python)으로 작성되었으며, BSD 라이선스의 오픈소스로 공개되어 있습니다. Conda GitHub 저장소
콘다는 설치 후, 사용할 쉘에서 설정이 필요합니다.
conda init동작:
- 쉘 설정 파일(
.bashrc,.zshrc등)에 콘다 초기화 코드 추가 - 이후 터미널 재시작 시 자동으로 콘다 활성화
윈도우에서는 스크립트 실행 권한 설정이 필요할 수 있습니다.
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser해석:
RemoteSigned: 로컬 스크립트는 자유, 원격 스크립트는 서명 필요CurrentUser: 현재 사용자만 적용 (시스템 전역 영향 안 함)
모든 플랫폼에서 쉘을 재시작한 후 다음 명령으로 설정 확인:
conda --version성공적으로 설정되면 버전 정보가 출력됩니다.
출력 예시:
conda 24.1.2
아래는 대표적인 콘다 배포판(아나콘다, 미니콘다)의 개요입니다.
- Anaconda, Inc.에서 배포하는 패키지 배포판
- 파이썬, 콘다, 주요 과학계산/데이터분석 패키지(NumPy, pandas, scikit-learn 등) 기본 포함
- 장점: 설치 직후 바로 사용 가능, 신뢰성 높은 바이너리
- 단점:
- 용량 3GB 이상 (전체 설치 시)
- 기본 채널(defaults)은 상업적 사용 시 라이선스 제약 존재 (2023년부터 강화)
- 추가 패키지 설치 시 의존성 충돌 가능성
- 최소 설치판: 파이썬 + 콘다만 포함
- 장점:
- 용량 ~150MB로 경량
- 필요한 패키지만 설치하여 간결함
- 환경 오염 최소화
- 단점:
- 초기 세팅에 시간 소요
- 각 라이브러리를 직접 설치해야 함
- 권장: 깨끗한 환경 선호 개발자, 온라인 저장소 용량 제약 있는 환경
이 가이드의 선택: 미니콘다 + conda-forge 조합으로 가벼우면서도 라이선스 자유로운 환경 구축
- Anaconda, Inc.가 관리하는 기본 채널
- 바이너리 배포본은 Anaconda 약관(Terms of Service) 적용
- 상업적 사용(기업 환경) 시 별도 계약이 필요할 수 있음
- 라이선스 정책 변화: 2023년 10월부터 상업 사용자는 유료화
언제 사용하나?
- 개인 사용, 학습용
- Anaconda에서 명시적 라이선스 구입
- 전 세계 커뮤니티가 관리하는 채널
- 패키지 본래의 오픈소스 라이선스 그대로 배포
- 더 최신 버전의 패키지 제공 (빠른 업데이트)
언제 사용하나?
- 상업적 사용 (추가 비용 없음)
- 최신 패키지 버전 필요할 때
- 라이선스 명확성이 중요한 환경
이 가이드의 선택: 모든 절차에서 conda-forge 채널 사용 (오픈소스 라이선스 준수, 상업적 자유도)
상업적 사용 라이선스를 가정하지 않기 위해 아래 절차에서는 콘다-포지(conda-forge) 채널을 활용합니다.
기계학습 개발 환경 구축 방법은 두 가지입니다:
-
로컬 설치 (권장): Conda를 사용한 로컬 환경 설정
- 장점: 세밀한 제어, 즉시 개발 시작, 리소스 효율적
- 단점: 플랫폼별 호환성 이슈 가능, 의존성 관리 필요
- 대상: 리눅스/macOS 사용자, 빠른 프로토타이핑
-
도커 사용: 컨테이너 기반 격리된 환경
- 장점: 환경 일관성, 플랫폼 무관, 버전 충돌 없음
- 단점: 초기 학습곡선, 약간의 성능 오버헤드
- 대상: 윈도우 사용자, 복수 환경 관리, 본격 배포
conda create --name pyml python=3.10 --channel conda-forge주요 옵션:
--name pyml: 새로운 환경의 이름을 "pyml"로 지정 (프로젝트명과 동일하게 유지)python=3.10: Python 3.10 버전 사용 (2024년 기준 장기 지원 버전)--channel conda-forge: 오픈소스 커뮤니티 채널에서 패키지 설치
왜 이 구성인가?
- Python 3.10은 안정적이고 주요 라이브러리들이 잘 지원됨
- conda-forge는 라이선스 제약이 없어 상업적 사용에 적합
- 환경 이름을 프로젝트명으로 사용하면 여러 프로젝트 간 의존성 충돌 방지
생성된 환경 활성화:
conda activate pyml확인 방법:
- 터미널 프롬프트에
(pyml)표시 확인 python --version실행하여 3.10 버전 확인
환경이 생성된 이후, 다음을 실행하여 소프트웨어 설치를 진행합니다.
bash/zsh 쉘:
conda install -y \
-c conda-forge \
--override-channels \
"libblas=*=*openblas" \
"libcblas=*=*openblas" \
"liblapack=*=*openblas" \
libopenblas \
llvm-openmp \
numpy scipy scikit-learn pandas matplotlib \
ipykernelWindows PowerShell:
conda install -y `
-c conda-forge `
--override-channels `
"libblas=*=*openblas" `
"libcblas=*=*openblas" `
"liblapack=*=*openblas" `
libopenblas `
llvm-openmp `
numpy scipy scikit-learn `
pandas matplotlib `
ipykernel이 명령어는 다음과 같은 구성 요소로 이루어져 있습니다:
-
-y: 설치 중 모든 확인에 자동으로 "yes"로 응답하여 대화형 개입 없이 진행 -
-c conda-forge: conda-forge 채널에서 패키지 검색 (오픈소스 라이선스 우선) -
--override-channels: 기본 채널을 무시하고 conda-forge만 사용하도록 강제 -
선형대수 라이브러리 (OpenBLAS):
libblas,libcblas,liblapack,libopenblas: 행렬 연산 고성능화- OpenBLAS는 BLAS(Basic Linear Algebra Subprograms)의 오픈소스 구현
- NumPy, SciPy의 연산 속도를 대폭 개선
-
llvm-openmp: 다중 스레드 병렬 처리를 위한 라이브러리 -
과학계산 패키지:
numpy: 수치계산 기초 라이브러리scipy: 과학계산 함수 (선형대수, 최적화, 통계)scikit-learn: 기계학습 알고리즘pandas: 데이터 분석 라이브러리matplotlib: 데이터 시각화ipykernel: Jupyter 노트북 커널
설치 완료 후 다음 명령으로 확인할 수 있습니다:
conda run --name pyml python -c "import numpy, scipy, sklearn, pandas, matplotlib; print('모든 패키지 설치 완료')"주피터 랩(Jupyter Lab)은 웹 기반의 대화형 노트북 환경으로, 파이썬(Python) 코드 작성, 실행, 시각화를 한 곳에서 할 수 있습니다. 기계학습 실습에서 데이터 분석과 모델 개발에 주로 사용됩니다.
conda run --name pyml python -m ipykernel install --user --name pyml목적: Jupyter에서 pyml 환경을 선택할 수 있도록 커널 등록
ipykernel: 각 콘다 환경을 Jupyter 노트북에서 사용 가능하게 하는 커널--user: 현재 사용자만 접근 가능한 커널로 설치 (시스템 전역 설정 안 함)--name pyml: 노트북에서 표시될 커널 이름
conda install --name pyml --channel conda-forge jupyterlab주의: pyml 환경이 활성화된 상태에서 설치하거나 --name pyml 옵션 사용
conda run --name pyml --no-capture-output jupyter-lab옵션 설명:
--no-capture-output: 터미널 출력을 정상 표시 (기본 출력 리다이렉션 비활성화)
실행하면 기본 웹 브라우저가 자동으로 열립니다.
터미널에서 주피터 서버(Jupyter Server) 주소를 확인하려면 다음 명령을 실행합니다.
conda run --name pyml jupyter server list출력 예시:
Currently running servers:
http://localhost:8888/?token=82cd0... :: D:\pyml해석:
localhost:8888: 로컬 컴퓨터의 8888 포트에서 실행 중token=82cd0...: 처음 접속 시 필요한 토큰 (자동으로 처리됨)
도커를 활용하면 소프트웨어 설치와 설정이 완료된 상태로 바로 시작할 수 있습니다. 환경 설정 문제를 피하고 싶거나 다양한 프로젝트를 격리된 환경에서 관리하고 싶을 때 권장됩니다.
docker run --name pyml -d codebasic/pyml명령어 해석:
docker run: 도커 이미지에서 새로운 컨테이너 생성 및 실행--name pyml: 컨테이너 이름을 "pyml"로 지정-d: 백그라운드 모드(-detach) 실행 (즉시 제어권 반환)codebasic/pyml: 사용할 도커 이미지 (Repository/ImageName)
장점:
- 사전 구성된 환경으로 설정 시간 단축
- 호스트 시스템 영향 최소화
- 여러 버전/환경 동시 운영 용이
컨테이너에서 주피터 서버(Jupyter Server)가 실행 중인 경우, 호스트 웹 브라우저에서 다음 주소로 접속합니다.
http://localhost:8888
토큰 값이 필요한 경우, 도커 컨테이너 쉘에서 다음 명령으로 토큰 값을 확인합니다.
docker exec pyml jupyter server list해석:
docker exec: 실행 중인 컨테이너에서 명령 실행pyml: 대상 컨테이너 이름jupyter server list: 실행 중인 주피터 서버 목록 조회
컨테이너 내부의 URL은 호스트의 localhost로 접속해야 합니다. 다음 명령으로 호스트 주소로 자동 치환할 수 있습니다.
- 파워쉘(Windows PowerShell)
docker exec pyml jupyter server list | ForEach-Object { $_ -replace 'http://[^:]+', 'http://localhost' }- POSIX 쉘 (bash/zsh 등)
docker exec pyml jupyter server list | sed -E 's#http://[^:]+#http://localhost#'명령어 설명:
- 정규표현식:
http://[^:]+는 "http://"부터 ":"까지의 호스트명 패턴 매칭 - 컨테이너 내부 IP를
localhost로 치환하여 호스트 브라우저에서 접속 가능