여러분의 골든 리트리버도 이해할 수 있게 알려주는 아주 쉬운 테크 기본기
매일 아침 눈을 떠서 테크 뉴스레터 제목을 보면, 거의 항상 두 가지 중 하나입니다. AI 혹은 해고. AI에 대해서는 삼성이나 네이버 같은 대기업부터 스타트업까지 온갖 뉴스를 통해 익숙하시겠지만, 미국의 테크 고용 시장 상황은 실제로 얼마나 빡센지 궁금하시죠?
제가 글을 쓰고 있는 2024년 5월 기준, 여기 미국에서 나고 자라서 영어도 문제없고 비자 걱정도 없는 사람들조차 테크에서 직장을 구하는걸 어려워하고 있습니다. TrueUp의 Layoff Tracker에 따르면, 2024년 5월 20일 기준으로 거의 매일 917명이 해고당하고 있습니다. 이 사이트의 다른 데이터인 Total Number of Open Tech Jobs를 보면, 2년 전 테크 호황기와 비교해 절반 이상(55.8%)이 줄어들었어요. 직무와 경험별로 차이는 있겠지만, Entry Level(03년)은 거의 열려있는 포지션이 없거나 급여가 시간당 $25 ~ $30 수준이고, Mid Senior(3~7년)은 기존에 $140K 이상이던 TC(Total Compensation)가 지금은 $100K 언저리로 낮아졌습니다. 현재 물가와 금리를 생각해보면... 미국 테크 업계에서 '쉽게' 일자리를 구해 '6 Figures'로 '풍족하게' 산다는 건 과거 이야기가 되고 있어요.
특히 비자를 스폰받아야 하는 우리 같은 외국인들에게는 더 힘듭니다. 영어와 문화 차이는 둘째치고, 회사 입장에서는 법률상 비용도 들고, 귀찮고, 복잡하니까요. 그리고 이처럼 고용 상황이 안 좋을 때는 미국 근로자의 근로 조건에 부정적인 영향을 미치지 않는다는 것을 증명하기도 매우 까다롭습니다. H1B 비자를 받으려면 이를 증명하는 Labor Condition Application(LCA)를 제출해야 하는데, 이 과정이 상당히 복잡하고 어려운 일이죠. 최근에는 이 비자를 받기 위해 어떤 지원자들이 서류를 조작해 중복 지원하는 사기 사건도 있었을 정도입니다.
그러니까 우리와 같은 외국인들은 미국인들보다 더 가격 경쟁력이 있으면서도 더 우수하게 일을 해내야 일자리를 구할 수 있습니다. 힘들게 얻은 자리, 안 잘리려면 죽어라 일해야하고요. 물론 미국에서는 개인 퍼포먼스가 좋아도 회사 사정상 비즈니스를 정리하면서 팀 자체가 날아가서 해고되는 경우도 있습니다. 우리가 통제할 수 없는 것에 신경쓰기보다는 통제할 수 있는 것에 집중해야해요. 미국 생활, 이거 말고도 멘탈 터질 일 많거든요.
그럼 우리가 통제할 수 있는 건 뭘까요? 바로 실력입니다. 테크가 그나마 미국에서 외국인들에게 열려있는 업계고, 많은 분들이 테크 PM을 목표로 미국에 오시니 미국 테크 PM이 되려면 어떤 실력을 쌓아야 하는지 한번 알아보죠.
PM이 하는 일은 쉽게 말해 "고객이 겪는 제일 골치 아픈 문제를 찾아서 해결하기 위해 팀 리소스를 총동원해 비즈니스 영향력을 주는 것"이라 할 수 있습니다. 하지만 이 멋진 역할을 수행하려면 커뮤니케이션, 실행 능력, 데이터 분석, 협업 능력, 프로덕트 센스, 기술 이해, 전략적 사고, 비즈니스 감각 등등... 수많은 스킬들이 필요합니다. 솔직히 말해서, 모든 PM이 이 모든 영역에서 뛰어나기란 불가능에 가깝죠. 그래서 Non-technical PM과 TPM(Technical PM)으로 나눠 역할을 분담해왔던 겁니다.
Non-technical PM은 '무엇(What)'과 '왜(Why)'에 집중, 즉 제품의 비전, 전략, 시장 적합성을 책임지는 '큰 그림' 담당이었죠. 커뮤니케이션, 데이터 분석, 비즈니스 감각으로 무장한, 말 그대로 '아이디어 뱅크'였습니다. 반면 TPM은 '어떻게(How)'와 '언제(When)'에 초점, 기술 프로젝트의 효율적인 실행에 집중하는 '실행 전문가'였습니다. 뛰어난 실행 능력과 높은 기술 이해도로 '개발자들의 통역가' 역할을 해냈죠. 물론, 두 역할 모두 기본적인 PM 스킬들은 필수입니다. 마치 게임 캐릭터 생성 시 능력치 스탯에 약간의 차이가 있듯, Non-technical PM과 TPM은 각자 특화된 능력치에 좀 더 투자한 것뿐이죠.
하지만 ChatGPT와 같은 Generative AI의 등장으로 판도가 바뀌었습니다. '무엇'과 '왜'는 AI의 도움으로 비교적 쉽게 해결할 수 있게 되었죠. 소위 '말빨'과 '글빨'이 약간 부족해도 AI가 알아서 멋지게 다듬어주고, 데이터 분석도 AI에게 맡기면 됩니다. 심지어 비즈니스 감각도 AI가 요약해준 기사만 꾸준히 읽으면 어느 정도 따라잡을 수 있죠. 즉, Non-Technical PM에게 기대하던 역할 중 상당 부분을 AI가 직접적으로 도울 수 있게 된 겁니다.
그렇다면 이제 Non-technical PM도 '어떻게'와 '언제'를 알아야 할까요? 당연합니다. 고객과 회사에 제대로 된 비즈니스 영향력을 적절한 타이밍에 딱 맞춰 제공하려면 기술 이해도는 필수입니다. 실행력을 높이기 위해 AI를 잘 활용하려면 똑똑한 질문을 던져야 하고, 똑똑한 질문을 하려면 기본적인 기술 개념과 원리를 알아야 하니까요.
구체적으로 기술을 이해하면 무엇이 어떻게 좋은지, 제가 왜 이 글을 쓰는지 궁금하시죠? 다음과 같이 정리해봤습니다.
1. 개발자와의 소통: 기술 이해도가 높으면 개발자와의 대화가 훨씬 수월해집니다. 개발 과정의 방해 요소를 미리 예측하고, 현실적인 타임라인과 리소스 분배까지 고려할 수 있죠. 기능 관련 trade-off 상황에서도 개발자를 설득하기 쉬워집니다. 말이 통해야 싸움도 안나니까요.
2. 기술 트렌드 파악: 기술 트렌드를 이해하면 특정 기술이 가져올 기회와 위험을 미리 파악할 수 있습니다. 경쟁사의 기술 동향을 분석하고, 새로운 기술을 우리 회사에 적용할 방법을 모색할 수도 있죠.
3. 기술 부채 관리: 기술 부채는 때로는 감수해야 할 필요도 있지만, 예상 가능한 오류를 미리 고려하면 의도치 않게 발생하는 기술 부채를 줄일 수 있습니다. 미래의 나에게 멍청비용으로 발생한 빚을 떠넘기지 말자구요.
제 목표는 여러분이 테크 기본기를 익혀 엔지니어와 원활하게 소통하고 그들의 전문성을 존중할 수 있도록, '엔지니어가 좋아하는 PM'이 되도록 돕는 것입니다. 저는 컴공 전공도 아니고 테크 분야에서 커리어를 시작한 것도 아닙니다. 그래도 테크 분야로 커리어를 피봇하고 싶어서 틈틈이 혼자 공부하며 지식을 쌓아왔어요. 그래서 개발 백그라운드 없이도 개발자들이 좋아하는 비개발자로 인정받을 수 있었습니다. 이렇게 얻은 지식들을 최대한 쉽게, 여러분이 키우시는 골든 리트리버도 이해할 수 있을 정도로 나누고자 합니다. 영화 <마진콜(Margin Call)>의 명대사처럼, "어린아이나 골든 리트리버에게 설명하듯 말해주세요. 제가 여기까지 온 건 머리가 좋아서가 아니니까요." 라는 마음으로 최선을 다하겠습니다.
제 목표는 '엔지니어가 좋아하는 PM'이 되도록 돕는 것이지, '엔지니어인 PM'이 되도록 돕는 것이 아닙니다. 그러니 제가 알려드리는 내용은 당연히 깊이가 얕습니다. 더 깊이 있는 지식을 원하신다면, 함께 일하시는 개발자에게 밥이나 커피를 사주시며 직접 물어보세요. 그게 가장 빠르고 정확한 방법입니다. 개발자에게 점수도 딸 수 있어요. 아니면 전문 자료를 찾아보거나 AI에게 물어보는 것도 좋은 방법입니다. 기본 지식을 갖춘 채로 답변을 읽으면 이제는 이해가 쉬워질 겁니다.
자, 그럼 PM이 가져야 할 테크 기본기에는 어떤 것들이 있는지 먼저 간단하게 살펴보도록 하겠습니다.
PM이 알아야 할 테크 기본기를 아래에 리스트로 만들어두었습니다. 앞으로 이 리스트에 있는 각 항목별로 글을 쓸 예정입니다. 테크를 직접 활용하는 건 똑똑하신 개발자님들의 몫이지만, 최소한 뭐가 뭔지는 알아야 눈치라도 덜 보고 슬쩍 숟가락도 얹을 수 있을거에요.
• 시스템 아키텍처: 프론트앤드(사용자 눈에 보이는거), 백앤드(사용자 눈에 안보이는거).
• 소프트웨어 개발 생명 주기: 개발 프로세스. 폭포수, 애자일 등 다양한 방법론이 있지만, 결국엔 '기획 → 개발 → 테스트 → 배포'의 반복입니다.
• 테크 스택: 개발 언어, 프레임워크, 라이브러리. 개발자들이 싸우는 주제 1순위이에요.
• 데이터베이스: 데이터 저장소. 크게 SQL, NoSQL 두 종류로 나눕니다.
• 데이터 모델: 데이터 구조 설계도. JSON, XML 형식으로 데이터 주고 받는데, 데이터 활용을 어떻게 할지 큰 그림을 그리는데 집중하세요.
• 네트워크 아키텍처: 여러분의 기기와 시스템을 연결하는 방식. 서버-클라이언트, P2P, IoT 등이 있어요.
• 클라우드 인프라: 클라우드 컴퓨팅 기본, 주요 제공 업체, 확장성, 탄력성, 서버리스 개념 등을 다룹니다.
• 보안: 인증, 권한, 암호화. 해킹 당하면 큰일 나니까 중요해요.
• API: 쉽게 데이터 주고받을 수 있도록 도와주는 규칙.
• SDK (Software Development Kit): API 규칙에 따라 개발을 쉽게 할 수 있도록 도와주는 도구 세트.
• 디버깅: 오류 잡는 과정. 경험상 개발자들이 귀찮아하는 작업 1순위에요.
• 모바일 개발: 애플 iOS, 삼성 Android
• 깃 (Git): 개발 중에 코드가 어떻게 변경되어 왔는지를 관리하는 시스템. 타임머신 같은 겁니다.
• 테스트 종류 및 도구: 소프트웨어가 잘 돌아가는지 확인하는 방법에 대해 다룹니다. 경험상 개발자들이 귀찮아하는 작업 2순위입니다.
• 지속적인 통합/배포 (CI/CD): 자동화된 테스트 및 배포. 개발 효율을 높여주는 좋은 친구죠.
• 모니터링 & 로깅: 시스템 상태 확인. 개발자들이 밤새 쳐다보는 그래프와 로그입니다.
• 패치 & 업데이트: 버그 수정 및 기능 추가. 개발자들이 맨날 야근하는 이유입니다.
• 확장성: 시스템 성능 향상. 사용자가 갑자기 몰려도 괜찮도록 미리 준비하는 것입니다.
• 리팩토링: 코드를 더 낫게 고치는겁니다. 개발팀이 몰래 하는 작업이죠.
• UX 디자인: 사용자가 편하게 쓸 수 있도록 하는 디자인. 디자이너님들과도 함께 잘 일할 수 있도록 기본 개념들을 짚어볼게요.
• 데이터 개인 정보 보호법 (GDPR, CCPA): 개인 정보 보호 규제. 안따르시면 특정 국가에서 벌금 폭탄 맞고 프로덕트 금지됩니다.
• 생성형 AI: LLMs, 파인튜닝, 라그 (RAG), AI가 자주 저지르는 실수 등을 다룹니다.
생각나는 대로 적은 거라 리스트는 변경될 수 있는데, 변경되면 글에 표기해두겠습니다. 회사별로 쓰이는 정도에 차이가 많이 나는 특수한 개념들은 모두 제외했습니다. 일하실 때 조금 더 편하게 찾아서 쓰실 수 있도록 기본기들을 시기별로 최대한 분류해보려 했으나, 중복이 생길 수밖에 없어 중요한 개념들은 최대한 먼저 다루도록 하겠습니다. 또한 용어 특성상 영어 단어를 한국어 발음대로 쓰는 경우가 많으니, 각 항목별로 글을 쓸 때에는 한글 발음과 영어 단어 표기를 함께 써놓을게요.
써놓고 보니 많아보이네요. 리스트 보시면서 PTSD가 오시는 분도 있을테고, 생각보다 의외로 간단하다고 생각하는 분들도 있을겁니다. 요즘 AI가 핫해서 AI 관련해서 먼저 쓸까도 생각중이긴 합니다만, 먼저 알고 싶은 개념이 있으시면 알려주세요. 오늘 서론은 여기서 마칩니다. 끝!
영어로도 발행할 예정이니 영어로 보고 싶으신 분은 제 미디엄을 봐주세요. 이번 글 진짜로 마치겠습니다. 다음 글에서 만나요!