AI 시대의 프로덕트는 '고정된 결과물'이 아니라 '가능성의 집합'이 된다!? - Cookflow를 만들다
요약
Cookflow는 사용자의 재료, 제약 사항, 기분 등을 입력받아 레시피 후보를 제시하는 요리 지원 앱입니다. 이 앱의 핵심 철학은 AI를 활용하여 프로덕트를 '고정된 결과물'이 아닌, 사용자 상황에 따라 공동 창조되는 동적인 '가능성의 집합(Bundle of possibilities)'으로 설계하는 것입니다. Cookflow는 레시피 검색을 넘어, 조리 과정 중 발생하는 변수와 어려움까지 파트너로서 상호작용하며 프로세스 자체를 구성해 나가는 것을 목표로 합니다.
핵심 포인트
- AI 시대의 프로덕트는 고정된 결과물(Finished Product)이 아닌, 사용자와 함께 변화하는 동적인 가능성의 집합(Bundle of possibilities)으로 설계되어야 한다.
- 요리 과정은 재료, 시간, 기분 등 변수가 많은 '프로세스적 행위'이므로 AI와의 상성이 매우 좋다.
- Cookflow는 레시피 생성뿐만 아니라, 조리 중 발생하는 어려움에 대응하는 'Cooking Session'을 통해 프로세스를 완성한다.
- AI 응답은 단순히 저장하지 않고, JSON으로 파싱하고 필수 항목 검증(예: 식품 안전 주의사항)을 거쳐 신뢰성을 확보해야 한다.
- 이러한 '상황 기반의 변화하는 프로세스' 설계 방식은 요리 외에도 학습, 여행 계획, 업무 절차 등 다양한 영역에 적용 가능하다.
만든 것
Cookflow라는 요리 지원 앱을 만들었습니다.
재료, 제약 사항, 기분, 숙련도, 사용할 수 있는 도구를 입력하면 그 자리에서 레시피 후보를 제시해 줍니다. 조리를 시작한 후에도 어려움이 있다면 질문할 수 있습니다.
단순한 레시피 검색 앱이 아닙니다.
이미 존재하는 레시피를 찾는 것이 아니라, 그 사람의 상황에 맞춰 요리 진행 방식 그 자체를 다시 구성해 나가는 것. Cookflow에서는 그 부분을 시도하고 있습니다.
배경에 있는 생각
이번에 만들고 싶었던 것은 다음의 생각을 작게 실험해 보기 위한 앱입니다.
AI를 통해 프로덕트는 고정된 결과물이 아니라, 사용자와 계속해서 공동 창조되는 동적인 가능성의 집합(Bundle of possibilities)이 된다.
지금까지의 프로덕트는 대부분 '만든 사람이 완성형을 결정하고, 사용자가 그것을 사용하는' 것이었습니다.
레시피 앱이라면 미리 등록된 레시피가 있고 사용자는 거기서 검색합니다. 하지만 AI가 들어가면 프로덕트의 성질을 바꿀 수 있습니다.
사용자의 입력, 상황, 제약, 취향, 그 현장의 판단에 따라 돌아오는 경험이 달라집니다. 프로덕트는 고정된 화면이나 기능의 집합이라기보다, 사용자마다 열리는 가능성의 집합에 가까워집니다.
Cookflow에서는 그것을 요리라는 친숙한 영역에서 시도했습니다.
왜 요리인가
요리는 생각보다 훨씬 '그 자리에서 조정하는', 프로세스적인 행위입니다.
- 냉장고에 있는 재료가 매번 다르다
- 사용할 수 있는 도구가 다르다
- 시간이 없는 날도 있다
- 기분에 따라 먹고 싶은 것이 바뀐다
- 조리 중에 타거나, 맛이 싱겁거나, 재료가 부족한 등의 어긋남이 발생한다
요리는 처음부터 끝까지 고정된 레시피대로 진행된다고 보장할 수 없습니다. 그 자리에서 간단히 만들고 싶을 뿐인데, 레시피를 찾아보고 재료가 부족하다는 것을 깨닫고 장을 보러 가는 일은 상당히 번거롭습니다.
오히려 현실의 요리는 수중에 있는 재료나 시간에 맞춰 그 자리에서 계속 판단해 나가는 작업입니다. 그래서 AI와 상성이 좋을 것이라고 생각했습니다.
주요 기능
MVP(Minimum Viable Product)로서 다음을 구현했습니다.
- 재료, 인원, 시간, 기분, 숙련도, 도구, 피하고 싶은 재료, 메모 입력
- AI가 레시피 후보 3건 생성
- 후보별 개요, 시간, 난이도, 사용하는 재료, 부족한 재료 표시
- 레시피 상세에서 재료, 순서, 대안, 팁, 주의사항 표시
- 조리 중에 질문할 수 있는 채팅
- 만든 후에 평가와 메모 저장
- 과거에 생성·조리한 이력 표시
의식한 점은 '생성하고 끝'내지 않는 것입니다.
요리는 만들기 시작한 후에 어긋남이 발생합니다. 탈 것 같거나, 맛이 싱겁거나, 재료가 부족하거나, 순서를 조금 바꾸고 싶거나. 그런 상황에 대응하고 싶었기에 조리 중에 질문할 수 있는 Cooking Session을 마련했습니다.
기술 구성
기술 스택은 심플합니다.
- Ruby on Rails
- Hotwire / Rails views
- SQLite (로컬 MVP)
- OpenAI Ruby SDK
- OpenAI Responses API
- Structured Outputs
- AI 응답은 JSON으로서 검증하여 저장
AI 연동은 service object에 가두어 두었습니다.
레시피 생성은 AiRecipeGenerator가, 조리 중 상담은 AiCookingAdvisor가 담당합니다.
개발·운영 환경에서는 OpenAI provider를 사용하고, 테스트에서는 mock provider를 사용하는 구성으로 했습니다.
AiRecipeGenerator.new.generate(recipe_request)
OpenAI의 출력은 그대로 저장하지 않습니다. 반드시 JSON으로 파싱하고, 필요한 항목이 갖춰져 있는지 확인한 후 저장합니다.
육류·생선·알류가 포함되는 경우에는 식품 안전 주의사항을 반드시 포함하도록 하고 있습니다. 요리 앱으로서 이 부분은 대충 하고 싶지 않았습니다.
만들어 보며 느낀 점
AI 앱을 만들 때 'AI로 무언가를 생성한다'는 것만으로는 기존의 폼(Form) 기반 앱에 생성 버튼을 추가한 것에 그치기 쉽습니다.
이번에 의식한 것은 AI를 '한 번만 답을 내놓는 장치'가 아니라, 사용자와 함께 프로세스를 진행하는 파트너로 다루는 것이었습니다.
레시피도 완성된 콘텐츠가 아닙니다.
- 첫 재료 입력
- 후보 생성
- 선택
- 조리 중 상담
- 완료 후 평가
- 이력
이 흐름 속에서 조금씩 사용자에 맞춰 의미를 갖게 됩니다.
이 구조는 요리 이외에도 사용할 수 있을 것 같습니다.
예를 들어, 학습, 여행 계획, 업무 절차, 문장 작성, 건강 관리 등이 있습니다. 이들 모두 고정된 콘텐츠를 전달하기보다 「상황에 따라 변화하는 프로세스 (Process)」로서 설계하는 것이 더 자연스러운 상황들이 있습니다.
요약
Cookflow는 작은 MVP (Minimum Viable Product)이지만, 시도해보고 싶었던 테마는 나름대로 큰 것이었습니다.
AI에 의해, 프로덕트는 완성품을 제공하는 것에서 사용자와 함께 계속해서 변화하는 것으로 바뀌어 갑니다.
그 변화를 요리라는 일상적인 체험을 통해 구현해 보았습니다.
아직 미흡한 부분은 있습니다. 다만, AI-first적인 프로덕트 설계를 고민하기 위한 실험으로서는 충분히 얻을 것이 있었습니다. 이 앱을 바로 서비스로서 성립시키기보다는, 우선은 컨셉의 구현 사례로서 보고 있습니다.
AI 시대의 프로덕트는 「고정된 결과물」이 아니라 「가능성의 집합」이 됩니다. 여러분은 어떻게 생각하시나요?
AI 자동 생성 콘텐츠
본 콘텐츠는 Zenn AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기