우리의 신 GPT를 영접하는 방법

320x100

참고)

원래 chatGPT에게 한글보다 영어로 물어봤을 때 더 정확한 답변을 해준다고 합니다. 그러나 저는 ‘간단한 질문을 할 때’나 ‘영어를 한글로 해석했을 때와 비슷한 말투’로 이야기했을 때는 응답이 비슷한 것 같아 한글로 물어봤습니다.

코드 분석

간단하게 다음과 같은 코드를 chatGPT에게 분석을 요구한다고 가정해 봅시다.

그럼 chatGPT는 다음과 같은 답변을 줍니다.

아주 자세하게 설명해줬고, 실수로 클래스명 첫글자 대문자 안 한것도 잡아줬네요.

 

이쯤되면 궁금한 내용이 하나 더 생깁니다.

그것은 바로 ‘실무단의 복잡한 코드를 해석할 수 있는가?’

 

바로 테스트해보기 위해서 최근에 아주 핫한 내용인 ‘트위터 검색 알고리즘 오픈소스’를 chatGPT에게 해석을 맡겨봅시다.

저는 다음 저장소에 있는 소스 코드에 대한 해석을 요청했어요.

the-algorithm/DelegatingEarlyTerminationCollector.java at main · twitter/the-algorithm

 

GitHub - twitter/the-algorithm: Source code for Twitter's Recommendation Algorithm

Source code for Twitter's Recommendation Algorithm - GitHub - twitter/the-algorithm: Source code for Twitter's Recommendation Algorithm

github.com

질문은 다음과 같이 했고,

소스 코드의 웹 사이트 링크를 걸어두었으니, 밑에 내용은 조금 잘랐습니다.

 

어쨌든 chatGPT는 다음과 같은 답변을 줍니다.

이정도면 꽤 괜찮게 설명을 해 준 느낌이죠.

코드 생성

널리 알려진 알고리즘이나 자료구조들에 대해 바로 만들어줍니다.

 

다음과 같은 질문을 해볼게요.

그럼 다음과 같은 답을 줍니다.

마지막에 설명하는 부분에 있어 chatGPT상에서 글자가 좀 잘린 것 같기는 한데, 코드를 짜주길 바랬던 거지 설명은 필요 없으니 넘어가고, 코드 부분에는 주석까지 아주 멋있게 달아줬습니다.

오류 확인

코드를 작성할 때 제 코드에 문제가 없을지 확인할 수 있습니다. 아까 생성한 bubble 정렬에 대해 오류를 확인할 예정이며, 일부러 ‘이 부분도 잡을 수 있나?’ 싶은 부분을 수정했습니다.

버블 정렬에서 i 변수를 0부터 시작해야 하는데, 7부터 시작하게 하고,

j 변수는 전체 길이에서 -1만 해야 하는데 -9를 해줍시다. 그다음에 chatGPT한테 오류를 잡아달라 해보죠.

chatGPT의 응답은 다음과 같습니다.

멋지게 오류를 잡아줬죠.

리펙토링

무려 리펙토링까지 가능합니다.

chatGPT가 저에게 준 코드에 대해서 리펙토링을 부탁해 볼게요.

chtaGPT의 응답은 이렇습니다.

비록 코드 줄 수는 늘어났어도, 훨씬 가독성이 좋아진 걸 볼 수 있습니다.

테스트

테스트 코드 또한 만들 수 있습니다. 바로 보시죠.

이정도면 훌륭하죠.

 

문서

이것 역시 중간에 잘리기는 했는데, 나머지는 위 내용을 토대로 알아서 작성할 수 있죠.

정리

chatGPT를 활용한 방법은 크게 코드 분석, 코드 생성, 오류 확인, 리팩토링, 테스트, 문서화가 있었죠.

저도 사실 처음에는 chatGPT에 대한 인식이 안좋았어요. ‘개발자가 직접 코드를 짜야지 기계한테 부탁하고 있으면 그게 개발자인가?’라는 생각을 하던 사람이었는데, 주변에서 하도 chatGPT, chatGPT 말들을 많이 했고, 개발자가 자기 취향에만 따라 핫한 신기술들을 무조건 배척하고 기존 기술들만 고집하는 것은 그다지 좋은 습관은 아닌 것 같기도 하고, 사실 따지고 보면 저 또한 이미 모르는 내용들은 여러 커뮤니티나 stack overflow에 검색해가며 코드를 복사 붙여넣기 한 적도 많으면서 chatGPT에만 이상한 신념을 내세우는 것 같아서 저도 직접 한 번 활용해 보았고, 의지하진 않더라도 활용하는 선에서는 충분히 괜찮다고 생각했습니다.

물론 chatGPT가 실제 실무단에서 모든 소스를 완벽하게 활용할 수 있거나, 신규 프로젝트를 만들고자 할 때 처음부터 끝까지 해 줄 수 는 없겠죠. (만약 그게 되면 개발자한테도 큰일이긴 합니다.)

다만, 활용할 여지는 충분히 많다고 생각하며, 단순히 chatGPT가 만들어 주는 내용으로 끝내는 것이 아니라, 스스로 본인의 환경에 맞게 수정하는 작업까지 진행을 한다면 직접 작성하기 귀찮은 코드들을 작성하는 시간을 줄여주고 안정적인 코드를 얻을 수 있을 것 같다는 생각을 했습니다.

 

320x100