회사를 옮기기 전 고민하고, 옮긴 후의 바쁜 과정이 뒤를 이은터라 블로그를 못 만지다가 간만에 만지게 됐습니다.

그렇습니다!! 제가 옮긴 회사는 걸그룹과 보이그룹이 판을 치며 새로 데뷰하는 걸그룹들이 인사하러 오는 업체입니다. 뭐 아직 국내 서비스 전이긴 하지만요. 


그래서 이제 걸그룹들을 (보이그룹은?..) 자주 보겠거니 했는데.. 

역시나 프로그래머 데이터만 죽어라고 보고 있네요. 프로그래머 인생이 뭐 그렇지 -ㅅ- 


산적해 있는 일을 빠르게 처리 하기 위해서는 파이썬 만한 친구가 없군요. 정말 후다다다닥 일을 처리 할 수가 있습니다. 역시 파이썬 자주 애용하게 되지요. 간단한 에디터로도 만들 수가 있으니 얼마나 멋집니까 ㅋㅋ 


두서 없이 썼지만 앞으로 종종 글을 남길 예정입니다. 

crontab 으로 스케쥴 잡 등록 시키기

python 과 crontab 을 잘 연결시키면 스케쥴 작업을 완벽하게 만들 수가 있습니다. 간단한 배치 작업들은 굳이 다른 시스템을 사용할 이유가 없습니다.

기본 editor 를 emacs 로 변경하기

$ export EDITOR=emacsclient

아무 설정을 하지 않으면 vi 로 설정되어 있습니다.

기본적인 기능

CRUD 에서 U 는 C 와 동일하니 기능을 살펴보기로 합니다.

입력 (Create)

$ crontab -e

보기 (Read)

$ crontab -l

지우기 (Delete)

$ crontab -d

주기 결정

*          *        *        *       *
분(0-59)  시간(0-23)  일(1-31)  월(1-12)   요일(0-7)

실제 예

* * * * * ls -la

인코딩 관련

crontab 으로 파이썬 스케쥴을 돌릴때 특히나 console 에 한글을 출력하는 경우에 에러가 자주 발생합니다. Unicode 에러 인데요. crontab 은 shell 환경을 가져오지 않기 때문에 발생합니다. 해결 방법은 의외로 간단합니다. crontab 에서 입력 할때 마치 쉘 환경 처럼 적어주면 끝입니다.

   PYTHONENCODING=utf-8
   LANG=ko_KR.UTF-8          
   0 * * * 1-5 source /Users/crazia/miniconda3/bin/activate /Users/crazia/miniconda3/envs/cr-mon/ && 
   /Users/crazia/miniconda3/envs/cr-mon/bin/python /Users/\
crazia/work/python-projects/cr_mon/manage.py stats >> /Users/crazia/work/stats.log 2>&1

miniconda 상에서 cr-mon 이라는 환경을 만들고 django style console 로 만들어서 실행시키고 로그를 남기는 예제 입니다.

가상환경에서는 Matplotlib 이 제대로 동작하지 않기 때문에 OSX 환경에서 사용하는 팁이 존재한다. 


The default python provided in (Ana)Conda is not a framework build. However, the Conda developers have made it easy to install a framework build in both the main environment and in Conda envs. To use this install python.app conda install python.app and use pythonw rather than python


위와 같이 이용한다. 즉 python.app 을 conda 를 이용해서 설치하고 pythonw 이용해서 실행시키면 된다. 


1 플라스크 (Flask) 소개

파이썬 에서 쓰이는 웹 프레임워크라고 하면 장고 를 떠올리기 쉽습니다. 그런데 실은 장고는 이제 덩치가 많이 커져서 예전만 못하다는 이야기가 많습니다. 그래서 정말 간단한 웹이나 모바일 앱 서버를 만들기에 적합한 웹프레임워크를 찾게 됐는데 그게 바로 플라스크 입니다.

소개만 하고 직접 가셔서 보시는게 빠를 것 같습니다. 정말 단순하고 빠르게 웹을 만들 수가 있습니다. 제가 지금까지 접해온 웹 프레임워크중에 가장 가볍게 빠를꺼라고 자부합니다. (express 안녕~)


http://flask-docs-kr.readthedocs.org/ko/latest/index.html


위에 가서 보시면 되고 한글화도 잘 되어 있습니다. 빠르게 시작하기(Quick Start)튜토리얼(Tutorial) 을 보며 기본 공부를 하고 나머지 확장을 공부하시면 편할 듯 합니다. 튜토리얼(Tutorial) 은 이런 계열에서는 유명한 블로그 만들기 입니다. 확장으로 볼마한 것은 역시 큰 어플리케이션을 만들때 필요한 것들인데 이것들 또한 패턴들(Patterns) 에서 소개가 되고 있습니다.

마지막으로 제일 중요한 'Hello World' 를 출력하는 예제만 보기로 하지요.

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello World!'

if __name__ == '__main__':
    app.run()

뭐 경기 끝이죠? 7줄입니다. ㅎㅎ

Author: crazia

Created: 2014-12-12 Fri 12:57

+ Recent posts