서비스 내용
캐치스터디는 원하는 주제의 스터디를 생성하여 모집할 수 있는 스터디 모집 사이트입니다.
분야, 인원, 기술 스택 등을 선택 후 모집글을 작성하여 스터디 팀원을 모집할 수 있습니다.
•
담당한 부분 [ Django 백엔드 ]
•
JWT를 사용한 사용자 로그인, 로그아웃, 이메일 인증, 사용자 검증 구현
◦
처음에는 세션을 사용하여했지만, 제작 중인 프로젝트가 대외 서비스인 점을 감안하여 많은 인증이 몰릴 경우 서버에 부하가 있을 것이라고 생각하여 JWT를 사용하였습니다.
•
사용자의 프로필과 스터디의 즐겨찾기와 댓글 기능 구현
◦
Maria DB와 연결하여 데이터를 저장하고 Django ORM을 이용하여 프론트엔드에서 사용하기 위한 정보를 반환하는 Rest API를 구축하였습니다.
•
로컬과 배포 환경을 구분하여 설정 관리 (CORS 설정, DB 정보 등)
◦
로컬과 배포 환경은 다르기 때문에 설정파일을 구분하여 사용하였습니다.
◦
자동 배포 시, 배포환경과 로컬환경으로 구분하여 일일히 설정을 재지정하지 않도록 만들었습니다.
•
JWT에 사용되는 키와 DB 정보 등 민감한 정보를 S3에 분리하여 관리
◦
DB의 연결정보와 JWT 토큰 생성과 복호화에 사용되는 키는 매우 민감한 정보입니다.
◦
퍼블릭이 아닌 S3에 민감한 정보를 저장 후, 코드에서 불러와 사용하는 방식을 사용하여 보안을 유지하였습니다.
담당한 부분 [ 자동배포 ]
•
백엔드와 프론트엔드의 자동배포 구축
◦
코드에 대한 업데이트가 되었을 때, 업데이트 된 내용을 서버에 적용하는데 적지 않은 시간이 걸렸습니다.
이를 해결하기 위해 Github에 Master 브런치로 Push되었을 때, 자동으로 배포되도록 설정하였습니다.
◦
기존에는 불필요하게 코드를 수기로 배포하였지만, 자동 배포 환경을 만들면서 서버 개발에 더 집중할 수 있었습니다.
담당한 부분 [ React 프론트 ]
•
Redux를 이용한 스터디 목록 등 여러 정보의 상태 관리
•
회원가입, 로그인, 회원 정보 수정, 이메일 인증 등 회원 관리를 위한 페이지 제작
•
스터디 조회, 수정, 삭제 등 스터디 관리를 위한 페이지 제작
•
회원의 프로필, 이력서에 사용되는 팝업 제작
팀원 구성
•
•
이종찬
◦
Github : https://github.com/Lipeya
•
임채민
◦
Github : https://github.com/lacram
[ 백엔드(Spring) ] : 이종찬, 임채민
[ 백엔드(Django) ] : 김동연
[ 프론트(React) ] : 김동연
[ 자동배포 환경 구축(Jenkins) ] : 김동연
[ 기획, 디자인 ] : 김동연, 이종찬, 임채민