인프라/가상환경

[Anaconda] 아나콘다(Anaconda)란?

jwKim96 2019. 2. 9. 02:07

'아나콘다' 란 쉽게 말해, 라이브러리들을 쉽게 설치하고 관리할 수 있게 해주는 도구 이다.

이렇게만 말하면 쉽게 이해가 가지 않을 수 있으니 아래에서 python과 비교를 해보자.

  • sklearn : scikit-learn 패키지는 머신러닝 교육을 위한 파이썬 패키지
  • pandas(판다스) : 데이터 분석, 데이터 처리 등을 쉽게 하기 위해 만들어진 패키지
  • numpy(넘파이) : 벡터, 메트릭스, 고수준의 배열 등등, 과학계산 컴퓨팅에 사용되는 패키지
  • scipy(사이파이) : 고급 수학 함수, 수치적 미적분, 미분방정식 계산, 최적화, 신호 처리 등을 위한 다양한 과학 기술 계산 기능을 제공하는 패키지

파이썬은 기본적으로 패키지 관리 시스템인 pip만을 포함하고 있습니다.
그래서 필요한 툴, 패키지가 있다면 pip을 통해 수동으로 추가해야합니다.

그리고 이 작업은 컴퓨터 자체에 적용되기 때문에, 프로젝트를 여러번 진행하다 보면 필요한 패키지는 2~3개 정도면 되는데 10개 15개의 패키지들이 설치되어 필요 이상으로 공간을 차지하기도 합니다.

하지만, 아나콘다를 사용하면 이런 문제를 해결할 수 있습니다.

아나콘다는 가상환경을 만들어 그 안에 필요한 패키지들을 설치하고, 그 가상환경안에서 다른 모든 요소들과 '논리적' 으로 분리되어 개발환경이 조성됩니다.

python과 비교해 간단히 예를 들자면,

python 의 방식

내가 밴드를 하고싶어 보컬, 드럼, 베이스, 메인기타 할 사람들을 A단톡방에 부른다.

그리고 또, 축구를 하고싶어 공격수, 미드필더, 수비수, 골키퍼들을 A단톡방에 부른다.

이렇게 되면 A단톡방에 밴드를 하는사람, 축구를 하는사람 모두가 들어가게 되어 복잡해집니다.
그리고 밴드가 해체하게 되면, 일일이 보컬, 드럼, 베이스, 메인기타가 단톡방에서 나가야 합니다.

만약 밴드만 하고 축구를 하지 않는다면 이 방식은 문제가 되지 않지만, 여러가지를 병행하고싶다면 이 사람들을 관리하기가 쉽지가 않습니다.

아나콘다

밴드 단톡방을 만든다. 그 다음 보컬, 드럼, 베이스, 메인기타를 초대한다.
축구 단톡방을 만든다. 그 다음 공격수, 미드필더, 수비수, 골키퍼를 초대한다.

그리고 내가 밴드를 해체하면, 그냥 밴드 단톡방을 삭제하면 됩니다.
이러한 개념이라고 이해하시면 됩니다.

그래서 여기서 본 아나콘다 개념을 코드로 살짝 살펴보겠습니다.

conda create -n \[가상환경 이름\]  \[(옵션)추가로 설치할 패키지들 . . .\]

conda create -n my\_conda python=3.6 keras tensorflow pandas

my_conda 라는 이름의 가상환경이 생성되고, 그 환경에는

  • python 3.6버젼
  • keras
  • tensorflow
  • pandas

이 패키지들이 설치되고,

activate my\_conda

위 명령어를 통해 가상환경을 활성화시킬 수 있는데,

콘솔의 프롬프트 앞에 (my\_conda) 이런 표시가 생깁니다.

이는 가상환경 안이라는 표시이고,

  • python 3.6버젼
  • keras
  • tensorflow
  • pandas

이 패키지들만 설치된 컴퓨터를 사용하고 있는것 처럼 동작합니다.

그래서 필요에 따라 가상환경을 추가로 생성하여 각 프로젝트가 같은 하드웨어 위에서 소프트웨어 적으로(논리적으로) 다른환경에서 작동하게하고,
필요가 없어지면 가상환경을 삭제하는것 만으로 설치한 모든 패키지들을 제거할 수 있어 패키지를 관리하기에 훨씬 수월합니다.