๊ด€๋ฆฌ ๋ฉ”๋‰ด

Hey Tech

ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (7) Axios ๊ธฐ๋ฐ˜ API Call ๋ณธ๋ฌธ

SW ๊ฐœ๋ฐœ/Amazon Web Service

ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (7) Axios ๊ธฐ๋ฐ˜ API Call

Tony Park (ํ† ๋‹ˆ) 2022. 6. 10. 03:25
728x90
๋ฐ˜์‘ํ˜•

๐Ÿ“Œ ์‹œ๋ฆฌ์ฆˆ ํฌ์ŠคํŒ…

1.  ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (1) React ๊ธฐ๋ฐ˜ Frontend ๊ฐœ๋ฐœ
2.  ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (2) AWS IAM ์—ญํ•  ์ƒ์„ฑ
3.  ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (3) AWS Lambda ์ƒ์„ฑ
4.  ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (4) AWS S3 ์ƒ์„ฑ
5.  ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (5) AWS API Gateway ์ƒ์„ฑ
6.  ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (6) AWS Lambda ํ•จ์ˆ˜ ์ž‘์„ฑ
7.  ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (7) Axios ๊ธฐ๋ฐ˜ API Call
8.  ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (8) ํŒŒ์ผ ์—…๋กœ๋“œ ํ…Œ์ŠคํŠธ
9.  ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (9) AWS S3 ๊ธฐ๋ฐ˜ ์›น ํ˜ธ์ŠคํŒ…

๐Ÿ‘จ‍๐Ÿ’ป ๋“ค์–ด๊ฐ€๋ฉฐ

๋ณธ ํฌ์ŠคํŒ…์—์„œ๋Š” Axios ํŒจํ‚ค์ง€๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์•ž์„œ ์ƒ์„ฑํ•œ REST API๋ฅผ Call ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“š ๋ชฉ์ฐจ

1.  Axios ํŒจํ‚ค์ง€ ์„ค๋ช…
2. Axios ํŒจํ‚ค์ง€ ์„ค์น˜
3. Axios ๊ธฐ๋ฐ˜ API Call

1.  Axios ํŒจํ‚ค์ง€ ์„ค๋ช…

Axios๋Š” Promise API๋ฅผ ํ™œ์šฉํ•˜๋Š” ๋น„๋™๊ธฐ์‹ HTTP ํด๋ผ์ด์–ธํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ์จ ๋ธŒ๋ผ์šฐ์ €์™€ ์„œ๋ฒ„ ๊ฐ„ ํ†ต์‹ ์„ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋”์šฑ ์ž์„ธํ•œ ์„ค๋ช…์€ Axios ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”.

https://axios-http.com/kr/docs/intro

 

์‹œ์ž‘ํ•˜๊ธฐ | Axios Docs

์‹œ์ž‘ํ•˜๊ธฐ ๋ธŒ๋ผ์šฐ์ €์™€ node.js์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” Promise ๊ธฐ๋ฐ˜ HTTP ํด๋ผ์ด์–ธํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ Axios๋ž€? Axios๋Š” node.js์™€ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์œ„ํ•œ Promise ๊ธฐ๋ฐ˜ HTTP ํด๋ผ์ด์–ธํŠธ ์ž…๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋™ํ˜• ์ž…๋‹ˆ๋‹ค(๋™์ผํ•œ ์ฝ”

axios-http.com

2.  Axios ํŒจํ‚ค์ง€ ์„ค์น˜

npm์„ ํ™œ์šฉํ•ด ์‰ฝ๊ฒŒ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

npm install axios

3.  Axios ๊ธฐ๋ฐ˜ API Call

์•ž์„œ ํŒŒ์ผ ์—…๋กœ๋“œ์šฉ ์›น ํŽ˜์ด์ง€์˜ Frontend๋ฅผ ๊ตฌ์ถ•ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ๋‚ด์šฉ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์„ค๋ช…์€ ์•„๋ž˜์˜ ํฌ์ŠคํŒ…์„ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”.

https://heytech.tistory.com/403?category=559266 

 

ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (1) React ๊ธฐ๋ฐ˜ Frontend ๊ฐœ๋ฐœ

๐Ÿ“š ๋ชฉ์ฐจ 1. ์‚ฌ์ „ ์ž‘์—… 2. ์‹คํ–‰ ๊ฒฐ๊ณผ 3. ์ „์ฒด ์ฝ”๋“œ 4. ์ฝ”๋“œ ์„ค๋ช… ๐Ÿ‘จ‍๐Ÿ’ป ๋“ค์–ด๊ฐ€๋ฉฐ ๋ณธ ํฌ์ŠคํŒ…์—์„œ๋Š” React๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•˜๋Š” ์›น ํŽ˜์ด์ง€๋ฅผ(frontend) ๊ตฌ์ถ•ํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ œ ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•˜๊ธฐ ์œ„

heytech.tistory.com

์ด์ œ axios๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์•ž์„œ ์ƒ์„ฑํ–ˆ๋˜ API Gateway๋กœ ํŒŒ์ผ์„ POST ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

1) ํŒจํ‚ค์ง€ import

src ํด๋” ๋‚ด App.js ํŒŒ์ผ์— axios ํŒจํ‚ค์ง€๋ฅผ import ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์กด ์ฝ”๋“œ์—์„œ ์•„๋ž˜์˜ ์ฝ”๋“œ ํ•œ ์ค„์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

// App.js
import axios from 'axios';

2) API Call

๊ฐ™์€ App.js ํŒŒ์ผ์—์„œ ํŒŒ์ผ ์—…๋กœ๋“œ ํ•จ์ˆ˜ ๋‚ด axios์˜ post ๋ฉ”์„œ๋“œ๋ฅผ ํ™œ์šฉํ•œ ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์•ž์„œ ์ƒ์„ฑํ•œ AWS API Gateway URL์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

onFileUpload = () => {
    const formData = new FormData();
    formData.append(
      "demo file",
      this.state.selectedFile,
      this.state.selectedFile.name
    )
    axios.post("API Gateway URL", formData).then(() => { // API Gateway URL ์ž…๋ ฅ
      this.setState({selectedFile: null});
      this.setState({fileUploadedSuccessfully: true});
    })
  }

์ด์ œ Aixos ๊ธฐ๋ฐ˜ API Call ์„ธํŒ…๊นŒ์ง€ ์™„๋ฃŒํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ํฌ์ŠคํŒ…์—์„œ๋Š” ๋ธŒ๋ผ์šฐ์ €์—์„œ ํŒŒ์ผ ์—…๋กœ๋“œ ์‹œ AWS S3 ๋ฒ„ํ‚ท์— ์ž˜ ์ €์žฅ๋˜๋Š”์ง€ ํ™•์ธํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๐Ÿ“Œ ์‹œ๋ฆฌ์ฆˆ ํฌ์ŠคํŒ…

1.  ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (1) React ๊ธฐ๋ฐ˜ Frontend ๊ฐœ๋ฐœ
2.  ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (2) AWS IAM ์—ญํ•  ์ƒ์„ฑ
3.  ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (3) AWS Lambda ์ƒ์„ฑ
4.  ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (4) AWS S3 ์ƒ์„ฑ
5.  ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (5) AWS API Gateway ์ƒ์„ฑ
6.  ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (6) AWS Lambda ํ•จ์ˆ˜ ์ž‘์„ฑ
7.  ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (7) Axios ๊ธฐ๋ฐ˜ API Call
8.  ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (8) ํŒŒ์ผ ์—…๋กœ๋“œ ํ…Œ์ŠคํŠธ
9.  ํŒŒ์ผ ์—…๋กœ๋“œ ์›น ํŽ˜์ด์ง€ ๊ตฌ์ถ•: (9) AWS S3 ๊ธฐ๋ฐ˜ ์›น ํ˜ธ์ŠคํŒ…

ํฌ์ŠคํŒ… ๋‚ด์šฉ์— ์˜ค๋ฅ˜๊ฐ€ ์žˆ๊ฑฐ๋‚˜ ๋ณด์™„ํ•  ์ ์ด ์žˆ๋‹ค๋ฉด ์•„๋ž˜์— ๋Œ“๊ธ€ ๋‚จ๊ฒจ์ฃผ์„ธ์š”!

๊ทธ๋Ÿผ ์˜ค๋Š˜๋„ ์ฆ๊ฒ๊ณ  ๊ฑด๊ฐ•ํ•œ ํ•˜๋ฃจ ๋ณด๋‚ด์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค :)

๊ณ ๋ง™์Šต๋‹ˆ๋‹ค๐Ÿ˜Š

728x90
๋ฐ˜์‘ํ˜•