๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ

๋ชฉํ‘œgemini API๋ฅผ ํ™œ์šฉํ•ด์„œ ํ…์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ๋น„๋””์˜ค ๋‚ด์šฉ์„ ๋ถ„์„ํ•œ๋‹ค. 1. Generate text using GeminiCloud Shell์—์„œ Gemini API๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต์„ ์ƒ์„ฑํ•œ๋‹ค. ๋จผ์ € ๋ช…์‹œ๋œ ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์…‹ํŒ…ํ•ด์ฃผ๊ธฐ. Gemini APIs๋ฅผ ํ™œ์„ฑํ™”์‹œํ‚ค๋ผ๊ณ  ๋‚˜์™”๋Š”๋ฐ, Cloud Console์— Vertex AI ๋ฉ”๋‰ด ๋Œ€์‰ฌ๋ณด๋“œ์—์„œ ๋ณด๋‹ˆ ์ด๋ฏธ ํ™œ์„ฑํ™”๋˜์–ด์žˆ์–ด์„œ ๋”ฐ๋กœ ์ ์–ด์ค„ ํ•„์š”๋Š” ์—†์—ˆ๋‹ค.๊ทธ๋ฆฌ๊ณ  curl command๋กœ Why is sky blue๋ผ๋Š” ์งˆ๋ฌธ์„ ์‹ฃ์–ด ๋ชจ๋ธ์„ ํ˜ธ์ถœํ•œ๋‹ค.curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https..
๋ชฉํ‘œ๊ธฐ์กด์— ์กด์žฌํ•˜๋Š” Monolithic ์›น์‚ฌ์ดํŠธ๋ฅผ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋กœ ๋ถ„๋ฆฌํ•˜๊ณ , ์ด ์›น์‚ฌ์ดํŠธ๋ฅผ ์ปจํ…Œ์ด๋„ˆํ™” ํ•ด์„œ GKE ํ™˜๊ฒฝ์— ๋ฐฐํฌํ•œ๋‹ค. ๋จผ์ €๋Š” ๊ธฐ์กด monolith ์›น์‚ฌ์ดํŠธ๋ฅผ build, deployํ•ด์„œ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜๋Š”์ง€ ํ…Œ์ŠคํŠธํ•ด๋ณด๊ณ , ๊ฐ ์„œ๋น„์Šค๋ฅผ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋กœ ์ชผ๊ฐœ์„œ ์ตœ์ข… ๋ฐฐํฌํ•œ๋‹ค. Task 1. Download the monolith code and build your containerCloud Shell์—์„œ, ์ฃผ์–ด์ง„ git repo๋ฅผ ๋‹ค์šด๋กœ๋“œ๋ฐ›๊ณ , ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋Š” setup.sh ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.์ด setup.sh ์Šคํฌ๋ฆฝํŠธ์—๋Š” ํ”„๋กœ์ ํŠธ์— ํ•„์š”ํ•œ dependencies๋ฅผ ์„ค์น˜ํ•ด์ฃผ๋Š” shell๋ช…๋ น์–ด๊ฐ€ ์žˆ๋‹ค.๊ทธ๋ฆฌ๊ณ ๋‚˜์„œ Cloud Shell์ด ์ตœ์‹ ๋ฒ„์ „์˜ NodeJS๋ฅผ ์‹คํ–‰ํ•˜๋„๋ก ํ•œ๋‹ค.nvm ins..
This is a summary post of my takeaways from learning Google Could's Set Up a Google Cloud Network course as part of ๊ตฌ๊ธ€ ์Šคํ„ฐ๋””์žผ x ์ž‡์ธ (IT's) ์Šคํ„ฐ๋””. ๋ชฉํ‘œ๊ตฌ๊ธ€ํด๋ผ์šฐ๋“œํ”Œ๋žซํผ GCP์—์„œ Virtual Private Cloud (VPC) ๋„คํŠธ์›Œํฌ ์…‹ํŒ…ํ•˜๊ธฐ์„œ๋กœ ๋‹ค๋ฅธ ์„œ๋ธŒ๋„ท์˜ Virtual Machines(VM) ๊ฐ€์ƒ ๋จธ์‹  ์—ฐ๊ฒฐ ํ™•์ธํ•˜๊ธฐ ๋ฐฉํ™”๋ฒฝ ๊ทœ์น™ ๊ตฌ์„ฑํ•ด์„œ VM๊ฐ„ ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ ํ…Œ์ŠคํŠธํ•˜๊ธฐ 1. ๋„คํŠธ์›Œํฌ ๋งŒ๋“ค๊ธฐ ๋ฌธ์ œ์—์„œ ์ฃผ์–ด์ง„๋Œ€๋กœ, `vpc-network-qie5` ๋ผ๋Š” ์ด๋ฆ„์˜ VPC ๋„คํŠธ์›Œํฌ๋ฅผ ๋งŒ๋“ค๊ณ , `subnet-a-8vju`, `subnet-b-7zts`๋ผ๋Š” ์ด๋ฆ„์˜ 2๊ฐœ ์„œ๋ธŒ๋„ท์„ ๊ฐ™์ด ์ƒ์„ฑํ•ด์ค€๋‹ค.์œ„์— ์บก์ฒ˜..
This is a summary post of my takeaways from learning Google Could's Gemini for Google Cloud Learnign Path > GenAI Apps with Gemini and Streamlit course as part of ๊ตฌ๊ธ€ ์Šคํ„ฐ๋””์žผ x ์ž‡์ธ (IT's) ์Šคํ„ฐ๋””. OverviewThe "Develop GenAI Apps with Gemini and Streamlit" cousre covers Python SDK, Gemini API, and deploying a Streamlit web app with Could Run. ObjectiveModify prompt with cURL to test Gemini APIWrite prom..
GeminiGemini is a family of generative AI models developed by Google DeepMind. Function CallingFunction calling (tool use) acts like a bridge between user and language model. Function calling in Gemini lets developer create a description of a function in their code, then pass that description to a language model in a request. The response from the model includes the name of a function that match..
Once Google Cloud project is set up and the Vertext AI API is enabled, you can use the Vertex AI REST API with cURL commands to interact with the Gemini 2.0 Flash model. - Text generationThe `generateContent` method can handle a wide variety of cases including below.- multi-turn chat- multimodal input Below example, you send a text prompt and request the model response in text.%%bashcurl -X PO..
ยท Python
python์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ตฌํ˜„๋œ heapq ๋ชจ๋“ˆ์ด ์žˆ์–ด ๋ฐ”๋กœ ๊ฐ€์ ธ๋‹ค ์“ธ ์ˆ˜ ์žˆ๋‹ค. python ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋‚ด์žฅ ๋ชจ๋“ˆ์ด ๊ธฐ๋ณธ์ ์œผ๋กœ ํฌํ•จ๋˜์–ด์žˆ์–ด, ๋ณ„๋„ ์„ค์น˜์—†์ด `import heapq`๋กœ ๋ฐ”๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค. โฌ‡๏ธ python heap queue algorithm ๊ณต์‹๋ฌธ์„œ โฌ‡๏ธhttps://docs.python.org/3/library/heapq.html heapq โ€” Heap queue algorithmSource code: Lib/heapq.py This module provides an implementation of the heap queue algorithm, also known as the priority queue algorithm. Heaps are binary trees for w..
Binary Tree์ž์‹์ด ๋งŽ์•„๋„ 2๊ฐœ์ธ ํŠธ๋ฆฌ(left, right)๋ฅผ binary tree๋ผ ๋ถ€๋ฅธ๋‹ค.์ด์ง„ํŠธ๋ฆฌ๋Š” ๊ตฌ์กฐ์  ์กฐ๊ฑด๋งŒ ์กด์žฌํ•˜๊ณ , ๊ฐ’์˜ ๋Œ€์†Œ๊ด€๊ณ„์— ๋”ฐ๋ฅธ ์ œ์•ฝ์€ ์—†๋‹ค. ๋”ฐ๋ผ์„œ ์ด์ง„ํŠธ๋ฆฌ๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ์ผ€์ด์Šค๊ฐ€ ์กด์žฌํ•œ๋‹ค.์ž์‹๋…ธ๋“œ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ์ž์‹๋…ธ๋“œ๊ฐ€ 1๊ฐœ์ธ ๊ฒฝ์šฐ์ž์‹๋…ธ๋“œ๊ฐ€ 2๊ฐœ์ธ ๊ฒฝ์šฐ ํ•œ ๋…ธ๋“œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์™ผ์ชฝ ์•„๋ž˜๋Š” ์™ผ์ชฝ ์ž์‹๋…ธ๋“œ, ์˜ค๋ฅธ์ชฝ์€ ์˜ค๋ฅธ์ชฝ ์ž์‹๋…ธ๋“œ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. Binary Search Tree์œ„์˜ binary tree๊ฐ€ ๋” ํฌ๊ด„์ ์ธ ๊ฐœ๋…์ด๊ณ , binary serach tree๋Š” binary tree์˜ ํ•˜์œ„ ๊ฐœ๋…(is-a ๊ด€๊ณ„)์ด๋‹ค.๋ฐ”์ด๋„ˆ๋ฆฌ ์„œ์น˜ํŠธ๋ฆฌ๋Š” ์šฐ์„  ๋ฐ”์ด๋„ˆ๋ฆฌ ํŠธ๋ฆฌ์˜ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๋ฉด์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•ด์•ผํ•œ๋‹ค. ์™ผ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ: ํ˜„์žฌ ๋…ธ๋“œ๋ณด๋‹ค ์ž‘์€ ๊ฐ’์˜ค๋ฅธ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ: ํ˜„์žฌ ๋…ธ๋“œ๋ณด๋‹ค ..
ยท Python
JavaScript javascript์—์„œ๋Š” ๋นˆ ๋ฐฐ์—ด []์€ truthyํ•œ ๊ฐ’์ด๊ธฐ ๋•Œ๋ฌธ์— ์ฐธ์œผ๋กœ ๊ฐ„์ฃผ๋œ๋‹ค.javascript์—๋Š” ์•„๋ž˜ ๊ตฌ๋ฌธ์ด ๋ชจ๋‘ ์‹คํ–‰๋œ๋‹ค.if (true)if ({})if ([]) ๋ฐฐ์—ด์˜ ๊ฒฝ์šฐ๋Š” ๋น„์–ด์žˆ์–ด๋„ ๋ฉ”๋ชจ๋ฆฌ์— ๊ฐ์ฒด๋กœ ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— "Truthy" (์ฐธ๊ฐ™์€ ๊ฐ’) ์œผ๋กœ ๊ฐ„์ฃผ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. Python์ด์— ๋ฐ˜ํ•ด, Python์—์„œ [], {}, "", 0, None ๋“ฑ์€ "Falsy" ๋กœ ๊ฐ„์ฃผ๋œ๋‹ค.if ([]) ์œ„ ๊ตฌ๋ฌธ์€ ํŒŒ์ด์ฌ์—์„œ ์‹คํ–‰๋˜์ง€ ์•Š๋Š”๋‹ค.
๋ฒŒ์จ 25๋…„์˜ 6์›” 30์ผ์ด ๋˜์—ˆ๋‹ค. ์ด์ œ 2025๋…„์˜ ์ ˆ๋ฐ˜๋ฐ–์— ๋‚จ์ง€ ์•Š์•˜๋‹ค๋Š” ๊ฒƒ๋‚˜์˜ 25๋…„์˜ ์ ˆ๋ฐ˜์€ ํ‡ด์‚ฌ ํ›„ ๊ฑฐ์˜ ์‰ฌ์–ด๊ฐ€๋ฉด์„œ ๋‚˜๋ฅผ ์žฌ์ •๋น„ํ•˜๋Š” ๋ฐ ์ดˆ์ ์„ ๋งž์ท„๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ์ง€๊ธˆ์€ ์žก์„œ์นญํ•˜๋Š” ์‹œ๊ฐ„๋„ ๊ฐ™์ด ๋ณด๋‚ด๊ณ  ์žˆ๊ณ .ํ•œํ•ด์˜ ์ ˆ๋ฐ˜์ด ๊ฐ”์œผ๋‹ˆ ๊ฐœ๋ฐœ๋ธ”๋กœ๊ทธ์— ์งง๊ฒŒ๋ผ๋„ ํšŒ๊ณ ๋ฅผ ๋‚จ๊ฒจ๋ณด์•„์•ผ๊ฒ ๋‹ค. Keep- ์˜ค์ „์— ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ’€๊ธฐ๋งค์ผ 1๋ฌธ์ œ๋ผ๋„ ํ‘ธ๋Š” ๋ฃจํ‹ด์œผ๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ - ํ’€์Šคํƒ ์‹œ๋„ํ•ด๋ณธ ๊ฒƒํ˜ผ์ž์„œ ํ•ด๋ณด๋Š” ์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ์˜ ์„œ๋ฒ„๊ฐ€ ํ•„์š”ํ•  ๋•Œ ๋‚ด๊ฐ€ ๊ทธ๋ƒฅ ๋งŒ๋“ค๊ณ  ์žˆ๋‹ค. ๊ด€๋ฆฌ๋น„ ํ”„๋กœ์ ํŠธ๋Š” Node.js + Express๋กœ ์„œ๋ฒ„์งฐ๊ณ  ์ง€๊ธˆ ํ•˜๊ณ ์žˆ๋Š” ์ˆซ์ž๋กœ ์ƒ‰์น ํ•˜๊ธฐ๋Š” Python + FastAPI ๋กœ ๋งŒ๋“ค์–ด ๋ณด๊ณ  ์žˆ๋‹ค. Problems - ๊ฐœ๋ฐœ ๊ณต๋ถ€ ์‹œ๊ฐ„ํšŒ์‚ฌ๋ฅผ ์•ˆ๋‹ค๋‹ˆ๋‹ˆ ์ •ํ•ด์ง„ ์‹œ๊ฐ„์— ๊ฐœ๋ฐœํ•˜๋Š”๊ฒŒ ์•„๋‹ˆ๋‹ˆ ๊ฐœ๋ฐœํ•˜๋Š” ์‹œ๊ฐ„์ด ํ˜„์ €ํžˆ ์ค„์—ˆ๋‹ค..