다양한 유형의 공간들을 공유하는 스페이스클라우드 Motive Project
모임 공간이 필요할 땐 Ourspace
간편한 공간 예약, 맞춤형 공간 추천, 다양한 모임 장소
2주라는 짧은 프로젝트 기간 내에 개발에 집중해야 하므로 디자인/기획 부분만 클론했습니다.
개발은 초기 세팅과 데이터 모델링을 직접 진행하고 실제 스페이스클라우드 사이트의 기능을 대부분 구현했습니다.
시연영상에 나오는 부분은 Frontend - Backend간 통신으로 실제 사용할 수 있는 서비스 수준으로 개발했습니다.
- [총 프로젝트 기간] : 2021.08.17 ~2021.08.27
- [개발 인원]
- Frontend 4명(심택준, 이현준, 최호정, 이수정)
- Backend 2명(임종성, 장이주)
[Backend] : Python, Django [DevOps] : Mysql, AWS EC2, RDS, S3, Docker, POSTMAN
내가 구현한 기능 🙌
- 카카오 API를 이용한 소셜 로그인 기능 구현
- 로그인 이력 존재하지 않을 시 회원가입 진행
- Query parameter를 활용한 Space 필터링(공간유형, 지역, 날짜 등) 🙌
- 검색 기능 구현 및 키워드로 조건을 받아 정렬 기능 구현 🙌
- Django Boto3 - AWS S3 활용 Image Hosting
- 이미지 업로드, 삭제 등 범용성을 위한 S3Client Class 작성 🙌
- 공간 등록 API에서 날짜와 가격옵션을 활용한 유효성 검사 실시
- Transaction을 적용해 오류 발생 시 Rollback 실행 🙌
- Orderstatus를 ENUM으로 표현하여 Order Flow 시각화
- User가 입력한 정보를 바탕으로 Space 예약 진행
- Payload에 담긴 User 정보로 예약 내역 조회 기능 구현
- 예약 날짜가 초과된 내역에 대해 True를 반환
- 구현 Logic의 신뢰성을 확인하기 위해 모든 API에 대해 Unit Test 작성
- Eager Loading 개념을 이해하고 Query Debugger를 활용해 API Query의 수를 100개에서 3개로 감소
- AWS EC2 Instance에서 Docker Container를 띄워 서버 배포
- 매일 11시 Stand Up Meeting을 통해 In progress - Done과 Front-Back간 소통을 진행하고 매주 Sprint Meeting을 실행했습니다.
- Stand Up Meeting 전 Frontend, Backend 각각 미팅으 진행하여 정리한 후 Front-Back Meeting을 진행해 원활한 소통이 가능하도록 했습니다.
- 매일 6시 50분 Wrap Up Meeting을 통해 하루를 정리했습니다.
- Front/Back으로 라벨을 분류하고 담당자를 표기하여 직관적으로 확인할 수 있도록 했습니다.
- 프로젝트 과정에서 발생하는 Issue와 Blocker를 기록하였습니다.
- Front-Backend 간 소통이 원활할 수 있도록 API 정의서와 ERD를 공유하고 수시로 업데이트했습니다.
- 미팅시간을 명시하고 Meeting Log를 작성하여 공유했습니다.
- API별 Method, URL, Request 및 Response Key Value와 특이사항을 정리하여 프론트엔드와 공유하였습니다.
- API별 기능을 정리하고 특이사항과 Front-Back 소통이 필요한 사항을 정리하여 소통이 원활하도록 했습니다.
POSTMAN으로 API를 문서화하여 API 별 기능, Request와 Response Value를 직관적으로 알기 쉽도록 했습니다.
- 이 프로젝트는 스페이스클라우드 사이트를 참조하여 학습목적으로 만들었습니다.
- 실무수준의 프로젝트이지만 학습용으로 만들었기 때문에 이 코드를 활용하여 이득을 취하거나 무단 배포할 경우 법적으로 문제될 수 있습니다.
- Frontend Github Link : https://github.com/wecode-bootcamp-korea/23-2nd-OURSPACE-frontend