ํ—ฌ๋กœ์›”๋“œ ๐Ÿ“ฐ

2762 ๋‹จ์–ด azuretrialhack

๋‚ด ์ œ์ถœ ๊ฐœ์š”



Hello World๋Š” NewsCatcher News API๋ฅผ ํ†ตํ•ด ์ „ ์„ธ๊ณ„์˜ ํ—ค๋“œ๋ผ์ธ์„ ๊ฐ€์ ธ์™€ Azure Text Analytics๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ์ • ๋ถ„์„์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์›น ์•ฑ์ž…๋‹ˆ๋‹ค. ๋ฐฑ์—”๋“œ๋Š” Azure App Services๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐํฌํ•œ FastAPI์ด๋ฉฐ ํ”„๋ŸฐํŠธ์—”๋“œ๋Š” API์—์„œ ๊ฐ์ • ๋ถ„์„ ๋‰ด์Šค๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  react-globe ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ธ๊ณ„ ๋‰ด์Šค์˜ React + ThreeJS ๊ธ€๋กœ๋ธŒ ์‹œ๊ฐํ™”๋ฅผ ๋ Œ๋”๋งํ•ฉ๋‹ˆ๋‹ค!

Hello World(๊ฐ€์žฅ ํ˜์‹ ์ ์ธ ์ด๋ฆ„์ด ๋งž๋‚˜์š”? ๐Ÿ˜‚ )์— ๋Œ€ํ•œ ์‚ฌ๊ณ  ๊ณผ์ •์€ "๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆฌ๋ฐ"์˜ ์ „์ฒด ๊ฐœ๋…์— ๋Œ€ํ•ด ๋ฐฐ์› ์„ ๋•Œ ๋จธ๋ฆฌ์—์„œ ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์‹ค์‹œ๊ฐ„ ๋‰ด์Šค๋ฅผ ์‹œ๊ฐํ™”ํ•˜๋ฉด ์–ผ๋งˆ๋‚˜ ์ข‹์„๊นŒ ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์‹œ๊ฐํ™”๋Š” ๋ฌด์—‡์„ ์ „๋‹ฌํ• ๊นŒ์š”? ๊ทธ ๋•Œ ์ €๋Š” ๊ฐ์ • ๋ถ„์„์— ๋Œ€ํ•ด ๋ฐฐ์› ๊ณ  ์ „ ์„ธ๊ณ„ ํ—ค๋“œ๋ผ์ธ์˜ ๊ฐ์ •์„ ๋ถ„์„ํ•˜๊ณ  ์ƒ๋Œ€๋ฐฉ์—์„œ ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๊ณ  ์žˆ๋Š”์ง€ ๋ˆ„๊ตฌ๋‚˜ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งค์šฐ ์‹œ์›ํ•˜๊ณ  ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒํ•œ ๋ฐฉ์‹์œผ๋กœ ํ‘œ์‹œํ•˜๋Š” ๋ฌด์–ธ๊ฐ€๋ฅผ ๊ตฌ์ถ•ํ•˜์ง€ ์•Š๊ฒ ์Šต๋‹ˆ๊นŒ? ์„ธ๊ณ„. ์ด๊ฒƒ์ด ๋ฐ”๋กœ ๋‚ด ํ”„๋กœ์ ํŠธ Hello World์ž…๋‹ˆ๋‹ค!

์˜ค๋žœ ๊ธฐ๊ฐ„ ๊ฐœ๋ฐœ์ž๋กœ ์ผํ•ด ์˜จ ๊ฒƒ ๊ฐ™์€ ๊ธฐ๋ถ„์ด ๋“ค์ง€๋งŒ ์ด๊ฒƒ์€ ์ฒ˜์Œ์œผ๋กœ ํ•ด์ปคํ†ค์— ์ œ์ถœํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค! ๐Ÿฅณ

Python๊ณผ React์— ๋Œ€ํ•œ ๋‚ด ๊ธฐ์ˆ ์„ ํ…Œ์ŠคํŠธํ•˜๊ณ  ๋‚ด๊ฐ€ ์•„์ง ์–ผ๋งˆ๋‚˜ ๋ชจ๋ฅด๋Š”์ง€ ๊นจ๋‹ซ๋Š” ๊ฒƒ์€ ํ™•์‹คํžˆ ๋†€๋ผ์šด ๊ฒฝํ—˜์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ €๋„ ์ด ํ”„๋กœ์ ํŠธ ํ•˜๋‚˜์— 20์‹œ๊ฐ„ ๋„˜๊ฒŒ ์ผ๋‹ค๋Š” ๊ฑธ ๊นจ๋‹ฌ์•˜์–ด์š”! ( ์ถ”์‹ . ๋‚˜๋Š” ์ด๊ฒƒ์„ ์œ„ํ•ด Wakatime์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค )

๋ฐ์ดํ„ฐ๋Š” 24์‹œ๊ฐ„๋งˆ๋‹ค ์—…๋ฐ์ดํŠธ๋˜์–ด์•ผ ํ•˜์ง€๋งŒ ์ž‘๋™ํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ ์ˆ˜ ์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด ๊ธ€์„ ์ฝ๋Š” ๋ชจ๋“  ๋ถ„๋“ค์—๊ฒŒ ๋„์›€์ด ๋œ๋‹ค๋ฉด ๋”ํ•  ๋‚˜์œ„ ์—†์ด ๊ธฐ์  ๊ฒƒ์ž…๋‹ˆ๋‹ค! ์•„๋ž˜ ๋Œ“๊ธ€๋กœ ์•Œ๋ ค์ฃผ์„ธ์š” ๐Ÿ˜Š


์ œ์ถœ ์นดํ…Œ๊ณ ๋ฆฌ



์—‰๋šฑํ•œ ์™€์ผ๋“œ ์นด๋“œ


GitHub์˜ ์ฝ”๋“œ ๋งํฌ




sam9111 / HelloWorld-FastAPI






Hello World๋ฅผ ์œ„ํ•œ ๋น ๋ฅธ API


์ด๊ฒƒ์€ NewsCatcher News API์—์„œ ๋‰ด์Šค๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  Azure Text Analytics๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด์— ๋Œ€ํ•œ ๊ฐ์ • ๋ถ„์„์„ ์ˆ˜ํ–‰ํ•˜๋Š” HelloWorld ์›น์•ฑ์šฉ FastAPI ๋ฐฑ์—”๋“œ์ž…๋‹ˆ๋‹ค.

์ „๊ฐœ


์ด API๋Š” Azure App Services๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐํฌ๋˜์—ˆ์œผ๋ฉฐ ์—ฌ๊ธฐ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
https://hello-world-fastapi.azurewebsites.net/

API ์ฐธ์กฐ


23์‹œ๊ฐ„๋งˆ๋‹ค ๊ฐ€์ ธ์˜จ ๋ชจ๋“  ๋‰ด์Šค ๋ฐ›๊ธฐ

  GET /api/news

ํ…์ŠคํŠธ ๋ถ„์„์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฒ˜๋ฆฌ๋œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ค๊ธฐ

  GET /api/data

ํ”„๋ŸฐํŠธ ์—”๋“œ์—์„œ ๋งˆ์ปค๋กœ ๋ Œ๋”๋ง๋˜๋Š” ๋ชจ๋“  ํฌ์ธํŠธ ๊ฐœ์ฒด ๊ฐ€์ ธ์˜ค๊ธฐ

  GET /api/points

ํ™˜๊ฒฝ ๋ณ€์ˆ˜


์ด ํ”„๋กœ์ ํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋ ค๋ฉด ๋‹ค์Œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ .env ํŒŒ์ผ์— ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.API_KEYNewsCatcherAPI ํ‚คAZURE_API_KEYAzure Text Analytics Service์— ๋Œ€ํ•œ ๊ตฌ๋… ํ‚คENDPOINT์œ„ ์„œ๋น„์Šค์˜ ์—”๋“œํฌ์ธํŠธ

๋กœ์ปฌ์—์„œ ์‹คํ–‰


ํ”„๋กœ์ ํŠธ ๋ณต์ œ
  git clone https://github.com/sam9111/HelloWorld-FastAPI

ํ”„๋กœ์ ํŠธ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™
  cd HelloWorld-FastAPI

์„ค์น˜ ์š”๊ตฌ ์‚ฌํ•ญ
  pip install -r requirements.txt

์„œ๋ฒ„ ์‹œ์ž‘
  uvicorn main:app --host 0.0.0.0 --reload
โ€ฆ

View on GitHub

๋ฐ๋ชจ



Here is a demo video for my project!

์ข‹์€ ์›นํŽ˜์ด์ง€ ์ฆ๊ฒจ์ฐพ๊ธฐ