들어가며

Chat GPT는 2022년 12월에 OpenAI에서 출시된 이후 지금까지 꾸준히 핫한 키워드인 것 같다.

다들 알겠지만 Chat GPT에 대해 간단히 설명하면 아래와 같다.
(GPT에게 "너에 대해 설명해 줘"라고 물어봐서 얻은 답변)

저는 ChatGPT라고 하며, 인공지능 기술인 GPT-3.5 모델을 기반으로 한 대화형 챗봇입니다. 사람들이 자연어로 질문하면 가능한한 정확하고 유용한 답변을 제공하는 것이 제 목적입니다. 이를 위해 저는 최신 정보와 데이터를 학습하여 사람들에게 도움을 드리고 있습니다. 제가 가진 지식은 2021년 이전부터 2021년까지의 데이터를 바탕으로 학습되었지만, 저는 지속적으로 학습을 하고 있기 때문에, 미래에는 2022년 이후의 데이터도 포함될 수 있습니다.

 

그리고 유료버전은 GPT 4.0을 기반으로 한다고 한다. 좀 더 자세한 내용은 인간지능으로 작성된 나무위키 <Chat GPT> 를 참조하면 좋을 것 같다.


서론

먼저, 이 글은 다양한 Chat GPT를 활용법을 설명하는 글이 아니다.

본인은 아직 구글링이 익숙한 평범한 개발자이고 GPT로는 초기에 단순한 호기심으로 몇 개 질문해 본 게 전부인 사람이다. 

업무에서 Chat GPT를 사용해 보고 인상 깊은 점들이 몇 가지 있어 그 경험과 생각을 공유해보고자 한다.


본론

1. 발단

최근 ktLint를 이용한 코딩 컨벤션을 프로젝트에 적용하는 작업(https://j-louis.tistory.com/14)을 진행중 구글링에 한계를 느꼈다.  

Ktlinst 플러그인에 대한 개념과 이를 활용해서 컨벤션을 적용한 예시와 방법은 알 수 있었지만, 대부분 매우 간단한 튜토리얼 정도 였고 서비스에 적용하기엔 약간 부족했다. 그리고 대부분 영어로 된 많은 정보들을 계속 보다 보니 조금씩 헷갈리게 하더라. (ㅠ.ㅠ)

좀 더 상세한 활용, 그리고 서비스에 어떻게 적용하는 게 좋을지 고민해다가 Chat GPT한테 물어보기로 했다.

GPT! 정답을 알려줘!


2. 전개

처음 질문은 이렇게 시작했다.

그러니 GPT는 ci 설정파일 생성법 & ktlintCheck 적용까지 상세하게 설명해 주더라. 친절했다..! 

이 내용을 바탕으로 build 시점에 컨벤션 체크 방식으로 작업을 하였지만, 아래와 같은 이유로 다른 방식을 고민하게 되었다.


Push 이전에 체크 할 수 있는 게 있는지 다시 물어봤다. 

 

(지금 생각해보면 pre-push 관련 내용을 설명해 줘야 되지 않았나 싶긴 한데...) pre-commit 관련 내용을 설명해 주었다.
pre-push도 있는지 물어보았고 관련 예제 스크립트 알아서 작성해 주었다.

 

스크립트 내용도 내가 원하는 방식으로 수정도 요청할 수 있었기 때문에 문법에 대한 스트레스를 줄일 수 있었다.

        1. 특정 브랜치가 아니라 모든 브랜치에서 검사할 수 있게 스크립트 수정 요청.

        2. ktlint를 시스템 설치해서 사용하는 게 아니라 gradle 라이브러리 적용한 명령어로 수정 요청.

 

하지만 이 방식도 도중에 아래의 이유로 다른 방법을 생각해야 했다.


결국 commit 시점에 컨벤션 체크 하는 방식을 선택했고 다시 한번 gpt한테 도움을 요청했다.

스크립트 작성 & 스크립트 실행 권한 수정까지 섬세하게 알려준다는 느낌을 받았다.
물론 ./gradlew addKtlintCheckGitPreCommitHook    명령어를 이용해서 기본 스크립트를 이용할 수 있었지만 GPT가 작성해 준 script가 훨씬 도움이 되었다.(프로젝트 환경에 맞게 여러 번 수정해서 물어봐야 하는 게 약간 귀찮긴 했음)

 

 

그리고 작업 중 궁금한 사항들에 대해서도 답을 얻을 수 있어서 매우 편리했다. (다른 레퍼런스를 활용해서 했었다면 귀차니즘 때문에 지나쳤을 것 같은 질문들이다.)


3. 위기

중간에 삽질도 많이 했지만 결국 원하는 작업물을 얻을 수 있었다. 

로컬 환경에서 테스트를 진행 후 팀에 공유할 예정이었다.

하지만 곧 문제가 발생하더라. ㅎ_ㅎ

프로젝트 빌드 과정전체 파일을 대상으로 컨벤션 체크 task가 수행되었고 빌드는 실패가 되었다.

 

생각했던 프로세스에는 없던 과정이었다.

 

팀 내 컨벤션 체크를 강제화 하기 위해 해당 플러그인을 적용했던 것이었지만 우선 작업한 소스에 대해서만 컨벤션 강제성을 두고 싶었다.

 

그래서 다시 한번 gpt한테 도움을 요청했다.


4. 절정 - 결말

GPT는 여러 가지 해결책을 제시해 주었다.

그래서 희망을 갖고 시도를 했지만 프로젝트에 적용되지 않았고 오류만 발생했다. ㅠ.ㅠ

 

한 이틀 동안 비슷한 질문과 답변을 주고받았지만 해결책은 찾지 못했다.

(좀 더 시간을 투자했다면 해결책을 찾을 수 있을지 모른다. 하지만 개인 프로젝트가 아니었고 회사 업무였기 때문에 적정선에서 타협했다 ㅠ)  

 

결국 전체 소스에 대해 컨벤션 리펙토링을 진행한 뒤에 ktlint plugin과 pre-commit 작업을 추가함으로써 마무리하는 것으로 했다.

(컨벤션 리펙토링 때문에 생각지 못한 시간을 쏟았지만 전체적으로 컨벤션을 통일하고 나니 기분은 깔끔해서 좋았다.)


결론

업무를 처리하는 과정에 Chat GPT를 사용해 보고 느낀 점을 나열해 봤다.


  1. 생각보다 많이 친절하다.
    단순히 스크립트 작성해 달라고만 했지만 작성 후 간단한 설명까지도 해준다.
    쉽게 놓칠 수 있는 주의사항까지도 알려준다.

  2. 구글링을 해도 잘 나오지 않는 마이너 한 개념, 지식, 적용방법이 궁금할 때 활용하면 좋을 것 같다고 생각했다.
  3. 최대한 상세하게 배경을 설명하면서 질문을 해야 한다.
    배경지식이 1도 없는 기계와 대화하기 위해선 상세한 배경을 설명해 주는 게 필요하다고 느꼈다.
    (여러 번의 질문 & 답변 을 하다 보니 약간 면접과도 비슷하다고 느꼈다. 말 잘하는 ai 부럽다…)

  4. 나는 분명 컴퓨터와 대화를 주고받았지만 이런 경험이 쌓이면 협업에서도 많은 도움이 될 것 같다고 생각했다.
  5. 너무나 즉답이 나오기 때문에 휘발성이 좀 강하다. 의식적으로 기억하려는 노력이 많이 필요할 것 같다.

재밌었다.

삽질도 하긴 했지만 매우 유용한 도구라는 생각이 들었다. 

함께 일을 하는 데 있어서 소프트 스킬이 중요하다고 느끼고 있는 요즘, Chat GPT를 사용하면서 협업 그리고 대화에 대한 스킬을 기를 수 있지 않을까라는 생각도 들었다.

 

아직은 본능적으로 익숙한 구글링을 먼저 하고 있지만 점점 사용할 일이 많아질 같다.

 

곧, GPT를 이용한 업무처리가 자연스러워질 것 같은 느낌적인 느낌이 든다!

 

+ Recent posts