KYB 기업심사 REST API
Go + Echo 기반 멀티테넌트 KYB(Know Your Business) 심사 플랫폼. 기업 등록부터 3단계 심사, WLF 스크리닝, 재제출 워크플로까지 지원.
개요
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
DevOps
- Docker로컬 개발 환경 및 배포 컨테이너화
테스트
- TestcontainersPostgreSQL 통합 테스트 환경
핵심 포인트
- 멀티테넌트 아키텍처: 모든 저장소 메서드가 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일 에 자동 분석으로 생성되었습니다.