안녕하세요
해당 글은 "스프링부트를 이용한 계좌 시스템 개발 프로젝트"를 진행하면서 배웠던 점 & 느꼈던 점을 정리하고자 제작되었습니다.
프로젝트 기획자 로부터 프로젝트 소개가 들어왔습니다.
A 회사는 신규 사업으로 핀테크를 하려고 합니다.
핀테크를 하려면 제일 먼저 필요한 것은 바로 사용자들의 잔액을 관리할 수 있는 계좌 시스템입니다.
계좌 시스템이 있어야 사용자의 잔액을 회사에서 계속 관리하고 사용자들은 그 잔액을 쓰기 위해 우리의 핀테크를 자연스럽게 사용하게 됩니다.
계좌 시스템을 만들어주세요 ❗️
저는 기획자로부터 상세 기획서를 받았습니다.
한번 볼까요?
계좌 시스템은 사용자와 계좌의 정보를 저장하고 있으며, 외부 시스템에서 거래를 요청한 경우
거래 정보를 받아서 계좌에서 잔액을 거래 금액만큼 줄이거나(결제), 거래 금액만큼 늘리는(결제 취소)
거래 관리 기능을 제공하는 시스템입니다.
크게 사용자, 계좌 ,거래의 정보를 저장해야 합니다.
사용자는 신규 등록, 해지, 중지, 사용자 정보 조회 등의 기능을 제공해야 하지만 최초 버전에서는 빠른 서비스 오픈을 위해 사용자 등록, 해지, 중지 기능은 제공하지 않고 데이터베이스 수기 입력을 합니다.
계좌는 계좌 추가, 해지, 확인 기능을 제공합니다. ❗️
한 사용자는 최대 10개의 계좌를 가질 수 있고 그 이상의 계좌는 생성하지 못합니다.
계좌번호는 10자리의 정수로 이루어지며 중복이 불가능합니다.
빠르고 안정적인 진행을 위해 계좌번호는 숫자 증가하도록 합니다.
거래는 잔액 사용, 잔액 사용 취소, 거래 확인 기능은 제공합니다. ❗️
계좌 🏦
계좌 생성 API
Parameter : 사용자 아이디, 초기 잔액
정책 : 사용자가 없는 경우 or 계좌 10개인 경우 실패 응답
응답 : 사용자 아이디, 계좌 번호, 등록 일시
계좌 해지 API
계좌 확인 API
거래 💰
활용 기술 스택 🦾
- Spring boot 2.7.6 (JDK 11)
- Gradle
- Junit 5
- H2 DB
- JPA
- Redis
- Mockito
- Lombok
엔티티(Entity) 구조
프로젝트 build.gradle
application.yml
또한 새로운 라이브러리나 프레임워크를 사용하면서 배웠던 점 & 느꼈던 점 위주로 글을 작성하려고 합니다.
자 그럼 시작하겠습니다 🚀