도구에 대한 예의, 혹은 우리 자신에 대한 예의

새로운 도구가 손에 들어오면, 우리는 종종 기존의 방식을 고집하며 그 도구를 탓하곤 합니다. 마치 처음 스마트폰을 쥔 사람이 전화번호부와 버튼을 찾으며 투덜대는 모습과도 같습니다. 그 도구의 본질을 이해하고 새로운 사용법을 익히기 전까지, 강력한 잠재력은 그저 서툰 손안에서 불편함으로만 느껴질 뿐입니다.

최근 인공지능 모델 ‘클로드(Claude)’를 코딩 작업에 깊이 사용해보면서, 저는 비슷한 경험을 했습니다. 처음에는 그저 더 빠르고 영리한 검색 엔진처럼, 혹은 지치지 않는 코드 타이피스트처럼 대했습니다. 하지만 이내 깨달았습니다. 이것은 단순히 명령을 수행하는 도구가 아니라, 대화와 협업을 통해 결과물을 만들어가는 새로운 파트너라는 것을.

그 잠재력을 온전히 끌어내기 위해서는 명령이 아닌, 섬세하게 조율된 대화의 기술이 필요했습니다. 수많은 시행착오와 탐구 끝에, 저는 개인적으로 가장 효과적이었던 세 가지 접근법을 정립했습니다. 이는 어쩌면 기술의 사용법을 넘어, 우리 자신의 사고방식을 돌아보게 하는 철학적 질문과 맞닿아 있을지도 모릅니다.

새로운 협업자, AI를 대하는 세 가지 자세

저는 이 새로운 파트너와의 관계를 발전시키기 위해, 기존의 ‘지시-실행’ 패러다임을 버려야 했습니다. 그 대신, 세 가지 역할 모델을 떠올리며 대화의 방식을 바꾸기 시작했습니다.

1. 건축가처럼 설계하라: 맥락과 뼈대를 함께 제시

훌륭한 건축가는 ‘집을 지어달라’는 말에 바로 벽돌을 쌓지 않습니다. 그들은 땅의 특성, 햇빛의 방향, 그곳에 살 사람들의 삶의 방식을 묻습니다. 마찬가지로, AI에게 ‘로그인 기능을 만들어줘’라고 던지는 것은, 건축가에게 아무런 정보 없이 집을 지으라는 것과 같습니다.

저는 이제 코드를 요청하기 전에, 프로젝트의 전체적인 맥락, 사용될 기술 스택, 제가 선호하는 코딩 스타일, 그리고 가장 중요하게는 이 기능이 달성해야 할 ‘목표’를 먼저 설명합니다. 특히 복잡한 소프트웨어의 경우, 코드의 전체적인 ‘뼈대(skeleton)’를 직접 작성하거나 구상하여 제시합니다. 필요한 클래스와 함수의 이름, 예상되는 입출력 같은 최소한의 구조를 보여주는 것입니다. AI는 이 명확한 설계도 위에서 세부적인 로직을 채워 넣는 데 훨씬 뛰어난 성능을 보였습니다.

2. 현자처럼 대화하라: 소크라테스식 문답법

AI가 내놓은 첫 번째 답변은 정답이 아니라, 대화의 시작점일 뿐입니다. 저는 결과물을 받아 들고 ‘왜 이 라이브러리를 선택했지?’, ‘다른 대안은 없었나?’, ‘이 방식의 잠재적인 단점은 무엇인가?’와 같은 질문을 던지기 시작했습니다. 놀랍게도, AI는 자신의 선택에 대한 논리적 근거를 제시하고, 때로는 더 나은 대안을 스스로 찾아내기도 했습니다.

이러한 소크라테스식 문답은 AI를 단순한 코드 생성기에서 사고의 파트너(Thinking Partner)로 격상시킵니다. 이 과정을 통해 저는 미처 생각하지 못했던 부분을 발견하고, 코드의 완성도를 비약적으로 높일 수 있었습니다.

3. 정원사처럼 다듬어라: 점진적 개선과 가지치기

AI가 생성한 코드는 잘 자란 나무와 같아서, 때로는 불필요한 가지나 잎이 무성할 수 있습니다. 저는 이 코드를 최종 결과물이 아닌, 다듬어야 할 ‘초안’으로 대합니다. 그리고 다시 AI에게 요청합니다. ‘이 코드를 더 읽기 쉽게 리팩토링해줘’, ‘성능을 위해 이 부분을 최적화할 수 있을까?’

이러한 점진적 개선과 가지치기 과정은 코드의 품질을 결정하는 핵심 단계입니다. 개발자의 역할은 완벽한 코드를 처음부터 쓰는 것이 아니라, 좋은 초안을 비판적으로 검토하고 더 나은 방향으로 다듬어가는 ‘큐레이터’ 또는 ‘편집자’의 역할로 진화하고 있음을 느낍니다.

이러한 변화는 단순히 코딩 AI를 더 잘 쓰는 기술에 그치지 않는다고 생각합니다. 이는 우리가 AI와 어떤 관계를 맺어야 하는지에 대한 중요한 시사점을 던져줍니다. 과거의 접근법이 ‘이것을 하는 코드를 짜줘’라는 일방적 지시였다면, 새로운 접근법은 ‘이러한 맥락의 문제를 해결하고 싶은데, 어떤 방법이 좋을까?’라며 맥락을 공유하고 함께 답을 찾는 과정입니다. 첫 답변을 그대로 복사해 쓰는 대신 그 근거와 대안을 토론하고, 생성된 코드를 최종 결과물이 아닌 초안으로 삼아 함께 다듬어 가는 것, 이것이 바로 새로운 시대의 협업 방식입니다.

도구의 진화, 인간의 역할에 대한 질문

결국 AI라는 도구는 우리의 지능을 대체하는 것이 아니라, 증폭시키는 역할을 하는 것 같습니다. 기계가 코드를 쓰는 시대에 개발자의 가치는 더 이상 구문을 얼마나 많이 암기하고 빠르게 타이핑하는지에 있지 않습니다. 오히려 얼마나 깊이 있게 문제를 정의하고, 비판적으로 사고하며, 창의적인 구조를 설계할 수 있는가에 달려있습니다.

어쩌면 우리는 코드를 쓰는 행위 그 자체에서 해방되어, 문제 해결의 본질과 씨름하는 ‘사상가’가 될 시간을 선물받은 것인지도 모릅니다. 클로드와의 대화는 기술의 한가운데서, 역설적으로 가장 인간적인 능력의 가치를 되새기게 합니다. 이 새로운 대화법에 익숙해지는 것은, 결국 우리 자신을 더 나은 사상가이자 창조자로 만드는 과정이 아닐까요.