Inflearn brand logo image
Inflearn brand logo image

๋‚˜๋งŒ์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๋งŒ๋“ค๊ธฐ

์ด ๊ฐ•์˜๋Š” ๋‚˜๋งŒ์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ๋งŒ๋“ค๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•ด ์ œ์ž‘๋œ ๊ฐ•์˜ ์ž…๋‹ˆ๋‹ค.

7๋ช… ์ด ์ˆ˜๊ฐ•ํ•˜๊ณ  ์žˆ์–ด์š”.

์ดˆ๊ธ‰์ž๋ฅผ ์œ„ํ•ด ์ค€๋น„ํ•œ
[ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด, ๊ฐœ๋ฐœ ยท ํ”„๋กœ๊ทธ๋ž˜๋ฐ] ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๊ฑธ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์–ด์š”

  • ์ปดํŒŒ์ผ๋Ÿฌ

  • ์–ธ์–ด ์„ค๊ณ„

  • ๋ ‰์„œ ๊ตฌํ˜„

  • ํŒŒ์„œ ๊ฐœ๋ฐœ

  • AST ๋งŒ๋“ค๊ธฐ

  • ์ปดํŒŒ์ผ๋Ÿฌ ์ œ์ž‘

  • LLVM IR ์ƒ์„ฑ

  • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์ œ์ž‘

  • ์‹œ์Šคํ…œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ดˆ

  • ์ฝ”๋“œ ์ƒ์„ฑ๊ธฐ ๊ฐœ๋ฐœ

  • Rust ์‹ค์Šต ํ”„๋กœ์ ํŠธ

๐Ÿ’ป Rust๋กœ ๋งŒ๋“œ๋Š” ๋‚˜๋งŒ์˜ ์–ธ์–ด โ€“ ๋ ‰์„œ๋ถ€ํ„ฐ ์ปดํŒŒ์ผ๊นŒ์ง€ ์‹ค์ „ ์ œ์ž‘ ์ž…๋ฌธ

์ด ๊ฐ•์˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ๊ตฌ์กฐ๋ฅผ ๋ฐฐ์šฐ๊ณ  ์‹ถ๊ฑฐ๋‚˜, ๋‚˜๋งŒ์˜ ์–ธ์–ด๋ฅผ ๋งŒ๋“ค์–ด๋ณด๊ณ  ์‹ถ์€ ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•ด ์ œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋ ‰์„œ, ํŒŒ์„œ, AST, ์ธํ„ฐํ”„๋ฆฌํ„ฐ, ์ฝ”๋“œ ์ƒ์„ฑ๊ธฐ๊นŒ์ง€ ์–ธ์–ด์˜ ํ•ต์‹ฌ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ
Rust๋กœ ์ง์ ‘ ๊ตฌํ˜„ํ•˜๋ฉฐ, ๋‹จ์ˆœํ•œ ๊ฐœ๋…์ด ์•„๋‹Œ ์‹ค์ œ ๋™์ž‘ํ•˜๋Š” ์–ธ์–ด๋ฅผ ๋งŒ๋“ค์–ด๋ณด๋Š” ์‹ค์Šต ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.
Rust์˜ ๊ธฐ์ดˆ๋งŒ ์•Œ๊ณ  ์žˆ๋‹ค๋ฉด ๋ˆ„๊ตฌ๋‚˜ ๋”ฐ๋ผ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ“Œ ์ด ๊ฐ•์˜์˜ ํŠน์ง•

๐Ÿง  "์™œ ์–ธ์–ด๋ฅผ ๋งŒ๋“ค๊นŒ?" โ€“ ์–ธ์–ด ์ฒ ํ•™๋ถ€ํ„ฐ ํ•จ๊ป˜ ๋‹ค๋ฃน๋‹ˆ๋‹ค.
๐Ÿ›  ์ง์ ‘ ๋งŒ๋“ค๋ฉฐ ๋ฐฐ์šฐ๋Š” ๊ตฌ์กฐ โ€“ ์ถ”์ƒ์  ๊ฐœ๋… ์—†์ด ๋ ‰์„œ๋ถ€ํ„ฐ ์ฝ”๋“œ ์ƒ์„ฑ๊นŒ์ง€ ์‹ค์Šต ๊ธฐ๋ฐ˜
๐Ÿ” Rust ๊ธฐ๋ฐ˜ ์ปดํŒŒ์ผ๋Ÿฌ ๊ตฌํ˜„ ํ๋ฆ„ ์ „ ๊ณผ์ • ์ฒดํ—˜
๐ŸŽฏ LLVM ์—ฐ๋™ โ€“ IR ์ƒ์„ฑ ๋ฐ ๋ฐ”์ด๋„ˆ๋ฆฌ ์ถœ๋ ฅ
๐Ÿ”ฅ ํ…์ŠคํŠธ ๊ฐ•์˜ ํŠนํ™” โ€“ ์ฝ”๋“œ ๋”ฐ๋ผ์น˜๊ณ  ์ดํ•ดํ•˜๊ธฐ์— ์ตœ์ ํ™”๋œ ๋ฌธ์„œํ˜• ๊ตฌ์„ฑ

์ด๋Ÿฐ ๋ถ„๋“ค๊ป˜ ์ถ”์ฒœํ•ด์š”

๐Ÿ‘จโ€๐Ÿ’ป ์‹œ์Šคํ…œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ž…๋ฌธ์„ ํ•˜๊ณ  ์‹ถ์€ ๋ถ„

OS, ์ปดํŒŒ์ผ๋Ÿฌ, ์ธํ„ฐํ”„๋ฆฌํ„ฐ ๊ตฌ์กฐ๊ฐ€ ๊ถ๊ธˆํ•œ๋ฐ ์–ด๋””์„œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ• ์ง€ ๋ชจ๋ฅผ ๋•Œ

๐Ÿงฉ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์„ค๊ณ„๊ฐ€ ๊ถ๊ธˆํ•œ ๋ถ„
์ง์ ‘ ๋ฌธ๋ฒ•์„ ๋งŒ๋“ค๊ณ  AST๋ฅผ ๊ตฌ์„ฑํ•˜๋ฉฐ ์‹ค์ œ ์–ธ์–ด ๊ตฌ์กฐ๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด

๐Ÿฆ€ Rust๋กœ ๋ฌด์–ธ๊ฐ€๋ฅผ ๋งŒ๋“ค์–ด๋ณด๊ณ  ์‹ถ์€ ๋ถ„
ํ”„๋กœ์ ํŠธ ๊ฒฝํ—˜์œผ๋กœ ์–ธ์–ด ๊ตฌํ˜„์€ ์ตœ๊ณ ์˜ ๋„์ „ ๊ณผ์ œ์ž…๋‹ˆ๋‹ค

๐Ÿ‘จโ€๐Ÿซ ์ด ๊ฐ•์˜๋ฅผ ๋งŒ๋“  ์‚ฌ๋žŒ

  • Wave ์–ธ์–ด ๊ฐœ๋ฐœ์ž (Rust๋กœ ์–ธ์–ด๋ฅผ ๋งŒ๋“œ๋Š” ์‹ค์ „ ๊ฒฝํ—˜ ๋ณด์œ )


  • ํ˜„์žฌ๋Š” Wave ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์ง์ ‘ ๊ฐœ๋ฐœํ•˜๋ฉฐ, LLVM์„ ์ ์ง„์ ์œผ๋กœ ๋„์ž… ์ค‘

  • ์–ธ์–ด ๊ฐœ๋ฐœ์„ ์ฒ ํ•™๊ณผ ๊ตฌ์กฐ๊นŒ์ง€ ๋‹ด์•„ ์ง์ ‘ ์‹คํ˜„ํ•˜๊ณ  ์žˆ๋Š” ์‹ค์ „ํ˜• ๊ฐœ๋ฐœ์ž

์ˆ˜๊ฐ• ์ „ ์ฐธ๊ณ  ์‚ฌํ•ญ

์‹ค์Šต ํ™˜๊ฒฝ

  • ์šด์˜์ฒด์ œ: Windows (WSL2), Debian ๊ธฐ๋ฐ˜ ๋ฆฌ๋ˆ…์Šค

  • ์‚ฌ์šฉ ํˆด: RustRover ๋˜๋Š” Visual Studio Code

์‚ฌ์šฉ ๋„๊ตฌ ๋ฐ ๊ตฌ์„ฑ

  • ๊ฐ•์˜๋Š” ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜์ด๋ฉฐ ์‹ค์ œ Rust ์ฝ”๋“œ๋ฅผ ์ง์ ‘ ๋”ฐ๋ผ์น˜๋ฉฐ ์ดํ•ดํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค


๐Ÿ“š ์„ ์ˆ˜ ์ง€์‹ ๋ฐ ์œ ์˜์‚ฌํ•ญ

  • Rust์˜ ๊ธฐ๋ณธ ๋ฌธ๋ฒ• (๋ณ€์ˆ˜, ํ•จ์ˆ˜, ๊ตฌ์กฐ์ฒด, match ๋“ฑ) ์€ ์•Œ๊ณ  ์žˆ๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค

  • ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ, ์†Œ์Šค ์ฝ”๋“œ ์‹คํ–‰ ํ๋ฆ„์— ๋Œ€ํ•œ ๊ฐœ๋…์ด ์žˆ๋‹ค๋ฉด ๋” ์ž˜ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

  • ์™„์ „ ์ž…๋ฌธ์ž๋Š” Rust๋ฅผ ๊ฐ„๋‹จํžˆ ๋ง›๋ณธ ๋’ค ์ˆ˜๊ฐ•ํ•ด๋„ ๋ฌด๋ฐฉํ•ฉ๋‹ˆ๋‹ค

โœจ ์ˆ˜๊ฐ• ์™„๋ฃŒ ์‹œ, ์—ฌ๋Ÿฌ๋ถ„์€โ€ฆ

  • ๋‚˜๋งŒ์˜ ํ‚ค์›Œ๋“œ์™€ ๋ฌธ๋ฒ•์„ ๊ฐ€์ง„ ์–ธ์–ด๋ฅผ ์ง์ ‘ ์„ค๊ณ„ํ•˜๊ณ  ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ

  • ๋ ‰์„œ, ํŒŒ์„œ, AST, ์ธํ„ฐํ”„๋ฆฌํ„ฐ ๊ตฌ์กฐ๋ฅผ ์†์œผ๋กœ ๊ตฌํ˜„ํ•œ ์‹ค์ „ ๊ฒฝํ—˜์„ ์–ป๊ฒŒ ๋ฉ๋‹ˆ๋‹ค

  • ์ž์‹ ๋งŒ์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค์—ˆ๋‹ค๋Š” ๊ฐ•๋ ฅํ•œ ํฌํŠธํด๋ฆฌ์˜ค๋„ ์†์— ๋„ฃ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค

์ด๋Ÿฐ ๋ถ„๋“ค๊ป˜
์ถ”์ฒœ๋“œ๋ ค์š”!

ํ•™์Šต ๋Œ€์ƒ์€
๋ˆ„๊ตฌ์ผ๊นŒ์š”?

  • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ๋งŒ๋“ค๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ

  • Rust, C๋กœ ๊ธฐ์ดˆ๋Š” ์ตํ˜”๋Š”๋ฐ ๋„์ „ ๊ณผ์ œ๊ฐ€ ํ•„์š”ํ•œ ์‚ฌ๋žŒ

  • ํŒŒ์„œ, ๋ ‰์„œ, ์ปดํŒŒ์ผ๋Ÿฌ ๊ตฌ์กฐ์— ๊ด€์‹ฌ ์žˆ๋Š” ์‚ฌ๋žŒ

์„ ์ˆ˜ ์ง€์‹,
ํ•„์š”ํ• ๊นŒ์š”?

  • Rust

  • ๊ธฐ์ดˆ ์ˆ˜์ค€์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝํ—˜

์•ˆ๋…•ํ•˜์„ธ์š”
LuanStev์ž…๋‹ˆ๋‹ค.

Wave ํ”„๋กœ๊ทธ๋žจ์ด ์–ธ์–ด ๊ฐœ๋ฐœ์ž

Wave ๊นƒํ—ˆ๋ธŒ 

๊นƒํ—ˆ๋ธŒ

์ปค๋ฆฌํ˜๋Ÿผ

์ „์ฒด

21๊ฐœ

ํ•ด๋‹น ๊ฐ•์˜์—์„œ ์ œ๊ณต:

์ˆ˜์—…์ž๋ฃŒ
๊ฐ•์˜ ๊ฒŒ์‹œ์ผ: 
๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ์ผ: 

์ˆ˜๊ฐ•ํ‰

์•„์ง ์ถฉ๋ถ„ํ•œ ํ‰๊ฐ€๋ฅผ ๋ฐ›์ง€ ๋ชปํ•œ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.
๋ชจ๋‘์—๊ฒŒ ๋„์›€์ด ๋˜๋Š” ์ˆ˜๊ฐ•ํ‰์˜ ์ฃผ์ธ๊ณต์ด ๋˜์–ด์ฃผ์„ธ์š”!

๋น„์Šทํ•œ ๊ฐ•์˜

๊ฐ™์€ ๋ถ„์•ผ์˜ ๋‹ค๋ฅธ ๊ฐ•์˜๋ฅผ ๋งŒ๋‚˜๋ณด์„ธ์š”!

์›” โ‚ฉ15,400

5๊ฐœ์›” ํ• ๋ถ€ ์‹œ

โ‚ฉ77,000