
성장 포인트
- 공통 로직과 서비스 로직이 동시에 커지면서 발생하는 Big ball of Mud(진흙 공 패턴)를 실제로 경험하면서, 계층 분리의 필요성과 객체의 분명한 역할을 부여하려 노력하고 있습니다.
- Dynamic Language인 파이썬의 특징이 오히려 독이 될 수 있다는 것을 느끼고, 타입 힌트와 pylance를 적극적으로 활용하여 에러 가능성을 줄이려 노력하고 있습니다.
용어 정리
프로젝트 진행기간
- 2021.06 ~ 2023.02
요약
- Django 기반의 가상자산 보관 서비스 토큰뱅크 백엔드 개발
- 토큰뱅크 가상자산사업자 담당 개발
- 신한 SOL과 협업하여 NFT 지갑 탑재기능 개발
역할
- 백엔드 API 유지보수 및 신규개발 (Django Rest Framework)
- 레거시 코드 ORM 최적화
→ Queryset의 캐싱과 Eager Loading을 적극적으로 활용하여 불필요한 쿼리를 통합했습니다.
- 가상자산사업자 담당 개발
- 고객확인(KYC) 플로우 설계 및 API 개발
- 입출금 시 발생하는 이상거래탐지(FDS) 로직 구현
- 트래블룰 솔루션 대응개발 (CODE, VV)
→ 외부 솔루션을 사용한 주민등록증 OCR 및 진위확인, 마스킹까지 사용하여 고객확인을 진행하였습니다.
→ 통신간 개인정보 탈취를 고려하여 AES + RSA를 복합적으로 사용해 페이로드를 암호화하였습니다.
→ 개인정보 보호를 위해 DB 또는 S3 버킷에 객체나 평문을 저장 시 암호화하였습니다.
→ 다양한 케이스의 FDS 유형 중에 공통 ORM, 효율성을 고려하여 설계했습니다.
→ 복잡한 공통 로직을 최소화하기 위해 Mixin을 활용한 다중상속과 상속클래스를 기반으로 서비스 계층을 분리하여 개발했습니다.
성과
- 기존에 있던 레거시 코드들을 대상으로 Test Code를 작성하여 API의 Test Coverage 60% 이상까지 끌어올림
- 트래블룰 솔루션 CODE에 첫번째로 연동되어 토큰뱅크(헥슬란트) 외 6개 거래소와의 입출금 지원 선점
- 신한 SOL에 토큰뱅크 지갑으로 NFT 입/출금 기능 개발
→ 관련 기사