๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
728x90

๐Ÿ’ป Programming/Python20

[FastAPI] API ํ‚ค๋กœ ์ธ์ฆ ์ ์šฉํ•˜๊ธฐ | API KEY ์˜ค๋Š˜์€ FastAPI๋ฅผ ์‚ฌ์šฉํ•ด์„œ API๋ฅผ ์ œ๊ณตํ•  ๋•Œ API ํ‚ค๋ฅผ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋ ค๊ณ  ํ•ด์š”. API ํ‚ค๊ฐ€ ๋ฌด์—‡์ธ์ง€, ์™œ ์‚ฌ์šฉํ•˜๋Š”์ง€, ๊ทธ๋ฆฌ๊ณ  ์–ด๋–ป๊ฒŒ ์ ์šฉํ•˜๋Š”์ง€ ์„ค๋ช…ํ•ด ๋ณผ๊ฒŒ์š” ~!API ํ‚ค๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?API ํ‚ค(API Key)๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด API๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ์ธ์ฆ ๋ฐ ๊ถŒํ•œ ๋ถ€์—ฌ๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๊ณ ์œ  ์‹๋ณ„์ž์˜ˆ์š”. API ํ‚ค๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ด์œ ๋กœ ์‚ฌ์šฉ๋ผ์š”:์ธ์ฆ ๋ฐ ๊ถŒํ•œ ๋ถ€์—ฌ: ํด๋ผ์ด์–ธํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด API์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์ด ์žˆ๋Š”์ง€ ํ™•์ธ์‚ฌ์šฉ ์ถ”์  ๋ฐ ๋ชจ๋‹ˆํ„ฐ๋ง: ์–ด๋–ค ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์–ด๋–ค API ํ˜ธ์ถœ์„ ํ–ˆ๋Š”์ง€ ์ถ”์ ํ•˜๊ณ  ๋ชจ๋‹ˆํ„ฐ๋ง์š”์ฒญ ์ œํ•œ: ํŠน์ • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ผ์ • ์‹œ๊ฐ„ ๋‚ด์— ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š” ์š”์ฒญ ์ˆ˜๋ฅผ ์ œํ•œํ•  ์ˆ˜ ์žˆ์Œ FastAPI์—์„œ API ํ‚ค ์ ์šฉํ•˜๊ธฐ API ํ‚ค๋ฅผ ์‚ฌ์šฉํ•œ ์ธ์ฆ ๋ฏธ๋“ค์›จ์–ด ์ž‘์„ฑํ•˜๊ธฐfr.. 2024. 8. 6.
[python] ํ˜„์žฌ ํŒŒ์ผ์˜ ๋””๋ ‰ํ† ๋ฆฌ ๊ฒฝ๋กœ๋ฅผ ์†์‰ฝ๊ฒŒ ์ฐพ๊ธฐ: os.path ๋Œ€์‹  pathlib ์‚ฌ์šฉํ•˜๊ธฐ Python์—์„œ ํ˜„์žฌ ํŒŒ์ผ์„ ๊ธฐ์ค€์œผ๋กœ ์ƒ์œ„๋‚˜ ์ƒ์œ„ ์ƒ์œ„ ๋””๋ ‰ํ† ๋ฆฌ ๊ฒฝ๋กœ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ๊ฐ€ ์ข…์ข… ๋ฐœ์ƒํ•˜๋Š”๋ฐ์š”. ์˜ˆ๋ฅผ ๋“ค์–ด, ํŒŒ์ผ ์‹œ์Šคํ…œ ๋‚ด์—์„œ ๋‹ค๋ฅธ ํŒŒ์ผ์„ ์ฐธ์กฐํ•˜๊ฑฐ๋‚˜ ๊ตฌ์„ฑ ํŒŒ์ผ์„ ์ฝ์„ ๋•Œ๊ฐ€ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. ๋ณดํ†ต ๋งŽ์€ ๋ถ„๋“ค์ด(๊ณผ๊ฑฐ์˜ ๋‚˜๋„...) os ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜์ง€๋งŒ, pathlib ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋” ์‰ฝ๊ณ  ์ง๊ด€์ ์œผ๋กœ ํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ ์•„๋ž˜ ๋‚ด์šฉ์„ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”! 1. os ๋ชจ๋“ˆ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•๋จผ์ €, os ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ˜„์žฌ ํŒŒ์ผ์˜ ๋””๋ ‰ํ† ๋ฆฌ ๊ฒฝ๋กœ๋ฅผ ์ฐพ๋Š” ๋ฐฉ๋ฒ•์„ ์‚ดํŽด๋ณผ๊ฒŒ์š”. import oscurrent_dir = os.path.dirname(os.path.abspath(__file__))print(current_dir) ์ด ๋ฐฉ๋ฒ•์€ __file__ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ˜„์žฌ ํŒŒ์ผ์˜ ๊ฒฝ๋กœ๋ฅผ ๊ฐ€์ ธ์˜จ ํ›„, os.p.. 2024. 7. 30.
[python] Streamlit ๊ธฐ๋ณธ ๊ธฐ๋Šฅ ์ตํžˆ๊ธฐ ! | ํ…์ŠคํŠธ & ๋ฐ์ดํ„ฐ ํ‘œ์‹œ | ๋ ˆ์ด์•„์›ƒ ๊ด€๋ฆฌ | ํŒŒ์ผ ์—…๋กœ๋“œ & ๋‹ค์šด๋กœ๋“œ Streamlit์€ Python์„ ์‚ฌ์šฉํ•˜์—ฌ ๋น ๋ฅด๊ณ  ์‰ฝ๊ฒŒ ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์š”. Streamlit์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ์ดํ„ฐ ๊ณผํ•™์ž์™€ ์• ๋„๋ฆฌ์ŠคํŠธ๊ฐ€ ์ฝ”๋“œ ๋ช‡ ์ค„๋งŒ์œผ๋กœ ์•„๋ฆ„๋‹ค์šด ๋Œ€ํ™”ํ˜• ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š”๋ฐ์š”. ๋‹ค์Œ์€ Streamlit์„ ์‚ฌ์šฉํ•˜์—ฌ ์›น ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐ ๊ธฐ๋ณธ์ ์œผ๋กœ ์•Œ์•„์•ผ ํ•  ๋‚ด์šฉ๋“ค์— ๋Œ€ํ•œ ์„ค๋ช…์ž…๋‹ˆ๋‹ค. Streamlit์ด ๋ฌด์—‡์ด๊ณ  ์ด๊ฑธ๋กœ ๋ฌด์—‡์„ ํ•  ์ˆ˜ ์žˆ๋ƒ๊ณ ์š”? ๊ทธ๋Ÿผ ์ด์ „ ํฌ์ŠคํŒ…์„ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”-! [python] Streamlit ์œผ๋กœ ๋ฐ์ดํ„ฐ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋งŒ๋“ค๊ธฐ! | ๊ฐ„๋‹จํ•œ ๋Œ€์‹œ๋ณด๋“œ & ์›น๋ฐ๋ชจ ํŽ˜์ด์ง€ ๊ฐœ๋ฐœ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ์ผ์ด ๋งŽ์œผ์‹ ๊ฐ€์š”? Streamlit์„ ์ด์šฉํ•ด ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ๋‚˜๋งŒ์˜ ๋ฐ์ดํ„ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค์–ด๋ณด์„ธ์š”! ๐Ÿ˜Ž  Streamlit์€ Python์œผ.. 2024. 7. 14.
[python] ์ค‘๊ณ ๊ธ‰์ž๋ฅผ ์œ„ํ•œ ํŒŒ์ด์ฌ ํด๋ฆฐ ์ฝ”๋“œ ์ž‘์„ฑ ๊ฟ€ํŒ 8๊ฐ€์ง€ : ๋” ๊น”๋”ํ•˜๊ณ  ์œ ์ง€๋ณด์ˆ˜ ์‰ฌ์šด ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ! ์˜ค๋Š˜์€ ํŒŒ์ด์ฌ ํด๋ฆฐ ์ฝ”๋“œ ์ž‘์„ฑ์— ๋Œ€ํ•œ ์ค‘๊ณ ๊ธ‰์ž ๋ฒ„์ „์˜ ํŒ์„ ์†Œ๊ฐœํ•ด๋“œ๋ฆด๊ฒŒ์š”. ์ดˆ๊ธ‰์ž ํŒ๋ณด๋‹ค ๋” ์‹ฌํ™”๋œ ๋‚ด์šฉ์„ ๋‹ค๋ฃจ๋ฉฐ, ์—ฌ๋Ÿฌ๋ถ„์˜ ์ฝ”๋“œ ํ’ˆ์งˆ์„ ํ•œ ๋‹จ๊ณ„ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•๋“ค์„ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๐Ÿ˜Š1. ํ•จ์ˆ˜ ์‹œ๊ทธ๋‹ˆ์ฒ˜ ๊ฐœ์„ ํ•˜๊ธฐํ•จ์ˆ˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ๋ฐ˜ํ™˜ ํƒ€์ž…์„ ๋ช…์‹œํ•˜๋ฉด ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜์„ฑ์ด ํฌ๊ฒŒ ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ํƒ€์ž… ํžŒํŠธ๋ฅผ ์‚ฌ์šฉํ•ด๋ณด์„ธ์š”.# ๋‚˜์œ ์˜ˆdef calculate_area(length, width): return length * width# ์ข‹์€ ์˜ˆdef calculate_area(length: float, width: float) -> float: return length * width 2. ์ปจํ…์ŠคํŠธ ๋งค๋‹ˆ์ € ์‚ฌ์šฉํ•˜๊ธฐ๋ฆฌ์†Œ์Šค๋ฅผ ๊ด€๋ฆฌํ•  ๋•Œ ์ปจํ…์ŠคํŠธ ๋งค๋‹ˆ์ €๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋” ์•ˆ์ „ํ•˜๊ณ  ๊ฐ„๊ฒฐ.. 2024. 7. 11.
[python] ํŒŒ์ด์ฌ ํด๋ฆฐ ์ฝ”๋“œ ์ž‘์„ฑ ๊ฟ€ํŒ 8๊ฐ€์ง€ : ๋” ๊น”๋”ํ•˜๊ณ  ๊ฐ€๋…์„ฑ ๋†’์€ ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ! ์˜ค๋Š˜์€ ํŒŒ์ด์ฌ ๊ฐœ๋ฐœ์„ ํ•  ๋•Œ ํด๋ฆฐ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋ ค๊ณ  ํ•ด์š”. ํด๋ฆฐ ์ฝ”๋“œ๋Š” ๊ฐ€๋…์„ฑ์ด ์ข‹๊ณ  ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์‰ฌ์šด ์ฝ”๋“œ๋ฅผ ์˜๋ฏธํ•œ๋‹ต๋‹ˆ๋‹ค. ์ง€๊ธˆ๋ถ€ํ„ฐ ๋ช‡ ๊ฐ€์ง€ ์œ ์šฉํ•œ ํŒ์„ ์†Œ๊ฐœํ• ๊ฒŒ์š”! ๐Ÿ˜Š1. ๋ช…ํ™•ํ•˜๊ณ  ์˜๋ฏธ ์žˆ๋Š” ๋ณ€์ˆ˜๋ช… ์‚ฌ์šฉํ•˜๊ธฐ๋ณ€์ˆ˜๋ช…์€ ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ์„ ํฌ๊ฒŒ ์ขŒ์šฐํ•ด์š”. ๋ณ€์ˆ˜๋ช…์€ ๊ทธ ๋ชฉ์ ์„ ๋ถ„๋ช…ํ•˜๊ฒŒ ๋‚˜ํƒ€๋‚ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, a๋ณด๋‹ค๋Š” age, n๋ณด๋‹ค๋Š” number_of_items์™€ ๊ฐ™์ด ๊ตฌ์ฒด์ ์ธ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•ด ๋ณด์„ธ์š”.# ๋‚˜์œ ์˜ˆa = 10b = 20# ์ข‹์€ ์˜ˆwidth = 10height = 20  2. ํ•จ์ˆ˜๋Š” ํ•˜๋‚˜์˜ ์ž‘์—…๋งŒ ์ˆ˜ํ–‰ํ•˜๊ฒŒ ํ•˜๊ธฐํ•˜๋‚˜์˜ ํ•จ์ˆ˜๊ฐ€ ์—ฌ๋Ÿฌ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ต๊ณ , ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ํž˜๋“ค์–ด์ ธ์š”. ํ•จ์ˆ˜๋Š” ๊ฐ€๋Šฅํ•œ ํ•œ ํ•˜๋‚˜์˜ ์ž‘์—…๋งŒ ์ˆ˜ํ–‰ํ•˜๋„๋ก ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.# ๋‚˜์œ ์˜ˆdef pr.. 2024. 7. 11.
[python] Streamlit ์œผ๋กœ ๋ฐ์ดํ„ฐ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋งŒ๋“ค๊ธฐ! | ๊ฐ„๋‹จํ•œ ๋Œ€์‹œ๋ณด๋“œ & ์›น๋ฐ๋ชจ ํŽ˜์ด์ง€ ๊ฐœ๋ฐœ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ์ผ์ด ๋งŽ์œผ์‹ ๊ฐ€์š”? Streamlit์„ ์ด์šฉํ•ด ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ๋‚˜๋งŒ์˜ ๋ฐ์ดํ„ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค์–ด๋ณด์„ธ์š”! ๐Ÿ˜Ž  Streamlit์€ Python์œผ๋กœ ์ž‘์„ฑ๋œ ์ฝ”๋“œ๋งŒ์œผ๋กœ๋„ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์˜คํ”ˆ ์†Œ์Šค ํ”„๋ ˆ์ž„์›Œํฌ์—์š”. ์ด ๋„๊ตฌ๋Š” ๋ฐ์ดํ„ฐ ๊ณผํ•™์ž, ์—”์ง€๋‹ˆ์–ด, ์—ฐ๊ตฌ์ž๋“ค์ด ๋ฐ์ดํ„ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์†์‰ฝ๊ฒŒ ๊ตฌ์ถ•ํ•˜๊ณ  ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Streamlit์˜ ์žฅ์ ์€ ๋ณต์žกํ•œ ์›น ๊ฐœ๋ฐœ ์ง€์‹ ์—†์ด๋„ ์ง๊ด€์ ์ธ ๋ฐฉ์‹์œผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ด๋ผ ์•Œ์•„๋‘์‹œ๋Š” ๊ฒƒ์„ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค! ๊ฐœ์ธ์ ์œผ๋กœ๋Š” ์ง์žฅ์—์„œ ๋”ฅ๋Ÿฌ๋‹ ๋ชจ๋ธ์ด๋‚˜ ๋น„์ „ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฐ๋ชจ ํŽ˜์ด์ง€๋‚˜ ํŠน์ • ๋กœ๊ทธ ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ๋งŒ๋“ค ๋•Œ ์• ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹คโœจ ๐Ÿ“Œ Streamlit์ด๋ž€? ๐ŸงStreamlit์€ Python๋งŒ์œผ๋กœ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‰ฝ๊ฒŒ.. 2024. 7. 8.
728x90