개발 정보

[개발자의 자질] 존 카맥이 말하는 대체 불가능한 개발자가 되는 법

Razelo 2023. 4. 29. 13:46

가장 존경하는 개발자를 물어본다면 존 카맥이라고 대답한다. 존 카맥의 영상을 자주 찾아보는 편이다. 
 
너무 존경하는 개발자이기도 하고 세계적으로 인지도도 많아서 이 분의 말씀을 담은 자료들이 올라오는데 그때마다 꼭 챙겨본다. 
 
이번에 꽤 좋은 자료가 올라왔는데 재밌게 볼 수 있는 영상이다. 
 
해당 내용에 대한 간략한 요약과 개인적으로 느꼈던 점을 이야기해보고자 한다. 


 

https://en.wikipedia.org/wiki/File:John_Carmack_GDC_2010.jpg

존 카맥은 어떤 사람일까? 
 
본명 John D. Carmack은 이드 소프트웨어의 공동 창업자이자 기술 감독, 프로그래머이다. 
 
1970년 8월 20일 미국 캔자스 출생이다. 
 
1인칭 슈팅 게임 장르에서 전설적인 게임을 개발했다. 
 
퀘이크콘 등 활발한 연설이나 인터뷰 활동을 펼쳤고 PC 게임 업계에서 스타 개발자이자 3D 그래픽 프로그래밍의 기술 Guru로 여겨졌다. 
 
한 마디로 전설적인 개발자이다. 
 
이드 소프트웨어 이후 오큘러스 VR에 참여하다가 메타가 오큘러스를 인수하면서 계속 CTO로 근무했으나 2022년 12월에 메타를 떠났다. 
 
개발 철학이 꽤나 눈여겨볼만 하다.
 
단순함과 최소주의를 추구한다. 
 
둠, 퀘이크 1,2,3, 둠 3엔진의 공개 소스 코드를 코면 단순한 엔진임에도 전체적으로 알아보기 힘들며, 주석에 상세한 설명 조차도 쉽게 이해하기 힘든 부분이 있다고 한다. 그 이유는 표준화된 틀을 만들기 보다는 본인의 편의대로 코딩하며 단순함과 최소한의 편의에 의해서 개발한 게임에 최적화된 코드로 구성되어 있기 때문이라고 한다. 
 
그래선지 언리얼 엔진과 퀘이크 엔진의 비교에 대한 글을 찾아볼 수 있다. 
 
이제 인터뷰 내용에 대한 간략한 내용을 소개하겠다. 


Lex Fridman: 좋은 개발자가 되기 위해 필요한 자질이 무엇일까요? 
 
프로그래밍의 핵심은 유저들에게 가치를 제공하는 것이다. 
 
자신이 기술자라고 생각해서는 안된다. 
 
구체적인 것에 집착하지마라. 
 
사람들의 문제를 해결하거나 재미를 제공해야 한다. 
 
사람들에게 가치를 주자. 
 
세상을 어떻게 더 좋게 만들 수 있을까라는 고민을 해야한다. 
 
더 좋은 제품을 만들어 세상을 더 좋은 곳으로 만들어라. 
 
당연히 돈을 많이 벌 수 있게 된다면 그 또한 좋은 점일 거다.  
 
기술에 대해 자부심을 가지는 것은 좋으나 제품이 가치를 줄 수 있는 지에 대한 고민을 우선해라. 
 
유저가 제품에 실망해선 안된다. 
 
유저를 웃게 만들고 만족감을 느끼게 만들어라. 
 
개발자는 유저를 위해 일해야 한다. 그들이 가치를 느낄 수 있도록 말이다. 
 
최소한의 노력으로 가장 많은 가치를 제공하는 디자인을 만들어야한다. 이것이 가능하다면 그것이 바로 기술적 역량이다. 
 
노력, 비용에 대한 가치를 최대한 높여야 한다. 
 
개발자들은 더 많은 자원과 인력이 있다면 제품이 나아질 수 있다고 생각한다. 
 
물론 진짜 자원이 부족한 개발자도 있긴 하다. 
 
하지만 제품의 핵심 디자인이 경쟁력있지 못하다면 선택을 해야 한다. 
 
그 순간 가치있는 판단이 사라진다. (순간의 선택 속에서 가치에 대한 심도 있는 논의 없이 판단하게 된다면 올바른 방향이 아니라는 뜻이라고 이해했다.)
 
단순한 이유를 가지고 판단하지 말고 가치에 대한 날카로운 판단을 고수해야 한다. 
 
시간, 자원, 기회를 중요하게 여겨야 한다. 
 
정량적 가치에 대한 데이터가 있다면 무시하지 말라. 
 
가능하다면 충분한 데이터를 이용해서 제품을 만들어야 한다. 
 
무작정 재밌다고 생각되는 제품을 만들어내지 않는다. (이건 존 카맥이 몸담고 있는 메타의 이야기다.)
 
실질적으로 존재하는 유저를 타켓으로 잡고 이들에게 맞는 제품을 만들어야 한다.
 
가상의 유저를 만들어내선 안된다. (Imagenary라는 표현을 쓰셨는데 듣는 사람에 따라 살짝 헷갈릴 수 있는 표현이다. 개인적인 해석을 해보자면 해당 비즈니스 영역에 대한 유저가 있다고 멋대로 가정하고 시작하지 말라는 뜻으로 이해할 수 있을 것 같다. 정작 데이터를 살펴보지도 않았으면서도 존재하지 않는 비즈니스 영역에 대해 도전하면 혹시 누군가는 써줄 것이라는 상상을 해서는 안된다는 뜻으로 보인다.)
 
시장을 쪼개고 관찰해서 실제 유저의 경험이나 지표를 활용해라.
 
가상의 유저와 실제 유저는 명확히 다르다. 
 
강력한 리더의 독단은 구성원을 지치게 할 수도 있다. 강력한 리더의 존재라는 점에서는 애플을 예로 들 수 있다.  
 
제품을 전체적으로 조망할 수 있는 리더가 있다면 지표 대신 직관을 통해서 제품을 만들 수 도 있다. 
 
이런 전문가는 부트캠프를 나온 개발자보다는 훨씬 많은 혜안을 가지고 있다. (도메인에 대한 프로페셔널한 능력과 직관에 대한 이야기로 이해할 수 있겠다.)
 
스티브 잡스가 존 카맥에게 이 기술은 옳지 않다고 말한 적도 있다. 말단의 기술을 몰랐기 때문이다. 
 
하지만 말단의 기술에 대해서도 알고 있으며 동시에 제품을 전체적으로 조망할 수 있는 직관을 가진 리더가 있다면 이 방법을 통해서 가치를 창출할 수도 있다. (그러한 사람이 존재한다면 독단으로도 훌륭한 제품을 만들어낼 수 있다는 뜻으로 해석된다.)
 
독립된 팀이 자유롭게 아이디어를 낼 수도 있다. (메타의 경우)
 
그런 팀들은 그저 리더의 독단이 싫어서일 수도 있다. 
 
VR이 특히 그런 경우이다. 
 
메타의 경우 리더의 독재를 허락하지 않는다. 
 
메타는 자유로움을 표방한다. 


영상을 보고 많은 생각이 들었다.
 
존 카맥이 이야기하고자 하는 건 무엇일까? 
 
실질적인 가치를 중요시하라는 뜻으로 이해했다. 어쩌면 전설적인 엔지니어들은 공통된 이야기를 하고 있다는 생각이 들곤 한다. 
 
실질적인 가치와 제품을 사용하는 유저에 대한 고민이 바로 그것이다. 
 
일론 머스크도 한때 그런 이야기를 했다. 쓸만한 걸 만들라는 이야기 말이다. 
 
기술에 집착하지 말고 디테일에 매달리지 말라는 말을 생각하자면 실현하기 어려운 이야기라는 생각이 들곤 한다. 
 
또 한번 가장 존경하는 교수님이 해주셨던 이야기가 떠오른다. 교수님이 해주셨던 말씀과 세계적으로 유명한 엔지니어들의 말씀을 떠올리면 양쪽 모두 실현하기 어렵지만 와중에 그것이야말로 정답이라는 생각이 들곤 한다. 
 
언제나 전설적인 사람들과 함께 하고 싶다. 와중에 어떤 형태가 되었든 누군가에게 의미를 줄 수 있는 가치있는 무언가를 만들어보고 싶다.
 
가치를 우선적으로 고민하고 유저를 생각하는 개발자가 되고 싶다. 
 
그렇게 살다보면 언젠가 존 카맥을 직접 만날 수 있는 날이 오지 않을까.


아래 영상에서 해당 영상을 볼 수 있다. 
 
렉스의 팟캐스트는 몇 시간에 달하는데 존 카맥과 인터뷰한 풀영상을 찾아보는 걸 추천한다. 
 
렉스의 모든 영상은 굉장히 유익하다. (물론 꼭 소프트웨어에 대한 이야기만 있는 건 아니다.)
 
덧붙이자면 최근 인터뷰한 샘 알트먼의 이야기를 찾아보는 걸 추천한다.
 
현대 최고의 첨단 기술을 이끄는 선구자가 어떤 생각을 갖고 있는 지 알 수 있는 영상이다.
 
https://www.youtube.com/watch?v=CMv8LzuuTKk 


아래 링크에서 찾아보게 되었습니다. 
 
좋은 자료 제공에 감사드립니다. 
https://www.youtube.com/watch?v=CMv8LzuuTKk 
https://yozm.wishket.com/magazine/detail/1892/
https://namu.wiki/w/%EC%A1%B4%20%EC%B9%B4%EB%A7%A5
https://mang2go.tistory.com/3
https://en.wikipedia.org/wiki/File:John_Carmack_GDC_2010.jpg
 

반응형