본문 바로가기
BackEnd/Project

[Loan] Ch01. 핀테크 및 대출 도메인 이해

by 개발 Blog 2024. 9. 11.

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

 

Fintech 란?

  • 금융(Finance)와 기술(Technology)의 합성어이다.
  • 금융이란 자본에 이자를 붙여 돈이 필요한 곳에 자본을 빌려주는 행위이다.
  • IT 기술이 더해져 새로운 금융 형태로 진화하고 있다.

Fintech 산업 사례

 

  • 기존 금융 프로세스를 시스템화한 사례가 많다.
  • 사람 중심의 금융 시스템에서 기술을 더해 효율성을 높이는 형태가 많다.

Fin + Tech or 人

  • 기대와 달리 현실에서는 Fin + 人(사람)의 경우가 많다.
  • 기존 프로세스를 시스템화하고 비즈니스 이해를 통해 새로운 가치를 창출한다.
  • 막대한 시간과 인력 투자가 필요하다.
  • 결국 개발자의 역할은 그 과정을 어떻게 시스템화하고 최적화할 것인지에 있다.

FinTech 산업에서 개발자의 역할

  • 혁신적인 아이디어는 많지만, 이를 어떻게 요건으로 구체화하고 실제로 구현할지가 중요하다.
  • 기술적 Output을 만들어내는 것이 핵심이다.

FinTech 업계에서 원하는 개발자

  • 기술적 완성도뿐만 아니라 비즈니스 도메인을 이해하는 능력이 중요하다.
  • 문제 해결을 위한 합리적인 의사결정 능력도 필수적이다.

FinTech 에서 Tech를 완성하려면

  • 내가 무엇을 만들고 있는지, 왜 만들고 있는지, 그 Output이 어떤 영향을 미칠지 이해해야 한다.
  • 이는 모든 개발자에게 필요한 능력이며, 특히 금융 도메인에서는 그 중요성이 더욱 강조된다.

FinTech 분야의 꽃 대출

  • 금융의 본질 중 하나인 대출은 자본을 필요로 하는 곳에 이자를 붙여 자본을 빌려주는 행위이다.
  • 우리가 알고 있는 대부분의 금융 서비스는 대출과 연관이 깊다.
  • 대출 도메인은 금융의 큰 부분을 차지하며, 개발자의 관점에서 이를 실습하고 배워볼 필요가 있다.

대출 프로세스

대출 상담

  • 대출을 신청하기 위한 첫 단계는 대출 상담이다. 대출 상담에서는 사용자의 대출 요구 사항을 확인하고 적절한 대출 상품을 추천한다.

대출 신청 절차

대출 신청 과정은 사용자가 실제로 대출을 신청하는 절차이다. 신청서 작성, 조건 확인, 서류 제출 등의 절차가 포함된다.

  • 신청 확인: 사용자가 대출 신청 의사를 확인한다.
  • 약관 동의: 대출 약관에 동의해야 한다.
  • 대출 신청서 작성: 대출에 필요한 정보를 입력하고 신청서를 제출한다.
  • 조건 확인: 대출 신청이 가능한지 조건을 확인하고 서류를 등록한다.

대출 조건 제시

대출 신청이 완료된 후, 금융기관은 대출 조건을 사용자에게 제시한다. 사용자는 이 조건을 수락하거나 거절할 수 있다.

 

 

대출 금액 집행

대출 조건을 수락한 후, 금융기관은 대출 금액을 사용자에게 집행한다. 이 과정에서 차주(대출자)는 대출 금액을 수령하게 된다.

 

대출 상환 프로세스

대출 금액이 집행된 후, 사용자는 정해진 상환 기간에 맞춰 대출 상환을 진행하게 된다. 이 과정에서 이자 및 원금을 포함한 금액이 상환된다.

  • 대출 집행 후 상환 시작
  • 정기적으로 상환 진행 (원금 + 이자)
  • 상환 완료 후 대출 종료

대출 프로세스는 금융 서비스의 본질적인 부분 중 하나로, 각 단계에서 사용자의 참여와 금융기관의 절차적 검토가 이루어진다. 이를 통해 사용자는 필요한 자금을 조달하고, 금융기관은 안정적인 대출 집행 및 상환을 관리할 수 있다.

 

전체 과정

기능별 구현 및 테스트 코드 작성

  • 5가지 주요 기능(상담, 신청, 심사, 집행, 상환)을 구현하고 테스트 코드를 작성한다.
  • 기능 목록
    1. 상담: 대출 상담을 통한 초기 정보 수집 및 확인.
    2. 신청: 대출 신청서를 작성하고 제출하는 기능.
    3. 심사: 신청된 대출의 심사 과정을 처리.
    4. 집행: 대출이 승인된 후 금액을 집행하는 기능.
    5. 상환: 사용자가 대출 금액을 상환하는 기능.
  • Spring Boot와 Java의 기능을 이용하여 MVP (Minimum Viable Product) 수준으로 구현한다.
  • MVP: 최소 기능을 가진 프로토타입을 만들어 기본적이면서 핵심적인 대출 기능을 개발한다.

컨테이너 환경에 서비스 배포 및 운영

  • 로컬 Kubernetes 환경 설정
    • 로컬 환경에서 Kubernetes 환경을 설정하여 배포 및 운영을 실습한다.
    • Docker Desktop을 통해 간편하게 로컬에서 Kubernetes를 설정할 수 있다.
  • Docker Image 생성
    • JIB를 활용하여 Docker 이미지를 생성하고, 컨테이너화된 애플리케이션을 준비한다.
  • Kubernetes 배포
    • Skaffold를 사용하여 Kubernetes에 간편하게 배포하는 과정을 실습한다.
    • 이를 통해 실제 서비스 운영에 필요한 배포 환경을 구축해본다.

기술 스택

- OpenJDK 17.0

- Spring Boot 2.7.1

- H2

- MySQL 11.5.2

- Docker 27.1.1

- Kubernetes 1.31.0