
질문을 뒤집어야 한다
존 카멕이 《오륜서》 번역본을 읽고 남긴 소감은 짧지만 무겁다. 검술이 전장의 필수 기술에서 스포츠와 취미로 내려앉은 경로를, 그는 프로그래밍 기술에서 그대로 본다고 했다. 옵코드를 손으로 16진수로 옮기던 시절의 매직 넘버를 아직 기억하는 사람들이 이 글을 읽고 있겠지만, 오늘날 어셈블리를 쓰는 소수조차 그 수준에서 작업하지 않는다. 그리고 AI가 다른 많은 프로그래밍 기술의 중요성을 빠르게 떨어뜨리고 있다.
여기까지는 상실의 목록이다. 무엇이 사라지는가? 손코딩, 알고리즘 암기, 프레임워크 숙련도, 보일러플레이트를 빠르게 쳐내는 타이핑 속도. 개발자 커뮤니티가 지난 2년간 반복해온 애도의 목록이기도 하다.
그러나 카멕의 문장에서 진짜 건져야 할 것은 상실의 목록이 아니다. 무사시가 《오륜서》를 쓴 이유는 검술을 보존하기 위해서가 아니었다. 오직 이기기 위해서였다. 그렇다면 질문은 이렇게 뒤집혀야 한다. 무엇이 사라지는가가 아니라, 무엇이 남는가? 그리고 그 남는 것을 무엇이라 부를 것인가?
무사시는 그것을 덕목이라 부르지 않고 병법의 도라고 불렀다. 이름이 무엇이든, 도구가 바뀌어도 남는 것이 있다면 그것이 덕목이다.
첫째, 관(觀)의 눈
《오륜서》 물의 권에는 관견이안(觀見二眼)이라는 말이 나온다. 무사시는 두 가지 눈을 구분했다. 견(見)은 눈앞에 실제로 보이는 것을 보는 눈이고, 관(觀)은 보이지 않는 흐름과 의도를 읽는 눈이다. 그는 관의 눈을 강하게, 견의 눈을 약하게 하라고 가르쳤다. 상대의 칼끝을 쫓는 자는 진다. 상대의 중심을 읽는 자가 이긴다.
AI 시대의 개발자에게 이보다 정확한 처방은 없다. 이제 견의 영역, 즉 화면에 실제로 찍히는 코드는 기계가 만든다. 남는 것은 관의 영역이다. 이 요구사항의 진짜 문제는 무엇인가. 이 아키텍처가 6개월 뒤 어디서 무너질 것인가. 이 코드가 통과한 테스트는 무엇을 검증하지 않았는가.
AI가 만들어낸 코드는 대부분 문법적으로 옳고 표면적으로 그럴듯하다. 견의 눈으로는 통과한다. 그것이 틀렸다는 것을 알아채는 유일한 방법은 관의 눈이다. 코드를 읽는 능력이 아니라 코드가 놓인 문맥을 읽는 능력이 개발자의 첫 번째 덕목이 된다.
둘째, 무구(無構)의 태도
무사시의 가장 급진적인 가르침은 유구무구(有構無構)다. 자세는 있으되 자세에 매이지 말라. 그는 상단, 중단, 하단 다섯 가지 자세를 가르친 다음, 그 자세들이 결국 벨 수 있느냐 하나로 수렴한다고 말한다. 자세 자체를 지키는 것은 목적이 아니다.
개발자에게 자세란 스택이다. 나는 자바 개발자다, 나는 리액트 개발자다, 나는 백엔드다. 이 정체성은 지난 20년간 커리어를 지탱해준 자세였다. 하지만 AI가 언어 간 전환 비용을 거의 0에 수렴시키는 중이다. 특정 언어의 숙련도로 구축한 해자는 빠르게 메워지고 있다.
무사시가 이도류를 만든 것도 전통의 계승이 아니라 정반대였다. 한 손에 칼, 다른 손에 단도를 드는 방식은 당시 정통 유파에서 비웃음을 사는 파격이었다. 그는 전통을 지켜서가 아니라 전통을 버려서 이겼다. 오늘날 개발자에게 필요한 것도 새 도구를 배우는 성실함이 아니라, 자기 정체성을 도구에 묶지 않는 가벼움이다.
셋째, 검증의 책임
그러나 여기서 이 논의는 정반대 방향으로 오독되기 쉽다. AI가 다 해주니 아무것도 몰라도 된다는 결론 말이다.
나는 오래전부터 이 말을 반복해왔다. LLM은 엑셀이지 오라클이 아니다. 엑셀은 계산을 대신해주지만, 잘못된 수식을 넣으면 잘못된 답을 아주 빠르고 깔끔하게 내놓는다. 엑셀이 낸 숫자에 책임지는 것은 여전히 그 시트를 만든 사람이다. 스프레드시트 오류로 날아간 기업들의 사례는 도구가 유능해질수록 검증하지 않은 자의 손실이 커진다는 것을 증명한다.
무사시는 결과로만 말했다. 아름답게 베었는가가 아니라 베었는가. 그는 기교적 장식을 반복해서 경계했고, 모든 기술은 결국 상대를 베는 방법일 뿐이라고 못박았다. AI가 생성한 코드에 대한 책임 역시 프롬프트를 입력한 사람에게 있다. 커밋에 찍히는 이름은 모델의 이름이 아니다.
그러므로 세 번째 덕목은 검증이다. 출력을 판별할 수 있는 능력, 그리고 판별하지 못하는 영역에 대해서는 판별 가능한 형태로 문제를 분해하는 능력. 이것 없이 AI를 쓰는 사람은 MMA 선수가 아니라 관중이다.
넷째, 단련(鍛錬)의 대상을 바꾸는 것
무사시는 천 일의 연습을 단(鍛), 만 일의 연습을 련(錬)이라 했다. 수련 없이 되는 것은 없다는 뜻이다. AI 시대라고 해서 이 원칙이 폐기되지는 않는다. 바뀌는 것은 무엇을 단련할 것인가다.
지난 세대의 단련 대상은 구현이었다. 더 빠른 정렬, 더 적은 메모리, 더 짧은 코드. 다음 세대의 단련 대상은 다르다. 문제를 정확히 정의하는 능력, 시스템의 경계를 설계하는 능력, 실패를 빨리 드러내는 검증 루프를 만드는 능력, 그리고 모델의 출력을 의심하는 습관.
이것들은 우아하지도 않고 자랑하기도 어렵다. 코드 한 줄로 증명되지 않는다. 하지만 만 일을 들여야 몸에 붙는다는 점에서 성격은 똑같다.
다섯째, 동량(棟梁)의 시선
《오륜서》 땅의 권에서 무사시는 병법을 목수 일에 비유한다. 대장 목수, 즉 동량은 직접 대패를 잡는 사람이 아니라 재목의 성질을 알고 사람을 배치하는 사람이다. 휘어진 나무는 휘어진 자리에 쓰고, 곧은 나무는 기둥에 쓴다. 좋은 동량은 재료를 탓하지 않는다.
AI를 팀원으로 두는 개발자에게 필요한 시선이 정확히 이것이다. 어떤 작업을 모델에 맡기고 어떤 작업을 사람이 쥐고 있어야 하는가. 모델이 잘하는 것과 못하는 것의 결을 아는가. 이것은 프롬프트 엔지니어링이라는 유행어보다 훨씬 오래된 기술이며, 관리자의 기술이 아니라 장인의 기술이다.
그렇다면 기본기는 버려도 되는가?
마바오궈가 4초 만에 다운된 것은 태극권 때문이 아니다. 실전을 하지 않았기 때문이다. 전통 무술 자체가 무력한 것이 아니라, 검증되지 않은 전통이 무력했다.
같은 논리가 반대편에도 적용된다. 기본기를 건너뛴 채 AI 출력만 붙여넣는 사람은 아마추어 MMA 선수가 아니다. 그냥 링 밖에 있다. 카멕이 AI가 프로그래밍 기술의 중요성을 낮추고 있다고 말할 수 있는 이유는, 그가 그 기술들을 이미 최고 수준으로 체화한 사람이기 때문이다. 어셈블리를 손으로 짜본 사람만이 컴파일러의 출력이 이상하다는 것을 안다.
여기에 역설이 있다. 기본기는 더 이상 생산 수단이 아니지만, 여전히 판별 수단이다. 목적이 바뀐 것이지 가치가 사라진 것이 아니다. 그리고 판별 능력은 생산 능력보다 훨씬 비싸게 팔린다. 만들 줄 아는 사람은 많아지고, 틀렸다고 말할 수 있는 사람은 줄어들기 때문이다.
도구를 가리지 않는 것
무사시가 만년에 남긴 독행도(獨行道) 21개조 중에 이런 항목이 있다. 도구에 대해 좋고 싫음을 두지 않는다. 그리고 그는 당시 매우 원시적이던 화기를 높이 평가했고, 지금 상황에서 쓸모없는 무기는 들지 말라고까지 썼다.
평생을 칼로 살아온 사람의 문장이다. 카멕이 무사시라면 돌격소총에도 꽤 열광했을 것이라고 말한 것은 농담이 아니라 정확한 독해였다.
AI 시대 개발자의 덕목을 한 줄로 줄이면 결국 이것이다. 도구에 애정도 원한도 두지 말 것. 손으로 짠 코드에 대한 향수도, AI에 대한 맹신도, 둘 다 도구에 감정을 붙인 상태다. 무사시가 경계한 것은 낡은 무기가 아니라 무기에 대한 집착이었다.
검도는 아름답다. 지킬 가치가 있다. 다만 그것을 실전이라고 부르지만 않으면 된다. 코딩도 마찬가지다. 한 줄 한 줄 손으로 짜는 즐거움은 계속 남을 것이고, 남아야 한다. 다만 그 즐거움이 경쟁력이라고 믿는 순간, 우리는 현실과 동떨어진 쿵푸 고수가 된다.
전장은 이미 바뀌었다. 무사시라면 벌써 새 무기를 들었을 것이다.