상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - 솔리디티에서 'view'와 'pure' 함수의 차이는 무엇인가요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
Solidity는 이더리움 블록체인에서 스마트 계약을 작성하기 위한 프로그래밍 언어입니다. Solidity에서 함수는 다양한 유형으로 정의될 수 있으며, 그 중에서도 `view`와 `pure` 함수는 상태 변화와 데이터 접근 방식에 따라 구분됩니다. 이 두 가지 함수의 차이를 이해하는 것은 스마트 계약을 작성할 때 매우 중요합니다. 1. `view` 함수 `view` 함수는 상태 변수를 읽을 수 있지만, 상태를 변경할 수는 없는 함수입니다. 즉, `view` 함수는 스마트 계약의 상태를 조회할 수 있지만, 그 상태를 수정하는 작업은 수행하지 않습니다. 이러한 특성 덕분에 `view` 함수는 블록체인에서 데이터를 읽는 데 사용되며, 호출 시 <a href='https://sangseek.com/sangseeks/가스 비용/ko'>가스 비용</a>이 발생하지 않습니다(가스 비용은 트랜잭션을 블록체인에 기록할 때 발생). 예시 ```solidity pragma solidity ^0.8.0; contract Example { uint256 public value; constructor(uint256 _value) { value = _value; } function getValue() public view returns (uint256) { return value; } } ``` 위의 예시에서 `getValue` 함수는 `view`로 정의되어 있으며, `value` 상태 변수를 읽어 반환합니다. 이 함수는 상태를 변경하지 않기 때문에 안전하게 호출할 수 있습니다. 2. `pure` 함수 `pure` 함수는 상태 변수를 읽거나 수정할 수 없는 함수입니다. 즉, `pure` 함수는 스마트 계약의 상태와 무관하게 작동하며, 오직 입력된 매개변수만을 사용하여 결과를 반환합니다. 이러한 특성 덕분에 `pure` 함수는 계산을 수행하거나 데이터를 처리하는 데 유용합니다. `pure` 함수도 호출 시 가스 비용이 발생하지 않습니다. 예시 ```solidity pragma solidity ^0.8.0; contract Example { function add(uint256 a, uint256 b) public pure returns (uint256) { return a + b; } } ``` 위의 예시에서 `add` 함수는 `pure`로 정의되어 있으며, 두 개의 매개변수를 받아서 그 합을 반환합니다. 이 함수는 계약의 상태와는 전혀 관련이 없으며, 오직 입력값에만 의존합니다. 3. 주요 차이점 요약 - 상태 접근 : - `view`: 상태 변수를 읽을 수 있음. - `pure`: 상태 변수를 읽거나 수정할 수 없음. - 가스 비용 : - 두 함수 모두 호출 시 가스 비용이 발생하지 않지만, `view` 함수는 블록체인 상태를 조회하는 데 사용되므로, 실제로 블록체인에서 호출될 때는 가스 비용이 발생할 수 있습니다. 반면, `pure` 함수는 상태와 무관하게 작동하므로, 가스 비용이 발생하지 않습니다. - 용도 : - `view`: 상태를 조회하는 데 사용. - `pure`: 입력값에 기반한 계산이나 처리를 수행하는 데 사용. 결론 `view`와 `pure` 함수는 Solidity에서 중요한 역할을 하며, 각각의 특성을 이해하는 것은 스마트 계약을 효율적으로 작성하는 데 필수적입니다. `view` 함수는 상태를 읽는 데 유용하고, `pure` 함수는 상태와 무관한 계산을 수행하는 데 적합합니다. 이러한 함수들을 적절히 활용하여 스마트 계약의 성능과 안전성을 높일 수 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기