- B1A4의 RECIPE SOUP프로젝트
기획 서비스 : DRF, AI를 활용한 레시피 추천 사이트
구현된 기능 정리
- 공통
- 일반 회원가입
- 일반 로그인
- 후기 작성 삭제
- 댓글 crud
- 회원 탈퇴
- 추가 기능
- 소셜로그인
- teachable machine을 활용한 재료 이미지 판별 모델 및 추천 시스템
- 검색 기능
- TossPay를 활용한 결제 구독 서비스 구현
- 로컬스토리지를 활용한 페이지네이션, 최근 본 게시글 목록
- 슬랙봇
- 기능 일람
- 일반 로그인
- JWT 토큰을 받아 로컬 스토리지에 저장
- 입력값은 최소화
- 소셜로그인
- django-allauth를 이용한 소셜로그인 구현
- 카카오 - 카카오 디벨로퍼 클라이언트 ID 값을 받아 redirect uri 설정후 연결
- 구글/네이버/깃허브 - 소셜사이트 측에서 클라이언트 ID 값과 Secret Key를 받아 redirect uri 설정후 연결
- redirect_url에 status_code를 담아 프론트에서 예외처리를 구현
- 레시피
- 레시피 데이터는 openApi를 활용함
- 수정 삭제 기능은 백엔드 로직으로만 구현
- 리뷰 & 댓글
- 리뷰 작성시 이미지 첨부 기능
- 리뷰 삭제
- 댓글 수정 삭제 저장 기능
- 슬랙봇
- slacker를 활용해 후기 알람봇 생성
- 리뷰 작성시 관리자 슬랙으로 알람
- 프론트 → 김미영 갈림 → 사망
- 토스 페이
- 토스의 결제 테스트 시스템을 활용
- 결제위젯 SDK를 이용하여 SDK 메서드 활용
- AI 레시피 추천
- 티쳐블 머신을 활용하여 주어진 재료를 학습시키고 레시피 데이터에서 해당 재료가 들어간 레시피를 추천
- 일반 로그인
연제건 (내배캠 최고 mc, 최고 팀장)
Keep
최고의 팀원 분들과 함께 할 수 있었기에 좋은 결과가 있었고 저희 프로젝트에 대한 자부심을 가질 수 있었습니다. 이러한 결과가 있을 수 있게 도와주신 팀원분들께 무한한 감사를 그리고 이러한 감사하는 마음을 계속 가질 수 있도록 노력하겠습니다.
Problem
이번에는 스케줄 관리 부분에 있어 제 자신의 부족함을 많이 느꼈던것 같습니다. 더욱 세밀하게 조정할 수 있어야 할 것 같으며 결과적으로 프로젝트를 진행함에 있어 주어진 시간을 얼마나 효율적으로 사용할 수 있을지를 생각하며 더욱 꼼꼼히 계획하겠습니다.
Try
이번에 소셜로그인 파트를 해보았으나 결과적으로 많은 부분이 팀원분의 지식에 힘을 입어 완성되었기에 해당 코드에 대한 이해도를 늘리기 위해 노력하고 확실한 이해를 갖고 코드를 짤 수 있도록 노력하겠습니다.
김미영(내배캠 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 - 문제해결을 위해서 계속 연구하는 태도
장소은 (배포의 신, 발표의 여신 강림) <== ME
Keep :
배포할 때 RDS를 통해 외부 DB를 연결해서 배포하고 싶어서 팀원들과 기존에 Django에서 제공해주는 dbsqlite3가 아닌 MySQL연동부터 도전해보았고, 성공했던 점!!(하지만 개발 시 dbsqlite3로 하고 배포 시 MySQL을 쓰는 것이 좋을 것 같다) 배포 후에도 소셜로그인의 인증문제를 제외하고는 작동이 잘 되었던 점, 토스페이 결제 API를 저번 프로젝트에서는 시간부족으로 백-프론트 분리를 하지 못하였는데 이번에는 render가 아닌 API 통신을 통하여 구현을 해낸점! 발표에 첫 도전하여서 칭찬을 받은 점 ㅎㅎ
PROBLEM :
MySQL을 처음에 우분투에 3306을, 워크벤치 포트에 3307로 설정하여서 중간에 약간 애를 먹었고, 배포를 할 때 기존에는 시크릿 키를 .env파일에 넣고 settings.py에서 dotenv를 import os를 하여 불러왔었는데 Gunicorn을 서버로 사용하게 되면 .env가 불러와지지 않아서 에러가 발생했었다. 배포 서버에서 git pull을 하였을 때, database와 migration시 InconsistentMigrationHistory에러가 떠서 db를 날리지 않고 해결해보려 몇시간을 허비했으나 결국 DB를 날리니 해결됐다는 ..!
Try :
스케줄 관리 툴 다음에 꼭 써보기, 깃 이슈 활용해보기, 발표 한 번 더?, 다음에는 배포에 성공하고 나서 오류 없이 잘 구현이 되도록 노력할 것, 가독성이 좋은 코드를 생각해보기, 테스트코드, 결제다음은 나 또한 소셜로그인을 도전해보자!
+) 추가적으로 이번 프로젝트는 새롭게 도전해본 것이 많았다. 배포와 AWS에 대해 많이 어려워했지만(뭣도 몰라 인스턴스 를 가동 시키고 프리티어 기간이 지나 과금도 낸 적 있는데..) 이번 프로젝트에서 배포를 맡겠다고 나섰고, 우여곡절을 겪으면서 결국 RDS와 HTTPS통신까지 적용하여 이번 프로젝트에서 배포를 성공했다는 부분에 대해 튜터님께서 박수를 쳐줘야한다는 칭찬을..(!!) 노력한 부분에 알아주신 것 같아서 감사했다.
또한 발표 시 긴장을 많이 할 것 같아서 지원을 안한 적이 대부분이었는데, 오히려 도전 해보자 하는 마음에 빼도박도 못하게 처음부터 발표를 해보겠다고 나섰다. 팀원들과 아침까지 구현하고, 프로젝트 제출 후 바로 발표 연습 & 발표 하느라 현재까지 밤을 새고 있는 상태지만 프로젝트 발표 후 동기분들께서 발표에 대한 칭찬을 정말 감사하게도 많이 해주셨다.
나는 속으로 달달 떨었는데 칭찬세례를 받으니 얼떨떨한데; 아무튼 새로운 도전을 해보길 잘한 것 같다.
세번째는 토스페이 결제까지 도전했고 연동에 성공한 것 또한 나에겐 의의가 크다고 생각한다.
앞으로는 회고록에 적었던 부분들을 하나씩 해내고 싶다. 마지막 프로젝트 때는 건강을 좀 챙기면서 하고싶다.
'내일배움캠프 > 내일배움캠프 TIL' 카테고리의 다른 글
내일배움캠프 TIL 58일차 (0) | 2023.06.01 |
---|---|
내일배움캠프 TIL 57일차 - curl과 OPTIONS? (0) | 2023.05.30 |
내일배움캠프 TIL 55일차 - 배포에서 RDS(MySQL)사용하기 (0) | 2023.05.29 |
내일배움캠프 TIL 54일차 - inconsistentmigrationhistory Error (0) | 2023.05.25 |
내일배움캠프 TIL 53일차 - aws 과금 주의 (0) | 2023.05.25 |