맛동산

토네이도 프레임워크, 니 정체가 궁금해 본문

파이썬/Tornado Framework

토네이도 프레임워크, 니 정체가 궁금해

오지고지리고알파고포켓몬고 2017. 12. 14. 23:14

저는 java기반 웹 개발을 하다가 현 회사에서 python web을 처음 만져봤는데, Django 기반의 웹 어플리케이션을 운영하던 중 병목현상에 대한 이슈가 생겨서 해결책을 알아본 결과, 대다수가 celery라는 것을 사용하여 비동기 통신을 통한 분산처리로 리소스 관리를 한다는 것을 알게 됐습니다.



하지만! 제 눈에 띄었던 것은 바로! 비동기 통신을 염두하여 설계된, tornado framework였습니다.



django에 celery를 붙이는 것으로 문제를 해결할 수 있을 것 같은데, 어차피 구조의 변화는 불가피하고, celery를 적용하는 것보다 tornado framework의 구조를 공부하는 것이 더 매력적일 것 같아서 tornado를 적용해보기로 계획했습니다.

(제가 받아들이기에 celery는 라이브러리에 가깝고, tornado는 포괄적인 웹 프레임워크라고 생각했습니다.)


검색해보시면 아시겠지만 특히 tornado는 celery에 비해 자료가 극히 부족합니다. 심지어 제가 찾아본 바로는 관련 서적도 기껏해야 한 권이더군요.

이렇듯 tornado framework 자체가 주는 희소성 역시 tornado를 선택한 이유 중 하나 입니다.(저는 비주류를 좋아합니다)








사실 celery를 tornado에서도 사용할 수 있는데 tornado에서 주장하는 비동기 통신이 framework 내부에서 제공을 하는 것인지 celery를 불러와서 사용하는 구조인지는 아직 잘 모르겠습니다.


또한, tornado는 하나의 스레드를 사용하는 것으로 구현되어있고 celery는 각 요청별 프로세스를 할당하는 것으로 되어있는 것으로 아는데, 서비스가 '단순 I/O를 처리하는지' 혹은 '장기 할당이 필요한 작업을 처리하는지'에 대한 부분으로 필요성이 갈릴 것 같습니다.


저도 처음부터 시작하는 입장이라 추후에 정보를 얻는대로 반영하겠습니다.


(저도 파이썬 웹은 처음입니다..)


잠시 다른 소리를 하자면, 글쓰기의 가장 큰 매력은 '어떤 한 분야에 대해 자세히 알아봐야 하는 점, 장단점을 비교하기 위해서는 관련된 것 까지 자세히 알아봐야 한다는 점' 인 것 같습니다.



그럼 지금부터는 tornado docscelery docs를 읽어보면서 장기적으로 한 땀, 한 땀 파헤쳐보며 각각 퍼포먼스를 발휘할 수 있는 분야와 장단점을 비교하는 시간을 가져보겠습니다.

Comments