๐๐ฎ๐ฉ๐๐ค๐ฃ17 [๋์ค์ฝ๋ ๋ด] ๋กค ์ ์ ๊ฒ์๊ธฐ๋ฅ ๋ง๋ค๊ธฐ - 1 ์ฃผ๋ง์ ์ฌ์ฌํด์ ์ ์ ๊ฒ์ ๋์ค์ฝ๋๋ด์ ๋ง๋ค์ด ๋ณด๊ธฐ๋ก ํ๋ค. ์ ๋ณด๊ฐ ๋ง์ด ์์ด์ ์ผ์ผํ ๋ผ์ด์ํ์ผ์ ๋ฏ์ด๋ณด๊ณ ๋ง๋ค์๋ค. ๋ง๋ค์ด๋ณด๊ณ ์ถ์ผ๋ฉด ์ฒ์ฒํ ๋ฐ๋ผํด๋ณด๋ฉด ์ข์ ๋ฏ ํ๋ค. ๋จผ์ ๋์ค์ฝ๋๋ด์ ๋ง๋ค์ด์ผํ๊ณ , ๋ผ์ด์ api์ ํ ํฐ์ ๋ฐ์์ผํ๋ค. riot api ํ ํฐ์ ๋ฐ๊ธฐ ์ํด ๋จผ์ riot ๊ฐ๋ฐ์ ํ์ด์ง๋ก ๊ฐ์ ํ ํฐ์ ๋ฐ์์ฃผ์๋ค. Riot Developer Portal About the Riot Games API With this site we hope to provide the League of Legends developer community with access to game data in a secure and reliable way. This is just part of our ongoing effo.. 2024. 3. 17. Fast API๋ก ๋ฐฑ์๋์๋ฒ ๋ง๋ค๊ธฐ [1] ๊ฒ์ํ์ ๋ณด๋ 2์์ Fast API๋ฅผ ๊ณต๋ถํ๋ ํ์ ์ด ์์๋ค. ๊ทธ ๋น์์๋ ์๋ฒ๋ฅผ ๋น ๋ฅด๊ฒ ๋ง๋ค์ด์ผํ๋ ์ต์ํ์ง ์์ ํ๋ ์์ํฌ๋ณด๋ค flask๋ก ๋ง๋๋๊ฒ ํธํด์ ์ ์ ์ ์ด๋์๋ค. ๊ทธ๋์ flask๋ก ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์ผ์ ์๊ฐ๋ง๋ค ์ ์ ์ ๋ณด๋ฅผ ์ทจํฉํด์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฐ์ดํธ๋ฅผ ํ๋ ์๋ฒ๋ฅผ ๋ง๋ค๊ณ ๊ด๋ฆฌํ๊ณ ์์๋ค. ์กฐ๊ธ์ฉ ๋ด ์ ๋ฌด ์์ญ์ ๋ํ์ ธ์ ํ๋ก ํธ์ ํต์ ํ๋ ์๋ฒ๋จ์์ ๋ด์ชฝ์ผ๋ก ๊ฐ๊ฐํ ๋ฐ์ดํฐ๋ฅผ ๋๊ฒจ ๋ฐ์ดํฐ๋ฅผ ํ์ฉํด ๊ฒฐ๊ณผ๋ฌผ์ ๋ฆฌํดํด์ฃผ๋ ์๋ฒ๋ฅผ ๋ง๋ค์ด์ผ ํ๋ค. ์ด๋ฒ์๋ flask๋ก ๋ง๋ค๊ณ ํ ์คํธ๋ฅผ ํด๋ด์ ์๋์ด ๋ฐฐํฌ๋ฅผ ํ๋๋ฐ ์ฌ๊ธฐ์ ๋ฌธ์ ๊ฐ ์๊ฒผ๋ค. ๋ฉ์ฒญํ๊ฒ flask๋ฅผ ์ฌ์ฉํ ๋๋ Flask + uWSGI + Nginx ์ธํธ์ ๊ฐ์ด ์ธ๋ถ ์๋ฃ๋ฅผ ํจ๊ป ์ฌ์ฉํด์ผ ํ๋๋ฐ flask์ ๋ฌด์งํ๋ค. ๊ทธ๋์ ์ด์ฌํ ์ด๊ฒ์ ๊ฒ ๋ง์ ธ๋ณด.. 2023. 10. 26. ํ์ผ๋ช ๋ค์ 0์ผ๋ก ์ฑ์ ์๋ฆฟ์ ๋ง์ถ๊ณ ์ผ๊ด ๋ณ๊ฒฝํ๋ ๋ฐฐ์น ํ์ผ์ด๋ ํ์ด์ฌ ์ฝ๋ https://kin.naver.com/qna/detail.naver?d1id=1&dirId=10402&docId=456810597&mode=answer ํ์ผ๋ช ๋ค์ 0์ผ๋ก ์ฑ์ ์๋ฆฟ์ ๋ง์ถ๊ณ ์ผ๊ด ๋ณ๊ฒฝํ๋ ๋ฐฐ์น ํ์ผ์ด๋ ํ์ด... ํ์ผ๋ช ๋ค์ 0์ผ๋ก ์ฑ์ ์๋ฆฟ์ ๋ง์ถ๊ณ ์ผ๊ด ๋ณ๊ฒฝํ๋๋ฐฐ์น ํ์ผ์ด๋ ํ์ด์ฌ ์ฝ๋๊ฐ ํ์ํ๋ฐ ๋ง๋ค์ด ์ฃผ์ค ๋ถ ๊ณ์ค๊น์?ํ์ํด๋๋ค ์์ ํ์ผ๋ค๋ ๋์์ ์ฒ๋ฆฌ๋๋ฉด ์ข๊ฒ ์ต๋๋ค. kin.naver.com ๋ค์ด๋ฒ ์ง์์ธ ์ง๋ฌธ ํ์ผ๋ช ๋ค์ 0์ผ๋ก ์ฑ์ ์๋ฆฟ์ ๋ง์ถ๊ณ ์ผ๊ด ๋ณ๊ฒฝํ๋ ๋ฐฐ์น ํ์ผ์ด๋ ํ์ด์ฌ ์ฝ๋ (ํ์ํด๋ ํฌํจ) ํ์ผ๋ช ๋ค์ 0์ผ๋ก ์ฑ์ ์๋ฆฟ์ ๋ง์ถ๊ณ ์ผ๊ด ๋ณ๊ฒฝํ๋ ๋ฐฐ์น ํ์ผ์ด๋ ํ์ด์ฌ ์ฝ๋๊ฐ ํ์ํ๋ฐ ๋ง๋ค์ด ์ฃผ์ค ๋ถ ๊ณ์ค๊น์? ํ์ํด๋๋ค ์์ ํ์ผ๋ค๋ ๋์์ ์ฒ๋ฆฌ๋๋ฉด ์ข๊ฒ ์ต๋๋ค.. 2023. 10. 18. ์์ธ์ฒ๋ฆฌ ์์ ์๋ '๋๋ ํ๋ฆฌ์ง ์์ํ ๋ ์์ธ์ฒ๋ฆฌ๋ฅผ ํ ํ์๊ฐ ์์ด'๋ผ๋ ์๊ฐ์ ๊ฐ์ง๊ณ ์์๋ค. ํ์ง๋ง ๋ช ๋ฌ์ ๋ถํฐ ์์ธ์ฒ๋ฆฌ๋ฅผ ํด์ฃผ๋ ค ๋ ธ๋ ฅํ๊ณ ์๋ค. ๋ด๊ฐ ๋ฌธ์ ๊ฐ ์๋๋ผ๋ ๋ค๋ฅธ ํต์ ์ ์ํด, ์๋ฒ์ ์ํด ์ค๋ฅ๊ฐ ์๊ธธ ์๋ ์๊ณ , ์ฝ๋๊ฐ ๋ฐฉ๋ํด์ง๋ ๋ก์ง์ด ๊ผฌ์ด๊ธฐ๋ ํ๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ด๋ฆ์ด๋ ์ปฌ๋ผ๋ช ์ด ๋ฌ๋ผ์ง๊ธฐ๋ ํ์๋ค. ์๋ฌ๊ฐ ๋ฐ์ํด๋ ๋ค๋ฅธ ๋ก์ง๋ค์ ๋ฌธ์ ์์ด ์คํ๋์ด์ผํ๊ธฐ ๋๋ฌธ์ ์๋ฌ๊ฐ ๋ฐ์ํ ์ ์๋ ๊ณณ๋ง๋ค ์๋ฌ์ฒ๋ฆฌ๋ฅผ ํด์ผํ๋ค. def chat_ever(chat_count, user): return chat_count / user ์๋ฅผ ๋ค๋ฉด ์ ์ ๋ค์ ํ๊ท ์ฑํ ์๋ฅผ ๊ตฌํ๋ ์ฝ๋์ด๋ค. user๊ฐ ์ฑํ ์ ์ณค์ผ๋ user๋ 0์ด ๋ ์ ์๋ค๊ณ ์๊ฐํ์๋ค. ํ์ง๋ง ์ฑํ ์ ์น ์ ์ ๊ฐ ํํดํ์ฌ ์ ์ ์๊ฐ 0์ด ๋๋ ๊ฒฝ์ฐ๊ฐ ์๊ธด๋ค.. 2023. 6. 29. ํ์ด์ฌ == ๊ณผ is ์ ์ฐจ์ด์ , ์ฃผ์๊ฐ ์๋ฐ์คํฌ๋ฆฝํธ์์ == ๊ณผ ===์ ์ฐจ์ด๋ฅผ ๊ณต๋ถํ๋ค๊ฐ ํ์ด์ฌ์ is ์ ==๊ฐ ์๋๊ฑธ ์์๋๋ฐ ์์ธํ๊ฒ ๊ณต๋ถํด๋ณด์๋ค. ๋จผ์ ์ฝ๊ฒ ๋ณด๋ฉด is๋ ๊ฐ์ ์ฃผ์์ ์๋์ง, ==์ ๋ชจ์์๊ฐ ๊ฐ์์ง ํ์ธํ๋ ๊ฒ์ด๋ค. ์์ ์ฌ์ง์ผ๋ก ์๋ฅผ ๋ค๋ฉด ==์ ๋์ค์ด์ฆ๋ค๋ฒ๋ ๋ฐํ์ด๋ฉด True๋ฅผ ๋ฐํํ๊ณ , ๊ฐ์ ํฐ์ ์ธ ๊ฐ ์๋๋ผ๋ฉด False๋ฅผ ๋ฐํํ๋ค. ํ์ง๋ง is๋ ์ด ํฐ์ ์ธ ์ ํ๋๊ณณ์ด ๊ฐ์์ง๋ ๊ฒ์ฌํ๋ค. ๋ฌด์ ์ฌ์ ๋์ค์ด์ฆ๋ค๋ฒ๋ํฐ์ ์ธ ์ ์ฟ ํก์ ๋์ค์ด์ฆ๋ค๋ฒ๋ํฐ์ ์ธ ๋ ๋ค๋ฅธ๊ฒ์ด๋ค. ์ด๋ฅผ ์ฝ๋๋ก ๋ฐ๊ฟ์ ์ค๋ช ์ ์กฐ๊ธ๋ ํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค. coupang_t_shirt = 'this is never that' musinsa_t_shirt = 'this is never that' print(coupang_t_shirt is musinsa_t_sh.. 2023. 4. 24. ํ์ด์ฌ์ผ๋ก ์ด๋ฏธ์ง ํ์ฅ์ ๋ณ๊ฒฝํ๊ธฐ ํ์ด์ฌ ๊ฐ์ข OCR ์ฌ์ฉํด๋ณด๊ธฐ ๋ฐ ๋ค์ด๋ฒ ํด๋ผ์ฐ๋ AI OCR ์ฌ์ฉ๋ฒ (2) ํ์ด์ฌ ๊ฐ์ข OCR ์ฌ์ฉํด๋ณด๊ธฐ ๋ฐ ๋ค์ด๋ฒ ํด๋ผ์ฐ๋ AI OCR ์ฌ์ฉ๋ฒ (1) ์ ํด์ด๋ฏธ์ง๋ฅผ ํ๋ณํด์ผํ๋๋ฐ ์ฒ์์๋ ์ผํ์ด๋ฏธ์ง๋ ์์ธํ์ด๋ฏธ์ง๋ฅผ ํ๋ณํ๋ ๋ชจ๋ธ์ ๋ง๋ค์์๋ค. ๋ง๋ค๊ณ ๋์ ์ดํ ๋ด์์ ์ด beomcoder.tistory.com ํ๋ก์ ํธ๋ฅผ ์งํํ๋ค๊ฐ OCR API๋ฅผ ์ฌ์ฉํ ์ผ์ด ์๊ฒผ๋๋ฐ, ํ์ฌ ์ดํ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ด๋ฏธ์ง๊ฐ gif, bmp, webp, jpg, blob, ํ์ฅ์๊ฐ ์๋ ์ด๋ฏธ์ง ๋ฑ ๋ค์ํ๊ฒ ์กด์ฌํ์ฌ ์ด๋ฏธ์ง ํ์ฅ์๋ฅผ ๋ณ๊ฒฝ์์ผ์ฃผ์ด์ผ ํ๋ค. def check_extension(url:str) -> str: return extension if ((extension:=url.split('.')[-1]) != 'com') .. 2023. 4. 5. ํ์ด์ฌ ๊ฐ์ข OCR ์ฌ์ฉํด๋ณด๊ธฐ ๋ฐ ๋ค์ด๋ฒ ํด๋ผ์ฐ๋ AI OCR ์ฌ์ฉ๋ฒ (1) ์ ํด์ด๋ฏธ์ง๋ฅผ ํ๋ณํด์ผํ๋๋ฐ ์ฒ์์๋ ์ผํ์ด๋ฏธ์ง๋ ์์ธํ์ด๋ฏธ์ง๋ฅผ ํ๋ณํ๋ ๋ชจ๋ธ์ ๋ง๋ค์์๋ค. ๋ง๋ค๊ณ ๋์ ์ดํ ๋ด์์ ์ด์ ์ ๊ด๊ณ ๋ก ํ๋จ๋์ด ์ญ์ ๋์๋ ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ง๊ณ ์์ ํ ์คํธ๋ฅผ ํด๋ณด์๋ค. ํ์ง๋ง ์ค์ ๋ก ์ดํ์์๋ ๊ทธ๋ฐ ๊ฒฝ์ฐ๋ ๋ง์ด ์๊ณ ๊ธ์๋ก ๊ด๊ณ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์๋ค. ๊ทธ๋์ ์ฐ์ ๊ธ์๋ก ๊ด๊ณ ํ๋ ๊ฒ์๋ฌผ์ ์ก๋ ๋ก์ง์ ๊ฑฐ์น๋ ค๊ณ ํ๋ค. ๋ด๊ฐ ์๊ฐํ ๋ฐฉ๋ฒ์ ๋จผ์ OCR์ ํตํด์ ๊ธ์๋ฅผ ์ถ์ถํ๊ณ ๊ธ์๊ฐ ์๋ค๋ฉด ํํ์ ๋ถ์์ ํตํด ํค์๋๋ฅผ ์ถ์ถํ์ฌ ๋ก์ง์ ํตํด ๊ด๊ณ ์ฑ ๊ธ์ด ๋ค์ด๊ฐ๋์ง ํ๋ณํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ๋ด๊ฐ ์๊ฐํ ์๊ณ ๋ฆฌ์ฆ์ธ๋ฐ ์ฐ์ ์ ํด์ด๋ฏธ์ง์ ๋ํด ์ ์ํ์๊ณ ๋ฌด๋ฃ OCR๋ฅผ ๋จผ์ ์ฌ์ฉํด๋ณด์๋ค. 1. tesseract tesseract๋ ๊ฒ์ํ์๋ ๊ฐ์ฅ ๋จผ์ ๋์จ ํ์ด์ฌ OCR ๋ผ์ด๋ธ๋ฌ๋ฆฌ์๋ค. pip inst.. 2023. 3. 30. Fast API ๊ณต๋ถํด๋ณด๊ธฐ #4 body ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ ์ฃผ๊ณ ๋ฐ๊ธฐ Fast API ๊ณต๋ถํด๋ณด๊ธฐ #3 pydantic, query, request body Fast API ๊ณต๋ถํด๋ณด๊ธฐ #2 ๊ฒฝ๋ก ๋์ ์์ฑ Fast API ๊ณต๋ถํด๋ณด๊ธฐ #1 ํน์ง ๋ฐ ์ค์น ๋ฐฑ์๋๋ก Django, flask๋ง ์ฌ์ฉํ๋ค๊ฐ ๊ฐ๋ณ๊ฒ ์ฌ์ฉํ๊ธฐ์ Fast API๋ ์ข๋ค๊ณ ํ์ฌ ํ๋ฒ ๊ณต๋ถํด๋ณด๋ ค๊ณ ํ๋ค. ์ฃผ์ ํน์ง์ ๋ค์๊ณผ beomcoder.tistory.com body์ ๋ํด์ ์กฐ๊ธ๋ ์์ธํ๊ฒ ๊ณต๋ถํด๋ณด๋ ค ํ๋ค. from typing import Union from fastapi import FastAPI, Path from pydantic import BaseModel app = FastAPI() # FastAPI()๋ฅผ app์ด๋ผ๋ ์ด๋ฆ์ผ๋ก ์ฌ์ฉํ๋ค. class Item(BaseModel): # pydant.. 2023. 2. 23. Fast API ๊ณต๋ถํด๋ณด๊ธฐ #3 pydantic, query, request body Fast API ๊ณต๋ถํด๋ณด๊ธฐ #2 ๊ฒฝ๋ก ๋์ ์์ฑ Fast API ๊ณต๋ถํด๋ณด๊ธฐ #1 ํน์ง ๋ฐ ์ค์น ๋ฐฑ์๋๋ก Django, flask๋ง ์ฌ์ฉํ๋ค๊ฐ ๊ฐ๋ณ๊ฒ ์ฌ์ฉํ๊ธฐ์ Fast API๋ ์ข๋ค๊ณ ํ์ฌ ํ๋ฒ ๊ณต๋ถํด๋ณด๋ ค๊ณ ํ๋ค. ์ฃผ์ ํน์ง์ ๋ค์๊ณผ ๊ฐ๋ค๊ณ ํ๋ค. ์ฐ์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ beomcoder.tistory.com REST APIํ์์ผ๋ก ํ๋ฒ ์ฌ์ฉํด๋ณด๋ ค๊ณ ํ๋ค. ๋จผ์ pydantic์ ์์์ผ ํ๋ค. pydantic์ ํ์ ์ ๋ํ ์ด์ ์ ์ฌ์ฉํด์ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ฆํ๊ณ ์ค์ ๋ค์ ๊ด๋ฆฌํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. pydantic์ ๋ฐํ์ ํ๊ฒฝ์์ ํ์ ์ ๊ฐ์ ํ๊ณ ํ์ ์ด ์ ํจํ์ง ์์ ๋ ์๋ฌ๋ฅผ ๋ฐ์์์ผ์ค๋ค. FastAPI, Project Jupyter, Microsoft, AWS ๋ฑ ๋ง์ ๊ณณ์์ ์ฌ์ฉ๋๋ค. from typing im.. 2023. 2. 23. ์ด์ 1 2 ๋ค์