GPT와 개발자에 대한 고찰
어제밤 잠이 안와 GPT와 개발자의 관계에 대해 잡생각이 나서 꼬리의 꼬리를 물다가 글을 작성하게 되었습니다.
책->검색엔진->GPT
이전세대에서는 개발을 하려면 책을 통해 공부를 하여, 공부를 한 지식을 기반으로 개발을 해야했습니다.
아마 개발자의 서재에는 개발서적이 빼곡히 채워져 있었을거라 생각합니다.
그러다 자신이 부족한 지식을 빠르게 책을 찾아 공부하고 개발을 했을겁니다.
그분들이 열심히 개발을 하여 웹의 발전이 점차 진행되었고
어느덧 다음세대의 개발자들은 책과 검색엔진을 통해 정보를 얻어서 개발을 하기 시작했습니다.
개발자의 구글검색 사랑은 엄청났습니다.
검색엔진을 잘다루는 것이 개발자의 덕목이 될정도였습니다.
검색을 잘하는 비법', 검색 키워드를 공부하는 사람이 생길정도로요.
(여전히 구글에 "개발자 검색 잘하는법" 이라고 치면 수천개의 글이 나옵니다.)
(기시감이 든다면 맞습니다. 마치 '프롬프트 엔지니어링' 같은 느낌이랄까요?)
그러다 GPT가 등장을 했죠.
당연하게도 개발자들이 GPT를 사용하여 개발을 하기 시작했습니다.
바로 이전세대처럼 GPT를 잘다루는 것이 개발자의 덕목이 되진 않았지만 조만간 그런 시대가 올거라 봅니다.
그렇다면 당연하게도 질문을 잘하는법에 대해 점차 니즈가 생기게 되고,
'프롬프트 엔지니어링'이라는 꽤나 있어보이는 단어가 나옵니다.
단어는 거창해보이지만 크게 차이는 없습니다.
원하는 답을 얻기 위한 '질문을 잘하는 방법'이죠.
GPT의 개발생산성과 기반지식
GPT를 이용한 개발은 개발 생산성 측면에서 상당한 도움이 됩니다.
이전에 검색엔진을 필요한 정보를 찾아 개발을 하는것보다 체감상 몇배는 빠르게 정보를 이용할 수 있습니다.
GPT를 이용하지 않을 이유가 없는것이죠.
다만 여기에는 조건이 있습니다.
프롬프트에 자신의 기반지식을 통해 질문을 해야한다는것이죠.
뭘 모르는지 모르는 상태라면 GPT를 이용해도 질문자체가 어려울 수 있습니다.
따라서 기반지식이 많은 개발자일수록 GPT를 사용했을때 퍼포먼스가 더 좋아집니다.
어느정도 경력이 있을수록 개발할때 오히려 GPT를 더 많이 사용한다는 것이라는 말일 수도 있습니다.
슬프지만 요즘 시장이 안좋은것도 있지만 신입개발자 공고가 많지 않은 이유도 GPT도 어느정도 숟가락을 더했다고 생각합니다.
이쯤에서의 문제점
"이제는 GPT없으면 개발도 못할지경이다" 라고 이야기하는 개발자분들이 점차 많아지고 있습니다.
그만큼 GPT에 점차 의존도가 높아지고 있습니다.
저 역시 마찬가지구요.
GPT에 의존해도 생산성이 높으니까 좋은거아니냐구요?
아마 기업, 서비스측면에서는 좋을 것 같습니다.
하지만 개발자 개개인에게는 과연 어떨까 합니다.
GPT로 얻은 생산성만큼 개개인의 개발능력은 점점 떨어지고 있다는 것 같다는 느낌이 듭니다.
빠르고 쉽게 얻은 정보인만큼 정말 빠르게 휘발됩니다.
함수의 코드 종속도, 결합도
갑자기 개발얘기를 하겠습니다.
개발을 하다보면 특정 함수가 어떠한 코드에 종속이 많이 되어있거나, 결합도가 상당히 높아질때가 있습니다.
해당 코드가 아니면 다른곳에서 재사용 자체가 어려운 함수가 되는것이죠.
그러면 해당 함수는 그 코드가 변경되거나 사라지면 함께 변경되거나 사라지게 됩니다.
종속, 결합된 개발자
요즘은 클라우드내의 서비스가 너무 잘되어 있어서 서버 세팅 및 구성이 정말 간편해졌습니다.
하지만 가끔은 개발 사항에 따라 클라우드 내의 서비스를 이용하지 않고, 서버내에 직접 서버를 구성해야 하는 경우가 있습니다.
예를들어 데이터베이스를 직접 구성해야하는 일이 생겼는데,
AWS의 RDS로만 데이터베이스를 구성해본 개발자라서 "저는 RDS로 밖에 데이터베이스 못만들어요.."라고 말한다면..
'AWS가 사라지면 당장은 할 수 있는게 없다' 라고도 볼 수 있습니다.
요즘은 개발에 대해서 전방면에서 너무 발전이 되어 '개발이 아닌 조립을 하고있는게 아닌가?' 라는 착각이 들기까지 합니다.
그만큼 개발자들이 서비스와 종속, 결합도가 높아지는 경향도 있구요.
그러면 어쩌라고
뭐 어쩌라는 이야기는 아닙니다.
그냥 문득 생각의 꼬리가 꼬리를 물어서 적은글이니깐요.
다만 개발자 개개인의 성장을 위해서 가끔은 의도적으로 불편하게 개발을 해야 할 시대가 되지 않았나 합니다.
(누워서 개발하기, 물구나무서서 개발하기, 이런거 말구요)
머리를 쥐어뜯어가며 직접 개발을 했을때 그것만큼 성장곡선이 가파른게 없다고 생각하기도 합니다.
기초가 없는 디테일은 없고..
기반이 없는 능력은 쉽게 무너지지 않나..
라고 생각하기 때문이기도 한 것 같습니다.