inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

블록체인 이더리움 부동산 댑(Dapp) 만들기 - 기본편

컨트랙트 최적화2 에서 mapping 이 이해가 잘가지않습니다.

241

이성준

작성한 질문수 2

0

제가 알기로는 mapping 이 Key => value 로 이루어진 함수라고 알고있습니다.

뭐 예를 들면 mappng(key => address) 이면 키값을 넣으면 주소를 mapping 시킨다고 알고있는데

최적화2의 끝부분에 배열의 반복 낭비를 줄이기위해 mapping을 사용하여 구조체와 매핑시킨다고 하였는데

 

mapping(uint => Student) studentInfo;

이 부분이 이해가 잘가지않습니다. 예를 들어 updateStudentById 함수의 인수값을 _studentId 에11을 넣었다고 가정하면

Student storage student = studentInfo[11]; 이 되고 매핑을 통해 mapping(11 => Student) 가 되는데 그럼

Student 구조체 배열의 11번째가 자동으로 매핑되는건가요 ?

그렇게되서 11번째 Student의 배열이 student가 되고

student.name = _name 을 통해

name이 새로 정의된다는건가요 ?

 

매핑으로 value 값에 구조체가 들어가니까 개념이 혼란스럽네요..

 

dapp blockchain Ethereum

답변 1

1

SEJONG IT EDU

안녕하세요. 

강좌에서 솔리디티 스마트 계약 이론 파트가 있는데 

1. 참조타입: 구조체

2. 참조타입: 매핑

참고하시면 도움이 될 것 같습니다. 

 

어쨌든 매핑이라는게 배열로 저장되는게 아니고 메모리상에서 키값이 있으면 매핑된 value를 불러오는 구조입니다. 

studentId가 11이다 하면 key값 11과 매핑된 Student 구조체 정보를 둥둥 떠다니는 암흑과 같은 공허한 저장소에서 불러오는 것 뿐이에요. 

 

자바의 Map이나 C#의 Dictionary를 떠올리시면 될 것 같습니다.

[긴급] 전체 소스코드 파일 있었던거 같은데 어디서 받나요?

0

240

2

블록체인 강의

0

174

2

강의내용 질문입니다 메타마스크

0

277

1

truffle develop 명령 오류

0

414

0

메타마스크 창이 안뜨네요 ㅜ

0

463

2

전제 소스 코드

1

275

0

miner.stop() 오류

0

298

0

매입 실행 시 메타마스크와 연동이 안되고 창이 안뜨고 있네요

0

654

2

코드가 다운받아지지 않습니다.

0

255

1

git에 올리신 자료 관련

0

329

2

geth rpc 에러입니다.

0

548

2

수업 자료

1

283

1

truffle 버전

2

248

0

Geth의 버전이 업데이트 되면서 실행되지 않았습니다. 의 해결법 (nodestart)

1

386

1

TypeError: Contracts.compile is not a function / powershell에 migrate 시 오류발생

0

367

1

./nodestrart.cmd

0

273

1

truffle migrate 실행 시 오류

0

254

0

nodestart.cmd 파일 실행시 오류

0

758

1

필드 초기화 질문

0

217

0

truffle 이렇다는데,, 업데이트 하게되면 강의를 들을수 있나요..?

0

212

0

puppeth 명령어 실행이 안됩니다.

0

436

1

truffle init 시 에러

0

208

0

nodestart 질문

0

487

1

메타마스크 질문

0

175

0