Skip to content

Latest commit

ย 

History

History
112 lines (76 loc) ยท 4.59 KB

File metadata and controls

112 lines (76 loc) ยท 4.59 KB

header

1. ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ

Rust Tutorial Web Application๋Š” ์ž…๋ฌธ์ž๋„ ์‰ฝ๊ฒŒ ๋Ÿฌ์ŠคํŠธ ์–ธ์–ด๋ฅผ ๊ณต๋ถ€ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•˜๋Š” ์›น์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ž…๋‹ˆ๋‹ค. React์™€ SpringBoot๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋ก ํŠธ์—”๋“œ, ๋ฒก์—”๋“œ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Docker๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์˜จ๋ผ์ธ ์ปดํŒŒ์ผ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜๊ณ , ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” Mysql์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

2. ํŒ€ ์†Œ๊ฐœ

  1. ์žฅ๋•์ง„([email protected]) - ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ, ๋ฐฑ์—”๋“œ API ๊ฐœ๋ฐœ, SpringBoot Security ์„ค๊ณ„ ๋ฐ ๊ตฌํ˜„
  2. ์ •๋ช…์ง„([email protected]) - ํŽ˜์ด์ง€ ๋””์ž์ธ, ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ, ๋Ÿฌ์ŠคํŠธ ์ปจํ…์ธ  ์ œ์ž‘
  3. ํ™ฉ๋™๋ฏผ([email protected]) - ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ, ๋ฒก์—”๋“œ API ๊ฐœ๋ฐœ, DB ๊ตฌํ˜„

3. ์‹œ์Šคํ…œ ๊ตฌ์„ฑ๋„

image

4. ๊ฐœ๋ฐœ ๋„๊ตฌ

ํ”„๋กœ์ ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‹ค์šด๋กœ๋“œ ํ•ด์•ผํ•  ๊ฐœ๋ฐœ ๋„๊ตฌ๋“ค์ž…๋‹ˆ๋‹ค.

  • SpringBoot - ๋ฐฑ์—”๋“œ์ž…๋‹ˆ๋‹ค.
  • Java11
  • Docker - ์˜จ๋ผ์ธ์—์„œ ์œ ์ €์˜ ์ฝ”๋“œ๋ฅผ ๋ฐ›์•„ ํ•œ์ •๋œ ์ž์›์˜ ์•ˆ์ „ํ•œ ๊ณต๊ฐ„์—์„œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰์‹œํ‚ค๊ธฐ ์œ„ํ•ด docker container๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • Redis - ์œ ์ €์˜ ์„ธ์…˜์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ํ† ํฐ์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • Mysql - ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ž…๋‹ˆ๋‹ค.
  • React - ํ”„๋ก ํŠธ์—”๋“œ์ž…๋‹ˆ๋‹ค.

5. ์„ค์น˜ ๋ฐ ์‚ฌ์šฉ๋ฒ•

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

  1. ํ”„๋กœ์ ํŠธ ๋‚ด๋ ค๋ฐ›๊ธฐ
$ git clone https://github.com/bindongg/rust-tutorial-project.git # ํ”„๋กœ์ ํŠธ ๋‚ด๋ ค๋ฐ›๊ธฐ
$ cd rust-tutorial-project
  1. ํ”„๋ก ํŠธ์—”๋“œ ์‹คํ–‰
$ cd frontend
$ npm install # module ๋‹ค์šด๋กœ๋“œ
$ npm run start # react ์‹คํ–‰
  1. ๋ฒก์—”๋“œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค์ •
    SpringBoot ์‹คํ–‰์„ ์œ„ํ•ด application.yml ํŒŒ์ผ์— Mysql์˜ ์—”๋“œํฌ์ธํŠธ์™€ ์œ ์ €์ด๋ฆ„, ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. ํ•„์ˆ˜๋Š” ์•„๋‹ˆ์ง€๋งŒ, ํšŒ์›๊ฐ€์ž…์˜ ์ธ์ฆ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด google mail์˜ ์•„์ด๋””์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
$ cd ../backend
$ vi src/main/resources/application.yml # mysql, mail ์„ค์ •
  1. docker ์ด๋ฏธ์ง€ ๋นŒ๋“œ
    ์–ธ์–ด๋ฅผ ์ปดํŒŒ์ผ, ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๊ฐ ์–ธ์–ด๋ณ„ ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค.
$ cd docker
$ chmod +x init.sh
$ ./init.sh # rust, java, python, c++ image ๋นŒ๋“œ
  1. ๋ฒก์—”๋“œ ์‹คํ–‰
$ cd ..
$ chmod +x mvnw
$ ./mvnw spring-boot:run # mvnw SpringBoot ์‹คํ–‰

6. ์‹คํ–‰ ๊ฒฐ๊ณผ

๋ฐฐํฌ ๋˜์–ด์žˆ์–ด์„œ http://54.180.10.223/ ์œผ๋กœ ์ ‘์†ํ•˜๋ฉด ๋“ค์–ด๊ฐ€์„œ ์ง์ ‘ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (2022.10.14๊ธฐ์ค€)

๋ฉ”์ธ ํŽ˜์ด์ง€

๋งจ ์ฒ˜์Œ ์ ‘์†ํ–ˆ์„ ๋•Œ, ๋ณด์ด๋Š” ํŽ˜์ด์ง€์ž…๋‹ˆ๋‹ค. Main

Rust ์†Œ๊ฐœ ํŽ˜์ด์ง€

Rust์— ๊ด€ํ•œ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ •๋ณด๋ฅผ ์•Œ์•„๋ณผ ์ˆ˜ ์žˆ๋Š” ํŽ˜์ด์ง€์ž…๋‹ˆ๋‹ค. AboutRust

ํŠœํ† ๋ฆฌ์–ผ ํŽ˜์ด์ง€

Rust๋ฅผ ์ฐจ๊ทผ์ฐจ๊ทผ ๋ฐฐ์›Œ๋ณด๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•œ ํŽ˜์ด์ง€์ž…๋‹ˆ๋‹ค. Tutorial

๋ ˆํผ๋Ÿฐ์Šค ํŽ˜์ด์ง€

Rust ๋ฌธ๋ฒ•์„ ๋ชจ๋ฅด๋Š” ๋ถ€๋ถ„๋งŒ ์ฐพ์•„๋ณด๊ธฐ ์œ„ํ•œ ํŽ˜์ด์ง€์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ, ๋ฌธ๋ฒ• ์ฐธ๊ณ ์ž๋ฃŒ ํŽ˜์ด์ง€๊ฐ€ ์žˆ์–ด Rust ํ•™์Šต์— ๋„์›€์„ ์ฃผ๋Š” ํŽ˜์ด์ง€์ž…๋‹ˆ๋‹ค. Reference

์—ฐ์Šต๋ฌธ์ œ ํŽ˜์ด์ง€

Rust๋กœ ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋ณผ ์ˆ˜ ์žˆ๋Š” ํŽ˜์ด์ง€์ž…๋‹ˆ๋‹ค. ๊ฐ ๋ฌธ์ œ๋งˆ๋‹ค ์˜ˆ์‹œ ์ฝ”๋“œ๊ฐ€ ์ฃผ์–ด์ ธ์„œ ํ•™์Šต์ด ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. Exercise

์˜จ๋ผ์ธ ์ปดํŒŒ์ผ๋Ÿฌ ํŽ˜์ด์ง€

Rust ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ๋”ฐ๋กœ ์„ค์น˜ํ•˜์ง€ ์•Š๊ณ ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ปดํŒŒ์ผ๋Ÿฌ์ž…๋‹ˆ๋‹ค. OnlineCompiler

Footer