The Python Tutorial #2 – Appetite

Whetting Your Appetite

만약 여러분이 컴퓨터로 일을 많이 하시는 분이시라면, 자주 반복되는 일들을 자동으로 처리하게 하고 싶다는 생각을 한번쯤은 해보셨을 겁니다. 예를 들면, 엄청나게 많은 파일이 있는데, 그 안에서 어떤 특정 단어를 찾아서 다른 단어로 바꿔야 한다던가, 아니면 엄청나게 많은 이미지파일들이 있는데, 각 이미지파일들의 이름을 변경하여 정리를 하게 한다던가 하는 일 말입니다. 그걸 일일이 수동으로 하는 것 보다는 필요한 데이타베이스를 생성하고, 간단한 화면에 연동하여 반복되는 작업들을 한번의 클릭으로 간편하게 처리할수 있도록 프로그램으로 만들고 싶으실겁니다.

여러분중에 전문 소프트웨어 개발자가 계시다면, 아마도 C, C++또는 자바로 필요한 코딩을 한뒤 반복적으로 컴파일하고 테스트하고 코드를 수정하고 재 컴파일하는 방식으로 일을 하셨을겁니다. 하지만 이 방법은 매번 코드를 수정할때마다 컴파일을 다시해야하니까 개발속도가 매우 느리죠. 아마도 그렇게 개발을 해야 한다면 테스트 코드를 쓰는 일이 매우 길고 지루한 작업이라고 여겨질 것입니다. 아니면 해당부분을 보완할수 있는 별도의 프로그램을 만들어서 사용하셨을수도 있겠지만 그걸 위해 새로운 언어를 설계하고 만드는 일은 하고 싶지 않으실거에요.

그런 분들을 위해 나온 언어가 바로 파이썬입니다.

이런 반복적인 일들을 해결하기 위해서 유닉스 쉘 스크립트를 짜거나 윈도우 배치파일을 만드시는 분도 계실거에요. 하지만 쉘스크립트는요 파일들을 옮기거나 파일안의 문자열을 변경하거나 할때는 유용하지만 사용자화면이나 게임을 만들때는 좋지가 않죠. 물론 C, C++ 또는 자바를 이용해서 프로그램을 짤수도 있지만 이런 언어들로는 첫화면을 만드는 것 만도 시간이 만만치 않게 걸릴거에요. 그에 반해 파이썬은 매우 간단하게 다양한 플랫폼에서 원하는 작업을 빠르게 끝낼수 있도록 여러분을 도와줄거에요.

파이썬은 매우 심플합니다. 동시에, 굉장히 복잡한 작업, 대용량 작업들을 한번에 개발할 수 있는 프로그래밍 언어입니다. 단순 작업만 할수 있는 쉘스크립트나 배치파일과는 비교가 안되죠. 심지어 파이썬은 C보다 더 정교한 에러 찾기 기능을 제공하고 있고, 동적배열이나 사전과 같은 데이타 구조를 지원하는 high-level언어입니다 (여기서 high-level은 기계와 더 가까운 밑단을 의미하고 low-level이 사용자 화면과 가까운 쪽을 의미합니다). 이러한 다양한 데이타 타입 덕분에 파이썬은 Awk나 Perl보다 더 큰 프로젝트에 사용되어 질 수 있으며, 이 두 언어가 제공하는 간편한 기능들은 상당부분 파이썬도 손쉽게 구현할 수 있도록 제공하고 있습니다.

파이썬은 여러분의 모듈들을 나눠서 다른 프로그램에서 다시 사용할수 있도록 허용합니다. 파이썬은 매우 광범위한 기본 모듈들을 가지고 있으며, 이런 모듈들은 매우 쉽게 파이썬 프로그램을 배울수 있게 해줍니다. 이 모듈들은 파일은 열고,닫거나, 운영체제와 통신하기도 하며, 소켓프로그래밍, 그리고 심지어는 Tk와 같은 사용자 화면을 구성하는 툴킷도 제공하고 있습니다.

파이썬은 인터프리터 언어입니다. 말인 즉슨 코딩을 하고나서 컴파일이나 링킹을 할 필요없이 바로 결과를 확인할수 있다는 걸 의미합니다. 파이썬 인터프리터는 커맨드 라인에서 바로바로 대화하듯이 결과를 보는것이 가능합니다. 굳이 프로그램 파일을 만들어서 실행하지 않아도 각종 명령어나 함수들을 인터프리터에 직접 입력하여 결과를 보는 것이 가능하기때문에 간단한 코드를 만들어 테스트할때 좋고 따로 계산기 프로그램 열 필요없이 인터프리터가 열려있다면 계산공식을 넣어서 쓰는것도 매우 유용합니다.

파이썬은 다른 언어에 비해 매우 컴팩트하고 읽기에도 편합니다. C나 C++, 자바같은 프로그램에 비해 파이썬은 훨씬 짧은 코드로 같은 기능을 구현할 수 있는데 그 이유는 다음과 같습니다.

  • high-level 데이타 타입들이 복잡한 코드를 한줄로 쓸수 있게 해줍니다.
  • 시작과 끝을 명시하는 괄호를 과감히 생략하고 들여쓰기로 단락을 구분합니다.
  • 변수선언을 해줄 필요없이 그냥 바로 쓰면 됩니다.

파이썬은 확장성이 좋습니다. 여러분이 만약에 C 프로그래머라면 파이썬으로 빌트인 함수나 모듈을 만들수 있습니다. 그렇게 확장을 해도 속도에 예민한 프로그램이라도 최대속도로 운영이 가능합니다. 바로 인터프리터를 이용하는게 싫으시다면 파이썬 프로그램을 바이너리로 만들어서 더 빠르게 이용하실수도 있습니다. 파이썬 확장을 더욱 용이하게 하고 싶으시면, 아예 C로 만들어진 프로그램에 파이썬 인터프리터를 링크를 걸어서 필요할때마다 바로바로 프로그램에서 코딩을 하도록 구현할수도 있습니다.

참고로, 파이썬이라는 이름은 BBC에서 방영했던 코메디 시리즈 “Month Python’s Flying Circus”에서 따왔습니다. 많은 사람들이 오해하고 있는데, 뱀의 한 종류인 파이썬과는 전혀 관련이 없어요. Monty Python에 관한 이야기를 정식 매뉴얼에서 언급해도 되는건지 상사에게 허락은 받았냐고요? ㅎㅎ 오히려 꼭 좀 언급 해달라고 부탁을 받을 정도였습니다.

이제 파이썬에 대해 뭔가 기대가 좀 되지 않으시나요? 더 깊이 있게 배워보고 싶으실거에요. 언어를 배우는데 가장 좋은 방법은 바로 써보는 것입니다. 앞으로 소개할 튜토리얼에서는 여러분을 파이썬 인터프리터의 세계로 안내해드릴거에요.

다음 챕터에서는 인터프리터를 사용하는 장비들에 대해서 설명드릴거에요. 이건 그냥 평범한 설명이라 중요하지는 않지만 그 뒤에 나오는 예제는 정말 중요한거니까 반드시 실행해 보시기를 권장드릴게요.

남은 튜토리얼은 파이썬 언어와 체계에 관한 매우 다양한 기능들을 소개하고 있으니까요, 예제나 간단한 표현들, 각종 문법들과 데이타 타입, 그리고 함수와 모듈, 그리고 좀더 심도높은 개념의 예외처리와 사용자정의 클래스등 다양한 것들 다룰 예정입니다.

References