2021 회고 : CTO로서 1년
- 2020년 12월 TechAssemble 진행
- TechAssemble이라는 Tech내부에서 현황을 공유하고 앞으로 해야할 일들을 공유하는 자리를 마련했다.
- 2020년 12월 어떤 식으로 일을 할 것이고, 코드리뷰를 하는 방식, git branch 전략을 Github Flow로 통일했다.
- 단순히 코딩을 한다는 것보다는 제품(product)/서비스를 만들고 가치를 만들어내는 중요한 역할을 하는 것이 우리의 역할이라고 상기시켰다.
- 2021년 3월에 다시 TechAssemble을 진행했고, 우리가 일하는 방식이 변화되면서 1분기 사이 PR과 배포 관련 지표상으로 어떻게 달라졌는지를 구성원분들에게 보여주었다.
- 2021년 12월에
TechAssemble: 성장에 대한 이야기
라는 주제로 진행, 1년동안 구성원, 서비스 그리고 일을 하는 프로세스와 소통 방식이 어떻게 변화되었는지를 주제로 다시 구성원들에게 공유를 했다.
- 코드리뷰-배포 프로세스 개선
- 기존에는 특정 요일에 정기적으로 나가는 식이 아닌 만들어지는 대로 배포하는 프로세스였다.
- 문제점은 오픈라인 결제업의 특성상 그리고 코로나 이슈로 점심/저녁 그리고 주말 점심/저녁에 사용량이 몰리는 상황이었다. 이 상황에서 코드버그로 인한 핫픽스가 주말에 발생 할 수 있어서 매주 정기적 배포하는 프로세스로 변경했다. 당연히 배포당 에러율이 현저하게 줄어들었다.
- QA가 없기 때문에 매주 배포 전 QA시간을 캘린더로 관련된 분들을 초대해서 진행하기로 했다.
- 개발자, 디자이너, PO등이 참여해서 변경사항 뿐만 아니라 골든패스에 대한 테스트 무조건 수행
- 한 번에 배포하는 방식이 아닌, 점짐적 배포 방식(30% => 50% => 70%)을 도입, 주말전에 릴리즈된 버전에 한해서 실제 환경에서 100% 사용될 수 있도록 배포를 스케쥴링 했다.
- 기술에 대한 부분
- Github Actions/Environment/Secrets를 통해서 배포하는 식으로 전체 배포 프로세스를 통일했다. 자세한 부분은 내년에 https://blog.payhere.in 에서 밝힐 예정이다.
- 개인적으로 조금 더 Django/DRF와 그리고 golang/Gin에 대해서 익숙할 수 있었던 한 해.
- Layered Architecture를 기본으로 code 작성시의 그라운드 룰(ground rule) 문서를 작성해서 코드를 작성하거나 리뷰하는데 서로 align을 많이 맞추도록 노력했다. 이 부분은 항상 현재진행형이다.
- Swagger를 모든 서버 Github Repo에 위치하도록 가이드했고, Multiple Swagger를 oauth-proxy를 이용해서 볼 수 있는 사내 apidoc 사이트를 만들었다.
- 사람에 대한 부분
- 1on1
- 초기에 굳이 해야하는가에 대한 의견도 있었지만 처음 했을때 팀원분들의 생각들을 다양하게 엿볼수 있어서 좋았다. 어떤 고민들을 하고 있고, 어떤 생각들을 하고 있는지 그리고 회사가 성장함에 따라 역할이 어떻게 변화되게 되는지에 대해서 미리 알려주었다.
- 원래는 분기별로 모든 인원에 대해서 하려고 했는데, 프론트엔드 파트가 급속으로 인원이 늘어가면서 하지 못했고 현재는 입사하면 1번은 무조건하고, 백엔드는 내가 맡아서 1달에 한번은 무조건 진행하고 있다. 각자가 원하는 부분이 달랐고, 진짜 열 길 물속은 알아도 한길 사람속은 모른다는 말이 틀린말이 아니다라는 것을 느꼈다.
- Tech 파트 뿐만 아니라 1인 팀으로 있는 분들 그리고 다른 업무적 연관성이 있는 분들과 몇번 1on1을 했었고 다들 스타트업에서 힘든 순간들을 버티고 있구나 라는 생각이 들었다.
- 내년에는 더 자주 하고 좀 더 듣고 실행하는것에 초점을 맞추고 싶다.
- 병역특례
- 마이스터고 분들을 모시려고 했고, 1분을 모셨고 기대보다 더 잘해줘서 너무 고마웠다.
- 좋은 선례가 되어서 내년 1월부터 2명의 인턴분들을 모시고 함께 하려고 한다.
- 다행히 병역특례 업체로 지정이 되었다.
- 면접
- 면접 내에서 기본적인 면접 진행방식을 만들었고, 이후에 몇 번의 면접들을 보면서 백엔드 팀원들이 같이 회고를 진행, 공통 면접 질문이나 코딩테스트 문제 등을 취합했다.
- 경력 서버엔지니어는 1년 내내 지원자체가 너무 없었고, 그 안에서 뽑고 싶은 사람은 더 없었던것 같다. 그래도 2명을 뽑았고 기대 이상으로 너무 잘해주고 있다. 🥰
- 나는 주로 내가 면접을 봐왔던 최근의 환경들을 기준으로만 생각 했었다. 경력직 면접 기준
- 생각보다 개발/코딩에 대한 세상의 관심이 많아졌고, 그로 인해서 학교를 졸업하고 취업을 하는 일반적인 루트가 아닌 부트캠프나 다른 분야의 회사를 다니다가 개발자로의 취업을 하는 분들이 많다는 것을 느꼈다.
- 서비스를 만들어야 하는 것들은 많은데 사람은 늘지 않고 내부 인원들이 지쳐가는 모습들을 보면서 채용의 바를 낮춰야 하는가에 대한 고민이 많았다. 내부에서도 기준의 너무 높다는 의견들이 있었다. 그러나 언제나 기준을 높게 가져가야 한다는 것에 대해서는 여전히 고수하고 있다. 그 기준에 대한 증명은 입사하신 분들이 일에 대한 기준/기술적으로 높은 수준을 유지하려는 부분에서 증명된다는 것을 확인했다.
- 경력직을 채용하기 어려운 상황에서 하반기 이후부터는 주니어 포지션을 본격적으로 열고 과제를 주고 평가후, 면접으로 진행하는 식으로 바꾸었다. 1주일의 시간을 드리기 때문에 내부에서도 피드백을 반드시 드려서 설사 면접으로 진행되지 않더라도 한 명의 개발자로의 성장에 도움이 되는 피드백을 드리려고 노력하고 있다.
- 많은 분들을 면접관으로 배정하고 있고, 그 과정에서 면접 구성에 대한 피드백과 자연스러운 개선이 일어났다. 어떻게 하면 성장가능성을 볼 것인지, 좀 더 편안하게 면접자에게 아이스브레이킹을 할 수 있는 방법은 무엇인지 등등 다양하게 고민을 하는 부분이 좋았다. 가장 좋았던 것은 이제는 나혼자 이런 고민을 하지 않는다는 것이다.
- 면접을 정말 많이 봤고, 백엔드 뿐만 아니라 다양한 직군분들을 만나뵈었던것 같다.
- 확실히 개발자 연봉이 많이 올랐다는 것을 새삼느끼고 있고, 이제는 그것을 어떻게 반영할 것인가에 대한 부분은 숙제로 계속 남게 되는 것 같다.
- 원래 사람을 만나서 이야기 하는것을 그리 좋아하지 않는 스타일이었고 인간관계도 넓은 편이 아니였다. 전형적인 내향적인 사람. 자리가 사람을 만든다고 했던가, 리멤버 또는 페이스북/트위터에서 모르는 사람에게 쪽지 보내서 커피챗을 하자고 서슴없이 하게 되었다.
- 사람 한명한명이 올 때마다 진짜 달라지는 것을 느낌. 백엔드 2명일 때 진짜 너무 힘들었는데, 3명일때 좀 더 수월해졌고, 점점 늘어나면서 일을 분배할 수 있게 되고 좀 더 미래지향적인 그림을 그릴 수 있게 되었던 것 같다. 그렇지만 일은 스트리밍으로 늘어나고(나는 카프카이고 싶지만 컨슈머일뿐) 그런 상태를 유지하는건 진짜 점점 더 어렵다는 것을 느꼈다.
- 항상 나보다 나은 점이 있는분들(그것이 꼭 기술적일 필요는 없다.)을 모시자는 생각을 가지고 있다.
- 초반부터 markdown 기반의 회사 기술 블로그를 만들고 싶었고 생각보다 시행착오는 많았지만 기술블로그를 넘어서 모든 영역의 분들이 열심히 글을 써주시고 있다.
- 1on1
- 툴
- 여러 가지를 도입했지만 가장 잘 샀다고 생각하는 건 Datadog
- 도입과정에서 비용에 대한 부분이 걱정되긴 했지만, 전체 구성원이 대만족!
- 우려했던 것 만큼 많은 비용은 나오지 않는다.
- 프론트 엔지니어가 백엔드 엔지니어에게 요청/응답 로그를 확인해달라는 요청을 많이 했었는데, 이제는 알아서 Datadog에서 로그를 검색해서 검색링크 기반으로 소통 진행하고 있다.
- 로그 검색을 통해서 데이터 기반의 의사결정을 할 수 있게 되었다. 문제가 되는 케이스에 대한 데이터 확보가 쉬워졌고 그에 따른 의사결정이 가설이나 추정이 아닌 데이터에 기반해서 자연스럽게 의사결정하게 되었다.
- 전체적으로 인프라-백엔드-프론트엔드의 통합을 위해서는 꽤 많은 부분을 설정을 해야 하는데 내년에도 계속 될 예정이다.
- 문화에 대한 부분
- 문화는 쉽게 만들어지지 않는다는 것을 깨달음.
- 좋은 문화속에 있을때는 절대 알지 못한다. 마치 물안에 있는 것과 같은 느낌.
- 업무적으로 DM을 하지 않는 문화를 만들려고 노력했고, 잘 되고 있는지는 모르겠다.
- 최대한 공유하고 투명하게 오픈하려고 노력하고 있다.
- 회의에 대한 부분
- 짧게 가져가고 싶은데, 짧은 대신 많아지는 것도 있었던 것 같다.
- 불필요한 회의가 있는데 그것을 자각하지 못한 것도 있었고, 사람이 늘어나는 것, 늘어나는 속도에 따라서 빠르게 회의방식, 커뮤니케이션 방식을 바꿔야겠다는 생각이 들게 되었다.
- 원래 회의록을 잘 안 쓰는 편인데, 모든회의록을 다 슬랙 채널에 공개해서 최대한 무슨 일을 하는지 다른 파트의 분들에게 공유했다.
- 도움이 되었던 책
- 올해 구매해서 좋았던 것들
기타
- 요즘 경계하는 부분은 CTO인 내가 하기 때문에 쉽게 되는 것에 대해서 경계를 하고 있다.
- 어떤 개발작업이 잘 진행이 안되는 것 처럼 느껴짐.
왜 이렇게 더딜까?
를 고민. 돌이켜보면 내가 CTO이기 때문에 많은 부분, 인프라에 대한 접근, 코드 리뷰 등이 쉽게 느껴져서 그렇게 생각하는 것 같다. 이런 의식을 자꾸 끊어내려고 노력하고 있다. - 일이 더딜때, 바로 들어가서 참견하기 보다는 좀 더 담당자가 잘 공유할 수 있는 환경을 만들어 주고, Blocker가 무엇인지를 물어보는 식으로 접근하려고 한다.
- 어떤 개발작업이 잘 진행이 안되는 것 처럼 느껴짐.
- 사람들은 내가 스트레스를 안 받는다고 생각하는데, 나는 의도적으로 그렇게 안 보이려고 굉장히 노력하는 것 같다. 나는 사무실 들어가기 전에 이런 주문을 외운다:
오늘도 나이스하되, 드라이하게
그리고 감정적으로 힘들면 퇴근을 하는 편이다. 누가 힘든 모습을 봐서 좋을게 뭐가 있나? - 스트레스로 숨을 쉬기가 힘들었을 때가 있었다. 어느 날 비가 많이 오는 날인데 번개가 치는데 잠에서 벌떡 깨서 벽에 기댔는데, 식은땀이 흘렀고, 환청이 들렸다. 그때부터 스트레스 해소에 대한 부분을 고민하기 시작했다.
- 전 직장의 동료분이 명상과 관련된 책을 선물, 한동안 명상까진 아니더라도 스트레스가 받는 상황에서는 의도적으로 호흡 내뱉기 시작했고 조금씩 부담감이 덜어졌다.
- 위임이 필요하다:
- 코딩을 할 수 있는 시간이 엄청나게 적어졌다. 하루에 2시간. 요즘엔 연속 1시간도 힘들다.
- 그러나 특정 코드 영역/도메인에 대해서 여전히 나에게 의존하는 영역이 있다. 단기간에는 어렵겠지만 이 부분도 위임을 하려고 한다.
- 신규입사자가 많아짐에 따라 권한, 등록 등의 절차들이 많다. 어떤 월요일은 진짜 일을 아무것도 하지 못하는 상태, 자연스럽게 야근 혹은 새벽 근무를 한적이 있는데 이제는 진짜 위임을 해야한다고 생각하게 되었다.
- 의도적으로 행복한 행위를 하려고 노력한다.
- 모바일 게임이 아닌 콘솔 게임을 가끔 즐기고 있다. ROI가 안 나오는 행위라는 생각이 들지만, 재미나 행복은 ROI와 상관없다고 생각. 30분 ~ 1시간이라도 즐길려고 노력한다. 할 수 있는 시간은 사실상 새벽ㅠ,
젤다야숨, 동물의 숲, 위쳐3
- 주말에는 시골 생활, 주말 모니터링을 위해서 Datadog을 켜놓킨 하지만 그래도 집에 있는 것 보다 산책을 하거나 강아지와 놀거나 삽질(진짜 삽질)을 하거나 하는 등의 아날로그 적인/몸을 쓰는 행위들을 많이 해서 좋았던 것 같다.
- 좋은 음식을 먹으려고 노력하는 데 난 여전히 너무 유혹에 약하다. 먹어본 음식, 아는 맛은 생각보다 무섭다.
- 모바일 게임이 아닌 콘솔 게임을 가끔 즐기고 있다. ROI가 안 나오는 행위라는 생각이 들지만, 재미나 행복은 ROI와 상관없다고 생각. 30분 ~ 1시간이라도 즐길려고 노력한다. 할 수 있는 시간은 사실상 새벽ㅠ,
- 포도나무는 올해는 거름/비료를 많이 주었는데 그게 조금 문제가 있었던 것 같고(포도알이 떨어지는 문제가 발생) 그래도 꽤 많이 열려서 몇 식구가 1박스 이상으로 가져가서 먹었던 것 같다.
- 초보 CTO로 일을 하면서 느낀점은 나는 진짜 복을 받은 사람이라는 생각이 들었다. 회사분이 아닌 분들에게 많은 조언을 구했다. QA, 보안, 채용, CTO, 운영 등 다양한 분야에서 같이 일했던 분들에게 절박해서 그랬는지는 몰라도 조언을 구했고, 모든 분들이 너무 많이 나를 도와주셨다. 그래서 내가 해보지 않은 영역에서도 1년동안 잘 만들어갔던 것 같다.
- 요즘 경계하는 부분은 CTO인 내가 하기 때문에 쉽게 되는 것에 대해서 경계를 하고 있다.
이전 회고들 :