May 2010
4 posts
4 tags
대부분의 프로그래밍 문제는 추상화 레이어를 더 삽입함으로서 해결할 수 있다고 하지만, 아직까지 대부분의 추상화는 성능에 대해서는 투명하지 않기 때문에 그게 만능이 아닐 수 있다. 이런 글에서 제안하는 방식은 딱 내 취향이긴 하지만, 모바일 디바이스 성능을 생각한다면 차라리 멀티 타겟 컴파일러를 만드는게 맞는 (하지만 너무나 비효율적인)1 답일 수도 있겠다.
그 컴파일러를 앞으로 무척 많이 써서 소셜 게임을 100개쯤 찍어낸다면 오히려 더 효율적이겠지만. ↩
8 tags
SQLAlchemy, Werkzeug
나는 기본적으로 야크 쉐이빙(yak shaving) 충동을 자주 느끼는 편인데, 가끔 그걸 무찌르는 엄청난 작품을 보곤 한다. 야크 쉐이빙을 무찌를 정도의 물건은 두 가지 조건을 충족시킨다.
철학에 납득이 감은 물론 훌륭해서 내 생각을 바꿀 정도다. 혹은 기존의 내 관점과 일치한다.
그런 철학 위에서, 내가 스스로 구현하자면 엄두가 안날 정도의 피쳐셋으로 날 압도한다.
최근에 웹 개발 관련된 라이브러리 중에서는 딱 두 개가 그렇다. 하나는 1년 전쯤부터 사용한 SQLAlchemy고 다른 하나는 요 며칠간 써본 Werkzeug이다. 오늘은 저 둘에 대해 설명하고 이왕이면 전도까지 해볼까 한다. 공교롭게도(?) 둘 다 Python 라이브러리다. (그나저나 둘 다 이름이 문제다. 이름이 멋이 없으니 아무리...
6 tags
ROCKET DIVE →
Python으로 웹 개발을 하려면 개발용 WSGI1 컨테이너가 필요하다. 하지만 Python을 잘 모르는 사람이 개발 환경을 꾸리기는 쉽지 않다. 이를테면 디자이너는 .html 템플릿 파일을 수정해야 하는데, 그걸 위해서 Green Unicorn이니 Rocket이니 하는걸 설치해서 커맨드라인으로 서버를 켜고 끄는 것은 너무 복잡하다. 그래서 GUI로 뭔가 간단하게 켜고 끄는 걸 가능하게 해야겠다 싶어서 하나 만들었다.
Rocket의 GUI 프론트엔드고, 이름은 그래서 ROCKET DIVE다.2 Tkinter를 써서 인터페이스가 구린데, Rocket 외의 다른 라이브러리에 의존성을 만들고 싶지 않았기 때문에 어쩔 수 없었다. 참고로 Tkinter는 Python 표준 라이브러리에 들어있다.
...
6 tags
내가 주소록에 꼭 있어야 한다고 생각하는 기능들.
일단 내 iMac과 MacBook Air, iPhone, 두 개의 Google Apps1, 세 개의 서로 다른 Gmail 계정2의 주소록이 모두 동기화되어야 한다. 일단 이게 작동하지 않으면 아무리 좋은 주소록이라도 내가 쓸 수가 없다. 그럼 지금은 어떻게 해결하냐면, 사실 전혀 해결되어 있지 않다. iMac의 주소록을 메인으로 사용하는데, iPhone은 그것과 동기화하고 있다. 나머지는 관리가 전혀 안되는 상태.
또한 identity map이 가능해야 한다. “홍민희” 항목에 그 사람의 모든 전화번호가 있어야 하고, 모든 이메일 주소가 있어야 하며, 그 사람의 개인 웹 사이트 주소 뿐만 아니라 MSN 메신저 주소와 Twitter 아이디와 미투데이...