큰일이다. 2차 멘토링 후 기획이 틀어졌다. 😱
2차 멘토링 멘토님이 기획 담당 멘토님이셔서 기획 위주로 봐주셨는데 실질적으로 우리 서비스를 고객이 사용하지 않을 것 같다는 생각이 들어서 주제를 틀게 되었고 새로 하게 된 주제가 바로 냉장고 속 재료로 만들 수 있는 음식(레시피) 추천 서비스이다.
우리 서비스의 핵심 기능들을 재정의해보면 다음과 같다.
- 회원가입 / 로그인
- 사용자 정보 설정
- 냉장고 재료 관리
- 레시피 생성
- 오늘의 요리 등록
- 통계 조회
사용자는 자신의 요리 레벨과 목표를 입력하게 된다. 요리 레벨은 단순하게 상/하로 나누기로 하였고 목표는 '일주일동안 몇 번 요리해먹을 것인가?'의 횟수이다.
사용자는 자신의 냉장고 속 재료들을 입력하게 된다. '사용자가 직접 입력하는 것이 너무 많게 되면 귀찮아하지 않을까?' 라는 생각을 하긴 했지만, 이를 보완하기 위해 입력할 때 우리의 재료DB에서 입력하며 선택하는 방식을 구상중이고 처음에만 번거롭더라도 재료들을 다 입력하게 되면 추후에는 재료들을 추가/수정/삭제 가능하게 할 예정이다.
우리 서비스를 이용하는 사용자는 식비를 아끼기 위해 집에서 직접 요리해먹고 싶은 사람 혹은 집에 재료는 있는데 이 재료들로 무엇을 해먹어야할 지 잘 모르는 사람이 될 것이다.
기획이 틀어진만큼 원래 우리 계획보다 많이 뒤처졌기때문에, 24주차에는 우리 팀원 모두가 빠르게 회의하고 역할을 확실히 나누어서 각자 맡은 일에 초집중하였다. (발등에 불은 무슨 용암이 떨어짐🔥) 내가 백엔드 역할을 하기로 했고, 우선 스프린트2에서는 프롬프트 엔지니어링에 주력하기로 하였다. 수정된 WBS는 다음과 같다. (멘토링 이후만)

우선 농림수산식품교육문화정보원 에서 제공된 레시피 데이터들을 데이터담당 팀원과 함께 API로 받아오고 나누어서 전처리하였다. 팀원이 마리아db에 적재를 해주셨고 나는 노트북파일에서 db와 연동 후 데이터를 가져와 프롬프트 테스트를 해보기로 하였다. 간단하게 사용자 더미 데이터도 만들어주셨고 나는 사용자 데이터 + 레시피 데이터를 가져와 llm에게 후보 3가지를 추천해달라고 하였다. 그 결과 아래처럼 출력이 되었다.

근데 데이터가 너무 적기도 하고(537개) 꼭 1인분이 아니더라도 n인분도 보여주면 어떨까 회의 끝에 결국 만개의레시피 사이트에서 크롤링을 하여 데이터를 가져오기로 하였다. 🤣
팀 회의 후 각자 역할을 나누었고 나는 백엔드 담당이다.. 😱
데이터 담당 팀원이 크롤링을 해 데이터를 가져오는 것이 오래 걸리기도 했지고, 큰 문제는 전처리이다.
만개의레시피에 레시피가 너무 많아서 우리는 음료, 빵, 과자, 양념 등을 제외하고 조회수가 10만 이상인 레시피들만 가져왔다.
데이터 엔지니어 담당 팀원이 다시 크롤링을 하여 데이터 수집을 하고 다같이 이를 어떻게 전처리를 해야할 지에 대해 의논하였는데 이도 쉽지 않았다. 이번에 느낀 가장 큰 점은 남의 데이터를 가져다 쓴다는 게 참 쉽지 않고.. 순수 데이터가 마음에 들지 않는다는 점이다. 🤣

어찌저찌 전처리도 하는 데까지 해보고 우리 팀 MariaDB에 적재까지 하였다. recipe_id는 PK로 말그대로 레시피의 id이다. recipe_nm_ko는 음식명, servings는 N인분(1인분, 2인분 등), ty_nm는 음식의 타입, cooking_time은 조리 시간(분), level_nm은 요리의 난이도(상 or 하), ingredient_full은 레시피에 필요한 재료명과 용량이며 step_text가 단계별 레시피이다.
이제 이걸 토대로 나는 또 프롬프팅을 해야한다. 프롬프트 테스트만 계속 해서 오픈AI에서 충전해뒀던 돈이 계속 줄고있는데 설마 다 쓰진 않겠죠..? 이번 주는 기획 변경으로 인해 바쁘면서도 급하게 진행한 것 같은데 아직 타 팀들에 비해 우리가 많이 느리다고 생각한다. 그래서 다음주 스프린트3에서는 빨리 따라잡고싶다.