| 26 Feb 2012 |
새 알고스팟 개발 과정에 관해음 몇달만에 알고스팟 코드를 다시 꺼내서 개발하기 시작한 지 대략 2주만에 오픈했다. 이렇게 금방 될 줄 알았으면 얼른 할걸 그랬어. ㅡㅡ; git 로그를 보면 개발 시작한 것은 작년 7월 1일이고.. 커밋은 전부 482번이다. 커밋한 날짜는 전부 39일. 이 정도 규모의 사이트를 만드는 것 치고는 나쁘지 않은 시간인 것 같다. 여하간, 이번에 접한 도구들과 간략한 감상. 웹 프레임워크: 장고처음으로 장고로 제대로 사이트를 만들어 봤는데 (사실 파이썬으로도 처음이다).. 하여간 감탄했다. 파이썬의 생산성도 있지만, 앱 단위로 코드를 패키징해서 재사용할 수 있다는 개념을 도입한 것이 아주 좋았던 것 같다. 덕분에 스키마 마이그레이션, 회원 가입, 태깅, 검색, 아바타 구현 등 내가 직접 했으면 삽질이었을 여러 일들을 간편하게 구현할 수 있었다. 흔히 얘기하는 장고의 단점으로 모든 요소들이 아주 타이트하게 결합되어 있어서, 설계 범위에서 벗어나는 일을 하려고 하면 아주 힘들다는 것이 있다. 다행히 알고스팟 정도의 사이트에서는 크게 문제될 것은 없었다. 라우팅이나 유틸리티 등의 요소에는 별 불만이 없었고, 템플릿 시스템도 그렇게 나쁘진 않았던 것 같다. 템플릿 태그를 작성하는 작업은 꽤 번거롭고 비직관적이지만, 그래도 강력하다. 장고 ORM은 완전 시망이지만.. 하여간, 장고 뿐만이 아니라 잘 알려진 monolithic 프레임워크를 쓸 때는 항상 내가 원하는 대로 다 할 수 없다는 문제가 있긴 하지만, 대부분의 문제들이 누군가 스택오버플로우에 올린 질문을 찾아내는 것만으로 해결된다는 장점이 있기 때문에 어느 정도 상쇄된다고 생각한다. 편집: 아 그리고 개별 컴포넌트 재사용이 훨씬 쉬워진다는 장점도 있다. 덕분에 장고 앱 재사용이 활발한 것이고. 검색지금까지는 항상 MySQL 의 풀 텍스트 서치를 써왔는데, 이번에는 haystack이라는 서치 앱을 써 보았다. 헤이스택은 Solr, Xapian 등의 검색 엔진과 장고 사이의 인터페이스로, 장고 모델을 등록하고 어떤 필드를 검색할 것인지 등록하면 인덱싱/검색 등의 작업을 적절히 처리해 준다. 생각보다 아주 편하게 쓸 수 있었다. 검색 엔진 백엔드는 사실 Solr 를 이기회에 써볼까 했는데, 셋업을 어떻게 하나 고민하고 있다가 알고스팟에 지난 몇년간 쌓인 글들 보니까 만개도 안되더라....... 하아. 그래서 셋업할 필요도 없는 Whoosh 를 썼다. 이건 순수 파이썬으로 작성된 검색 엔진인데, 쏠라보단 훨씬 느리다지만 뭐.. 검색 하면 역시 인덱서가 문제가 되는데.. 쏠라에는 오픈소스로 진행되는 루씬용 형태소 분석기가 있는 것 같더라. 물론 Whoosh 엔 그런게 없어서.. 엔그램으로-_-; 때웠다.. 뭐 지금 인덱스 크기래봐야 42메가밖에 안 된다. 데이터베이스이건 뭐. 평생 MySQL 만 쓰다가 나도 한번 딴거 써봐야지 하면서 써봤다. 어차피 ORM 쓰기 때문에 별로 달라질 건 없는데, admin 개념이 다르니까 좀 헷갈리더라. 기본적으로 업데이트할때마다 파일에 싱크하는 설정이 켜져 있어서, 처음에 마이그레이션하는데 속도가 너무 안 나왔던 적이 있었다. 태스크 큐사람들이 제출한 답안 채점하는 데는 셀러리를 썼다. 왜 나는 과거에 직접 태스크 큐 만든다고 삽질한 것일까.. 아무런 friction 없이 아주 쉽게 써먹을 수 있었다. 대만족. 태스크 큐는 RabbitMQ 쓸까 하다가 Redis 썼는데, 이것도 아무런 friction 없이 쉽게 써먹을 수 있었다. 샌드박싱온라인 저지용 샌드박싱을 하는 데는 LXC랑 AUFS를 썼다. 이거는 사실 요거의 스트립다운된 버젼인데, 왜 내가 직접 하기로 했었는지는 이제 기억이 잘 안 난다... 하여간, LXC로는 네트워크나 하드웨어 접근, 메모리 사용량 등을 막고.. 샌드박싱된 프로세스가 디스크에 딴짓하는 걸 방지하기 위해 aufs 로 copy-on-write 임시 파일시스템을 마운팅하고 그 안에 chroot 해버리는 전개. 사실 cgroup 같은 것이 어떻게 돌아가는지 잘 모르기 때문에 별의 별짓을 다하며 trial-and-error 로 진행했다. ;;;; 디자인디자인은 themeforest 에서 10불 주고 산 것이다. -_-; 맘에 드는 디자인을 찾고 나니 개발이 백배 재밌어져서... 이 사이트가 만들어질 수 있었던 것은 어디까지나 디자인을 샀기 때문입니다..; 앱서버+웹서버APM 깔면 모든것이 끝나던 과거에 비해 많이 복잡해졌구나 하고 깨닫게 만든 주원인. -.-; WSGI 서버는 이름 들어봤던 게 gunicorn밖에 없어서 고걸 쓸까 했는데, 막상 벤치마크 찾아보니 퍼포먼스가 아주 딸리더라. 그래서 uwsgi로 전환. 데비안/우분투 패키지된 버전이 홈페이지의 문서와 호환되지 않는 부분이 일부 있어서 까다로웠지만, 결과적으로 큰 문젠 없었다. 웹서버는 nginx가 대략 일반적인 초이스인 것 같고. 둘 다 빌드해서 쓰는 대신 우분투 패키지에서 받아 썼는데.. 최소한 nginx 는 좀 구버전인 거 같긴 하네. 서버라이노드에 도쿄 데이터센터가 작년에 생겼는데, 여기서 512MB 인스턴스를 하나 받아서 돌리고 있다. 과거에 쓰던 ㅅㅁㅇㅅㅂ는 한달마다 들어가서 카드 결제를 해야 하는 터라 아주 괴로웠고, 서버 속도도 영 느렸는데 훨씬 빠른 거 같아서 대만족중이다! 하나 걱정되는 거라면 채점이랑 모든 작업을 한 머신에서 하고 있는데.. 로드가 너무 커지거나, 채점이 느려지지 않을까 걱정. 물론 지금까지 AWS 쓸때도, 인스턴스 껐다 다시 켜면 두 배쯤 빨라지는 일들이 종종 있었어서 그러려니 하고 있다. -_-; 온라인 저지 결과만 봐서는 새 서버가 기존에 쓰던 AWS 스탠다드 인스턴스보다 한 두 배쯤 빠른 것 같다.... =.= 사실 왠지 모르겠는데 AWS 빌이 요즘 한달에 $30정도 날라오고 있어서, 이래서야 돈 아낀다는 의미도 없었다. -_-; 버전 관리뭐 이건 당연히 github. 음냐 하여간. 뭐든간에 다 만들어서 올리고 나면 기분이 참 좋구나. 뭐 앞으로도 추가할 게 좀 있지만. |
| 24 Feb 2012 |
postgresql 로 바꿨더니, auto increment 동작이 달라져서 새 서브미션들이 1번부터 시작하는 문제가 있긴 하지만, 하여간 일단 알파버전. 첫 페이지를 아무래도 따로 만들긴 해야 할 것 같음. 우분투 패키지인 uwsgi 가 잘 문서화가 안되어 있어서 고생좀 했고, psql 이 아직 익숙하지 않아서.. 고생 많이 하고.. 마이그레이션도 라이노드에서 돌리니까 메모리 없어서 죽길래, 이래저래 삽질. 뿅뿅=3=3 |
| 22 Feb 2012 |
어제 라이노드 일본 서버 결제해서 본격 새 알고스팟 베타 올릴 준비중. apt-get 으로 APM 깔면 끝이던 과거에 비해 신경쓸게 영 많네. 리버스 프록시(nginx)랑 앱 서버(uwsgi)도 따로 써야 하고, 셀러리 쓰려니 태스크 큐도 써야 하고 (래빗mq 쓰려다 걍 레디스 쓰기로 함) aufs 땜에 커널도 다시 컴파일 해야 하고... 이래서 heroku 같은 것들이 뜨는 거로군. 이것이 현대의 웹개발인가. 흑 귀찮네염 |
| 17 Feb 2012 |
요즘 시간이 날때 한화씩 K팝스타를 보고 있는데.. 보아가 이쁘게 나오는 것은 참 좋은데 그 귀엽던 보아가 이제 젊은 남자애들 보면서 귀엽다고 희희낙락하는 걸 보고 있자니 ... 세월의 흐름을 실감한다고나 할까. -_ -; 그런 의미에서 Shine We Are! |
| 26 Jan 2012 |
내일 Series 7 보는데 이틀동안 벼락치기했더니 하나도 모르겠고 졸리기만함 ㅋㅋ 아 좆망 ㅠㅠ 70%가 커트라인인데 모의고사 하나 풀어보니 65% 나오고 ㅠㅠ 에라 모르겠다 |
| 19 Jan 2012 | |
| 18 Jan 2012 |
자다 깨서 맥주마시면서 논문보기 |
| 17 Jan 2012 |
2012년 목표거창하고 디테일한 목표를 세웠던 2010년과 그래도 나름대로 이런저런 생각이 많았던 2011년에 비해.. 올해는 새해를 이런 느낌으로 맞았다... 그래 시공간연속체의 한점 따위 중요할 리 없잖아 (..) 인생이 출근 -> 퇴근 -> 재하 보다가 -> 저녁 먹고 -> 목욕 시키고 -> 재우고 -> 조금 놀다 자는 생활의 반복이다 보니, 회사 일 외의 무언가를 추구할 만한 여유가 없어진 것 같기도 하고. 인생의 우선 순위가 너무 당연하게 정해져 있다 보니 이걸 목표로 쓰겠다 할 만한 의미가 있나 싶기도 하고. 그래도 꼭 무언가를 이루겠다.. 해내겠다.. 이런 목표도 목표지만, 어떤 방식으로 하겠다, 좀 더 잘 하겠다, 이런 것 또한 목표가 될 수 있다고 생각해서.. 1월도 절반이나 지났지만 끄적끄적 목표를 써 본다. 육아 + 생활 꾸리기새해의 가장 중요한 목표는 육아와 생활을 잘 병행해 나가는 것이다. 육아는 물론 지금 우리에게 가장 중요한 일이지만, 육아에만 전념하다 보면 여유나 생활의 사소한 즐거움을 잃기 너무 쉬운 것 같다. 아들이랑 많은 시간을 보내는 것도 중요하지만, 내가 하고 싶은 일도 조금씩 챙겨나가는.. 밸런스를 찾고 싶다. 예를 들면 격주에 한 번 정도 베이비시터한테 재하 맡기고 주말에 친구들을 만나거나 놀러간다거나 하고 싶은 일을 한다거나... 하는 식으로. 회사 잘 적응하기육아 외에 가장 중요한 것은 물론 새로 다니기 시작한 회사에 잘 적응하고, 좋은 일들을 많이 하고 경험을 쌓는 것이다. (너무 당연한 얘기만 하고 있군.. -_-;) 다행히 새 회사는 굉장히 성장하기 좋은 환경이다. 분위기도, 인프라스트럭처도 그렇고, 많은 것들을 배우고 시도할 수 있다. 내가 할 수 있는 일도 많은 것 같다. 올해 주의할 것은 내가 보기에 재미있는 것에만 치중하지 않고, 팀에 가치를 가져다줄 수 있는 (번역 티가 팍팍 나네 --;) 일을 좀 더 우선해서 찾아보는 것. 책 내기3년째 목표에 책 내기가 포함되어 있는지라 참 쓰기가 민망하다. 현재 진행 상황을 공유하자면 작년 서울 가기 전에 전체 드래프트가 나왔고, 지금은 출판사에서 디자인 시안을 기다리는 중. 한 챕터 한 챕터씩 파이널라이징하면서 조판으로 보내고 있다. 이제는 창의적인 일보다 수정과 교정, 꼼꼼함이 남은 것 같다. 올해는 책 외의 개인 프로젝트와 학습은 전부 그 뒤로 미루기로 했다. 성장과 학습우선 순위를 따지자면 통계, 기계학습, 트레이딩에 대한 이해 정도가 가장 중요한 세 가지 항목이다. 프로그래머로써의 성장에 관해서도 게으르지 않고 싶지만, 늘 그렇지만 지금은 이런 분야에 대한 이해가 너무 부족해.. =.= 책을 낸 후의 (!) 목표는 Ramsay, Hastie, Harris 의 세 권 책을 보는 것. 사실 일년에 책 세권 보는게 이다지도 힘들단 말이더냐.. 이걸 목표로 정해야 하나... ㅠㅠㅠㅠ 개발책을 낸 다음에는 새 알고스팟을 마저 개발해서 디플로이하고 싶다. 그 후에는 트레이딩 시스템, 퀀트 전략 개발 리서치 프레임워크 등에 대한 식견을 쌓고 싶다. 뭐 근데 딱히 이걸 할 좋은 방법은 잘 모르겠다. 열심히 구현을 보면서 얘들은 왜 이렇게 했나, 나라면 어떻게 할까. 이런 고민 하는 정도. 내가 직접 뒤엎거나 다시 짤 여유가 있는 것은 아니니까. 시간 관리작년에 유일하게 잘 한 게 있다면 애기 낳기 전까지라도.. 시간 관리를 잘 했다는 거다. 정량적으로 자신이 쓴 시간을 측정하는 것이 아주 의미가 있는 것 같다. 올해도 가능한한 작년만큼 잘 해 보고 싶은데, 회사가 딱히 그런 분위기는 아니라.. 잘 모르겠다. =.=;;; |
| 13 Jan 2012 |
정신없이 바쁜 가운데 괜히 쓸데없는 고민들이 잦은 지금이다.
참 요즘 전례없이 바쁜데.. 이러고 있다.. -_-; |
| 11 Jan 2012 |
하루 쿨쿨 자고 이제 출근 중. ㅠ 거의 낫긴 했는데 아직 머리는 지끈거린당. 몇년만에 걸린 감기인지 원. |
| 10 Jan 2012 |
온가족이 감기 걸림 ㅠ |
|
속이 꽉찬 그의 배를 믿습니다 |
|
| 09 Jan 2012 |
Talk list for Pycon 2012 has been up for a while. Would I go? Though I like that they are in CA this year, probably not.... |
|
재하가 울어서 5시 45분인가부터 안고있었는데.. 지금 재웠는데 이제 출근할 시간이다 ㅠㅠ 아으아으 |
|
|
아 ㅊㅅㅈ 이 개자식만이라도 좀 잡혀들어가면 진짜 더할나위없이 기쁘겠다 |
|
| 03 Jan 2012 |
테트라 팩에 들어 있는 와인을 마시고 있다. 다시 닫아두기도 편하고 가볍고 참 합리적이긴 한데.... 하하 -_- |
|
노트북 뽐뿌는 주기적으로 찾아오는데, 1. 우분투가 잘 돌아가고 2. 고해상도고 3. 너무 무겁거나 비싸지 않은 랩탑이 없어서 번번히 포기하곤 한다. -.-; 내가 조올라 옛날에 샀던 바이오 Z1 도 1400x1050이었는데 대체 왜 요즘 768보다 세로 해상도가 높은 랩탑이 이렇게 없는지 원. 1080p 정도 되는 랩탑은 아예 데탑 대체용이 너무 많아 엉엉 |
|
|
if I were to write another book (shudders), there's a good chance I'll be using multimarkdown. |
|
| 31 Dec 2011 |
음냐 연말을 맞아 위키피디아에 기부함. |