GIRI • Engineer, Admin Cell
5월 22일
안녕하세요. 채널 코퍼레이션의 소프트웨어 엔지니어 기리입니다.
이번 글에서는 채널팀의 자랑하고 싶은 개발 문화인 엔지니어 세션을 이야기해 보겠습니다.
채널 코퍼레이션에서는 매주 금요일에 온/오프라인으로 모여서 한 시간 정도 엔지니어 세션을 진행합니다. 주로 업무를 하면서 내가 배운 지식이나, 이슈 핸들링, 인사이트를 공유합니다. 이를 통해서 자신만 알고 있을 수 있는 것들을 모두에게 공유하는 개발 문화를 함께 만들어가는 시간입니다.
백엔드 팀에서 시작해, 지금은 웹팀, 모바일 팀, AI 팀 그리고 비 개발 직군까지도 함께 동참하고 있습니다.
2021년부터 시작된 엔지니어 세션은 지금까지 총 180개의 세션, 49명의 엔지니어가 세션을 진행해 주셨습니다. 채널의 기술 블로그에도 올라와 있는 두기의 AWS SQS 도입기나, 어셔의 SOCKET 개선에 대해서도 세션을 진행했었습니다.
세션을 시작하게 된 이유는 채널 코퍼레이션의 비전과도 연관이 있습니다. 채널팀이 채널톡으로서 풀고자 하는 미션은 “고객과 기업 사이의 communication 문제를 해결하자”입니다. 개발 직군은 제품 개발이라는 수단으로, 비 개발 직군은 다른 수단으로 미션을 풀고 있습니다. 엔지니어 세션은 팀원들끼리 같은 생각의 결을 가졌으면 좋겠다는 생각으로 시작했습니다.
우리는 많은 문제를 풀어야 했고, 문제를 풀 때 수단은 달라도, 같은 방향성으로 접근하고 싶었습니다. 그러기 위해서는 팀원들이 문제를 풀기 위해 어떤 식으로 생각하는지, 커뮤니케이션을 통해 서로의 생각을 공유하는 자리가 필요했죠.
엔지니어 세션이 지금의 모습으로 운영되기까지 많은 시도들이 있었습니다. 팀원들이 바쁜 일정 속에서도 틈틈이 세션을 준비해 주시다 보니, 업무에 미뤄져서 후순위가 되는 경우가 많았습니다. 특히 전사적으로 바쁜 시기에는 몇 주간 진행을 못한 경우도 있었습니다. 원활한 엔지니어 세션 운영을 위해서 새로운 움직임이 필요했습니다. 코일, 기리, 나비 셋이 뭉쳐서 엔지니어 세션을 살리기 위해 열심히 머리를 굴렸고, 저희가 문제를 해결하기 위해 실행했던 사항들은 아래와 같습니다.
문제를 해결하기 위해선, 문제를 잘 정의해야 했습니다. 모두에게 세션은 어떤 것인지에 대해 잘 정의되지 않았습니다. 기술적으로 난이도가 있어야만 세션이 가능한 줄 아는 분도 있었고, 백엔드 지식만이 다뤄져야 하는 줄 아는 분도 있었습니다. 모두가 세션에 대한 같은 기대치를 가져야 한다고 생각했고, 세션이 무엇인지를 정의하고 공지했습니다.
편하게 하고 싶은 이야기를 하는 자리로 정의를 내렸습니다. 엔지니어 세션은 기술적인 이야기도 좋지만, 팀 소개, CT(소규모 개선 모임) 인원 모집 등 문제 해결을 위해 필요한 이야기를 하는 장소입니다.
금요일에 진행하다 보니, 보고 싶은 주제였지만, 놓치는 경우가 많았습니다. 영상으로 남겨진다면 놓친 부분도 다시 볼 수 있게 도와줄 수 있었죠. 구글밋 녹화를 도와주는 서비스를 통해 녹화본을 제공할 수 있었습니다.
발표자의 세션이 있다면, 청자들의 질문도 세션을 구성하는 큰 요소입니다. 오프라인에서는 질문들이 대부분 챙겨지지만, 온라인에서는 묻히는 질문들이 꽤 있었습니다. 어떤 상황이든, 누구든지 편하게 질문할 수 있는 공간이 필요했어요. 슬리도를 통해 질문을 주고받는 창구를 만들었습니다.
세션 진행, 슬리도를 통한 Q&A 그리고 다시 보기를 통한 추가질문. 경험들을 챙기다 보니 세션이 가지는 프로세스가 확립이 되었습니다.
꾸준한 세션을 운영하기 위해서, 한주에 몰리지 않도록 적절한 로드밸런싱이 필요했어요. 그러기 위해선 미래에 있을 세션들을 관리하는 게 필요했습니다.
이번 주에 있을 세션부터, 길게는 3달 뒤의 세션까지 후보군들을 관리하였습니다. 놓쳐질 수 있는 일정을 계속해서 소통을 하였습니다. 회사에서 진행되는 행사와, 큰 배포 일정 등을 미리 조율해 꾸준한 콘텐츠의 수급에 힘을 썼습니다.
세션 후보에 대한 관리도 필요했습니다. 세션이 활발해지면서 자원해 주시는 분들도 많지만, 숨은 엔지니어들의 이야기들도 듣고 싶었어요. 채널톡이 장려하는 스몰 톡 문화가 큰 도움이 되었는데, 이야기를 할 자리가 있을 때마다, 엔지니어들에게 세션에 대해 이야기를 했고, 부담 없이 진행할 수 있는 세션을 소개하고 있습니다.
그럼 엔지니어 세션을 진행하며 인상 깊었던 세션들을 소개해 드리려고 합니다.
해머는 세션을 가장 많이 진행한 우수 회원님이신데요. 많은 세션 중에 재밌었던 내용 하나를 뽑자면 graceful shutdown입니다.
여러 대의 인스턴스로 운영되는 서비스 환경에서, 애플리케이션은 언제든 쉽게 죽거나 죽일 수 있습니다. 하지만 갑작스럽게 죽는 것보다는 역시 안전하게 죽는 게 더 좋겠죠?
채널톡은 외부 메시지를 보내는 기능이 있습니다. 실제 전송 내역과 전송 내역 통계 사이의 오차가 있었습니다. 이 문제를 해결하고자 깊게 탐구했던 내용이었습니다. 흔히들 삽질기라고 하죠. 문제 해결을 위해, 한 걸음 한 걸음 짚어나가는 과정들이 녹아져있어서 집중도가 매우 높았던 세션이었습니다.
채널팀 사람들이 어느 정도 배경을 알고 있으면서, 대부분의 서비스에서 발생할 수 있는 상황이라 더욱 재밌게 들었던 것 같습니다.
이거 명작이죠. 채널톡 블로그와 aws 블로그에 올라온 글입니다.
두기도 세션에 자주 참여해 주시는 우수 회원인데요. 두기의 세션은 아웃백의 주문 경험을 연상시킵니다. 청자의 눈높이를 먼저 맞추고, 빌드 업을 통해, 결국에는 하고 싶은 메시지를 전달하죠. 두기의 세션은 듣고 나면 소프트스킬의 중요성을 새삼 깨닫게 됩니다.
SQS를 바로 설명하지 않고, Queue, 분산 환경의 Queue, SQS의 특성을 차례차례 이야기해 주면서, 채널톡의 서비스에 녹이기까지의 내용이 담겨있었습니다. 1시간 분량의 세션이었지만 시간 가는 줄 모르고 재밌게 들었던 기억이 납니다.
채널 네 컷은 채널팀의 소규모 행사마다 등장한 토이 프로젝트입니다. 챌린저스 해커톤, CHX Editors Day, 채널콘 CX 애프터 파티 등의 행사에서 선보였습니다.
기술 선택, 아키텍처부터 개발하면서 힘들었던 트러블 슈팅까지 기승전결이 잘 꾸려진 발표였습니다. 다른 플랫폼의 개발자가 봐도 흥미진진했습니다.
인상 깊었던 점들이 많았습니다. 하드웨어가 필요한 프로젝트였기 때문에, 아키텍처를 정의한 부분이 재미있었습니다. 세션이 끝난 후 질문들도 기억에 남습니다. 백엔드, 프론트엔드 상관없이 많은 질문들이 있었습니다. 다양한 생각들을 볼 수 있었습니다. 그리고 레거시 라이브러리와의 싸움은 모든 개발자들이 공감할 수 있는 이야기였을 것 같습니다.
쿠바는 전화 개발을 하는 미트셀의 엔지니어입니다. 백엔드 내부에서도 특수한 도메인이라, 서로 모르는 지식이 많습니다. 쿠바의 음질 분석 시리즈물을 통해 재밌게 지식을 얻어 갈 수 있었습니다.
채널톡은 작년에 전화 기능을 출시하고, 꾸준히 기능들을 개발해 나가고 있습니다. 전화에서 음질은 매우 중요한 부분입니다. 개발 초기에 음질을 잡기 위해 많은 고생을 하셨습니다.
앞서 말했든 쿠바가 시리즈물로 준비해 주셨습니다. 소리란 무엇인가로 시작해서, 음질에 영향을 주는 것들, 네트워크로 인한 음질 저하 요소들, 그리고 채널톡에서 문제를 해결한 과정까지. 다양한 시청각 자료도 활용해 주셔서, 대학교 교양수업을 듣는 기분이 들었습니다.
엔지니어 세션은 현재 기리, 코일, 나비 그리고 명예 운영진 탄토가 진행하고 있습니다. 채널팀의 바쁜 일상 속에서 개발 문화를 만들기 위해 노력하고 있어요. 요즘에는 팀원들의 세션 외에도 외부 시니어 엔지니어들을 초빙해서 세션을 진행하고 있습니다. 관심 있으시다면 채널팀으로 연락 주세요.
We Make a Future Classic Product
채널팀과 함께 성장하고 싶은 분을 기다립니다