In order to succeed, We must first believe that we can. by Nikos Kazantzakis
- 기간: 2022-04-11 ~ 2022-04-22
- 구성: Front-end 4명(with 본희, 재혁, 효정, 정수), Back-end 2명 (with 미류, 강호)
Index | Use | Description |
---|---|---|
1 | MySQL | 데이터베이스 |
2 | Django | 웹 프레임워크 |
3 | EC2 | 클라우드 배포 |
4 | S3 | 클라우드 저장 |
5 | KakaoAPI | 소셜 로그인 |
6 | Git | 버전 컨트롤 |
- 소셜 로그인
- KakaoAPI를 활용하여 소셜 로그인 기능 구현.
- FE 에서 Kakao accesstoken을 서버에 전달하고, JWT를 활용하여 새로운 access token 발행.
- 강의 조회
- Query Parameter를 활용하여 다중필터 기능 구현.
- 또한, Q객체에서 더 나아가, 다중필터를 Key-Value형태로 정의하고, 추가적인 필터 Index가 필요할 경우 확장이 가능하도록 구현.
- 강의 검색
- 강의 Keyword를 문자열 형태로 전달받고(with Query Parameter), DB에 저장된 강의 제목을 필터링하여 조회결과 반환.
- AWS S3
- 서버 부하를 줄이기 위해, 이미지 원본은 AWS S3에 저장하고(with boto3) 가벼운 URL을 DB에 저장하여 구현.
- Upload, Delete 구현하여 이미지 삭제 시, S3 저장소에도 삭제될 수 있도록 구현.
- DB Hit 최적화
- Django ORM으로 DB에 접근할 때, caching이 가능하도록 코드 작성.
- 실제, 240번 Query 횟수를 4번으로 줄임으로써, 효율적인 서버 구축.
- 테스트 코드
- Unittest를 진행함으로써, 시스템 안정성 확보.
- 또한, 외부 API (Kakao API, AWS S3)에 대해서 Mock Response로 전달하여, 테스트 진행.
- Unittest 통과 이후, Postman으로 통합테스트 진행.
- 테스트 코드에 대한 문서화 (with Postman API Documentation)
[1] Notion : https://quirky-eocursor-b74.notion.site/bbooing-Standing-Meeting-bed5f8dfe56f42dca04c6e92b4a97b59
[2] PostMan: https://documenter.getpostman.com/view/20018497/Uyr8ndsz
- 해당 프로젝트는 탈잉사이트를 참조하여 학습목적으로 제작되었습니다
- 해당 코드를 활용하여 이득을 취하거나 무단 배포할 경우 법적으로 문제될 수 있습니다
- 해당 프로젝트에서 사용하고 있는 이미지는 위코드에서 구매한 것으로, 외부인이 사용할 수 없습니다.