๊ฐœ์š”

Miniconda๋Š” Anaconda Distribution์˜ ์ตœ์†Œ ์„ค์น˜ ๋ฒ„์ „์œผ๋กœ, conda ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž์™€ Python, ๊ทธ๋ฆฌ๊ณ  ์ด๋“ค์ด ์˜์กดํ•˜๋Š” ํŒจํ‚ค์ง€๋“ค, ๊ทธ๋ฆฌ๊ณ  ์†Œ์ˆ˜์˜ ์œ ์šฉํ•œ ํŒจํ‚ค์ง€๋งŒ์„ ํฌํ•จํ•˜๋Š” ๋ฌด๋ฃŒ ๊ฒฝ๋Ÿ‰ ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค1.

์ฃผ์š” ํŠน์ง•

๊ฒฝ๋Ÿ‰ ์„ค์น˜

  • Miniconda๋Š” ์•ฝ 400MB์˜ ๋””์Šคํฌ ๊ณต๊ฐ„๋งŒ ํ•„์š”ํ•œ ๋ฐ˜๋ฉด, Anaconda๋Š” ์•ฝ 3GB๊ฐ€ ํ•„์š”ํ•˜๋‹ค
  • ํ•„์š”ํ•œ ํŒจํ‚ค์ง€๋งŒ ์„ ํƒ์ ์œผ๋กœ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์–ด ๊น”๋”ํ•œ ํ™˜๊ฒฝ ์œ ์ง€๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค

Conda ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž

Conda๋Š” ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž์ด์ž ํ™˜๊ฒฝ ๊ด€๋ฆฌ์ž๋กœ ์ž‘๋™ํ•˜๋ฉฐ, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค:

  • ๊ณต๊ฐœ ์ €์žฅ์†Œ์—์„œ ์ˆ˜์ฒœ ๊ฐœ์˜ ํŒจํ‚ค์ง€์— ์ ‘๊ทผ ๊ฐ€๋Šฅ
  • conda-forge, bioconda ๋“ฑ ๋‹ค์–‘ํ•œ ์ฑ„๋„์—์„œ ํŒจํ‚ค์ง€ ์„ค์น˜ ๊ฐ€๋Šฅ
  • ์–ธ์–ด์— ๊ตฌ์• ๋ฐ›์ง€ ์•Š๋Š” ์‹œ์Šคํ…œ ์ˆ˜์ค€์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒจํ‚ค์ง€ ๋ฐ ํ™˜๊ฒฝ ๊ด€๋ฆฌ

๋ช…๋ น์ค„ ์ธํ„ฐํŽ˜์ด์Šค

Miniconda๋Š” ๋ช…๋ น์ค„ ์ธํ„ฐํŽ˜์ด์Šค(CLI)๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ, Anaconda์— ํฌํ•จ๋œ Navigator GUI๋Š” ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค.

Anaconda vs Miniconda

ํŠน์ง•MinicondaAnaconda
์„ค์น˜ ํฌ๊ธฐ~400MB~3GB
์‚ฌ์ „ ์„ค์น˜ ํŒจํ‚ค์ง€์ตœ์†Œํ•œ์˜ ํŒจํ‚ค์ง€1,500๊ฐœ ์ด์ƒ์˜ ํŒจํ‚ค์ง€
์ธํ„ฐํŽ˜์ด์Šค๋ช…๋ น์ค„(CLI)๋ช…๋ น์ค„ + GUI(Navigator)
๋Œ€์ƒ ์‚ฌ์šฉ์ž์ˆ™๋ จ๋œ ์‚ฌ์šฉ์ž, ์ตœ์†Œ ํ™˜๊ฒฝ ์„ ํ˜ธ์ดˆ๋ณด์ž, ์ฆ‰์‹œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ™˜๊ฒฝ ์„ ํ˜ธ

์„ ํƒ ๊ฐ€์ด๋“œ

Miniconda๋ฅผ ์„ ํƒํ•˜๋Š” ๊ฒฝ์šฐ:

  • ํ•„์š”ํ•œ ํŒจํ‚ค์ง€๋ฅผ ์ •ํ™•ํžˆ ์•Œ๊ณ  ์žˆ๋Š” ๊ฒฝ์šฐ
  • ๊น”๋”ํ•˜๊ณ  ์ตœ์†Œํ•œ์˜ ํ™˜๊ฒฝ์„ ์œ ์ง€ํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ
  • ๋””์Šคํฌ ๊ณต๊ฐ„์ด ์ œํ•œ์ ์ธ ๊ฒฝ์šฐ
  • ์ˆ™๋ จ๋œ Python ๊ฐœ๋ฐœ์ž

Anaconda๋ฅผ ์„ ํƒํ•˜๋Š” ๊ฒฝ์šฐ:

  • ๋‹ค์–‘ํ•œ ํŒจํ‚ค์ง€๋ฅผ ํƒ์ƒ‰ํ•˜๊ณ  ์‹ถ์€ ์ดˆ๋ณด์ž
  • ์ฆ‰์‹œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํฌ๊ด„์ ์ธ ์†”๋ฃจ์…˜์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ
  • GUI๋ฅผ ํ†ตํ•œ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ๋ฅผ ์„ ํ˜ธํ•˜๋Š” ๊ฒฝ์šฐ

์„ค์น˜ ๋ฐ ์„ค์ •

์„ค์น˜

  1. anaconda.com/download์—์„œ ์ตœ์‹  ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ ๋‹ค์šด๋กœ๋“œ
  2. ์šด์˜์ฒด์ œ์— ๋งž๋Š” ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰
  3. ๋กœ์ปฌ ์‚ฌ์šฉ์ž๋กœ ์„ค์น˜ (๊ด€๋ฆฌ์ž ๊ถŒํ•œ ๋ถˆํ•„์š”)
  4. Windows์˜ ๊ฒฝ์šฐ PATH์— ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ๊ถŒ์žฅ

์„ค์น˜ ํ™•์ธ

conda list

conda๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์น˜๋˜์—ˆ๋‹ค๋ฉด ์„ค์น˜๋œ ํŒจํ‚ค์ง€ ๋ชฉ๋ก์ด ํ‘œ์‹œ๋œ๋‹ค.

๊ฐ€์ƒ ํ™˜๊ฒฝ ๊ด€๋ฆฌ

๊ฐ€์ƒ ํ™˜๊ฒฝ์€ ํ”„๋กœ์ ํŠธ๋ณ„๋กœ Python๊ณผ ํŒจํ‚ค์ง€์˜ ๋…๋ฆฝ์ ์ธ ์„ค์น˜ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํŒจํ‚ค์ง€ ๋ฒ„์ „ ์ถฉ๋Œ์„ ๋ฐฉ์ง€ํ•˜๊ณ  ํ”„๋กœ์ ํŠธ ์žฌํ˜„์„ฑ์„ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ธฐ๋ณธ ๋ช…๋ น์–ด

ํ™˜๊ฒฝ ์ƒ์„ฑ

# ๊ธฐ๋ณธ ํ™˜๊ฒฝ ์ƒ์„ฑ
conda create --name myenv
 
# ํŠน์ • Python ๋ฒ„์ „ ์ง€์ •
conda create -n myenv python=3.9
 
# ํŒจํ‚ค์ง€์™€ ํ•จ๊ป˜ ์ƒ์„ฑ
conda create -n myenv scipy nodejs

ํ™˜๊ฒฝ ํ™œ์„ฑํ™”/๋น„ํ™œ์„ฑํ™”

# ํ™œ์„ฑํ™”
conda activate myenv
 
# ๋น„ํ™œ์„ฑํ™”
conda deactivate

ํ™˜๊ฒฝ ๊ด€๋ฆฌ

# ํ™˜๊ฒฝ ๋ชฉ๋ก ํ™•์ธ
conda info --envs
conda env list
 
# ํŠน์ • ํ™˜๊ฒฝ์˜ ํŒจํ‚ค์ง€ ๋ชฉ๋ก
conda list -n myenv
 
# ํ™˜๊ฒฝ ์‚ญ์ œ
conda remove --name myenv --all

ํ™˜๊ฒฝ ๊ณต์œ 

# ํ™˜๊ฒฝ ๋‚ด๋ณด๋‚ด๊ธฐ
conda export > environment.yml
 
# ํ™˜๊ฒฝ ํŒŒ์ผ๋กœ๋ถ€ํ„ฐ ์ƒ์„ฑ
conda env create -f environment.yml

๋ฒ ์ŠคํŠธ ํ”„๋ž™ํ‹ฐ์Šค

  1. Base ํ™˜๊ฒฝ ์‚ฌ์šฉ ๊ธˆ์ง€: base ํ™˜๊ฒฝ์„ ์ง์ ‘ ์‚ฌ์šฉํ•˜์ง€ ๋ง๊ณ , ํ•ญ์ƒ ํ”„๋กœ์ ํŠธ๋ณ„ ๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ์ƒ์„ฑํ•œ๋‹ค2
  2. ๋™์‹œ ์„ค์น˜: ํ•„์š”ํ•œ ๋ชจ๋“  ํŒจํ‚ค์ง€๋ฅผ ํ•œ ๋ฒˆ์— ์„ค์น˜ํ•œ๋‹ค. ํ•˜๋‚˜์”ฉ ์„ค์น˜ํ•˜๋ฉด ์˜์กด์„ฑ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค
  3. conda ์šฐ์„ , pip๋Š” ํ•„์š”์‹œ: ๋จผ์ € conda๋กœ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๊ณ , conda์— ์—†๋Š” ๊ฒฝ์šฐ์—๋งŒ pip๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค
  4. ํ™˜๊ฒฝ ํŒŒ์ผ ๊ด€๋ฆฌ: ์žฌํ˜„์„ฑ์„ ์œ„ํ•ด environment.yml ํŒŒ์ผ๋กœ ํ™˜๊ฒฝ์„ ๊ด€๋ฆฌํ•œ๋‹ค
  5. ํฌ๋กœ์Šค ํ”Œ๋žซํผ ํ˜ธํ™˜์„ฑ: ๋‹ค๋ฅธ ํ”Œ๋žซํผ์—์„œ ์‚ฌ์šฉํ•  ํ™˜๊ฒฝ์„ ๋‚ด๋ณด๋‚ผ ๋•Œ๋Š” --from-history ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค

๊ถŒ์žฅ ์›Œํฌํ”Œ๋กœ์šฐ

  1. ์ƒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ์œ„ํ•œ ๊ฐ€์ƒ ํ™˜๊ฒฝ ์ƒ์„ฑ
  2. ํ™˜๊ฒฝ ํ™œ์„ฑํ™”
  3. ํ•„์š”ํ•œ ํŒจํ‚ค์ง€ ์„ค์น˜
  4. ์žฌํ˜„์„ฑ์„ ์œ„ํ•ด ํ™˜๊ฒฝ ํŒŒ์ผ ๋‚ด๋ณด๋‚ด๊ธฐ

์ฃผ์š” ์‚ฌ์šฉ ์‚ฌ๋ก€

  • ๊ฒฝ๋Ÿ‰ Python ํ™˜๊ฒฝ: ์ตœ์†Œํ•œ์˜ ์„ค์น˜๋กœ ์‹œ์ž‘ํ•˜์—ฌ ํ•„์š”ํ•œ ํŒจํ‚ค์ง€๋งŒ ์ถ”๊ฐ€
  • ๋ฐ์ดํ„ฐ ๊ณผํ•™ ํ”„๋กœ์ ํŠธ: ํ”„๋กœ์ ํŠธ๋ณ„๋กœ ๋…๋ฆฝ๋œ ํŒจํ‚ค์ง€ ํ™˜๊ฒฝ ๊ตฌ์„ฑ
  • ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ด€๋ฆฌ: ๋‹ค์–‘ํ•œ Python ๋ฒ„์ „๊ณผ ํŒจํ‚ค์ง€ ์กฐํ•ฉ ํ…Œ์ŠคํŠธ
  • CI/CD ํŒŒ์ดํ”„๋ผ์ธ: ๋น ๋ฅธ ์„ค์น˜๊ฐ€ ํ•„์š”ํ•œ ์ž๋™ํ™” ํ™˜๊ฒฝ

์ฐธ๊ณ  ์ž๋ฃŒ

Footnotes

  1. Anaconda. โ€œMiniconda Documentationโ€. https://www.anaconda.com/docs/getting-started/miniconda/main โ†ฉ

  2. Best practice ๊ถŒ์žฅ์‚ฌํ•ญ์œผ๋กœ, base ํ™˜๊ฒฝ ๋Œ€์‹  ๋…๋ฆฝ๋œ ๊ฐ€์ƒ ํ™˜๊ฒฝ ์‚ฌ์šฉ์„ ๊ฐ•์กฐ โ†ฉ