728x90

프로젝트/서평사이트 6

[고양이와 책을] 프로젝트 결과 정리

무려 작년 12월(11월말쯤) 부터 시작한 사이드 프로젝트가 드디어 끝났다. 그동안 좀 루즈하게 진행되기도 해서 4월에서야 끝이 났다. 프로젝트의 주제 키워드로 책을 검색하고 그 중 선택한 책에 대해서 서평을 작성할 수 있는 사이트 이후 작성한 서평을 목록 형태로 관리할 수 있다. 사용한 기술 우선 프론트로 React, 백엔드로 Django를 사용했다. 또한 책 검색 API로 카카오 검색 open API를 사용했으며, 서버 배포르 위해 GCP의 conpute instance를 사용했다. 기능 목록 * 회원 관련 기능 (회원가입 / 로그인 / 회원 정보관리) * 검색 관련 기능 (키워드로 책 검색 - 랜덤으로 5개의 결과가 나옴) * 서평 관련 기능 (서평 작성, 수정, 삭제, 상세보기 및 목록 보기 기능..

[고양이와 책을] 비밀번호 변경 ( patch, QuerySet - update )

sql에서 update와 연결되는 api는 put과 patch가 있다. 이 둘의 차이를 간단하게 이야기 하자면, update 할때 어디까지 정보를 가져와서 변환하는 가 이다. put은 데이터 한 열을 통으로 가져와 수정하고, 그 통으로 저장한다면, patch는 데이터 중 일부 속성을 가져와서 수정하고, 그 일부를 다시 저장한다는 것이 차이다. 이번에 구현할 '비밀번호 변경' 기능은 유저 데이터의 비밀번호 데이터만 변경하면 되는 것이라 put 보다는 patch가 적합하다는 판단을 내려 patch로 개발하게 되었다. post, get등과 마찬가지로 클래스를 선언한 후, patch 메소드를 구현했다. import json from django.views import View from django.http im..

[고양이와 책을] 로그인 정보 넘기기(Django - QuerySet)

기존 로그인의 post 코드에는 status와 message만 파라미터로 넘겼었다. 프론트에서 로그인 정보를 가지고 다른 작업을 해야 하므로, uid(고유 유저 번호), userName, userEmail의 정보를 JsonResponse로 넘기고자 했다. 현재 요구사항은 프론트에서 넘어온 유저 이메일을 통해 데이터베이스에 접근해서 uid와 userName을 꺼내오는 것이다. 이를 위해 우리는 모델의 object 객체를 이용할 것이다. 그 중에서도 특정 조건을 달아 받아올 수 있는 filter()를 이용해서 받아온 유저 이메일이 존재 하는 지 확인을 할 것이다. if User.objects.filter(userEmail = data['userEmail']).exists() == True: 만약 존재 한다면..

[고양이와 책을] json 인코딩 에러 해결

그동안 영어로만 테스트 해서 한글 인코딩 부분을 미처 확인 하지 못하고 있다가, 다른 팀원이 이 오류를 발견해서 이를 해결하였다. json으로 보낸 객체가 한글이 포함되어있으면 아스키 코드로 나오는 문제였는데, JsonResponse의 파라미터 중에 json_dumps_params에 ensure_ascii를 false로 하면 해결되는 문제 였다. JsonResponse({"data" : list(users)}, json_dumps_params={'ensure_ascii': False}, status = 200) 이런식으로 return 값을 수정했더니 정상적으로 한글이 보여졌다. [LoginView 클래스의 get() 풀 코드] def get(self, request): user = User.objects..

[고양이와 책을] 로그인과 회원가입 기능 구현

코드 자체를 짠지는 좀 시간이 지났지만, 이를 프론트(리액트) 단과의 연결이 성공적인지 등을 확인하느라 업로드가 늦어졌다. (사실 지금도 코드가 완벽하진 않다.) 일반적으로 장고로 백엔드를 구현할 때는 REST Framework를 이용해 구현하는 것이 일반적이다. 그러나 나는 기본적인 REST API를 직접 구현해보고자 하여 이를 이용하지 않고 진행해보았다. (추후에 이를 이용하는 코드로 변경할 수도 있다.) 기본적인 장고 환경구성이 완료된 후, 회원가입과 로그인 기능을 구현할 user앱을 만들었다. 그리고 앞으로 이 앱에서 사용할 URL을 /user 하단에 넣기 위해 config 폴더 안의 urls.py 파일을 다음과 같이 작성했다. from django.contrib import admin from ..

[고양이와 책을] 서비스 기획

백엔드 툴로 장고(Django)를 사용하고 싶어서 미니 프로젝트를 기획하게 되었다. 프론트 1명 백엔드 2명으로 이뤄졌고, 나는 백엔드를 담당하게 되었다. 기본 골자는 책을 선택하여 서평(독후감)을 작성하는 사이트 이다. 고양이를 좋아해서 고양이가 책을 추천해준다는 컨셉으로 사이트 디자인을 하였다. 사용자가 검색창에서 키워드를 입력하면, 해당 키워드에 맞는 책을 랜덤으로 5개 선택해 띄워준다. 사용자는 여기서 한 권을 선택해 책을 읽고, 이에 대한 서평을 작성할 수 있다. 프론트엔드는 리액트로, 백엔드는 장고를 이용하였다. DB는 SQLite를 이용하기로 했다. 우선은 로컬에서 작업하지만, 사이트가 완성되면 이를 오라클 클라우드 서버를 이용하여 클라우드 서버에 올릴 계획이다. 협업은 깃을 이용하고 사용하..

728x90
반응형