데이터 과학과 기계학습은 대체로 파이썬을 기본 프로그래밍 환경으로 가정합니다. 파이썬은 윈도우·맥·리눅스 등 주요 운영체제를 모두 지원하며, 수치 계산과 데이터 처리를 위한 풍부한 라이브러리 생태계를 갖추고 있습니다. 이 책의 모든 코드는 파이썬으로 작성되었습니다.
1모듈과 패키지¶
파이썬에서 코드를 담은 파일 하나를 모듈(module) 이라 하고, 모듈을 하나 이상 묶어 배포하는 단위를 패키지(package), 또는 라이브러리라고 합니다. 기계학습 환경을 구축한다는 것은 결국 필요한 패키지들을 설치하는 일입니다. 패키지는 보통 pip 명령으로 설치합니다.
pip install numpy2가상환경¶
패키지는 기본적으로 파이썬 경로 아래 한곳에 설치됩니다. 그런데 프로젝트마다 요구하는 패키지나 버전이 다르면 서로 충돌할 수 있습니다. 이를 피하기 위해 프로젝트별로 독립된 패키지 공간을 만드는데, 이것을 가상환경(virtual environment) 이라 합니다. 파이썬 표준 도구인 venv나 뒤에서 소개할 conda로 만들 수 있습니다.
기계학습 소프트웨어는 종류가 다양하고 버전 갱신도 활발해 호환성 관리가 특히 까다롭습니다. 그래서 기계학습 환경은 독립적인 가상환경을 만들고 그 안에 필요한 패키지를 설치하는 것이 바람직합니다.
3배포판과 conda¶
데이터 과학에서 자주 쓰는 패키지(numpy·pandas·matplotlib·scikit-learn 등)를 하나하나 설치하는 것은 번거롭습니다. 그래서 이런 패키지들을 미리 묶어 둔 배포판(distribution) 이 있으며, 대표적인 것이 아나콘다(Anaconda) 입니다. 아나콘다의 패키지·환경 관리 도구가 conda 로, conda 로 가상환경을 만들고 패키지를 관리할 수 있습니다. 핵심 도구만 담은 가벼운 미니콘다(Miniconda) 도 널리 쓰입니다.
4Jupyter¶
Jupyter 는 웹 브라우저에서 코드를 작성하고 즉시 실행해 볼 수 있는 대화형 개발 환경입니다. 코드·실행 결과·그림·설명(마크다운)을 한 문서에 담을 수 있어, 데이터를 탐색하고 분석 과정을 기록하기에 좋습니다. 이 책의 각 장도 Jupyter 노트북으로 작성되었습니다. 예전 방식은 주피터 노트북, 차세대 인터페이스는 주피터 랩(JupyterLab) 이라 합니다.
5이 책의 실행 환경¶
환경 설정은 운영체제와 하드웨어에 따라 차이가 있어 번거로울 수 있습니다. 이 책은 재현 가능한 환경을 위해 도커(Docker) 이미지를 사용합니다. codebasic/pydeep 이미지에는 conda 가상환경 pyml 이 준비되어 있어, 별도 설치 없이 동일한 환경에서 코드를 실행할 수 있습니다.
미리보기(라이브 리로드)는 저장소의 docker/compose.jupyter-book.yaml 로 실행합니다.
docker compose -f docker/compose.jupyter-book.yaml up -d이어지는 장에서는 이 환경에서 기계학습의 바탕이 되는 도구 — NumPy·pandas·SciPy·matplotlib — 를 차례로 살펴봅니다.