(연재) 파이썬은 처음이라 – IDLE은 처음이라

아주 당연한 이야기지만 어떤 프로그래밍 언어도 책으로만 공부할 수는 없다. 프로그래밍 언어에서 가장 중요한 것은 직접 코드를 타이핑해서 쳐보고, 그것을 실행해보는 경험이다. 이것은 단순히 책에 쓰여있는 글자를 그대로 타이핑해서 실행해보고 “아 이 코드는 되네”라는 경험을 말하는 것이 아니라, 책에 쓰여진 코드에서 어떤 부분을 바꿔보고 그것은 동작하는지를 예상한 후 확인해보는 것을 포함해야 한다. 제대로 실행이 되지 않거나 생각했던 것과는 다른 결과가 나온다면 다시 그것은 왜 그런지를 생각해보거나, 찾아보아야 한다. 그렇게 해서 답을 알게 되었다면 다시 예상했던 결과를 만들기 위해서 작성했던 코드를 어떻게 바꿔야 하는지를 고민해보고, 실험해 본다.

각각의 프로그래밍 코드 조각은 작은 레고 블럭과 같아서, 그 자체로보면 하나도 대단한 것이 없어 보이고 또 이러한 코드를 충분히 많이 이어 붙여서 대단한 구조물을 만들 수 있을 것 같은 생각이 든다. 이것은 그 자체로는 잘못되거나 틀린 생각은 아니다. 다만, 단순히 벽돌로 벽만 쌓아올려서는 벽난로가 있는 거실은 만들 수 없으며, 벽난로를 만들기 위해서는 “벽 쌓기”이상의 조립 기술이 필요하다. 마찬가지로 프로그래밍 작업을 보다 큰, 그리고 조금 더 실용적인 관점에서 보았을 때 코드 조각과 언어가 제공하는 기능으로 모든 것을 만들기 보다는 이미 만들어진 코드를 이해하고 활용하는 방법을 익히는 것 역시 중요하다.

만약 운이 좋다면 문서화가 잘 되어 있는 기성 코드를 만날 수 있을지 모르지만, 그렇지 않은 경우에는 직접 부딪혀가며 해결해야하는 문제가 많이 있다. 이럴 때, 아주 간단하고 쉬운 방법으로 코드를 테스트할 수 있는 도구가 있으면 좋을 것이다. IDLE은 파이썬을 설치하면 기본적으로 제공되는 간단한 인터랙티브 쉘 + 편집기로 “미지의” 코드를 탐색하고 테스트하기에 유용한 도구이다.

쉘(Shell)이란 ‘껍질’이라는 의미의 영어 단어로, 실제 파이썬 코드를 해석하고 실행해주는 파이썬 인터프리터를 감싸고 있다는 의미로 사용된다. 본래 OS의 쉘에서 파생하였다. OS가 컴퓨터에서 중요한 이유는 컴퓨터 시스템 하드웨어를 제어하고, 실행되는 각각의 프로그램 프로세스에 대해 리소스를 할당하는 일을 한다. 프로그램 커널을 통해서 특정한 명령을 실행하는 등의 일을 처리하기 위해서는 커널에 명령을 전달하고, 그 결과를 볼 수 있도록 커널과 사용자를 연결해주는 무언가가 필요한데, 이 때 쉘을 사용한다.

인터랙티브 쉘

대화형 쉘. 프로그래밍 언어의 도구라는 측면에서는 REPL이라고도 한다. REPL은 Read – Evaluate – Print – Loop의 머리글자를 합친 용어로 사용자로부터 한 줄 단위로 명령어 구문을 입력 받아, 이를 매번 평가하고 그 내용을 출력하는 것을 반복하는 프로그램을 말한다. IDLE에서 기본적으로 보이는 쉘이 바로 이 REPL의 대표적인 예이다.

편집기

Editor. 포토샵과 같은 프로그램을 “이미지 편집기”라고도 부르는데 (어째 포토샵은 그 자체로 하나의 어플리케이션 도메인이 되어버린 것 같지만…) 일반적으로 편집기라고 하면 “텍스트 편집기”, 즉 텍스트 파일을 열어보고 내용을 수정할 수 있는 프로그램을 말한다. 가장 기본적인 편집기로는 메모장이 있다. 다만 메모장 같은 편집기로는 프로그램 소스 코드를 작성하거나 편집하기가 매우 불편하다. 대부분의 쓸만한 편집기들은 문법 하이라이팅이나 자동완성 및 그외 몇 가지 편리한 부가기능을 제공한다.

IDLE

IDLE은 파이썬이 설치될 때 같이 설치되는 파이썬으로 만들어진 편집기 겸 인터랙티브 쉘이다. IDLE을 처음 실행하면 왼쪽과 같은 모습을 볼 수 있다.

이는 명령 프롬프트(혹은 터미널)에서 파이썬을 그냥 실행했을 때와 똑같은 모양이다. >>> 는 파이썬 쉘의 프롬프트로 지금 라인이 사용자가 명령을 입력하는 행이라는 의미이다. 명령을 입력하고 엔터를 누르면 해당 명령이 해석되고 처리되어 그 결과가 아래에 출력된다.

이 연재에서도 코드 입력창에서 >> 라는 글자로 시작하는 부분은 모두 이 인터랙티브 쉘에서 입력한 것으로 간주한다. (경우에 따라서는 In [1]: 과 같이 표시하는 경우도 있는데, 이것은 ipython 쉘의 프롬프트이다.)

IDLE은 주어진 명령을 그 때 그 때 해석해서 처리하며, 변수를 정의하는 것들은 기억하게 된다. 다소 불편한 감은 있지만 반복문이나 분기문 혹

은 함수를 작성하는 등의 여러 줄 입력도 가능은 하다. 하지만 소스 코드의 양이 조금이라도 길어진다면 여러 줄의 명령을 한꺼번에 작성하고 한 번에 실행하는 것이 편할 것이다. IDLE은 이 경우에도 여러분의 좋은 친구가 될 것이다. File 메뉴에 New 를 선택하면, 이번에는 프롬프트가 없이 빈 창이 표시된다.

이 창에서는 명령을 입력한 후에 엔터를 쳐도 아무 일이 일어나지 않는다. 이 창은 마치 메모장과 같이 파이썬 소스코드를 작성하는 편집기 창이다. 소스코드를 작성하고 저장한 후 F5 키를 눌러서 실행하면, 맨 처음 IDLE을 켰을 때 나왔던 쉘 창에서 실행 결과가 출력된다.

이 글을 읽는 각자가 파이썬 실행환경을 가지고 있을 것이다. 글과 같이 IDLE을 이용하는 사람도 있을 것이고, 많지는 않지만 ipython을 설치해서 쓰거나, 아니면 sublime text와 같은 별도의 편집기나 PyCharm 같은 통합 개발 환경을 사용하는 사람도 있을 것이다. 우선은 자신에게 맞는, 혹은 현재 배우고 있는 과정에서 사용하는 환경에 익숙해지는 것이 중요하다. 하지만 파이썬 개발에서 가장 기본이 되는 IDLE도 엄청 큰 프로젝트를 만드는 일이 아니라면 충분히 요긴하게 쓰일 수 있으니, 사용법을 조금 익혀 두도록 하자.

참고로 “파이썬 하루동안 가지고 놀기”라는 아주 오래된 고전 에세이가 하나 있다. 일독을 권한다.