Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.
RetroTech 팟캐스트 44BITS 팟캐스트

play.node 2017에서 발표한 "Node.js API 서버 성능 개선기"

Play.node 2017에서 발표를 했다. play.node 1회인 2012년에 발표한 뒤에는 운영진으로 참가했었고 운영진을 하면서 발표하는 건 보통 어려운 게 아니라는 걸 알게 되고는 이번에는 발표하기로 결정하고 운영진에서는 물러났다.

그동안 회사에서나 스터디에서 가끔 발표를 하다 보니 못 느끼고 있었는데 막상 발표하려고 했더니 공개적인 자리에서 발표하는 건 1년 만이라는 걸 깨달았다. 너무 오랜만이란 걸 알고 나니 약간 긴장은 됐지만, 발표가 처음은 아니라 그럭저럭 진행했다. 평소에는 훨씬 더 발표에 얘기할 내용이랑 시간 체크를 확실히 하는 편이지만 이번에는 발표 자료 준비에 큰 노력을 해서인지 피곤함에 발표 연습을 많이 못해서(실제로 자료도 당일 완성되었다.) 2분 먼저 시작했음에도 7분이나 초과하고 말았다. ㅠ 웬만해서는 발표시간을 맞추는 편인데... ㅠㅠ

발표해야겠다고 결정했을 때부터 하고 싶은 내용은 결정되어 있었다. Node.js 6.x와 8.x에 대해서 비교하고 싶었고 그 성능개선 과정에 관해서 얘기하고 싶었다. 관련해서 작년에 고생했던 Heap Dump 분석도 같이 얘기하면 괜찮을 것 같았다.

하지만 리얼월드 프로덕트는 항상 발표에 좋게 나오는 것은 아니므로 준비를 하면서 고생을 많이 했다. 테스트 환경이라 서버를 구성하면서도 큰 노력을 들였지만, 그 이후에도 한 번 실행하면 40분씩 걸리는 테스트를 돌려놓고 기다린 다음에 결과가 의도와 다르면 원인을 찾고 수정을 하고 다시 돌리고 다시 돌리고... 다시 돌리고... 지루함과 어려움의 연속이었지만 성능을 향상했다는 것이 목적이 아니라 성능 향상을 위한 결과 분석을 어떻게 하느냐는 게 발표의 목적이었기 때문에 발표를 위한 자료는 어느 정도 준비되었다.

처음에는 Node.js 6.x와 8.x의 결과가 나와서 이제 거의 다 해결된 것처럼 느껴졌지만 설명하기 좋은 CPU 프로파일링 결과 분석과 Heap Dump 의 내용까지도 정리하기까지는 시간이 꽤 걸렸다. 내 코드의 아주 명확한 병목이나 잘못된 부분이 나왔다면 발표는 좀 더 쉬웠겠지만, 코드가 괜찮다고(?) 안심해야 하는 건지 발표준비에 대한 걱정을 해야 하는 건지 심란한 시간을 보내면서 준비를 했다.

발표자료의 꾸미기에 좀 더 힘을 쓰는 편이긴 한데 이번에는 테스트하고 자료를 준비하느라고 꾸미기는 좀 생략한 게 좀 아쉬웠다. 생각보다 너무 많은 사람이 와서 약간의 긴장을 가지고 시작했고 보통 발표가 그렇듯이 평가가 어떤지는 몰라서 걱정에 휩싸였지만, 친분이 있어서 그런지 다들 좋은 피드백을 주셔서 좀 맘이 편안해졌다.

2017/11/10 00:42 2017/11/10 00:42