자~ 이제 파이썬 공부를 시작합시다.
우리가 쉽게 접하는 파이썬 입문서, 입문 자료를 보면 처음에는 파이썬 학습을 위한 환경설정들을 설명해 줍니다.
어디서 파이썬 모듈을 다운로드 받아서 설치하고.. 환경은 어떻게 설정하고.. 그리고 많이 사용되는 IDE로 Jupyter Notebook의 사용법을 설명합니다.
뭐.. Jupyter Notebook의 내용은 없는곳도 많지만요.
그리 어렵지 않은 내용이라서 누구나 쉽게 익힐 수 있습니다.
그럼 우리는 이러한 준비작업들이 왜 이렇게 구성되었는지를 하나하나 살펴보도록 합시다.
먼저 잘 알려져있는 파이썬의 특징, 장점을 다시 한 번 확인해보죠.
1. 문법이 간단해서 가독성이 좋고 비전공자도 배우기 쉽다. 2. 인터프리터 형의 언어라서 실행결과를 바로 확인할 수 있어서 개발이 쉽고 개발 시간을 단축해 준다. 3. 풍부한 라이브러리를 가지고 있어서 쉽고 효율적으로 개발할 수 있다. |
먼저 첫 번째 장점인 쉬운 문법입니다.
이건 뭐 꾸준히 공부해 나가면 되는 부분이라서 따로 준비가 필요한 것은 없겠네요.
다음으로 인터프리터 형의 언어에 따른 특징이군요.
파이썬 입문서나 다양한 자료들을 보시면 Jupyter Notebook이라는 개발도구를 많이 추천하고, 또 사용하고 있습니다.
그럼 파이썬 개발도구는 Jupter Notebook 밖에 없는걸까요?
아니죠.
파이썬을 설치하면 기본적으로 터미널 환경에서 개발할 수 있습니다.
(최근 윈도우에도 터미널이 생겼습니다. https://devblogs.microsoft.com/commandline/windows-terminal-1-0/ )
그런데 터미널 환경을 통해 개발하는 것은 여러가지로 불편함이 많으며 편의성, 효율성 등이 떨어집니다.
그래서 다양한 프로그래밍 언어들은 개발자에게 편의성을 높여주고 개발에 다양한 도움을 주는 통합 개발 환경 (Integrated Development Environment, IDE)을 제공하고 있습니다.
파이썬을 지원하는 다양한 IDE들을 살펴보세요.
다음과 같습니다.
그런데 위에서 보는 IDE는 대부분 인터프리터 형의 언어보다는 컴파일 형의 언어에 더 적합한 형태입니다.
사실 개발하는 프로그램이 커질수록 인터프리터 형의 언어로는 어려운 점이 많습니다.
그래서 많은 파이썬 개발자들은 파이썬의 특징을 살리는 인터프리터 형 IDE가 아닌 컴파일 형 IDE를 사용합니다.
파이썬의 입문서나 다양한 입문 자료들이 추천하는 Jupyter Notebook과 같은 인터프리터 형 IDE가 아니죠.
왜 그럴까요?
큰 규모의 개발을 수행하는 전문가들과 달리 우리처럼 처음 파이썬을 배우는 입장에서는 코드를 작성하고 바로 결과를 확인할 수 있는 인터프리터 형의 언어가 훨씬 편리하기 때문입니다.
또한 특정 기능에 대한 프로토타입을 개발하거나 관련된 연구를 진행하는 경우에도 인터프리터 형의 언어가 더 효율적일 수 있습니다.
그러다보니 파이썬의 입문서나 다양한 입문 자료들은 가장 많은 사용률을 보이는 컴파일 형 IDE보다 인터프리터 형 IDE인 Jupyter Notebook과 같은 도구를 제안하는 것입니다.
우리도 어느 정도 파이썬에 익숙해지고 경험이 쌓이게되면, 그리고 점점 더 큰 프로젝트를 수행하게 된다면 컴파일 형 IDE로 옮겨가겠죠.
그렇지만 Jupyter Notebook과 같은 인터프리터형 IDE를 완전히 손에서 놓지는 않을겁니다.
마지막 특징은 풍부한 라이브러리의 지원으로 인한 장점입니다.
파이썬은 기본적으로 포함된 라이브러리와 써드파티 라이브러리 등 아주 많은 라이브러리 패키지를 제공하고 있습니다.
우리가 어떤 기능을 필요로 할 때, 필요한 라이브러리를 import 하는 것만으로 해당 기능을 우리의 코드에 쉽게 적용할 수 있습니다.
그런데 여기서 알아둬야 할 것은 필요한 라이브러리를 import하려면 일단 우리의 개발 환경이 구축된 시스템에 해당 라이브러리가 실제로 설치되어 있어야 합니다.
그렇다면 자주 사용하는 라이브러리들을 모아서 미리 설치해두면 편하겠죠.
그래서 아나콘다와 같은 파이썬 배포판이 나타나게 된 것입니다.
이러한 배포판들은 파이썬 기본 모듈과 함께 많이 사용하는 라이브러리 패키지들을 미리 설치해서 제공하거나 또는 쉽게 설치할 수 있게 지원합니다.
그럼 처음 설치할 때 다 같이 묶어서 설치하면 되지 꼭 저런 배포판을 써야 하나요? 라는 질문이 생길 수 있겠네요.
파이썬은 크게 2.x 버전과 3.x 버전이 존재합니다.
그런데 2.x 버전과 3.x 버전은 서로 잘 호환되지 않습니다.
2020년 4월 20일 파이썬 2.x 버전의 마지막 릴리즈가 등록되면서 파이썬 2.x 버전은 더이상 업그레이드 되지 않는다 (2020.04.20 기준, 출처 : https://blog.python.org/2020/04/python-2718-last-release-of-python-2.html )고는 하지만 여전히 파이썬 2.x 버전으로 개발되는 프로젝트와 관련 자료들은 존재합니다.
따라서 하나의 시스템에 여러 버전의 파이썬이 설치되어 있는 경우에는 각 파이썬 버전 사이의 충돌 등이 예상되죠.
또한 다양한 라이브러리들 사이에도 종속성이나 여러가지 관계가 있는 경우나 라이브러리 버전간 호환성이 없는 경우(버전별로 기능이 다르거나 성능에 차이가 있는 경우도 포함)에는 특정 라이브러리 패키지를 설치하게 되면 그 영향을 받는 코드가 만들어 질 가능성도 생깁니다.
그리고 구축된 개발 환경에서 서로 충돌되는 사항은 없다고 하더라도 쓸데없는 라이브러리 패키지가 설치되어 있으면 괜히 시스템이 더 무거워지겠죠.
그래서 전문가들은 각 프로젝트별로 독립적인 개발 환경(가상 환경)을 구축할 것을 권장하고 있으며, 이 때 많이 사용되는 것이 아나콘다 배포판의 conda, vertualenv, pyenv 와 같은 지원도구들입니다.
가상 환경을 만들 때에는 파이썬의 버전, 사용될 라이브러리 패키지의 설치, 설치될 각 라이브러리 패키지의 버전 지정 등을 고려, 적용하여 만들게 됩니다.
지금까지 설명드린 내용때문에 파이썬을 시작할 때 준비작업이 필요하게 된 것이죠.
이런 내용을 모른다고 해도 파이썬 학습, 개발 등에는 아무런 문제가 없고, 또 얼마간 파이썬을 사용하다 보면 자연스럽게 알게 될 것입니다.
그러나 이런 내용을 미리 알고 시작한다면 그만큼 파이썬 개발 환경에 대한 이해도가 높아질 것으로 생각됩니다.
다음 글에서는 파이썬 개발환경 설치와 파이썬 학습을 시작하는 간단한 코드를 구축 방법을 살펴보겠습니다.
'개발 도구들 > Python' 카테고리의 다른 글
파이썬으로 프로그래밍에 도전하자(3) (0) | 2020.12.08 |
---|---|
파이썬으로 프로그래밍에 도전하자(2) (0) | 2020.12.07 |
파이썬으로 프로그래밍에 도전하자(1) (0) | 2020.12.06 |
입문편: 파이썬 문법 기초 (2) | 2020.06.17 |
입문편: 파이썬 환경 구축하기 (0) | 2020.06.12 |