본문 바로가기

분류 전체보기71

2. script 태그의 async와 defer, use strict 간단히 짚고 넘어가는 부분 API (Application Programming Interface) console.log() 또한 JS언어 자체에 포함된 것이 아니라 Console API이다 공부를 할 때 공식사이트를 확인한다. JS 공식 사이트는 ecma-international.org Home - Ecma International Ecma International is an industry association dedicated to the standardization of information and communication systems Ecma is driven by industry members to meet their needs, providing a healthy competitive lan.. 2022. 5. 27.
레슨 3 챕터 10, 11, 12 - view 함수의 가스 절약/storage와 memory의 가스 소모/반복문(for) 이전에 view함수는 함수 외부것들에 접근은 할 수 있으나 그 값들을 수정할 수는 없다고 배웠다. 그러한 점에 의해 view함수는 외부에서 호출되면 가스를 소모하지 않는다. 이말은 같은 컨트랙트 내에서 사용할 경우에는 가스가 소모된다는 뜻. 여하튼 그래서 view함수는 external과 함께 쓰여 내부에선 사용하지 않게 하여 외부에서만 사용하고, 다른 값들도 수정하지 않는 읽기 전용 함수로 쓰인다. storage는 블록체인에 기록되는만큼 가스 소모가 크다. 그래서 코드 자체가 비효율적이더라도 블록체인에 기록될 필요가 없는것들은 memory로 선언하여 가스를 절약할 수 있다. function getArray() external pure returns(uint[]) { // 메모리에 길이 3의 새로운 배열을.. 2022. 2. 17.
레슨3 챕터7, 8, 9 - 함수 보안, 인수를 받는 함수제어자(modifier) 함수 접근 제어자들에 다시 복습 public 다른 컨트랙트에서도 호출할 수 있게 된다 private 해당 함수가 속해있는 컨트랙트에서만 호출할 수 있고 다른 컨트랙트에서는 사용할 수 없다. internal 해당 함수가 속한 컨트랙트와 해당 컨트랙트를 상속받는 컨트랙트에서만 사용할 수 있고 그외의 상속받지 않은 다른 컨트랙트에서는 사용할 수 없다. external 함수가 있는 컨트랙트 내부에서는 사용할 수 없고 다른 컨트랙트에서만 사용할 수 있다. 함수 제어자도 복습 함수제어자(modifier) 이 함수 제어자를 이용하면 특정 함수가 실행될 때 함수 제어자를 거쳐서 함수된다. 함수제어자의 내부를 보면 _; 라는 문구를 마지막에 넣는데 이건 해당 함수가 실행되기 전에 함수제어자가 먼저 실행되고, _; 를 만.. 2022. 2. 17.
레슨3 챕터4, 5, 6 - 가스(gas) / 시간 단위(Time units) 이더리움에서는 코드에 따라 가스를 사용하고 이 가스는 한도(Limit)도 정해질 수 있으며 이더리움 화폐 ETH로 구매해서 지불하게 된다. 이는 누군가가 악의적으로 네트워크를 방해할 목적으로 반복문같은 자원소모가 큰 연산을 쓰지 못하게 막는 역할을 한다. 아무리 많은 연산을 시켜도 가스 한도 내에서만 작동할 수 있고, 그만큼 자신의 돈(ETH)을 지불해야해서 부자부자하지 않으면 금전적으로 부담이 가기 때문에 악당님이 굳이 그러려고 하지않을거시다 참고로 위의 내용들은 이더리움 메인넷에 해당하고 사이드체인이라는 공간에는 메인넷과는 다른점이 있나보다 아무튼 가스가 소모되는데에는 이것저것 조건이 있는데(storage에 쓰인것인지... 등) 다른 변수들은 uint256이던 uint8이던 같은 비용의 가스를 소모하.. 2022. 2. 17.