๋ธ”๋กœ๊ทธ ์ฃผ์ธ

์ „์„ฑํ›ˆ์ด๋‹ค.

๋ธ”๋กœ๊ทธ๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ์ด์œ 

๊ธ€์“ฐ๊ธฐ๋ฅผ ์—ฐ์Šตํ•˜๊ณ , ๋‚ด ๊ฒฝํ—˜๊ณผ ์ƒ๊ฐ์„ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์—๊ฒŒ ๋‚˜๋ˆ„๋ ค๊ณ  ํ•œ๋‹ค.

๋ธ”๋กœ๊ทธ๋ฅผ ๋งŒ๋“  ์ด์œ 

์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์ž๋กœ์จ ํ‰์†Œ์— ํ•™์Šตํ•˜๊ณ  ์‹ถ์€ ํ”„๋ ˆ์ž„์›Œํฌ์™€ ์–ธ์–ด, ํˆด๋“ค์ด ์žˆ์—ˆ๋‹ค.

  • Rust lang - ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด
  • axum - Rust ๊ธฐ๋ฐ˜ ์›น ํ”„๋ ˆ์ž„์›Œํฌ
  • AWS Lambda - ์ปดํ“จํŒ… ์ธํ”„๋ผ์ŠคํŠธ๋Ÿญ์ณ
  • PostgreSQL - DB
  • SvelteKit - Svelte ๊ธฐ๋ฐ˜ ์›น ํ”„๋ ˆ์ž„์›Œํฌ
  • Cloudflare Pages - ๋ฌด๋ฃŒ ์›น ํ˜ธ์ŠคํŒ… ์„œ๋น„์Šค
  • Supabase - BaaS & ๋ฌด๋ฃŒ PostgreSQL ํ˜ธ์ŠคํŒ… ์„œ๋น„์Šค

์ด๊ฒƒ๋“ค์„ ์ตœ๋‹จ์‹œ๊ฐ„์— ํ•™์Šตํ•  ๋ฐฉ๋ฒ•์€ ์—†์„๊นŒ ๊ณ ๋ฏผํ•˜๋‹ค๊ฐ€, ์ด๊ฒƒ๋“ค๋กœ ๋‚ด ์ „์šฉ ๋ธ”๋กœ๊ทธ๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ํ•™์Šต๋„ ๋˜๊ณ , ํ‰์†Œ์— ํ•„์š”ํ–ˆ๋˜ ๋‚ด ์ „์šฉ ๋ธ”๋กœ๊ทธ ํ”Œ๋žซํผ๋„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์œผ๋‹ˆ๊นŒ ๋‚˜ํ•œํ…Œ๋Š” ์ด๋“์ด์—ˆ๋‹ค. ์‹ค์ œ๋กœ ๋ธ”๋กœ๊ทธ๋ฅผ ๋งŒ๋“ค ๋•Œ ์œ„ ๊ธฐ์ˆ ๋“ค์„ ์ „๋ถ€ ์‚ฌ์šฉํ–ˆ๋‹ค.

๊ธฐ์ˆ ์  ํŠน์ง•

๋ฐฑ์—”๋“œ ๋ถ€๋ถ„์€ Rust ์–ธ์–ด๋กœ ๊ตฌํ˜„ํ–ˆ๋‹ค. axum ์›น ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ–ˆ์œผ๋ฉฐ, ๋ฐฐํฌ๋Š” AWS Lambda ์ธํ”„๋ผ์— ๋˜์–ด ์žˆ๋‹ค.

๋ฐ์ดํ„ฐ๋Š” PostgreSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋˜๋ฉฐ, Supabase์—์„œ ๋ฌด๋ฃŒ๋กœ ์ œ๊ณตํ•˜๋Š” ์ธ์Šคํ„ด์Šค ์•ˆ์— ์ €์žฅ๋œ๋‹ค. ๊ฐœ์ธ ๋ธ”๋กœ๊ทธ์šฉ์œผ๋กœ๋Š” ์ถฉ๋ถ„ํžˆ ๋„‰๋„‰ํ•œ ์–‘ ๊ฐ™์•„ ๋ณด์˜€๋‹ค.

ํ”„๋ก ํŠธ์—”๋“œ๋Š” SvelteKit ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ๊ตฌํ˜„ํ•˜์˜€๋‹ค. SSR์„ ์ ๊ทน์ ์œผ๋กœ ํ™œ์šฉํ•œ๋‹ค. ์œ ์ €๊ฐ€ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์ฝ”๋“œ๋Š” SvelteKit์˜ ์„œ๋ฒ„ ์ฝ”๋“œ๋กœ ๊ตฌํ˜„๋˜์–ด ์žˆ์œผ๋ฉฐ, ์›น ๋ธŒ๋ผ์šฐ์ €๊นŒ์ง€ ๋…ธ์ถœ๋˜์ง€ ์•Š๋Š”๋‹ค. form๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ด๋ฉฐ, form ๊ฒ€์ฆ ๋˜ํ•œ ์„œ๋ฒ„ ๋ถ€๋ถ„์—์„œ ์ด๋ฃจ์–ด์ง„๋‹ค. ํ”„๋ก ํŠธ์—”๋“œ ์ฝ”๋“œ๋Š” Cloudflare Pages์— ๋ฐฐํฌ๋˜์–ด ์žˆ๋‹ค.

๋ธ”๋กœ๊ทธ๋ฅผ ๋งŒ๋“ค๋ฉฐ ๋งŒ๋‚œ ๋‚œ๊ด€๋“ค

Cloudflare Pages์™€ Vercel, SvelteKit

ํ”„๋ก ํŠธ์—”๋“œ ๋ฐฐํฌ์— ์ด์Šˆ๊ฐ€ ํ•˜๋‚˜ ์žˆ์—ˆ๋‹ค. ์‚ฌ์‹ค์€ ํ”„๋ก ํŠธ์—”๋“œ๋ฅผ Vercel์— ๋ฐฐํฌํ•˜๊ณ  ๋๋‚ด๋ ค๊ณ  ํ–ˆ์—ˆ๋Š”๋ฐ, Vercel์— ๋ฐฐํฌํ•˜๊ณ  ๋ณด๋‹ˆ ์„œ๋ฒ„๊ฐ€ ์ƒ๊ฐ๋ณด๋‹ค ๋А๋ฆฐ ๊ฒƒ์ด์—ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” AWS Lambda์— ๋ฐฐํฌ๋œ ๋ฐฑ์—”๋“œ์™€ Supabase์˜ PostgreSQL์„ ์˜์‹ฌํ–ˆ์—ˆ๋Š”๋ฐ, ์ •์ž‘ ๋กœ์ปฌ์—์„œ Lambda ์„œ๋ฒ„๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ์—๋Š” ์†๋„๊ฐ€ ํ•˜๋‚˜๋„ ๋А๋ฆฌ์ง€ ์•Š์€ ์ ์ด ์ด์ƒํ–ˆ๋‹ค.

๊ทธ๋ž˜์„œ ํ”„๋ก ํŠธ์—”๋“œ ๋ฐฐํฌ ์œ„์น˜๋ฅผ ๋ฐ”๊พธ๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋‹ค. ํ›„๋ณด๊ตฐ์€ ๋งŽ์ง€ ์•Š์•˜๋‹ค. Netifly, Cloudflare Pages, Vercel ์…‹ ์ค‘ ํ•˜๋‚˜๋ฅผ ๊ณ ๋ฅด๊ฑฐ๋‚˜, AWS ์ธํ”„๋ผ์— ๋‚ด๊ฐ€ ์ง์ ‘ ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํƒํ•ด์•ผ ํ–ˆ๋‹ค. ํŠนํžˆ SSR์„ ์ ๊ทน ํ™œ์šฉํ•˜๋„๋ก ๊ตฌํ˜„๋œ ์ฝ”๋“œ๋กœ์จ๋Š” ์ •์  ๋นŒ๋“œ๋„ ์–ด๋ ค์šด ์ƒํ™ฉ์ด์—ˆ๊ธฐ ๋•Œ๋ฌธ์—, ์…‹ ์ค‘์—์„œ ๊ณ ๋ฅด์ง€ ๋ชปํ•˜๋ฉด ๋‚ด๊ฐ€ ์ง์ ‘ SvelteKit์„ ๋ฐฐํฌํ•ด์•ผ ํ•˜๋Š” ์ž‘์—…์„ ์ง„ํ–‰ํ•ด์•ผ ํ–ˆ์„ ๊ฒƒ์ด๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ๊ทธ ์™€์ค‘์— Cloudflare์˜ ๋Œ€์‹œ๋ณด๋“œ ์ธํ”„๋ผ์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. ํ•˜ํ•„ Cloudflare Pages์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ฐฐํฌํ•ด๋ณผ ๋•Œ ๋ฐœ์ƒํ•ด์„œ, ์ œ๋Œ€๋กœ ๋œ ํ…Œ์ŠคํŠธ๋ฅผ ์ฒ˜์Œ์—๋Š” ํ•  ์ˆ˜ ์—†์—ˆ๋‹ค. ์ดํ‹€ ์ •๋„ ๊ธฐ๋‹ค๋ฆฌ๋‹ˆ๊นŒ ์žฅ์• ๊ฐ€ ํ•ด๊ฒฐ๋œ ๋ชจ์–‘์ธ์ง€, ์ •์ƒ์ ์œผ๋กœ ๋ฐฐํฌํ•ด๋ณผ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

๋‹คํ–‰ํžˆ๋„ Cloudflare Pages๋Š” ๋ฌด๋‚œํ•œ ์„ฑ๋Šฅ์„ ๋ฝ‘์•„์ฃผ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ํŠนํžˆ, ์ด์ „์— Cloudflare Pages์— ๋ฆฌ์•กํŠธ ์•ฑ์„ ๋ฐฐํฌํ•ด๋ณธ ์ ์ด ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์—, SvelteKit ์•ฑ ๋ฐฐํฌ ๋˜ํ•œ ์–ด๋ ต์ง€ ์•Š์•˜๋‹ค. ๋‹ค๋งŒ, ์›๋ž˜๋Š” ํ”„๋ก ํŠธ์—”๋“œ ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €๋กœ bun์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ, SvelteKit์— bun์„ ์‚ฌ์šฉํ•œ ๋นŒ๋“œ ์˜ต์…˜์ด ์กด์žฌํ•˜์ง€ ์•Š์•„ bun ์‚ฌ์šฉ์„ ํฌ๊ธฐํ•˜๋Š” ์ผ์ด ์žˆ์—ˆ๋‹ค. ๋‚˜์ค‘์— bun ์ง€์›์ด ์ถ”๊ฐ€๋˜๋ฉด ๋‹ค์‹œ ์‚ฌ์šฉํ•ด๋ณผ ์˜ํ–ฅ์ด ์žˆ๋‹ค.

๋ฐฐํฌ ์ž์ฒด๋Š” ๋ฐ”๋กœ ์ง„ํ–‰ํ–ˆ์œผ๋‚˜ Cloudflare Pages์— ๋ฐฐํฌ๋œ ํ›„ ์•ฑ์ด '500 ์—๋Ÿฌ'๋ฅผ ๋‚ด๋ฉฐ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒํ–ˆ๋‹ค. SSR๊นŒ์ง€๋Š” ์ž‘๋™ํ•˜๋‚˜ ๋‚ด๋ถ€ ๋กœ์ง ์–ด๋”˜๊ฐ€์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๋ชจ์–‘์ด์—ˆ๋‹ค. ๋ถ„์„ํ•ด๋ณธ ๊ฒฐ๊ณผ, Cloudflare Pages์˜ js ์‹คํ–‰ ํ™˜๊ฒฝ(Cloudflare Workers)์˜ ๋ฌธ์ œ์ธ ๊ฒƒ์œผ๋กœ ํ™•์ธ๋˜์—ˆ๋‹ค. fetch ํ•จ์ˆ˜์˜ ์ผ๋ถ€ ๊ธฐ๋Šฅ์ด ์ง€์›๋˜์ง€ ์•Š์•„ ์„œ๋ฒ„(๋ฐฑ์—”๋“œ, AWS Lambda)๋กœ๋ถ€ํ„ฐ์˜ ๋ฐ์ดํ„ฐ ๋กœ๋”ฉ์— ์‹คํŒจํ•˜๋Š” ๊ฒƒ์ด์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ fetch ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ๋ฅผ ์‚ญ์ œํ–ˆ๋Š”๋ฐ, ๊ทธ๋žฌ๋”๋‹ˆ ์ž˜ ์ž‘๋™ํ–ˆ๋‹ค. ๋‹น์‹œ ์ˆ˜์ • ์ปค๋ฐ‹

Rust & AWS Lambda

AWS Lambda๋กœ ๋ฐฐํฌํ•˜๊ณ  ๋„๋ฉ”์ธ ์ฃผ์†Œ๋ฅผ ํ• ๋‹นํ•˜๋Š” ์ž‘์—…์€ Mini Dice ์„œ๋น„์Šค๋ฅผ ๊ตฌํ˜„ํ•ด๋ณด๋ฉฐ ์ด๋ฏธ ํ•ด๋ณธ ์ž‘์—…์ด๋ผ ๋ณ„๋กœ ์–ด๋ ต์ง€ ์•Š์•˜๋‹ค. ์ด ๋‹น์‹œ์—๋„ AWS Lambda๋กœ ๋ฐฐํฌํ•˜๊ณ  API Gateway(HTTP)๋ฅผ ํ†ตํ•ด ์™ธ๋ถ€์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •ํ–ˆ์—ˆ๋Š”๋ฐ, ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ์„ค์ •ํ•˜๋‹ˆ ์–ด๋ ต์ง€ ์•Š๊ฒŒ ๋„๋ฉ”์ธ ์—ฐ๊ฒฐ๊นŒ์ง€ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์ฐธ๊ณ ๋กœ ๋„๋ฉ”์ธ์€ AWS Route 53์„ ํ†ตํ•ด ๊ด€๋ฆฌ๋˜๊ณ  ์žˆ์—ˆ๊ธฐ์— ์ž‘์—…์ด ๋” ์‰ฌ์› ๋‹ค.

AWS Lambda์šฉ์œผ๋กœ axum์„ ๋นŒ๋“œํ•˜๋Š” ๊ณผ์ • ๋˜ํ•œ ์–ด๋ ต์ง€ ์•Š์•˜๋‹ค. AWS์—์„œ ์ง์ ‘ ์ œ๊ณตํ•˜๋Š” `lambda_http` rust crate๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ผ๋ฐ˜ axum ์•ฑ์ฒ˜๋Ÿผ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  AWS Lambda์— ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๋กœ์ปฌ ํ…Œ์ŠคํŠธ ๋˜ํ•œ ์ฝ”๋“œ ๋ณ€๊ฒฝ์—†์ด `cargo lambda watch` ๋ช…๋ น์–ด๋กœ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์ƒ๊ฐ๋ณด๋‹ค ํŽธํ•ด์„œ ๋†€๋ž๋‹ค.

์ฒซ ๋ฒ„์ „์„ ๋งŒ๋“ค๊ณ ์„œ ๋А๋‚€ ์ 

๊ธฐ๋ถ„์ด ์ข‹์•˜๋‹ค. ๊ทธ๋ฆฌ๊ณ  Rust ์–ธ์–ด๋กœ ๋ญ˜ ๋งŒ๋“ค์–ด๋ณธ ์ ์ด ํ•œ ๋ฒˆ๋„ ์—†์—ˆ๋Š”๋ฐ, ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ•˜๋‚˜ ๋งŒ๋“ค์–ด๋ณด๋‹ˆ Rust์— ๋Œ€ํ•œ ์ž์‹ ๊ฐ์ด ์ƒ๊ฒผ๋‹ค (์›๋ž˜๋Š” ๋ฌด์„œ์› ๋‹ค). ๋‚˜์ค‘์—๋Š” ๋” ๋ณต์žกํ•œ ์•ฑ์„ ๋งŒ๋“ค์–ด๋ณผ ์ƒ๊ฐ์ด๋‹ค. ์œ„์— ์–ธ๊ธ‰ํ•œ Mini Dice ์„œ๋น„์Šค๋ฅผ Rust๋กœ ํฌํŒ…ํ•ด๋ณด๋Š” ๊ฒƒ๋„ ์žฌ๋ฐŒ์„ ๊ฒƒ ๊ฐ™๋‹ค. SvelteKit ๋˜ํ•œ ์‹ ์„ ํ•˜๊ณ  ๋“ ๋“ ํ•œ ๋А๋‚Œ์ด ๋“ค์–ด ๋‚˜์˜์ง€ ์•Š์•˜๋‹ค. CSS ์ง€์›์ด ๋‚ด์žฅ๋˜์–ด ์žˆ๊ณ  ์–ด๋ ต์ง€ ์•Š์•„ ์ข‹์•˜๋‹ค. ํƒ€์ž… ์ง€์› ๋˜ํ•œ ๊ต‰์žฅํžˆ ์ž˜ ๋˜์–ด์žˆ๋Š” ๊ฒƒ์— ๋†€๋ž๋‹ค. ์•„์‰ฌ์šด ๋ถ€๋ถ„์ด ๋งŽ์ง€ ์•Š์•˜๋‹ค. ๋ฌผ๋ก  ์ˆ˜๋ฐ• ๊ฒ‰ ํ•ฅ๊ธฐ ์‹์œผ๋กœ ์จ๋ณธ ์ƒํƒœ์ด๊ธด ํ•˜์ง€๋งŒ, Svelte์˜ ๊ธฐ๋ณธ์ ์ธ ํ…œํ”Œ๋ฆฟ ๋ฌธ๋ฒ•๊ณผ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ์„ ์จ๋ณผ ์ˆ˜ ์žˆ์–ด์„œ ์ข‹์•˜๋‹ค.

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

์ฐธ๊ณ ๋กœ ๊ด‘๊ณ ๋Š” ์•„์ง ๋‹ฌ ์ƒ๊ฐ์ด ์—†์œผ๋ฉฐ, ํ†ต๊ณ„/์œ ์ € ์ถ”์  ๊ธฐ๋Šฅ ๋˜ํ•œ ์•„์ง ์ƒ๊ฐ์ด ์—†๊ณ , ๋Œ“๊ธ€ ๊ธฐ๋Šฅ๋„ ์•„์ง์€ ์ƒ๊ฐ์ด ์—†๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋Œ“๊ธ€์€ ๊ตฌํ˜„์ด ์‰ฌ์šด ํŽธ์ผํ…๋ฐ, ํ•„์š”ํ•˜๋ฉด ๊ตฌํ˜„ํ•  ์ƒ๊ฐ์€ ์žˆ๋‹ค. ์•„, ๋Œ€์‹  ์›น์‚ฌ์ดํŠธ์— ๋‹คํฌ ๋ชจ๋“œ๋Š” ๊ผญ ๋„ฃ๊ณ  ์‹ถ๋‹ค. ๋‚ด๊ฐ€ ๋‹คํฌ ๋ชจ๋“œ ์ค‘๋…์ž๋ผ ๊ทธ๋ ‡๋‹ค.

์†Œ์Šค์ฝ”๋“œ


https://github.com/ATJSH/rust-blog์—์„œ ์›๋ณธ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ฐœ์„ ํ•  ์ ๋“ค

https://github.com/atjsh/rust-blog/issues์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.