Ahea 2019 상반기 세미나 회고
작년에 이어 생애 두 번째 세미나의 발표자로 서게 되었다. 원래 작년 하반기에도 IoC를 주제로 발표를 준비했지만 스터디 그룹의 여건상 불발되었다. 이후 스터디 그룹 내실을 다져 2019.05 중으로 발표 계획을 잡았고, 다시 주제부터 시작해서 발표 준비를 하기로 했다. 공식적인 스터디는 2019.02부터 시작하게 되었다. (물론 2, 3월은 큰 다짐만 하고 4월부터 본격적으로 진행을 했다)
처음에는 DDD를 주제로 발표하려고 책을 읽었는데 쉽게 쓰여진 책임에도 불구하고 내용 자체도 추상적이고 호불호도 강한 주제라는 생각에 서둘러 주제를 바꿨다. 그리하여 나온 주제는 소프트웨어를 이용하여 대용량 트래픽 다루기 였다. Client Side LoadBalancing, Spring WebFlux, MQ, Redis, Reactive Programming을 사용해서 대용량 트래픽을 다루는 방법에 대해서 설명을 하려고 했다. 또한 구체적이진 않더라도 각각 기술들의 특성을 대규모 트래픽과 연관 지어서 큰 그림을 그리려고 했는데, 문서를 정리하다 보니 WebFlux 내용만 해도 많은 양의 글들이 쏟아져 나왔다. 또한 주변의 조언을 구하다 보니 알 수 없는 변수들 때문에 이러한 종류의 이슈는 이론적인 것보다는 경험이 더 중요하다는 의견이 많았다. 그래서 해당 이슈를 스터디장님께 전달했고, 범위를 줄여서 WebFlux 부분을 집중적으로 준비하기로 결정을 했다.
큰 주제를 잡았으니 그 다음으로는 발표 대상을 정했다. 개인적으로 발표함에 있어 대상을 잡는 것이 정말 중요하다고 생각한다. 왜냐하면 제한된 시간 안에 주니어, 시니어 모두가 만족할만한 발표를 하는 것은 쉽지 않다고 생각하기 때문이다. 그리고 아직 해당 내용을 토대로 많은 경험을 해보지 않았기 때문에 주니어와 WebFlux를 잘 모르는 사람들을 발표 대상으로 정했다. 그리해서 결정된 나의 발표명은 Spring WebFlux는 어떻게 적은 리소스로 많은 트래픽을 감당할까?로 정해졌다. 발표명을 보면 WebFlux의 원리에 대해서 설명한다는 것을 알 수 있다. (이 당시 최종 발표일은 2019.06.01로 확정되었다.)
Spring WebFlux는 어떻게 적은 리소스로 많은 트래픽을 감당할까?라는 주제를 토대로 작은 그림들을 그렸다. 그 결과 Non Blocking I/O과 Event-Driven를 충분히 설명하고 기존 모델인 Spring MVC와 비교를 통해서 Spring WebFlux가 대용량 트래픽을 커버할 수 있는 방법에 대해 설명하기로 했다. 그 결과 목차는 다음과 같이 나왔다.
- I/O
- Event-Driven
- Spring MVC vs Spring WebFlux
어느 정도 발표 내용이 정리가 되었고, 스터디원끼리 모여서 발표 후 피드백 시간을 갖기로 했다. 내 주제에 대한 피드백은 원리 뿐만 아니라 WebFlux 특징이나 코드에 대한 내용도 있었으면 좋겠다고 했다. 이때가 대략 발표일로부터 3주 정도가 남아있어서 부랴부랴 WebFlux Docs를 읽기 시작하면서 내용을 정리를 했다.
이때쯤 onoffmix를 통해서 세미나 모집이 진행이되었고, 제한 인원이 100명이길래 '설마 다 차겠어'하고 넘어갔던 게 며칠 뒤에는 100명이 꽉 차고 수십 명의 대기 인원까지 생겼다. 이때부터 긴장감과 사명감이 극에 달하기 시작했다.
이후 또 한번의 스터디를 통해 서로 피드백을 갖은 후 문서를 토대로 빠르게 PPT를 만들었다. 그리고 디자이너 친구에게 고기를 사준다고 꼬신 뒤 PPT에 전달력을 추가해달라고 부탁을 하였다. 이후 출퇴근길, 퇴근 후에 완성된 PPT를 통해서 내용 설명에서부터 농담할 타이밍까지 발표 연습을 했다. 그리고 발표 1주일 전 스터디원끼리 발표 장소에 모여서 리허설을 했다. 이미 발표 내용에 대해서는 검증을 받았기 때문에 청중들을 위한 음향, 목소리, PPT, 전달력 등을 위주로 진행하였다.
그리고... 6월 1일
발표 시작은 1시부터 진행이었지만 우리는 9시에 모여서 최종 리허설을 진행하기로 했다. 그런데 나는 홍대까지 9시에 가려면 늦어도 7시에는 일어나야 되고 또 마지막 세션(17시 시작) 발표라 컨디션에 영향이 있을 것 같아서 스터디장님께 사정을 좀 말씀드리니 천천히 와도 좋다는 말씀을 해주셔서 11시 정도에 도착하여 최종 점검을 하였다. 12시부터 세미나 등록인데 12시 전에 몇몇 분들이 일찍 도착하셨다. 우리는 서둘러 정리를 하고 바로 앞의 카페로 가서 각자의 발표 순서가 될 때까지 계속해서 발표 내용을 점검했다.
MQ 발표가 끝나고 나는 무대위로 올라가서 노트북을 세팅한 후 숨을 크게 들이마셨다. 10분의 휴식 시간이 지난 후 진행자의 소개를 시작으로 발표가 진행됐다. 준비해온 간단한 Quiz에서부터 Spring Flux 설명까지 마쳤다. 내게 주어진 시간은 1시간이었지만 발표는 약 50분 정도에 끝났다. 그리고 Q&A 시간에 약 6, 7분의 청중께서 질문을 해주셨던 것 같다. 다행스럽게 대부분은 아는 내용이어서 편하게 답변을 할 수 있었다. 그러나 잘 이해하지 못한 질문에는 양해를 구한 뒤 발표가 끝난 직후에 얘기를 나눴고, 고민해봤던 문제들이라 나의 생각을 말씀드렸다.
약 86명이 세미나에 참여를 해주셨다. 이렇게 4달간의 길다면 길고 짧다면 짧은 여정의 끝을 맺었다. 사실은 발표 준비에 대한 압박과 스트레스를 핑계로 해야 할 다른 일들을 하지 못 했는데, 발표가 끝났으니 이제 차차 다시 진행을 해야될 것 같다. 그리고 발표를 긴장 안 하고 잘할 줄 알았었는데 되돌아 생각해보면 준비해온 대로 너무 다다닥 급하게 진행을 한 것 같다. 중간중간 청중과 호흡을 하면서 하려고 노력은 했지만, 썩 만족스럽지는 못했다. 이 부분은 추후 발표 때 좀 더 개선해야 할 부분으로 보인다. 또한 발표 장소에 대한 아쉬움도 남았다. 예상치 못한 인원이 오다 보니 앞사람 머리에 가려 뒤쪽에서는 PPT 내용이 잘 보이지 않았던 것이다. 다음에는 계단식인 곳으로 가야되나... 그래도 미리 PPT자료를 공유해 놓았던 것이 큰 도움이 되었다.
발표 종료 후 참여자분들께 피드백 설문조사를 요청했고 22분이 응답을 해주셨다. 대부분 긍정적인 피드백이어서 다행스러운 한편 더 좋은 환경과 더 좋은 내용을 전달하지 못한 아쉬움 또한 크게 남는다. 그리고 가장 인상 깊은 주제에 대한 설문에서 내 발표가 2번째를 차지했다. 참으로 뿌듯한 결과이다. 앞의 이러한 아쉬움, 보람들을 토대로 다음 하반기 발표에는 더 좋은 주제로 찾아뵀으면 한다. 마지막 바람은 저번과 이번 다 행사의 마무리 발표를 맡았는데 다음 발표는 첫 세션에서 청중들을 만나뵀으면 좋겠다. 나도 편하게 나머지 세션 듣고 싶다. 보고계시죠?