TENSOR STUDIO
커서를 이제 약 3개월째 사용하는 중이다. 예전에 후기 비슷한 글을 올린 적이 있는데, 커서 업데이트가 많이 되면서 그때와 지금과는 사용환경이 많이 달라졌다. 일단 그 때는 그냥 개인 프로젝트용으로 사용했었지만 지금은 실제 업무에도 사용해보려고 노력하고, 여러 시행착오도 해 가며 개발환경을 꾸리려고 노력했었기 때문에 말할 수 있는 내용이 더 많다.
일단 거두절미하고 말하자면
아직 완벽한 AI 에이전트라고 말할 수는 없지만 적어도 한 30% 정도는 그렇게 말해줘도 좋지 않을까? 싶다.
인공 지능 에이전트는 환경과 상호 작용하고, 데이터를 수집하고, 데이터를 사용하여 사전 결정된 목표를 달성하기 위해 필요한 작업을 스스로 결정해서 수행할 수 있는 소프트웨어 프로그램입니다. 사람이 목표를 설정하면 AI 에이전트는 목표를 달성하기 위해 필요한 최적의 조치를 독립적으로 선택합니다. 예를 들어 고객 문의를 해결해야 하는 상담 센터 AI 상담원을 생각해 보세요. 상담원은 자동으로 고객에게 여러 질문을 하고, 내부 문서의 정보를 조회하고, 해결책을 찾아 대응합니다. 고객의 대답에 따라 고객 문의 자체를 해결할 수 있는지 아니면 사람에게 전달해야 하는지 결정합니다.
AWS에서 말하기로는 이렇다는데, 이걸 개발로 치환해 보면 다음과 같지 않을까 싶다.
인데, chat -gpt로 대표되는 LLM 인공지능 도구와는 다른 면이 있다. 만약 당신이 코딩을 많이 해 봤다면 답답한 적이 있었을 텐데, 왜냐하면 gpt는 내 개발환경과 유리된 곳에 있어서 맥락을 잘 이해하지도 못할 뿐만 아니라 코드베이스를 직접 집어 던지기도 어렵고, 또 설정 정보도 모르기 때문에 헛소리를 계속 내뱉어서 디렉션을 꾸준히 줘야 했기 때문이다.
이런 AI IDE가 기존 Chat gpt와 다른 점이 있다면 바로 이 점인데.
지금 이 사진은 내가 퇴근하고 나서 개별적으로 작성하는 사이드 프로젝트인데 대부분은 커서에게 디렉션을 넣는 방향으로 개발했다. 요즘 들려오는 신조어인 바이브코딩이 이런 맥락일까? 싶기도 한데, 해당 프로젝트는 주가 인공지능 관련 프로젝트이다.
사진의 오른쪽을 보면
바로 이 부분인데, 알아서 독립된 터미널 창에서 ls를 쳐서 그 응답을 가지고 해당 프로젝트 구조, src에 어떤 파일들이 있는지를 받고, IDE에서 해당 파일들을 직접 불러와서 읽는다.
이건 예전 기록이라 Run command 나 터미널창이 꺼져있어서 이해가 안될수도 있어 이해가 쉽게 가기 위한 사진을 가져와 보면
이런식으로, 내가 방금 만든 간단한 예제지만 내가 DB가 연결이 안된다고 테스트를 해보라고 하는 간단한 과제를 주면 실제로 터미널을 이용해서 oracle 커넥터를 설치하고 또 알아서 오라클 접속을 하는 간단한 스크립트도 작성한다.
어쩌면 앞서 말한 개발자 AI Agent의 프로토타입이 이런게 아닐까 싶다.
또한 이렇게 알아서 코드를 수정해가며, 제대로 될 때까지 코드를 스스로 실행한다. 내 디렉팅이 데이터를 제대로 수집하기 않고 있다는 것에 대한 요청이었으므로 오류를 수정하기 위해 이에 대한 명령을 독립적으로 판단해서 수행하는 모습이다.
이는 예전 Composer 라고 하는 기능에서 더 나아가 해당 기능이 Agent라고 하는 기능에 통합된 내용인데
개인적으로 조금 무서웠던 점은 내가 요청한 구현 내용이 어쩌면 정말 마이너한 한국의 대신증권이라는 한 증권사의 cybos라고 하는 api 요청을 구현해 달라고 한 것인데
완벽하지는 않았지만 초안을 쭉쭉 만들어서 실제로 데이터를 수집가능한 코드를 만들어 냈다는 것이다.
아마존이나 구글의 메이저한 API 구현이라면 이해할 수 있지만 어쩌면 정말 로컬하고 마이너한 이런 한국의 증권회사의 API를 이용하는데 무리없이 단 30초 안에 500라인 600라인 코드를 줄줄 써낼 수 있는게 조금 무서웠다.
꾸준히 이야기가 나오는 AI가 개발자를 모두 대체한다는 시나리오가 점점 현실화가 되어 가고 있다는 것을 느꼈다.
일단 생산성의 향상이 아주 크다고 느꼈다. 그러니까 일을 다니면서 사실 집에서 내 사이드 프로젝트에 투자할 시간이 정말 매우 적다. 5시에 퇴근하고 집에 6시 반에 도착해서 저녁을 먹고 씻으면 8시인데 피곤한 몸을 이끌고 두시간 이상 집중하기란 불가능에 가깝다.
내일 아침에 출근해야 하는데…
하지만 현재 앞서 사진에 나온 내 사이드 프로젝트의 코드 량이 벌써 수천 라인 가까이 되는데, 실제 내가 이런 도구의 도움을 받지 않고 직접 코드를 썼다면, 생소한 기술 문서를 찾아보고 테스트 해가며 프로토타입을 만드는 데에만 몇달 걸렸을 지 모른다.
하지만 커서를 이용하면 디렉션을 넣고, 코드를 한번 훑어보고, 왜 이렇게 짰는지 궁금하면 물어보거나 ctrl + k를 눌러서 주석을 상세히 달라고 요청하면 어느정도 돌아가는 프로토타입이 제공된다. 또 특정 마이너한 API를 이 친구가 이해하지 모르는 것 같아 보이면 내가 기술 문서를 서칭해서 방법을 알려줘도 된다. 그럼 이해하니까.
하지만 단점도 있는데 일단 AI가 지능이 아직은 좀 낮다는 것이다.
아니 그게 무슨 소리냐, 니가 아까 이세상의 모든 기술 문서를 전부 수억번씩 학습한 AI라며?
그렇긴 한데, 아직 LLM의 한계가 너무 명확하다. Open AI나 앤트로픽 모두 자기들의 모델이 수천만 개의 토큰을 한번에 받고 컨텍스트를 기억한다고 하고 있지만 실제 내가 사용해 본 결과 그렇지 않다.
현재 이런 인공지능 모델들은 응답을 보낼때 지금까지 했던 모든 대화들을 입력으로 보내는데, 그러는 과정에서 기본 시스템 메시지들과 응답, 요청, 코드가 뒤섞여서 신경망의 지능이 실시간으로 떡락한다.
내 체감상 한 파일의 코드가 300 라인 이상 넘어가면 그 이상부터는 제대로 작동하던 AI도 순식간에 멍청해진다.
그러니까 300라인 정도가 넘어가는 복잡한 클래스 부터는 슬슬 컨텍스트를 잃어서 헷갈려하기 시작하는게 눈에 보인다.
제대로 작동하게 고쳐놓은 메소드나 코드도 작동 안되는 리비전으로 돌려 놓는다거나(예를 들자면 시작일 종료일 등을 계속 혼동하는 등) 작동이 안되면 특정 부분을 수정하고 다시 원상복귀하고 다시 수정하고 다시 원상복구 하는 등, 맥락을 제대로 이해하지 못하는 모습을 계속 보인다.
이런 부분은 결국 사람이 직접 고칠 필요가 있다. 나의 경우에도 이런 부분은 항상 직접 문서를 찾아가며 하나씩 고치거나 디버깅을 찍어 본다.
실제로 앞서 보여줬던 저 위의 사진에 나온 예시, 결국 내가 손으로 고쳤다. API 예제 문서 보면서.
그러니까 프로젝트 자체를 이해하는건 아직 너무너무너무 먼 이야기고 파일, 클래스 하나가 복잡해지기 시작하면 그것조차도 이해하기 어려워 한다는 말이다.
이 부분은 결국 Intellij와의 비교인데, 아직도 레거시한 JSP와 스프링, 그리고 스트럿츠 가 현업으로 돌아가고 있는 한국 상황 상, VSCODE 기반인 커서는 현업에서 제대로 활용하기는 쉽지 않다.
Intellij도 제대로 불러올 수 없는 레거시한 이클립스 종속적인 프로젝트도 셀 수 없이 많은데 vscode 기반인 커서가 IDE라고 주장하기는 좀 어렵다고 보인다.
내가 내린 결론은, 음,
사이드 프로젝트 용 개발 도구나 스타트업이 쓰면 아주 좋을 도구
라는 느낌이 들었다. 최신 프레임워크나 기술들, 웹으로 예를 들자면 스프링부트 부터는 VSCODE에서 플러그인 등으로 아주 원활하게 지원할 뿐더러 사실 레거시한 프로젝트들도 시간만 들이면 VSCODE에서 빌드하고 실행하고 다 할 수 있다. 하지만 그게 개발하는 시간보다 더 오래 걸릴 뿐만 아니라 그러한 프로젝트는 유지보수하는데 중점이 되어 있기 때문이다.
커서는 새로 뭔가를 만들어내기 아주 좋은 도구이다. 손이 정말 네개는 더 달린 느낌이다. 개발자가 아닌 사람이 써도 좋다.
여기서 AI의 미래는 머지 않았다, 개발자는 대체되지 않을 거다, AI가 금방 대체할거다, 이런 뜬구름 잡는 이야기는 하지 않을 거다. 그런데
적어도 커서는 20달러인데, gpt 유료 구독도 20달러이면 그림을 안뽑을 거라면 gpt 구독보다는 커서를 사용하는게 훨신 낫지 않을까?