커서와 함께하는 두 번째 프로젝트
유튜브 대시보드 프로젝트를 통해 사이드 프로젝트에 자신감을 얻었다. 든든한 Cursor와 함께라면ㅎㅎ 다음엔 뭘 만들어볼까 고민하다가, 하나 떠오른게 있었다. 술 <> 음식의 페어링을 추천해주는 서비스다.
와이프와 함께 오늘의 술을 정했다면, “오늘 소비뇽 블랑을 마실건데 어떤 음식이 잘 어울릴까?” 마시고 싶은 술보다 먹고싶은 음식이 있는 날에는, “오늘 육회를 먹을건데 어떤 술과 잘 어울릴까?” 나는 GPT에게 종종 이렇게 물어보곤 했다. ‘마리아주’에 대해 깊게 이해하지 못하지만, 맛있는 술이나 음식 먹을 때는 제대로 즐기고 싶었다. 누군가에겐 유난일 수 있지만, 나한텐 낭만이다. 한 끼, 한 잔을 헛되이 보내지 않겠다는 마음이었다.
서비스의 유저 플로우는 간단하게 생각했다. 사용자가 술이나 음식을 입력하면 AI가 어울리는 페어링을 추천해주는 방식이다. AI 모델 중에서는 API 무료 티어를 제공하는 Gemini를 선택했다.
먼저 어떤 tech stack으로 구현할지 Cursor에게 물어봤다. Over-engineering하지 않도록 프로젝트와 내 목표에 대해 설명했다. 그리고 금방 개발 환경 세팅이 끝났다. 제안한 라이브러리 중에 오래되거나 deprecated 된 것들도 있었는데, 다시 요청하거나 직접 최신 버전으로 수정하면 문제 없다. 예전엔 개발 환경 세팅에만 정말 애를 먹어었는데 Cursor가 잘 핸들링 해줘서 너무 수월했다.
그 다음엔 UI 구현을 해봤다. 어떤 UI가 좋을지에 대한 감은 있지만, 아무래도 디자이너 아니기에 머릿속으로 떠올리고 이를 표현하기에는 어려웠다. 하지만 이제 Cursor가 빠르게 프로토타이핑을 해주기 때문에 직접 결과물을 확인하고 빠르게 iteration을 돌릴 수 있다. 특정 UI 요소에 대한 레퍼런스를 이미지로 첨부하면 유사한 스타일로 구현 요청도 가능하다. 덕분에 원하는 UI 결과물을 빠르게 얻을 수 있었다.
Gemini 연동도 정말 간단했다. API 문서, rate limit 요건, 원하는 모델, API key만 전달하면 알아서 뚝딱 잘 연동해준다. 이후 버튼 스타일, 결과 화면 UI, 로딩 애니메이션 같은 디테일까지 Cursor와 함께 마무리 했고, 랜딩 페이지 이미지는 DALL·E의 도움을 받았다. 그리고 배포는 Vercel을 이용했다.
프롬프트 튜닝에 오히려 시간을 꽤 썼다. 술과 음식의 종류가 워낙 다양하고, 주종마다 세분화 기준이 다르기 때문에 신경을 썼다. 다행히 프롬프트도 GPT의 도움을 받아 원하는 방향으로 잘 수정하고 완성할 수 있었다.
이번 프로젝트는 유튜브 대시보드 때보다 사소한 디테일에 신경을 쓰느라 시간은 더 걸렸지만, 여전히 빠른 속도로 시작부터 배포까지 마무리할 수 있었다. 복잡도가 조금 높아지니 프롬프트와 구현에 대한 이해도가 더 중요해졌음을 느꼈다. 더 큰 스케일의, DB 연동이 필요한 서비스면 헤매는 시간이 조금 더 생기겠지만, 그래도 한 번 해보려고 한다. 잘 부탁한다, Cursor.
안주 메이트 | http://anju-mate.vercel.app/