Python - 파이썬과 아나콘다 그리고 가상환경

컴퓨터/Python

728x90
반응형

서론

파이썬을 공부하기 시작하면 가장 먼저 파이썬을 설치하고 사용하는 방법에 대해서 배우게 됩니다. 

이때 파이썬을 설치하는 과정을 웹에서 검색해보면 정말 다양한 방법으로 설명을 해주어 오히려 혼동을 가지게 되는 경우가 있기도 합니다.

 

본문에서는 무작정 웹에서 검색한 파이썬을 따라 하기 전에 또는 따라한 후에 조금 더 깊이 파이썬을 다루기 전에 알아두면 좋은 상식을 넓히는 시간이 되었으면 좋겠습니다.

 

파이썬 - 파이썬은 프로그램이다.

이게 무슨 소리야? '파이썬은 프로그래밍 언어 아니야?'라고 반문하는 사람들 또한 많을 것이다. 특히 프로그래밍 세계에 입문하는 사람일수록 뭔 X소리냐고 물어볼 수 있다.

하지만 필자의 생각은 파이썬을 프로그램이 맞다.

 

가령 한 가지 예를 들어보도록 하자. C언어를 설치한다는 말을 들어본 적이 있는가? 없을 것이다. 

C언어를 사용해서 컴퓨터에 명령을 처리하는 과정을 대략적으로 살펴보면 아래와 같은 순서로 진행된다.

 

C언어 코드 작성 - 컴파일 - 컴파일된 프로그램 실행 

 

즉, C언어는 말 그대로 언어 그 자체다. 컴파일을 통해 C언어를 컴퓨터가 알아들을 수 있는 언어로 변경해 프로그램이 생성된다.

 

반대로 파이썬은 입문과정에서 파이썬을 설치한다라는 표현을 많이 쓴다. 그리고 다양한 웹 검색을 통해 정보를 얻다 보면 '파이썬은 인터프리터 방식의 프로그래밍 언어다''라고 설명을 많이 한다. 

 

여기서 한 가지 의문점이 생기게 된다. '인터프리터란 무엇인가?' 간단하게 설명하자면 컴파일러와 비슷한 역할을 하는 녀석이다. 특정 컴퓨터 언어를 한 줄씩 읽고 해석해서 컴퓨터에게 명령을 내리는 프로그램이다.

내용을 파이썬에 적용하면 아래처럼 정리할 수 있을 것이다.

 

  • 파이썬은 인터프리터 방식이다.
  • 파이썬 인터프리터는 프로그램이다.
  • 파이썬 인터프리터는 파이썬 언어를 한 줄씩 읽고 해석해서 컴퓨터에게 명령을 내린다.

즉, 통상 말하고 있는 파이썬은 파이썬 언어와 언어를 해석할 수 있는 파이썬 프로그램을 통틀어서 말하는 것이다.

따라서 파이썬을 배우는 과정은 파이썬 언어를 이용해서 파이썬 프로그램과 소통하는 방법을 배우는 것입니다.

 

아나콘다 - 파이썬 초심자 팩

흔히 파이썬을 통해 빅데이터 / 머신러닝 등을 공부하게 되면 아나콘다를 설치하여 시작하라고 말을 많이 한다.

'아니 파이썬을 배우러 왔는데 아나콘다는 뭐야?'라고 필자는 생각했었다. 아마 열심히 안 들어서 그랬을 가능성이 높다.

 

아나콘다에 대해서 설명하기 전에 파이썬은 수많은 사람들이 사용하고 있는 언어임과 동시에 수많은 패키지 즉 라이브러리가 존재한다. 수많은 패키지들이 조합되고 변형되어 다시 수많은 패키지들이 많들어진다. 

또한, 파이썬으로 빅데이터 분석 / 머신러닝 등을 쉽게 구현할 수 있는 이유도 이런 수많은 패키지의 존재 덕분이다.

 

하지만 초보자들에게는 개발하고자 하는 환경에 내가 필요로 하는 패키지를 일일이 설치하는 과정은 힘들 수 있다. 이런 패키지를 설치하고 사용하는 과정에서 패키지들 간의 충돌이 일어나거나, 운영체제 시스템과의 충돌 등의 문제가 발생할 수 있다.

 

그래서 파이썬 + 유명한 패키지 모음  + 환경에 최적화된 아나콘다(Anaconda)가 등장하고 인기를 받게 되었다.

 '파이썬이 처음이어도 아나콘다만 있으면 쉽고 편하게 개발할 수 있어~'가 된 것이다.

 

 

가상 환경 - 여러 프로젝트의 분류

이제 여러분이 파이썬과 아나콘다의 차이를 알고 터미널 환경에서 개발을 하든, 입맛에 맞는 IDE를 통해 개발을 하든 

어찌 됐는 무언가 파이썬 언어로 코드들을 작성하며 개발을 할 것이다. 

만약 한 컴퓨터에서 여러 가지 프로젝트를 진행하면 어떤 문제가 생길지 생각해 보도록 하. A, B, C 프로젝트가 있다고 가정해 보도록 하자

 

  • A 프로젝트 : 과거에 진행하던 프로젝트로 파이썬 3.5 Ver 사용
  • B 프로젝트 : 새로운 프로젝트로 파이썬 3.9 Ver 사용 
  • C 프로젝트 : B와 유사한  성격의 프로젝트

만약 하나의 컴퓨터에서 3가지 프로젝트를 하나의 파이썬 환경에서 실행한다면 몇 가지 문제가 생기게 될 수 있다.

  • 파이썬 버전의 호환성 문제
  • B와 C의 유사한 모듈(함수) 정의로 인한 호출 오류 등

이런 많은 문제들을 해결하고자 개발자들은 각각의 프로젝트들을 분류하고 물리적으로는 동일한 컴퓨터에서 진행하지만,

각각의 프로젝트에 각각의 파이썬 환경을 만들어야만 안전하게 개발을 진행할 수 있다. 

이런 환경을 구축하는 것을 가상 환경 구축이라고 하며 파이썬의 내장 모듈로 존재하며 Anaconda에서는 conda로 또 각각의 IDE에서는 자동으로 프로젝트별 가상 환경을 구축해주곤 한다.

 

 따라서 개발을 하는 환경에서 파이썬을 어떠한 형태로 구축했는지 정확하게 이해할 필요가 있다. 또한 필요에 의해서 환경에 맞게 적절한 가상 환경을 구축해서 개발을 해야만 여러 문제들을 사전에 예방할 수 있다.

 

마침 글

본문에서 파이썬 / 아나콘다 / 가상 환경 3가지 주제에 대해서 굵직한 부분에 대해서 설명하려고 노력했습니다. 

사실 부족한 필력과 부족한 지식을 정리해가며 글을 써 내려가는 것은 너무 어렵습니다.

주제에 대한 내용을 정리하기 위해 공부를 하던 과정에서 여유가 있더라면 조금 더 이런 전반적인 내용에 대해서 알고 Python에 접근했다면 조금 더 빨리 배울 수 있지 않을까 하는 생각이 들기도 했습니다.

 

저처럼 공부하는 사람들에게 이 글이 도움이 되었으면 합니다.

728x90
반응형

Commnet

G91개발일지

Gon91(지구일)

91년생 공학엔지니어의 개발일지

TODAY :

YESTER DAY :

TOTAL :