project/project

CookAI 중간 점검

JM Lee 2023. 6. 27. 09:22
728x90

1. MVP 중간발표 자료(기입)

  1. 프로젝트 정보
    • 서비스명: cookai
    • 서비스 기획 의도: 사용자의 취향과 식자재 상황에 알맞은 레시피를 추천해주는 레시피 개인화 추천 서비 스 및 사물인식기능 제공
    • 프로젝트 한 줄 설명: 나도 cookai만 있으면 손쉽게 메뉴를 선정하고 요리하고, 남은 재료를 관리 할 수 있다?! 사용자가 가지고 있는 식재료에 대한 정보를 제공 받으면, 데이터 베이스에 존재하는 레시피 중 가장 적절한 레시피를 추천하고, 부족한 식재를 구매할 수 있도록 연결해주는 서비스를 제공합니다.
    • 최종 MVP 스펙:
    1. 사용자 관련: 기본 CRUD-회원가입/토큰인증로그인/회원탈퇴/이메일인증/비밀번호재설정/회원정보수정/프로필사진, 마이 페이지(사용자 정보 및 관련 댓글/글 조회가능),팔로우/팔로잉, 소셜로그인
    2. fridge 기능: 사용자별로 자신이 가지고 있는, 혹은 선호하는 재료를 지정 가능. 변경가능.
    3. article(레시피)관련: 기본 CRUD, 검색 기능, 좋아요, 북마크 기능, 태그, 카테고리 기능
    4. article(레시피)추천알고리즘: 사용자들의 북마크/좋아요 정보 기준 으로 사용자 협력 필터링 알고리즘, 사용자의 fridge에 저장된 재료와 레시피의 재료를 비교해 추천하는 컨텐트기반 추천 알고리즘 구현
    5. 사물인식기능: 식재료 사진으로부터 식재료 종류를 검출해내는 기능 구현
    6. 댓글: 게시글에 대한 댓글 CRUD 및 댓글 좋아요 기능
    7. 쿠팡 제품구매 링크 제공 서비스: 레시피 재료와 사용자 fridge간 차이가 있는 제품에 대한 구매 링크를 쿠팡 파트너스 api를 통해 제공

2. 기술적 의사결정 & 트러블슈팅 기록

  • 프로젝트를 진행하면서 직면한 문제를 어떤 과정으로 해결 하셨는지, 스택별로 기록 해 주세요
  • 기술적 의사결정을 기본으로, 트러블슈팅도 있다면 기록해둡시다.
    • 예시 (Token 전략)도입 이유 refresh token과 access token의 보안 강화
      문제 상황 refresh token과 access token 모두 header에 담아 클라이언트의 local storage에
      저장할 경우 XSS 공격에 취약해짐  
      해결 방안 1안) refresh token은 http-only cookie에 access token은 헤더에 담아 보내기
      2안) 실제 refresh token 값은 db에 저장 후 해당 index만 http-only 쿠키에 저장  
      의견 조율 access token에 최소한의 유저 정보만이 들어가야함(sub: email -> db id로 변경)
      의견 결정 access token은 해당 유저의 db id값을 subject로, 권한(user,guest)을 claim으로 가지며 header에 실림. refresh token은 유저 정보는 가지지 않으며 http-only cookie에 저장.

<aside> 📢 중간 발표 이후 기재

</aside>

3. 중간발표 피드백 기록

  • 월요일에 대면 피드백을 꼼꼼히 기록해두고, 개선이 필요한 사항에 적용해봅시다.
  • 피드백 내용
  • 피드백 내용(B-5)프론트 엔드 디자인에서 최소한의 성의는 보이는 것이 중요하다.
  • AI에 너무 시간을 많이 사용한 것 때문에 힘들었을 것이다. AI 라이브러리를 다룬 내용을 발표등에서 더 다루어야한다.

4. 중간 발표 후 회고 (예시)

1) 미구현 된 MVP 기능

  • 게시글 목록 기능: 게시글의 목록을 불러와 html로 랜더하는 기능을 구현중
  • 게시글 검색 기능: 게시글 목록 기능의 파생
  • 쿠팡링크 추천 기능: 프론트-백엔드 연결, 목록을 html로 랜더하는 기능을 구현중
  • 프로필 페이지 세부 기능
  • 프로필 페이지- 작성글/댓글 기능: 게시글 목록 기능의 파생

2**) 추가/개선 할 기능과 그 이유**

  • (개선) 사용자 협력 필터링: 과도한 연산 자원 소모로 인해 직접 SVD를 하기 보다는, 외부 API를 이용할 수 있는지 확인해 보아야 한다.
  • (개선) 다중 검색어 검색: 오직 하나의 단어만 검색을 하려는 사용자는 거의 없을 것이다. 띄어쓰기 까지 일치하는 경우 만 찾는 검색과, 여러 단어의 일치를 확인하는 검색을 따로 구현해 보고 싶다.
  • (개선) 사물 인식 모델 바꾸기: 연산자원을 아끼고 속도 향상을 위해 구글에서 제공하는 tensor-flow hub 등을 이용할 수 있는지 다시 한번 알아보기로 하였다.
  • (추가) 대댓글기능: 댓글에 종속적인 새로운 형태의 댓글을 통해 사용자간의 상호작용을 증대하고 더 복잡한 구조에 대한 학습 기회가 될 것이다.
  • (추가) 알림 기능: 커뮤니티 사이트에서 자신의 글에 대한 관심을 확인 할 수 있는 직접적인 수단으로서 필요하며, 새로운 기능 구현을 통한 학습 기회가 될 것이다.
  • (추가) 자동 실행기능: 요청에 따라서만 실행되지않고 필요에 따라 정해진 시각에 실행할 수 있는 코드를 통해 무거운 연산을 미리 해두거나, 탈퇴 유저 정보를 일정 기간 지난 후 폐기 하기 위한 코드를 작성하기 위해 필요하다.

3**) 추가/개선할 기능을 어떻게 구현 할 것인지**

  • (개선) 사용자 협력 필터링: 적절한 외부 API를 이용하기 어려워 보이므로, Docker를 이용해 주기적으로 사용자-게시글 관계 피벗 테이블을 SVD 하는 것으로 바꾸는 것을 고려중
  • (개선) 다중 검색어 검색: 오직 하나의 단어만 검색을 하려는 사용자는 거의 없을 것이다. 띄어쓰기 까지 일치하는 경우 만 찾는 검색과, 여러 단어의 일치를 확인하는 검색을 따로 구현해 보고 싶다.
  • (개선) 사물 인식 모델 바꾸기: 연산자원을 아끼고 속도 향상을 위해 구글에서 제공하는 tensor-flow hub 등을 이용할 수 있는지 다시 한번 알아보기로 하였다.
  • (추가) 대댓글기능: 댓글에 종속적인 새로운 형태의 댓글을 통해 사용자간의 상호작용을 증대하고 더 복잡한 구조에 대한 학습 기회가 될 것이다.
  • (추가) 알람 기능: 커뮤니티 사이트에서 자신의 글에 대한 관심을 확인 할 수 있는 직접적인 수단으로서 필요하며, 새로운 기능 구현을 통한 학습 기회가 될 것이다.

4. 앞으로의 계획 및 우선순위

  • 예시순위 구분 앞으로의 계획 (구체적으로) 마감예정일자
    1 MVP - 게시글 목록 기능,게시글 검색 기능,프로필 페이지- 작성글/댓글 기능 6/28
    2 MVP - 쿠팡링크 추천 기능 6/28
    3 MVP - 프로필 페이지 세부 기능 6/29
    4 추가 - 자동 실행 기능(김혁준) 6/29
    5 추가 - 대댓글 기능(이정민) 6/30
    6 개선 - 사용자 협력 필터링 모델 전환 7/3
    7 추가 - 알림 기능(최창수,이기웅) 7/3
    8 개선 - 다중 검색어 검색(최창수) 7/4
    9 개선 - 사물 인식 모델 바꾸기(?) 7/5

5. 앞으로 해야 할 일(4주차)

  • 팀 전체 (리더와 부리더님께서 필두로 정리해 주세요.)
    • [ ] 문서화 및 기존 문서 수정
    • [ ] MVP 집중(프론트 엔드 마무리)
    • [ ] AI 포함 코드 효율 개선 모색
    • [ ] 추가 기능을 위한 탐색
  • 팀원 개인별로 작성해 주세요.
    • [ ] 최창수: MVP 주도, 일정 조율,문서화
    • [ ] 김혁준: 자동 실행기능, FE 구현, 배포 안정화
    • [ ] 이정민: 대댓글 기능, FE 구현, S.A 정리(프로젝트 기록 문서화)
    • [ ] 이기웅: 알람기능, API요청 횟수 제한
    • [ ] 임라온 : AI 조금 더 다듬어보기?, FE 디자인

'project > project' 카테고리의 다른 글

CookAI 회고  (0) 2023.07.14
CookAI 기획  (2) 2023.06.13
[트러블 슈팅]pyenv와 poetry 환경설정 과정  (0) 2023.06.08
인천주막 (DRF_머신러닝 연계)(3)  (0) 2023.05.26
인천주막 (DRF_머신러닝 연계)(2)  (0) 2023.05.23