GPT는 개발자를 대체할 수 있을까요? 주니어 개발자로서의 제 생각을 정리해봅니다.

결론

결론부터 말씀드리면, 제 생각은 그렇다 입니다.

그럼 저는 더이상 필요 없는 사람이 된걸까요? 주니어 개발자로서 제가 GPT를 바라보는 관점을 짧게 정리해보겠습니다.

GPT

GPT는 Generative Pretrained Transformer의 약자입니다. LLM(Large Language Model)의 일종으로, transformer 알고리즘을 활용한 인공 신경망을 사용하여 인간과 같은 텍스트를 생성하는 자기 회귀 언어 모델입니다.

조금 더 자세한 원리를 보고싶다면 이 아티클을 추천드립니다. 간단하게 요약하면 특정 토큰 뒤에 올 수 있는 토큰들의 확률을 계산하여 가장 높은 확률을 가진 토큰을 선택하고, 그 다음 토큰을 예측하는 방식입니다.

즉, '나는' 뒤에 '밥을'이라는 토큰이 나올 확률이 높다고 판단하면 '나는 밥을' 이라는 문장을 생성하는 것입니다.

주니어 개발자와 GPT

이미 수많은 개발자들이 GPT의 도움을 받아 개발하고 있습니다. 저 또한 GitHub의 Copilot을 사용하고 있는데, 개발 생산성이 어마무시하게 올라갔다는 점을 직접 느끼기도 했죠. 테스트 코드를 작성할 때 ChatGPT의 도움을 적극적으로 받고 있기도 합니다.

주니어 개발자인 저로서는 GPT 덕분에 더 좋은 코드를 더 빠르게 배우고 적용할 수 있게 됐고, 더 많은 시간을 학습에 투자할 수 있었습니다. Copilot의 도움은 아주 똑똑한 '자동완성' 기능처럼 여겨졌고, ChatGPT는 제 곁에서 24시간 코드 리뷰를 해주는 친구처럼 느껴졌습니다.

그러나, 처음엔 그리 친근하게 다가오지는 않았습니다.

GPT가 주는 공포

GPT는 확률에 따라 다음에 올 토큰을 결정하는 모델입니다. context만 적절히 주어진다면 '인간이 적었을' 문장을 자동으로 생성해주는 효과를 가져오는거죠.

제가 하는 일이 과연 이와 크게 다를까요? '로그인 기능을 만든다'는 context가 주어졌을 때, 'Modal 컴포넌트를 만든다'는 세부 구현 사항을 떠올리는건 결국 확률에 따라 다음 토큰을 결정하는 것과 다를 바가 없는것이 아닐까요?

이런 생각에 처음 GPT를 마주했을 때는 공포를 느꼈습니다. 아직 나는 내 커리어를 제대로 시작해보지도 않았는데, 이미 내 일을 대체할 수 있는 기술이 나왔다는 사실에요.

하지만 이런 공포는 오래 가지 않았습니다.

소프트웨어 공학자가 하는 일은 무엇인가

소프트웨어 공학자가 하는 일은 무엇일까요? 저는 이 질문에 대해 다음과 같이 생각합니다.

소프트웨어 공학자는 문제를 정의하고, 이를 해결하는 컴퓨터 소프트웨어의 설계, 개발, 유지 보수, 관리를 하는 사람이다.

시대가 변하면서 우리가 사용하는 기술만이 진보했을 뿐, 우리 주위의 문제를 컴퓨터로 해결한다는 점은 변하지 않았습니다. 2000년대 초반 웹 개발자는 PHP를 사용해 문제를 해결했고, 2010년대 웹 개발자는 SPA 웹 개발을 통해 문제를 해결했죠. 그리고 2020년대 초반 웹 개발자인 저는 GPT를 사용해 문제를 해결하고 있습니다.

GPT 또한 하나의 도구일 뿐입니다. GPT가 제가 하는 일을 대체할 수 있다는 사실에 공포를 느끼는 것은, PHP가 제가 하는 일을 대체할 수 있다는 사실에 공포를 느끼는 것과 다를 바가 없다는 생각이 들었죠.

아무리 더 진보한 AI가 나오더라도, 문제를 제시하고 명령을 내리는 사람은 여전히 사람일 것입니다. (문제 정의까지 AI가 해준다면 그 땐 이미 '노동'이란것 자체가 사라졌을거라고 생각합니다.) 소프트웨어 공학자가 하는 일이 무엇인지에 대한 정의가 바뀌지 않는 이상, 도구만 바뀔 뿐 제가 할 일은 변하지 않을 것입니다.

마부와 자동차

자동차 산업은 영국에서 시작되었지만, 지금은 아무도 영국 자동차 브랜드가 무엇이 있는지 알지 못합니다. 왜 그럴까요?

증기기관 시대로 접어든 19세기, 당시 대중교통을 담당했던 마차업계는 증기 자동차의 등장에 강력하게 반발했습니다. 마부 조합은 증기 자동차를 규제하라며 영국 의회에 청원을 끊임없이 넣었고, 증기 자동차의 경쟁 업계인 철도업계도 이에 합세했죠.

결국 영국 의회는 증기 자동차에 마차보다 10배나 높은 통행세를 물리고, 증기 자동차의 최고 속도를 제한했습니다. 심지어 '위험하다'는 이유로 붉은 깃발을 든 신호수가 차량 앞을 걸어가며 신호하도록 규제하기까지 했습니다.

이런 규제는 1800년대 후반까지 이어졌고 결국 영국 자동차산업은 쇠퇴하게 되었습니다.

관련 글

우리는 마부가 될 것인가?

자동차 앞에 빨간 깃발을 들고 걸어야 했다니 지금 보면 참 웃긴 일입니다. 한 편으로는 비슷한 신세에 놓인 개발자로서 그 당시 마부들이 느꼈을 공포감이 이해가 되기도 합니다.

그러나, 기술의 발전은 거스를 수 없는 흐름입니다. 우리가 아무리 회피하고 억제해도 결국 인간을 더 편하게 해주는 기술의 등장은 막을 수 없습니다. 자동차의 등장을 마부들이 막을 수 없었던 것처럼요.

그렇다면 주니어 개발자로서 어떤 자세를 취하는 것이 옳을까요?

1. 기술의 발전을 두려워하지 말자

기술의 발전은 두렵지 않습니다. 기술의 발전은 우리를 더 편하게 해줍니다. 우리가 하는 일을 더 쉽게 해줍니다. 우리가 하는 일을 더 재미있게 해줍니다.

1990년대에는 구글이 없었습니다. 당시의 개발자들이 정보를 얻을 수 있었던 곳은 책과 동료 개발자 뿐이었습니다. 선배님들에 비해서 지금의 우리는 얼마나 편리한 삶을 살고 있는지 깨달아야 합니다.

2. 기술에 대한 흥미를 잃지 말자

GPT가 아니더라도, 우리를 편리하게 해주는 기술은 앞으로도 계속해서 등장할 것입니다. 그런 기술들에 대한 흥미를 잃지 말아야 합니다. 흥미를 잃으면 우리는 더 이상 발전할 수 없습니다. 신기술들에 대해 호기심을 갖고, 적극적으로 배워야 합니다. 그렇지 않으면 우리는 마부가 될 수 밖에 없습니다.

3. 더 넓은 시야를 갖자

도구의 발전은 가장 작은, 단순한 작업부터 우리를 조금씩 대체하기 시작합니다. 어쩌면 2년 안에 HTML/CSS 작업을 하지 않아도 되게 될지도 모릅니다.

그러나 서비스의 흐름, 사용자의 니즈, 비즈니스의 목표 등을 이해하고 이를 기술로 구현하는 일련의 작업을 설계하고 관리하는 일을 AI가 대체하는 것은 더 먼 미래의 일이 될 것입니다.

더 좋은 아키텍처는 무엇일지, 어떻게 하면 더 큰 비즈니스 임팩트를 가져올 수 있을지 등을 고민하는 힘은 우리가 가질 수 있는 가장 강력한 무기입니다.

인간이 가진 문제를 컴퓨터로 해결하는 과정에서 내가 지금 하고 있는 일은 어떤 단계일까요? 가장 말단의 구현보다는 가장 최상위의 설계에 관심을 갖고 생각하는 힘을 기르는 것이 주니어로서 가져야 할 가장 중요한 자세라고 생각합니다.

마무리

GPT의 등장은 개발자 뿐만 아니라 거의 모든 직군의 일자리를 위협하고 있습니다.

그러나 기술의 발전을 두려워하고 억제하려고 하는 사람과, 기술의 발전을 흥미롭게 생각하고 적극적으로 배우려고 하는 사람, 과연 어느 쪽이 '마부'로 남게 될까요?

'승객을 목적지에 데려다준다'는 궁극적인 목표가 다르지 않다면 우리가 타는 것이 말인지 자동차인지는 그리 중요하지 않았던게 아닐까요? 😄