쿠버네티스 세미나를 열었던 진짜 이유는 이기적이었다

혼자 아는 기술은 프로덕션에 못 쓴다. 저연차 시절 팀에 신기술을 전파했던 경험

미리 말해두자면, 그 세미나는 팀을 위해 연 게 아니었다.

3년 차쯤 됐을 때였다. 회사가 쿠버네티스 기반 배포 환경으로 전환을 시작했다. 지금이야 쿠버네티스가 기본값이지만, 그때는 대부분의 서버가 물리 장비 위에서 돌아가던 시절이었다. 장비 하나 늘리는 데도 시간이 한참 걸렸다. 그런데 새로 맡은 기능이 하필 그 방식과 상극이었다. 평소엔 조용하다가 어느 한순간에만 트래픽이 확 몰리는 이벤트성 기능이었다. 그 몇 분을 위해 장비를 계속 들고 있을 수는 없으니, 필요한 순간에만 서버 대수를 늘리는 스케일 아웃이 되어야 했다. 쿠버네티스가 필요한 이유는 명확했다.

팀 분위기는 걱정 반 기대 반이었다. 누가 대놓고 말한 적은 없지만, “니가 할 수 있겠어?”라는 눈치가 느껴졌다.

팀에서 나만 아는 기술이 되어버렸다

문제는 도입 초기라는 거였다. 문서도 부족했고, 사내에 레퍼런스도 없다시피 했다. 쿠버네티스 도입을 주도하던 인프라 조직이 따로 있긴 했지만, 바로 옆자리에서 물어볼 수 있는 사이는 아니었다. 에러가 나면 설정을 하나하나 바꿔가면서 뭐가 틀려서 안 되는지를 몸으로 알아갔다. 야근을 많이 했다. 도저히 안 풀리는 건 에러 로그를 정리해 그쪽에 보내고 코치를 받았다.

그렇게 한참을 구르고 나니 이상한 상황이 되어 있었다. 팀에서 이 기술을 아는 사람이 나뿐이었다.

혼자 아는 기술은 프로덕션에 못 쓴다

솔직해지자면, 세미나를 열기로 한 건 팀을 위해서가 아니었다.

쿠버네티스를 쓰면 쓸수록 확신이 생겼다. 이 기술은 앞으로 무조건 메인이 된다. 나는 아직 연차가 낮았고, 신기술을 모르면 안 된다는 강박도 있었고, 이 팀에서 더 잘하는 개발자가 되고 싶었다.

그런데 혼자 아는 기술은 프로덕션에서 못 쓴다. 내가 아무리 잘 다뤄도, 팀원 누구도 운영할 수 없는 기술을 서비스에 깔 수는 없다. 나 혼자 알면 그건 사이드 프로젝트다. 팀 전체가 쓸 줄 알아야, 그때부터 진짜 내 기술이 된다.

그래서 세미나를 열었다. 지금 생각해도 그건 팀 생각해서 한 일은 아니었다.

같이 따라하게 만들기

세미나는 열 명 남짓한 팀원을 모아 여러 차례에 걸쳐 진행했다.

듣기만 하다 끝나는 세미나는 만들기 싫었다. 그래서 슬라이드로 개념을 설명하는 대신, 툴을 실제로 같이 띄워놓고 내가 하는 걸 그대로 따라 하게 했다. 삽질하면서 알게 된 것들은 문서로 정리해서 같이 넘겼다. 어차피 개념은 검색하면 나온다. 팀에 필요한 건 우리 환경에서 내 손으로 배포해본 경험이었다.

나 없이도 돌아가게 만들기

시간이 지나면서 환경도 바뀌고 보강할 내용도 쌓였다. 그래서 이번엔 팀원들과 함께 내용을 다시 정리해서 2차 세미나를 열었다. 내가 맡는 몫은 줄이고, 더 중요한 부분은 팀원들이 진행했다.

첫 세미나 때는 나만 아는 기술이라는 상태를 없애는 게 급했다. 2차를 준비할 때쯤엔 욕심이 달라져 있었다. 이제는 내가 빠져도 굴러갔으면 했다.

그래서 뭐가 달라졌나

팀을 떠나올 때쯤엔 배포의 기본값이 쿠버네티스가 되어 있었다. 물리 장비는 극소수만 남았고, “니가 할 수 있겠어?”라는 눈치를 주던 팀원들이 각자 직접 배포하고 있었다.

이 경험은 좋은 평가로도 이어졌다. 그리고 그보다 오래가는 게 있었다. 이직한 뒤에도 이 경험이 그대로 자산이 됐다는 거다. 기술 자체는 어디서든 배울 수 있지만, 새 기술을 팀에 안착시켜본 경험은 흔치 않았다.

나만 아는 기술이 있다면

혹시 지금 팀에서 나만 아는 기술을 쥐고 있다면, 세미나부터 한번 잡아보시라. 대단한 명분은 필요 없다. 나도 그 기술 써먹고 싶다는 욕심으로 시작했으니까.