일상

개발자가 이야기하는 AI와 함께 한 성장 이야기

ri5 2023. 12. 10. 23:10

GPT가 나오기 전에도 AI와 관련해서 많이 살펴보고 사용해 봤었지만 초기에는 만족감보다는 불편함이 더 컸기에 기술의 발전은 아직 한참 멀었다고 생각했었고 AI에 대해 회의적으로 생각했었다. 그래서 나는 그런 경험때문에 그런지 GPT가 나왔을 때에도 구글 검색과 책을 활용해 공부하고 업무를 했나갔다. 그러던 어느날 아는 지인 개발자분이 GPT로 개발하는데 활용했던 사진을 보여주고 주변에서 올리는 사진들을 보게 되면서 호기심이 생기기 시작했고 결국 gpt를 사용해보기로 마음을 먹었다.

 

사실같은 거짓

초기 GPT를 활용하면서 다들 같은 경험을 했었겠지만 초기 GPT는 거짓말을 하지 못했다. 그래서 모르는 것이 있어도 어떻게든 지어내어 사실처럼 이야기했었고 그런 이유때문에 많은 조롱과 비판들이 있었다. 하지만 막상 직접 사용해보니 생각보다 높은 적중률과 내가 원하는 수준의 답변을 잘 해줘서 좀 놀랐었다. 나의 직종이 IT와 관련된 논리적인 질문들을 주로 던져서 그런 것일수도 있지만 몇년전에 비하면 정말 큰 발전을 해왔다고 느낄정도니 말이다. 하지만 실제 실무에 활용하기에는 답변에 대한 내용들이 깊이가 낮고 신뢰도도 낮아 직접적으로는 활용할 수 어려울 수 밖에 없었다.

 

 

 

작은 활용의 시작

개발자를 잘 모르는 사람들은 개발할 때 가장 많이 사용하는 시간은 코딩을 작성하는 것이라고 생각하겠지만 실제로 가장 많이 오래걸리는 것들은 설계, 네이밍, 코드 분석, 래퍼런스 탐색들이 많은 시간을 잡아먹는다. 나도 마찬가지로 비슷한 활동들로 가장 많은 시간과 리소스를 투자했었고 그런 부분에 있어서는 GPT는 나에게 생산성을 올리는데 큰 도움을 줬었다. 예를 들어 "OO의 숫자들을 포인트로 환산할 때 기준이 되는 변수의 이름을 지어줘"라고 입력하게 되면 직관적으로 이해할 수 있는 변수명들을 추천해주었다. 

 

다들 경험해본 적 있겠지만 어떤  것을 찾고 싶지만 무슨 키워드를 통해 검색해야될지 모를 때가 있을 것이다. 나도 마찬가지로 내가 원하는 것이 있지만 어떤 키워드로 검색하고 찾아야 하는지 모를 때가 많았다. 그때 GPT에게 내가 처한 문제 상황을 자세히 설명하고 "해당 문제 상황을 해결할 수 있는 해결책에 대해 몇가지 소개해줘"라고 입력을 하면 솔루션을 몇가지를 제시해주었고 그 중 몇가지는 신뢰할 수 없는 내용의 답변이였지만 나머지는 나에게 도움이 될 수 있는 키워드들을 알려주었다. 이런 부분에 있어서는 내게 정말 큰 도움을 주었고 사수없이도 잘 해내갈 수 있었다.

 

AI에게 대체되다...?

그렇게 AI를 활용하고 있다가 많은 소식들을 듣고 큰 기대를 갖고 있던 GPT-4가 출시되었고 나오자마자 바로 결제를 했었다. 처음에 사용했었던 후기는 기대 이상이였다. 질문에 대한 의미도 더 잘 이해했고 답변 또한 만족할 정도의 답변 수준까지 해줄 수 있는 정도로 발전했었다. 그때의 충격은 아직도 잊혀지지 않는다. 내가 `이러다가 정말 대체되는 것 아닌가?` 라고 생각할 정도로 정말 큰 발전을 이뤄냈었으니까.

 

요구사항에 맞는 코드를 작성해주는 건 물론이었고 비지니스 로직에 대한 설계도 도와주었고 내가 짠 비지니스 로직에 대해 테스트 작성과 리팩토링도 해줬었다. 이제는 AI가 내 일을 도와주는 것은 물론이고 내가 AI에게 배우고 있는 상황이였으니 기가 막힐 지경이였다.  그로인해 나는 점점 코드를 작성하는 일보다 프롬프트를 치는 시간이 늘어갔고 나는 그저 AI가 짜준 코드를 복붙하는 상황까지 갔었다. 개발자로써 자존심을 버리는 일이였지만 내가 직접 짜는 것보다는 GPT가 짜는 것이 시간들을 절약하여 데드라인을 지킬 수 있었기 때문에 나는 프로그램의 플로우만 시퀀스만 설계하여 요구사항을 입력하였고 나머지는 AI가 짜도록 하면서 업무를 이어나갔다.

 

생각의 전환

 

AI의 발전에 비하면 나의 성장은 거북이나 다름없었다. 내가 새로 알고 배우는 것(신기술 제외)들은 AI가 더 깊게 더 많이 알고 있었으니 말이다. 그럼에도 내가 꾸준히 공부했던 이유는 그 벌려진 거리라도 조금이라도 좁히기 위해서 계속 공부를 나아갔었다. 그러다가 어느 날에 이전에 작성했던 프롬프트를 잠깐 봤었는데 GPT를 활용하면서 내가 단순히 GPT에 의존하여 개발하는 것이 아니라 내가 원하는 방향으로 가도록 유도하고 있었고 GPT가 답변해주는 내용들과 작성되었던 코드들을 정확히 이해하고 내가 원하는 방향으로 설계하도록 질문하고 있던 것을 볼 수 있었다.

 

질문 했던 기록

 

그래서 나는 AI를 단순히 도구에서 나아가 같이 일하는 동료 개발자와 함께 페어 프로그래밍(두명이서 같이 프로그래밍을 같이 하는 행위)을 한다는 생각으로 개발하면서 점점 개발 속도도 빨라지게 되었고 코드 품질 자체도 점점 좋아졌다. 그렇게 어느정도 성장하여 주니어의 티를 벗어갈 때 쯤 개발하면 할수록 AI의 단점이 점점 내 발목을 붙잡기 시작했다. 그때 내가 느낀 AI의 단점은 아래와 같다.

AI의 단점

  • 질높은 답변을 받기 위해서는 필요 이상의 자세한 질문을 필요로 함
  • 필요한 부분 이상의 답변을 해줄 때가 많음.
    (예시: CSV 파일을 읽어서 처리하는 코드를 짜줘, AI: 백엔드 프레임워크 설정 방법 -> CSV파일 예시 -> 라이브 러리 설정 -> 코드 작성)
  • 답변을 기다리는 시간이 은근 많이 소요됨.
  • AI의 답변을 검색을 통해 다시 한번 검증해야되서 2번 일하게 수고가 들게 됨
  • 메시지를 주고 받다보면 이전에 있던 내용들을 잊어버리면서 다시 입력해서 상기시켜줘야 함

이런 단점들이 오히려 개발하는데에 발목을 붙잡으면서 GPT를 사용하는 시간과 횟수가 점점 줄어들고 구글의 검색엔진을 좀 더 활용하게 되면서 AI 파트너와의 협업은 멀어지게 되었다.

 

AI 파트너와의 새로운 파트너십

 

회사에서 사용하고 있는 기술 스택 특성상 코드를 아무리 빨리 작성하고 설계를 잘 하더라도 작성해야되는 코드 양이 다른 기술스택보다 많기 때문에 내가 낼 수 있는 아웃풋의 양이 한정되어 있었다. 그러다가 이전에 알고 있었지만 개발자의 자존심때문에 접어두었던 코파일럿이라는 AI 툴을 다시 살펴보게 되었다. 코파일럿에 대해 간단하게 설명하자면 개발자가 작성하고자 하는 모듈의 이름을 정의하거나 설명하면 IDE(코드를 작성하는데 도움을 주는 툴)내부에서 자동으로 코드를 작성해주는 툴이였다. 

 

내가 지금까지 GPT는 쓰면서 코파일럿을 쓰지 않았던 이유는 개발자가 네이밍, 주석, 코드 앞부분만 작성하기만 하면 코파일럿이 알아서 코드를 작성해주기 때문에 개발자의 존재 의미가 점점 줄어들게 되고 개발자는 프로그래밍 언어에 대한 이해도는 점점 떨어질 것이라고 생각했기 때문이다. 그래서 사용을 계속 미루고 있었지만 그때 나의 상황은 혼자서 두명의 클라이언트의 개발자의 퍼포먼스의 맞춰 개발하는 것은 물론이고 퇴사한 PM의 역활을 어느정도 분담하게 되면서 점점 늘어나는 업무량에 지치기 시작했다. 그래서 결국 개발자로써 자존심을 버리고 코파일럿을 사용하기로 결심했었다.

 

놀라운 코파일럿의 기능

 

그렇게 새로운 AI툴과 파트너십을 가진 개발 퍼포먼스는 놀라울 정도로 빨라졌었다. 코파일럿이 내가 의도한 코드들을 빠르게 이해하고 제시해줬기 때문에 전체적인 플로우만 설계 후 네이밍만 잘 정의하여 코드를 짜면 비지니스 로직 개발은 빠르게 쳐낼 수 있었다. 그렇게 시간을 아끼게 된 나는 이전에 시간이 부족해 하지 못했던 문서화, 리팩토링, 프로세스 정비 등의 시간들을 투자할 수 있게 되면서 프로덕트 개발과 함께 쌓였던 기술부채들도 같이 갚아나갈 수 있었다. 하지만 코파일럿 또한 GPT와 같이 완벽하지는 않았기 때문에 아래와 같은 문제들을 가끔 일으키고는 했다.

 

코파일럿의 문제점 

  • 가끔씩 생각했던 것과 다른 코드를 작성할 때가 있어서 GPT와 같이 자세한 설명을 작성해야되는 주석을 작성하는 것을 필요로 했다.
  • 복잡한 비지니스 로직같은 경우는 직접 치는 것이 더 빠르기 때문에 활용하지 않는 경우가 종종 발생했다.
  • 코파일럿을 필요로 하지 않을때도 계속 코드나 글들을 지속적으로 노출시켜주면서 개발 피로도를 높였다.
  • 래퍼런스가 많지 않은 라이브러리나 프로그래밍 언어에 대해 이해도가 부족하여 deprecated된 메서드나 이제는 사용하지 않는 패턴들을 추천해주는 경우가 있다.

현재의 AI의 활용과 미래에 대한 내 생각

 

그동안 노션 AI, GPT 플러그인, Jetbrain Assistant, 바드 등 많은 ai 툴을 활용해서 사용해보았지만  내가 만족을 느낄만한 정도의 도움을 받지는 못했었다. 왜 그런지 생각해보면 자동으로 생성되는 속도와 정확도가 내가 찾는 속도와 정확도보다 높지 않아서 잘 활용하지 않았던 것 같다. AI의 시장은 빠르게 발전하고 있지만 그만큼 사람들이 원하는 수준도 많이 올라왔다는 생각이 든다. 이전에는 질문에 대한 답변을 해주고 도와주는 것에 만족했다면 지금은 전문가 수준 이상의 도움을 받기 원하고 사람보다 더 동작 해주길 원하며 필요한 부분만 해주길 원하니 말이다.

 

샘 올트먼이 인터뷰에 이야기했듯이 AI로 인해 세상은 새로운 변화를 맞이하고 있다. 변화의 시점의 한가운데에 있는 우리는 어떤 마음가짐을 가지고 어떤 행동을 해야할까? 개인적으로 나는 이런 발전을 받아들이고 도움이 된다면 적극적으로 활용해야 된다고 생각한다. 왜냐하면 우리가 AI의 발전을 반대하고 무시하며 사용하지 않더라도 AI는 계속 발전할 것이고 멈추지 않을 것이다. 많은 곳에 다양한 형태로 우리 일상에 자리 잡을 것이라는 생각이 든다. 그렇게 되면 부모님 세대와 우리 세대가 디지털 격차가 벌어지는 것처럼 AI를 활용하는 사람과 그렇지 않은 사람에게도 격차가 생길 것이고 그 정보 격차로 인해 불이익을 받을 수도 있을 것이다. 그렇다고 모든 영역의 AI 서비스와 도구들을 사용하고 찾아보는 것보다는 현재 자신과 관련있는 분야나 영역의 AI서비스나 툴들을 살펴보고 자신에게 도움이 될 것 같다라고 느끼는 것들을 하나씩 사용해보는 것을 추천한다. 그러다보면 어느순간 자신이 필요한 상황에 적절하게 도구들을 활용하게 될 것이다.