양털 깎는 칼로 매번 바퀴를 만드는 노인 이야기.
2019/01/07
양털 깎는 칼로 매번 바퀴를 만드는 노인 이야기. 사나흘 뚝딱뚝딱 하고보니 파이썬이니까 이게 되는구나 싶다.
- 우리 제품의 특정 기능을 자주 쓰고 있는데 너무 느려서 개선해보기로 했다. 내가 그걸 자주 쓰는데 속 터져서..
- 나는 자바 스프링을 못하니까 그냥 파이썬으로 대충 10배쯤 빠르게 바꿨다.
- 이걸 WAS 스프링 주 개발자에게 주려고 보니까 콘솔 프로그램으로는 안 되겠어서 API화 하기로 마음 먹었다. 가상 서버를 신청했다.
- 파이썬은 몇 줄이면 되니까 http 서빙을 붙였다.
- 사용자가 많아질 수 있으므로 부하에 견뎌야 하니까 쓰레딩을 붙였다.
- mysql cli를 파이프로 실행해서 커넥터를 대체하고 있었는데 막상 커넥터를 붙이니 더 느려졌다. 캐시를 짜 넣었다.
- 캐시를 정적 변수로 돌리니까 동시성 문제가 생겨서 락을 넣었다. 대충 넣으니 왠지 느린 것 같기도 하고 안 예뻐서 튜닝하다보니 이제 코드가 드러워졌다.
- 다 완성 된 것 같아서 마지막 결과물을 json으로 바꾸는데 json 처리가 바틀넥이 됐다. 고속 json 라이브러리가 있다는데 또 인프라에 설치 요청을 해야 되니 귀찮아서 캐시를 고도화 했다.
- 이제 한 턴 돌았으니 모듈화로 재코딩 했다. 본디 모듈화 하면 아름다워져야 하는데 꼭 그런 것도 아니라는 생각이 자꾸 들었다. http url 분기 컨트롤러와 아규먼트 파서와 404 핸들러 등을 짰다.
- 백그라운드로 실행하면 되겠지 하고 짠 놈을 배포하니까 배포 시스템이 실행을 못하고 멈춘다. 데몬 모드를 짰다.
- 데몬 모드를 짜고 보니 로깅을 모두 /dev/null에 붙여버려서 로깅 시스템을 짰다. (파이썬 로깅 시스템은 너무 기능이 많아서 좋아하지 않는다.)
- 다 짜고 배포하려니까 회사 형상관리 시스템이 죽었다...
- 퇴근했다. 그리고 오늘은 월요일.
[t:/] is not "technology - root". dawnsea, rss