AI는 인간을 대체할 수 있을까?
요즘 어딜가나 AI를 얘기하는 세상입니다. 게임 프로그래머로서 저도 회사 업무에 AI를 활용하고 있습니다. 주로 ChatGPT나 Github Copolit을 사용하여 코딩할 때 도움을 받죠. 회사 마다 또 개개인 마다 쓰는 방식이 다를 수 있을텐데 저는 주로 간단한 유틸리티를 만들거나 특정 코드가 잘 생각이 안 날 때 씁니다.
예를 들면 다음과 같은 것들입니다.
- 서버에서 받은 xml파일을 읽기 좋게 보여주는 xml뷰어
- C++에서 문자열을 처리하는 코드
- 두 텍스트 파일을 비교해서 다른 부분을 찾아주는 유틸리티
xml뷰어를 만들기 위해 입력한 프롬프트는 다음과 같습니다.
I want to make an "xml pretty" using html.
- there is an input field.
- there is a "pretty" button.
- when user press the button, the formatted xml string should be printed below.
이렇게 해서 나온 결과물은 이렇습니다.
아주 순식간에 코드를 만들어 줬습니다만 약간 보기 불편한게 있습니다. xml문서에서는 컨텐츠가 한 줄일 때 close tag를 같은 줄에 붙여쓰는게 일반적입니다. 아직 AI가 이런 직관은 부족한것 같습니다. 그래서 이걸 수정해 달라고 이렇게 요청했습니다.
please modify some feature.
- if a tag has a content with just one line, then the close tag should attached right after the content text.
이제 좀 더 보기 좋아졌습니다.
좀 더 욕심을 내서 컬러까지 넣어달라고 합니다.
Would you add a feature more?
- please apply color to each tag.
헛, 그런데 버그가 생겼습니다.
컬러는 들어갔지만 태그 앞의 "<" 이게 모두 빠졌네요. 버그도 고쳐달라고 요청했습니다. 아무래도 컬러 기능은 다시 요청해야 할 듯 해서 넣었던 기능을 다시 빼달라고 했습니다.
There is a problem.
- All tags are shown without "<".
- please fix the bug.
- and remove the color feature.
이렇게 한 두세번 더 주거니 받거니 했는데 결국 버그는 못고쳤습니다. 그리고 결과물은 더 엉망이 되었고요.
이쯤되면 계속 고쳐쓰기 힘들다고 판단이 됩니다. 좀 더 프롬프트를 다듬어야 할까 생각도 해봤는데 그냥 처음 만들어줬던 코드를 쓰는게 나을것 같습니다.
이렇게 저는 업무중 필요한 간단한 유틸리티를 만들 때 AI를 활용합니다. xml viewer같은 경우 무료 프로그램도 있고, 온라인 사이트도 많지만 회사 데이터이다 보니 유출이 걱정되어서 아무 프로그램이나 쓸 수가 없는 상황입니다. 이럴 때 AI의 도움을 받으면 보안도 문제 없고 업무 능률도 올라갑니다.
또한 C++에서는 문자열 처리가 상당히 불편한데 이런것을 짤 때도 ChatGPT한테 요청합니다. 구글 검색을 하면 여기저기 또 들어갔다 나왔다 하면서 정보를 모아야 하는데 AI는 정보를 취합해 한번에 제공해 주기 때문에 직접 검색하는 것보다 좀 더 편한 부분도 있습니다.
하지만 위에서 본 것처럼 AI는 내 입맛에 맞는 코드를 한방에 제공해주지 못합니다. 진짜 사람한테 요구하듯이 말하면 계속 엉뚱한 결과물을 내어주기도 합니다. 그리고 코드의 일부분만 수정이 필요할 경우 적용하기가 좀 불편한 부분도 있습니다. 그냥 요청하면 항상 전체 코드를 다 내려주고, 일부분만 달라고 하면 또 사람이 하나하나 비교해보면서 기존 코드를 수정해야 하기 때문이죠.
제가 AI를 업무에 활용하는 수준은 이정도 입니다. 더 깊이 사용하는 분들도 있으시겠지만 제 생각에 아직 현재의 AI기술은 사람을 완전히 대체하기는 힘들것으로 보입니다. 아주 간단한 프로토타입용 코드는 실제 사람보다 훨씬 빨리 만들어주지만 그 이후에 다듬어나가는 과정은 마치 5살짜리 어린아이에게 일을 가르치는 것 처럼 답답한 느낌이 듭니다.
현업에서는 한번 코드를 작성하고 끝나는 경우는 거의 없습니다. 몇 개월, 몇 년 꾸준히 유지보수를 하고 최적화를 하는 과정이 필요하죠. 이런 부분에서는 AI보다 사람 프로그래머가 훨씬 좋은 결과를 보여줍니다. 무엇보다 사람은 직접 실행해 보면서 뭐가 잘못된건지 파악이 가능한데 AI한테는 하나하나 다 설명해줘야 합니다. 그렇게 설명해 줘도 알아듣지 못하는 경우가 많죠.
따라서 저는 AI가 사람을 대체하기 보다는 사람이 쓰기 좋은 도구가 될 것으로 생각합니다. 전동 드라이버, 전동 해머가 있다고 목수라는 직업이 사라지지는 않는 것 처럼 말이죠. AI도 작은 조각 코드를 생성해 내는것은 실제 사람보다 더 나을때가 많습니다. 하지만 그 코드를 사용하고 품질을 평가하는건 결국 사람이 해야 할 일인것 같습니다. 그리고 전동 드라이버를 써야 할 때와 손 드라이버를 써야 할 때는 구분하는게 중요하듯이 실제 사람이 생각해야 할 부분과 AI를 활용할 부분을 잘 구분하는게 중요해질 것 같습니다.