00:00:00오늘 아침 Vercel의 CEO인 Guillermo Rauch가 올린 흥미로운 게시물을 보게 되었는데요,
00:00:06그 내용과 더불어 코드의 역할에 대한 시사점과 제 생각,
00:00:11그리고 현재와 미래에 실제 코드가 얼마나 중요한지에 대해 이야기해 보려 합니다.
00:00:16Guillermo는 게시물에서 "코드는 결과물이며, 자연은 치유되고 있다"라고 말합니다.
00:00:21"너무 오랫동안 우리는 코드를 입력값으로 취급해 왔습니다."
00:00:23"코드를 미화하고, 직접 형식을 맞추고, 예쁘게 꾸미고, 그것에 집착했죠."
00:00:28"코드를 작성하기 위해 정교한 GUI와 IDE를 만들었습니다."
00:00:31"구문 강조, 트리 시터, 미니맵, 키보드 트리거, 인라인 자동 완성,"
00:00:37"고스트 텍스트 등을 사용했습니다."
00:00:38"어떤 컬러 스킴을 쓰시나요?"
00:00:40"우리는 API와 함수 본문의 이상적인 길이를 두고 밤새 토론했습니다."
00:00:44"이 API가 다른 사람이 읽기에 충분히 멋져 보일까? 하고 말이죠."
00:00:48"이제 우리는 요구 사항, 명세, 피드백, 디자인 영감 등 진정한 입력값에 집중하고 있습니다."
00:00:54"결정적으로 프로덕션 입력값에 주목하고 있죠."
00:00:58"우리의 코딩 에이전트는 사용자가 애플리케이션을 어떻게 경험하는지, 어떤 에러가 발생하는지 이해하고"
00:01:04"그것을 코드로 변환해야 합니다."
00:01:07"우리는 필연적으로 코드와 코더를 덜 미화하게 될 것입니다."
00:01:12"제가 함께 일했던 최고의 엔지니어들은 항상 코드를 목적을 위한 수단이자"
00:01:17"곧 다시 변환될 결과물로 보았습니다."
00:01:20와우, 이 게시물에는 정말 많은 내용이 담겨 있네요!
00:01:23이에 대해 저도 드릴 말씀이 많습니다.
00:01:27분명히, 그리고 우리 모두가 목격하고 있듯이,
00:01:35프로그래밍의 역할과 세계 전체가 급격하게 변하고 있습니다.
00:01:38많은 일들이 일어나고 있고, 특히 저와 업계의 많은 분이 느끼시겠지만
00:01:46작년 12월 Opus 4.5와 Cloud Code, 그리고 이제 Codex까지 등장하며 다시 가속도가 붙었습니다.
00:01:53거의 매주 새로운 모델과 도구들이 쏟아져 나오고 있죠.
00:01:58상황이 정말 빠르게 변하고 있습니다.
00:02:01개인적으로는 제가 만드는 콘텐츠나 강의,
00:02:06그리고 모든 것의 기초가 되는 제 작업 방식에 있어서도 그 속도를 따라가려 노력 중입니다.
00:02:10그래서 Cloud Code와 Codex에 대한 새 강의를 출시했고,
00:02:16참고로 지금 모든 강의를 아주 저렴하게 이용할 수 있는
00:02:21연간 멤버십 대규모 프로모션을 진행하고 있습니다.
00:02:24어쨌든 이 모든 변화는 우리 모두에게 영향을 미치고 있습니다.
00:02:27그게 제가 말씀드리고 싶은 핵심입니다.
00:02:28우리가 하는 일, 제가 만드는 콘텐츠, 그리고 소프트웨어를 구축하는 방식이 변하고 있죠.
00:02:35하지만 우리가 정말로 코드에서 멀어지고 있는지는 잘 모르겠습니다.
00:02:42저에게 이 글은 마치 코드가 더 이상 중요하지 않다는 것처럼 읽히는데, 저는 그 점에 상당히 반대합니다.
00:02:50과거에 우리가 API 디자인이나 변수 및 함수의 명명 규칙,
00:02:58그리고 코드의 심미성에 집착했다는 점은 인정하며, 그것은 분명 사실입니다.
00:03:07하지만 저는 이러한 부분들이 오늘날에도 여전히 중요하며,
00:03:15미래에도 그럴 가능성이 높다고 주장하고 싶습니다.
00:03:17인간의 역할이 코드를 직접 쓰는 것에서 검토하는 것으로 옮겨간다 하더라도,
00:03:24일부가 중복되거나 불필요하게 복잡하고 함수 이름이나 모양이 이상한
00:03:33지저분한 10,000줄의 코드베이스와 깨끗한 코드베이스 중 무엇을 검토하는 것이 더 쉬울까요?
00:03:41어떤 것이 검토하기 더 수월하겠습니까?
00:03:44미래에 검토 과정의 상당 부분이 기계와 AI로 넘어갈 수도 있겠지만,
00:03:50설령 그렇다 하더라도 코드의 품질이
00:03:59전혀 중요하지 않게 될 것이라고는 생각하지 않습니다.
00:04:02단순히 생성되고 검토되는 모든 토큰에 비용을 지불해야 한다는 점만 봐도 그렇습니다.
00:04:09코드를 더 깔끔하게 짤 수 있다면 코드를 생성할 때나
00:04:17검토할 때 모두 토큰 소비가 줄어들 것입니다.
00:04:19토큰 비용은 미래에 매우 중요한 요소가 될 것으로 보입니다.
00:04:25지금은 Anthropic이나 OpenAI 같은 기업들이 제공하는 보조금 혜택을 받고 있으니까요.
00:04:30우리는 실제 토큰 비용을 지불하고 있는 것이 아닙니다. 여러분이나 제가 내는
00:04:3720달러나 200달러 정도의 구독료는 말이죠.
00:04:39이런 구독 모델로 해당 업체들이 반드시 수익을 내고 있는 것은 아닙니다.
00:04:44실제 토큰 비용은 그보다 더 높습니다.
00:04:47나중에 이 기업들이 돈을 벌어야 하는 시점이 오면
00:04:54우리가 지불하는 비용은 올라갈 가능성이 큽니다.
00:04:57물론 기술적 진보 덕분에 전체적인 토큰 비용이 낮아진 후에야
00:05:02수익화가 시작될 수도 있겠지만, 아직 확실한 것은 아무것도 없습니다.
00:05:07미래의 시장이 어떤 모습일지 우리는 알 수 없습니다.
00:05:10이론적으로 비용이 낮아진다 하더라도, 기업들이 특정 가격을
00:05:16실제 원가보다 상당히 높게 책정할 수 있다면,
00:05:22그들은 기꺼이 그 마진을 챙길 것입니다.
00:05:23뭐, 이건 완전히 다른 주제이긴 합니다만.
00:05:25어쨌든 토큰과 토큰 효율성은 현재는 물론 미래에도 중요할 것입니다.
00:05:31그리고 이는 코드 품질과 직결됩니다. 일반적으로 좋은 코드, 즉 클린 코드는
00:05:39끝없이 비대해지거나 무한히 복잡해지도록 방치되지 않기 때문입니다.
00:05:47물론 과거의 프로그래머들도 가끔은
00:05:55특정 지점에서 코드를 너무 많이 작성하려는 경향이 있었다는 주장도 있습니다.
00:06:02깔끔한 API를 만들거나, 구현 당시에는
00:06:08정말 필요하지 않은 불필요한 추상화를 도입하려고 말이죠.
00:06:09사용자가 한 명도 없는 사이드 프로젝트를 하면서,
00:06:15나중에 데이터베이스를 쉽게 바꿀 수 있도록 데이터 액세스 계층을 구현하기로 마음먹고
00:06:22결국 한 번도 바꿀 일이 없었던 경험, 다들 있으실 겁니다.
00:06:24그래서 필요 이상으로 훨씬 복잡한
00:06:29어댑터를 작성하곤 했죠.
00:06:30누구나 그런 경험이 있습니다.
00:06:31그게 좋았을까요?
00:06:32아니요, 그렇지 않았습니다. 여러분이 짠 코드든 AI가 짠 코드든,
00:06:37오늘날이나 미래에도 그런 방식은 좋지 않을 것입니다.
00:06:39현재로서는—물론 바뀔 수 있지만—제 경험상 이러한 AI 모델과
00:06:45Codex, Cloud Code 같은 도구들은 일을 과도하게 복잡하게 만들고,
00:06:54별로 타당하지 않은 불필요하게 복잡한 변경 사항을 제안하는 경향이 있습니다.
00:07:02특히 현재의 Codex는 코드를 삭제하는 일은 거의 없이,
00:07:10점점 더 많은 코드를 추가하고 폴백(fallback) 코드와 레거시 처리를 덧붙이기만 합니다.
00:07:15코드를 삭제하고 오래된 API를 버리게 하려면 거의 강제로 명령을 내려야 할 정도죠.
00:07:22물론 앞으로 개선되겠지만, 지금 당장은 이런 문제들과 싸워야 합니다.
00:07:30그런데 Guillermo의 글은 이런 것들이 더 이상 중요하지 않다고 말하는 것 같습니다.
00:07:35하지만 저는 여전히 중요하다고 말하고 싶습니다.
00:07:37개발자로서 여러분은 그러한 싸움을 계속해야 하며, 실제 코드와
00:07:43코드 품질에 대해 오늘뿐만 아니라 미래에도 계속 신경 써야 합니다.
00:07:49미래가 어떻게 될지 아무도 모르지만, 여러 이유로 코드베이스가
00:07:56불필요하게 복잡해지지 않도록 유지하는 것은 항상 중요할 것입니다. 토큰 효율성도 그중 하나죠.
00:08:01토큰 효율성이 하나의 이유가 될 수 있겠네요.
00:08:02또 다른 이유는 아까 말씀드린 검토(review) 부분이고요.
00:08:08또 하나 당연한 이유는 코드가 애플리케이션의 성능에 영향을 미치기 때문입니다.
00:08:18제가 대단한 진리나 새로운 소식을 전해드리는 건 아니지만,
00:08:26이 점은 간과하기 쉽습니다.
00:08:28AI가 코드를 생성하니까 실제 코드는 더 이상 중요하지 않다고,
00:08:34리팩터링이나 재생성, 교체가 쉬우니까 상관없다고 말할 수도 있습니다.
00:08:38토큰 비용 문제를 무시한다면 그 말도 일리가 있습니다.
00:08:43하지만 생성된 코드는 당연히 애플리케이션의 성능에
00:08:51영향을 줄 수 있습니다.
00:08:53데이터베이스를 쿼리하는 방법은 여러 가지가 있습니다.
00:08:56결과가 같다는 이유로 중첩 쿼리를 돌리거나 불필요하게 많은 쿼리를 실행할 수도 있겠죠.
00:09:03네, 어쨌든 데이터는 가져왔으니까요.
00:09:04원하는 데이터를 얻긴 했습니다.
00:09:05하지만 최적화되지 않은 데이터베이스 쿼리는 사용자가 많아지는 순간
00:09:12진정한 비용을 치르게 만듭니다.
00:09:15중첩 루프나 코드베이스에 스며드는 온갖 비효율적인 요소들도
00:09:20마찬가지로 성능 저하를 일으킵니다.
00:09:23그렇기 때문에 여전히 코드 품질과 코드 최적화가 중요한 것입니다.
00:09:30미래의 AI 모델과 도구들이 그런 일을 아주 잘하게 될 것이고,
00:09:37처음부터 더 나은 코드를 생산하며 코드를 평가하고 개선할 수도 있을 것이라고
00:09:43충분히 말할 수 있습니다.
00:09:47그것은 분명 가능한 일입니다.
00:09:50하지만 그렇다고 해서 코드 품질이 중요하다는 제 주장이 꺾이지는 않습니다.
00:09:55미래의 모델이 생성하든 개발자가 직접 짜든 상관없이 말이죠.
00:09:58물론 큰 차이점이라면, AI가 이 모든 것을
00:10:04해낼 수 있는 세상에서는 인간이 그 과정에서 빠지게 된다는 것입니다.
00:10:08제 생각에 Guillermo가 하고 싶은 말도 바로 그런 점인 것 같습니다.
00:10:13하지만 그 미래가 정확히 어떤 모습일지는 알 수 없습니다.
00:10:16이 게시물에 대해 덧붙이자면, 요즘 인터넷 세상이
00:10:23어떤 식인지 저도 잘 알고 있습니다.
00:10:24도발적이어야 합니다.
00:10:25조금은 자극적이어야 저 같은 사람이 그것에 대해 영상을 만들 테니까요.
00:10:30충분히 이해합니다.
00:10:31하지만 이 글에서는 우리가 과거에 했던 모든 일들이
00:10:37마치 꽤나 어리석었던 것처럼 들립니다. 그렇지 않나요?
00:10:38안 그런가요?
00:10:39코드를 더 쉽게 쓸 수 있게 해주는 전용 도구와 GUI를 만들고 API 디자인을 논의하는 것이
00:10:45바보 같은 짓이었을까요?
00:10:46아니요, 그것은 여러분이 자신의 일에 정성을 쏟고 있다는 증거입니다.
00:10:51인간으로서 자신의 기술과 작업에 애정을 갖는 것은 당연합니다.
00:10:56그건 마치 "옛날 디자이너들은 종이에 먼저 스케치를 하고
00:11:02포토샵 같은 전문 소프트웨어를 써서 디지털 아트로 변환했다니 참 바보 같네"라고
00:11:07말하는 것과 같습니다.
00:11:08아니요, 전혀 바보 같지 않습니다.
00:11:10그것이야말로 자신의 기술과 직업을 소중히 여기는 사람과
00:11:17그렇지 않은 사람을 구분 짓는 요소입니다.
00:11:19이런 과정을 어리석거나 이상한 것, 또는 영원히 사라져야 할 것으로
00:11:29치부하는 것은 잘못된 시각입니다.
00:11:30전혀 멋진 관점이 아니에요.
00:11:32그리고 사실 우리는 지금도 새로운 소프트웨어를 만들고 있습니다.
00:11:36에이전트 중심의 엔지니어링 세상을 위해 Codex 앱이나
00:11:43요즘 나오는 온갖 AI 에이전트 앱과 GUI 같은 새로운 소프트웨어를 구축하고 있죠.
00:11:49그게 우리가 만드는 새로운 종류의 소프트웨어이며, 앞으로도 이런 일은 계속될 것입니다.
00:11:54또한 에이전트를 위한 스킬을 어떻게 적절히 작성할지,
00:12:01좋은 agents.md 파일을 어떻게 설정할지 등에 대해 계속 논의할 것입니다.
00:12:07우리가 완전히 과정에서 배제되어 더 이상 인간으로서
00:12:14아무것도 할 필요가 없어질 때까지 우리는 계속 토론할 것입니다.
00:12:16저는 그런 시점이 오지 않을 것이라 생각하고, 오지 않기를 진심으로 바랍니다.
00:12:22하지만 그런 날이 오기 전까지는, 여러분이 하는 일에 대해 의견을 갖고
00:12:29관심을 기울이는 것이 중요합니다.
00:12:31저는 그것이 정말 중요하다고 생각합니다.
00:12:33그래서 저는 코드와 코드의 구조가 계속 중요할 것이라고 봅니다.
00:12:41유일한 의문은 AI가 스스로 모든 것을 완벽하게 해낼 수 있느냐는 것이죠.
00:12:47그건 저도 모르고 지금은 아무도 알 수 없습니다.
00:12:50미래를 내다볼 수는 없으니까요.
00:12:53하지만 기본적으로 인간으로서 자신이 하는 일에 애정을 가져야 합니다.
00:12:57그것이 성공을 거두고 일을 즐겁게 하는 사람과
00:13:03그렇지 못한 사람을 나누는 차이점이라고 생각합니다.