Media Log



나는 파이썬을 리눅스 서버를 관리하는 유틸리티성 목적으로 사용하곤 하는데
그것은 마침 이 책의 제목과 딱 들어맞았다.

파이썬에는 훌륭하고 쓰기 편한 좋은 모듈들이 많이 있는데, 나는 그런 것들을 잘 꾀고 있질 못해서 이미 있는 모듈인지 모르고 간단하게 구현해서 쓰다가 나중에 그런 모듈이 있다는 것을 알고는 다시 코드를 고친 적들이 몇 번 있었다.

이 책은 나같은 프로그래머들에게 도움을 준다.
하지만 파이썬 전문가들이라면 이미 이 책에서 소개하는 모듈들을 잘 알고 있을 것이다.

좋은 라이브러리와 애플리케이션들을 많이 알고 있다는 것은 프로그래머에게 있어서 아주 중요하다.
프로그래밍 테크닉 뿐만 아니라 이런 지식을 얻기 위해서 시간을 투자하는 것은 충분히 가치가 있는 일이다.

나는 주로 라이브러리나 애플리케이션들의 공식 홈페이지, 개인 블로그들 그리고 포럼의 글들을 RSS로 받아보면서 이런 지식들을 얻곤 하는데, 이 책에서 또한 몰랐었던 몇몇 유용한 모듈들을 알 수 있게 되었다.

그러나 이 책이 모듈만을 소개하는 책은 아니다.
시스템 관리자라면 누구나 한 번쯤 데몬이 죽었을 때 혹은 디스크 용량이 부족할 때 알림 문자나 메일을 받을 수는 없을까? 패키징 관리를 좀 더 편리하게 할 수는 없을까?
여러 서버에 동시에 같은 파일을 올리기가 너무 귀찮은데 편하게 할 수 있는 방법은 없을까?
와 같은 생각들을 해보았을 것이다.

이 책에서는 바로 그러한 고민들을 풀어주는 예제 코드들과 유용한 모듈을 소개한다.
시스템 관리자들은 주로 쉘 스크립트와 네트워킹 그리고 트러블 슈팅 정도만을 공부하곤 하는데, 조금 더 시간을 투자해서 파이썬이나 펄과 같은 언어를 익혀둔다면 전보다 훨씬 훌륭한 고급 관리자가 될 수 있을 것이다.

아래는 이 책에서 나오는 내용들이다.
재미있는 내용이 꽤 많이 있다. 최근 책이라 심지어는 Google Apps Engine이 소개되기도 한다.

3장 문자열 장난
아파치 설정 파일 조작
로그 파싱
ElementTree -XML 파싱

4장 문서화와 레포팅
shelve
문서 조작
이메일 다루기

5장 네트워킹
포트 체크
웹서버 체크
Scapy -패킷 조작 모듈

6장 데이터
fnmatch 모듈 -Unix Filename pattern maching.
glob 모듈 -Unix style pathname pattern expansion

8장 OS soup
PyInotify -파일 변경 감시
구글 애플리케이션 엔진

9장 패키징 관리
http://peak.telecommunity.com/DevCenter/PythonEggs
setuptools
easy_install
eggs

10장 Processes and Concurrency
subprocess 와 popen -프로세스와 파이프 조작

11장 building guis
pyGTK - GUI 개발 라이브러리
Django - 파이썬 웹 프레임워크

12장 Data Persistence
Pickle 단순 직렬화 모듈
PyYAML -YAML 파서

13 커맨드라인
optparse -커맨드 라인 옵션 파서
ConfigParser - 설정 파일 파서

Python 3.0 Released

2008. 12. 4. 18:41 | Programming



내가 파이썬을 처음 만나본 것은 2006년 12월이었다.
나는 그 때 입사한지 4개월 정도된 신입사원었는데, 파이썬이라는 언어를 생전 들어보지도 못했었다.

그 때 우리 프로젝트에서 사용되던 작은 파이썬 프로그램이 하나 있었는데,
그것은 안철수 연구소의 웹 페이지에 가서 V3 모듈을 내려 받아 업데이트 해주는 프로그램이었다.
나는 그 코드를 고칠 일이 있어 수정 하면서 별 거지 같은 언어라고 얼마나 속으로 투덜 거렸는지 모른다.

그 뒤로 언제부터 파이썬이 좋아졌는지는 잘 기억이 안난다.
아마도 도서관에서 두리번 두리번 책을 고르다가 Learning Python이라는 책을 빌려서
천천히 읽어본 후, 꽤 매력을 느꼈고 그 때 부터 파이썬에 호감을 갖기 시작했던 것 같다.

그 후에 회사에서 사람들과 파이썬 스터디도 하고, 프로젝트에도 파이썬을 조금씩 적용하기 시작했다.

나는 언어를 선택할 때, 윈도우즈 플랫폼에서만 동작해도 되고 클라이언트에 배포되지 않는 그런 서버 사이드 코드를 작성해야 한다면 주저하지 않고 C#을 선택한다.
파이썬을 선택하는 경우는 일단 리눅스 플랫폼일 때이다.
나는 리눅스에서 코드를 작성 할 때 vi, gcc, make 세트를 사용하는 것을 아주 어려워하고 또 싫어하는데,
아마도 그래서 그 대안 언어로써 파이썬을 공부했는지도 모르겠다.

그래서 리눅스에서 그다지 많지 않은 코드를 작성할 때는 파이썬 부터 머리에 떠올린다.
터미날을 통해 vim에서 편하게 코드를 작성할 수 있기 때문이다. -C보다 훨씬!
또한 파이썬은 Perl의 문법보다 깔끔하고 Java처럼 잡 것들을 설치하지 않아도 되고, Ruby보다 레퍼런스가 많아서 좋다.

그렇다고 해도 회사에서 파이썬으로 코딩하게 되는 일은 거의 10%도 되지 않는다.
하지만 나는 파이썬으로 코드를 작성하는 그 시간들이 정말 즐겁다.

오늘은 그 파이썬 3.0이 릴리즈 되었다.
나는 지금까지 작성해놓은 코드들이 그렇게 많지 않기 때문에 파이썬 3.0으로 전부 포팅할까 잠시 고민했었는데, 금방 생각을 덮었다.

파이썬 3.0은 2.x 와 호환되지 않는데, 그 만큼 아주 많은 부분이 바뀌었다.
바뀐 부분들은 다음 링크에서 찾아볼 수 있다.

http://docs.python.org/dev/3.0/whatsnew/3.0.html
http://www.python.org/download/releases/3.0/NEWS.txt

나는 이렇게 팍팍 뭔가를 뜯어고치는 파이썬 프로젝트의 스타일이 마음에 든다.
빨리 파이썬 3.0을 써먹어보는 날이 왔으면 좋겠다.
파이썬 시작하기 - 8점
마크 루츠 & 데이비드 애셔 지음, 이강성 옮김/한빛미디어


이 책은 파이썬의 기본서이다.
2007년 10월에 이 책의 3번째 에디션이 나왔는데, 이제 곧 파이썬 3.0이 나오고 나면 금방 4판을 내지 않을까 싶다.
파이썬은 국내 저자가 쓴 책도 별로 없지만, 번역서 또한 거의 없는 것이 슬픈 현실이다.

이 책은 다행히도 번역서가 있다. 이강성 교수가 번역해서 국내에는 '파이썬 시작하기'라는 이름으로 소개되었는데, 아마도 1판일 것이다. 1판은 너무 오래된 책이긴 하지만, 그래도 이 번역서가 파이썬 자체를 공부하는데는 우리말로 된 책 중에서 가장 좋은 책이라고 생각한다.

이 책은 인터넷 스크립팅이나 시스템 프로그래밍을 파이썬으로 어떻게 하는가 같은 내용은 전혀 없으며 오직 파이썬 언어 자체만을 이야기 한다.
파이썬을 좀 더 공부하고 싶다면 같은 저자가 쓴 Programming Python을 참고하면 될 것이다. 이 책도 역시 최근에 3번째 에디션이 나왔고, 파이썬의 거의 모든 부분을 다루며 예제 코드도 엄청 많다.( 하지만 번역본이 없다. )

파이썬을 좀 잘해보고 싶은데, 빌어먹을 영어와 자꾸 부딪히게 되니 죽을 맛이다.
빨리 파이썬이 널리 알려져서 좋은 책들을 많이 번역되었으면 좋겠다.

목차는 다음과 같다.

1부. 핵심 언어1장. 시작
2장. 자료형과 연산자
3장. 기본문
4장. 함수
5장. 모듈
6장. 클래스
7장. 예외

2부. 바깥 층8장. 내장 도구
9장. 파이썬으로 하는 공통 작업
10장. 프레임워크와 응용 프로그램

3부. 부록
A. 파이썬 자원
B. 플랫폼에 따른 자원
C. 연습문제의 해답

사용자 삽입 이미지
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
위 사이트에서는 프로그래밍 언어 순위에 대한 선호도를 매달 업데이트 한다.
가끔씩 들어가서 보는데 심심풀이 용으로 보기에 썩 좋다.
개인적으로는 C++이 하락세인 것이 마음이 아프지만 파이썬 같은 관심있는 언어들이 꾸준히 상위에 랭크되어 있는 것은 기분 좋은 일이다.

사용자 삽입 이미지
Basic은 닷넷 프레임워크로 들어가면서 C#에 밀려 안쓰일꺼라 생각했지만 여전히 많이 쓰이고 있나보다.

파이썬은 2004년도에 그래프가 엄청 높았던 것이 눈에 띄는데, 그 때 나는 프로그래밍에 문외한이었기 때문에 무슨일이 있었던 것인지 모르겠다. -누가 알면 좀 가르켜주십쇼.

아래는 20위 이하 랭크의 언어들.

사용자 삽입 이미지
그냥 재미로만 봅시다.^^

'Programming' 카테고리의 다른 글

Python 3.0 Released  (5) 2008.12.04
자바 버전 히스토리  (3) 2008.11.25
Visual C++ 경고 없는 코드 작성 팁. - CRT 문자열 함수  (8) 2008.05.24
전방선언과 컴파일 의존성  (1) 2008.05.16
Visual Studio 2008과 IronPython  (0) 2008.04.12

사용자 삽입 이미지


python 언어 자체는 너무나 재미있지만, 몇가지 간단한 스크립트를 작성 해보면서, 비주얼 스튜디오에 익숙해 있는 내게 편리한 디버깅 인터페이스와 자동으로 메소드 목록을 보여주는 기능이 없는 환경은 너무나 불편하게 느껴졌다.

이클립스에서 사용할 수 있긴 하지만, 이클립스는 내게 익숙하지 않으므로 패스하고.
Visual Studio에서 파이썬을 붙여서 사용할 수 있다는 것은 이전부터 알고 있었지만 그다지 관심있게 보지는 않았었다.
왜냐하면 IronPython이라는 것은 닷넷 프레임워크 기반에서 동작하기 때문이었다.

어제는 리눅스에서 간단한 파이썬 스크립트를 작성하다가, vim에 그다지 익숙하지 않고 print로 밖에 디버깅 할 수 없는 나에게 조금은 화가 났었다.

곰곰히 생각을 해봤는데 이런 방법이 떠올랐다.
VS2008에 IronPython이라는 것을 붙여서, 닷넷 라이브러리를 사용하지 않은 순수 파이썬 코드만을 편하게 작성하고 리눅스나 다른 환경으로 옮겨서 실행하면 어떨까.

예상은 그럭저럭 들어맞았다.
설치 방법은 생각보다 간단하다.

1. VS2008 설치

2. Visual Studio 2008 Shell Isolated Mode Redistributable package 혹은
Visual Studio 2008 Shell Integrated Mode Redistributable package 다운로드

3. VS2008 SDK 설치

4. http://www.codeplex.com/IronPythonStudio에서 최신 설치 버전 다운로드.
 -  IronPythonStudioIsolatedSetup 혹은  IronPythonStudioIntegratedSetup

isolated 모드와 integrated 모드가 있는데 나는 isolated모드로 설치했다.
사실 잘 이해 못하고 사람들이 더 다운로드 많이 받았으므로 이걸 골랐었다. :(

설치 완료 후 비주얼 스튜디오를 켜니 python 프로젝트가 없길래 역시 쉽게 안되나 생각했었는데, 시작 -> 모든 프로그램에 보니 IronPython Studio라는게 생겨있었다.
아마도 이 부분이 isolated와 integrated에 따라 달라지는 것 같다.
intergrated를 선택해서 설치했다면 아마도 비주얼 스튜디오를 실행 하고 새 프로젝트를 눌렀을 때, C#, C++, 이 밑에 Python프로젝트가 같이 나올 것으로 예상된다.
따라서 저 옵션은 아마 비주얼 스튜디오에 독립적으로, 또는 통합적으로 라는 말이 아니었을까?

어쨌뜬 실행 화면을 보자.

사용자 삽입 이미지
사용자 삽입 이미지
디버깅은 아주 잘된다.
자동으로 메소드 목록이 나타나지 않는 것은 조금 유감이지만 이 정도만으로도 만족한다.
앞으로 좀 더 개선 될 것을 기대한다. :)