728x90 ๐ป Programming85 [Kubernetes] ์ฟ ๋ฒ๋คํฐ์ค Deployment ๋ฐ Service ํ์ผ ๊ฐ์ด๋ 1. ๊ฐ์Kubernetes์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌํ๊ณ ์ด์ํ๋ ค๋ฉด Deployment์ Service ํ์ผ์ด ํ์์์. ๊ทธ๋์ ์ด๋ฒ์๋ deployment.yaml๊ณผ service.yaml์ ์์ธํ ์ค๋ช ํ๊ณ , ๊ฐ ์๊ท๋จผํธ๊ฐ ์ด๋ค ์ญํ ์ ํ๋์ง ์ ๋ฆฌํด๋ณผ๊ฒ์. 2. Deployment ํ์ผ (deployment.yaml)Deployment๋ Kubernetes์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌํ๊ณ ๊ด๋ฆฌํ๋ ๊ฐ์ฅ ์ค์ํ ๋ฆฌ์์ค ์ค ํ๋์์.๊ธฐ๋ณธ ์์ (deployment.yaml)apiVersion: apps/v1kind: Deploymentmetadata: name: my-app-deployment labels: app: my-appspec: replicas: 3 # ์คํํ Pod ๊ฐ์ selector:.. 2025. 2. 17. [Kubernetes] ๋ก์ปฌ์์ ์ฟ ๋ฒ๋คํฐ์ค ์ค์ตํ๊ธฐ - Minikube ํ์ฉ ๐ก ์ค์ต ๊ฐ์์ด ๊ธ์์๋ Mac์์ ์ฟ ๋ฒ๋คํฐ์ค(Minikube)๋ฅผ ํ์ฉํ์ฌ FastAPI ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌํ๋ ๊ฐ์ฅ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ ๋ค๋ค๋ณด๋ ค ํด์. ์ฟ ๋ฒ๋คํฐ์ค๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ปจํ ์ด๋ํํ๊ณ ๊ด๋ฆฌํ๋ ๊ฐ๋ ฅํ ๋๊ตฌ์์. ํ์ง๋ง ์ฒ์ ์ฌ์ฉํ๊ธฐ์๋ ๋ณต์กํ ์ ์์ฃ . ์ด๋ฒ ์ค์ต์์๋ ๋ก์ปฌ ํ๊ฒฝ์์ Minikube๋ฅผ ์ฌ์ฉํ์ฌ ์ฟ ๋ฒ๋คํฐ์ค๋ฅผ ๊ฒฝํํ๊ณ , FastAPI ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌํ๋ ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ๋ฒ์ ํ์ตํฉ๋๋ค. โ ์ค์ต ์์ํ๊ฒฝ ์ค์ Kubernetes(Minikube, kubectl) ์ค์นMinikube ์คํ ๋ฐ ํด๋ฌ์คํฐ ํ์ธFastAPI ์ ํ๋ฆฌ์ผ์ด์ ์์ฑDocker๋ก ์ปจํ ์ด๋ ๋น๋ ๋ฐ ์คํ ํ ์คํธKubernetes์ ๋ฐฐํฌ (deployment.yaml, service.yaml ์์ฑ ๋ฐ ์ ์ฉ)๋ก์ปฌ์์ API .. 2025. 2. 12. ์ฝ๋ฉ ํ ์คํธ๋ฅผ ์ํ '์๊ณ ๋ฆฌ์ฆ' ์๊ณ ๋ฆฌ์ฆ์ ์ฃผ์ด์ง ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋จ๊ณ์ ์ธ ์ ์ฐจ์ด๋ค. ํจ์จ์ ์ธ ์๊ณ ๋ฆฌ์ฆ์ ์ ํํ๋ฉด ์๊ฐ๊ณผ ๊ณต๊ฐ์ ์ ์ฝํ ์ ์๊ณ , ๋ฌธ์ ๋ฅผ ๋ ๋น ๋ฅด๊ฒ ํด๊ฒฐํ ์ ์๊ธฐ์ ์์๋ฌ์ผ๊ฒ ์ง? (๋งจ๋ ๊น๋จน๋๋ค)Brute Force๋ธ๋ฃจํธํฌ์ค ์๊ณ ๋ฆฌ์ฆ์ ๋ชจ๋ ๊ฐ๋ฅํ ๊ฒฝ์ฐ์ ์๋ฅผ ๋ค ๊ณ ๋ คํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ด๋ค. ์ด ์๊ณ ๋ฆฌ์ฆ์ ๋งค์ฐ ์ง๊ด์ ์ด๊ณ ๊ตฌํํ๊ธฐ ์ฝ์ง๋ง, ๊ฒฝ์ฐ์ ์๊ฐ ๋ง์ ๊ฒฝ์ฐ ์๊ฐ ๋ณต์ก๋๊ฐ ๋งค์ฐ ์ปค์ง ์ ์๋ค. ๋ฐ๋ผ์ ์ฃผ๋ก ์ ํ์ด ์ ๊ฑฐ๋, ๋ฌธ์ ์ ํฌ๊ธฐ๊ฐ ์์ ๊ฒฝ์ฐ์ ์ ์ฉํ๋ค.ํน์ง๋จ์ํ๊ณ ์ง๊ด์ : ์๊ณ ๋ฆฌ์ฆ์ด ๋งค์ฐ ๊ฐ๋จํ๊ณ ์ดํดํ๊ธฐ ์ฌ์.์๊ฐ ๋ณต์ก๋: ๋ฌธ์ ์ ํฌ๊ธฐ์ ๋ฐ๋ผ O(n^2), O(n!)์ ๊ฐ์ ๋์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ง ์ ์์.๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ์๋: ์ต์ ํ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ง ์๊ณ , ๊ฐ๋ฅํ ๋ชจ๋ ๊ฒฝ์ฐ๋ฅผ ์๋ํ๋ ๋ฐฉ์์ด๋ค.. 2025. 1. 16. ์ฝ๋ฉ ํ ์คํธ๋ฅผ ์ํ '์๋ฃ ๊ตฌ์กฐ' ์๋ฃ๊ตฌ์กฐ๋ ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๋ ๋ฐฉ์ ๋๋ ๋ฐฉ๋ฒ์ด๋ค. ์ฝ๋ฉ ํ ์คํธ์์๋ ๊ฐ ์๋ฃ ๊ตฌ์กฐ์ ํน์ฑ์ ์ดํดํ๊ณ , ๋ฌธ์ ์ ๋ง๊ฒ ์ ํํ๋ ๊ฒ์ด ์ค์ํ๋ค...๋ ๋ง์ ์ง๋ถํ๊ณ ์ ๊น๋จน๊ฒ ์ ์ด๋ผ๋ ๋๋ค. 1. ๋ฆฌ์คํธ (List)๋ฆฌ์คํธ๋ ์์๊ฐ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ์๋ฃ ๊ตฌ์กฐ๋ก, ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ์ฌ ๋น ๋ฅด๊ฒ ๋ฐ์ดํฐ์ ์ ๊ทผํ ์ ์๋ค. ํ์ด์ฌ์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ์๋ฃ ๊ตฌ์กฐ์.์๊ฐ ๋ณต์ก๋: ์ธ๋ฑ์ค ์ ๊ทผ O(1), ์ฝ์ /์ญ์ O(n) (์ค๊ฐ์ ์ฝ์ /์ญ์ ์)์ฌ์ฉ ์ฌ๋ก: ์์ฐจ์ ์ธ ๋ฐ์ดํฐ ์ ์ฅ, ์ธ๋ฑ์ค ๊ธฐ๋ฐ ์ ๊ทผ, ๋ฆฌ์คํธ์ ๋์ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ ๊ฑฐํ ๋ ์ ์ฉ# ๋ฆฌ์คํธ ์์ฑarr = [1, 2, 3]# ๋ฆฌ์คํธ์ ์์ ์ถ๊ฐarr.append(4) # O(1)# ์ธ๋ฑ์ค๋ฅผ ํตํ ์์ ์ ๊ทผprint(arr[2]).. 2025. 1. 15. [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. ์ด์ 1 2 3 4 ยทยทยท 15 ๋ค์ 728x90