본문 바로가기
BackEnd/Project

[Loan] Ch05. 대출 집행 테이블 정의

by 개발 Blog 2024. 9. 13.

공부 내용을 정리하고 앞으로의 학습에 이해를 돕기 위해 작성합니다.

 

대출 집행 도메인

 

집행이란?

대출 집행이란 대출 신청자에게 실제로 대출금을 전달하는 절차를 말한다. 이는 대출 프로세스의 마지막 단계로, 모든 심사와 계약 절차가 완료된 후 대출금을 지급하는 과정이다.

 

1. 대출 신청 완료

대출 프로세스의 첫 번째 단계는 대출 신청서의 작성이다. 신청자가 대출을 요청하면 약관에 동의하고 필요한 서류를 제출하여 신청 절차가 완료된다. 이때 대출 신청서와 함께 제출된 서류는 대출 심사를 위한 중요한 자료로 활용된다.

 

2. 신청 심사 완료

대출 신청이 완료된 후, 심사자가 대출 신청서를 기반으로 신청자의 대출 가능 여부를 심사한다. 심사 과정에서 신청자의 신용도와 상환 능력이 평가되며, 이를 통해 대출 승인 여부와 승인 금액이 결정된다. 심사 과정이 완료되면, 대출 계약에 필요한 조건이 제시된다.

 

3. 대출 계약 및 집행

심사가 완료되고 대출 조건에 대한 합의가 이루어지면, 대출 계약을 체결하게 된다. 이 계약서에는 대출금액, 이자율, 상환 기간 등의 세부 사항이 포함된다. 계약이 완료되면, 이제 대출금을 지급하는 집행 단계로 넘어간다.

대출 집행은 대출 신청자에게 실질적으로 대출금을 지급하는 단계이다. 집행은 대출 계약서에 명시된 조건에 따라 이루어지며, 이후 대출금이 지급된다.

 

4. 대출 상환

대출 집행 후에는 상환 일정에 따라 차주는 대출금을 갚기 시작한다. 대출금 상환은 정해진 주기마다 이자를 포함한 금액을 갚는 방식으로 이루어지며, 상환이 완료될 때까지 대출금은 지속적으로 차주의 상환 계획에 따라 관리된다.

차주는 매월 또는 일정 기간마다 정해진 금액을 상환하며, 대출 잔고가 점차 줄어들게 된다. 또한, 상환 중 발생하는 이자는 대출 잔고에 반영되어 상환 금액에 영향을 미치게 된다.

 

테이블 정의

이번에는 대출 집행 기능을 구현하며, 회차별로 나눠서 지급하는 방식 대신 한 번에 지급하는 기능을 구현한다. 아래는 대출 집행 관련 데이터를 관리하기 위한 Entry 엔티티의 정의이다.

package com.example.loan.domain;

import lombok.*;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import org.hibernate.annotations.Where;

import javax.persistence.*;
import java.math.BigDecimal;

@Entity
@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
@DynamicInsert
@DynamicUpdate
@Where(clause = "is_deleted=false")
public class Entry extends BaseEntity {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(nullable = false, updatable = false)
    private Long entryId;

    @Column(columnDefinition = "bigint NOT NULL COMMENT '신청 ID'")
    private Long applicationId;

    @Column(columnDefinition = "decimal(15, 2) NOT NULL COMMENT '집행 금액'")
    private BigDecimal entryAmount;


    //이율
    
}
  1. entryId: 대출 집행에 대한 고유 식별자이다. 이 값은 자동으로 생성되며, 업데이트되지 않는다.
  2. applicationId: 대출 신청과 연관된 ID이다. 이 필드를 통해 어떤 신청서에 대해 대출금이 집행되었는지 알 수 있다.
  3. entryAmount: 집행된 대출 금액이다. 대출 심사에서 승인된 금액이 실제로 대출 신청자에게 지급되는 금액을 의미한다. 이번 구현에서는 한 번에 전체 금액을 지급하는 방식으로 처리된다.