✨ 3줄 요약
- 빠르게 문제를 분석하고 확장 가능하면서 안정적인 시스템의 설계 역량을 확인할 수 있습니다.
- B2B 고객을 위해 안전하고 쉽게 연동할 수 있는 방법을 모색하여 구현하였습니다.
- 다양한 서비스의 요구사항을 구현할 수 있는 확장 가능한 공통 입출금 시스템을 설계하였습니다.
🎉 프로젝트 소개
- 고객사가 자사 서비스에 손쉽게 NFT 지갑을 도입하여 사용할 수 있도록 웹뷰로 서비스를 제공했습니다.
- 고객사는 로그인만 연동하거나 연동하지 않아도 사용할 수 있도록 다양한 환경에서 제공할 수 있도록 설계했습니다.
- NFT를 이용한 이벤트 등 마케팅에 이용할 수 있도록 NFT 메타데이터를 정의하고 Web2 혹은 현실세계와 연동하여 사용할 수 있도록 혜택 기능을 제공했습니다.
- 다양한 비즈니스 모델에 대응할 수 있도록 서비스 별로 개발할 수 있도록 유연한 설계를 주도적으로 진행하였습니다.
🤜 직면한 문제
각 고객사 별로 처해진 환경과 요구사항이 모두 달랐습니다. 오버엔지니어링 하지 않는 적절히 유연한 설계가 필요했습니다.
예를 들면, 크게 금융사와 비금융사의 차이에서도 신한은행과 같은 금융사는 KYC가 가능한 환경이였고 앱에 탑재하여 제공하길 바랬습니다. 그러나 대외비(비금융사)인 고객사에서는 KYC가 불가능하고 앱에 탑재하지 않고 싶어했습니다.
그래서 어떤 유저가 어떤 웹뷰로 진입하였을 때 어떻게 로그인 해야할 지를 여러 고객사의 니즈에 맞도록 설계했습니다.
- 앱 탑재의 경우, 고객사 서버와의 연동을 통해 1회 로그인 후 자동로그인을 지원하여 사용자 경험을 개선했습니다.
- 앱 미탑재의 경우, 유저가 NFT 지갑을 딥링크를 통해 간편하게 사용할 수 있도록 대안을 제공했습니다.
연동의 어려움과 제약사항을 비즈니스에 걸림돌로 삼지 않도록, 유연한 구조와 간편한 연동을 진행할 수 있도록 노력하였습니다.
🛠️ 기술스택
NestJS, TypeORM, Aurora MySQL, Redis
⭐ 기여
고객사 웹뷰 연동 프로세스 설계