카테고리 없음

WIL

김은수2 2023. 5. 31. 23:52

이번주 조에서 했던 프로젝트

 

모여봐요 레시피의 Soup → 많은 레시피가 모여있다는 느낌! and 윾쾌

제작의도 : 밥해먹기 어려운 사람들을 위해 간단하고 맛있는 레시피를 모아둔 사이트! 후기를 작성하면 실시간 댓글 알람을 받을 수 있습니다! 토스페이로 1000원만 내면 ai까지 사용할 수 있답니다! 가입은 소셜로그인으로 간편하게! 누구나 사용 가능한 대중적인 사이트를 제작하기 위해 기획 하였습니다!

냉장고에 뭐있니? → 냉장고에 있는 재료로 레시피를 추천해 주는 느낌!

( 냉장고 안 재료로 밥해먹자!)

MySQL - 데이터 받아오기 (공통사항)

제건님 : 소셜 로그인 - 카카오

예린님 : 소셜 로그인 - 구글, 깃허브나 네이버쪽으로

고려사항 : 소셜 마다 앱 생성? → 따로 관리? 고민…

추가기능 : 북마크/최근본페이지?

은수님 : ai → 재료이미지를 업로드 어떤재료인지 판별 →이 모델을 직접 만들려면 … 좀 힘들다고 기술매니저님 의견,,, 결국 있는 모델을 활용하여 사용하기로…? 그러나 음식이미지 판별 모델은 보이는데 재료이미지 판별 모델은 없음… 재료 판별모델을 만들기에는 데이터셋도 모자람 ,,,;;;

이미지 기반으로 음식에 태그를 추가하는? 내일 아침에 다시 튜터님 면담 후 수정여지 있음

미영 : 알림 구현(1순위 추가기능)- C,R,U → 슬랙봇, 레시피관리, 후기작성 → 댓글이 달릴 때 마다 알림 / 통계

소은님 : 결제 시스템(토스 페이 - 1순위) → ai를 사용 가능!, 북마크 가능?

추가 기능 : 페이지네이션/검색/랭킹(통 틀어서 조회가 많이 된 레시피!)

 

 

  • 버전장고 4.2.1
  • 파이썬 Python 3.10.6

구현된 기능 정리

  • 공통
    1. 일반 회원가입
    2. 일반 로그인
    3. 후기 작성 삭제
    4. 댓글 crud
    5. 회원 탈퇴
  • 추가 기능
    1. 소셜로그인
    2. teachable machine을 활용한 재료 이미지 판별 모델 및 추천 시스템
    3. 검색 기능
    4. TossPay를 활용한 결제 구독 서비스 구현
    5. 로컬스토리지를 활용한 페이지네이션, 최근 본 게시글 목록
    6. 슬랙봇
  • 기능 일람
    1. 일반 로그인
      • JWT 토큰을 받아 로컬 스토리지에 저장
      • 입력값은 최소화
    2. 소셜로그인
      • django-allauth를 이용한 소셜로그인 구현
      • 카카오 - 카카오 디벨로퍼 클라이언트 ID 값을 받아 redirect uri 설정후 연결
      • 구글/네이버/깃허브 - 소셜사이트 측에서 클라이언트 ID 값과 Secret Key를 받아 redirect uri 설정후 연결
      • redirect_url에 status_code를 담아 프론트에서 예외처리를 구현
    3. 레시피
      • 레시피 데이터는 openApi를 활용함
      • 수정 삭제 기능은 백엔드 로직으로만 구현
    4. 리뷰 & 댓글
      • 리뷰 작성시 이미지 첨부 기능
      • 리뷰 삭제
      • 댓글 수정 삭제 저장 기능
    5. 슬랙봇
      • slacker를 활용해 후기 알람봇 생성
      • 리뷰 작성시 관리자 슬랙으로 알람
    6. 프론트 → 김미영 갈림 → 사망
    7. 토스 페이
      • 토스의 결제 테스트 시스템을 활용
      • 결제위젯 SDK를 이용하여 SDK 메서드 활용
    8. AI 레시피 추천
      • 티쳐블 머신을 활용하여 주어진 재료를 학습시키고 레시피 데이터에서 해당 재료가 들어간 레시피를 추천

프로젝트의 진행 비원에이포 프로젝트

  • 연제건 (내배캠 최고 mc, 최고 팀장)최고의 팀원 분들과 함께 할 수 있었기에 좋은 결과가 있었고 저희 프로젝트에 대한 자부심을 가질 수 있었습니다. 이러한 결과가 있을 수 있게 도와주신 팀원분들께 무한한 감사를 그리고 이러한 감사하는 마음을 계속 가질 수 있도록 노력하겠습니다.문제점 : 이번에는 스케줄 관리 부분에 있어 제 자신의 부족함을 많이 느꼈던것 같습니다. 더욱 세밀하게 조정할 수 있어야 할 것 같으며 결과적으로 프로젝트를 진행함에 있어 주어진 시간을 얼마나 효율적으로 사용할 수 있을지를 생각하며 더욱 꼼꼼히 계획하겠습니다.이번에 소셜로그인 파트를 해보았으나 결과적으로 많은 부분이 팀원분의 지식에 힘을 입어 완성되었기에 해당 코드에 대한 이해도를 늘리기 위해 노력하고 확실한 이해를 갖고 코드를 짤 수 있도록 노력하겠습니다.
  • Try
  • Problem
  • Keep
  • 장소은 (배포의 신, 발표의 여신 강림)배포할 때 RDS를 통해 외부 DB를 연결해서 배포하고 싶어서 팀원들과 기존에 Django에서 제공해주는 dbsqlite3가 아닌 MySQL연동부터 도전해보았고, 성공했던 점!! 배포 후에도 소셜로그인의 인증문제를 제외하고는 작동이 잘 되었던 점, 토스페이 결제 API를 저번 프로젝트에서는 시간부족으로 백-프론트 분리를 하지 못하였는데 이번에는 render가 아닌 API 통신을 통하여 구현을 해낸점! 발표에 첫 도전하여서 칭찬을 받은 점 ㅎㅎMySQL을 처음에 우분투에 3306을, 워크벤치 포트에 3307로 설정하여서 중간에 약간 애를 먹었고, 배포를 할 때 기존에는 시크릿 키를 .env파일에 넣고 settings.py에서 dotenv를 import os를 하여 불러왔었는데 Gunicorn을 서버로 사용하게 되면 .env가 불러와지지 않아서 에러가 발생했었다. 배포 서버에서 git pull을 하였을 때, database와 migration시 InconsistentMigrationHistory에러가 떠서 db를 날리지 않고 해결해보려 몇시간을 허비했으나 결국 DB를 날리니 해결됐다는 ..!스케줄 관리 툴 다음에 꼭 써보기, 깃 이슈 활용해보기, 발표 한 번 더?, 다음에는 배포에 성공하고 나서 오류 없이 잘 구현이 되도록 노력할 것, 가독성이 좋은 코드를 생각해보기, 테스트코드, 결제다음은 나 또한 소셜로그인을 도전해보자!
  • Try :
  • PROBLEM :
  • Keep :
  • 김미영(내배캠 5기 최고의 해결사 -그녀에게 걸리면 어떠한 문제라도 해결되지 그래 그건 마치 마치.. 모든 사람들의 도움의 말을 듣게 되는 이 상황 말일세 ) → 해결사라고 하니까 수금하러 다니는 사람같아욬ㅋㅋㅋ 빌돈 받아드립니다. 머쪄keep
    • 프로젝트는 협업의 결과물이다. 협업이 잘 되지 않으면 절대로 좋은 결과물이 나올 수 없다.
    • 안되는 건 버릴 수 있는 용기.
    Problem: 예상치 못하게 ai를 다시 만들어 배포를 하는 과정이 힘들었습니다.
  • Try : 새로운 모델을 만들기 보다 teachable macine을 활용해 빠르게 학습시키고 프로젝트에 적용시켰습니다.
  • 느낀점: channels를 활용한 실시간 알람을 구현했으나 우리 프로젝트와 맞지 않는 버전으로 사용을 못하게 되어 슬랙봇을 새로 작성했습니다! 이러한 경험은 항상 플랜b를 만들어 예상치 못한 문제가 발생했을 시 유연하게 대처할 수 있는 방법을 알게된 계기가 되었습니다!
  • 예린님 (소셜로그인과 혼연일체, 끊임없는 도전 열정 넘치시며 조그마한 에러 또한 찾아내시는 masterpiece maker)problem - 이번 프로젝트에서는 외부 DB로 MySQL을 사용하였는데 기능을 구현하는 초반부터 연결하여 사용하다보니 DB를 새로 구성하여야 하는 상황마다 여러 오류가 발생하였다. django-allauth를 이용한 소셜로그인 구현에서 버전 이슈로 동작이 잘 하지않는 오류가 빈번하게 발생하였다.
  • try - 다음에 외부DB를 사용할 때에는 기능 구현을 마치고 마무리 단계에서 연결하여 사용하는 것이 좋을 것 같다. django-allauth를 활용하지 않고 직접 소셜로그인을 구현해보고싶다는 생각이 들었고, 이번에 작성하지 못했던 테스트 코드도 다음에는 꼭 작성해보고싶다.
  • keep - 매일 매일 팀원분들과 진행상황을 공유하고, 서로 상의하여 프로젝트 일정을 조율했던 부분과 외부 DB를 연동하여 프로젝트를 진행하였던 부분
  • 은수님Problem - ai 모듈이 용량문제로 배포가 되지않음
  • Try - 외부 AI 모듈인 clip을 이용한 ai 이미지 판독
  • Keep - 문제해결을 위해서 계속 연구하는 태도