Post

[KT Aivle 3기 AI] 빅프로젝트 3주차

🌟 빅프로젝트 3주차 !

3주차 부터는 본격적으로 개발이 시작되었다. 나는 백엔드 부분을 맡아서 진행하였고, 인프라 부분도 내가 담당했다.

백엔드 파트는 총 3명으로 각 기능 별로 API를 나누어서 구현하고 있고, 서로서로 도와주면서 개발하고 있다.

✅ AWS 구축

저번주에 EC2 구축한 것과 더불어서, RDS와 S3를 나누어서 구축했다. RDS는 DB서버로 MySQL을 사용했고 S3는 Storage 서버로 업로드한 이미지가 직접 저장되는 공간이다.

aws architecture AWS Architecture

✅ Django Rest Framework

DRF를 사용해서 상당히 많은 부분들을 구현했는데 구현한 API는 Notion에 API 명세서를 작성하여 모두 기록해서 관리하고 있다. [Notion API명세서 링크]

api명세서 Notion API 명세서

✅ 기본적인 로그인 관련 구현

Django Rest Auth를 활용하여 기본적인 회원가입, 로그인, 로그아웃 등을 구현했다.
하지만 기본으로 제공해주는 User가 아니라, 아래와 같은 Field들을 추가하여 Custom User를 구현했다.

  • Email을 로그인 시 사용 (기본은 Username)
  • 수의사 여부 Field 추가
  • 프로필 이미지 Field 추가 - Default로 pydenticon 사용
✔️ JWT Token
로그인 할 때에는 AccessTokenRefreshToken을 발급해 해당 토큰으로 사용자 정보를 확인할 수 있도록 구현했다.
✔️ Oauth
Oauth도 팀원분이 구현을 하셨는데, API 형태로 어떻게 제공해야할지 아직 찾아보는 중이다. 기본적으로 웹에서 로그인이 되어서 토큰을 받는 것 까지는 확인을 했다. 하지만 서버에 올렸을 경우에 Naver는 테스트 아이디를 설정하면 해당 아이디는 로그인이 되지만, Google의 경우 보안상의 이유로 도메인을 구매하지 않으면 테스트가 어렵다.
✔️ 기타 User 관련 API
회원가입 시 Email 중복 확인을 하는 API와, 비밀번호를 까먹었을 때 해당 아이디로 Email을 전송하여 비밀번호를 초기화할 수 있는 API를 구현했습니다. Front에서와 마찬가지로 비밀번호는 SHA256 암호화를 수행한 후 전달되도록 구현했습니다.
비밀번호 초기화 메일비밀번호 초기화 화면
imageimage

✅ Pet, Hospital API

User 별로 Pet 정보를 등록하는 API와 수의사일 경우 Hospital 정보를 등록하는 API를 구현했다.
Pet과 Hospital 은 UserID와 외래키로 연결되어있어, 로그인한 정보를 바탕으로 데이터 생성 시 자동으로 UserID를 가져오도록 구현했다.

This post is licensed under CC BY 4.0 by the author.

[KT Aivle 3기 AI] 빅프로젝트 2주차

[KT Aivle 3기 AI] 빅프로젝트 4주차