정지용
프로젝트 목록
백엔드Go

KYB 기업심사 REST API

Go + Echo 기반 멀티테넌트 KYB(Know Your Business) 심사 플랫폼. 기업 등록부터 3단계 심사, WLF 스크리닝, 재제출 워크플로까지 지원.

kyb-api최근 업데이트 2026년 7월 27일

개요

PG사·금융기관이 기업 고객을 심사하기 위한 백엔드 API입니다. 신청자는 7단계에 걸쳐 법인 정보·실소유주·이사진·첨부파일을 등록하고, 심사자는 First/Second/Third 3단계 심사를 수행합니다. WLF API를 통한 제재리스트 스크리닝, Common API 연동, S3 암호화 업로드, SES 이메일 발송, 카카오 알림톡 등을 지원하며, PostgreSQL 기반 멀티테넌트 아키텍처로 설계되었습니다. Atlas를 이용한 스키마 마이그레이션과 Testcontainers 기반 통합 테스트 인프라를 갖추고 있습니다.

담당 역할

Go 기반 백엔드 API 설계 및 구현. 멀티테넌트 아키텍처 설계, 상태머신 기반 심사 워크플로 구현, WLF/Common API 연동, 7단계 등록 프로세스 개발, Testcontainers 통합 테스트 환경 구축.

아키텍처 다이어그램

레포지토리 분석 결과를 바탕으로 자동 생성된 구조도입니다.

아키텍처

전체 아키텍처 및 외부 연동

KYB API의 계층 구조와 외부 서비스(WLF, Common API, AWS S3/SES) 연동 관계를 보여줍니다.

다이어그램을 그리는 중…
흐름도

7단계 기업 등록 프로세스

신청자가 기업 정보를 등록하는 전체 워크플로를 순서도로 나타냅니다.

다이어그램을 그리는 중…
상태 전이

3단계 심사 워크플로 상태 전이

First/Second/Third 심사 단계와 승인/반려/재제출 상태 전이를 나타냅니다.

다이어그램을 그리는 중…

기술스택

각 기술을 이 프로젝트에서 어떤 용도로 썼는지 정리했습니다.

언어

  • Go메인 백엔드 언어 (Go 1.26.1)

프레임워크

  • EchoHTTP 라우팅 및 미들웨어 프레임워크 (v4)

데이터베이스

  • PostgreSQL메인 데이터베이스, 멀티테넌트 스키마 분리
  • MySQLSQLC 코드 생성용 보조 DB

도구

  • Atlas스키마 마이그레이션 관리 (HCL 기반)
  • SQLC타입 안전 SQL 쿼리 코드 생성
  • SwaggerOpenAPI 스펙 문서 자동 생성

인프라

  • AWS S3첨부파일 저장소 (AES-CBC 암호화 업로드)
  • AWS SESHTML 템플릿 이메일 발송
  • Sentry에러 추적 및 모니터링

DevOps

  • Docker로컬 개발 환경 및 배포 컨테이너화

테스트

핵심 포인트

  • 멀티테넌트 아키텍처: 모든 저장소 메서드가 customerId 파라미터를 받아 고객사별 데이터 격리
  • 상태머신 기반 워크플로: 심사 상태 전이를 statemachine 패키지로 관리하며, 14개 API 응답 상태를 매핑
  • 7단계 기업 등록 프로세스: 토큰 생성 → 약관 동의 → 기본 정보 → 상세 정보 → 실소유자 → 이사진 → KYC 최종 등록
  • 외부 서비스 연동: WLF 제재리스트 스크리닝, Common API, AWS S3/SES, 카카오 알림톡 통합
  • 도메인별 모듈 분리: apps/{applicant,public,reviewer,root} 구조로 각 역할별 컨텍스트 격리

문제와 해결

문제PostgreSQL enum 타입 변경 시 마이그레이션 복잡도 증가

해결enum 대신 text + CHECK 제약조건 사용. 값 추가/삭제 시 ALTER TABLE만으로 처리

문제멀티테넌트 환경에서 데이터 격리 보장

해결모든 저장소 메서드에 customerId 파라미터를 명시적으로 전달하고, 미들웨어에서 JWT 토큰으로 추출한 테넌트 정보 주입

문제복잡한 심사 상태 전이 로직 관리

해결상태머신 패키지로 전이 규칙을 중앙화하고, docs/domain/review-status-transitions.md에 단일 진실 소스 문서화

레포지토리 정보

생성
2026년 7월 27일
최근 커밋
2026년 7월 27일
크기
2,776 KB
라이선스
없음

언어 구성

  • Go82.3%
  • Python7.5%
  • Shell3.3%
  • HCL2.8%
  • PLpgSQL2.5%
  • HTML1.2%
  • Makefile0.4%
  • Dockerfile0.0%

이 문서는 2026년 7월 28일 에 자동 분석으로 생성되었습니다.