메모

Conda(Anaconda)는 무엇일까?

어렵지만 2025. 11. 5. 16:21

https://anaconda.org/anaconda/conda

 

Conda | Anaconda.org

New Authentication Rolling Out - We're upgrading our sign-in process to give you one account across all Anaconda products! Browser users will see a refreshed sign-in flow, while CLI users will experience no changes.

anaconda.org

 

https://docs.conda.io/projects/conda/en/stable/

 

Conda Documentation — conda 25.9.1 documentation

Learn the basics of using conda such as creating and adding packages to environments

docs.conda.io

 

Conda는 리눅스 환경에서 사용되는 소프트웨어로 패키지관리자, 가상환경 관리자의 역할을 수행하는 오픈 소스 시스템입니다.

그럼 왜 사용할까요?

앞서 말씀드린 가상환경은 여러 프로젝트를 동시 진행할 때 발생 할 수 있는 충돌 문제를 해결합니다.

 

프로젝트(A와 B)를 진행한다고 가정해 봅시다.


프로젝트 A는 파이썬 3.7 버전과 Pandas 1.0 라이브러리가 필요합니다.
프로젝트 B는 파이썬 3.10 버전과 Pandas 2.0 라이브러리가 필요합니다.
만약 이들을 모두 하나의 시스템에 설치(일반적인 컴퓨터에 설치) 하면, 나중에 Pandas 2.0을 설치하는 순간 A 프로젝트에 필요한 Pandas 1.0이 덮어쓰여져 A 프로젝트가 작동하지 않게 됩니다.

 

그래서?
Conda는 프로젝트 A만을 위한 "서재 A" (가상 환경)를 만들고, 그 안에 필요한 Python 3.7과 Pandas 1.0만 깔끔하게 보관합니다.
동시에 프로젝트 B만을 위한 "서재 B" (또 다른 가상 환경)를 만들고, 그 안에 Python 3.10과 Pandas 2.0을 별도로 보관합니다.

결과는? 두 프로젝트는 서로에게 전혀 영향을 주지 않고 독립적으로 잘 작동합니다.
Conda는 이처럼 프로젝트별로 완벽히 독립된 전용 공간을 만들어 주는 도구입니다.

 

 

패키지 관리 비유: 쇼핑몰의 자동 주문 시스템
일반적인 설치: 필요한 옷(패키지)을 사기 위해 여러 쇼핑몰(저장소)을 돌아다니고, 그 옷에 맞는 신발, 액세서리(의존성)를 일일이 찾아서 주문해야 합니다.

Conda: Conda라는 자동 주문 시스템에 "나는 분석 라이브러리인 Numpy가 필요해!"라고 요청하면, Conda는...
Numpy가 작동하는 데 필요한 파이썬(Python) 버전과 다른 모든 작은 부품들(의존성)의 최적 조합을 자동으로 계산합니다.
이 모든 것을 가장 호환성 높고 안정적인 버전으로 한 번에 다운로드하여 설치해 줍니다.

가상 환경 관리
독립된 공간: Conda는 각 프로젝트마다 운영체제 내부에 완벽하게 격리된 '미니 OS' 같은 폴더 구조를 만들어 줍니다. 이 환경에는 독립적인 파이썬 인터프리터, 라이브러리, 실행 파일 등이 포함됩니다.

버전 고정: 특정 환경을 만들 때, 사용자는 파이썬 버전(예: 3.8)과 특정 라이브러리 버전을 정확하게 지정하여 고정할 수 있습니다.

환경 공유: environment.yml 파일을 통해 환경의 설정 목록을 쉽게 만들 수 있습니다. 이 파일을 다른 사람에게 공유하면, 그 사람도 명령어로 개발 환경을 자신의 컴퓨터에 복제할 수 있습니다.