비주얼스튜디오 코드와 파이선

비주얼스튜디오 코드(Visual Studio Code)는 모든 MS 의 오픈소스 활동 중에서 최고의 성공작이라고 생각합니다. 출시 초기부터 안정적인 동작과 빠른 업데이트, MS 이기에 가능한 완벽한 한글 지원, 높은 확장성과 이에 화답하는 풍부한 커뮤니티 확장 프로그램들은 더욱 더 코드(code)를 사랑하게 합니다. 저는 개발 뿐만 아니라 텍스트가 필요한 거의 모든 작업을 비주얼스튜디오 코드에서 하고있으며, 지금 이 블로그도 비주얼스튜디오 코드에서 쓰고 있습니다.

1. Hello, world 로 가볍게 시작하기

새로운 프로젝트를 만들어봅시다. 비주얼스튜디오 코드는 프로젝트를 하나의 디렉토리 단위로 바라봅니다. (앞으로 비주얼스튜디오 코드는 짧게 code 라고 부르겠습니다)

프로젝트 만들기

The C Programming Language 이후로 “Hello, world” 보다 나은 시작은 없었습니다. 터미널에서 hello 디렉토리를 만들고 code를 실행합니다.

mkdir hello
cd hello
code .

code . 는 현재 디렉토리 (.)를 프로젝트 root 로 삼는 code를 시작하라는 의미입니다. 디렉토리에 들어가지 않고, 바로 code hello를 해도 hello 디렉토리를 프로젝트, 즉 같은 프로젝트가 시작합니다.

확장 프로그램 설치

우선, 확장 프로그램을 하나 설치하고 진행하겠습니다. 명령 팔레트 ( Command(⌘) + Shift(⇧) + p )를 열어서 ‘Extensions: Install Extensions’ 를 실행합니다. 입력창에 python을 입력하고 처음 나오는 확장 프로그램 (Extension)을 설치합니다.

여러분의 파이선 코드작성을 여러모로 도와줄 기특한 녀석입니다.

코드 작성

새로운 파일 main.py를 만들어서 아래의 파이선 코드를 입력합니다.

msg = "Hello, world"
print(msg)

코드 실행하기

실행하기 위해서 code를 벋어날 필요가 없습니다. 코드 창에서 우클릭 -> ‘Run Python file in Terminal (⌘R)’ 를 실행하면, 코드 창 아래 터미널이 열리면서 파이선이 실행된 결과를 확인할 수 있습니다.

$ python /Users/kyryu/hello/main.py
Hello, world

멋있지 않나요? 코드 작성 중에 언제나 ⌘R 키를 누르면 마치 IDE 처럼 코드를 실행해서 결과를 확인할 수 있습니다.

디버깅

스크립트 언어에서 까다로운 디버깅도 code에서는 쉽게 할 수 있습니다. 디버그 뷰 (Debug View)에서, 원하는 줄에 중지점(break point)를 선택하고, 디버깅 시작 (Start Debugging, F5)를 누르면 중지점에서 실행이 멈추면서 좌측 디버그 뷰의 VARIABLES 영역에서 로컬 변수의 값을 비롯한 다양한 디버깅 정보를 확인할 수 있습니다.

디버깅 흐름이 2 행에 멈췄을 때, VARIABLES 영역에서 msg의 값을 더블클릭한 후 Welcome!으로 바꾼 후 다시 실행하면 결과가 바뀌는 것을 확인할 수 있습니다 .

$ python /Users/kyryu/hello/main.py
Welcome!

2. 내게 맞는 환경 꾸미기

사실 저는 파이선 3 으로 개발하지만, 혹시나 하위 호환이 되지않는 프로그램이 있을 수 있기 때문에 시스템은 파이선 2 를 유지하고 있습니다.

code를 닫고 pipenv를 이용해서 파이선 3 환경을 만들어줍니다.

파이선 3 와 numpy

pipenv --three
pipenv install numpy

code를 다시 실행하고, 새로 만든 환경에 설치한 numpy를 사용해봅시다.

import numpy as np
a = np.arange(15).reshape(3, 5)

print(a.shape)

이때, 바로 사용하면 numpy 를 찾을 수 없다는 메시지가 나옵니다.

$ python /Users/kyryu/hello/main.py
Traceback (most recent call last):
  File "/Users/kyryu/hello/main.py", line 1, in <module>
    import numpy as np
ImportError: No module named numpy

이제 code에게 새로운 환경을 알려주도록 합시다. 명령 팔레트 ( Command(⌘) + Shift(⇧) + p )를 열어서 ‘Python: Select Interpreter’ 를 실행하면 좌측 하단에 Python 3.6.5 (pipenv)가 표시된 것을 확인할 수 있습니다. 이제 ⌘R를 눌러서 파일을 실행하면 결과가 잘 나오는 것을 확인할 수 있습니다.

pipenv 뿐만 아니라 virtualenv, conda 의 가상 환경도 자동으로 잘 찾아줍니다.

코드의 일부분만 실행

코드 실행이 쉬운건 좋은데, 매번 import와 배열을 만들어주는 것부터 시작한다면, 시간이 아깝죠? code는 선택한 코드만 실행하는 기능도 있습니다. 우선 코드 창에서 ⌘A로 전체 선택하고 명령 팔레트의 ‘Python: Run Selection/Line in Python Terminal’ 또는 shift(⇧) enter(↩︎)을 누르면 python의 기본 인터렉티브 쉘을 통해서 코드가 실행됩니다. 결과는 파일을 실행하는 것과 같지만, 만일 개발하면서 코드를 수정하거나 추가했을 때 해당하는 부분만 선택해서 실행하면 개발시간을 단축할 수 있습니다.

3. 결론

저장할 때 코드를 자동 포맷팅 하거나 pylint, 코드 조각을 이용한 빠른 코딩 등 아직 소개하지 않은 기능이 더 많습니다. 앞으로 비주얼스튜디오 코드를 소개하는 글을 통해서 팁들을 공유하도록 하겠습니다.