---
title: "Alchemy 사용량: 투명성과 단순성 향상"
description: "저희는 모든 고객이 Alchemy에서의 사용량을 쉽고 간단하게 측정하고 예측할 수 있도록 하고자 합니다."
---

#### 배경

저희 가격 정책은 "컴퓨트 유닛(compute units)"이라는 개념을 기반으로 합니다. 이는 여러분의 앱이 Alchemy에서 사용하는 총 컴퓨팅 리소스를 측정하는 단위입니다. AWS 사용량에 대해 Amazon에 비용을 지불하는 방식과 비슷하다고 생각하시면 됩니다. 어떤 쿼리는 가볍고 빠르게 실행되고(예: eth_blockNumber) 어떤 쿼리는 더 무겁습니다(예: 대용량 eth_getLogs 쿼리). 저희는 최대한 낮은 비용을 제공하고자 쿼리 수가 아니라 실제 사용된 컴퓨트 양만을 기준으로 과금합니다.

#### 문제점

컴퓨트가 요청마다 측정되면, 컴퓨트 유닛(그리고 그 결과인 월간 사용량)을 예측하기 어려워질 수 있습니다. 일부 메서드는 강도의 편차가 매우 큽니다(예: eth_call). 이런 메서드가 소비하는 컴퓨트 유닛은 최대 100배까지 차이 날 수 있습니다. 이 때문에 사용량을 최적화하거나 월별 비용을 예측하는 일이 필요 이상으로 복잡해집니다.

저희는 모든 고객이 Alchemy에서의 사용량을 측정하고 예측하는 과정을 단순하고 이해하기 쉽게 만들고자 합니다. 이러한 이유로, 그리고 가능한 한 개발자 친화적인 플랫폼을 만들기 위해, 컴퓨트 유닛을 측정하는 방식을 업데이트하기로 결정했습니다.

#### 컴퓨트 유닛 업데이트

새로운 컴퓨트 유닛 모델에서는 각 메서드에 평균 강도를 기반으로 산출된 고정된 컴퓨트 유닛 수가 할당됩니다. 즉, 특정 호출을 하기 전에 그 호출이 몇 개의 컴퓨트 유닛을 소비할지 정확히 알 수 있게 되어, 예측 가능성과 투명성이 크게 높아집니다.

이 업데이트가 개발자 경험을 어떻게 개선하는지 예를 들어보겠습니다. 어떤 사용자가 10,000건의 trace 요청을 하는 경우를 생각해봅시다.

기존 컴퓨트 유닛 방식에서는 사용자가 10,000건의 trace_call 요청을 하더라도, 요청이 완료되기 전까지는 얼마나 많은 컴퓨트 유닛이 사용되었는지 알 수 없었습니다. 블록, 컨트랙트, 호출 시점에 따라 총 750,000 컴퓨트 유닛이 소비될 수도, 1,000,000 컴퓨트 유닛이 소비될 수도 있습니다. 게다가 다음에 다시 10,000건의 trace_call 요청을 하더라도 결과는 달라질 수 있습니다.

새로운 컴퓨트 유닛 모델을 사용하면, 누군가 10,000건의 trace_call 요청을 하고 호출당 75 CU가 소비된다고 할 때, 총 10,000 × 75 = 750,000 CU가 소비되며, 이는 매번 동일합니다.

추측도, 편차도 없이 공정하고 결정론적인 사용량 측정 방식입니다.

메서드별 CU 할당의 전체 목록은 수년간의 벤치마크 사용 데이터를 바탕으로 산출되었으며, [저희 문서](https://www.alchemy.com/docs)에서 확인하실 수 있습니다.

#### 개선된 속도 제한

현재 저희는 초당 쿼리 수(QPS)를 기본 속도 제한 기준으로 사용하고 있습니다. 이는 API에서 흔히 쓰이는 속도 제한 방식이지만, 상대적으로 정밀하지 못한 방식입니다. 이 때문에 저희는 종종 필요 이상으로 신중하게, 더 엄격한 속도 제한을 적용할 수밖에 없었습니다.

새롭게 정의된 컴퓨트 유닛을 통해, 저희는 QPS를 더 나은 측정 방식인 초당 컴퓨트 유닛(CUPS)으로 대체할 수 있게 되었습니다.

CUPS 속도 제한은 사실상 QPS에 가중치를 적용한 버전으로, 각 메서드의 가중치는 해당 메서드의 컴퓨트 강도입니다. 이 방식은 요청의 편차와 호출되는 메서드의 종류를 고려하기 때문에 더 정확한 제한이 됩니다. 이를 통해 모든 고객에게 더욱 넉넉한(많은 경우 기존보다 더 넉넉한!) 제한을 제공하면서도 훨씬 더 안정적인 전반적인 서비스를 제공할 수 있게 됩니다.

#### 요약

전반적으로, 저희는 이번 변경이 고객분들께 큰 개선이 될 것이라고 생각합니다. 저희는 항상 여러분의 피드백을 진지하게 받아들이며, 모두가 최고의 제품을 만드는 데 집중할 수 있도록 개발자 경험을 최선으로 만들기 위해 노력하고 있습니다.

궁금한 점이나 확인이 필요한 사항이 있으면 언제든지 문의해 주시기 바랍니다. 기꺼이 도와드리겠습니다.
