시가총액: $2.8337T 0.60%
거래량(24시간): $136.9463B -23.72%
공포와 탐욕 지수:

28 - 두려움

  • 시가총액: $2.8337T 0.60%
  • 거래량(24시간): $136.9463B -23.72%
  • 공포와 탐욕 지수:
  • 시가총액: $2.8337T 0.60%
암호화
주제
암호화
소식
cryptostopics
비디오
최고 암호화

언어 선택

언어 선택

통화 선택

암호화
주제
암호화
소식
cryptostopics
비디오

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의 뷰 기능은 블록체인의 상태를 수정하지 않을 것을 약속하는 기능 유형입니다. 계약의 저장 변수에서 읽을 수는 있지만 변경하거나, 이벤트를 내보내거나, 상태를 변경하는 함수를 호출할 수는 없습니다.

  1. 이러한 기능은 상태를 변경하지 않기 때문에 트랜잭션을 네트워크에 브로드캐스트하지 않고도 Ethereum 노드에서 로컬로 실행될 수 있습니다. 이는 사용자가 외부로 전화할 때 가스 요금을 지불할 필요가 없음을 의미합니다.
  2. 키워드 뷰는 함수 시그니처에서 명시적으로 선언되어야 합니다. 생략하고 함수가 상태를 수정하려고 시도하면 컴파일러에서 오류가 발생합니다.
  3. 예를 들어 사용자 잔액 검색, ERC-20 토큰 허용량 확인, 계약에 저장된 구성 매개변수 읽기 등이 있습니다.
  4. 외부 호출자에게는 무료임에도 불구하고 뷰 함수는 여전히 노드에서 계산 리소스를 소비합니다. 따라서 보기 함수 내부의 지나치게 복잡한 논리로 인해 일부 공급자가 시간 초과 또는 거부를 초래할 수 있습니다.

Solidity의 순수 기능 탐색

1. 순수 함수는 상태 변수를 읽거나 쓰지 않겠다고 약속함으로써 뷰 함수보다 한 단계 더 나아갑니다. 전달된 입력 매개변수에 대해서만 작동합니다.

  1. 이러한 함수는 일반적으로 저장된 데이터에 의존하지 않는 수학적 계산, 인코딩/디코딩 작업 또는 논리적 검사에 사용됩니다.
  2. pure 키워드는 컴파일 타임에 이 제한을 적용합니다. 단일 상태 변수에 액세스하려고 시도하면 컴파일이 실패하게 됩니다.
  3. 뷰 함수와 마찬가지로 순수 함수는 트랜잭션이 필요하지 않기 때문에 외부에서 호출할 때 가스 비용이 발생하지 않습니다. 로컬 노드 리소스를 사용하여 오프체인을 실행합니다.
  4. 입력 인수를 기반으로 복리를 계산하거나 계약 저장소를 참조하지 않고 암호화 서명을 검증하는 함수를 예로 들 수 있습니다.

수정되지 않는 함수의 가스 영향

1. 스마트 계약 기능이 view 또는 pure 로 표시되면 이에 대한 외부 호출은 트랜잭션을 생성하지 않습니다. 결과적으로 발신자에게 가스가 청구되지 않습니다.

  1. 그러나 내부적으로 트랜잭션 내의 다른 함수에 의해 뷰나 순수 함수가 호출되는 경우 해당 실행에는 여전히 가스가 소비됩니다. EVM은 상태 변경 발생 여부에 관계없이 모든 작업을 처리해야 합니다.
  2. 대규모 배열에 대한 반복이나 여러 산술 연산 수행과 같은 함수 내부의 복잡한 계산은 내부적으로 호출될 때 가스 비용을 증가시킵니다.
  3. 개발자는 특히 상태 변경 트랜잭션 중에 호출될 가능성이 있는 경우 뷰/순수 함수의 계산을 최소화하여 성능을 최적화하는 경우가 많습니다.
  4. 실제로 상태를 수정할 때 함수에 뷰 또는 순수라는 라벨을 잘못 지정하면 런타임 예외 또는 배포 실패가 발생하여 잠재적으로 개발 시간과 테스트넷 가스가 낭비됩니다.

뷰 및 순수 함수에 대한 일반적인 질문

Q: 뷰 함수가 순수 함수를 호출할 수 있나요? A: 예, 뷰 함수는 순수 함수를 안전하게 호출할 수 있습니다. 순수 함수는 상태를 읽거나 수정하지 않으므로 뷰 함수의 제약 조건과 완벽하게 호환됩니다.

Q: 순수 함수 내에서 상태 변수를 수정하려고 하면 어떻게 되나요? 답변: Solidity 컴파일러는 오류를 생성합니다. 순수 함수는 읽기든 쓰기든 모든 상태 변수에 액세스하는 것이 엄격히 금지됩니다.

Q: web3.js 또는 ethers.js에서 호출할 때 뷰 및 순수 함수가 가스를 사용합니까? A: 아니요. JavaScript 라이브러리를 통해 이러한 함수를 호출하면 트랜잭션이 필요하지 않으므로 가스 비용이 발생하지 않습니다. 실행은 연결된 Ethereum 노드에서 로컬로 발생합니다.

Q: 뷰 함수와 순수 함수 간에 성능 차이가 있나요? A: 가스 비용 및 실행 속도 관점에서 보면 외부에서 호출할 때 본질적인 차이가 없습니다. 둘 다 상태 변경 없이 로컬로 실행됩니다. 내부적으로 성능은 사용된 수정자가 아닌 계산 복잡성에 따라 달라집니다.

부인 성명:info@kdj.com

제공된 정보는 거래 조언이 아닙니다. kdj.com은 이 기사에 제공된 정보를 기반으로 이루어진 투자에 대해 어떠한 책임도 지지 않습니다. 암호화폐는 변동성이 매우 높으므로 철저한 조사 후 신중하게 투자하는 것이 좋습니다!

본 웹사이트에 사용된 내용이 귀하의 저작권을 침해한다고 판단되는 경우, 즉시 당사(info@kdj.com)로 연락주시면 즉시 삭제하도록 하겠습니다.

관련 지식

Bybit에서 처음으로 암호화폐 계약을 거래하는 방법은 무엇인가요?

Bybit에서 처음으로 암호화폐 계약을 거래하는 방법은 무엇인가요?

2026-02-01 04:00:10

Bybit 계정 설정 1. Bybit 공식 홈페이지에 접속하여 홈페이지 우측 상단의 '회원가입' 버튼을 클릭하세요. 2. 유효한 이메일 주소를 입력하고 대문자, 소문자, 숫자, 특수문자를 포함하는 강력한 비밀번호를 만드세요. 3. CAPTCHA 인증을 완...

슬리피지가 낮고 레버리지가 높은 암호화폐 계약을 찾는 방법은 무엇입니까?

슬리피지가 낮고 레버리지가 높은 암호화폐 계약을 찾는 방법은 무엇입니까?

2026-02-01 04:19:41

활용도가 높은 암호화폐 계약 찾기 1. 거래자들은 종종 분산형 및 중앙형 거래소에서 50배 이상의 레버리지를 제공하는 영구 선물 계약을 검색합니다. Binance, Bybit 및 OKX는 격리 마진 모드에서 최대 125배의 레버리지로 여러 BTC, ETH 및 SOL 쌍...

LayerZero 계약으로 크로스체인 메시지를 실행하는 방법은 무엇입니까?

LayerZero 계약으로 크로스체인 메시지를 실행하는 방법은 무엇입니까?

2026-01-18 13:19:39

LayerZero 아키텍처 이해 1. LayerZero는 신뢰할 수 있는 중개자나 래핑된 자산에 의존하지 않고 블록체인 간의 통신을 가능하게 하는 경량의 무허가 상호 운용성 프로토콜로 작동합니다. 2. 각 체인에 배포된 Ultra Light Node(ULN)를 활용하여...

안전한 서명 검증을 위해 EIP-712를 구현하는 방법은 무엇입니까?

안전한 서명 검증을 위해 EIP-712를 구현하는 방법은 무엇입니까?

2026-01-20 22:20:26

EIP-712 개요 및 핵심 목적 1. EIP-712는 이더리움 애플리케이션에서 형식화된 구조화된 데이터 해싱 및 서명에 대한 표준을 정의합니다. 2. 서명 요청 시 원시 16진수 문자열 대신 사람이 읽을 수 있는 도메인 및 메시지 필드를 지갑에 표시할 수 있습니다. ...

새로운 계약과 상호 작용하여 에어드랍 자격을 얻는 방법은 무엇입니까?

새로운 계약과 상호 작용하여 에어드랍 자격을 얻는 방법은 무엇입니까?

2026-01-24 21:00:23

계약 상호 작용 요구 사항 이해 1. 대부분의 에어드롭 캠페인은 Ethereum, Arbitrum 또는 Base와 같은 지원되는 블록체인에 배포된 스마트 계약과의 직접적인 상호 작용을 요구합니다. 2. 상호 작용에는 일반적으로 dApp 인터페이스에 연결된 지갑을 사용하...

보안 경고에 대한 스마트 계약을 모니터링하는 방법은 무엇입니까?

보안 경고에 대한 스마트 계약을 모니터링하는 방법은 무엇입니까?

2026-01-21 07:59:57

온체인 모니터링 도구 1. Etherscan 및 Blockscout와 같은 블록체인 탐색기를 사용하면 계약 바이트 코드, 트랜잭션 로그 및 내부 호출을 실시간으로 검사할 수 있습니다. 2. 온체인 데이터를 신뢰하기 전에 계약 확인 상태를 확인해야 합니다. 확인되지 않은...

Bybit에서 처음으로 암호화폐 계약을 거래하는 방법은 무엇인가요?

Bybit에서 처음으로 암호화폐 계약을 거래하는 방법은 무엇인가요?

2026-02-01 04:00:10

Bybit 계정 설정 1. Bybit 공식 홈페이지에 접속하여 홈페이지 우측 상단의 '회원가입' 버튼을 클릭하세요. 2. 유효한 이메일 주소를 입력하고 대문자, 소문자, 숫자, 특수문자를 포함하는 강력한 비밀번호를 만드세요. 3. CAPTCHA 인증을 완...

슬리피지가 낮고 레버리지가 높은 암호화폐 계약을 찾는 방법은 무엇입니까?

슬리피지가 낮고 레버리지가 높은 암호화폐 계약을 찾는 방법은 무엇입니까?

2026-02-01 04:19:41

활용도가 높은 암호화폐 계약 찾기 1. 거래자들은 종종 분산형 및 중앙형 거래소에서 50배 이상의 레버리지를 제공하는 영구 선물 계약을 검색합니다. Binance, Bybit 및 OKX는 격리 마진 모드에서 최대 125배의 레버리지로 여러 BTC, ETH 및 SOL 쌍...

LayerZero 계약으로 크로스체인 메시지를 실행하는 방법은 무엇입니까?

LayerZero 계약으로 크로스체인 메시지를 실행하는 방법은 무엇입니까?

2026-01-18 13:19:39

LayerZero 아키텍처 이해 1. LayerZero는 신뢰할 수 있는 중개자나 래핑된 자산에 의존하지 않고 블록체인 간의 통신을 가능하게 하는 경량의 무허가 상호 운용성 프로토콜로 작동합니다. 2. 각 체인에 배포된 Ultra Light Node(ULN)를 활용하여...

안전한 서명 검증을 위해 EIP-712를 구현하는 방법은 무엇입니까?

안전한 서명 검증을 위해 EIP-712를 구현하는 방법은 무엇입니까?

2026-01-20 22:20:26

EIP-712 개요 및 핵심 목적 1. EIP-712는 이더리움 애플리케이션에서 형식화된 구조화된 데이터 해싱 및 서명에 대한 표준을 정의합니다. 2. 서명 요청 시 원시 16진수 문자열 대신 사람이 읽을 수 있는 도메인 및 메시지 필드를 지갑에 표시할 수 있습니다. ...

새로운 계약과 상호 작용하여 에어드랍 자격을 얻는 방법은 무엇입니까?

새로운 계약과 상호 작용하여 에어드랍 자격을 얻는 방법은 무엇입니까?

2026-01-24 21:00:23

계약 상호 작용 요구 사항 이해 1. 대부분의 에어드롭 캠페인은 Ethereum, Arbitrum 또는 Base와 같은 지원되는 블록체인에 배포된 스마트 계약과의 직접적인 상호 작용을 요구합니다. 2. 상호 작용에는 일반적으로 dApp 인터페이스에 연결된 지갑을 사용하...

보안 경고에 대한 스마트 계약을 모니터링하는 방법은 무엇입니까?

보안 경고에 대한 스마트 계약을 모니터링하는 방법은 무엇입니까?

2026-01-21 07:59:57

온체인 모니터링 도구 1. Etherscan 및 Blockscout와 같은 블록체인 탐색기를 사용하면 계약 바이트 코드, 트랜잭션 로그 및 내부 호출을 실시간으로 검사할 수 있습니다. 2. 온체인 데이터를 신뢰하기 전에 계약 확인 상태를 확인해야 합니다. 확인되지 않은...

모든 기사 보기

User not found or password invalid

Your input is correct