요즘IT
위시켓
최근 검색어
전체 삭제
최근 검색어가 없습니다.

최근 ChatGPT가 여러 분야에서 화제가 되고 있습니다. 벌써 많은 사람들이 ChatGPT를 이용하여 아이디어를 얻고, 보고서를 만들고, 번거로운 업무를 자동화하는 등 여러 가지 시도가 이어지고 있는데요. 이와 관련해서 이번 글에서는 개발자 관점에서 ChatGPT를 소프트웨어 개발에 어떻게 활용할 수 있는지 알아보고, ChatGPT의 한계에 대해서도 간단히 정리해 보았습니다.

회원가입을 하면 원하는 문장을
저장할 수 있어요!

다음

회원가입을 하면
성장에 도움이 되는 콘텐츠를
스크랩할 수 있어요!

확인

개발

개발자는 ChatGPT 이렇게 활용하면 좋습니다

년차,
어떤 스킬
,
어떤 직무
독자들이 봤을까요?
어떤 독자들이 봤는지 궁금하다면?
로그인

 

최근 ChatGPT가 여러 분야에서 화제가 되고 있습니다. 벌써 많은 사람들이 ChatGPT를 이용하여 아이디어를 얻고, 보고서를 만들고, 번거로운 업무를 자동화하는 등 여러 가지 시도가 이어지고 있는데요. 이와 관련해서 이번 글에서는 개발자 관점에서 ChatGPT를 소프트웨어 개발에 어떻게 활용할 수 있는지 알아보고, ChatGPT의 한계에 대해서도 간단히 정리해 보았습니다.

 

ChatGPT 소개 및 사용 방법

1) ChatGPT 소개

ChatGPT는 Open AI에서 개발한 대규모 언어 모델입니다. 자연어 처리 분야에서 다루는 신경망의 일종인 트랜스포머 아키텍처(Transformer Architecture)를 기반으로 하고 있으며, 약 1,750억 개의 매개 변수를 통해 사용자의 질의를 이해하고, 응답할 수 있는 기능을 제공하는 인공지능 서비스입니다. 

 

개발자 ChatGPT
(출처: ChatGPT)

 

2) ChatGPT 사용 방법

ChatGPT를 사용하기 위해서는 먼저 Open AI 계정을 생성해야 합니다. 계정을 생성하면 곧바로 채팅 인터페이스를 통해 질문이나 명령을 입력할 수 있습니다. 이 밖에도 ChatGPT API를 이용하여 텍스트로 요청과 응답을 받을 수도 있는데요. 기본적으로 채팅 화면을 통해 ChatGPT를 이용하는 것은 무료이지만, ChatGPT API를 사용하려면 일정 금액을 부담해야 합니다. 

 

 

소프트웨어 개발에서의 ChatGPT 활용 방법

1) 코드 분석

ChatGPT는 소프트웨어 개발 과정 중 다양한 작업에 활용할 수 있습니다. 특히 복잡한 코드를 분석하고 파악할 때 유용한데요. 특정 언어에 익숙하지 않거나, 어떤 클래스나 함수의 기능을 빠르게 파악해야 하는 경우에 아래 그림처럼 ChatGPT를 이용해 볼 수 있습니다.

 

개발자 ChatGPT
(출처: ChatGPT)

 

코드는 간단하게 Ctrl + C, Ctrl + V로 붙여 넣을 수 있으며, 질문을 작성할 때는 Shift + Enter를 눌러서 줄 바꿈을 할 수 있습니다. 아래 그림은 위 질문에 대한 ChatGPT의 답변입니다.

 

개발자 ChatGPT
(출처: ChatGPT)

 

ChatGPT는 해당 코드가 DistnaceMetric 인터페이스를 구현한 클래스(Class)로서, 두 점 사이의 거리를 유클리디안(Euclidean) 공식을 이용하여 계산하는 메소드를 포함하고 있다고 설명했습니다. 그리고 메소드의 동작에 대해서도 자세히 풀어 설명하는데요. 이런 식으로 ChatGPT에 질문하면 코드 분석을 빠르게 진행할 수 있습니다. 

 

2) 코드 작성

ChatGPT는 코드를 작성할 때도 유용하게 활용할 수 있습니다. 이전에 살펴본 깃허브 코파일럿처럼 (참고: GitHub Copilot 리뷰) 구현하고자 하는 기능을 알려주면 그에 맞는 코드를 제시해 줍니다. 또한 코드 일부를 제시한 후, 나머지 부분을 완성하는 코드를 요청할 수도 있습니다. 

 

개발자 ChatGPT
(출처: ChatGPT)

 

위 그림은 두 점 사이의 거리를 맨해튼 공식으로 계산하는 메소드(함수)를 Java 코드로 구현하도록 한 예시입니다. 추가로 ChatGPT에서는 프로그래밍 언어 간 변환도 요청할 수 있는데요. 아래 그림처럼 자바 코드를 파이썬 코드로 전환할 수 있습니다. 

 

개발자 ChatGPT
(출처: ChatGPT)

 

3) 버그 및 에러 찾기

소프트웨어 개발 과정에서 시간을 많이 잡아먹는 작업 중 하나가 버그나 에러를 찾는 일인데요. ChatGPT를 이용하면 이런 부분도 빠르게 찾아볼 수 있습니다. 특히 코드를 작성할 때, 미처 인지하지 못한 실수를 찾는데 꽤 유용한 도움을 주기도 합니다.

 

개발자 ChatGPT
(출처: ChatGPT)

 

위 코드는 기존 파일을 복사해서 Prefix로 날짜를 붙여서 새로운 파일을 만드는 자바스크립트 함수입니다. ChatGPT에 이 코드에 버그가 있는지 질문해 봤습니다. 이에 대한 답변으로 null이나 undefined에 대한 타입 체크가 필요하다는 점, 날짜 prefix의 중복 가능성 있다는 점, Date.now() 만 이용했을 때 파일명이 중복될 수 있다는 점을 알려줬습니다.

 

개발자 ChatGPT
(출처: ChatGPT)

 

추가로 다른 버그가 있을 수 있냐는 질문도 했는데요. 이에 대해 ChatGPT는 또 다른 발생 가능한 버그에 대해 설명했습니다. 참고로 ChatGPT는 한국어도 지원하고 있습니다. 다만 영어로 질문할 때 대체로 좀 더 자세한 결과를 얻을 수 있으며, 경우에 따라서는 한국어로 질문했는데 영어로 답하기도 했습니다.

 

4) 테스트 케이스 작성

개인적으로 ChatGPT를 활용하면서 편리하다고 느꼈던 부분 중 하나가 바로 테스트 케이스 작성입니다. 특히 단위 테스트에서 반복적으로 작업했던 부분을 최소화할 수 있고, 미처 생각하지 못했던 테스트 케이스에 대한 힌트를 얻을 수 있다는 점이 장점입니다. 테스트 주도 개발 원칙을 위배하지 않는 선에서 적절히 ChatGPT를 활용하면, 테스트 케이스 작성에 들어가는 공수를 상당 부분 줄일 수 있습니다.

 

개발자 ChatGPT
(출처: ChatGPT)

 

위 그림처럼 ChatGPT에 특정 메소드나 함수에 대한 테스트 케이스 작성을 요청할 수 있습니다. 아울러 원하는 테스트 케이스 명명 규칙(Test Case Convention)을 지정해주면, 그에 맞게 테스트 케이스를 작성해 주기도 합니다.

 

5) 개발 문서 작성

개발자는 소프트웨어 개발 과정에서 문서를 작성할 일이 많습니다. 하지만 개발 문서를 간결하게 작성하는 일은 손이 꽤 많이 갑니다. 이때 ChatGPT를 활용하면 개발 문서 작성 시간도 단축시킬 수 있고, ChatGPT API를 통해 문서 작업을 자동화할 수도 있습니다. (아래 그림 참고)

개발자 ChatGPT
개발자 ChatGPT
(출처: ChatGPT)

 

문서 작업 외에 코드 리팩토링(Refactoring)에서도 ChatGPT를 활용할 수 있습니다. 마치 페어 프로그래밍(Pair Programming)을 하는 것처럼 ChatGPT를 이용하여 기존 코드를 조금 더 가독성 있고, 유지 보수 가능한 코드로 개선할 수 있는 것이죠. 이처럼 ChatGPT는 소프트웨어 개발 과정 중 많은 부분에 활용할 수 있어, 개발자의 개발 시간을 단축시키고 버그 발생 가능성을 줄여주는 역할을 할 수 있습니다. 

 

 

ChatGPT 활용의 한계점

1) 신뢰성 및 보안 문제

앞서 살펴봤듯이 소프트웨어 개발에서 ChatGPT를 활용할 수 있는 방법은 많습니다. 다만, OpenAI에서는 ChatGPT가 언제든 잘못된 정보를 생성할 수 있다고 안내하고 있습니다. 즉, 소프트웨어 개발 시에 ChatGPT가 제시한 내용을 전적으로 신뢰할 수 없다는 뜻입니다.

 

따라서 ChatGPT를 소프트웨어 개발에 활용하려면, ChatGPT가 제시한 코드나 문서를 반드시 재검토해야 합니다. 즉, 개발자가 직접 ChatGPT가 제시한 코드나 문서의 적정성 여부를 판단하여, 소프트웨어 개발에 적용해야 한다는 것입니다. 아울러 ChatGPT가 제공하는 코드나 문서는 비슷한 질문을 하는 다른 사람에게도 동일하게 제시될 수 있으므로 보안 취약성에도 주의해야 합니다.

 

2) 저작권 문제

깃허브 코파일럿과 마찬가지로 ChatGPT에서 제공한 코드에는 저작권 문제가 있을 수 있습니다. ChatGPT는 기존에 작성된 텍스트 데이터를 기반으로 학습하기 때문에, 자칫 저작권을 침해할 수 있는 코드나 문장을 제시할 수 있다는 점을 염두에 두어야 합니다.

 

 

AI와 소프트웨어 개발의 미래

지금까지 소프트웨어 개발에서 ChatGPT 활용 방법과 한계점에 대해 살펴보았습니다. 이번에 ChatGPT를 직접 활용해 보면서 앞으로 인공지능이 소프트웨어 개발에서도 많은 변화를 가져올 것이 분명하다는 생각이 들었습니다. 하지만 이러한 인공지능 서비스는 여러 가지 신뢰성 및 저작권 문제를 가지고 있을 뿐만 아니라, 아직은 소프트웨어 개발 과정 전반을 인공지능만으로 수행하긴 어렵습니다. 그래서 가까운 미래에 인공지능이 개발자를 완전히 대체하긴 어려울 것입니다.

 

다만 인공지능이 점차 발전할수록, 기존에 개발자가 하던 역할을 수행할 수 있을 것입니다. 따라서 개발자는 직접 코드를 분석하고 작성하던 역할에서 벗어나, 인공지능을 감독하고 소프트웨어 개발 및 배포 과정에서 발생할 수 있는 여러 리스크를 관리하는 역할로 바뀌지 않을지 예상해 봅니다.

 

요즘IT의 모든 콘텐츠는 저작권법의 보호를 받는 바, 무단 전재와 복사, 배포 등을 금합니다.

좋아요

댓글

공유

공유

댓글 1
Developer, Blogger
224
명 알림 받는 중

작가 홈

Developer, Blogger
224
명 알림 받는 중
곰씨네 IT를 비롯하여 다양한 블로그를 운영 중인 개발자입니다. 2010년부터 LG CNS에서 소프트웨어 엔지니어로 근무하며, LG전자 물류 시스템 구축, 스마트 TV OS 개발, LG화학 모바일 프로젝트 등에 참여했습니다. 2017년 미국으로 이주해 프리랜서 개발자로 전향했으며, 현재는 AI와 머신러닝 분야로의 경력 확장을 위해 미국 매사추세츠 주립대에서 컴퓨터 공학 석사 과정을 병행하고 있습니다.

운영 중인 블로그
곰씨네 IT: https://gomcine.tistory.com
곰씨네USA: https://gomcineusa.tistory.com
코리얼티USA: https://korealtyusa.com

저서
개발자가 영어도 잘해야 하나요? (English for Developer)
http://gilbut.co/c/24026188iO

좋아요

댓글

스크랩

공유

공유

지금 회원가입하고,
요즘IT가 PICK한 뉴스레터를 받아보세요!

회원가입하기
요즘IT의 멤버가 되어주세요! 요즘IT의 멤버가 되어주세요!
요즘IT의 멤버가 되어주세요!
모든 콘텐츠를 편하게 보고 스크랩해요.
모든 콘텐츠를 편하게 보고 스크랩 하기
매주 PICK한 콘텐츠를 뉴스레터로 받아요.
매주 PICK한 콘텐츠를 뉴스레터로 받기
로그인하고 무료로 사용하기