생성 AI TIP

AI는 우리 일자리를 어떻게 바꿀까 - 개발 업무

Neehoot 2023. 4. 6.

오늘은 AI가 바꿀 일자리의 변화 두 번째 개발 업무에 대해 이야기해 보겠습니다.

우선 제가 현직 개발 업무를 하고 있는 상황에서 ChatGPT는 정말 미친 퍼포먼스를 보여주는 툴입니다. 따라서 AI의 성장으로 인해 일자리에 위협을 느끼고 있을 정도인데요. 구체적으로 어떤 방식으로 개발 업무의 변화를 가져오는지 말씀드리겠습니다. 

AI가 그려준 프로그래머. 외계어를 만든다

에러 찾기

개발 업무는 설계, 개발, 테스트, 운영의 순서로 진행이 됩니다.(TestDriven이 아닌 경우입니다.) 각 단계를 진행하는 과정에서 많은 수의 오류를 발견합니다. 개발한 프로그램을 테스트하는 과정에서 오류가 발생하기도 하고, 실제 운영 상황에서 오류가 발생하기도 합니다. ChatGPT와 같은 AI는 이러한 오류를 찾는데 매우 큰 도움을 줍니다. 기존에는 일반적으로 구글을 검색해서 오류를 찾아보고 시도하는 과정이 있었다면, 지금은 ChatGPT에 오류 구문을 복사해서 물어보는 것 만으로 해결할 수 있는 문제가 굉장히 많습니다. 

오류의 원인부터 해결방안까지 제시하기 때문에 탐색에 들어가는 시간이 매우 줄어든다.

프로그래머는 문제를 해결하는 과정에서 많은 시간을 쏟게 되는데 이러한 과정을 최소화하는데 AI가 적극적으로 활용됩니다. 따라서 업무를 효율적으로 할 수 있고, 시간적인 생산성이 매우 올라가는 것을 볼 수 있습니다.

 

직접적인 소스코드 생성

ChatGPT는 직접 소스코드를 생성하기도 합니다. 요구사항을 주고 소스코드를 생성한다던지, 기존 소스코드의 문제점을 지적하고 올바른 프로그램으로 수정한다던지 하는 일을 요청할 수 있지요. 이를 직접적으로 가져가서 사용하기는 어려울 수 있습니다. 특히 복잡한 로직이 적용된 경우 이를 활용하는 게 오히려 방해가 되기도 합니다. 하지만 초기 세팅 혹은 기존 소스코드의 문제를 발견하고 수정하거나, 특정 기능을 수행하는 함수를 생성할 때 매우 유용하게 사용할 수 있습니다. 그렇다면 조금 더 자세하게 알아볼까요?

 

# 요구사항에 따른 생성

프로그래머로써 처음에 가장 놀랐던 것은 내 요구사항에 맞게 화면을 만들어준다는 점이었습니다. 따라서 소스코드를 직접 생산하는데 필요한 몇가지 팁을 활용하여 현업에서 사용하고 있는데요. 이러한 생성 AI의 장점을 활용할 수 있는 프롬프트 작성 팁을 전달드리겠습니다.

 

1. 구체적인 역할을 명시

가장 먼저 해야할 일은 구체적인 역할에 대해 명시하는 것입니다. 가령 프런트엔드 개발 업무를 하고 있다면 ChatGPT에게 

 

너는 이제 프론트엔드 Vue.js 개발자야.

이렇게 역할을 전달하고 작업을 한다면 더 명확하게 코드를 생산할 수 있습니다. 이때 Role(프런트엔드 개발자)와 도메인을 같이 전달하면 소스코드 생성 시 이를 고려하여 생산하므로 가장 먼저 역할을 부여하는 게 가장 좋습니다.

???

2. 요구사항을 명확하게 전달

역할을 부여했다면 요구사항을 명확하게 전달해야 합니다. 가장 중요한 기술스텍을 먼저 언급하고, 사용하는 프레임워크, 라이브러리를 말해줌으로 AI가 어떤 소스코드를 생성할지 알 수 있도록 합니다. 

기술적인 요구사항을 명시했다면 생성해야하는 프로세스와 화면의 모습을 묘사합니다. 이때 최대한 자세하게 작성하는 것이 AI가 소스를 생산하는데 좋습니다. 요구사항이 명확하지 않다면 결과물 또한 명확하지 않다는 것을 반드시 기억하세요.

 

3. 소스코드 셈플 전달

요구사항만으로는 정확한 소스코드 생산이 어려울 수 있습니다. 잡혀있는 틀의 형식이 어떤지, 표준화된 코드의 형태나 흐름이 어떤지 인식시키면 정확한 결과물을 얻는데 도움이 됩니다. 소스코드 샘플을 전달하면서 2번 요구사항에 대해 다시 한번 언급하는 것이 좋습니다. 이를 통해 해당 형식을 맞춰서 요구사항을 소스에 녹이는 작업을 합니다. 그렇다면 더 정확한 결과를 얻을 수 있겠죠?

 

# 코드리뷰

AI는 기존의 best practice에 대한 학습을 통해 현재 작성중인 소스에 대해 리뷰를 할 수 있습니다. 코드리뷰에서 필요한 것은 코드의 흐름을 읽고 목적을 파악한 뒤에 이를 정확하게 구현했는지입니다. AI는 코드의 목적을 정말 빠르게 파악할 수 있고 이를 바탕으로 기존 코드의 문제점을 전달함과 동시에 새로운 소스코드를 추천하기도 합니다. 

이때 주의할 점은 AI가 모든 소스코드를 학습한 것이 아니므로 소스코드의 의도가 왜곡될 수 있다는 점입니다. 따라서 최적화된 소스코드를 제시하는 것을 바로 업무에 사용하는 것은 또 다른 오류를 초래할 수 있기 때문에 사용 전에 반드시 검토하는 과정을 거쳐야 합니다.

따라서 소스코드 자체가 순수함수로 이루어진게 아니라면 한번 더 검증하는 과정을 통해 제대로 동작하는지 확인이 필요합니다.

 

코드 분석

개발자는 항상 새로운 것을 만드는 일만 하는 것이 아닙니다. 기존의 소스를 바탕으로 개선하는 작업을 진행하기도 하지요. 운영하는 과정에서 잘못 의도를 파악하여 오류를 발생하는 경우도 종종 벌어지곤 합니다. 따라서 소스코드의 흐름을 파악하고 어떤 기능을 하는지 이해하는 것이 무엇보다 중요합니다. 하지만 레거시 소스코드를 분석하는 것은 쉽지 않은 일입니다. 10000줄이 넘어가는 소스의 흐름을 파악하고 있노라면 머리가 꼬여버리는 일이 생기기도 합니다. 

이런 소스코드 분석하는 업무에 AI는 적극 활용될 수 있습니다. 물론 현재는 AI에게 요청할 수 있는 Token의 수가 제한되기 때문에 모든 코드를 전달하는데 한계가 있지만 향후에는 업무 파악을 위한 일은 AI가 누구보다 잘할 수 있게 될 것입니다. 만약 소스코드 길이가 너무 길다면 잘 잘라서 AI에게 전달해 보세요. 업무를 더 빠르게 이해하는데 큰 도움이 될 것입니다. 그 과정에서 최적화를 통한 기능의 개선은 덤이고요.

 

마치며

지금까지 AI가 개발 업무에 미치는 영향에 대해 살펴봤습니다. 에러 찾기, 소스코드 생성, 코드 리뷰 및 분석 등 다양한 분야에서 AI가 개발자들의 업무를 효율적으로 지원해 주고 있습니다. 하지만 AI의 도움을 받을 때에도 주의사항이 있으며, 인간 개발자가 검증하는 과정이 여전히 필요하다는 점을 잊지 마세요. 앞으로 기술이 발전함에 따라 AI가 더욱 진보하게 되면 개발 업무의 많은 부분이 자동화되어 생산성이 더욱 향상될 것으로 기대됩니다. 그러나 AI의 도움을 받는 것이 아니라, 인간과 AI가 협력하여 더 나은 결과물을 만들어내는 것이 중요한 목표입니다. 이제 개발자들은 AI와 함께 더욱 빠르고 정확한 소프트웨어 개발을 향해 나아갈 수 있을 것입니다.

오늘도 긴 글 읽어주셔서 감사합니다.

 

오늘 하루도 성장하겠습니다.

댓글

💲 추천 글