전체 글 (82) 썸네일형 리스트형 DRF+ AI) 웹개발 최종 - 1일차(pyenv,poetry 설치) 오늘은 SA 및 기획 개선/수정을 진행하였다. 역할분배와 상세 일정에 대한 합의를 마치었다. 개발 환경을 셋팅하였다. 이 과정에서 몇가지 오류에 봉착하였으며 이를 통해 변경사항이 발생하였다. 1. SA 및 기획 수정 기획에서는 크게 다음과 같은 변동 사항이 있었다. 1. 냉장고 시스템의 간략화: 현재 사용자의 재료 등록이 매우 자유로운 상태로, 재료의 속성(액체, 고형, 분말형, 가공식품, 원물 등)에 따른 단위 체계를 명확히 할 수 없다는 점이 문제로 제기 되었다. 따라서 재고 관리의 측면을 탈락시키고 단순히 유무 여부만을 저장하는 필터와 비슷한 역할을 부여하기로 하였다. 2. 추천 시스템 선택과 집중: 기존에 제안되었던 추천 알고리즘(예시-날씨데이터나 기분(사용자 입력)에 따른 레시피 추천)을 구현 .. DRF+ AI) 웹개발 최종 - 0일차 기획 및 SA 작성 오늘은 어떤재료로 요리하지? - cookAI 소개: 나도 cookai만 있으면 손쉽게 메뉴를 선정하고 요리하고, 남은 재료를 관리 할 수 있다?! 사용자가 가지고 있는 식재료에 대한 정보를 제공 받으면, 데이터 베이스에 존재하는 레시피 중 가장 적절한 레시피를 추천하고, 부족한 식재를 구매할 수 있도록 연결해주는 서비스를 제공합니다. 나의 냉장고: 현재 소지중인 식재료의 종류와 양을 저장해 둘 수 있습니다. 요리에서 사용하면 그만큼 차감되게 만들면 더 좋습니다. 내 냉장고에 남은 식재료 파악하기 (밖에서 장볼때 확인하기위해서) 장보기 도우미 : 메인 식재료를 선정하면 알맞는 레시피 추천해주고 나머지 필요한 식재료 구매를 도와줌(쿠팡 링크 등) 레시피 공유 하기: 자신만의 레시피를 다른.. DRF + ML : 피드백 발표 후 튜터님이 각 조의 결과물에 대해 피드백 해주신 내용 중 필요하다고 생각되는 것을 모아두었다. 독스트링 각 클래스와 메서드를 상세하게 설명하는 독 스트링에 대한 컨밴션을 정하고 꼬박꼬박 달아놓으면, 코드 가독성과 추후 유지 보수에 도움이 된다. 파일 명 파일 이름을 네이밍 할때에는, 파일 이름만 봐도 어떤 역할을 하는 코드를 가지고 있는지 바로 알 수 있게 작명하는 것이 좋다. 앱의 분리 앱을 분리하여 사용할 경우, 하나의 앱의 기능은 그 앱안에서 완성되게 하는 것이 좋다. 예를 들어 ai_process app에 있는 view를, article app의 urls.py에서 url을 연결하는 등의 행위는 하지 않는 것이 좋다. 앱의 분리에는 명확한 기준을 가지고 있는 것이 좋다. 너무 많이 분리하는 .. DRF + ML 회고(WIL) 직접 구현한 주요 기능 1. 아티클 CRUD 2. Google OAuth 로그인 3. DRF + ML 연결 4. 배포 이번 프로젝트를 하면서 느낀점을 KPT 회고 형태로 작성하였다. Keep: Doc string 상세하게 남기기, 매일 저녁에 ReadMe 수정하기: 이런 팀룰을 유지시킴으로서 원활한 협업과 코드에 대한 빠른 이해를 도울 수 있었고 문서의 갱신이 빨라져서 개발 계획을 세우고 수정하기 좋아졌던 것 같다. 변수명 등도 일관성있고 직관적이게 작성했으며 이를 통해 코드의 가독성을 높일 수 있었다. 여러 부분에서 사용자의 사용과 실제 서비스를 가정하며 완성도를 높이는 것은 다음 프로젝트에서도 반드시 유지되어야할 지점이다. Problem: 최창수google login의 경우 직접 하드코딩으로 구현하여.. DRF + ML 5일차 구글 OAuth 기능 추가 및 이미지 처리 연결 1. 구글 OAuth추가 백엔드만으로 OAuth 기능을 dj_rest_auth와 django_allauth를 이용하여 토큰을 발급하는 view를 만들어 Oauth를 적용하기로 하였다. # views.py from dj_rest_auth.registration.views import SocialLoginView from allauth.socialaccount.providers.oauth2.client import OAuth2Client from allauth.socialaccount.providers.google import views as google_view class GoogleLogin(SocialLoginView): adapter_class = go.. DRF + ML 4일차 OAuth를 적용하기 위해 Oauth에 대해 알아보았다. 1. OAuth 웹 서핑을 하다 보면 Google 등의 외부 소셜 계정을 기반으로 간편히 회원가입 및 로그인할 수 있는 웹 어플리케이션을 쉽게 찾아볼 수 있으며 이 때 사용되는 프로토콜이 OAuth(Open Authentication)이다. 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 위한 개방형 표준 OAuth의 참여자 Resource Server : Client가 제어하고자 하는 자원을 보유하고 있는 서버(구글) Resource Owner : 자원의 소유자(로그인하려는 사용자) Client : Resoure S.. DRF + ML 3일차 SA에서 와이어프레임, ERD, API 명세를 갱신하고 다음과 같은 수정사항들이 있었다. - origin image 추가 : 튜터님의 조언으로 원본 이미지와 수정된 이미지를 함께 보여주기로 하였다. - comment 수정/삭제 추가 : 이전프로젝트에서 생략된 부분 추가 - permission 추가 : 로그인한 사용자만 볼 수 있는 bookmark기능과 비로그인 사용자도 이용가능한 전체글목록 조회기능이 하나의 API로 묶이면서 새로운 권한 설정이 필요했다. - 댓글 페이지네이션 추가 : 댓글이 너무 많이 달리면 페이지가 너무 길어지므로 페이지네이션을 댓글에도 적용하기로 하였다. 1. 댓글 페이지네이션 추가 class CommentView(APIView): permission_classes = [permis.. DRF + ML 2일차 글 목록 API 새로 만들기 글 목록을 보여주는 API를 비롯해 글(article) CRUD와 좋아요, 북마크 하기를 위한 API를 만들었다. 이때 글 목록을 보여주는 API가 프론트의 여러 부분에서 호출받는다. 1. 전체 목록 2. 3일 이내 작성된 글들을 좋아요 갯수 순으로 내림차순 정렬해서 보여주는 기능 3. 북마크한 글 목록 4. 임의의 사용자가 작성한 글 모아보기 각 기능들은 글 목록을 보여준다는 점은 동일하고, 어떤 글들을 조회할 것인지만 다르다. 이에 따라 이 기능들을 같은 API에 연결하고, 해당 API에서 query string을 통해 쿼리셋을 filter 하는 방식으로 만들기로 하였다. class ArticleView(generics.ListCreateAPIView): """Articl.. 이전 1 2 3 4 5 ··· 11 다음