바이브 시대의 소프트웨어 장인정신의 필요성

ko생성일: 2025. 6. 13.갱신일: 2025. 6. 22.

제약이 사라진 시대, 소프트웨어 품질의 중요성과 AI와 함께하는 장인정신에 대해 논하다.

그들은 곧 소프트웨어 개발자가 자율 에이전트로 대체될 것이라고 말합니다. 하지만 매일같이 저는 나쁜 소프트웨어를 마주칩니다. AGI가 등장한다면, 그 첫 번째 임무는 제대로 된 캘린더 앱을 출시하는 것이어야 하지 않을까요?

이 글에서 저는 적어도 나쁜 소프트웨어에 대해 불평하려는 게 아닙니다. 저는 코드 생산의 제약이 대폭 완화된 시대에, 품질 높은 소프트웨어가 왜 중요한지 이야기하고자 합니다.

제약이 사라질 때, 품질은 더 중요해진다

이제는 Zed에서 120fps의 부드러운 속도로 코딩할 수 있고, 원한다면 24시간 내내 코드 생성이 가능합니다. 하지만 무한에 가까운 풍요의 세계에서는 품질의 기준 역시 더 높아져야 합니다.

소프트웨어 엔지니어로서 우리의 기여는 작성한 코드의 양이 아니라, 신뢰할 수 있고, 잘 설계되었으며, 변경이 쉽고 사용하기 즐거운 시스템에 의해 측정되어야 합니다.

온라인상에는 10배(혹은 100배!)의 생산성을 내는 엔지니어에 대한 이야기가 많습니다. 대부분은 AI가 우리를 더 빠르게, 그리고 더 많이 소프트웨어를 만들게 해줄 수 있다는 맥락입니다. 그러나 장인으로서 우리는 다음과 같이 질문해야 합니다. "AI는 어떻게 하면 더 나은 소프트웨어를 만드는데 도움이 될 수 있을까?"

시스템 설계의 중요성

실제 문제를 해결하는 코드베이스에 잠시라도 몸담아 본 적이 있다면, 이런 심정에 공감할 수 있을 겁니다. “더 좋게 만들고 싶지만, 고칠 시간이 없어.” 시스템은 우리의 생산성과 상상력을 제약하는 방식으로 망가져 있는데, 우리는 일단 결과물을 내야 합니다. 항상 있는 시스템을 조금 비틀어 목표를 달성하려는 유인이 존재하죠. 시스템이 "완벽하진 않지만 충분히 괜찮은" 상태로 남는 것을 감수하면서도, 근본적으로 고치기보다는 임시방편에 의존하게 됩니다.

Zed의 "출시 & 장인정신" 가치관은 이러한 이유로 쌍을 이룹니다. 우리는 긴박감을 느껴야 하지만, 그것을 명분으로 대충 때우는 식으로 해서는 안 됩니다. 단기적 이득은 회사 전체 수명 동안 비효율의 대가를 치르는 것만 못합니다. 게다가, 복잡한 코드베이스는 이제 우리 자신의 작업 뿐 아니라, AI 도구들까지 비효율적으로 만들기 때문입니다.

이런 역학을 잘 안다고 해서 해결이 쉬워지는 건 아닙니다. 어차피 시스템을 만들면서 배우는 것이기 때문에, "올바른 설계"를 시스템 개발 한참 뒤에서야 깨닫기도 하죠. 당시에는 합리적인 의사결정이 시간과 함께 누적되어 결국에는 내용만큼이나 복잡하고 유지보수가 어려운 레거시 코드베이스에 갇히는 느낌을 또 받게 됩니다.

그렇기에, 얼마나 많은 코드를 만졌느냐가 아니라, 시스템이 얼마나 신뢰할 수 있고, 이해하기 쉽고, 변화에 대응할 수 있게 되었는지가 가장 중요한 평가 기준이 되어야 합니다.

주인의식과 기준 높이기

그렇다면, 좋은 소프트웨어를 어떻게 만들 수 있을까요? 방법은 여러 가지겠지만, 저만의 방법을 이야기해 보겠습니다. 그것은 사용자의 경험에 대한 주인의식을 갖는 것입니다.

코드 에디터의 사용자로서, 저는 빠른 경험을 원합니다. 복잡한 3D 게임이 초당 120프레임으로 실행된다면, 제 에디터가 2D 텍스트와 사각형을 그 정도로 빠르게 렌더링하지 못할 이유가 없겠죠. 그것이 Zed를 만들며 세운 저의 초기 목표였습니다. 물론, 당시엔 어떻게 해야 할지 몰랐습니다. 하지만, 이전에 Atom이라는 코드 에디터그 파생 프로젝트인 Electron을 만들었던 경험이 있기에, 적어도 웹 기술로는 그 목표를 달성할 수 없다는 사실만큼은 알고 있었습니다. 웹브라우저보다 좋은 경험을 만들 수 없었으니까요.

그래서 처음부터 다시 시작했습니다. 하지만 처음부터 다시 시작한다는 것은 더 넓은 영역의 책임을 진다는 의미였고, 시스템 프로그래밍 언어(심하게 현실적인 컴파일러를 가진)를 새로 배워야 했으며, 셰이더 코드도 익혀야 했습니다. 이 모든 것은 프로젝트에 더 큰 위험 부담을 안겼지만, 그 과정이 없었다면 현재의 Zed는 없었을 겁니다. 다행히도, 이제 LLM의 힘 덕분에 이런 신기술 학습과 새 소프트웨어 개발은 훨씬 쉬워졌습니다. "헛소리"가 섞여 있더라도, 러스트의 borrow checker 에러를 처음 배울 때 언어모델이 채팅으로 도와줬다면 어떤 대가라도 치렀을 것 같네요.

이처럼 사용자의 경험 전체를 책임지는 것은 예전만큼 위험한 일이 아닙니다. 만약 훌륭한 경험을 제공하고 싶지만 아직 모든 기술을 갖추지는 못했다면, AI는 그 지식의 격차를 메우는 데 도움을 줄 수 있습니다. 여전히 실제 전문성을 대체하는 수준은 아니고, 시행착오도 겪겠지만, 예전보다 훨씬 빠른 속도로 실험하고, 배우고, 반복할 수 있게 되었습니다.

더 높은 목표를 세우세요! 진정으로 뛰어난 경험을 만드는 진입장벽은 그 어느 때보다 낮아졌습니다.

함께 답을 찾아봅시다

AI 에이전트가 등장한 지는 그리 오래되지 않았습니다. 이미 많은 것을 배웠지만, 앞으로도 배워야 할 게 많습니다. 더불어, 도구 자체가 계속 발전하기 때문에 우리의 이해 목표도 끊임없이 움직이고 있습니다.

이렇게 빠르게 진화하는 환경에서, 어떤 기술과 스킬셋이 어떤 도구에 가장 잘 맞는지 어떻게 알 수 있을까요? 늘 해왔던 방식대로, 지식을 서로 나누는 것에서 답을 찾을 수 있습니다!

그래서 오늘 저희는 Agentic Engineering을 소개합니다—인간의 장인정신과 AI 도구를 결합해 더 나은 소프트웨어를 만들자는 제안입니다.

격주마다 전문가들을 모셔 논의와 토론을 이어갈 예정입니다. 정말 흥미진진한 라인업이 준비되어 있으니, 여정에 동참하여 함께 해답을 찾아가 봅시다.

아래 양식에 가입하시면, 라이브 이벤트 참가 초대와 요약 메일을 받아보실 수 있습니다.

스팸도, 불필요한 것도 없습니다. 약속드립니다.

제가 가장 좋아하는 도구를 다듬어 가는 와중에, AI로 소프트웨어의 양이 아니라 "질" 까지도 혁신할 다양한 방법을 고민할 수 있어서 무척 기대됩니다.