-
bitcoin $87959.907984 USD
1.34% -
ethereum $2920.497338 USD
3.04% -
tether $0.999775 USD
0.00% -
xrp $2.237324 USD
8.12% -
bnb $860.243768 USD
0.90% -
solana $138.089498 USD
5.43% -
usd-coin $0.999807 USD
0.01% -
tron $0.272801 USD
-1.53% -
dogecoin $0.150904 USD
2.96% -
cardano $0.421635 USD
1.97% -
hyperliquid $32.152445 USD
2.23% -
bitcoin-cash $533.301069 USD
-1.94% -
chainlink $12.953417 USD
2.68% -
unus-sed-leo $9.535951 USD
0.73% -
zcash $521.483386 USD
-2.87%
Solidity의 뷰 기능과 순수 기능은 무엇이며 가스에 어떤 영향을 미치나요?
View and pure functions in Solidity don’t modify state, enabling free, off-chain execution—ideal for reads and calculations without gas costs.
2025/11/12 18:20
Solidity의 뷰 기능 이해
1. Solidity의 뷰 기능은 블록체인의 상태를 수정하지 않을 것을 약속하는 기능 유형입니다. 계약의 저장 변수에서 읽을 수는 있지만 변경하거나, 이벤트를 내보내거나, 상태를 변경하는 함수를 호출할 수는 없습니다.
- 이러한 기능은 상태를 변경하지 않기 때문에 트랜잭션을 네트워크에 브로드캐스트하지 않고도 Ethereum 노드에서 로컬로 실행될 수 있습니다. 이는 사용자가 외부로 전화할 때 가스 요금을 지불할 필요가 없음을 의미합니다.
- 키워드 뷰는 함수 시그니처에서 명시적으로 선언되어야 합니다. 생략하고 함수가 상태를 수정하려고 시도하면 컴파일러에서 오류가 발생합니다.
- 예를 들어 사용자 잔액 검색, ERC-20 토큰 허용량 확인, 계약에 저장된 구성 매개변수 읽기 등이 있습니다.
- 외부 호출자에게는 무료임에도 불구하고 뷰 함수는 여전히 노드에서 계산 리소스를 소비합니다. 따라서 보기 함수 내부의 지나치게 복잡한 논리로 인해 일부 공급자가 시간 초과 또는 거부를 초래할 수 있습니다.
Solidity의 순수 기능 탐색
1. 순수 함수는 상태 변수를 읽거나 쓰지 않겠다고 약속함으로써 뷰 함수보다 한 단계 더 나아갑니다. 전달된 입력 매개변수에 대해서만 작동합니다.
- 이러한 함수는 일반적으로 저장된 데이터에 의존하지 않는 수학적 계산, 인코딩/디코딩 작업 또는 논리적 검사에 사용됩니다.
- pure 키워드는 컴파일 타임에 이 제한을 적용합니다. 단일 상태 변수에 액세스하려고 시도하면 컴파일이 실패하게 됩니다.
- 뷰 함수와 마찬가지로 순수 함수는 트랜잭션이 필요하지 않기 때문에 외부에서 호출할 때 가스 비용이 발생하지 않습니다. 로컬 노드 리소스를 사용하여 오프체인을 실행합니다.
- 입력 인수를 기반으로 복리를 계산하거나 계약 저장소를 참조하지 않고 암호화 서명을 검증하는 함수를 예로 들 수 있습니다.
수정되지 않는 함수의 가스 영향
1. 스마트 계약 기능이 view 또는 pure 로 표시되면 이에 대한 외부 호출은 트랜잭션을 생성하지 않습니다. 결과적으로 발신자에게 가스가 청구되지 않습니다.
- 그러나 내부적으로 트랜잭션 내의 다른 함수에 의해 뷰나 순수 함수가 호출되는 경우 해당 실행에는 여전히 가스가 소비됩니다. EVM은 상태 변경 발생 여부에 관계없이 모든 작업을 처리해야 합니다.
- 대규모 배열에 대한 반복이나 여러 산술 연산 수행과 같은 함수 내부의 복잡한 계산은 내부적으로 호출될 때 가스 비용을 증가시킵니다.
- 개발자는 특히 상태 변경 트랜잭션 중에 호출될 가능성이 있는 경우 뷰/순수 함수의 계산을 최소화하여 성능을 최적화하는 경우가 많습니다.
- 실제로 상태를 수정할 때 함수에 뷰 또는 순수라는 라벨을 잘못 지정하면 런타임 예외 또는 배포 실패가 발생하여 잠재적으로 개발 시간과 테스트넷 가스가 낭비됩니다.
뷰 및 순수 함수에 대한 일반적인 질문
Q: 뷰 함수가 순수 함수를 호출할 수 있나요? A: 예, 뷰 함수는 순수 함수를 안전하게 호출할 수 있습니다. 순수 함수는 상태를 읽거나 수정하지 않으므로 뷰 함수의 제약 조건과 완벽하게 호환됩니다.
Q: 순수 함수 내에서 상태 변수를 수정하려고 하면 어떻게 되나요? 답변: Solidity 컴파일러는 오류를 생성합니다. 순수 함수는 읽기든 쓰기든 모든 상태 변수에 액세스하는 것이 엄격히 금지됩니다.
Q: web3.js 또는 ethers.js에서 호출할 때 뷰 및 순수 함수가 가스를 사용합니까? A: 아니요. JavaScript 라이브러리를 통해 이러한 함수를 호출하면 트랜잭션이 필요하지 않으므로 가스 비용이 발생하지 않습니다. 실행은 연결된 Ethereum 노드에서 로컬로 발생합니다.
Q: 뷰 함수와 순수 함수 간에 성능 차이가 있나요? A: 가스 비용 및 실행 속도 관점에서 보면 외부에서 호출할 때 본질적인 차이가 없습니다. 둘 다 상태 변경 없이 로컬로 실행됩니다. 내부적으로 성능은 사용된 수정자가 아닌 계산 복잡성에 따라 달라집니다.
부인 성명:info@kdj.com
제공된 정보는 거래 조언이 아닙니다. kdj.com은 이 기사에 제공된 정보를 기반으로 이루어진 투자에 대해 어떠한 책임도 지지 않습니다. 암호화폐는 변동성이 매우 높으므로 철저한 조사 후 신중하게 투자하는 것이 좋습니다!
본 웹사이트에 사용된 내용이 귀하의 저작권을 침해한다고 판단되는 경우, 즉시 당사(info@kdj.com)로 연락주시면 즉시 삭제하도록 하겠습니다.
- 기린 할(Hal)의 인기로 인해 $HAL 토큰 급증: 암호화폐 문화 현상
- 2026-02-11 04:00:01
- Polygon의 플롯 트위스트: Stablecoins 급증, POL 소각, 가격은 시원하게 유지
- 2026-02-11 04:20:02
- 자원봉사 코인클럽 모임을 통해 시장 변동성과 통화의 미래에 대한 논의가 촉발되었습니다
- 2026-02-11 04:15:01
- Altcoin 상장이 뜨거워지면서 Coinbase, Onchain Challenger에 직면
- 2026-02-11 04:20:02
- Shiba Inu의 확고한 지평선: 시장 변동 속에서 장기적인 초점이 역사적 지지를 충족합니다
- 2026-02-11 03:50:02
- 악성 npm/PyPI 패키지의 공격을 받는 dYdX: 최신 공급망 공격에 대한 심층 분석
- 2026-02-11 01:25:01
관련 지식
데이 트레이딩 암호화폐의 레버리지를 안전하게 최대화하는 방법은 무엇입니까?
2026-02-08 01:19:53
암호화폐 파생상품의 레버리지 메커니즘 이해 1. 레버리지는 거래자가 필요한 자본의 일부만으로 더 큰 포지션을 제어할 수 있도록 함으로써 잠재적 이익과 손실을 모두 배가시킵니다. 2. 대부분의 암호화폐 거래소는 자산 쌍 및 계정 확인 수준에 따라 2배에서 125배까지의 ...
스캘핑을 위한 "원클릭" 거래 인터페이스를 설정하는 방법은 무엇입니까?
2026-02-09 22:59:56
핵심 아키텍처 요구 사항 1. 50ms 미만 간격 내에 실시간 입찰 요청 업데이트를 수신하려면 거래소의 주문장 피드와 직접 지연 시간이 짧은 WebSocket 연결을 설정해야 합니다. 2. 인터페이스는 라우팅 지연을 초래하는 외부 백엔드 프록시에 대한 의존을 피하기 위...
주요 업그레이드 전후에 이더리움 선물을 거래하는 방법은 무엇입니까?
2026-02-08 09:40:26
이더리움 선물 메커니즘 이해 1. 이더리움 선물 계약은 CME 또는 바이낸스 선물과 같은 규제 거래소에서 미리 결정된 가격과 날짜에 ETH를 구매하거나 판매하기 위한 표준화된 계약입니다. 2. 레버리지는 중요한 역할을 합니다. 트레이더는 최소한의 자본으로 대규모 포지션...
대규모 계약 거래를 위한 높은 유동성 쌍을 찾는 방법은 무엇입니까?
2026-02-08 18:20:09
대규모 계약 거래를 위한 높은 유동성 쌍 찾기 대규모 계약 주문을 실행하는 트레이더는 하락과 가격 영향을 피하기 위해 유동성을 우선시해야 합니다. 유동성이 낮은 환경은 실행 위험을 증폭시킵니다. 특히 자금조달 요율과 베이시스 차이로 인해 변동성이 커지는 무기한 선물과 ...
청산을 방지하기 위해 "평균 가격"과 "종가"를 사용하는 방법은 무엇입니까?
2026-02-07 17:39:59
시장 평균 가격 메커니즘 이해 1. 시장 평균 가격은 무기한 계약의 공정한 시장 가치를 반영하도록 설계된 여러 현물 교환 지수와 펀딩 요율 조정에서 파생된 종합 가치입니다. 2. Binance, Coinbase, Kraken, Bybit 등 주요 현물 시장의 실시간 데...
레버리지 거래에서 "자본 수익률"(ROE)을 계산하는 방법은 무엇입니까?
2026-02-08 04:39:45
레버리지 거래의 자기자본수익률 이해 1. 레버리지 거래의 ROE(자기자본 수익률)는 전체 포지션 규모가 아닌 거래자의 자체 자본을 기준으로 창출된 수익성을 측정합니다. 이는 거래자가 거래소나 브로커로부터 자금을 빌릴 때 자신의 자산을 얼마나 효율적으로 사용하는지를 반영...
데이 트레이딩 암호화폐의 레버리지를 안전하게 최대화하는 방법은 무엇입니까?
2026-02-08 01:19:53
암호화폐 파생상품의 레버리지 메커니즘 이해 1. 레버리지는 거래자가 필요한 자본의 일부만으로 더 큰 포지션을 제어할 수 있도록 함으로써 잠재적 이익과 손실을 모두 배가시킵니다. 2. 대부분의 암호화폐 거래소는 자산 쌍 및 계정 확인 수준에 따라 2배에서 125배까지의 ...
스캘핑을 위한 "원클릭" 거래 인터페이스를 설정하는 방법은 무엇입니까?
2026-02-09 22:59:56
핵심 아키텍처 요구 사항 1. 50ms 미만 간격 내에 실시간 입찰 요청 업데이트를 수신하려면 거래소의 주문장 피드와 직접 지연 시간이 짧은 WebSocket 연결을 설정해야 합니다. 2. 인터페이스는 라우팅 지연을 초래하는 외부 백엔드 프록시에 대한 의존을 피하기 위...
주요 업그레이드 전후에 이더리움 선물을 거래하는 방법은 무엇입니까?
2026-02-08 09:40:26
이더리움 선물 메커니즘 이해 1. 이더리움 선물 계약은 CME 또는 바이낸스 선물과 같은 규제 거래소에서 미리 결정된 가격과 날짜에 ETH를 구매하거나 판매하기 위한 표준화된 계약입니다. 2. 레버리지는 중요한 역할을 합니다. 트레이더는 최소한의 자본으로 대규모 포지션...
대규모 계약 거래를 위한 높은 유동성 쌍을 찾는 방법은 무엇입니까?
2026-02-08 18:20:09
대규모 계약 거래를 위한 높은 유동성 쌍 찾기 대규모 계약 주문을 실행하는 트레이더는 하락과 가격 영향을 피하기 위해 유동성을 우선시해야 합니다. 유동성이 낮은 환경은 실행 위험을 증폭시킵니다. 특히 자금조달 요율과 베이시스 차이로 인해 변동성이 커지는 무기한 선물과 ...
청산을 방지하기 위해 "평균 가격"과 "종가"를 사용하는 방법은 무엇입니까?
2026-02-07 17:39:59
시장 평균 가격 메커니즘 이해 1. 시장 평균 가격은 무기한 계약의 공정한 시장 가치를 반영하도록 설계된 여러 현물 교환 지수와 펀딩 요율 조정에서 파생된 종합 가치입니다. 2. Binance, Coinbase, Kraken, Bybit 등 주요 현물 시장의 실시간 데...
레버리지 거래에서 "자본 수익률"(ROE)을 계산하는 방법은 무엇입니까?
2026-02-08 04:39:45
레버리지 거래의 자기자본수익률 이해 1. 레버리지 거래의 ROE(자기자본 수익률)는 전체 포지션 규모가 아닌 거래자의 자체 자본을 기준으로 창출된 수익성을 측정합니다. 이는 거래자가 거래소나 브로커로부터 자금을 빌릴 때 자신의 자산을 얼마나 효율적으로 사용하는지를 반영...
모든 기사 보기














