Seize your moment! ๐Ÿ‘พ

์•ˆ๋…•ํ•˜์„ธ์š”. Eric์ž…๋‹ˆ๋‹ค. ์ œ ๋ธ”๋กœ๊ทธ์— ๋ฐฉ๋ฌธํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ’ป ๊ฐœ๋ฐœ๊ณต๋ถ€/Elixir 3

[Eric's Elixir] Elixir์—์„œ์˜ Quote์™€ Unquote ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž!

์„œ๋ก  Elixir, Erlang VM ์œ„์—์„œ ์šด์˜๋˜๋Š” ๊ฐ•๋ ฅํ•œ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด,๋Š” ๋ฉ”ํƒ€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ์žˆ์–ด ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•˜๋Š” quote์™€ unquote๋ผ๋Š” ๋‘ ๊ฐœ๋…์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒŒ์‹œ๋ฌผ์—์„œ๋Š” ์ด ๋‘ ๊ฐœ๋…์˜ ํ•„์š”์„ฑ๊ณผ ๊ธฐ๋Šฅ์„ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. Quote์˜ ํ•„์š”์„ฑ๊ณผ ์ž‘๋™ ์›๋ฆฌ 1. ํ•„์š”์„ฑ: ์ฝ”๋“œ ์กฐ์ž‘: Elixir์—์„œ ์ฝ”๋“œ๋ฅผ ๋ฐ์ดํ„ฐ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ์ด๋ฅผ ์กฐ์ž‘ํ•  ํ•„์š”๊ฐ€ ์žˆ์„ ๋•Œ quote๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋งคํฌ๋กœ, ์ฝ”๋“œ ์ƒ์„ฑ, ๊ทธ๋ฆฌ๊ณ  ๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋ฒ•์— ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค. ์ถ”์ƒํ™” ์ธต ์ƒ์„ฑ: quote๋Š” ์ฝ”๋“œ์˜ ์˜๋ฏธ๋ฅผ ๋ณด์กดํ•˜๋ฉด์„œ ๊ทธ๊ฒƒ์„ ์ถ”์ƒํ™” ์ธต์œผ๋กœ ๋ž˜ํ•‘ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋ณต์žกํ•œ ์ฝ”๋“œ ๋ณ€ํ™˜์„ ์‰ฝ๊ฒŒ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค. 2. ์ž‘๋™ ์›๋ฆฌ: quote๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด, ์ฃผ์–ด์ง„ ์ฝ”๋“œ ๋ธ”๋ก์ด Elixir์˜ ๋‚ด๋ถ€ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ, ..

[Eric's Elixir] ์•„ํ†ฐ(Atom), ํŠœํ”Œ(tuple) ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ธฐ ๐Ÿงช

Elixir์™€ ์•„ํ†ฐ(Atom)์˜ ๋งŒ๋‚จ Elixir๋Š” Erlang VM ์œ„์— ๊ตฌ์ถ•๋œ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ, ๋†’์€ ๋™์‹œ์„ฑ(concurrency), ๋‚ด๊ฒฐํ•จ์„ฑ(fault-tolerance), ๋ถ„์‚ฐ(distribution)์„ ์œ„ํ•ด ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฉ‹์ง„ ์–ธ์–ด์˜ ๊ธฐ๋ณธ ๊ตฌ์„ฑ ์š”์†Œ ์ค‘ ํ•˜๋‚˜๋Š” ๋ฐ”๋กœ '์•„ํ†ฐ(atom)'์ž…๋‹ˆ๋‹ค. ์•„ํ†ฐ์€ Elixir์˜ ๋ถˆ๋ณ€ํ•˜๋Š” ์ƒ์ˆ˜์ด๋ฉฐ, ์ด๋ฆ„ ๊ทธ๋Œ€๋กœ ๊ณ ์œ ํ•œ ๊ฐ’์œผ๋กœ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ์ด๋Ÿฌํ•œ ์•„ํ†ฐ์— ๋Œ€ํ•ด ๊นŠ์ด ์žˆ๊ฒŒ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์•„ํ†ฐ(Atom)์ด๋ž€? ์•„ํ†ฐ์€ ์ด๋ฆ„์ด ๊ฐ’์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค. ์ฆ‰, ์•„ํ†ฐ์€ ์ž๊ธฐ ์ž์‹ ์ด ์ตœ์ข… ๊ฐ’์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, :ok ์•„ํ†ฐ์€ "ok"๋ผ๋Š” ์ด๋ฆ„์˜ ์•„ํ†ฐ์ž…๋‹ˆ๋‹ค. ์ด ํŠน์„ฑ ๋•Œ๋ฌธ์—, ์•„ํ†ฐ์€ ์ฃผ๋กœ ์ƒํƒœ, ์‹๋ณ„์ž ๋˜๋Š” ํŠน์ • ๊ฐ’์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค...

[Eric's Elixir] ํ•€ ์—ฐ์‚ฐ์ž๋ž€? ๐Ÿ“

Elixir ๋ฅผ ๊ณต๋ถ€ํ•˜๋ฉด์„œ, JS์—์„œ๋Š” ์ต์ˆ™ํ•˜์ง€ ์•Š์€ ๋‚ด์šฉ์ด ์žˆ์–ด์„œ ๋”ฐ๋กœ ์ •๋ฆฌํ•˜๊ณ ์ž ์ด ๊ธ€์„ ์ž‘์„ฑํ•œ๋‹ค. Elixir์—์„œ ํ•€(^) ์—ฐ์‚ฐ์ž๋ž€? Elixir์—์„œ๋Š” ๋งŽ์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์™€๋Š” ๋‹ค๋ฅด๊ฒŒ = ์—ฐ์‚ฐ์ž๊ฐ€ ๋ณ€์ˆ˜์— ๊ฐ’์„ ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋Œ€์‹ , = ์—ฐ์‚ฐ์ž๋Š” ํŒจํ„ด ๋งค์นญ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์ด ๋•Œ๋ฌธ์—, Elixir์—์„œ ์ด๋ฏธ ํ• ๋‹น๋œ ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ๊ณ ์ •ํ•˜๊ฑฐ๋‚˜ ํ•ด๋‹น ๊ฐ’๊ณผ ๋‹ค๋ฅธ ํŒจํ„ด์„ ๋งค์นญํ•˜๊ณ ์ž ํ•  ๋•Œ ํŠน๋ณ„ํ•œ ์—ฐ์‚ฐ์ž๊ฐ€ ํ•„์š”ํ•˜๊ฒŒ ๋˜์—ˆ๋Š”๋ฐ, ๊ทธ ๊ฒƒ์ด ๋ฐ”๋กœ ํ•€(^) ์—ฐ์‚ฐ์ž์ด๋‹ค. 1. ํŒจํ„ด ๋งค์นญ์—์„œ์˜ ๊ฐ’ ๊ณ ์ • ํŒจํ„ด ๋งค์นญ์€ ๋ณ€์ˆ˜๋ฅผ ๊ฐ’์— ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ, ๋ณ€์ˆ˜๊ฐ€ ์ด๋ฏธ ๊ฐ’์œผ๋กœ ๋ฐ”์ธ๋”ฉ๋œ ์ƒํƒœ์—์„œ ํ•ด๋‹น ๋ณ€์ˆ˜๋ฅผ ๋‹ค๋ฅธ ๊ฐ’์ด๋‚˜ ํŒจํ„ด๊ณผ ๋งค์นญํ•˜๋ ค๋ฉด ํ•€ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. x = 1 # x ๋ณ€์ˆ˜์— 1์ด ๋ฐ”์ธ๋”ฉ๋ฉ๋‹ˆ๋‹ค..