에반 • 피플팀에서 채용을 담당하고 있어요
안녕하세요. 채널팀에서 채용을 담당하고 있는 에반입니다 :) 오늘은 채널톡 개발팀 중 가장 많은 개발자가 모여있는 백엔드팀 인터뷰를 진행했습니다. 인터뷰이는 API 셀에 있는 코일과 B2C 신규 프로젝트 팀에 있는 라임입니다.
코일 : 안녕하세요. 백엔드팀 API 셀에서 개발을 하고 있는 백엔드 엔지니어 코일입니다. 메인 API 개발을 하고 있고, 고객분들이 채팅창을 열고 상담하는 과정, 캠페인이나 서포트봇 등 상담과 관련된 API를 담당하고 있습니다. 라임 : 처음 입사했을 때에는 채널톡 백엔드 API 개발을 하다가 작년 7월부터 채널톡의 B2C 신규 프로젝트 팀으로 이동해서 백엔드 개발을 하고 있어요. 백엔드 서버를 Golang을 이용하여 신사업의 바닥부터 만들어 나가고 있습니다.
코일 : 채널톡은 지인들이 다니고 있어서 전직장에 다닐 때부터 잘 알고 있던 곳이에요. 그 친구들이 채널톡 이야기를 많이 해줬었는데, 가장 끌렸던 건 새롭게 도전할 수 있는 것들이 많다는 점이었어요. 그만큼 배울 것이 많다고 생각해서 합류하게 되었습니다. 라임 : 저는 채널톡 합류 전에 개발자 CEO가 이끄는 스타트업에 있었어요. 개발자 CEO와 함께 일하는 게 좋았고, 다음 회사도 개발자 출신 CEO가 이끄는 스타트업에 가야겠다고 생각하고 있었어요. 그러다 채널팀을 알게 되었고, 백엔드 신입임에도 불구하고 높은 연봉을 주고, 그만큼 빠르게 성장하기 좋은 곳이라는 평들을 보고 꼭 가야겠다 마음 먹었어요.
코일 : 채널톡 재직 중인 친구들이 여기는 대화가 많은 팀이고 개발 외적으로도 성장할 수 있는 기회가 많은 곳이라고 했어요. 입사해 보니 이런 점들이 저랑 잘 맞고 재밌더라고요. 특히, 오버커뮤니케이션을 지향하는 회사라 그만큼 커뮤니케이션이 많다는 점이 참 좋았어요. 혼자 고민하는 시간 낭비가 줄어든다는 점과 동료한테 도움 요청할 때 눈치가 안보여서 오버커뮤니케이션을 지향하는 문화가 좋았어요. 그리고 작은 스타트업이라 개발자가 적을 줄 알았는데, 전체 인원의 60% 정도를 제품팀 인원으로 유지하고 있어서 그 점도 좋았습니다. 라임 : 백엔드 대용량 트래픽을 경험할 수 있다는 건 알고 있었는데, 이 정도로 트래픽이 이렇게 많을 줄 몰랐어요. B2B 회사다 보니, 트래픽에 대한 큰 기대가 없었던 것 같은데, 트래픽 1초에 최소 10k 이상 계속 발생해요. 채널톡 고객사는 빠르게 증가하고 있기 때문에 이 순간에도 채널팀의 서버가 감당하는 트래픽은 지금도 계속 증가하고 있습니다. 백엔드 엔지니어로써 대용량 트래픽 경험이 중요한데, 채널에서는 이런 경험을 할 수 있다는 점이 만족스러워요 :)
또한 채널톡 개발자는 기획까지 참여한다는 것에 대한 기대가 컸었어요. 개발자가 기획까지 한다고 하면 거부감이 드는 사람도 있을 것 같아요. 제가 직접 이 문화를 접해보니까, 주도적으로 만들어나갈 수 있는 것들이 많아서 재미있었어요. 한번 와서 경험해보시면 저처럼 즐기실 수도 있으리라 생각해요.
코일 : 저희의 많은 트래픽으로 인해서 발생할 수 있는 여러 이슈들에 대해서 고민했을 때 가장 재밌었어요.
자동 배정을 위해서는 유저챗과 매니저, 팀 세 가지를 고려해서 동작해야 합니다. 여기서 특히 유저챗의 경우 계속해서 유저분들의 상담이 들어오고 대화가 이루어지면서 많은 정보들이 빠르게 변하는 데이터입니다.
빠르게 변하는 데이터들의 정합성을 최대한 보장하며 데이터베이스 읽기로 인해서 발생되는 데이터베이스 접근 시간과 많은 읽기로 인한 데이터베이스의 다른 성능이 줄어들지 않게 많은 고민을 했습니다.
매번 유저챗의 변화가 있을때마다 데이터를 읽으면, 같은 데이터베이스를 읽어야하는 기능들의 성능이 떨어지고, 고객분들의 경험도 같이 나빠지게 됩니다. 그렇다고 자주 읽지 않게 된다면 데이터의 정합성이 그만큼 떨어지게 되기 때문에 담당자분을 제대로 배정할 수 없게 돼요.
이를 해결하기 위해서 적절한 캐시기능과 최적화를 고민하고 개발해야했습니다. 실제로 배포 직후에도 지속적으로 서비스를 모니터링해서 개선을 하고 있습니다. 채널톡에서 발생하는 많은 트래픽을 경험했던 제일 앞에서 경험하고 개발할 수 있어서 뜻깊고 재밌던 개발이었어요 :)
라임 : ‘채널톡 4월 대개편’ 때 가장 빠르게 성장한 것 같아요. 이때 다양한 기능들이 변화가 있었어요. 많은 엔지니어 분들과 유저, 유저챗, 서포트봇 등 채널톡의 기둥이 되는 기능들의 큰 개편을 진행했는데, 이 개편에 한 명의 크루로 참여했어요.
이 개편을 함께하며, 함께 대단한 것을 이뤄간다는 생각을 많이 했고, 실제로 제가 기여한 일도 많았었어요. 이 시점이 제가 입사한지 2달쯤 되었을 시기인데, 이 개편에 함께하면서 소속감과 자존감을 많이 느꼈고, 앞으로의 채널팀에서의 생활을 더 많이 기대하게 했던 것 같습니다.
특히 유저챗을 개선하는 작업을 진행했던 것이 기억에 남는데요. 유저챗이라는 채널톡의 중심적인 로직을 직접 리서치하고, 방향성을 제시해 볼 수 있었어요. 이 과정을 통해서 dynamoDB를 질의하는 로직을 최적화하는 작업도 진행해 볼 수 있었어요.
그리고 이어서 1억건이 넘는 유저챗의 migration 하는 코드를 작성하고, 개선하고 직접 돌려보는 것까지 직접 진행할 수 있었는데요. 사실 두렵기도 하고, 걱정도 정말 많이 했지만 그만큼 해냈다는 뿌듯함과 성취감을 많이 느낄 수 있었습니다. 이런 경험들을 반복하면서 빠르게 성장할 수 있었던 것 같아요.
코일 : 딱 한 가지만 꼽으라면 백엔드 세션이 가장 만족스럽고 외부에도 자랑하고 싶은 빠른 성장을 위한 문화에요. 매주 금요일마다 백엔드팀이 온/오프라인으로 모여서 한 시간 정도 세션을 진행해요. 공유하고 싶은 지식이나 이슈 핸들링한 내용 등을 팀원들과 나누는 시간입니다. 매주 이렇게 진행하다 보니, 다른 셀이 어떤 업무를 하는 지도 알 수 있고, 간접적으로 안 써본 기술에 대해서도 배울 수 있어요.
망고가 진행했던 세션에 대해 이야기를 좀 드려볼게요. 해당 세션은 망고께서 저희가 쓰는 JOOQ에서 실제 내부 구현이 어떻게 되어있는지 확인해 주신 세션입니다. JOOQ에서 제공해 주는 isFalse() 라는 함수가 이름과 달리 equalFalse 형식으로 구현되어 있어서 저희가 원하는 바와 달리 동작하고 있음을 찾아낸 세션이었습니다.
이 세션 이후로 백엔드팀 내부에서 몇몇 비효율적으로 동작하던 쿼리들을 수정하는 작업이 들어갔고, 여러 코드에서 성능을 개선할 수 있던 세션이었습니다.
그리고 이 부분도 꼭 말씀드리고 싶은데 채널톡 엔지니어들은 코드리뷰 문화에 대한 자부심이 있어요. 정말 꼼꼼하게 리뷰하고, 새로 입사하신 분들은 거의 대부분 채널톡 코드리뷰 문화에 많이 놀라세요.
라임 : 저는 스터디를 적극적으로 하고자 하는 문화가 매력적이라고 느꼈는데요. 채널팀과 함께한 1년 동안 모두 7개의 스터디에 참여했어요. 함께 일하는 동료들과 스터디를 함께하다 보니, 스터디에서 얻은 내용들을 업무에 그대로 적용할 수 있었습니다.
클린코드와 같은 책을 읽고, 리뷰하면서 서버에 너무 큰 코드를 가져와서 직접 리팩토링하는 경험과 같이 스터디를 통해서 사내 문화에 다양한 기여를 할 수 있었어요. 사실 개발을 하면서 모든 부분이 마음에 들 수는 없잖아요. 그런데 이런 스터디 문화, 그리고 이를 장려하는 문화가 있다 보니 직접 개선점을 찾아보고, 주장하고, 바꿔나가는 일련의 과정을 통하여 더 좋은 방향으로 나아갈 수 있었어요. 이런 과정을 거치는 것도 나름 재미있는 경험이었어요.
자세한 내용이 궁금하다면 제가 작성한 블로그 글도 한번 참고해주세요.
라임 : ‘CT문화’ 라는게 외부에서는 이해하기 어려울 것 같은데, ‘소규모 개선조직’ 이라고 생각해주시면 될 것 같아요. 전체 리소스 중에서 메인으로 챙기긴 어렵기 때문에 별동대 느낌으로 뭉치는 느낌입니다.
다양한 CT 가 있는데 그중, 제가 가장 기억에 남는 건 테스트 CT에요. 테스트 CT는 채널톡의 서버의 테스트가 너무 오래 걸리는 상황을 개선하고, 앞으로 더 좋은 테스트를 생산하기 위하여 발족되었어요.
테스트 CT 활동을 하면서 단위 테스트로 개선해서 테스트 속도를 빠르게 만들었고, 많은 논의를 통하여 팀 내의 테스트 가이드를 구축했어요. 그리고 위에 코일께서 말씀해 주신 세션을 통하여 공유하여 팀 내에 좋은 테스트 문화가 정착할 수 있도록 노력했답니다.
지금 시점에는 자연스럽게 단위 테스트가 작성되고 있는데, 굉장히 자랑스러운 결과가 아닐 수 없습니다. 이 부분에 대하여 더 궁금하시다면 단위 테스트 CT의 대장님 해머가 글을 작성 중인데, 조만간 테크블로그에서 확인 가능하실 거에요.
라임 : 지하철역과 이어져 있어서 너무 편해요. 이 전에 있던 삼성동 오피스는 지하철에 내려서 10분 정도 더 걸렸었는데, 여긴 비가 와도 눈이 와도 지하로 편하게 오피스까지 들어올 수 있어요. 그리고 제가 회사를 다니면서 운동을 시작했는데요. 그래서 그런가 회사에서 프로틴 음료를 주는 것도 큰 복지라고 여겨지네요! 편의점에서 구매하면 상당히 부담이 되는 편인데, 채널팀 간식코너에서 감사하게 즐기고 있어요 🙂
마지막으로 채널팀 제품 성장에 중요한 기여를 한 사람은 빠르게 보상해요. 저 같은 경우에도 평가/보상 기간이 아닌데도 최근에 레벨이 올랐어요 :) 코일 : 회사에서 맛있는 점심을 제공하는 점이 너무 만족스러워요. GS타워 구내식당에서 점심을 제공하는데, 외부에서 만 원 이상 주고 먹는 식사보다 훨씬 퀄리티가 좋아요. 영양사도 엄청 유명한 분이라고 하더라구요. 그리고 채널톡 간식코너는 거의 작은 편의점 수준이에요.
그리고 사내 바리스타가 있는 점도 너무 만족스러워요. 회사에 출근하면 먹을 걸로 고민 할 일이 없어서 비용도 절약되고, 업무에도 더 집중 할 수 있어서 좋아요. 그리고 출퇴근 시간 자율, 업무공간 자유, 충분한 보상 등 현금성 복지는 없지만 일에 집중할 수 있는 것들은 다 갖추고 있는 것 같아요.
요약하면 자유로운 문화속에서 스스로 동기부여해서 일하는 문화가 잘 자리잡고 있어서 만족합니다.
코일 : 개발팀 안에서도 특히 백엔드 팀은 CS 지식이 풍부한 사람을 더 중요하게 생각하고 있어요. 우리가 현재 쓰고 있는 기술을 당장 내년에도 계속 쓰고 있을 거라고 생각하지 않아요. 기술 변경을 할 때에 탄탄한 CS 지식이 중요하다고 생각합니다. 그리고 대체 가능한 여러 기술들의 장단점을 파악하고 최적의 기술을 선택하는 리서치 능력을 중요하게 생각해요. 마지막으로 커뮤니케이션 능력인데요, 모르는 걸 모른다고 말할 수 있는 용기가 필요하다고 생각합니다. 라임 : 전 질문에 코일이 답한 것처럼 스스로 동기부여하고, 빠르게 회사와 함께 개인의 성장을 원하는 사람이 적합한 것 같아요. 그리고 커뮤니케이션 능력 또한 굉장히 중요하다고 생각합니다. 개발자에게 은탄환은 없다는 말과 같이 뭔가를 선택함에 있어서 정답은 없고, 각각의 장단점을 잘 파악해서 선택하는 것이 중요한데요. 이 경우에 서로 상충되는 의견을 가지게 되는 경우가 종종 있어요. 이럴 때 생산적으로 토론하고, 최선의 방향을 찾아나가기 위하여 좋은 커뮤니케이션 능력이 필수적으로 요구된다 생각해요.
채널톡은 요즘 같은 스타트업 불황기 속에서도 빠르게 성장하고 있고, 계속 좋은 엔지니어를 찾고자 노력하고 있어요. 그래서 이 인터뷰도 하고 있는 걸로 알고 있습니다. 자유로운 환경 속에서 주도적으로 일하면서 빠르게 성장하고 싶은 백엔드 엔지니어라면 채널팀에 합류해주세요 ~ 백엔드 채용 공고는 아래 버튼을 클릭하시면 확인 하실 수 있고, 백엔드 신입도 환영입니다.
저희와 함께 즐겁게 일해요 :)
[이런 글도 추천드려요]
We Make a Future Classic Product
채널팀과 함께 성장하고 싶은 분을 기다립니다