매일의 지출내역을 사용자가 직접 기록하는 프로젝트입니다. 매달 혹은 연말에 그동안의 지출 내역과 카테고리별 지출내역을 알려줘서 본인의 소비습관을 알고, 더 좋은 소비습관을 만들어갈 수 있게 도와주는 프로젝트를 만들고 싶었습니다.
뱅크샐러드를 참조하여 생각한 프로젝트인데요, 뱅크샐러드처럼 카드와 계좌를 연동해서 지출 내역을 자동 업로드하기에는 지금 제 수준에서는 어렵다고 생각해 사용자가 직접 입력하는 것으로 변경했습니다.
- Spring Security, JWT를 이용한 로그인 로직 이해
- Redis로 cache 구현
- SQL group by 를 이용해 데이터 조작 방법 익히기
🗓️ 작업기간 : 2022.12.21 ~ 2023.01.23
👨💻 투입인원 : 1명
- Java8
- SpringBoot 2.7.7, Spring Data JPA, Spring Security
- JWT
- MariaDB, Redis 7.0.5
- QueryDSl
- Test(Junit5, Mockito)
- Swagger (API Documentation)
- GitHub
- IntelliJ
- ERDCloud, Postman
- API Docs : link
공통
회원가입 - 상세보기
- 이메일 중복과 인증 절차를 진행합니다.
- 인증까지 완료된 사용자만 회원가입이 가능합니다.
- 이름, 이메일, 비밀번호를 입력할 수 있습니다.
로그인
- 회원가입한 시용자만 로그인 가능합니다.
- 이메일과 비밀번호가 일치하는지 확인합니다.
- 위 조건을 다 통과한다면 JWT access 토큰을 응답합니다.
회원
- 로그인한 회원만 사용할 수 있는 기능입니다.
- 본인의 정보만 작업할 수 있습니다.
- 회원 정보 조회
- 이름, 이메일, 비밀번호, 이번달 예산 가능
- 회원 정보 재설정
- 이름, 비밀번호, 예산 가능
- 이메일은 재설정 불가능
- 회원 탈퇴
- 사용자가 가지고 있는 모든 정보를 삭제합니다
예산
- 로그인한 회원만 사용할 수 있는 기능입니다.
- 본인의 예산만 작업할 수 있습니다.
- 매달 시작할 때 예산을 설정할 수 있습니다.
- 생성된 예산에 한해 수정 가능합니다.
매일 지출내역 - 상세보기
- 로그인한 회원만 사용할 수 있는 기능입니다.
- 본인의 매열 지출내역만 작업할 수 있습니다.
- 지출내역을 CRUD 할 수 있습니다.
- 선택한 달의 모든 지출내역 리스트를 조회할 수 있습니다.
- 조회시 DB의 부하를 줄일 수 있게 캐시를 구현했습니다.
검색
- 로그인한 회원만 사용할 수 있는 기능입니다.
- 키워드로 지출내역을 검색할 수 있습니다.
- 거래처와 메모에 키워드를 포함하는 지출내역 리스트를 응답합니다.
카테고리
- 로그인한 회원만 사용할 수 있는 기능입니다.
- 본인의 카테고리만 작업할 수 있습니다.
- 카테고리 CRUD를 할 수 있습니다.
Monthly 지출내역 - 상세보기
- 로그인한 회원만 사용할 수 있는 기능입니다.
- 본인의 매열 지출내역만 작업할 수 있습니다.
- 한달치 지출내역을 합산해 카테고리 별로 분류해서 조회합니다.
Yearly 총 결산
- 로그인한 회원만 사용할 수 있는 기능입니다.
- 본인의 매열 지출내역만 작업할 수 있습니다.
- 이전년도들만 조회 가능합니다.
- 올해를 포함한 미래는 조회 불가능합니다.
- 이전에 저장한 총 지출내역과 카테고리별 지출 중 해당 년도의 값을 가져온 뒤 합산합니다.
- 예) 1위 식비(xxx만원), 2위 쇼핑(xxx만원),,,