Lewis's Tech Keep
[사이드][어시스턴트] FE 작업을 ChatGPT와 함께 해 보았다. 본문
어떻게 시작?
개발자가 되겠다고 결심하고 초반 3년을 Angular 라는 FE 프레임워크로 여러 프로젝트를 진행했었지만,
이 후 트래픽을 관리하는 백엔드 개발자가 되고 싶어 Java, Spring 기반으로 넘어왔다.
그러다가 이번에 회사에서 나오게 되었다.
취미로 하던 사이드 프로젝트를 오랫만에 다시 강제로(?) 집중해서 할 수 있는 기회가 생겨버렸다.
사이드를 FE, BE 혼자 하려고 구상하고 진행했는데, FE는 이제 머릿 속에 흐릿한 DOM개념과 Template, Component 개념만 남은 나에겐
어찌보면 ChatGPT와 함께 작업하는 것이 필연이라고 생각될 정도였다.
이번에 해볼 사이드 프로젝트는 3D Web/App 이었다. 뭐든 만들어 보려고 시도하던 나는 툴부터 검색해보았다.
'누군가가 기가막힌 툴을 만들었겠지' 하고 막연한 기대에 접근하려는 나는 막상 하려고하니
3d 공간에 대한 개념과 좌표축 변화에서의 인식, 마우스 행동의 변화 등을 예제를 통해 접하면서
어떻게 해야할 지 모르는 게슈탈트 붕괴현상이 일어났다.
그래서 약삭빠른 나는 이런 큰 벽을 같이 넘기 좋은 선생님은 ChatGPT 라고 생각하였다. ChatGPT와 함께 React로 진행해보자.
React의 유연함과 많은 레퍼런스들을 ChatGPT가 학습하고 품고 있다면 분명 괜찮은 결과가 있을 것이라 기대하였다.
이것은 정말 손하나 까딱하지 않고 무엇인가 하려고 하는 것임을 그때는 몰랐다...
요즘 뭔가 광고들이나 AI의 지능도 그렇고 AI가 내 지능보다 더 높다는 생각이 자주 들 정도인데 하는 생각을 가지고 있던 나는 너무 쉽게 생각했다.
하면서 어떤 점들이 어려웠는지 기록해 두려고 한다.
무엇이 어려웠나?
1. 어떤 추상적인 형상과 기능 요구사항만 가지고 정답을 요구하는 것은 서로 힘든 것 같다.
AI는 추론한다.
하지만 추론한다고 해서 모든 정답을 도출해 내는 것은 아니었다.
예를 들어 우아하고 인텔리전스한 분수를 만들어줘 라고 하면,
나의 머릿 속 에서는 어딘가 고급 호텔이나 카지노에 있을 법한 레이저를 막 뿜어대는 분수 를 상상했다면,
AI는 여러 빅데이터들과 추론들을 바탕으로 우아하고 인텔리전스한 분수의 결과값 을 만들어내는 느낌이다.
무언가 비슷하게 생기거나 이 AI의 의도를 내가 이해할 수는 있겠지만, 내가 원한 의도와는 다른 미세한 것이 있다.
그렇다면 더 정확하게 하기 위해서 나는 이렇게 재질문을 한다.
고급 호텔이나 카지노에 있을 법한 레이저를 막 뿜어대는 분수를 만들어줘 라고 말이다.
하지만 여기서 나는 또 놓친 것이 있다.
라스베가스에 있는 고급 호텔이나 카지노에 외부에 있는 분수 를 어렴풋이 생각했던 나였지만,
AI가 가져온 결과값은 대한민국 고급 호텔에 있는 건물 내부의 아름다운 분수 인 것이다.
한 카테고리 안에는 들어와서 의도는 이해하겠지만 내가 원하는 답은 되지 않는 느낌이 들어서 이걸 한 2시간 정도 반복하다가,
마지막에는 미안해 잊어줘 라고 하고 있었다.
그러다보니 마지막에는 내가 원하는 요구사항을 충족하는 기능을 얻으려는 것인지,
이 AI를 내가 훈련시켜서 우아하고 인텔리전스한 분수 에서 내가 바라왔던 이상향을 맞춰나가기 위해 끊임없이 정보를 제공해야하는 것인지, 스스로 혼란이 오기 시작했다. 품질 테스터나 정보 제공자가 아닌, 유료 서비스 이용자로서 말이다.
이렇게 시도해보니 추상적으로 요구사항을 말하는 경우에는 질문하는 사람도 어렵고 추론하는 AI도 정답을 이끌어 낼 수 없어 낭비하는 것 같다는 생각이 자꾸 들었다.
그리고 그런 경우였지만,
그래도 재밌는 점은 예제는 대놓고 추상적인 말을 썼지만, 최초에 기능을 위해 질문을 할 때는 나는 구체적이라고 생각했다는 점이다.
머릿 속으로는 라스베가스에 있는 고급 호텔이나 카지노에 외부에 있는 분수 를 떠올렸지만
정작 나는 추상적으로 질문은 우아하고 인텔리전스한 분수를 만들어줘 라고 하고 있었다.
이런 질문을 하면서 내가 좀 더 구체적으로 생각하려면 어떻게 해야 하는 지 알게되는 것이 재밌는 점이라고 생각했다.
그러나,
내가 원하는 라스베가스에 있는 고급 호텔이나 카지노에 외부에 있는 분수 가 아니라 대한민국 고급 호텔에 있는 건물 내부의 아름다운 분수 가 결과값으로 계속 보이는 것은 너무나 스트레스였고 질문을 더더욱 구체적으로 해도 내 한계에서는 정확한 답을 도출하게 할 수 없다는 걸 알게된 순간 나는 좌절감을 느끼게 되었다.
그래서 어떤 정확한 기능과 내부 구조를 알고 있는 분수 설계 준 전문가 가 요구해야 정답값에 가까운 결과가 도출될 것이라는 생각이 들면서 추상적인 형상과 기능 요구사항만으로 무엇인가 새롭고 정확한 결과값을 도출하는 것은 힘들다는 생각을 하게 되었다.
2. 너무 기대기만 해서는 아무것도 얻을 수 없었다.
처음에 기능을 요구했을 때 조금 비슷한 결과값이 나왔을 때, 나는 속으로 생각했다.
'됐어! 이거야!! 치킨 한마리 값으로 이런게 가능하다니 정말 최곤데?'
그러나 하면 할수록 정답에 가까워 지지 않았다.
이것에 대해 얻을 수 없는 것에 대한 답답함도 있었지만,
이해할 수 없는 것을 하나하나 다 이해하려고 하기보다는 그냥 새로운 질문을 좀 더 잘 구성해서
내가 구성 요소나 내부에 대한 아무 생각 없이도 최종적 결과에 다가갈 수 있도록 하고 있었다.
예를 들어 내가 한 것은,
원하는 결과를 A라고 해보자.
그러나 뭔가 질문했더니 -a 라는 결과를 준다.
오 a 대문자로 바꾸고 -값을 +로 바꾸면 되겠지 생각하고 직접 바꾸는 것이 아니라 이 생각을 그대로 다시 질문에 넣었다.
a를 대문자로 바꾸고 -값을 +로 바꿔줘라고 말이다.
이렇게 질문했더니 Aab로 결과를 준다.
오 a와 b만 빼면 되겠는데? 라고 생각한 나는 이 생각을 그대로 다시 질문에 넣는다.
이렇게 질문했더니 aAbcA로 결과를 준다.
나는 혼란이 오고 이런 질답의 형태로는 내가 얻을 수 있는 결과값에 가까운 것을 받기에 어렵다고 생각한다.
내가 하려는 것을 하나 하나 되짚어가면서 이론을 확인한 후에 A로 값을 만든다.
이러한 과정을 거치다보니 내가 생각했던 질답으로 정답을 얻을 수 있는 마법의 툴이라는 생각에서는 벗어나게 되었다.
내가 어느정도 기반지식과 내가 무엇을 원하는지, 무엇이 틀린지 구체적으로 정확히 알 수 있는 사람이 되어야 이 툴을 정확하게 활용할 수 있다.
너무 마법의 결과가 짜잔하고 나타날 것이라는 기대로 쓰는 것이 아니라 마법의 결과값이 될 수 있는 후보들이 자주 노출될 수 있고 그 노출된 것이 나의 혼자만의 생각에서는 벗어나서 나올 수 있는 노출값이라고 생각이 들었다.
3. 정확한 결과를 도출하는 것보다는 새로운 제안이나 추천 쪽에서는 활용도가 높을 것 같다.
이런 일들을 겪고나서 질답만으로 내가 원하는 기능과 형상을 React 기반으로 AI의 질답만으로 원하는 결과값을 정확히 얻을 수는 없다는 결론에 이르렀다.
하지만 그래서 필요없는 툴이다? 라는 건 절대 아니다.
AI와 함께 계속 질답을 하면서 내 질문이 점점 더 구체화되어 갔고, 내가 알지 못하는 범위의 일정 기술을 이용한, 내가 원하는 답과 완전 100% 일치하는 것은 아니지만, 높은 일치율을 가진 어떤 결과는 가져올 수 있었다.
그렇다. 나는 요술 램프처럼 문지르기만 하고 있었던 것이다. 정확히 이용하기 위해서는 좀 더 three.js R3F 상의 3d 공간을 이해하고 이 기능의 목록과 어떻게 사용할 것인지에 대한 러프하기도 되는 추상적이지 않은 계획이 필요하다는 것을 알게 되었다.
그래서 어떻게 할 거야?
그래서 나는 일단 three.js와 R3F를 공부할 수 있는 강의를 찾고 있다.
3차원의 공간에서 x,y,z값을 주는데 어렴풋이는 이해했지만 조명이라던지, RayCaster와 같은 개념을 아예 모르는 나는, 무엇인가 바꾸고 내가 원하는 기능의 제대로된 요구사항을 찾을 수 없었다.
여유 시간이 날 때 하나씩 챙겨보면서 지식을 얻고 재도전 해 볼 계획이다 :D
PS
저는 AI 학습 알고리즘이나 추론 과정에 대해서 자세히 아는 사람이 아니며, 이 모든 과정은 경험적 사실을 통한 추측입니다.
따라서, 실제 이론과 연구와 다를 수 있을 확률이 매우 높다고 생각합니다.
그냥 이런 경험과 생각을 했다는 사실을 기록하고 싶어서 적어둡니다.