2024.01.26 ~
여름방학 기획 의도
- 백엔드 웹 어플리케이션 서버는 Node.js와 Nest.js로 설계
- Nginx에 SSL인증을 도입하여 보안강화 및 리버스 프록시 설정을 통해 백엔드 서버에 직접적인 접근을 차단
- github Action CI-CD를 통해 자동화 배포
- 데이터베이스는 데이터의 무결성을 보장하기 위해 RDS의 MySQL과 TypeORM 사용
- 이미지 데이터는 Multer 미들웨어를 통해 Multipart/form-data로 받아오고 NCP Cloud Stroge 버킷에 저장, 수정할 수 있도록 구현
- 로그인 / 회원가입
- 카카오 소셜 로그인
- 그림일기
- PapagoTranslation API를 통한 영어번역
- 번역된 문장을 Kalro AI에 그림 그리기 요청
- 마음에 든 그림을 선택하여 저장/수정/삭제
- 피드에는 최근에 작성된 일기를 볼 수 있음
- 마음에 드는 다이어리에 '좋아요'와 읽고난 후 감정을 표현할 수 있음
- 프로필 사진 변경
- 일기 작성시 '나만 보기' 가능
- 회원탈퇴
문제점
- 메인 페이지는 서비스를 이용하는 모든 유저들이 방문하기 때문에 API 사용량이 매우 많다.
- DB에서 모든 게시글의 좋아요와 공감받은 감정의 갯수를 조회하고 정렬하는 로직을 매번 실행한다.
- 느린 로딩 속도로 유저가 느끼는 불편함을 개선하고 운영 측면에서도 서버 비용을 감축할 필요가 있다.
해결방안
- 해당 API service에서 중복된 코드를 찾아 수정하였다.
결과