BLOG
은행 및 금융 기관은 매주 수천 건의 신용 신청을 검토합니다. 이러한 신용 승인 프로세스를 수행하기 위해 금융 기관에서는 W2, 은행 거래 명세서 및 공과금 청구서와 같은 문서를 검토하는 데 많은 시간과 리소스를 투자해야 합니다. 이때 조직은 신용 신청에 대한 결정을 기다리는 차용인을 고려해야 하며, 낮은 처리 시간으로 신청을 신속하게 처리하는 프로세스가 필요합니다.
금융기관은 기계 학습을 사용하는 자동화된 신용 승인 어시스턴트를 통해 프로세스를 가속화하고 비용을 절감하며, 더 빠른 결정으로 더 나은 고객 경험을 제공할 수 있습니다. 은행과 핀테크는 고객의 재무 문서를 검토하고 즉시 결정을 내릴 수 있는 가상 에이전트를 구축할 수 있습니다. 효과적인 신용 승인 프로세스를 구축하면 고객 경험이 향상될 뿐만 아니라 비용도 절감되죠.
오늘 포스팅에서는 대출 승인에 필요한 재무 문서를 검토하고 원활한 고객 경험을 위해 즉시 결정을 내리는 가상 신용 승인 어시스턴트를 구축하는 방법을 알아보겠습니다. 이 솔루션은 Amazon Lex , Amazon Textract 및 Amazon Connect를 사용합니다.
솔루션 개요
AWS CloudFormation 템플릿을 사용하여 솔루션을 배포할 수 있는데요, 이 솔루션은 Amazon Lex를 사용하여 가상 에이전트를 생성하고 이를 Amazon Connect와 연결합니다. Amazon Connect는 고객과의 대화 인터페이스 역할을 하고 대출 신청자에게 필요한 문서를 업로드하도록 요청합니다. 문서는 해당 고객에게만 사용되는 Amazon Simple Storage Service (Amazon S3) 버킷에 저장됩니다.
이 솔루션은 완전한 서버리스이며 Amazon S3를 사용하여 프런트 엔드를 호스팅하는 정적 웹 사이트를 저장하고 나머지 요청을 활성화하기 위해 사용자 지정 JavaScript를 사용합니다. Amazon CloudFront는 웹 사이트에 대한 퍼블릭 프런트 엔드를 허용하는 CDN(콘텐츠 전송 네트워크) 역할을 합니다. CloudFront는 개발자 친화적인 환경 내에서 짧은 지연 시간과 높은 전송 속도로 전 세계 고객에게 데이터, 비디오, 애플리케이션 및 API를 안전하게 제공하는 빠른 CDN 서비스입니다.
이것은 실험을 위해 쉽게 배포할 수 있도록 설계된 샘플 프로젝트입니다. 이 솔루션의 AWS Identity and Access Management (IAM) 정책 권한은 최소 권한을 사용하지만 배포된 CloudFront 및 Amazon API Gateway 리소스는 공개적으로 액세스할 수 있습니다. CloudFront 배포 및 API Gateway 리소스를 보호하기 위한 적절한 조치를 취하려면 Amazon API Gateway에서 보안 액세스 구성 및 콘텐츠에 대한 액세스 제한을 각각 참조하세요.
또한, 백엔드에는 두 개의 AWS Lambda 함수에 대한 HTTP 경로가 있는 API Gateway가 있습니다. 첫 번째 함수는 채팅을 위해 Amazon Connect와의 세션을 생성합니다. 두 번째는 프런트 엔드에서 가져온 미리 서명된 URL 링크를 Amazon Connect에서 Amazon Lex로 전달합니다. Amazon Lex는 연결된 Lambda 함수를 트리거하고 Amazon Textract가 문서를 읽고 문서의 모든 필드와 정보를 캡처하도록 합니다. 이 기능은 또한 조직에서 이전에 정의한 비즈니스 프로세스를 기반으로 신용 결정을 내립니다. 이 솔루션은 Amazon Connect와 통합되어 고객이 프로세스를 통해 어려움을 겪거나 도움이 필요한 경우 고객 센터 상담원에게 연결할 수 있습니다.
다음 예는 봇과 차용자 간의 상호 작용을 보여줍니다.
다음 다이어그램은 솔루션 아키텍처를 보여줍니다.
솔루션 워크플로는 다음과 같습니다.
- 고객은 S3 버킷에서 웹 페이지를 가져와 JavaScript를 웹 브라우저로 보내는 CloudFront URL로 이동합니다.
- 웹 브라우저는 웹 페이지를 렌더링하고 API Gateway에 대한 API 호출을 수행합니다.
- API Gateway는 연결된 Lambda 함수를 트리거합니다.
- 이 함수는 Amazon Connect로 startChatContact API 호출을 시작하고 이와 연결된 contact flow를 트리거합니다.
- Amazon Connect는 발화와 함께 Amazon Lex를 트리거하여 의도를 분류합니다. 의도가 분류된 후 Amazon Lex는 필요한 슬롯을 추출하고 의도를 이행하기 위해 문서를 업로드하도록 고객에게 요청합니다.
- 신청자는 채팅 창의 첨부 파일 업로드 아이콘을 사용하여 W2 문서를 S3 버킷에 업로드합니다.
모범 사례로 AWS Key Management Service (AWS KMS) 를 사용하여 S3 버킷에 대한 저장 데이터 암호화를 구현하는 것이 좋습니다. 또한 버킷 정책을 S3 버킷에 연결하여 전송 중에 데이터가 항상 암호화되도록 할 수 있습니다. S3 버킷에 대한 서버 액세스 로깅을 활성화하여 보안 및 액세스 감사를 지원하는 요청의 세부 레코드를 캡처하는 것이 좋습니다. 자세한 내용 은 Amazon S3의 보안 모범 사례를 참조하세요.
- 웹 브라우저는 업로드된 이미지의 미리 서명된 URL을 검색하기 위해 Amazon Connect를 호출합니다. Lambda 함수가 로직을 실행한 후 몇 분 후에 미리 서명된 URL이 만료되는지 확인하세요.
- 문서가 성공적으로 업로드되면 웹 애플리케이션은 API Gateway에 대한 API 호출을 수행하여 Amazon Lex 세션 속성에서 사용할 파일 위치를 업데이트합니다.
- API Gateway는 Lambda 함수를 트리거하여 W2 사전 서명된 URL 위치를 전달합니다. 이 함수는 W2 문서의 미리 서명된 URL로 Amazon Lex의 세션 속성을 업데이트합니다.
- 웹 브라우저는 또한 슬롯을 로 업데이트하여 uploaded의도를 충족합니다.
- Amazon Lex는 W2 이미지 데이터를 다운로드하고 처리를 위해 Amazon Textract로 보내는 Lambda 함수를 트리거합니다.
- Amazon Textract는 W2 이미지 문서에서 모든 필드를 읽고 키-값 쌍으로 변환하고 데이터를 다시 Lambda 함수로 전달합니다.
Amazon Textract는 AWS와 고객 간의 데이터 보호 책임을 설명하는 AWS 공동 책임 모델을 준수합니다. 자세한 내용은 Amazon Textract의 데이터 보호를 참조하세요.
- Lambda는 대출 신청 평가를 위해 W2 데이터를 사용하고 그 결과를 웹 브라우저에 반환합니다.
전송 중인 데이터는 TLS를 사용하여 보호되며 저장 데이터를 암호화하는 것이 좋습니다. S3 버킷 내부의 데이터 보호에 대한 자세한 내용은 추가 AWS 서비스를 사용하여 Amazon S3에 저장된 민감한 데이터의 보안 강화를 참조하십시오.
전제 조건
이 연습의 경우 다음의 전제 조건이 있어야 합니다.
- AWS 계정
- us-east-1 리전의 Amazon Connect 고객 센터 인스턴스. 기존 것을 사용하거나 새로 생성할 수 있습니다. 지침은 Amazon Connect 시작하기를 참조하십시오. 기존 Amazon Connect 인스턴스가 있고 채팅이 활성화되지 않은 경우 기존 Amazon Connect 컨택 센터에서 채팅 활성화를 참조하십시오.
- Amazon Connect에서 활성화된 채팅 첨부 파일. 지침은 채팅을 사용하여 파일을 공유하기 위해 첨부 파일 활성화를 참조하십시오. CORS 설정의 경우 *와일드카드 AllowedOrigin를 사용하는 옵션 2를 사용합니다.
- GitHub 저장소에 있는 예제 프로젝트. 로컬 머신에서 이 리포지토리를 복제하고 AWS Serverless Application Model (AWS SAM)을 사용하여 프로젝트를 배포해야 합니다. AWS SAM CLI를 설치하고 AWS 자격 증명을 구성하려면 AWS SAM 시작하기 를 참조하십시오.
- AWS SAM 배포를 지원하는 Python 3.9 런타임.
Amazon Connect flow 가져오기
Amazon Connect flow를 가져오려면 다음 단계를 완료해야 합니다.
- Amazon Connect 인스턴스에 로그인합니다.
- Routing에서 Contact Flows를 선택합니다.
- Create contact flow를 선택합니다.
- Save 메뉴에서 Import Flow를 선택합니다.
- Select를 선택하고 /flow 하위 디렉토리에 있는import flow 파일(Loan_App_Connect_Flow)을 선택합니다.
- Flow를 저장합니다. 아직 게시하지 마십시오.
- Show additional flow information을 확장하고 복사 아이콘을 선택하여 ARN을 캡처합니다.
- 다음 단계에서 배포할 CloudFormation 템플릿의 매개변수로 사용하기 위해 이 ID를 저장합니다.
arn:aws:connect:us-east-1:123456789012:instance/11111111-1111-1111-1111-111111111111/contact-flow/22222222-2222-2222-2222-222222222222
Amazon Connect 인스턴스 ID는 ARN의 instance 바로 다음에 오는 슬래시 사이의 긴 영숫자 값입니다. 이 포스팅에서 인스턴스 ID는 11111111-1111-1111-1111-111111111111입니다.
contact-flow Contact flow ID는 AR의 contact-flow에서 슬래시 뒤의 긴 값입니다. 오늘의 flow ID는 22222222-2222-2222-2222-222222222222입니다.
AWS SAM으로 배포
인스턴스 및 flow ID가 캡처되면 프로젝트를 배포할 준비가 된 것입니다.
- Terminal window를 열고 선택한 디렉토리에 GitHub 리포지토리를 복제합니다.
- amazon-connect-virtual-credit-agent디렉토리로 이동하고 GitHub 리포지토리의 배포 지침을 따릅니다.
- 다음 단계를 위해 배포의 출력 섹션에서 Amazon Lex 봇 이름을 기록합니다 ( Loan_App_Bot기본 이름을 수락한 경우 호출됨).
- AWS SAM 배포가 성공적으로 완료되면 이 지침으로 돌아갑니다.
Contact flow blocks 업데이트
Contact flow block을 업데이트하려면 다음 단계를 완료해야 합니다.
- Amazon Connect 인스턴스에 로그인
- Routing에서 고객 Contact Flows를 선택
- Loan_App_Flow를 선택합니다.
- Get customer input 블록을 선택합니다.
- Amazon Lex 섹션에서 이름이 지정된 봇 Loan_App_Bot과 이전에 생성한 dev 별칭을 선택합니다.
- Save를 선택합니다.
- Set working queue 블록을 선택합니다.
- X 아이콘을 선택하고 드롭다운 메뉴에서 BasicQueue를 선택합니다.
- Save를 선택합니다 .
- Flow를 저장합니다.
- Flow를 게시합니다.
솔루션 테스트
이제 솔루션을 테스트할 준비가 되었습니다.
- 채팅을 위한 Amazon Connect 에이전트를 설정하기 위해 Amazon Connect 인스턴스에 로그인합니다.
- 대시보드에서 전화 아이콘을 선택하여 별도의 창에서 CCP(Contact Control Panel)를 엽니다.
- CCP에서 상담원 상태를 사용 가능으로 변경합니다 .
- CloudFormation 스택의 Outputs 탭에서 cloudFrontDistribution에 대한 값을 선택합니다.
이는 CloudFront URL에 대한 링크이며, 대출 서비스 봇이 있는 웹페이지로 리디렉션됩니다. 플로팅 액션 버튼(FAB)은 화면 오른쪽 하단에 있습니다.
- FAB를 선택하여 채팅 봇을 엽니다.
- 환영 메시지를 받은 후 I need a loan을 입력합니다.
- 메시지가 표시되면 대출 유형을 선택하고 대출 금액을 입력합니다.
- W2 문서의 이미지를 업로드합니다.
샘플 W2 이미지 파일은 /img 하위 디렉토리의 프로젝트 리포지토리에 있습니다. 파일 이름은 w2.png입니다.
이미지가 업로드된 후 봇은 신청서를 제출할 것인지 묻습니다.
5. Yes를 선택하여 제출합니다.
제출 후 봇은 W2 이미지를 평가하고 응답을 제공하며 몇 초 후 상담원과 연결됩니다. CCP에서 채팅 연결 요청이 표시되어야 합니다.
6. 수락할 요청을 선택합니다.
이제 에이전트가 채팅 사용자와 연결되었습니다. 대화의 각 측면을 시뮬레이션하여 채팅 세션을 테스트할 수 있습니다.
7. 완료되면 End Chat을 선택합니다.
문제 해결
스택을 배포한 후 CloudFront URL을 볼 때 Amazon S3 권한 오류가 표시되면 도메인이 아직 준비되지 않았음을 의미합니다. CDN이 준비되는 데 최대 1시간이 걸릴 수 있습니다.
첨부 파일을 추가할 수 없으면 CORS 설정을 확인해야 합니다. 지침은 채팅을 사용하여 파일을 공유하기 위해 첨부 파일 활성화를 참조하십시오. *CORS 설정의 경우 AllowedOrigin에 와일드카드를 사용하는 옵션 2를 사용합니다.
정리
향후 요금이 발생하지 않도록 하려면 CloudFormation 스택을 삭제하여 생성된 모든 리소스를 제거해야 합니다.
결론
오늘 포스팅에서는 대출 신청 처리 솔루션을 빠르고 안전하게 설정하는 방법을 시연해 보았습니다. 미사용 데이터와 전송 중인 데이터는 모두 암호화되고 보호됩니다. 이 솔루션은 Amazon Connect 및 Amazon Lex가 고객 참여를 위한 대화형 인터페이스를 제공하는 다른 셀프 서비스 처리 플로우를 구축하기 위한 청사진 역할을 할 수 있습니다. 이 아키텍처를 사용하여 다른 솔루션을 구축할 수 있기를 기대합니다.
메가존클라우드 TechBlog는 AWS BLOG 영문 게재 글이나 관련 기사 중에서 한국 사용자들에게 유용한 정보 및 콘텐츠를 우선적으로 번역하여 내부 엔지니어 검수를 받아 정기적으로 게재하고 있습니다. 추가로 번역 및 게재를 희망하는 글에 대해서 관리자에게 메일 또는 SNS 페이지에 댓글을 남겨주시면, 우선적으로 번역해서 전달해드리도록 하겠습니다.