[Rust] loco.rs
loco.rs๋ Rustํ Rails๋ฅผ ํ๋ฐฉํ๋ฉด์ ๋์จ ๋ฐฑ์๋ ํ๋ ์์ํฌ๋ค.
๊ธฐ๋ณธ์ ์ธ ํน์ง์ ์ด ์ ๋๋ค.
-
๊ธฐ์กด Rust ORM์ธ SeaORM๊ณผ ํตํฉ๋์ด์๋ค.
-
๋ด์ฅ ์๋ฒ๋ axum์ด๋ค. ์ด๊ฑด ์์ฒด ์๋ฒ ๊ตฌํ์ด ์๋๊ณ axum์ ๋ํผ๋ค.
-
์ ์ฉ CLI๋ฅผ ํตํด ํธ์์ฑ์ ์ ๊ณตํ๋ค.
-
ํ๋ก์ ํธ ๊ตฌ์กฐ๋ฅผ ์ฌ์ ์ ์ํด์ ์ ๊ณตํ๋ค.
-
์ ์ฉ CLI๋ฅผ ํตํด ๋ณด์ผ๋ฌํ๋ ์ดํธ๋ค์ ์์ฑ์ด ์ง์๋๋ค.
์ค์น
loco๋ ์คํ์ด๋ ์ฝ๋ ์์ฑ ๋ฑ์ ํ๋ ค๋ฉด ์ ์ฉ CLI๋ฅผ ์ค์นํ๋ ๊ฒ์ด ์๊ตฌ๋๋ค.
cargo install loco

์ด๋ ๊ฒ ๋จ๋ฉด ์ ์ค์น๋ ๊ฒ์ด๋ค.
ํ๋ก์ ํธ ๊ตฌ์ฑ
new ๋ช ๋ น์ ํตํด์ ํ๋ก์ ํธ ์ด๊ธฐํ๋ฅผ ์๋ํ ์ ์๋ค.
loco new
ํ๋ก ํธ ์ฝ๋ ํ
ํ๋ฆฟ๋ ํจ๊ป ์์ฑํ ์ ์๋ค.
ํ๋ก ํธ ์ฝ๋๋ ๋ฆฌ์กํธ๋ก ๊ณ ์ ์ด๋ค.
DB ์ง์์ ๋ง๋ค๋ค๋ง๊ฑฐ๊ฐ๋ค. MySQL๋ ์๋ค.
์ด๊ธฐํ๋ฅผ ์๋ฃํ๋ฉด
์ด๋ฐ ์์ผ๋ก ํ๋ก์ ํธ๊ฐ ๊ตฌ์ฑ๋๋ค.
ํ๋ก ํธ๋ ๊ทธ๋ฅ ๋ฆฌ์กํธ๋ค.
๋จผ์ ๋น๋ํด์ค๋ค.
์ด ํ๋ก์ ํธ ๊ตฌ์ฑ์์๋ ๋ฆฌ์กํธ๋ก ๋น๋ํ๋ฉด ์๋ฒ๊ฐ ๊ทธ๊ฑธ ์๋นํ๋ ํํ๋ผ์, ํ๋ก ํธ ๋น๋๋ฅผ ๋จผ์ ํด์ค์ผ ํ๋ค.
์๋ฒ ๊ตฌ์กฐ๋ ์ด๋ ๋ค.
์๊ธฐ๋ค ์คํ์ผ๋๋ก ํ๋ก์ ํธ ๊ตฌ์กฐ๋ฅผ ๊ณ ์ ํด๋จ๋๋ฐ... ๋ด๊ฐ ๋ณด๊ธฐ์ ์ ์์ฑํ๋ค.

๋ด๋ถ ์ฝ๋๋ ๊ทธ๋ฅ axum์ด๋ค. ๊ทธ๋๋ก ๊ฐ๋ค์ผ๋ค.
cargo loco start ๋ช
๋ น์ ์ฌ์ฉํ๋ฉด ๋ฐ๋ก ์๋ฒ๋ฅผ ์์ํ ์ ์๋ค.
๊ทธ๋ผ ์์ UI ํ๋ฉด์ ํ์ธํ ์ ์์ ๊ฒ์ด๋ค.
์๊ฐ
๊ณ์ ๋ฐ์ด๋ด์ด ๋ ์ ๋ญ๊ฐ ์ถ์ด์ ํ๋ฒ ์คํํ๋ฉด์ ๋ดค๋๋ฐ, ์ค๋ง์ค๋ฌ์ด ๋ถ๋ถ์ด ๋๋ฌด ๋ง์๋ค.
์๋ฒ๋ ์์ฒด ๊ตฌํ์ด ์๋๊ณ ๊ทธ๋ฅ axum ์คํ๊ธฐ์ ๋ถ๊ณผํ๋ฐ๋ค, ORM๋ ๋ค๋ฅธ๊ฑฐ ๊ฐ๋ค๊ฐ ์ง๊น๊ธฐํด๋๊ฑฐ๋ค.
์ ๋ฐ์ ์ผ๋ก ๊ทธ๋ฅ ์์ฑํ๊ฒ ์ฎ์ด๋ ๋๋๊ธฐ๊ณจ๋ ์ผ๋ก๋ฐ์ ๋ณด์ด์ง ์๋๋ค. ํ๋ก์ ํธ ๋ ํฌ ๊ฐ์ Cargo.toml ๋ํ๋์ ๋ณด๋ฉด ๋๋ ์ ์์ ๊ฒ์ด๋ค.
๋ณด์ผ๋ฌํ๋ ์ดํธ ๋ง๋๋ ๊ฒ๋ ๋๋ฌด 1์ฐจ์์ ์ด๊ณ ๋จ์ํ๋ค. ์๋ฒ๋ฅผ ๋ ์ด์ด๋ก ๋ถ๋ฆฌํ๋ ๊ฒ์ ์ ํ ๊ณ ๋ คํ์ง ์์ ๊ฒ ๊ฐ๋ค.
๋น์ฐํ Swagger ์๋ ์์ฑ ๊ธฐ๋ฅ ๊ฐ์๊ฒ๋ ๋ค์ด์์ ๊ฒ์ด๋ผ ์๊ฐํ๋๋ฐ, ์๋ค. ํ ์๊ฐ๋ ์๊ณ ์์์ ํ๋ผ๋ ์
์ฅ์ด๋ค.
https://github.com/loco-rs/loco/issues/632
์ง์ ๋ง๋ ๊ฑฐ๋ ๋ณ๋ก ์์ผ๋ฉด์ ์ด๋ฐ๊ฒ๋ ์ํ ๊ฑฐ๋ฉด ์ ๋ง๋ค์๋๊ฐ?
๋ด๊ฐ ์ด๊ฑธ ์ธ ์ผ์ ์์ ๊ฒ ๊ฐ๋ค.
์ฐธ์กฐ
https://loco.rs/
https://loco.rs/docs/getting-started/guide/
https://github.com/loco-rs/loco