2024. 4. 30. 11:49ㆍ개발일지
프로젝트 개발 동기 및 목표
6개월 간의 수업이 끝난 후,
집에서 개인적으로 프로젝트를 진행해보려고 한다.
과연 나 혼자서 아무의 도움 없이 수업 시간에 배운 내용을 기억해 내 프로그램을 구현해 낼 수 있을지 의문이었다.
일단 도전!
나의 실 생활에 필요한 프로그램을 찾아 프로젝트 주제로 선정해야겠다는 생각하던 중,
'현명한 소비를 하기 위하여 가계부를 작성해야겠다.' 라는 생각이 문득 들어,
project 주제로 가계부를 구현해보는 것을 선택하였다.
Spring Boot, JPA, Spring Security 등의 기술스택들에 대한 개념 및 사용법을 다시 한번 숙지하고, 동작원리를 파악하여 프로젝트를 완성할 수 있도록 하였으며, 또한 개발 과정에서 맞이하는 여러가지 에러 및 궁금증들을 자세하게 찾아보고 정리하면서 전체적인 흐름 파악을 목표로 두었다.
작업 기간
4/10 ~ 4/ 26 (약 3주 정도 소요)
프로젝트 개발 환경
- 운영체제 : Window 11
- 통합개발환경(IDE) : IntelliJ
- JDK 버전 : JDK 17
- 스프링 부트 버전 : 3.2.3 (중간에 3.2.4버전으로 바뀜)
- 데이터 베이스 : MySQL
- 빌드 툴 : Gradle
- 관리 툴 : GitHub
프로젝트 기술 스택
- 프론트엔드
- HTML, CSS, JS, BootStrap, Thymeleaf - 백엔드
- Spring Boot, Spring Security, Spring Data JPA
- 데이터베이스
- Hibernate, MySQL
프로젝트 구현 기능
- 회원 (Member)
- 회원가입 / 로그인 / 로그아웃 / 수정 / 삭제 / 마이페이지
- 마이페이지 : 로그인 한 유저만 접근 가능함.
- 기존 로그인 시에만 비밀 번호 보안 작업을 하였던 부분을 회원 가입 시에도
PasswordEncoder를 적용하였으며, 보안을 더욱 강화하여 회원 가입 및 로그인 시 둘 다 비밀번호를 암호화 하여 저장하였다.
- Authentication을 오버라이딩하여 암호화 된 회원의 비밀번호를 확인하여 로그인 할 수 있도록 구현하였다.
- 가계부 (AccountBook)
- 가계부 등록 / 수정 / 삭제 / 조회 / 상세 보기 / 월별 조회 / 내역별 조회
- 인증된 유저의 정보로 회원을 조회하여 가계부를 출력한다.
- 가계부 리스트에서 수입 내역, 지출 내역을 update하여 화면에 나타나게 하였다.
- 거래일 조회, 내용 조회, 수입 내역 조회, 지출 내역 조회, 은행 내역 조회, 카드 내역 조회, 현금 내역 조회 하는 쿼리를 작성하였다. 내용을 선택했을 경우에만 keyword를 작성할 수 있게 설정하였으며, 나머지는 자동으로 값을 넘겨주게 하였다.
- 가계부 작성 시 유효성 검사를 통해 날짜 형식을 'yyyy-MM-dd' 형식으로 입력하지 않으면 예외 발생 처리를 추가하였다.
Java영역 및 View 영역에 모두 유효성 검사를 작성하였다.
- 관리하기 용이하게 하기 위하여 수입, 지출 및 은행, 카드, 현금 타입은 열거형으로 생성하였다.
각 타입 별로 조회할 수 있는 JPA 쿼리를 작성하였다.
ERD 설계
API 설계
GitHub
https://github.com/AREUMRR/accountbook
GitHub - AREUMRR/accountbook: accountbook
accountbook. Contribute to AREUMRR/accountbook development by creating an account on GitHub.
github.com
'개발일지' 카테고리의 다른 글
Personal Project - 가계부 구현(2) (0) | 2024.05.08 |
---|---|
Personal Project - 가계부 구현(1) (0) | 2024.05.08 |
Team project - 쇼핑몰 구현(5) (0) | 2024.04.29 |
Team project - 쇼핑몰 구현(4) (0) | 2024.04.29 |
Team project - 쇼핑몰 구현(3) (0) | 2024.04.29 |