APISwap: 스마트 컨트랙트에서 사용자 거래까지
APISwap은 토큰 교환과 래핑 토큰 기능을 제공하는 DeFi 프로젝트였다. Solidity 스마트 컨트랙트부터 로컬 테스트 환경, React 기반 웹 인터페이스까지 하나의 거래 흐름을 직접 연결했다. 컨트랙트가 정확히 계산되는 것과 사용자가 안전하게 거래를 완료하는 것이 서로 다른 문제라는 점을 가까이에서 배운 작업이었다.
프로젝트 배경
탈중앙화 거래는 중개 서버가 사용자의 주문을 최종 처리하는 방식과 다르다. 사용자가 지갑으로 직접 거래에 서명하고, 스마트 컨트랙트가 온체인 상태에 따라 결과를 계산한다. 이 구조에서는 컨트랙트의 작은 오류가 여러 사용자에게 같은 방식으로 반복될 수 있고, 프런트엔드가 잘못된 정보를 보여주면 사용자가 되돌리기 어려운 거래에 서명할 수 있다.
APISwap에서는 스왑 기능과 관련 온체인 컴포넌트를 구현하는 동시에, 사용자가 지갑을 연결하고 교환 조건을 확인한 뒤 거래 결과까지 추적할 수 있는 웹 경험을 함께 만드는 것이 목표였다.
맡은 역할
- 소프트웨어 엔지니어
- 스마트 컨트랙트 개발 및 검증
- Web3 프런트엔드 구현
- 출시 후 피드백을 반영한 개선
기간: 2022년 1월–6월
주요 작업
Solidity로 스왑과 래핑 토큰 관련 스마트 컨트랙트를 구현했다. 정상 거래뿐 아니라 입력값과 권한, 잔액 부족과 실패 조건을 확인했고, Truffle과 Ganache로 로컬 체인 환경을 구성해 배포와 호출 과정을 반복 검증했다. 실제 자산을 사용하기 전에 다양한 상태를 재현할 수 있는 테스트 기반을 만드는 것이 중요했다.
React와 Web3.js로 지갑 연결, 토큰 선택, 승인과 스왑 실행을 이어주는 웹 인터페이스를 개발했다. 사용자가 보는 잔액과 컨트랙트 상태를 동기화하고, 지갑에서 거절하거나 트랜잭션이 실패했을 때도 다음 행동을 이해할 수 있도록 흐름을 정리했다.
출시 이후에는 사용 과정에서 발견된 불편과 오류를 바탕으로 기능을 반복 개선했다. 개발자가 예상한 순서와 사용자가 실제로 지갑을 다루는 방식이 다를 수 있었고, 네트워크 지연과 승인 거래 같은 Web3 특유의 단계가 혼란을 만들기도 했다. 온체인과 화면을 함께 관찰해야 원인을 제대로 찾을 수 있었다.
배운 점
APISwap은 스마트 컨트랙트와 프런트엔드를 별개의 결과물로 볼 수 없다는 사실을 분명히 보여주었다. 컨트랙트가 안전해도 인터페이스가 위험을 제대로 설명하지 못하면 사용자는 잘못된 거래를 할 수 있다. 반대로 화면이 매끄러워도 가격 계산과 권한 설계가 잘못되면 제품의 기반이 무너진다.
DeFi 제품의 신뢰는 코드 한 곳에서 만들어지지 않는다. 컨트랙트의 계산, 테스트 환경의 재현성, 지갑에서의 승인, 트랜잭션 상태를 전달하는 화면이 모두 맞아야 한다. 이 프로젝트를 통해 온체인 로직을 구현하는 능력뿐 아니라, 사용자의 한 번의 클릭이 어떤 시스템 단계를 거쳐 결과가 되는지 끝까지 추적하는 습관을 갖게 되었다.
기술과 링크
- 스마트 컨트랙트: Solidity
- 테스트: Truffle, Ganache
- 프런트엔드: React, Web3.js
- APISwap: swap.apis.eco
기술: Solidity, Truffle, Ganache, React, Web3.js, DeFi