
이 글은 Coinlayer의 후원을 받아 작성된 스폰서 아티클입니다. 후원 여부와 관계없이 본문 내용과 의견은 편집 독립성을 유지하는 작성자 본인의 것입니다.
사용자에게 실시간 암호화폐 시세를 보여주는 앱을 개발하거나, 웹사이트 방문자에게 동일한 기능을 제공하고 싶은 개발자라면 누구나 빠른 응답 속도와 엔터프라이즈급 통합 기능을 갖춘 신뢰할 수 있는 API가 필요합니다.
대부분의 암호화폐는 변동성이 극심하기 때문에 오늘의 가격이 내일까지 유효하리라고 보기 어렵습니다. 최소한 시간 단위로 가격을 받아올 수 있는 서비스가 필요합니다. Coinlayer는 300개 이상의 다양한 암호화폐에 대해 여러 법정화폐 기준 시세를 제공하는 서비스로, 이번 글에서는 이 서비스의 작동 방식을 내부 구조부터 자세히 살펴보겠습니다.
준비 과정

효과적인 리뷰를 위해 사이트에서 무료 계정을 생성했습니다. 무료 계정은 API 키를 발급해 주며, 회사의 제한적인 지원 하에 일부 기능을 테스트할 수 있습니다.
또한 직접 실습해 보기 위해 리눅스가 설치된 남는 서버 한 대에 PHP7 등 최소한의 필수 요소만 갖춘 Nginx 서버를 구축했습니다. 제가 스스로 확인하고 싶었던 것은 이 API가 별도의 부가 기능 없이 기본적인 웹 서버 환경만으로도 충분히 작동한다는 점이었습니다. Coinlayer API가 데이터 전송 방식으로 JSON을 사용한다는 것을 알게 된 뒤로는 더 이상 필요한 것이 없다고 판단했습니다.
코드 작성에는 리눅스에서 소규모 프로젝트를 코딩할 때 애용하는 notepadqq를 사용했습니다.
이번 테스트는 주로 웹 개발자 관점에서 진행했지만, JSON은 안드로이드 및 iOS 앱 개발에서도 널리 사용됩니다. Coinlayer는 플랫폼에 종속되지 않으므로 어떤 유형의 개발자든 동일한 수준의 서비스를 받을 수 있을 것입니다.
테스트 진행
API 문서를 훑어본 결과, 작동 방식을 파악하고 로컬 서버에 최소한의 통합 코드를 계획하는 데 총 10분밖에 걸리지 않았습니다. API는 다음 활동을 위한 6개의 엔드포인트를 제공합니다.
- 암호화폐 페어 목록 조회
- 특정 코인의 다른 코인 또는 법정화폐 대비 실시간 가격 업데이트
- 특정 날짜의 암호화폐 대비 법정화폐 가격을 조회할 수 있는 과거 시세(historical) 엔드포인트
- X개의 코인 가치를 X금액의 법정화폐로 환산해 출력할 수 있는 변환(conversion) API
- 특정 기간 동안의 암호화폐 가격 변동 목록을 제공하는 타임프레임(time frame) API
- 일정 기간 동안 암호화폐 가격이 얼마나 변했는지 백분율과 마진으로 보여주는 '변동(change)' 엔드포인트
테스트에서는 'live' 엔드포인트를 사용해 비트코인, 이더리움 등 주요 암호화폐와 아직 주류가 되지 못한 몇몇 코인들의 USD 대비 가격을 불러오고, 'historical' 엔드포인트를 사용해 먼 과거 특정 날짜의 비트코인 가격을 조회했습니다.
실제 구현한 코드는 다음과 같습니다. (당연히 스크린샷의 API 키는 뒤섞어 무효화했습니다.)

이렇게 급조한 기본적인 코드가 만들어내는 페이지는 다음과 같습니다.

주목할 점은 Coinlayer가 25개 이상의 거래소 데이터를 가중 평균하여 가장 정확한 시세 데이터를 산출한다는 것입니다. JSON 요청부터 데이터 출력까지 지연이 전혀 느껴지지 않았습니다. 테스트 페이지를 열면 결과가 즉시 표시됩니다.
웹사이트 문제의 대부분이 API 응답 지연에서 비롯된다는 점을 고려하면, Coinlayer의 빠른 응답 속도는 큰 장점입니다.
여기에 통합에 실제로 15분밖에 걸리지 않았다는 점(코딩 경력 거의 20년 동안 한 번도 써본 적 없는 JSON을 배우고 Coinlayer의 작동 방식을 이해하는 데 걸린 시간 포함)까지 더하면, 놀랄 만큼 사용하기 쉬운 플랫폼입니다.
추가 참고 사항

Coinlayer가 강조하는 기능 중 하나는 256비트 SSL/TLS 암호화입니다. 플랫폼이 데이터를 암호화한다는 것은 사실이지만, 무료 옵션에서는 HTTP만 사용할 수 있다는 점도 사실입니다. HTTPS를 활성화하려면 최소 월 9.99달러를 지불해야 합니다. (어차피 SSL 인증서 비용은 누군가 부담해야 하니까요.)
또한 기본 플랜에서도 암호화폐 가격은 매시간 업데이트됩니다. 10분 단위 업데이트를 원하면 월 39.99달러의 '프로페셔널' 플랜을 결제해야 합니다. '프로페셔널 플러스'는 정말 필요한 사이트와 앱을 위해 60초 단위 업데이트를 제공합니다.
그 외에도 JSON 서버로 보낼 수 있는 요청 횟수에 제한이 있습니다. 무료 사용자는 월 500회 요청만 가능합니다. 스케줄러를 통해 월 500번(약 1시간 30분마다)만 실행되도록 하고 값을 데이터베이스에 저장한 뒤 스크립트가 필요할 때마다 가져오게 하는 방식으로 요청 횟수를 줄일 수도 있습니다. 하지만 이는 구현에 또 하나의 계층을 추가하는 것이며 초보 프로그래머에게는 부담이 될 수 있습니다.
가장 기본적인 유료 플랜을 결제하면 월 5,000회 요청이 가능합니다. 위에서 설명한 방식으로 값을 표시한다면 시간별 확인과 중간 테스트를 하기에 충분한 양입니다.
무료 플랜은 미국 달러(USD)만 지원하며, 변환 API 엔드포인트(영리하게 우회할 수는 있습니다)나 타임프레임 엔드포인트 사용도 허용하지 않습니다.
CryptoCompare, CoinMarketCap 같은 다른 JSON API들은 일부 장점을 포기할 의향이 있다면 여러 법정화폐 대비 암호화폐 시세를 원하는 만큼 무료로 표시할 수 있게 해 줍니다. 이에 대해서는 바로 아래에서 다루겠습니다.
장점과 단점
Coinlayer의 작동 방식을 살펴봤으니, 이제 유사한 플랫폼들과 비교한 장단점을 확신 있게 정리해 보겠습니다.
장점
- 사용이 놀랍도록 쉽습니다. JSON 프로그래밍 경험이 전혀 없는 상태로 시작했지만 금방 숫자를 다룰 수 있게 되었습니다.
- 문서가 읽기 쉬워 설정이 매우 간편합니다. JSON을 배우고 구현 코드를 작성하는 데 겨우 15분밖에 걸리지 않았습니다.
- 응답 속도가 훌륭합니다. 그만큼 빠르다 보니 앱과 웹사이트 아이디어가 여럿 떠오를 정도였습니다. 속도가 좋으면 더 많은 것을 만들고 싶은 욕구를 자극합니다.
- (대체로) 유료 서비스이며, 주로 테스트 목적의 무료 계정도 제공됩니다. 이것이 단점이 될 수도 있지만, 반대로 직원들에게 충분한 보수를 지급해 서비스 경쟁력을 유지할 수 있는 강점이기도 합니다.
- 과거 시세 API 엔드포인트는 빅픽처 관점의 앱에 새로운 가능성을 열어 줍니다. 요청 횟수 제한이 심하긴 하지만 무료 버전에서도 사용할 수 있다는 점도 좋습니다.
단점
- 무제한 실시간 시세 데이터의 가격은 0달러보다 높습니다. JSON API를 제공하는 대안(무료) 플랫폼들은 여러 법정화폐 대비 실시간 암호화폐 시세 목록을 무료로 보여줄 수 있습니다. 투명성을 위해 덧붙이자면, 무제한 '무료' API 호출은 정상적인 소스와 DDoS 봇의 요청으로 서버에 혼잡을 일으킬 수도 있습니다. Coinlayer가 이렇게 빠른 이유 중 하나는 이런 제한 덕분에 무분별한 요청을 받지 않기 때문이라고 추측합니다.
- 가장 저렴한 유료 등급도 더 많은 데이터와 더 많은 법정화폐(그리고 매력적인 변환 엔드포인트)를 제공함에도 여전히 시간 단위 가격 업데이트만 지원합니다. 저는 코인이 4분 만에 10%씩 폭락하는 것을 본 적이 있습니다.
결론
무료 서비스를 사용해 실시간 암호화폐 시세를 표시하고, Coinlayer에서 얻을 수 있는 기능들을 추가 코드로 우회 구현할 수도 있습니다. 하지만 그런 대안이 모든 사람에게 맞는 것은 아닙니다.
눈 깜빡일 새보다 빠르게 응답하면서 구현하기 쉬운 깔끔한 데이터 세트를 제공하는 API를 찾는 앱·웹 개발자라면 Coinlayer가 딱 맞습니다. 이런 용도로 무료 JSON API를 사용하면 결국 발목을 잡힐 수 있습니다. 무료 API는 지원 네트워크나 문서가 부족하고, 이론상 공격과 네트워크 혼잡에 더 취약하기 때문입니다.
신뢰할 수 있고 응답성이 뛰어난 API를 사용하는 것은 진지하게 비즈니스를 운영하는 기업 환경과 스타트업에 이상적입니다.
Coinlayer