洪民憙 (홍민희) 블로그

이하의 글은 2011년에 쓴 것입니다. 오래된 글인 만큼, 현재의 생각과 전혀 다른 내용도 많이 포함되어 있고, 당시와는 상황이 많이 달라진 점도 있습니다. 또한, 그 당시에 잘못 알려졌던 정보도 포함되어 있을 수 있습니다. 어찌됐든 저는 제 오래된 글이 회자되는 것을 저어합니다. 읽기에 앞서 양해를 부탁드립니다.

Linesman

Linesman은 WSGI 프로파일러 미들웨어다. 일반적인 WSGI 미들웨어처럼 사용하면 된다. 만약 Flask를 쓰고 있다면,

from linesman.middleware import make_linesman_middleware
app.wsgi_app = make_linesman_middleware(app.wsgi_app)

같이 쓰면 된다.

프로파일러는 /__profiler__에 접근하면 볼 수 있는데, 이 경로 자체는 미들웨어에서 다음과 같이 설정이 가능하다.

app.wsgi_app = make_linesman_middleware(app.wsgi_app, profiler_path='/linesman')

Linesman은 호출 그래프도 보여주는데, 내부적으로 Graphviz의 dot 명령어를 사용하므로, Graphviz가 설치되어 있지 않으면 그래프 이미지가 나오지 않는다. 아무런 메세지 없이 그냥 그래프가 나오지 않기 때문에 실제로 소스코드를 열어보지 않으면 왜 안나오는지 짐작하기 힘든데, 그래프가 안 나오면 Graphviz가 설치되어 있는지 확인해보면 된다. (다르게 생각하면 Google App Engine 같은 제한된 환경에서는 그래프를 절대 볼 수 없다는 얘기도 된다.)