솔리디티 1주차 요약

이동창·2021년 3월 15일
0

솔리디티

목록 보기
1/3
post-thumbnail

https://cryptozombies.io/ko/course/

Lesson 1

구조체 – 여러 자료형의 집합 느낌

배열 – 동적 배열,
- 구조체 배열 생성 가능
- public 배열
- array.push() 로 배열 추가

함수 - public, private, (internal, external) internal은 private이랑 비슷한데 상속은 접근 가능
- view(read o, write x), pure(read x)

Event – 약간 영수증 알림장 느낌? 근데 아직까진 왜 사용하는지 모르겠음
- 찾아보면 프론트엔드와의 소통을 위해 로그 기록을 위해


Lesson 2

apping – 파이썬의 dict 느낌?

Msg.sender – 현재 함수 호출한 사람 주소

Require – 반복문에서 if break 같은 느낌

Storage vs memory – storage는 주소 복사, memory는 단순 내용 복사
- 주소 복사는 내용 변경 시 같이 적용 (빨간색 화살표)
- 단순 내용 복사는 변경 시 적용 x (빨간색 상자)

인터페이스 – 카테고리 같은 느낌, 몸체는 정의하지 않고 뼈대만 설정해주는 역할(abstract)

다수의 반환값은 (,,c) = , (a,b,c) = 등으로 처리하면 됨


Lesson 3

컨트랙트는 배포하면 변경불가 (블록체인 안에 존재, 코드가 보존됨)
누구도 변경 못하기에 보안성이 높다. 문제는 나조차도 변경못함
따라서 변경해야 할 곳이 있다면 이를 수정 가능하도록 해놓아야 함
근데 아무나 할 수 있게끔 하면 안되니까 ownable 컨트랙트 이용

가스의 개념 등장 -> 최대한 효율적으로 짤 필요가 있음

함수제어자는 인수도 전달 받을 수 있음, olderThan(age, Id)

View 함수는 가스 소모 x -> read만 하기 때문에, 만약 이 view함수를 다른 함수에서 호출 할 때에는 다른 함수와 트랜잭션을 생성하기에 가스 소모

Storage vs memory 2탄
– memory는 함수 끝날 때까지만 존재, 따라서 저렴
- 만약 view 함수로 호출된다면 무료


느낀 점

뭔가 솔리디티는 보안성은 좋지만, 유지 보수 면에서는 많은 노력을 필요로 한다
또한 코드의 최적화보다는 비용의 최적화에 더 강조를 두고 있는 느낌

한번 짤 때 제대로 짜자

프로그래머의 능력이 유저의 비용 지불 측면과 직관적으로 연결 되어 있음

어렵다..

0개의 댓글