INTRODUCE
해당 프로젝트는 여러 블록체인을 하나의 플랫폼으로 묶어서 서비스를 제공하는 프로젝트입니다. Etheuem, Polygon, Kaia, Bora 등등 각각의 네트워크를 갖고 있는 블록체인을 하나의 서비스를 통해 여러가지 토큰으로 교환할 수 있도록 지원하는 서비스입니다. 서비스는 블록체인 서비스와 BackEnd 서비스로 개발되었습니다.
※프로젝트에서 블록체인과 B.E 개발을 담당하여 포트폴리오를 2개로 분할합니다.
SKILL
BackEnd
Language : Golang
FrameWork : Native
Infrastructure: Gorm, MemoryCache, HTTP, goRoutine
Project Overview
블록체인 Contract가 배포되고 서비스는 각각의 블록체인의 이벤트를 수집하여 Contract에서 이벤트를 발생 시, BackEnd 서비스가 직접 Transaction을 발행하여 이벤트를 동작하는 서비스입니다.
서비스를 지원하는 블록체인 Node를 지속적으로 모니터링 하여 Contract의 이벤트 발생을 모니터링합니다. Contract에서 이벤트가 발생하면 데이터를 수집 & 파싱하여 새로운 이벤트를 발생시켰습니다. 해당 프로젝트는 체인, Contract 갯수 만큼 GoRoutine을 실행하였으며, 여러 노드를 연동하는 만큼 다양한 Error Case가 발생하였습니다.
이 프로젝트에서 Go언어를 학습하며, 연동 과정에서 발생하는 Error 타입을 정의하고 Error 핸들링 작업을 담당하였으며, Panic / Critical Error / Error 발생 시 GoRoutine을 Recover 작업을 담당하였습니다.
담당 업무
- Error 규격화
- Error 핸들링
- 서비스 종료시 Recover 기능 구현
서비스 동작 중 발생하는 Error 타입을 정의하고 오류 발생시 Error Return하여 핸들링 처리.
Recover 함수와 함께 Panic / Error 애러 발생 시 Log, Slack 알림 발생 후 GoRoutine 재시작 구현.
Critical Error 발생 시 Log, Slack 알림 발생 후 GoRoutine 중단 구현.