๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Dev/+@

์†”๋ฆฌ๋””ํ‹ฐ string memory (๋ฐ์ดํ„ฐ ์ €์žฅ ์˜์—ญ)

by vellahw 2023. 6. 1.

 

 

๐Ÿ’ญ ์„œ๋ก 

์†”๋ฆฌ๋””ํ‹ฐ๋ฅผ ์ฐ๋จน ํ•ด๋ณด๋Š” ๊ณผ์ •์—์„œ string ์ž๋ฃŒํ˜• ์˜†์—” ๊ผญ memory๊ฐ€ ๋ถ™๋Š”๋‹จ๊ฑธ ์•Œ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๋ฌด์Šจ ์˜๋ฏธ์ธ์ง€ ์ˆ˜์—… ์‹œ๊ฐ„์—๋„ ๊ฐ„๋‹จํžˆ๋งŒ ์•Œ๋ ค์ฃผ์…”์„œ ๊ทธ๋ƒฅ "์ŠคํŠธ๋ง์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ผญ ๋ถ™์—ฌ์•ผ ํ•˜๋Š”๊ตฐ" ์ •๋„๋กœ ์™ธ์›Œ ์“ฐ๊ธฐ๋งŒ ํ–ˆ๋‹ค. ํ‹€๋ฆฐ๋ง์€ ์•„๋‹ˆ์ง€๋งŒ ๋ณ€์ˆ˜, ํ•จ์ˆ˜, ํŒŒ๋ผ๋ฏธํ„ฐ ๋“ฑ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ด๊ธฐ๋Š” ์ €์žฅ์˜์—ญ์ด ๋„ค ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹จ ๊ฑธ ์•Œ๊ฒŒ ๋˜์—ˆ๊ณ  ๋ถ™์ด๋Š” ์ด์œ ๋ฅผ ์•Œ๊ธฐ ์œ„ํ•ด ์ •๋ฆฌํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค.

 


 

์œ„ ์ฝ”๋“œ๋Š” ๋‹จ์ˆœ name์ด๋ž€ ๋ณ€์ˆ˜๋ฅผ ๋ฆฌํ„ดํ•ด์ฃผ๋Š” ์ปจํŠธ๋ž™ํŠธ์ด๋‹ค.

์†”๋ฆฌ๋””ํ‹ฐ๋Š” ํ•จ์ˆ˜์˜ ๋ฆฌํ„ด๊ฐ’์ด ์žˆ์„ ๋•Œ ํ•จ์ˆ˜ ๋์— returns (์ž๋ฃŒํ˜•)์„ ์ •์˜ํ•ด์ฃผ์–ด์•ผ ํ•˜๋Š”๋ฐ ์‚ฌ์ง„์—์„œ ๋ณด์ด๋“ฏ string์€ memory๋ฅผ ๋ถ™์—ฌ์ค˜์•ผ ํ–ˆ๋‹ค.

 

์šฐ์„ , ์†”๋ฆฌ๋””ํ‹ฐ์—์„œ๋Š” string ์ž๋ฃŒํ˜•์ด ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ž…๋ ฅ๋˜๊ฑฐ๋‚˜, string ์ž๋ฃŒํ˜•์„ ํ•จ์ˆ˜ ๋‚ด์—์„œ ์“ฐ๋ ค๋ฉด memory๋ฅผ ๋ถ™์ด๋Š” ๊ฑธ ๊ฐ•์ œํ•œ๋‹ค.

 

memoery ์˜ต์…˜์„ ๋ถ™์ธ ๊ฒƒ์€ ํ•ด๋‹น ๋ณ€์ˆ˜ ๋ฐ์ดํ„ฐ๋ฅผ memory์— ์ €์žฅํ•œ๋‹ค๋Š” ๋œป์œผ๋กœ storage ํ˜น์€ ์ด๋”๋ฆฌ์›€ ๋ธ”๋ก์— ํฌํ•จ์‹œํ‚ค์ง€ ์•Š๊ฒ ๋‹ค๋Š” ๋œป์ด๋‹ค. ์ด ๋ง์€ ์ฆ‰, memory๋Š” ํœ˜๋ฐœ์„ฑ ์ €์žฅ์†Œ๋กœ ํ•จ์ˆ˜ ํ˜ธ์ถœ ๋™์•ˆ๋งŒ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜๊ธฐ ์‹œ์ž‘ํ•˜์ง€๋งŒ, ๋กœ์ง์ด ์ข…๋ฃŒ๋˜๋ฉด ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋Š” ์‚ฌ๋ผ์ง„๋‹ค. 

 

์†”๋ฆฌ๋””ํ‹ฐ์˜ ๋ฐ์ดํ„ฐ ์ €์žฅ ์˜์—ญ ์ข…๋ฅ˜์—๋Š” storage, memory, Calldata, stack ๋„ค ๊ฐ€์ง€ ์ข…๋ฅ˜๊ฐ€ ์žˆ๋Š”๋ฐ,

์†”๋ฆฌ๋””ํ‹ฐ์—์„œ๋Š” '๊ฐ€์Šค๋น„'๋ฅผ ์ƒ๊ฐํ•ด์„œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค. memoery ์˜ต์…˜์€ storage๋ณด๋‹ค ๊ฐ€์Šค๋น„๊ฐ€ ์ €๋ ดํ•˜๊ธฐ๋„ ํ•˜๋‹ค.

 

๐Ÿ‘€ ๋ฐ์ดํ„ฐ ์ €์žฅ ์˜์—ญ

storage

  • ๋Œ€๋ถ€๋ถ„์˜ ๋ณ€์ˆ˜, ํ•จ์ˆ˜๋“ค์ด ์ €์žฅ๋˜๋Š” ๊ณต๊ฐ„์œผ๋กœ ์˜์›ํžˆ ์ €์žฅ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€์Šค๋น„๊ฐ€ ๋น„์‹ธ๋‹ค.
  • ๋ธ”๋ก์ฒด์ธ ๋ธ”๋ก์— ์ €์žฅ๋œ๋‹ค.

memory

  • ํ•จ์ˆ˜์˜ ํŒŒ๋ผ๋ฏธํ„ฐ, ๋ฆฌํ„ด๊ฐ’, ๋ ˆํผ๋Ÿฐ์Šค ํƒ€์ž…(์ฐธ์กฐํ˜•: ํด๋ž˜์Šค, ์ธํ„ฐํŽ˜์ด์Šค, ๋ฐฐ์—ด)์ด ์ฃผ๋กœ ์ €์žฅ๋œ๋‹ค.
  • storage ์ฒ˜๋Ÿผ ์˜์†์ ์ด์ง€ ์•Š๊ณ  ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋  ๋™์•ˆ๋งŒ ์‚ฌ์šฉ๋˜๊ธฐ ๋•Œ๋ฌธ์— storage๋ณด๋‹ค ๊ฐ€์Šค๋น„๊ฐ€ ์ €๋ ดํ•˜๋‹ค.
  • ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋  ๋™์•ˆ๋งŒ ์‹คํ–‰๋˜๊ณ  ํ•จ์ˆ˜ ์‹คํ–‰ ์ข…๋ฃŒ์‹œ ์‚ญ์ œ๋œ๋‹ค.
  • ์˜์†์ ์ด์ง€ ์•Š์€ ํœ˜๋ฐœ์„ฑ ์ €์žฅ์†Œ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ปจํŠธ๋ž™ํŠธ ๊ตฌํ˜„์— ๊ผญ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ผ๋ฉด ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•˜๋ฉด ์•ˆ ๋˜๊ณ , ํ•จ์ˆ˜ ์‹คํ–‰์—๋งŒ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์ž ์‹œ ์ €์žฅํ•ด๋‘์—ˆ๋‹ค๊ฐ€ ์‚ฌ์šฉํ•ด์•ผ ํ•จ

Colldata

  • ํŠธ๋žœ์žญ์…˜ ๋˜๋Š” callํ•จ์ˆ˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์œ ์ง€๋˜๋Š” ์˜
  • calldata๋กœ ๋ฐ›๊ฒŒ ๋œ๋‹ค๋ฉด ๊ฐ’์€ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๊ณ  ์ฝ๊ธฐ๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ์ฝ๊ธฐ ์ „์šฉ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€์Šค๋น„๊ฐ€ ์ €๋ ดํ•˜๋‹ค.
  • calldata ์˜์—ญ์— ์ €์žฅ๋˜๋Š” ๋ฐ์ดํ„ฐ๋Š” ๋ณ€ํ•˜์ง€ ์•Š์œผ๋ฉฐ, ์ผ๋ฐ˜์ ์œผ๋กœ ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ ์ฝ๊ธฐ๋งŒ ํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค. (๋ถˆ๋ก์ฒด์ธ ์ƒ์—์„œ๋„ ์ €์žฅ๋˜์ง€ ์•Š์Œ)
  • calldata ์˜์—ญ์˜ ํฌ๊ธฐ๋Š” ์ปดํŒŒ์ผํ•  ๋•Œ ๊ฒฐ์ •๋˜๋ฉฐ, ํ•จ์ˆ˜ ํ˜ธ์ถœ์ด ๋๋‚  ๋•Œ ์ž๋™์œผ๋กœ ์‚ญ์ œ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ํ•จ์ˆ˜ ์‹คํ–‰์ด ์‹œ์ž‘๋œ ์ดํ›„์—๋Š” ํ•ด๋‹น ์ธ์ž๋“ค์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†์Œ

stack

  • EVM(Ethereum Virtual Machine ์ด๋”๋ฆฌ์›€ ๊ฐ€์ƒ ๋จธ์‹ )์—์„œ ๋ชจ๋“  ๊ณ„์‚ฐ์€ stack ์˜์—ญ์—์„œ ์‹คํ–‰๋œ๋‹ค.
  • ํœ˜๋ฐœ์„ฑ์„ ๊ฐ€์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ์œ ์ง€ ๋ฐ ๊ด€๋ฆฌํ•˜๋Š” ๊ณต๊ฐ„

 

 

 


์ฐธ๊ณ 

'Dev > +@' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

์‚ฌ์šฉ์ž ๊ด€์ ์˜ UI ๊ตฌ์„ฑํ•˜๊ธฐ  (0) 2023.09.05
HTML, CSS๋กœ ํ† ๊ธ€ ๋ฒ„ํŠผ ๋งŒ๋“ค๊ธฐ  (0) 2023.06.09

๋Œ“๊ธ€