← 오늘 뭐 먹지 카테고리

메뉴 뽑기를 576칸으로 만든 기록

'오늘 뭐 먹지?'는 프리셋 9종 × 카테고리 8 × 메뉴 8 = 576칸입니다. 고유 메뉴 291개를 어떻게 배치했고, 8이라는 숫자가 9×9 격자에서 어떻게 나왔는지 정리했습니다.

‘오늘 뭐 먹지?‘의 전체 구조는 이렇다.

프리셋 9종 × 카테고리 8개 × 메뉴 8개 = 576칸, 중복을 걷어낸 고유 메뉴는 291개.

숫자가 이렇게 떨어진 데는 이유가 있다. 이 글은 그 배치에 대한 기록이다.

상황으로 나눴지, 음식으로 나누지 않았다

프리셋 9종의 이름을 보면 공통점이 있다.

프리셋언제
오늘 뭐 먹지아무 때나
점심 뭐 먹지평일 12시
배달 뭐 시키지나가기 싫을 때
저녁 뭐 먹지퇴근 후
회식 어디 가지사람이 여럿일 때
디저트 뭐 먹지밥 먹고 나서
야식 뭐 먹지자기 전
혼밥 뭐 먹지혼자일 때
안주 뭐 먹지술이 먼저 정해졌을 때

전부 상황이다. ‘한식/중식/일식/양식’ 같은 음식 분류로 나누지 않았다.

메뉴를 못 정하는 사람은 “중식을 먹을지 일식을 먹을지” 때문에 막히는 게 아니다. “지금 이 상황에서 뭐가 맞는지”를 몰라서 막힌다. 밤 11시에 필요한 건 야식 목록이지 일식 목록이 아니다. 분류 축을 음식에서 상황으로 옮기니 사용자가 먼저 답해야 하는 질문이 한 단계 줄었다.

291개 vs 576칸 — 겹치는 게 정상이다

576칸에 291개 메뉴. 평균적으로 한 메뉴가 두 프리셋에 들어가 있다는 뜻이다.

이건 데이터 정리를 안 한 게 아니라 의도한 것이다. 라면은 기본·야식·혼밥 세 프리셋에 들어 있다. 어느 한 곳에만 넣으면 나머지 두 상황에서 라면이 안 나온다. 프리셋은 서로 배타적인 분류가 아니라 겹치는 창문이다.

같은 원리가 프리셋 안에서도 작동한다. 혼밥 프리셋은 64칸에 고유 메뉴 50개인데, 우동이 면류와 일식에 동시에 있고 샌드위치가 양식과 카페에 동시에 있다. 자세한 목록은 혼밥 메뉴 50개, 64칸에 어떻게 넣었나에 전부 적어뒀다.

왜 8×8인가 — 9×9 격자에서 나온 숫자

두 8은 같은 곳에서 나왔다. 격자 모드가 9×9 판이고, 그 안이 3×3 블록 9개로 나뉜다.

[블록0] [블록1] [블록2]
[블록7] [중앙 ] [블록3]
[블록6] [블록5] [블록4]

가운데 블록의 정중앙 한 칸은 ‘오늘 뭐 먹지?’ 타이틀이다. 남는 8칸이 카테고리 자리다.

바깥 블록 8개가 각 카테고리를 하나씩 맡는데, 여기도 3×3이고 한 칸은 카테고리 이름이 차지한다. 남는 8칸이 세부 메뉴다.

카테고리 8개와 메뉴 8개는 서로 다른 판단이 아니라, 3×3에서 가운데 한 칸을 뺀 수가 두 번 쓰인 것이다. 스도쿠와 같은 판이라 한 화면에서 줌만으로 블록을 오갈 수 있다.

메뉴를 더 넣고 싶을 때 칸을 늘리지 않고 프리셋을 늘린 것도 이 때문이다. 격자를 키우면 이 구조가 깨진다.

'오늘 뭐 먹지?' 슬롯 모드가 멈춘 화면. 왼쪽 릴에서 '양식', 오른쪽 릴에서 '샐러드'가 뽑혀 점선으로 강조되어 있다.
슬롯 모드는 카테고리와 메뉴를 두 릴로 나눠 돌린다. 이 판은 양식 → 샐러드가 나왔다. 샐러드는 양식과 카페 양쪽에 들어 있는 메뉴다.

다시 돌리기를 막지 않았다

결과가 마음에 안 들면 다시 돌릴 수 있다. 랜덤 도구를 만들 때 “한 번 뽑았으면 그걸 따라야 한다”고 강제하고 싶은 유혹이 있는데, 넣지 않았다.

뽑기의 값어치는 강제력이 아니라 후보를 좁혀주는 것에 있다. 291개 중 하나가 나오면, 그게 마음에 안 들더라도 “아 나는 지금 면이 아니라 밥이 당기는구나”를 알게 된다. 그 정보만 얻어도 다음 선택은 훨씬 빠르다. 세 번 돌려서 정하는 것도 30분 고민하는 것보다는 낫다.


오늘 뭐 먹지?에서 상황을 고르고 돌려보면 된다. 격자·슬롯·타로 세 가지 방식이 있다.