2024년 회고, 보이지 않는 일들, 그리고 NEXT에 대하여
안녕하세요.
14년 차 개발자 배진호입니다.
벌써 2024년도 11월 말이 되고,
이제 2025년도가 다가오고 있네요.
오늘은 2024년을 회고하고,
CTO로써의 역할에 대한 이야기들을 해볼까 합니다.
CTO는 설득을 하는 사람이다.
문득, 회사에 처음 입사한 시간들이 떠오르네요.
2022년 6월, 회사에 문턱을 넘어서, 생각한 회사의 규모와 달리,
해야 할 일들은 쌓여있고, 개발자는 부족하고, 그리고 여러 가지로 다양한 회사의 목표와
문제들을 해결해야 하는 그런 과정.
기존의 서비스는 다양한 회사의 문제들을 가지고 있었고,
우리가 해결해야 하는 문제들은 너무나 많이 있었습니다.
그리고 가장 중요한 것 중 하나는, 고도화에 대한 니즈였죠.
어떤 회사든, 투자를 받거나, 신규 인력을 채용했을 때, 고도화에 대한 고민을 하게 됩니다.
기존의 레거시와 새롭게 리펙토링을 해야 하는 그 사이에 있어서, 어떤 선택을 하는 것이
회사에 유리한 방향을 결정할 수 있을 것인지에 대한 고민입니다.
때로는 레거시를 빠르게 정리하는 편이 나을 수도 있고,
어떤 경우에는 기존에 가는 시스템들을 잘 활용하는 게 회사에 유익이 될 수도 있습니다.
그 당시에는, 기존에 휴램이라는 서비스, 솔루션을 사용하는 사용자들이 많이 있던 상황이었고,
브랜드를 유지하면서, 고객들을 만족시키면서, 새로운 서비스로 도약하는 부분이 필요한 상황이었습니다.
그래서, 생각한 것은, 회사의 현재의 서비스의 자원은 무엇인가?
그리고, 회사에서 어떤 부분에 대해서 밸류업을 해야 하는가?
그리고, 어떻게 회사에 서비스가 좋아졌을 때 더 나은 서비스로 거듭날 수 있을지에 대한 생각이었습니다.
그 당시에
근로계약서, 연차, 급여, 근태와 같은 기본적인 기능들은 개발이 되어있었고,
관련된 기능들이 인사/노무 솔루션에 있어서 필요한 기본적인 부분들은 처리가 가능한 상황이었습니다.
그렇기 때문에, 기존에 있는 부분들을 잘 활용하면서,
서비스를 고도화할 수 있는 방향들을 모색하게 되었고,
기존의 시스템을 그냥 단순하게, 새롭게 만들기만 하면 되는 상황이 아니라는 생각을 했습니다.
그 결과 결정한 것은, 스루 패스 전략
기존 서비스를 새로운 소스로 만들면서, 동시에, 새로운 니즈와 개발들에 대해서, 계속 빌드업하는 전략을 취하게 되었습니다.
회사마다의 차이가 있고, 만약 회사의 여력이 되거나, 다른 서비스에 대해서 운영/개발이 가능한 인력들이 있는 상황이었다고 하면, 다른 전략을 생각했을 수도 있었지만,
현재 회사의 상황에 맞추어서, 어떻게 해야, 회사가 밸류업을 할 수 있을지에 대한 고민 결과.
기존의 홈페이지를 리뉴얼하면서, 서비스에 대한 고도화를 하는 전략이었습니다.
그 결과
근로 계약서의 기능을 업그레이드 -> 모바일 전자 계약 기능 강화 (서비스 설계 및 알림톡 및 서명 기능 구축)
연차 기능 강화 -> 기존에 담당자 입력, 담당자 승인 기능 -> 5명까지 근태, 연차 승인 기능 강화 및 요청 시 알림톡 기능, 승인 시 알림톡 기능
급여 기능 강화 -> 급여에 대한 급여 정보 리펙토링 및 급여에 대한 목록 및 정렬 기능 추가, 급여 전송 알림톡 기능
근태 기능 강화 -> 세콤과의 연동 기능 강화, 세콤 출퇴근 시, 휴램 근태에 입력되도록 추가, 근태 앱 고도화 GPS
차세대 서비스를 새롭게 만드는 전략대신,
기존의 서비스를 활용해서, 기능을 고도화하고, 고객들을 만족시키면서, 새로운 고객을 유치하는 전략을 취하고, 관련된 내용으로, 설득하고, 그 결과 회사 내 서비스를 만족하는 고객수가 증가해 왔습니다.
회사의 가입자 수는 지속적으로 성장하고 있습니다.
결론적으로 CTO는 대표도 설득해야 하고, 개발자, 혹은 기획자도 설득해야 합니다. 목표에 대해서 설득하고 만들어 가는 것이 중요합니다.
CTO는 관리만 하는 사람?
CTO는 개발자일까요? 관리자일까요?
이 질문은 모든 대표님들이 가지는 의문이자 동시에, 많은 CTO분들도 가지는 의문 중에 하나입니다.
CTO는 무슨 일을 해야 하는 것인지, 그냥 사람만 관리를 하거나 코드 리뷰만 하는 것인지, 아니면, 개발도 해야 하는 것인지. 정답 없는 소모적인 부분에 대해서 고민이 필요합니다.
어떤 대표님은 대기업 나온 CTO 분을 모셨지만, 실질적인 개발 부분이 부족해서, 어려움을 겪는다는 분들도 계시고, 실제로, 관리적인 역량이 부족한 개발자 분이 계셔서, 그런 부분에 대해서 고민인 대표님들도 계십니다.
실제로 모임을 운영하다 보면, 다양한 분들을 의 다양한 고충들을 들을 수가 있죠.
기업이 성장을 하기 위해서는 A부터 Z까지를 할 수 있는 역량의 인재를 찾기 마련입니다.
하지만, 실제로 자기 객관화를 하다 보면, 이 모든 것들을 할 수 있는 사람은 드물죠.
그래서 몇몇 기업의 공고들을 보고 있으면, 해당 채용 공고는 계속 비어있고, 마음에 맞는, 그리고, 조건에 부합하는 사람을 찾기 위해서 끊임없이 미팅을 하기도 하죠.
따라서, 결국, 어떤 사람이 CTO가 되어야 하는지, 이 부분에 있어서, 언젠가는 선택이 필요합니다.
모든 것을 잘하거나, 모든 것을 잘 안다기 보다도, 잘하는 부분이 존재하고, 그리고 나머지 부분들을 다른 사람으로 대체하거나 배분을 잘할 수 있는지, 그런 역량을 가지고 있는지가 중요합니다.
면접 때였어요. "CTO 이신대 개발은 하시나요?"
저희는 Asana라는 서비스를 이용해서, 작업을 관리하고 있습니다.
작업을 배분하고, 적절하게 관련 개발을 처리하고 있습니다.
2년 6개월간 처리한 업무 숫자입니다. 어떤 업무는 하루 만에 처리하는 업무도 있고, 어떤 업무는 2주가 걸리는 업무들도 있습니다. CTO라고 해서, 개발을 하지 않는다고 한다면, 인원이 너무 많아서, 그럴 수밖에 없는 회사의 규모를 가진 곳이라고 생각합니다.
회사가 커지는 입장에서, 회사의 다양한 업무에 대해서 정확하게 파악하고, 관련된 업무들을 처리할 수 있는 실무적인 부분이 있어야, 다음 스텝, 적 접한 업무들을 배정할 수 있고, 그리고 관련 업무들을 설명할 수 있게 되겠죠.
CTO는 개발에 대한 지식을 가진 채로, 관리도 하고, 운영도 하고, 때로 필요하면, 개발도 해야 합니다.
가장 중요한 것은, 목표에 대해서 수립하고, 그것을 도달할 자원들을 잘 관리하고, 부족한 부분들에 대해서 채우는 역할을 해야 합니다.
수동적? 능동적?
회사의 업무는 매일 가변 합니다.
어느 날의 업무는 많기도 하고, 어떤 날의 업무는 그렇게 많지 않을 수도 있죠.
하지만, 중요한 것은 해야 할 일들에 대해서는 끊임없이 일들이 있다는 것입니다.
당연하겠지만, 그래서 업무라는 것들에 대한 우선순위를 정확하게 조정하는 것들이 중요합니다.
MoSCoW로 성격 판단.
회사에서 업무 우선순위를 선정할 때는,
Must Have (필수 기능/프로젝트)
Should Have (필수는 아니지만 중요한 기능)
Could Have (있으면 좋으나 없어도 되는 기능)
Will not have (필요 없거나 현시점에서 적합하지 않은 기능)
이 4가지 선정 기준에 따라서 점수를 부여하는 방식을 사용했습니다.
그리고 그 결과 가장 점수가 높은 방식의 우선순위에 따라서, 업무를 선정하고 진행을 했는데요.
그 결과, 고객은 필수적인 기능이면서도 동시에 중요한 기능들을 업데이트받을 수 있게 되었습니다.
그리고, 업무가 선택되고, 무엇인가를 만들어 내는 과정들은, 늘 기반이 되는 시스템이 있지만, 초기에 무에서 유를 창조해야 합니다. 새로운 시도들이 동반됩니다.
휴램프로의 앱이 론칭될 때, 초기에 있는 서비스의 정확한 기능 명세를 바탕으로, API 설계가 들어갔는데요.
기존의 모바일웹을 걷어내고, 새로운 앱이 되기까지는 다양한 기능들을 조사하고, 문제없도록, 구현하기까지의 과정이 있었습니다.
다양한 개발 업무들을 하기 위해서, 앱개발자를 서칭 하고, 면접 보고, 좋은 개발자를 찾는 과정 부터 초기에 앱에서 리엑트 네이티브 앱으로 교체할 때, 고객들이 불편을 겪지 않는 수준에서, 자연스럽게 앱의 안에 있는 내용들을 교체하는 과정이 필요했습니다.
회사에 필요한 것이 있다면, 그 난이도에 구애받지 않고, 개발해 내는 부분이 필요한 부분이라고 생각합니다. 모바일을 통한 전자 서명을 구축하는 일, 그리고 GPS로 근태를 입력할 수 있는 기틀을 잡고, 앱을 론칭하는 일, 그리고 노무법인을 위한, 서비스를 구축하는 일, 신규 프로젝트의 경우, 총 개발과정 3개월로 빠르게, 론칭을 진행하였습니다.
문제 인식 > 설계 > 배포 프로세스 구축 > 론칭 및 테스트 > 운영 및 고도화 과정
CTO가 되면, 누군가가 시켜서 업무를 하기보다, 회사 내에 있는 다양한 살림들을 점검해야 합니다. 그리고, 개발팀이 부족하다면, 개발팀을 충원할 수도 있고, 그리고 필요하다면, 인프라를 점검할 수도 있고, 때로는 보안과 관련된 부분들을 체킹 하기도 합니다. 앱에 있는 API를 만들어야 할 수도 있고, 어떤 경우는 A to Z로 서비스를 론칭해야 하기도 하죠.
노무법인을 위한 휴램프로 솔루션의 경우, 회사의 다양한 업무들을 자동화해오고 있었는데, 만약 이것이 우리 회사만 하는 것이 아니라, 노무법인들이 우리 회사의 솔루션을 잘 활용해서, 다양한 회사들의 업무들을 자동화할 수 있다면?이라는 차원으로 시작한 프로젝트입니다.
노무 법인들이 사용하고 있는 몇 가지 솔루션들이 있지만, 기능 업데이트도 늦고, 빠르게 기능들이 업데이트되고 있지 않다는 단점이 있기 때문에, 관련된 문제를 해결하기 위해서, 가칭 휴램프로 솔루션이 론칭되었는데요.
노무 법인의 입장에서는 지금까지 관리하고 있는 수많은 회사들의 여러 가지 시행착오들을 줄여가면서 쉽게 관리할 수 있는 장점을 가지게 되는 솔루션이 되는 셈이었죠.
그것을 위해서,
기존의 휴램 솔루션과 신규 노무법인만을 위한 새로운 솔루션을 만들고,
프런트는 리엑트로, 그리고 서버는 rest로 구현하여, 해당 서비스를 3개월 동안 론칭했습니다.
이렇게 급여 아웃소싱을 혁신할 수 있는 솔루션이 만들어졌고,
많은 노무 법인들이 휴램프로의 서비스를 이용해서, 급여, 그리고 다양한 사업장 관리 프로세스들을 정립해 가고 있습니다.
보통의 경우 우리가 문제를 대하는 방식은, 어렵거나, 해결이 어려운 경우, 할 수 없다. 이렇게 빠르게 결론짓거나 포기하는 경우들이 많이 있습니다.
하지만, 문제를 어떻게 하면 해결할 수 있는지, 어떻게에 집중을 하게 되면, 문제의 해결 방안들이 보이게 되는데요. 하나의 관점이 아니라, 다양한 관점으로, 문제를 바라보고 해결하는 과정이 중요하지 않나 생각해 보네요.
CTO는 효율을 추구하는 사람
CTO가 하는 다양한 역할 중에 하나는,
회사가 성장하기 위해서, 어떻게 해야 할지에 관련된 다양한 관점들을 수립해야 하는 부분입니다.
만약 계속적으로 오류가 나는 부분이 있다면, 관련 오류를 처리하기 위해서 확실한 방향성과 문제를 탐구해서, 더 이상 문제가 나지 않도록 만들어야 합니다.
그리고, 회사에서 비효율이 있다면, 해당 비효율을 개선해 나가야 합니다.
회사에 입사했을 때, git으로 관리되고 있는 서비스들을 점검하고,
개발 서버를 구축해서, 운영 및 개발에 젠킨스를 통해서 잘 배포되도록 우선 점검을 했습니다.
팀 내에서 개발에 대한 프로세스 정립이 먼저입니다.
그리고, 회사 내에서, 여러 가지 정보들 중에 필요한 정보들의 경우 슬랙 챗봇 알림을 통해서,
회사의 가입자 내역이나 결제 등의 정보들을 담당자들이 빠르게 캐치할 수 있도록, API 연동 작업을 했습니다.
그리고 진행한 것은, 고객이 느끼는 가치에 있어서, 여러 가지 알림을 받아야 하는 경우, 연차 요청, 연차 승인, 급여 발송 등등 다양한 넛지에 알림톡을 연동하여, 고객들이 편리함을 느낄 수 있도록 자동화를 했다는 것입니다.
또한, 앱을 론칭함에 있어서, 최소한의 자원으로 최대한의 효율을 낼 수 있도록,
하이브리드 앱을 채택하고, 리엑트 네이티브로 앱을 구축하고, 해당 앱을 구동하여, 사용자들이, 네이티브 앱을 사용하는 것과 같은 경험과 함께, 근태 관리 시스템에 편리함을 느낄 수 있도록 만들었습니다.
그리고, 기존의 서비스의 로직을 잘 활용해서,
다양한 방식으로 사용하기 위해서, REST API 구축 시에, 기존 서비스와 자연스럽게 연동되면서도, 앱과 휴램프로와의 연계가 잘 될 수 있도록 내부적인 처리를 진행하여, 매끄럽게, 로그인 및 기타 여러 가지 API 연동이 될 수 있도록 설계들을 진행하였는데요.
이와 같이 CTO는 인력의 효율적인 배분과 함께, 어떻게 이 업무들이 잘 굴러갈 수 있도록 만들 것인지에 대해서 함께 고민하는 사람이라고 할 수 있습니다.
회사 안에 보이지 않는 다양한 업무들
CTO로써 팀원들에 대한 채용을 비롯해, 개발적인 업무들도 수행하지만,
비단 CTO는 개발 업무만 하는 것은 아닙니다.
포스트 팁스 관련된 사업계획서를 만들어 제출하여 통과되었고,
관련 과제로 기술 파트로 발표를 진행하여 그 결과
https://www.koit.co.kr/news/articleView.html?idxno=124903
국책과제에 선정되었습니다.
또한, GPS를 통한 앱을 론칭하면서
위치 기반 사업자 신고를 해야 했는데,
관련 위치 기반 서비스 사업을 신고 하기 위한 제반 사항들을 수립하고 처리하였습니다.
또한, 사내 보안과 관련하여,
다양한 문제들을 차단하고, 보안 관제 웹 방화벽을 도입하여, 보다 안전하게 고객들이 서비스를 이용할 수 있도록 점검하고, snort를 설치하여, 문제들을 방지할 수 있도록 정비하였습니다.
휴램프로의 팀빌딩 과정
휴램프로는 개발팀 초기에 백엔드 1, 프런트 1, CPO 1, CTO 1 총 4명의 구성원으로 되어있었는데요.
지금은 백엔드 4, CTO 1, 앱 개발자 1, 프런트 2, CPO 1, 디자이너 2 총 11명으로 구성원이 확장되었습니다.
원티드와 다양한 채용플랫폼을 활용하기도 했지만, 기존에 운영하던, 치킨 모임에서 좋은 분들을 만날 수 있는 기회들이 있었고, 그 결과 채용에 있어서는 빠르게 원하는 인재들을 모아 프로덕트들을 고도화해 나갈 수 있었습니다.
제품 개발 본부는 추구하는 역량 표어를 바탕으로, 이에 맞는 인재들을 뽑기 위해서, 많은 분들을 만나서 컨택하고, 그 결과 각각 맡은 미션을 책임감 있게 수행하는 목표 지향적인 조직으로써 발전해 왔습니다.
회사 문화와 방향 정립
회사는 각각의 회사마다 추구하는 방향과 특징점이 있습니다.
휴램프로도, 회사가 추구하는 방향에 따라서 회사의 문화들을 만들어 왔습니다.
기본적으로 일하기 좋은 조직과 문화입니다.
회사 안에서 재택은 주 3회 회사 출근은 주 2회였는데요. 저희의 기본 모티브는 재택은 복지가 아니다였습니다. 출퇴근이 먼 사람들을 고려해서, 일에 더 집중할 수 있도록 주 2회에서 주 3회로 재택을 늘리고, 피드백을 3개월 주기로 받아서, 업무에 지장이 없는지 점검하고, 업무의 효율성을 확인했는데요.
전체적인 업무 효율성이 증가되었다는 피드백과, 잔업을 해야 하는 경우, 집에서 이어서 하고 마치기가 수월하다는 평가들이 많았고, 그 결과 주 3회 재택을 유지해 왔습니다.
그리고 재택시에는 게더툴을 활용해서, 업무적인 소통을 대체했는데요.
그 결과 회사에 근무하는 근무자의 만족도와 방향성 그리고 일에 대한 만족도가 향상될 수 있었습니다.
또한 업무는 3주에서 한 달 주기로 굵직한 프로젝트들을 배분하고, 데일리고 분산되는 업무들을 배정했는데요.
매일매일 9시 혹은 9시 40분에 데일리로 애자일 스탠딩 미팅을 진행함으로써, 매일매일 각각 해야 할 업무에 대해서 점검하고, 각 팀원들이 어떤 업무들을 하고 있는지 확인하고, 처리한 일들에 대해서도 공유할 수 있는 시간들을 두어서 진행 사항에 대한 확인 및 일정을 체크하는 문화를 만들었습니다.
또한 회사에 크고 작은 버그들에 대해서, 원인과 재발 방지를 위한 코드 리뷰 & 피드백 시간을 두어 팀 내에서 관련 문제가 재발하지 않도록 리뷰하는 문화들을 만들어 왔습니다.
그 결과 채용인원 중에, 제가 근무하는 기간 동안 퇴사하겠다고 하는 인원이 한 명도 없었네요.
조직에 대한 애사심과, 조직에 대한 애정이 생기고, 그리고 업무적인 환경이 적절하게 갖추어졌을 때, 업무에 대해서도 열정을 가지게 되고, 그 결과를 보면서 함께 성장을 꿈꾸는 것이 아닌가 생각해 보게 되네요.
회사 외에 기술 역량을 위해서 진행했던 일들
2024년 동안 회사에 굵직한 다양한 프로젝트들을 진행해 왔지만,
개인적으로도 기술에 대해서 점검하고 공부해 왔습니다.
2024년 10월 KB ACE Academy DT 기초프로그램 - 국민은행 재직자 대상으로 웹 프로그래밍 강의를 진행하고, 2024년 7월에는 카카오 테크에서 devOps 중 지라와 컨플루언스 강의를 진행했습니다.
2024년 8월에는 현대 오토에버에 devOps 강의를 진행했는데요. Jira & ConJira & Confluencefluence
1. 데브옵스의 필요와 목적과 이유
2. 웹서버의 이해 (AWS EC2 세팅 및 프로젝트 세팅) - nginx, apache, java 세팅
3. 스프링 프로젝트를 서버에 배포하기
- 서버의 배포 CI/CD 과정의 이해 2일 차
4. RDS의 이해
5. 젠킨스 소개 및 설치 이론 및 실습
6. 빗버킷 소개 및 실습
7. 도커를 통한 devOps 이해하기
8. 도커 설치 및 컨테이너 구축 이론 및 실습
9. 도커 이미지 빌드 및 실행
10. 쿠버네티스 클러스터 구축
이와 같은 강의 교안을 작성하고, 기술적인 역량들을 점검하고, 강의를 진행했습니다.
https://brunch.co.kr/@chickenmoim/11
2019 년 devOps 강의를 처음 진행한 이후 계속 강의들을 진행해 오고 있는데요.
학생들에 대한 이해, 온라인 강의와 오프라인 강의의 다양한 특성들을 고려하여, 강의를 진행해 오고 있습니다.
CTO로써 내부의 사람들을 관리하기도 하고, 때로는 필요할 때는 1 to 1으로 붙어서, 설명을 해주거나 세팅을 해주기도 하고, 그리고, 내부적으로 어려운 일이 있을 때 해결사의 역할을 자처하기도 하고, 어려운 프로젝트의 경우 도맡아서 처리하기도 합니다.
그리고 지금처럼 인력이 있는 회사와 같은 경우는 일에 대한 배분을 생각해서, 적절하게 일들을 배분하는 것들을 생각하지만, 인력이 없는 회사의 경우에는, 처음부터 끝까지 직접 설계하고 구축해야 하는 일들도 있죠
Sk 브로드 밴드 프로젝트 같은 경우는 Spring boot 프로젝트를 초기 설계부터 인프라에 배포까지 전반적인 부분을 혼자서 세팅하고, 그리고, jira api를 모두 연동해 왔었는데요.
그만큼, 다양한 부분에 있어서, 다양한 시각들을 가지게 되는 듯합니다.
개발도 하고, CTO의 역할을 감당하기도 하지만,
하지만, 회사에서 겪게 되는 어려움들을 피할 수 없기도 하죠.
재정적인 부분입니다.
Saas 시장은 시간 싸움입니다. 적절한 비용의 투자가 끊임없이 일어나야 하고, 제품의 완성도와 시간이 확보되어야 고객들이 점차 많아지는 것이겠죠
위와 같이 다양한 업무들,
인프라부터, 팀빌딩, 그리고 개발, devOps까지 다양한 부분들을 진행해 왔는데요.
11월 30일까지 휴램프로에 근무하고,
이제는 새로운 곳을 찾게 되었는데요.
다양한 가능성들을 열어두고 있습니다.
7여 년 간의 CTO 경험을 살려서, PRE A부터 시리즈 A까지의 CTO 경험이 필요한 회사.
개발 프로덕트 총괄 리딩 경험을 살려서, 개발 팀장 및 리더가 필요한 회사,
다양한 API 연동과 결제 모듈 연동, 그리고, 백엔드 설계부터, 인프라 세팅까지 백엔드가 필요한 회사,
초기 앱론칭부터 시작해서, 리엑트, 리엑티브 개발에 대한 전반적인 앱 론칭까지 해본 분이 필요한 풀스택 개발자가 필요한 회사까지.
네, 잡부입니다. 잡부지만, 그래도 스타트업에서 꽤 오랜 시간 동안, 다양한 짬밥과,
모듈 연동, 자바, php, react, node 등등 언어를 딱히 가리지 않는 경우는 많지 않죠.
12월 동안, 최대한 다양한 회사들을 만나보려고 합니다. 그리고 마음에 맞고, 같은 시각을 바라보는 회사를 만나 보고 싶네요.
제 메일 주소는 baeno@nate.com입니다.
연락 주시면, 이력서와 함께, 포트폴리오 전달 드리겠습니다.
이상 읽어주셔서 감사합니다!