요즘IT
위시켓
최근 검색어
전체 삭제
최근 검색어가 없습니다.

본문은 요즘IT와 세계 최대 빅데이터 기반의 번역/현지화(Localization) 기업 Sprok DTS에서 함께 만든 해외 번역 콘텐츠입니다. 필자인 Vagmi Mudumbai는 Tarka Labs의 CTO로 소프트웨어 개발 관련 20년 이상의 경력을 가지고 있습니다. 이번 글은 CTO는 조직에서 어떤 일을 해야 하는지, CTO의 역할에 대한 필자의 견해가 담긴 글입니다.

회원가입을 하면 원하는 문장을
저장할 수 있어요!

다음

회원가입을 하면
성장에 도움이 되는 콘텐츠를
스크랩할 수 있어요!

확인

개발

CTO는 어떤 일을 하나요?

년차,
어떤 스킬
,
어떤 직무
독자들이 봤을까요?
어떤 독자들이 봤는지 궁금하다면?
로그인

 

본문은 요즘IT와 세계 최대 빅데이터 기반의 번역/현지화(Localization) 기업 Sprok DTS에서 함께 만든 해외 번역 콘텐츠입니다. 필자인 Vagmi Mudumbai는 Tarka Labs의 CTO로 소프트웨어 개발 관련 20년 이상의 경력을 가지고 있습니다. 이번 글은 CTO는 조직에서 어떤 일을 해야 하는지, CTO의 역할에 대한 필자의 견해가 담긴 글입니다.

 
CTO 역할
<출처: Artwork by Gaurav Singh>

 

CTO의 역할에 대해서는 많은 공방과 토론이 있습니다. 예를 들면 CTO가 코드를 작성하는지, CTO의 업무 일정이 제작자로서의 일정인지 아니면 관리자로서의 일인지, 더불어 CTO가 인터뷰에 참여하는지와 같은 경우입니다.

 

설명하자면 CTO의 역할은 코드 자체를 작성하는 것이 아니라, 기술을 이용하여 비즈니스 요구 사항을 해결하는 데 있습니다. 어떤 기업에서는 기술 그 자체가 차별화 요소라면, 또 어떤 기업에서는 기술이 업무 촉진의 요소로 쓰입니다. 예를 들어, 하수라(Hasura)나 우버(Uber)와 같은 회사에서 기술은 차별화 요소이지만, 아틀라시안(Atlassian), 홈디포(HomeDepot) 또는 월마트(Walmart) 같은 곳에서는 업무 활성화를 돕는 것이 기술의 역할입니다. 알다시피 규모가 크거나 작은 많은 회사들이 이 두 범주 안에 속합니다.

 

따라서 기술 그 자체가 차별화 요소인 조직에서는 CTO가 제품 개발에 참여해야 한다고 생각합니다. 반면, 기술이 업무 촉진 요소로 활용되는 기업의 CTO는 기술의 역할을 극대화할 수 있는 방향으로 관계자들을 적극적으로 이끌어야 합니다. 그렇다 보니, 손을 뗀다는 관점이 어느 정도 맞을 수도 있습니다. 다만 코드를 작성해 본 경험이 없거나, 자신의 전문 분야에서 벗어나 있는 CTO는 간접 정보에 근거하여 판단을 내릴 수밖에 없습니다. 이런 경우 기술로 차별화된 조직에서는 치명적일 것입니다.

 

일반적으로 CTO가 수행해야 할 일은 다음과 같습니다.

  • 무엇을 구축하고 무엇을 구매할지 결정하기
  • 팀을 성장시키기
  • 학습 문화 정착시키기
  • 제품과 기술 간의 우선순위 조정하기
  • 소프트웨어 제공 프로세스 설정하기
  • 아키텍처 결정을 위한 중재자 역할하기

 

 

구축 또는 구매 의사 결정

리처드 파인만
리처드 파인만이 죽기 전 칠판에 남긴 마지막 문구. <출처: calisphere>

 

본인 스스로 이해할 수 없는 것을 창조해 낼 수는 없다. - 리처드 파인만(Richard Feynman)

 

CTO의 주요 업무 중 하나는 구축과 구매 사이에서 의사 결정을 내리는 것입니다.

 

이 기술을 사내에서 직접 구축하는 것이 맞을까요? 아니면 기존 호스팅 기술이나 오픈 소스 기술을 사용하는 것이 나을까요? 그것은 일정에 어떤 영향을 줄까요? 라이센스를 취득하고 운영하는데 드는 비용은 얼마일까요? 일래스틱 서치 검색 엔진 분석을 직접 실행하는 게 나을까요? 아니면 AWS의 호스팅 서비스를 사용해야 할까요? AWS 코그니토(Cognito)[1]를 사용하거나, 키클록(Keycloak)[2]을 배포해야하나요? 아니면 자체 인증을 실행하는 것이 맞나요?

 

위와 같은 질문들은 아키텍처 및 운영 계획에 큰 영향을 미치며, 회사의 규모와 성숙도에 따라 이에 대한 답변도 달라질 것입니다. 

 

 

팀 성장시키기 

그 일을 해낼 수 있는 가장 좋은 사람을 찾아낸 후, 그 일을 할 수 있게 물러나 있어라. - 타밀 시인, 티루발루바르(Tiruvalluvar)

 

CTO의 필수적인 역할 중 하나는 고용입니다. 여러분이 CTO라면 자신보다 똑똑한 사람을 고용해야 합니다. 하지만 원하는 기술을 가진 사람을 딱 맞춰 고용하지 못할 수도 있습니다. 이럴 땐 업무를 도와줄 업체를 찾아 일을 맡기고, 여러분은 고용에 집중하는 것이 나을 수도 있습니다. 또한 고용한 사람들이 올바르게 일할 수 있도록 권한을 부여해야 합니다.   

 

즉 여러분이라면 선택하지 않았을 결정을 다른 사람들이 해서, 그로 인해 실패하는 상황도 받아들일 수 있어야 합니다. 이것은 저도 가장 어렵게 깨달은 교훈입니다. 모든 일이 당신의 방식대로 이루어져야 하는 것은 아닙니다. 겸손에 대한 연습이라고 생각해 보세요.

 

 

학습 문화 정착시키기

당신이 지금까지 배운 것은 고작 모래 한 줌에 불과하지만, 아직 배우지 못한 것은 세상의 크기만큼이나 많습니다. — 타밀 시인, 아바이야르(Avvaiyar)

 

빠르게 변화하는 조직에서 성장을 위해 직원들의 능력을 최대로 이용하는 것은 흔한 일입니다. 그러나 직원들이 일상적인 학습을 통해 기술을 연마할 수 있다면, 지속 가능하고 행복한 업무 환경이 조성됩니다. 여기에 사용할 수 있는 몇 가지 도구는 점심시간 활용 학습 프로그램(Lunch & Learn), 전문 업무 교육, 학습 플랫폼 구독, 책, 컨퍼런스 등이 있습니다.

 

이러한 리소스들을 활용하면 학습을 지속할 뿐만 아니라, 성장의 여정을 즐기는 팀을 구축할 수 있습니다. 또한 팀을 오래 유지할 수 있는 마법 같은 효과를 가져올 것입니다. 

 

 

기술과 제품 간의 우선순위 균형 맞추기

기술, 제품 간의 우선순위 균형
기능을 제공할 것인가, 버그를 수정할 것인가?

 

신속한 업무방식과 뒤처리가 지저분한 업무방식의 문제는 신속하게 처리된 문제가 지나간 후에도 뒤처리해야 할 문제들이 오래 남아있다는 점이다. - 스티브 C 맥코넬(Steve C McConnell)

 

아주 뛰어난 기술 공동 창립자가 있는 조직이라도 사소한 세부 사항에만 집착해, 결국 비즈니스가 실패하는 경우가 많습니다. 또한 기술 부채 문제가 해결되지 않고 계속 오류가 발생하는 제품 탓에 개발자들이 끝없는 고난에 빠진 회사들도 있습니다. 사실 제가 만난 대부분의 조직들이 그 중간쯤에 있었습니다.

 

CTO는 비즈니스 우선순위를 최우선으로 유지하는 가운데, 기술 부채를 제때 처리할 수 있어야 합니다. 금융 부채의 경우 이자를 고려해도 원금의 자본을 유지하는 편이 더 가치 있다면, 이자를 지급할 수 있습니다. 마찬가지로 기술 부채를 통해 비즈니스가 시장의 요구사항을 충족하고 수익과 사용자를 늘릴 수 있다면, 시스템 유연성이 저하되기 전에 기술 부채를 상환할 수 있습니다. 기술 부채 덕분에 신속하게 움직이고, 손해를 최소화할 수 있다면 기술 부채가 나쁜 것만은 아닙니다.

 

 

소프트웨어 제공 프로세스 설정하기

그저 행동만 애자일하게 일할 것인가, 아니면 애자일 마인드로 확실하게 일할 것인가? – 필자, 바그미 무둠바이(Vagmi Mudumbai)

 

CTO는 프로젝트 관리 관행, CI/CD 파이프라인, QA 및 DevOps/사이트 안정성 엔지니어링(SRE)을 감독합니다. 이러한 제공 프로세스 및 자동화를 설정하면 비즈니스 요구사항을 운영 중인 소프트웨어로 신속하게 전환시킬 수 있습니다. 구체적인 세부 사항은 회사의 비즈니스, 관련 팀의 지식 및 운영 환경에 따라 다릅니다.

 

일부 기업의 경우 자체 관리형 칸반 스타일(Kanban-style) 보드[3]를 사용하여, 헤로쿠(Heroku)[4] 플랫폼에서 무언가를 호스팅하는 것으로 충분합니다. 그러나 다른 경우, 여러 프로젝트와 프로그램에 걸쳐 조정해야 하는 보다 복잡한 설정이 필요할 수 있습니다. 

 

 

아키텍처 및 시스템 설계

소프트웨어를 설계하는 방법에는 두 가지가 있습니다. 한 가지 방법은 너무 단순해서 결함이 없도록 만드는 것이고, 다른 방법은 너무 복잡해서 결함이 쉽게 드러나지 않도록 만드는 것인데, 첫 번째 방법이 훨씬 더 어렵다고 할 수 있습니다. — 토니 호어(C.A.R.Hoare)

 

위에서 언급한 사항들이 CTO 업무에서 가장 많이 회자되면서도 간과되는 내용입니다. 조직이 성장함에 따라, 아키텍처는 비즈니스 요구사항을 반영해야 합니다. 소수의 사용자를 둔 스타트업에서는 효과가 있겠지만, 솔루션이 확장되고 있다면 더는 적절하지 않습니다.

 

예를 들어, 보험 텔레매틱스[5] 분야의 한 고객사가 여행 관련 정보를 PostgreSQL[6] 테이블에 작성하기 시작했는데, 어느 시점까지 잘 작동했습니다. 그런데 조직이 성공하자 데이터를 정리할 다른 방식이 필요했습니다. 우리는 여전히 PostgreSQL을 사용하면서도 데이터를 여러 공유 구조로 이동시켰습니다. 또한 메시지 대기열을 설정하여 이를 집계된 테이블로 비동기식으로 처리했습니다. 이 데이터를 사용하기 위해 리포팅 대시보드 쿼리를 재설계했습니다. 이러한 개별 작업들은 모두 논리적으로 실행되었지만, 제품의 첫 번째 버전에서 이런 복잡성을 취하는 것은 그다지 의미가 없었을 것입니다.

 

이렇듯 CTO는 필요한 복잡성이 무엇인지 구별하고, 이러한 복잡성의 해결 방법을 파악하는 데 도움을 줄 수 있습니다.


[1] AWS Cognito는 웹 및 모바일 앱에 대한 인증과 권한 부여 그리고 사용자 관리를 제공하고 기존의 아이디, 패스워드 방식 이외에도 Facebook, Amazon, Google 그리고 Apple과 같은 여러 회사의 소셜 로그인 기능을 제공하는 서비스이다.

[2] 키클록(Keycloak)은 현대의 애플리케이션과 서비스에 초점을 둔 아이덴티티 및 접근 관리(Identity and Access Management)에 통합 인증(SSO)을 허용하는 오픈 소스 소프트웨어 제품이다.

[3] 칸반 보드는 작업을 시각화하고, 진행 중인 작업을 제한하며 효율성이나 흐름을 최대화하는 프로젝트 관리 도구이다.

[4] 헤로쿠는 여러 프로그래밍 언어를 지원하는 클라우드 컴퓨팅 플랫폼이다.

[5] 텔레매틱스는 무선통신과 GPS 기술이 결합되어 자동차에서 위치 정보, 안전 운전, 오락, 금융 서비스, 예약 및 상품 구매 등의 다양한 이동통신 서비스 제공을 의미한다.

[6] PostgreSQL은 확장 가능성 및 표준 준수를 강조하는 객체-관계형 데이터베이스 관리 시스템의 하나이다.

 

<원문>

What does a CTO do?

 

위 번역글의 원 저작권은 Vagmi Mudumbai에게 있으며, 요즘IT는 해당 글로 수익을 창출하지 않습니다.

좋아요

댓글

공유

공유

댓글 0
작가
414
명 알림 받는 중

작가 홈

작가
414
명 알림 받는 중
요즘 해외 개발자들은 어떻게 일할까요? 기획자나 디자이너는요? 그래서 준비했습니다. 읽어볼만한 해외 소식들을 번역해 전합니다. We are the world.

좋아요

댓글

스크랩

공유

공유

지금 회원가입하고,
요즘IT가 PICK한 뉴스레터를 받아보세요!

회원가입하기
요즘IT의 멤버가 되어주세요! 요즘IT의 멤버가 되어주세요!
요즘IT의 멤버가 되어주세요!
모든 콘텐츠를 편하게 보고 스크랩해요.
모든 콘텐츠를 편하게 보고 스크랩 하기
매주 PICK한 콘텐츠를 뉴스레터로 받아요.
매주 PICK한 콘텐츠를 뉴스레터로 받기
로그인하고 무료로 사용하기