케이스스터디
Reffi: 내 냉장고에 맞는 요리를 고르기
Design Engineer · 메인 인터랙션과 레시피 추천 엔진 · 2026년 6~8월
Reffi는 냉장고에 있는 재료를 바탕으로 요리 세 가지를 추천하는 iOS 앱입니다. 저는 Design Engineer로서 재료를 직접 다루는 메인 화면과 레시피 추천 엔진을 맡았습니다.
제가 만들려던 경험은 명확했습니다. 사용자가 냉장고에 무엇이 있는지 보고, 오늘 쓸 재료를 고르면, 그 재료를 활용할 요리를 제안하는 것입니다. 이를 위해 화면의 조작 방식뿐 아니라 어떤 요리를 먼저 보여줄지도 함께 설계했습니다.


추천이 비었을 때
재료가 있는데도 추천이 없는 경우가 있었다
추천 엔진은 소비기한이 가까운 재료를 사용하는 요리에 높은 점수를 줬습니다. 남은 재료를 먼저 사용하도록 돕기 위한 기준이었습니다.
하지만 냉장고 재료 하나가 들어간다는 이유만으로 요리를 추천할 수는 없었습니다. 나머지 재료를 여러 가지 사야 한다면, 남은 재료를 활용하려다가 오히려 장을 더 봐야 하기 때문입니다. 협업자는 부족한 재료가 세 가지 이상인 요리를 추천에서 제외하는 규칙을 추가했습니다.
이 규칙은 재료가 적은 냉장고에서 문제가 됐습니다. 두세 종류의 재료만 등록한 개발 샘플에서는, 일치하는 레시피가 있어도 모두 조건에서 탈락해 추천이 비었습니다.
개발 기록을 바탕으로 재구성
모든 후보가 탈락했을 때
개발 샘플: 두세 종류만 등록한 냉장고.
기존 제외 기준
부족한 재료 3가지 이상
추천에서 제외
일치하는 후보도 모두 사라질 수 있었다.
수정한 기준
추가 장보기가 적은 후보 우선
재료 활용에 따른 예외
자리가 남으면 다른 후보를 점수순으로 보충.
검토할 후보는 남긴다. 추가 구매는 필요할 수 있다.
저는 추가 장보기가 적은 요리를 우선한다는 기준은 유지하되, 그 기준 때문에 모든 후보가 사라지지는 않도록 바꿨습니다. 보유 재료를 많이 활용하고 앞선 추천이 놓친 임박 재료를 쓰는 요리에는 예외를 두었습니다. 그래도 추천이 부족하면 남은 후보를 점수순으로 보충했습니다.
이때 추가 구매가 필요한 요리도 포함됩니다. 모든 요리를 당장 만들 수 있다고 보장하는 대신, 사용자가 검토할 수 있는 후보까지 숨기지 않는 쪽을 선택했습니다.
오늘 쓸 재료
오늘 쓸 재료는 사용자가 정할 수 있어야 했다
소비기한은 추천에 필요한 기준이지만, 오늘 무엇을 먹고 싶은지까지 알려주지는 않습니다. 저는 사용자가 직접 쓸 재료를 지정할 수 있도록 메인 화면에 재료 고정을 연결했습니다.
홈에서는 재료를 끌어 옮길 수 있었습니다. 기존에 재료를 ‘먹음’으로 기록하던 오른쪽 영역을 ‘오늘 이 재료로 요리하기’에 사용하도록 바꿨습니다. 재료를 그곳에 놓으면 고정되지만, 아직 요리한 것은 아니므로 냉장고 수량은 그대로 유지됩니다.
화면에 고정 동작을 추가하는 것만으로는 충분하지 않았습니다. 고정한 재료에 가산점을 주더라도, 여러 임박 재료를 사용하는 요리의 점수가 더 높을 수 있었습니다. 실제 개발 샘플에서도 고정한 연어를 쓰는 요리가 다른 요리보다 뒤에 놓였습니다.
그래서 고정을 단순한 점수 보너스가 아니라 추천 순서를 정하는 우선 조건으로 다뤘습니다. 추천 가능한 후보가 있다면, 사용자가 고른 재료를 쓰는 요리에 먼저 자리를 배정했습니다.
개발 기록을 바탕으로 재구성
고정에 순위 우선권 주기
“오늘은 이 재료를 쓰겠다.”
점수 보너스만 주면
직접 고른 재료가 뒤로 밀릴 수 있었다.
추천 자리에 우선권을 주면
조건에 맞는 후보 중 고정 재료를 쓰는 요리에 먼저 자리를 배정.
고정해도 냉장고 수량은 그대로.
메인 화면에서 연어를 고르는 행동이 추천 엔진에서도 ‘오늘은 연어를 먼저 쓰겠다’는 뜻으로 이어지도록 한 것입니다.
세 가지를 함께 평가하기
세 가지 추천이 같은 재료에만 몰리지 않게 했다
어떤 요리를 추천할지 정한 뒤에는, 세 가지를 어떻게 함께 보여줄지도 살펴봤습니다.
한 개발 샘플에서는 비빔밥, 버거 패티, 타코가 가장 높은 점수를 받았습니다. 모두 같은 소고기를 사용하는 요리였습니다.
소고기로 만들 수 있는 서로 다른 요리라는 점에서 잘못된 추천은 아니었습니다. 다만 Reffi에서는 소고기뿐 아니라 냉장고에 남은 다른 임박 재료를 사용할 기회도 보여주려 했습니다. 각 레시피의 점수만 따로 계산해서는 추천 세 가지가 어떤 재료에 집중되는지 고려할 수 없었습니다.
저는 첫 번째 요리를 고른 뒤 다음 요리를 다시 평가하도록 바꿨습니다. 첫 번째 요리가 이미 활용하는 재료에 점수를 반복해서 주는 대신, 다음 요리가 새롭게 활용하는 재료를 높게 평가했습니다.
그 결과 같은 개발 샘플에서 연어나 버섯을 쓰는 요리가 추천에 포함됐고, 추천 세 가지가 다루는 임박 재료는 4종에서 5종으로 늘었습니다. 이는 같은 냉장고 조건에서 추천 결과를 비교한 수치이며, 실제 사용자의 요리나 음식물 낭비가 달라졌다는 결과는 아닙니다.
개발 기록을 바탕으로 재구성
세 가지가 함께 쓰는 재료
각 요리의 점수만 보면
같은 소고기- 비빔밥
- 버거 패티
- 타코
서로 다른 선택지지만 한 재료에 집중.
하나를 고른 뒤 다시 평가하면
다음 요리가 새로 활용할 재료를 높게 평가.
다른 임박 재료를 쓰는 요리도 포함.
추천 세 가지가 다루는 임박 재료
4 5 종
동일한 개발 샘플 비교. 실제 요리나 음식물 낭비 감소를 측정한 결과는 아닙니다.
선택 이후의 재고
요리를 고른 다음에도 재고가 이어지도록 했다
추천은 한 번으로 끝나지 않습니다. 다음 추천도 남아 있는 재료를 기준으로 해야 하므로, 요리를 선택한 뒤의 재고 처리도 함께 작업했습니다.
Cook this를 누르면 재료를 바로 삭제하지 않고 조리 중인 재료로 예약합니다. 취소하면 다시 사용할 수 있고, 조리를 완료하면 사용한 재료와 잔량을 확인해 냉장고를 갱신합니다. 요리를 선택한 순간과 실제로 소비한 순간을 구분한 것입니다.
개발 기록을 바탕으로 재구성
선택과 소비 사이의 재고
- 냉장고에 보유
추천에 사용할 수 있는 재료
- Cook this조리 중으로 예약
아직 소비하지 않았으므로 재고에 유지.
취소
예약 해제
다시 추천에 사용
완료
사용한 재료와 잔량 확인
냉장고 갱신
다음 추천은 남아 있는 재고에서 시작한다.
이렇게 재료 선택, 요리 추천, 조리 후 재고 갱신이 하나의 흐름으로 이어지도록 했습니다.
검증과 협업
검증과 협업
이 작업에서 확인한 것은 추천 규칙과 화면 동작의 변화입니다. 당시 변경 기록에는 고정 동작의 시뮬레이터 확인, 관련 테스트 통과, 동일한 개발 샘플에서의 추천 결과 비교가 남아 있습니다. 실제 요리 완료율이나 음식물 낭비 감소는 아직 확인하지 못했습니다. 고정 동작의 VoiceOver 대체 경로도 남은 과제입니다.
저는 메인 인터랙션과 추천 우선순위를 설계하고 AI 에이전트의 도움을 받아 구현·검증했습니다. 조리와 재고 상태의 연결도 작업했으며, PO&PD 역할의 동료가 제안한 추천 제외 기준과 일부 인터랙션은 검토 후 통합했습니다.
개발 기록을 바탕으로 재구성
확인한 변화와 남은 질문
- 당시 기록에서 확인
- 고정 동작의 시뮬레이터 확인, 관련 테스트 통과, 같은 샘플 냉장고의 추천 결과 비교.
- 아직 측정하지 못한 것
- 실제 요리 완료율과 음식물 낭비 감소.
- 남은 과제
- VoiceOver로 재료를 고정하는 대체 경로.
소개
디자이너 소개
안녕하세요, 이종민입니다. 디자인 엔지니어링으로 영역을 넓혀가는 프로덕트 디자이너입니다. 쓰임새만큼 사용하는 감각도 중요하게 생각해요.
사용자에게 무엇이 필요한지, 어떻게 목적에 도달하는지, 어떤 디테일이 그 경험을 자연스럽게 만드는지 함께 고민합니다.
프로덕트 디자인을 바탕으로 디자인 엔지니어링을 탐구하고 있어요. 머릿속 아이디어를 직접 작동하는 인터랙션으로 연결하고 싶습니다.
연락
나누고 싶은 이야기가 있나요?
채용, 함께할 프로젝트, 가벼운 인사도 좋아요.