Account 시스템은 사용자와 계좌의 정보를 저장하고, 외부 시스템으로부터의 거래 요청을 처리하는 시스템입니다. 거래 요청에 따라 계좌의 잔액을 줄이거나(결제) 늘리는(결제 취소) 기능을 제공합니다. 이 시스템은 사용자, 계좌, 거래 정보를 관리합니다.
- 사용자 관리: 사용자 정보 조회 기능 제공
- 계좌 관리: 계좌 추가, 해지, 확인 기능 제공
- 거래 관리: 잔액 사용, 잔액 사용 취소, 거래 확인 기능 제공
- 사용자는 최대 10개의 계좌를 가질 수 있습니다.
- 계좌 번호는 10자리의 정수로 중복이 불가능하며, 순차적으로 증가합니다.
- 프레임워크: Spring Boot, Java
- 데이터베이스: H2 DB (memory DB 모드)
- 데이터 접근: Spring Data JPA
- 캐시: Embedded Redis
- API 요청/응답 형식: JSON
-
계좌 생성 API
- URL:
POST /account - 파라미터: 사용자 아이디, 초기 잔액
- 응답: 사용자 아이디, 계좌번호, 등록일시
- URL:
-
계좌 해지 API
- URL:
DELETE /account - 파라미터: 사용자 아이디, 계좌 번호
- 응답: 사용자 아이디, 계좌번호, 해지일시
- URL:
-
계좌 확인 API
- URL:
GET /account?user_id={userId} - 파라미터: 사용자 아이디
- 응답: List<계좌번호, 잔액>
- URL:
-
잔액 사용 API
- URL:
POST /transaction/use - 파라미터: 사용자 아이디, 계좌 번호, 거래 금액
- 응답: 계좌번호, 거래 결과 코드, 거래 아이디, 거래금액, 거래일시
- URL:
-
잔액 사용 취소 API
- URL:
POST /transaction/cancel - 파라미터: 거래 아이디, 계좌번호, 취소 요청 금액
- 응답: 계좌번호, 거래 결과 코드, 거래 아이디, 거래금액, 거래일시
- URL:
-
거래 확인 API
- URL:
GET /transaction/{transactionId} - 파라미터: 거래 아이디
- 응답: 계좌번호, 거래종류, 거래 결과 코드, 거래 아이디, 거래금액, 거래일시
- URL:
- aop: AOP 관련 클래스
- config: Redis 및 JPA 설정
- controller: API 엔드포인트 및 요청/응답 클래스
- domain: JPA 엔티티
- dto: DTO 클래스
- exception: 커스텀 Exception 및 Exception Handler 클래스
- repository: Repository 인터페이스
- service: 비즈니스 로직 클래스
- type: 다양한 enum 클래스