로토의 블로그

인프콘 2023 발표 후기

인프콘 2023 발표 후기 대표 이미지
해당 컨퍼런스의 다시보기 영상이 공개되었다.
2023년 8월 15일에 있었던 인프콘 2023에서 `SSR의 기쁨과 슬픔`이라는 이름으로 발표를 했었다.

어떻게 발표를 하게 되었는지, 어떻게 준비했는지, 소감은 어떤지 등을 회고해보자 한다.

인프콘 2023 발표자 참여의 시작은

오랫동안 같이 일했던 동료 루카스가 발표를 하나 해달라고 요청을 해왔다. 마침 컨퍼런스에서 발표를 안 한지 오래 됐기도 하고, 마침 회사 프로젝트에서 SSR과 사투를 벌이고 있었던 때라서 이 경험을 한번 잘 녹여내서 발표를 하면 좋을 것 같다는 생각이 들어 흔쾌히 수락했다.

생각보다 빠듯한 준비과정

발표자 확정이 5월초쯤이었고, 발표 자체는 8월이니까 시간이 넉넉할 줄 알았는데 아니었다. 1차 자료를 6월 중순까지 보내야 했기 때문.

느긋하게 있다가 날짜를 확인하고 후다닥 자료를 준비하기 시작했다.

기존 자료에서 발췌한 것들

이번 발표 자료에 있던 Server Side Template, Client Side Rendering, Server Side Rendering에 대한 내용은 기존 발표 자료 중에 JamStack에 대한 발표자료에서 일부를 발췌한 것이다. 사실 기존 발표자료에서는 이후 Static Site Generator, Incremental Static Regeneration와 같은 내용도 있었는데 언급하기에는 시간이 모자랐기 때문에 인프콘 발표자료엔 넣지는 않았다.

이 부분에 Static Web Site에 대한 내용과 이해를 돕기 위한 인프라 구조 자료 등을 첨부했고, 어떤 흐름으로 렌더링이 발전했는지를 조금 더 보강해서 넣었다.

넣지 못할 뻔 했던 Streaming SSR

발표 자료에는 많이 넣지는 못했지만 Streaming SSR 작업을 적용하는 과정에 있어서 우여곡절이 좀 많았다.

react 공식 문서를 보면서 한 작업은 생각보다 얼마 걸리지 않았는데, 프로덕션 환경에서 알 수 없는 문제를 일으켰기 때문.

트래픽이 일정 이상 발생하는 경우 내부에서 404 처리해둔 커스텀 에러 페이지가 잠깐 보였다가 화면이 제대로 보여지는 아주 희한한 문제가 있었고 이때문에 배포 후 롤백을 여러번 했다.

로컬 환경이나 알파 배포 환경에서는 이 문제가 재현이 안 되었고, 이런 저런 방식을 시도하다 최후의 방식으로 선택한 것이 canary 배포 방식이었다. 이건 운영 환경과 똑같은 서버 환경을 만들고, 서버 내에서 특정 Flag를 통해 특정 비율의 사용자에게만 Streaming SSR을 적용하는 방식을 이용해서 문제점을 하나하나 고쳐나갔다.

다행히 발표자료 마감 전에 Streaming SSR 배포가 성공적으로 적용 되었고, 이 내용을 슬라이드에 포함 시켰다.

CSR, SSR, Streaming SSR 구현체 샘플

사실 이 부분은 발표자료 마감 이후에 만든 샘플들이다. 셋 다 vite 기반이고, SSR과 Streaming SSR의 샘플은 fastify 기반으로 react-dom/server를 이용해서 구현이 되어있다.

샘플 코드는 아래 GitHub 저장소에서 구경 가능하다.

발표자료를 구성하는 뮤지션 정보는 트위터와 인스타그램 스토리를 통해 모집했고, 연락주신 분들의 데이터를 반영했다.

이 자리를 빌어 흔쾌히 먼저 연락주신 분들에게 감사를…

뮤지션 목록 페이지

키노트

뮤지션 목록 페이지

발표 자료 템플릿은 PPT와 키노트 두가지로 제공이 되었는데, 개인맥북, 회사맥북 모두 MS오피스가 설치 되어있지 않아서 키노트를 이용해 슬라이드를 만들었다.

그동안 대부분의 발표자료는 유료 구독을 하고 있는 https://slides.com/ 에서 만들었어서 키노트 자체를 처음 써봤고 이래저래 삽질을 좀 했다.

그래도 어떻게든 잘 만들어 낸 것 같다.

발표자료 다이어트

발표가 있기 일주일 전, 당근마켓 커뮤니티실 사람들 대상으로 사전 발표를 먼저 거쳤다. 내 발표시간은 40분이었는데, 막상 준비된 자료로 발표를 하니 한시간이 살짝 넘게 되었고 이때 받은 여러가지 피드백과 초과된 시간을 고려하여 슬라이드의 20% 정도를 쳐냈다.

인프콘2023 당일의 아침이 밝아오다

SSR의 기쁨과 슬픔 세션 설명

이렇게 발표자료와 코드 샘플 등의 모든 준비는 끝났고, 발표의 날이 찾아왔다.

내 발표 시간은 가장 마지막 타임이었는데 이 시간이면 중간에 집에 가는 분들이 많을거라 막상 내 발표때는 사람이 없으면 어쩌나 걱정을 좀 했는데 다행히 그런 불상사(?)는 없었다.

긴장감 없음

사실 많은 발표자분들이 긴장감을 토로하셨는데 솔직히 나는 긴장이 안 됐다.

밴드 활동 하면서 수없이 무대에 올라가 본 경험 덕분이겠지.

말은 이렇게 해놨지만 혹시나 녹화본에서는 목소리가 떨리진 않았나 걱정이 된다.

빨리 녹화본 올라왔으면 좋겠다.

사람들하고 인사하느라 바빴던 하루

돌아다니면서 그동안 격조했던 분들하고 만나서 인사하고, 또 알아봐주시고 인사해주시는 분들과 교류하느라고 정작 다른 분들 세션은 하나도 못 들었다.

내가 진행했던 강의나 스터디를 들으셨던 분들이 먼저 인사해주시기도 했고, SNS에서만 알고 지냈던 분들 역시 먼저 인사를 해주셨다.

예전 직장 동료들과도 만나서 이런 저런 이야기를 나누기도 했다.

컨퍼런스에서는 이런 부분들도 참 좋다.

이전과는 많이 달라진 컨퍼런스의 분위기

코엑스에서 진행하는 컨퍼런스 하면 가장 먼저 떠오르던게 한국자바개발자 컨퍼런스인데, 그때와 비교하면 컨퍼런스의 분위기가 상당히 많이 달라졌다는 것이 느껴졌다.

일단은 참여하시는 분들의 연령대도 많이 낮아졌고, 행사 자체도 기존 컨퍼런스들 보다는 좀 더 활기차고 동적인 느낌?

특히 네트워킹 파티 등에서 처음 보는 사람들끼리 왁자지껄하게 떠들고 즐기는 모습들이 참 보기 좋았다.

음… 이런 말 쓰니까 너무 노인네 같은데 앞으로는 잘 쓰도록 해야겠다.

발표하고 나서 좋았던 것

JSCON16이 첫 컨퍼런스 발표 데뷔였는데 이후 7년만에 한 컨퍼런스 발표였다. 발표자 추천해준 루카스에게 감사하고, 또 좋은 행사 만들어둔 인프랩에 감사하다는 말씀을 먼저 드리고 싶다.

누군가에게 어떤 지식을 발표한다는 것은 그 지식을 내가 알고 있던 것 이상으로 온전히 체득할 수 있는 기회와도 같다. 내가 잘 알았던 것을 더 잘 알게 되고, 잘 아는 줄 알았던 것을 사실은 잘 몰랐었다는 것을 알게 되기도 한다.

이번 발표 자료를 준비하면서 더 많은 내용을 찾아보고, 소스코드를 뜯어보고, 여러 소프트웨어 엔지니어들의 논의도 찾아봤다. 덕분에 Streaming SSR 자체에 대한 이해도가 더욱 깊어진 것 같다.

Q&A 세션

발표 이후 별도의 장소로 이동해서 Q&A 세션을 가졌다. 생각보다 많은 분들이 Q&A 세션 장소에 찾아와주셨고, 많은 질문과 답변이 있었다.

원래는 발표 끝나고 단체사진 촬영이 있었는데 Q&A 해드리다 사진은 못 찍었다. 살짝 아쉽긴한데 그래도 Q&A 내용들이 찾아오신 분들에게 도움이 되셨다면 그걸로 괜찮다.

발표를 무사히 마치고

오랜만에 큰 행사에서 발표해서 좋았다. 공연을 하면서 관객분들을 통해 에너지를 얻는 것처럼, 발표도 비슷한 종류의 에너지를 얻게 되는 것 같다. 기회가 된다면 지금보다 좀 다 활발하게 발표 활동을 할 수 있도록 해야겠다.

이번 인프콘 2023도 참가 경쟁률이 상당히 높았던 걸로 기억한다. 언제부턴가 컨퍼런스 티켓팅이 굉장히 힘들어졌는데 컨퍼런스에 참여하는 가장 쉬운 방법은 발표자가 되는 것이다. 발표자를 하면서 배우는 것도, 얻는 것도 상당히 많으니 내년에는 좀 더 많은 분들이 발표자에 도전해보셨으면 좋겠다는 말을 마치고 이 두서없는 회고를 마무리한다.