예산 관리 및 지출 컨설팅 어플리케이션
본 서비스는 사용자가 카테고리 및 예산
을 선정하고, 지출 기록에 따라 일별 및 월별 예산
을 추천합니다 .
통계 조회 및 기록
을 통해 더 나은 사용자 예산 관리를 제공하고, 다른 사람의 예산 및 지출과 비교한 예산 추천을 받을 수 있습니다.
유저
-
구현 기능
- 회원가입, 로그인, RT 재발급
-
구현 방법
- 회원가입: 사용자 회원 양식을 받아 DB에 저장하고,
비밀번호에 대해 총 4가지 조건을 util로 적용 - 로그인: 사용자 로그인 양식을 받아 DB와 비교한 후, Access Token, Refresh Token 발급
- RT 재발급: redis에 로그인에 따라 발급된 RT를 저장하고, AT 초과 시 redis에 존재하면 재발급하고 그렇지 않으면 재로그인 시도 요청을 전송
- 회원가입: 사용자 회원 양식을 받아 DB에 저장하고,
카테고리
-
구현 기능
- 카테고리 추가, 조회
-
구현 방법
- 제한된 개수 이내의 카테고리 생성
- 전체 카테고리 명과 id 조회
예산 및 지출
-
구현 기능
- 월별 예산 crud
- 지출 crud
-
구현 방법
- 예산은 당월에 동일한 카테고리별 예산의 유무 확인 후, 생성
- 기간별, 금액 별, 카테고리별, page에 따라 내역 조회 가능
** 추천
-
구현 기능
- 카테고리별 당일 예산 추천 및 당월 예산 추천
-
구현 방법
- 당일 예산은 자정까지 redis에 기록하여 빠른 조회 가능
- 당월 추천은 본인의 일주일 지출, 모든 사용자의 평균 월별 지출에 따라 변경
** 통계
-
구현 기능
- 사용자가 카테고리마다 일별 사용한 금액 기록
-
구현 방법
- 달의 마지막 날이 지남에 따라 해당 월, 일의 금액을 누적하여 기록
- 스케줄링을 통해서 당일, 당월 내역을 로깅 및 DB에 기록
-
프로젝트의 일정 진행이 잘 되었는지?
- 각 task가 오류나 새로운 기술 사용에 따른 학습에 시간을 투여하다보니, 예상한 시간보다 하루에 더 많은 시간을 투자하였으며 그에 따라 0.5정도 task의 진행속도가 늦어졌습니다. 하지만 처음 마일스톤을 기획할 때부터 해당 사항을 고려하여 마지막 날에 일정을 적게 잡아두어서 마감 기한내에 프로젝트를 완성할 수 있었습니다.
-
무엇을 고려하면서 작업하였는지?
- 추후 유지보수와 v2 개발을 위해서 각 메소드나 로직에 대해서 주석을 사용하고, 관련된 기능을 class 단위로 분리하여 개발을 진행하였습니다. 또한, 팀프로젝트처럼 git에서 각 기능에 대해 branch를 분리하여 pr을 제출하고 issue도 기록하는 방식으로 프로젝트를 진행하려고 노력하였습니다.
-
카테고리를 공유 vs 개별 중 어떻게 구성할까?
- 모든 사용자의 평균 수치를 계산해야함에 따라 개별 카테고리 생성에 비해 공유하는 카테고리가 유사한 이름이나 동일 항목에 대한 평균 처리가 수월할 것이라는 판단을 하였으며, 카테고리의 개수를 10개로 제한하여 큰 범위로 각 예산이 관리될 수 있도록 구성하고자 하였습니다.
-
통계 정보를 어떻게 설계 및 기록할까?
- 본인의 일주일 평균 지출과 한달 지출 금액 정보가 필요했기 때문에 각 내용을 고려했을 때, 당일 지출 내역의 기록과 해당 내용을 누적하여 달의 지출 기록이 필요하다는 생각에 따라 각 내용에 대한 record와 statistics 테이블을 구성하였습니다. 그에 따라 해당 정보가 스케줄링에 따라 자정에 전날 지출 정보를 기록하도록 구성하였습니다.