내 판단을 돕는 대화 가능한 조력자
저는 문과 출신으로 개발과는 거리가 먼 사람입니다. 2018년 알파고 사건으로 인공지능과 딥러닝이 많은 사람들 입에 오르내릴 때 자연어처리에 대한 관심으로 처음 파이썬을 접했습니다.
책 한 권 사서 독학하는 수준이었고, 체계적으로 공부하지는 않았습니다. 대신에 중고 상품 시세를 한눈에 모아보고 싶어서 자연스럽게 크롤링에 관심을 가지게 되었습니다.
BeautifulSoup과 Selenium을 이용해 간단한 크롤링을 해보면서 파이썬을 익혔고, 지금은 LangChain과 Streamlit 같은 도구를 간단하게 다룰 수 있는 수준입니다.
최근에 AI가 코딩을 보조해 주는 도구가 많이 나오고 있습니다. 저는 그 도구 중에서 Cursor를 사용하면서, 말로 설명하면 코드가 작성되는 경험을 하고 있습니다. 요즘에는 자연어를 사용해서 코딩하는 이른바, '바이브 코딩'이라는 개념도 점점 알려지고 있습니다. 개발을 잘 모르는 사람도 앱을 만들 수 있다는 이야기가 크게 낯설지 않게 들립니다.
개인적으로 진행하고 있던 사이드 프로젝트에서 프론트엔드 개발자 모집이 지연되면서 개발이 멈춘 상태입니다. 기획은 어느 정도 되어 있었고, MVP 정도는 직접 만들어볼 수 있겠다는 생각이 들었습니다. 그래서 챗지피티와 Cursor를 활용해 개발을 시도해 보기로 했습니다.
저는 프론트엔드, 백엔드, 데이터베이스에 대한 기본 개념은 알고 있지만, 실제 구현 경험은 없습니다. 챗지피티는 단순히 코드를 작성하는 데 그치지 않고, 폴더 구조나 데이터베이스 설계, 개발 절차까지 제안해주기 때문에 전문적인 구현 경험이 없는 저에게 설계 단계에서도 많은 도움을 주었습니다.
챗지피티의 혁신 포인트 중 하나는 뛰어난 멀티턴 대화 능력이라고 생각합니다. 대화는 상호작용을 통해 서로를 이해하고 생각을 조정하거나 발전시켜 나가는 과정입니다. 결국 질문 한 번에 챗지피티가 뱉어낸 대답을 그대로 수용하는 것은 챗지피티를 단편적으로 활용하는 것에 불과합니다.
저는 챗지피티나 cursor와 같은 AI를 나와 대화할 수 있는 조력자로 생각하되, 비판적으로 검토하고 최종 판단은 반드시 스스로 내려야 한다는 점을 'AI와 코딩하기'의 중요한 행동 지침으로 삼았습니다.
구현할 아이템에 대해 설명하고 아이디어를 요청했을 때, 챗지피티는 접근 방식, 필요한 기술 스택, 기대할 수 있는 효과와 차별점까지 체계적으로 정리해주었습니다. 우리 팀이 기획한 내용과 비슷한 부분도 있었고, 더 나은 방향을 제시해준 부분도 있었습니다.
AI에게 요청할 때는 유의해야 할 점이 있습니다. 챗지피티를 비롯한 대부분의 AI는 질문자의 의견을 최대한 수용하고 거기에 맞는 답변을 내놓습니다. 현실성이 부족하거나 구현 난이도가 높은 경우에도 지적은커녕 훌륭한 생각이라고 칭찬까지 해 줍니다. 마치 직장 상사의 헛소리에도 무조건 맞장구치고 있는 회사에서 제 모습을 떠올리게 합니다. 내가 헛소리를 할 때 욕을 해 주는 게 정말로 좋은 친구 아니겠습니까? 챗지피티에게도 의도적으로 객관적이고 냉정한 평가, 비판적 평가, 안 되는 건 정확하게 안 된다고 말하라고 요청을 해야만 객관적이고 현실적인 판단을 해 줍니다.
작업 계획을 세울 때도 제 기술 수준과 하루에 이 프로젝트에 투입할 수 있는 시간이 어떻게 되는지 등, 나의 상황을 챗지피티가 이해할 수 있게 해 줘야 합니다. 그래야 내 기술 수준이나 역량, 시간 투입 계획에 맞는 계획을 제안해 줍니다. 이렇게 제 역량과 여건을 AI와 공유해야 AI가 제 통제를 벗어나지 않는다고 생각합니다.
AI와 코딩하기의 처음 목표는 다양한 소스에서 수집한 데이터로 MVP를 만들 계획이었지만, '비판적 태도로 응답하도록 요청하기, 내 상황을 충분히 이해시키기' 이 두 가지를 통해 적용해 단일 소스를 기반으로 MVP를 만드는 방향으로 계획을 수정했습니다.
지금은 수정한 계획에 따라 조금씩 작업을 이어가고 있습니다. 필요한 만큼 찾아보고, 해결할 수 있는 부분부터 차근차근 진행하고 있습니다.