Search

스터디 모집 사이트 제작 (CatchStudys)

서비스 내용

캐치스터디는 원하는 주제의 스터디를 생성하여 모집할 수 있는 스터디 모집 사이트입니다.
분야, 인원, 기술 스택 등을 선택 후 모집글을 작성하여 스터디 팀원을 모집할 수 있습니다.
사이트 링크
현재 비용문제로 인해 서버를 내린 상태입니다.

 담당한 부분 [ Django 백엔드 ]

JWT를 사용한 사용자 로그인, 로그아웃, 이메일 인증, 사용자 검증 구현
처음에는 세션을 사용하여했지만, 제작 중인 프로젝트가 대외 서비스인 점을 감안하여 많은 인증이 몰릴 경우 서버에 부하가 있을 것이라고 생각하여 JWT를 사용하였습니다.
사용자의 프로필과 스터디의 즐겨찾기와 댓글 기능 구현
Maria DB와 연결하여 데이터를 저장하고 Django ORM을 이용하여 프론트엔드에서 사용하기 위한 정보를 반환하는 Rest API를 구축하였습니다.
로컬과 배포 환경을 구분하여 설정 관리 (CORS 설정, DB 정보 등)
로컬과 배포 환경은 다르기 때문에 설정파일을 구분하여 사용하였습니다.
자동 배포 시, 배포환경과 로컬환경으로 구분하여 일일히 설정을 재지정하지 않도록 만들었습니다.
JWT에 사용되는 키와 DB 정보 등 민감한 정보를 S3에 분리하여 관리
DB의 연결정보와 JWT 토큰 생성과 복호화에 사용되는 키는 매우 민감한 정보입니다.
퍼블릭이 아닌 S3에 민감한 정보를 저장 후, 코드에서 불러와 사용하는 방식을 사용하여 보안을 유지하였습니다.

 담당한 부분 [ 자동배포 ]

백엔드와 프론트엔드의 자동배포 구축
코드에 대한 업데이트가 되었을 때, 업데이트 된 내용을 서버에 적용하는데 적지 않은 시간이 걸렸습니다.
이를 해결하기 위해 Github에 Master 브런치로 Push되었을 때, 자동으로 배포되도록 설정하였습니다.
기존에는 불필요하게 코드를 수기로 배포하였지만, 자동 배포 환경을 만들면서 서버 개발에 더 집중할 수 있었습니다.

 담당한 부분 [ React 프론트 ]

Redux를 이용한 스터디 목록 등 여러 정보의 상태 관리
회원가입, 로그인, 회원 정보 수정, 이메일 인증 등 회원 관리를 위한 페이지 제작
스터디 조회, 수정, 삭제 등 스터디 관리를 위한 페이지 제작
회원의 프로필, 이력서에 사용되는 팝업 제작

 팀원 구성

이종찬
임채민
[ 백엔드(Spring) ] : 이종찬, 임채민
[ 백엔드(Django) ] : 김동연
[ 프론트(React) ] : 김동연
[ 자동배포 환경 구축(Jenkins) ] : 김동연
[ 기획, 디자인 ] : 김동연, 이종찬, 임채민

 프로젝트 관련 링크

  프로젝트의 진행사항을 기록한 페이지
  프로젝트의 API Docs