AI 시대의 프로그래머

우연히 어떤 분의 블로그를 봤다. 요즘 흔치 않은, 그래픽스 렌더링 기법들에 관한 글들이 잔뜩 올라온 귀한 블로그였다. 마치 막 이력서를 내면서 그동안 써두었다가 공개 안한 글들을 한꺼번에 공개하는 것으로 보여 응원하면서 글을 읽었다.

여러 노력들로 인한 응원의 마음은 곧 아쉬움과 안타까움으로 바뀌었다. **굵은 글씨** 와같이 마크 다운 문법이 그대로 노출 되는걸 포함해서 누가봐도 AI의 글을 그대로 옮겨적은 흔적들이 보였다. 분명 직접 작성한 내용들이 대부분이고 노력한 흔적은 보이나, 그 노력은 안타깝게도 “AI 복붙”으로 희석 되었다.

**글자**은 마크다운(markdown) 문법으로 ‘글자’를 굵은 글씨‘글자’로 표시하기 위한 문법이다. ChatGPT 같은 AI들은 강조를 할 때 마크다운으로 보여준다. 그것을 보여줄 때는 효과가 적용되어 보이지만 내용을 복사 할 때는 평문이 그대로 복사가 될 때가 있다. 구글 검색 결과에서도 가끔 마크다운 문법이 그대로 보일 때가 많다.


AI 가 대부분의 프로그래밍을 대신해주는 **AI 시대**에서, 생각 보다 많은 일들은 별거 아닌 일들이 됐다. 인간이 완전히 무력해지는 순간, 기계가 인간을 지배하는 시간은 오히려 고민 거리가 없다. 기계가 인간을 지배하기 전까지 그때까지 인간은 무엇을 해야할까, 당장 몇년 후 프로그래머, 소프트웨어 개발자는 무엇을 해야할까? 누군가의 말 처럼 소프트웨어 개발자라는 직군은 없어질까?

Jeff Pesis 1 라는 사람이 이런 말을 했다.

“하드웨어란 컴퓨터에서 발로 찰 수 있는 부분이다.”

“Hardware: the parts of a computer that can be kicked.”

다소 비약이 섞인 말이지만, 지금 막 지나가는 소프트웨어의 시대를 지나, AI 시대에서는 저 말이 다른 의미로 핵심을 찌르는 말이다. 저 발로 차이는 부분이 이제는 바로 사람의 역할이다. 대부분의 일은 AI가 하고, 문제가 있어서 발로 차이는 것은 사람이다. 이는 단순히 물리적으로 고통을 받는 부분이 아니다. 이것을 인간적인 표현으로 하자면 발로 차이는 역할이라는 것은 책임을 지는 역할이다.

AI로 인한 위험을 지금처럼 느끼지 못할 때, AI가 마치 나 대신 일을 해줄 때 AI에게 일을 시키고 월급 루팡을 상상하던 사람들이 제법 있었다(몇몇은 농담이 아니라 진심인듯 했다). 당연하게도 내 일을 AI가 대신 해준다면 내 고용인은 나를 쓸 필요가 없다. AI 가 하는 일을 왜 돈을 주고 AI 를 대신하게 시키겠는가. 만약 내가 AI 를 조작하는 일을 한다면 내 역할은 명확하다. 내가 AI의 일을 책임지는 것이다. 이게 잘못 됐을 때 내가 발로 차이는 것과 사실상 같은 것이다. 진짜 발로 차이진 않아도 정신적으로, 개념적으로는 같은 것이다.

고용주가 직접 AI를 써서 문제가 잘못되면 누굴 탓할 것인가? AI가 만든 코드가 서버를 터트리고, 아이템이나 돈 같은 재화를 복제할 때 고용주는 누구를 탓할 것인가? OpenAI? Claude? Google 같은 AI 제공자를 탓할 것인가? 그들이 책임을 져줄 것인가 하면 그렇지 않다. 책임은 AI 사용자의 몫이다. 며칠전 있었던 공영 방송사 자동 번역 사고2를 포함해서 여러 사건 사고들을 보면 AI는 책임을 지지 않고 질 수도 없다는 것을 알 수 있다.

AI 시대에 프로그래머가 살아 남는 다면 어떤 프로그래머가 살아 남을까? AI의 역할을 곰곰이 생각해보면 AI 시대에도 살아남는 프로그래머는 AI를 사용하든 손 코딩을 하든 자기 결과물에 책임을 지고 결과물(product)을 내는 사람일 것이다. AI/손 코딩은 수단일 뿐이고 결국 작업물이 아닌 결과물을 내는 것이 근본이다. 물론 그 결과물을 내는 사람의 수는 지금 보다 적어지겠지만, 그들만이 살아 남는다.

John Carmack은 누군가와의 트위터 DM 대화에서 다음과 같은 말을 한적이 있다3.

지금은 손 코딩이었다가 나중에 AI로 바뀌더라도 만약 제품을 만드는 전반적인 역량(product skills)를 갖추고 그때그때 가장 적절한 도구를 사용할 수 있다면 괜찮을 겁니다.

If you build full “product skills” and use the best tools for the job, which today might be hand coding, but later may be Al guiding, you will probably be fine.

그림 3. John Carmack DM

AI 관련해서 들었던 그 어떤 말 보다도 이 말이 가장 와 닿았다. 바꿔 말하면 프로그래머는 그냥 단순히 프로그래밍 언어를 가지고 프로그램을 짜는 사람이 아니다. 모든 훌륭한 프로그래머들은 (설령 실패를 하더라도) 결과물을 내는 사람들이다.

재미있는 점은 이런 특성의 프로그래머가 중요한 것은 AI가 프로그래머는 대체하지 않는 지금도 마찬가지라는 것이다. 시키는 일을 시키는 대로만 작업 완료하는 것에 목적이 있지 않고, 본인의 작업물이 결과물로써 잘 동작하도록 책임을 지고 완성 하는 사람이 일을 잘한다고 인정받는다. 지금도 소위 일 잘 하는 사람은 결과물을 내는 것으로 본인을 증명하는 것인데 생각해보면 AI 시대도 전혀 다르지 않다.


이 서두에는 AI의 흔적이 남아 있는 블로그에 대한 아쉬움을 이야기 했다. AI의 도움을 받은 것이 아쉬운 것이 아니다. 사실 어떤 글을 작성할 때 그 글 하나도 내가 책임을 질 수 있다. 완벽할 필요 없다. 오히려 불완벽, 불완전함이 직접 했다는 증명이 되기도 한다. 책임을 졌다는 증거물이다. 내 글(결과물)에 AI를 쓸 것이냐, AI의 결과물에 나의 생각이 첨부 된 것이냐는 많은 것이 다르다. 그 글을 다듬고 일관성 있게 바꾸고 나의 형태로 만드는 것이 AI의 글을 쓰는 것을 내 것으로 만드는 작업의 일부이다.

글이라 하는 것은 쓰는 사람만의 일관성이 있다. 어투가 있고 자주 사용하는 단어와 표현이 있다. 물론 AI가 그것을 흉내낼 수 있으므로 그것 또한 감출 수는 있으나 그것을 흉내 낸다고 내 것이 되는 것은 아니다.

이것은 글에 국한 되지 않고 코드, 심지어 코드 주석과 커밋(메세지) 또한 마찬가지다(다른 분야도 대부분 마찬가지다). 그것을 그대로 배포하는 것과, 그것을 책임지고 테스트 하고 재정비하고, 삭제하고 첨언 하는 것, 그 모든 것이 AI의 결과물을 내 결과물로 만드는 것이다. AI 글도 써주고, 코드와 주석도 잘 써주지만 그것은 AI의 결과물이다. 사람은 사람의 결과물이 필요하다.


AI 시대에 나는 무슨 일을 하게 될까? 계속 일을 할 수는 있을까 하는 고민은 이러한 과도기에서는 사라질 수 없는 골치 아픈 고민 일 것이지만 한가지는 확실하다. 내가 딸깍 하고 뭔가를 만들어냈을 때, 그걸 필요로 하는 사람이 내가 아니라면, 나의 역할은 필요 없는 것이다. 그걸 원하는 사람이 딸깍을 하는 편이 더 효율적이다.

간단한 웹서버 정도면 딸깍 하고 만들 수 있는 시대다. 그것이 나 혼자 필요하다면 이 딸깍으로 만드는 웹 서버는 어쩌면 이대로도 충분하지만, 수억, 수십, 수백억이 걸린 서버를 만든다면 이건 딸깍으로 만든 것을 그대로 사용할 수는 없다. 내가 서버 프로그래머라면 내가 딸깍하고 만든 서버를 검증하고 검증해서 문제가 없도록 하는 책임을 지는 것이 프로그래머로써의 역할이다.

글을 쓴 다는 것은 (공을 들이는 방식엔 차이가 있겠지만) 나의 생각이나 나의 결과물을 밖으로 공개하는 것이다. 이 자체로서 내 생각이라는 책임을 지는 것이다. 프로그래머로서, 직장인으로서, 혹은 사업자로서의 나는 내 결과물을 가지고 책임을 지는 사람이다. 앞으로는, 종국에는,(사기꾼이 아닌한) 책임을 지는 사람만, 책임을 질 줄 아는 사람만 살아남는 시대가 될 것이라고 조심스럽게 예측해본다.


  1. 유명세에 비해 이 인용의 1차 출처는 알려지지 않았다고 한다. 

  2. KBS 에서 자동 번역 자막을 송출 하였는데 잘못된 번역으로 욕설이 들어갔다. 그 자동 번역을 잘 못 만든 회사의 잘못일까? 아니다. 그걸 선택한 KBS의 잘못이다. 

  3. https://x.com/ID_AA_Carmack/status/1637087219591659520