튜토리얼이 매우 잘 만들어져 있습니다. 다음은 튜토리얼 목차인데, 성격급한 분들은 조금 버거울 수 있는 분량입니다.

개인적으로는 `Test Coverage` 분량이 적지 않지만 매우 심혈을 기울여 만든 것으로 보입니다.

image from: https://flask.palletsprojects.com/en/2.3.x/tutorial/

http://localhost:8080으로 화면을 확인하면 이제 올릴 준비가 되었습니다.


app이 있는 폴더 상위에서 다음과 같이 명령을 입력합니다. 구글 계정 로그인하면 앱이 올라갑니다.

appcfg.py update helloworld/


explorer http://khcuweb.appspot.com 입력하면 IE가 뜨는데, 브라우저 인코딩을 UTF-8로 변경하면 제대로 보입니다. 크롬브라우저에서는 잘 보입니다.


관련: https://developers.google.com/appengine/docs/python/gettingstartedpython27/uploading

다음과 같은 에러 메시지를 만나면 당황하게 됩니다.

  File "C:\Program Files\Google\google_appengine\google\appengine\tools\devappserver2\wsgi_server.py", line 31, in <module>

    from cherrypy import wsgiserver

  File "C:\Program Files\Google\google_appengine\lib\cherrypy\cherrypy\__init__.py", line 70, in <module>

    from cherrypy import _cptools

  File "C:\Program Files\Google\google_appengine\lib\cherrypy\cherrypy\_cptools.py", line 245, in <module>

    from cherrypy.lib import cptools, encoding, auth, static, jsontools

  File "C:\Program Files\Google\google_appengine\lib\cherrypy\cherrypy\lib\static.py", line 7, in <module>

    mimetypes.init()

  File "C:\Python27\lib\mimetypes.py", line 358, in init

    db.read_windows_registry()

  File "C:\Python27\lib\mimetypes.py", line 258, in read_windows_registry

    for subkeyname in enum_types(hkcr):

  File "C:\Python27\lib\mimetypes.py", line 249, in enum_types

    ctype = ctype.encode(default_encoding) # omit in 3.x!

UnicodeDecodeError: 'ascii' codec can't decode byte 0xb1 in position 9: ordinal not in range(128)



C:\Python27\Lib 폴더의 mimetypes.py 249번째 줄에서 발생한 에러입니다.


편집기로 열어서 지우거나 앞에 #을 붙여서 주석처리합니다.

끝!


추가로 메모장에서 한글을 사용하는 경우, 파일 > 다른 이름으로 저장 메뉴를 선택하고 인코딩을 UTF-8로 저장하는 것을 추천합니다.


안녕, World! 보기 쉽지 않네요.



관련 글: http://stackoverflow.com/questions/4237898/unicodedecodeerror-ascii-codec-cant-decode-byte-0xe0-in-position-0-ordinal/4238212#4238212



구글 앱엔진 시작하기 윈도우XP 편


구글 앱엔진 애플리케이션 업로드



윈도우에서 구글 앱 엔진을 돌려 봤습니다. 파이썬으로 작업을 하면서 삽질을 조금했기 때문에 기록을 남겨봅니다. 현재 구글앱엔진은 파이썬 2.7을 공식 지원합니다. python 3.x은 지원하지 않습니다. 때문에 python27을 다시 설치했습니다.(삽질1)


절차는 다음과 같습니다.

part 1 앱 엔진 등록

1.1 http://appengine.google.com/ 사이트에 구글 계정으로 등록을 합니다. 휴대폰인증이 있습니다.

1.2 앱엔진 애플리케이션을 만듭니다. Application Identifier(예, khcuweb)가 정해지면 http://khcuweb.appspot.com 로 접근하게 됩니다.


part 2 로컬 개발환경

2.1 구글앱엔진 SDK 파이썬 버전을 다운로드 받아서 설치합니다.

2.2 http://python.org 사이트에서 Python 2.7을 다운로드 받아서 설치합니다.

2.3 환경 변수 > 사용자 변수 Path에 C:\Program Files\Google\google_appengine\ 경로 추가된 것 확인

2.4 환경 변수 > 시스템 변수 Path에 C:\Python27;C:\Python27\Scripts; 경로를 추가합니다.


part 3

3.1 helloworld.py 만들기

3.2 app.yaml 만들기

3.3 dev_appserver.py helloworld.py 실행하기 

윈도우 XP에서 UnicodeDecodeError 발생하는데, 이에 관해서는 다음 글에 올리겠습니다.












일반적으로 통합개발환경을 IDE라고 합니다만, Python은 IDLE라는 용어를 사용합니다. 무엇의 약자인지 확인해 보고 파이썬의 묘함이 느껴졌습니다.



IDLE 영어 단어에 맞추기 위해서 L을 부각시킨 것처럼 보입니다. Integrated DeveLopment Environment 라니.


C-x C-s

가장 일반적인 저장



emacs hello.py

#!/usr/bin/python
print("Hello World")

C-x C-s
C-x C-c

chmod +x hello.py
./hello.py
Hello World


15년 동안 Emacs를 써왔고, 어느 순간 그것으로 이메일도 읽고, 웹 브라우징도 하고, 커피까지 만들고(다들 그렇게 하시죠?) 있네요.

"I’ve been using Emacs for 15+ years and at one point I used it to read my emailbrowse the web, and make coffee (haven’t we all?)."

from: http://pedrokroger.net/getting-started-pycharm-python-ide/



image from: http://commons.wikimedia.org/wiki/File:Emacs.png


그리고,

Last login: Wed Feb  5 20:18:36 on ttys000

kenuui-Retina-MacBook-Pro:~ kenu$ brew install emacs

==> Downloading http://ftpmirror.gnu.org/emacs/emacs-24.3.tar.gz



요즘 파이썬을 배우는 분들에게 추천해 봅니다. python2.5버전 기준의 개(GAE; Google App Engine)를 설명합니다만 300페이지 안되는 분량에서 제법 많은 것들을 다뤄줍니다. 웹 프레임워크는 Django(장고)를 사용합니다.


구글 앱 엔진에 파이썬으로 프로그래밍을 시작하는 분들에게 적합합니다. 그리고 웹 개발을 처음 배우시는 분들에게 HTML, CSS, JavaScript, jQuery까지 단계적으로 핵심을 알려줍니다. 초고속 과외라고 할 수 있습니다. 


구글 앱 엔진을 통해서 배우는 파이썬이라고 총평하고 싶네요.




http://www.appenginelearn.com/

원 저자 찰스 세프란스가 운영하는 페이지입니다. 강의 PDF와 책의 예제를 다운로드 받을 수 있습니다. 

번역도 무난하게 잘 되어 있습니다. 역자주도 개념을 잡는 데 도움을 줍니다.


http://okae-12-ajax.appspot.com/

ae-12-ajax.appspot.com 을 올려보았습니다. 

주의) 회원가입시 사용한 비번은 회원들에게 보여집니다. ^^;



삭제, 탈퇴는 관리자만 가능합니다.

http://appengine.google.com







신기술들이 마구마구 쏟아져 나옵니다. 개발자로 살아간다는 것, 아니 컴퓨터를 이용해서 생계를 이어가는 것 자체가 매우 피곤한 일입니다. 6개월 지나면 2배 빠른 컴퓨터를 반값에 산다는 무어의 법칙 때문이기도 하고, 유토피아를 만들만한 컴퓨터 언어나 소프트웨어의 완전판이 아직 없기 때문이죠.

현재의 컴퓨터 업계를 이끌어 가는 기술과 기술 커뮤니티들을 보면 한 가지 공통점이 있습니다. 기술의 대표가 있기 때문이죠. 컴퓨터 웹 업계에서 몇 년의 경험이 있다면 다음 기술을 얘기할 때 떠오르는 사람이 있을 것입니다.

  • ASP
  • zeroboard
  • phpschool
  • Devpia
  • kldp/linux
  • javastudy
  • javaservice
  • struts
  • spring
  • agile/xp
전 빠져도 되겠죠. ^^;
제 생각과 같은 지 확인해 보시죠.

  • ASP ( taeyo 김태영 )
  • zeroboard ( nzeo 고영수 )
  • phpschool ( 정진호 )
  • Devpia ( 최우인 )
  • kldp ( 권순선 )
  • javastudy ( 조대협 )
  • javaservice ( 이원영 )
  • struts ( 박재성 )
  • spring ( 박재성, 이일민, 안영회, 백기선 )
  • agile/xp ( 김창준 )
  • python ( perky 장혜식 )
  • MINA ( 이희승 )
뭐, 이의를 제기하시거나 추가를 원하시면 말씀해주세요. 제 경험상 주관적인 것이니까요.

인간 본성에 미래에 대한 불확실성이 있기 때문에 누군가 선례가 될 만한 존재를 발견하게 되면 조금이나마 안심하고 따라갈 수 있습니다. 위에 열거한 분들의 공통점은 상당히 오랜 기간 기술의 장을 만들고 다듬고 사람들과 교류하고 했던 분들입니다. 두 글자로 줄이면 "열정"이라고 할 수 있죠.

새로운 기술을 사람들이 환영하는 이유는 새롭기 때문입니다. 하지만 이 기술들이 오래가기 위해서는 스타 플레이어가 필요합니다. 반짝 스타가 있을 수 있지만, 그보다 더 중요한 것은 얼마나 기술이라는 플랫폼 위에서 오랫동안 사람들에게 존재감이 있을 수 있느냐 입니다.

3년만 버티면 동종 기술의 사람들에게 인정을 받기 시작합니다. 5년을 버티면 전문가 소리를 듣기 시작합니다. 10년을 버티면 전설이 되어버립니다. 수많은 추종자들을 이끌고 말이죠.

요약하면 이렇습니다.
커뮤니티? "일단 시작했으면 버텨라" 입니다.

Google App Engine(GAE) 서비스를 베타로 오픈하면서 처음으로 지원하는 언어입니다. 배워야지 배워야지 하다가 이제서야 툭 쳐보는 컴퓨터 언어입니다. no-smok에 올라온 글을 구걸링해서 소개 받았습니다. 인상적인 것이 두 가지 있었습니다.

1. There's only one way to do it.
떨어진 두 점을 잇는 방법은 무수히 많지만, 파이썬에서는 일직선을 긋는 최선의 방법 하나만 있으면 된다. <-> Perl 언어의 개념과 대조된다고 얘기합니다.

2. Human Readable Indented Block. 들여쓰기로 블럭을 표시한다.
{}로 대표되는 코드블럭의 상하위 종속성 표시를 들여쓰기(Indentation)로 대체합니다. CoC(레일즈 프레임워크의 Convention over Configuration 규칙)와 일견 같은 선상의 개념이 아닌가 생각되는데, 번잡한 것은 하지말자 대신 룰을 만들어서 스킵하자 원칙이죠.

코드는 변경되기를 기다린다. 아니면 버려지기 때문이다 라는 생각을 많이 합니다. 변경에 대한 수고를 줄이기 위해서 코드 가독성과 회귀 테스트의 자동화가 요구되는데 파이썬의 읽혀지기 위한 코딩 규칙은 참 좋다고 느꼈습니다.

저야 자바의 저주에 걸려서 이미 몸에 밴 자바의 향기가 손가락을 지배하고 있습니다. 때문에 파이썬을 쓰기 위해 얼마나 오래 피똔(python)쌀 지 모르지만, 일단 발걸음은 한 걸음 내디뎌 봅니다.
사용자 삽입 이미지

관련:
http://www.python.org 현재 2.5.2 버전이고, 2.6과 3.0은 alpha 상태입니다.
http://www.python.or.kr kr이 반가우셨을 것입니다. 포럼이 잘 운영되고 있네요.
http://www.hannal.net/blog/say_hello-world_on_google-app-engine_service/ 파이썬 잘 다루는 기획자입니다. 참 부럽습니다. ^^;

+ Recent posts