금융 이상 거래 알림 서비스 POC 단계 개발 분석
1. 금융거래 서비스 관련 API 분석
- 개요 : 사용자의 계좌이체, 카드결제등의 정보를 아는 기능은 핵심 기능으로 API 서비스 자체를 구현 가능한지 분석이 필요함.
1. 마이데이터(본인신용정보관리업)
본인신용정보관리업이란 개인신용정보 전송요구권의 행사를 기반으로 분산되어있는 신용정보를 통합하여 개인에게 제공하는 행위를
영업으로 하는 것을 말함
- 사업자가 본인신용정보관리업을 업태/업종으로 하기 위해서는 위 사업자에 대한 허가가 필요함.
- 허가요건
2022년금융위원회보도자료(이전 자료로 참고용으로만 사용)
- 신용정보협회 본인신용정보관리업 허가요건 바로가기
- 최소 자본금 5억과 보안, 시스템 구성 등 전문인력 보유 등의 요건이 필요한 것으로 파악 됨
- POC 단계에서는 불가능 하다고 판단됨
- 국내 총 허가 기업 수 : 약 56개 (2022년 기준)
- 대표 사업자 : 네이버파이낸셜, 카카오페이, 토스, 뱅크샐러드
- POC 단계에서는 불가능 하다고 판단됨
2. 오픈 뱅킹 Api
- 개요 : 마이데이터를 직접적으로 사용할 수 없고 오픈 뱅킹을 통해 거래내역 조회가 가능한지 검토
- 오픈 뱅킹 Api 를 사용하기 위해서는 전자금융보조업자 등록이 필수적으로 확인됨 (전자금융업자는 더 까다로움)
- 전자금융보조업자 등록은 금융위원회 심사 필요 (심사 절차는 간략히 정리 한 것으로 실제 신청 시 조사 필요)
- 법인사업자
- 신청서, 사업계획서, 자본금 증명, 임원 경력/범죄조회, 보안체계 설명서 제출
- 개발 측면에서는 보안체계 설명서 및 보안 레벨에 맞는 체계를 구축하면서 개발하는 것이 필요함
- 설계 부터 정보보호 관리체계(ISMS, Information Security Management System) 수준으로 보안수준을 유지하면서 개발 하는 것이 필요함.
3. 카카오 및 토스와 제휴를 통한 서비스
- 개요 : 마이데이터, 오픈 뱅킹 api 사용이 아닌 카카오 및 토스의 API 를 사용해서 거래내역 조회가 가능한지 검토
- 현재 카카오 및 토스에서 거래내역 등을 조회할 수 있는 오픈 Api 는 없는 것으로 판단 됨
- 카카오 및 토스는 본인신용정보관리업에 등록된 업체로 관련 정보를 타 업체에게 제공하기 위해서는 그 업체 또한 일정 수준 이상의 자격이 필요한 것으로 판단 됨.
- 일정 자격 이상 입증 후 카카오 및 토스에서 제공하는 API 를 이용해서 거래내역을 조회가 가능한 것으로 파악되나 실제로는 제공하는 API 를 전달 받아봐야 정확한 파악이 가능함
- 카카오 및 토스와 제휴를 통해 API 를 제공 받기 이전에 2. 오픈 뱅킹 API 이 최 우선 과제로 보임
4. 금융결제원 오픈API 개발자 사이트
-
소개
금융결제원 오픈 API 개발자사이트는 금융결제원의 다양한 서비스를 API 형태로 이용해볼 수 있는 사이트로 금융결제원 오픈 API에 관심있는 누구나 이용할 수 있습니다. 오픈 API를 활용하여 다양하고 창조적인 응용프로그램을 개발해 보세요. -
금융결제원에서 운영하는 개발자용 사이트로 실제 금융데이터를 가져오는 오픈 뱅킹 Api 를 사용하기 전 개발을 위해 사용할 수 있는 사이트
- 여기의 테스트 정보 관리에서 가짜 데이터 (Mock) 를 넣고 API 를 통해서 불러와서 개발이 가능
- 잔액조회, 거래내역조회, 입금이체, 출금이체, 카드목록조회, 카드청구기본정보조회 등이 가능함.
- 오픈API 개발자 사이트 링크
- POC 단계에서는 오픈API 를 이용해 개발을 진행하고 오픈 뱅킹 API 심사를 준비하는 것이 최선으로 판단 됨.
5. 결론
- 마이데이터, 오픈뱅킹 API, 카카오 및 토스와의 제휴 등은 현재는 진행이 어려움
- 금융결제원 오픈 API 를 사용해서 1차적으로 개발을 진행해야 함
- 최초 설계부터 보안 수준(ISMS 또는 ISMS-P)을 갖추면서 진행 해야 함. (ISMS-P 는 개인정보보호를 포함함)
2. 요구사항 명세 및 설계 제안
1. 개발 핵심
- ISMS 또는 ISMS-P 수준의 백앤드 구축
-
본인인증을 통한 회원가입
- 아이디+비번 형태 또는 SNS(google, kakao)등을 통해서 가입
- SNS 를 통해서 가입하더라도 본인인증을 통해 DI(업체별 본인인증 고유번호, NHN KCP 등) 값을 저장할 수 있어야 함.
-
금융결제원의 오픈 API 를 이용해서 다음과 같은 정보를 가져올 수 있어야 함.
- 가입한 사용자의 카드, 계좌, 거래내역 등을 Mock Data 에 저장
- 거래내역조회
- 잔액조회
- 카드목록조회 -> 해당 사용자의 카드 정보를 전부 가져와서 데이터베이스에 저장.
- 카드 청구 기본 정보 조회 -> 저장된 카드 목록으로부터 카드 청구 내용을 가져옴
- 위 목록 외의 필요한 데이터는 오픈API 개발자 사이트 링크 참조
-
스케쥴링
- 오픈 API 를 통해서 가져오는 정보를 암호화 하여 데이터베이스에 저장 해야 힘
- 오픈 API 는 현재 가입된 사용자 전체에 대해서 일정시간(30분) 간격에 맞춰서 자동으로 수집되어야 함.
- 각 API 별 Reqeust 및 Response 를 성공/실패 등의 상태에 맞춰 저장해야 함
-
이상 감지
- 수집되는 금융 정보를 토대로 이상 상태를 파악할 수 있는 구조 설계 (단기간 과도 출금, 과다 금액 결제 등)
- 초기에는 Mock Data 입력 방식으로 이상 감지 모델 설계
- 보호자/사용자에 따른 맞춤 룰 설정이 가능 해야함.
- 머신 러닝 모델 도입은 위 데이터가 어느정도 쌓인 후에 도입 검토 (개인화 등)
-
알림 서비스
- 보호자와 사용자를 연결하는 DB 및 API 구조 설계
- 문자, 알림톡, 카카오 i Cloud Api 등을 사용해서 보호자 또는 보호자와 사용자 모두에게 알림 발송
- 알림 클릭 시 보호자는 앱에 다시 접속하며 이상 신호 리스트를 볼 수 있어야 함
- 각 이상 신호별로 정상/이상 을 응답할 수 있어야 함.
- 이상 응답 시 대응 방안을 확인할 수 있어야 함.
- '알리고'의 경우 알림톡이 가능하면 알림톡으로, 가능하지 않으면 문자 발송 가능 (알림톡 발송이 더 저렴함)
-
기타
- 위 사항은 핵심기능만 담은것이며 마이페이지, 홈화면 등은 화면설계서를 만들면서 작성해야 합니다.
2. 화면 설계
- 현재 문서에서는 화면 설계에 대해서는 분석하지 않습니다.
- 실제 개발자 고용시에는 디자인 이전에 대략적인 화면설계가 구성되어 있어야 실제 업무 진행이 수월합니다.
- UI/UX 디자인은 개발자가 우선적으로 진행이 가능하며 그 이후에 리펙토링 하는 방법도 가능합니다.
3. 개발 언어 추천
-
인프라
- AWS
-
백앤드
- Spring(Java), FastApi(Python)
- 높은 보안 수준이 필요해서 백앤드로 자바와 파이썬을 추천합니다.
- 자바의 경우 국내에 개발자가 많고 파이선의 경우에는 머신러닝 도입이 더 용이합니다.
-
프론트
- Flutter + NextJs
- Flutter 를 통해서 네이티브 코드로 빌드가 가능하며 Kotlin, Swift 수준의 네이티브 기능을 제공할 수 있습니다.
- 안드로이드와 아이폰을 둘다 네이티브로 구현할 경우 유지보수 공수가 증가함
- 네이티브 기능 예 : 카메라, Text To Speech, Push Alarm, GPS, Audio, Background task, 파일 업로드 및 다운로드 등
- NextJS 를 통해서 검색 앤진 최적화(SEO)가 가능한 웹과 앱을 동시에 제작할 수 있습니다.
- 검색앤진 최적화 장점
- 소통 공간등의 SNS, 게시판등을 운영하거나 정보방, 뉴스 기사등을 운용할 경우 SEO 를 통한 사용자 유입을 기대할 수 있음.
- 앱에 접속해서 웹뷰로 접속을 해도 접속자가 카운트 되기 때문에 트레픽에 유리함
- Flutter 는 네이티브 기능을 주로 담당하고 화면에 보이는 뷰는 NextJS 를 통해 구현합니다.