AI 개발, 모두가 초보자인 시대의 도전
아직 아무도 AI를 활용해 소프트웨어를 어떻게 만들어야 하는지 모르고 있다. 지난 주에 나는 4일 동안 코드를 직접 건드리지 않고, 알지 못하는 언어로 Protocollie라는 프로그램을 만들었다. 사람들이 “어떻게 하셨나요?”라고 묻지만, 정확히 말해서 같은 방법으로 두 번째로 성공할 수 있을지는 확실하지 않다. 우리는 모두 이 새로운 기술을 사용하는 방법을 알아가는 중이다. 새로운 기술이 등장할 때마다, 사람들은 자신이 무엇을 하고 있는지 안다는 척을 하지만, 사실은 그렇지 않다. 우리는 그런 시기를 지났거나, 아직 도달하지 않았거나 둘 중 하나일 것이다. 어쨌든, 현재는 누구도 전문가라 할 수 없는 상태다. 모든 것이 너무 빠르게 변하고 있어서, 가장 경험이 많은 AI 쌍 프로그래머조차도 대부분 2년 이상 경력이 없다. 이렇게 가속화되는 상황에서는 우리는 모두 영원한 초보자일 가능성이 높다. 최근 전문성이란 것에 대해 많이 생각했다. 전문가가 되려면 얼마나 걸리는지, 말콤 글라드웰은 1만 시간이 필요하다고 했지만, 그는 바이올린과 체스 같은 분야에 대해 이야기한 것이다. 이 분야에서는 규칙이 2주마다 갱신되지 않고, 근육 기억이 하루아침에 쓸모없어지지 않는다. 하지만 AI 프로그래밍은 다르다. AI와 함께 작업하면서 나는 점점 더 많은 문서를 만들었는데, 이는 누군가가 계획한 시스템이 아니라 자연스럽게 쌓여진 결과물이다. 처음에는 아키텍처에 대해 잊지 않기 위해 한 개의 문서를 만들었고, 같은 문제를 계속 해결하기 싫어서 두 개의 문서로 늘렸다. 작업 과정이 반복되길 원치 않아 세 개로 추가되었으며, 이야기들이 저장되어야 한다고 느껴 네 개로 마무리되었다. 이 네 개의 문서는 최적화된 숫자 때문이 아니라, 그때까지 추가하지 않아서 그 수가 정해졌다. 때로는 내가 이제 프로그래머를 가장하는 것이라고 생각한다. 집에서 복잡한 게임을 하는 사람들처럼. "이 문서는 아키텍처다! 이 프로세스는 공식이다! 우리는 무엇을 하고 있는지 안다!"라고 가장하면서. 하지만 소프트웨어는 실재한다. 컴파일되고, 실행되며, 사용자들이 실제로 사용한다. 그래서 가장하는 것이 목표일지도 모른다. 모든 방법론이 결과를 내기 위해 서로가 동의한 가상의 이야기일 수도 있다는 생각이 든다. architecture overview는 README로 시작되었다. "이것이 대략적으로 무엇을 하는지, 나는 이렇게 생각한다"라는 내용이었다. technical considerations는 클로드(Claude)가 어려움을 겪을 때마다 추가된 나의 점증적인 불만이 문서로 변한 것이다. workflow process는 반복적으로 같은 작업을 수행하다가 클로드에게 단계를 적도록 했고, 이제는 그 단계들을 성경 문구처럼 따르며 작업한다. 하지만 그것들은 단순히 이번에 잘 작동한 방법일 뿐이다. story breakdown는 모든 작업을 15-30분 단위로 나눈 것이다. 왜냐하면 클로드가 10분 전에 논의한 내용을 잊어버리기 때문이다. Protocollie를 처음 만든 일요일, 나는 새로운 작업 방식을 발견했다. 나는 사무실에 들어가 클로드가 만든 것을 확인하고, 빠르게 테스트했다. 만약 잘 작동한다면, 커밋하고 푸시했다. "이제 서버 연결 UI를 만들어줘"라고 말하고 다시 사무실을 나왔다. 아침 식사를 준비하면서, 클로드는 코딩을 했다. 아들에게 놀아주면서, 클로드는 코딩을 했다. TV를 보면서, 클로드는 코딩을 했다. 한 시간마다 다시 사무실로 돌아가 5분간 테스트하고 1분간 피드백을 줬다. "아, 이건 마지막 서버를 기억하도록 해줘"라고 말하고 다시 일상으로 돌아갔다. 클로드는 초당 1만 단어를 입력할 수 있고, 트위터에 신경 쓰지 않는 매우 충성스러운 주니어 개발자 같았다. 전체적으로, 나는 아마 90분 정도만 실제로 "작업"을 했을 것이다. 결정을 내리고, 테스트하며, "아니, 그렇게 하면 안 돼"라고 말하는 집중적인 작업 말이다. 나머지는 그냥... 일상 생활을 즐기는 동안 백그라운드에서 소프트웨어가 형성되는 것을 지켜보는 것뿐이었다. 이 과정에서 시간 왜곡이 일어난다. 당신이 프롬프트를 주고, 자신의 삶을 즐긴다. 다시 돌아와 1만 줄의 코드를 본다. 5분 동안 읽고, 한 문장의 피드백을 주면, 점심을 만드는 사이에 또다시 1만 줄의 코드가 나타난다. 입력 대 출력, 노력 대 결과, 시간 대 진행의 비율이 모두 잘못되어 있다. 이는 내가 가진 작업에 대한 모든 정신 모델을 깨뜨린다. 때로는 죄책감이 든다. 마치 해커뉴스의 누군가가 "죄송하지만, 팬케이크 만드는 동안 그렇게 빠르게 소프트웨어를 만들 수 없습니다, 고생하던 시대로 돌아가세요"라고 댓글을 달 것 같은 생각이 든다. 나는 최근 AI 개발의 초기 단계를 "벽에 스파게티를 던지는 단계"라고 표현했다. 어떤 사람은 "그리고 그것이 붙는지 보는 것"이라고 교정했지만, 나는 그게 아니다. "스파게티를 던지는 것"이 중요하다. 붙는지 여부는 중요하지 않다. 각종 이상한 프로세스, 실패한 실험, "이건 안 될 줄 알았는데 되네"라는 순간들, 모든 것이 우리가 공동으로 실행하고 있는 실험의 데이터 포인트다. 나의 네 문서 시스템도 그러한 실험에서 생긴 패턴이었다. 내일은 이 패턴이 벽에서 떨어질지도 모른다. 그래도 괜찮다. 나는 더 많은 스파게티를 던져볼 것이다. 오랜 시간 동안 코딩을 해왔기 때문에 HTML 테이블을 손으로 만들던 시대, CSS가 제안이 아닌 생활 방식이던 시대, JavaScript가 마우스 오버 효과만 위해 사용되었던 시대를 기억한다. 각 시대마다 우리는 이전 시대의 작업을 추상화했다. 어셈블리에서 C, C에서 자바, 자바에서 루비로, 이제는 "내가 원하는 것을 설명하면 그것이 나타난다"는 단계까지 왔다. 하지만 이것은 단순히 다른 추상화 계층이 아니다. 좀 더 이상하고, 좀 더 특이하다. Protocollie를 만들 때 나는 프로그래밍을 하고 있었지만, 그렇다고 비프로그램 상태에도 있지 않았다. 이 과정을 어떻게 명명해야 할지 모른다. 우리는 아직 그 단어를 찾지 못했다. 이 기술은 더 이상 문법이나 알고리즘, 시스템 설계가 아니라 "명확한 욕망" 또는 "정확한 상상력" 또는 "구조화된 소망" 같은 것에 초점을 맞춘다. 내 문서들을 다시 보면서, 이는 코드에 대한 것이 아니라 기억과 잊음을 다루는 것임을 깨달았다. 중요한 것을 보존하고, 다시 생성될 수 있는 것을 판단하는 것. architecture overview는 아키텍처가 아니라 "만약 나는 기억을 잃었다면 무엇을 알고 싶을까?"라는 질문에 대한 답이다. technical considerations는 "만약 이것을 반복해야 한다면 무엇이 나를 짜증나게 할까?"라는 질문에서 시작되었다. workflow process는 "어떤 패턴이 나타났는지 잃고 싶지 않은 것"이다. story breakdown는 "모든 것이 초기화될 때 어떻게 진전을 이룰 수 있을까?"라는 질문에서 나왔다. 아마 모든 문서는 미래의 혼란스러운 자신에게 보내는 메시지일 것이다. 우리는 모두 다시 주니어 개발자가 되었다. 하지만 이는 시간이 경과하면 선임이 될 수 있는 전통적인 주니어가 아니다. 기술이 전문성이 축적되기보다 더 빠르게 변화하는 영구적인 초보자 상태다. 이는 제어의 문제에 따라 두려움이거나 해방감일 수 있다. 앞으로 어떤 프로젝트를 만들지, 어떤 프로세스를 사용할지, 어떤 문서를 만들거나 버릴지, 이 모든 것이 여전히 의미를 가지는지 전혀 예측할 수 없다. 이러한 불확실성은 과거에 나를 불편하게 했지만, 지금은 그 불확실성 때문에 이 시기가 전기적인 느낌을 준다. 모든 개발자는 동시에 자기만의 이상한 프로세스에서는 전문가이고, 다음에 올 무언가에서는 완전한 초보자다. 4일 동안의 작업이 몇 개월 걸리던 일을 대체할 수 있다. 주요 기술은 빠르게 타이핑하는 것보다 원하는 것을 설명하는 능력이다. 나의 네 문서 시스템은 권장 사항이 아니다. 단지 지난 2025년 1월의 개발 과정에서 한 사람이 한 번 사용한 데이터 포인트일 뿐이다. 이미 구시대의 유물처럼 낡아졌지만, 여전히 영감을 줄 수 있다.GitHub에서 확인할 수 있는데, 이를 성경이나 템플릿으로 생각하지 말고, "2025년 1월 어느 주에 한 사람이 한 번 이렇게 했다"는 증거로 봐주면 좋겠다. 이는 지시사항이 아니라, 한 번 잘 작동했던 것의 증거일 뿐이다. 누군가가 내일 세 개의 문서 시스템이나 다섯 개의 문서 시스템, 아니면 단지 좋은 의도만으로도 잘 작동할 방법을 발견할 것이다. 그리고 그것은 아마도 잘 작동할 것이다. 이런 실험과 창조의 시기는 마치 물이 돌아올 줄 알면서도 저수할 때 모래성을 쌓는 것 같다. 모래성은 소프트웨어이고, 물은 진보이고, 우리는 이 시기에 생활하며 즐기고 있다. 내일 누군가가 다른 방법을 발견할 것이다. 그 방법은 또 잘 작동할 것이다. 이 모든 과정은 우리가 앞으로 나아가는 방법을 찾는 실험의 일부일 뿐이다. Industry insiders note that the rapid evolution of AI tools is both exciting and challenging. The flexibility and creativity required to adapt to these changes are seen as crucial skills in the modern tech landscape. Companies like Anthropic, creators of Claude, are at the forefront of this movement, pushing the boundaries of what’s possible with AI-assisted development. However, the lack of established best practices means that developers must constantly innovate and experiment. Despite the uncertainties, many in the field are optimistic about the potential for AI to revolutionize software development, making it more efficient and accessible.