Chat-GPT가 개발자를 대신할 수 있을까?

김지원·2023년 4월 6일
1

개발자 역량 쌓기

목록 보기
1/4

🤯 Chat-GPT,, 개발자는,,?

Chat GPT를 사용해보고, OpenAI API를 사용하면서 사실 개발자로서 커리어를 쌓아나가고 싶은 나로서는 위기감을 느끼지 않았다고 하면 완벽한 거짓말이다.

AI가 개발자를 대신하게 되는 날이 오는 건 아닐까.. 궁금했는데 프론트엔드 개발자 경력자 되시는 분께서는 아직!!! 우리 세대까지는 개발자는 살아남을거다 라고 말씀하셨던게 기억난다. 그럼에도 분명 개발자들에게 엄청난 파장을 가져다준 Chat GPT,, 그렇다면 앞으로의 개발자에게는 어떤 역량이 중요할까 궁금해졌다. 프로그래밍은 Chat GPT가 다 해줄 수 있는데, 그럼 개발자가 할 수 있는 무엇일까? 다시 말해 "로봇"이 아닌 "사람"이 할 수 있는 일은?

🥹 개발자는 살아남을 것이다

그러다가 미디엄(Medium)에서 한 글을 읽게 되었다. "The Robots are Coming. Is Chat-GPT Replacing you as a software engineer?" 해당 글에서 이야기 하는 바를 정리해보고, 글을 읽으며 들었던 생각을 정리해보고자 한다.

위 질문에 대한 저자의 대답은

"No. 아니다"

"하지만, 그 어느때보다 시스템 디자인을 이해하는 것이 중요해질 것이다."

저자 또한 Chat-GPT를 처음 알게 되었을 때는 몇 단계의 감정을 거쳤다고 한다. 충격->불신->분노, 그리고 이제는 Chat-GPT를 "accept" 하게 되었다.

과연 AI는 software enginnering 분야에 어떤 변화를 가져다 줄 것인가?

저자는 엔지니어들에게 개발의 속도를 높이도록 Chat-GPT를 적극적으로 권장한다. 그리고 저자가 깨달은 바는, 다음과 같다.

Chat-GPT 는 엔지니어들을 대체하지 않을 것이다.
👉🏻 대신, 더 많은 엔지니어들을 Chat-GPT가 만들어내는 코드의 "코드 리뷰어"로 바꿀 것이다.

그 이유는 바로, ✨Chat-GPT는 자기가 만들어내는 코드를 이해하는 AI가 아니기 때문✨이다. Chat-GPT는 인터넷 상에서 볼 수 있는 다른 모든 코드의 데이터를 바탕으로 가장 그럴듯한 다음 라인의 코드를 output으로 제공해준다.

하지만, "가장 그럴듯한" 것이 언제나 항상 "옳은 것"은 아니다.

예를 들어, 아래 코드를 보자.

for (int i=0; i<10; ...);

Chat-GPT가 하는 일은 인터넷에서 찾을 수 있는 비슷한 모든 코드를 수집하고 리스트업할 것이다. 그리고 그 중 top answer이 되는 i++ 를 response로 내놓는다.

위 예시에서 중요한 것은, Chat-GPT는 "counter i를 증가시켜야 함"을 이해하지 못한다는 부분이다.

💡 해당 코드를 이해하고 이게 맞는 코드야! 하고 알려주는게 아니라,

🤔 내가 인터넷을 다 뒤져보니까 이게 다음으로 와야하는 가장 그럴듯한 코드야! 하고 알려주는 것이다.

Chat-GPT는 가장 그럴듯한 i++ 를 알려줬지만, 우리가 원하는 바는 i++가 아닐 수도 있다. 2개씩 건너뛰는 반복문을 원할 수도 있다. 즉, 가장 그럴듯한 코드인 i++ 가 아니라, i+=2 가 우리에게 필요한 코드일 수도 있다는 것이다.

하지만 2씩 증가시키는 반복문보다는 1씩 증가시키는 코드, 즉 i++ 가 더 흔하기 때문에 Chat-GPT는 i+=2 보다 i++ 가 맞는 코드다, 라고 판단하는 것이다. 하지만, 상황에 따라 이 코드는 우리의 context 와는 맞지 않은 코드가 된다.

따라서, Chat-GPT의 대답이 전적으로 맞는 코드다, 라고 할 수는 없다.
WHY? Chat-GPT는 사용되는 맥락, 즉 우리 프로젝트의 Context에 따라 필요한 코드를 알려주는, 그렇게까지 "똑똑한" AI는 아니기 때문이다.

그래서, 모든 엔지니어들은 결국 시니어 엔지니어가 되는 반면, Chat-GPT는 일종의 entry-엔지니어가 되는 것이다.


Chat-GPT는 구글의 자동완성(auto-complete API)를 사용하는 것과도 같다.

더불어, Chat-GPT는 구현의 세부 사항을 더 많이 처리하게 될 것이고, 따라서 우리 엔지니어들에게는 시스템 설계를 이해할 수 있는 능력이 더 요구 될 것이다.

알다시피, 우리는 거의 뭐 StackOverflow 에서 얻는 코드들을 짜깁기해내는 개발자라고 해도 과언이 아닐 것이다.. ㅎㅎ
그리고 동일하게 StakOverflow는 Chat-GPT가 훈련하고 boilerplate code working을 하기 위한 대량의 코드 스니펫들을 가지고 있다.

하지만, Chat-GPT는 각 스타트업이 가지고 있는 시스템 디자인과 구조에 대한 맥락을 이해하고 어떤 통찰력을 생성해낼 수 있는 AI가 아니다.

이 Chat-GPT의 빈틈에서 엔지니어들이 빛을 발하게 된다.

이제, 엔지니어들은 단지 최신 기술을 아는 개발자가 아닌, 시스템 구조를 잘 파악할 줄 아는 엔지니어가 되어야 한다. 그렇게해야 우리는 살아남을 수 있다.

그 이유에 대해 더 자세히 알아보자.

📌 Chat-GPT의 세상에서 시스템 디자인을 이해하는 것은 필수다.

The main reason why software engineers won't get put out of jobs is because the questions you ask Chat-GPT dictate the quality of answers you get back from it.
소프트웨어 엔지니어가 직장에서 해고되지 않는 주된 이유는 Chat-GPT에 묻는 질문이 답변의 품질을 결정하기 때문입니다.

하지만, 만약 소프트웨어 엔지니어링을 이해하지 못한다면, Chat-GPT에게 어떤 질문을 물어봐야하는지조차 모르는 것과 똑같다.

저자가 7년 동안 Netflix와 Amazon에서 일하면서 깨달은 것은, 엔지니어들의 90%는 ✨"정답"을 아는 사람들이 아니라 "right question", 을 할 줄 아는 사람들✨이라는 것이었다.

기억하자.

The right questions will guid you to the right answers.
올바른 질문이 우리를 올바른 정답으로 안내해줄 것이다.

이것이야말로 개발자로서 우리가 가질 수 있게 되는 무기가 되는 것이다. 왜냐하면 엔지니어가 아닌 사람들은 필요한 정답을 얻기 위해 Chat-GPT에게 어떤 질문을 던져야 할지 모르기 때문이다.

그렇다면 우리 개발자들은 Chat-GPT를 어떻게 "잘" 사용할 수 있을까?

다음 글에서 정리해보도록 하겠다.

출처

  • "The Robots are Coming. Is Chat-GPT Replacing you as a software engineer?", From Medium
profile
Make your lives Extraordinary!

0개의 댓글