KyungRyeol Yoon

[Python] ๐Ÿš€ uv๋กœ ํ”„๋กœ์ ํŠธ & ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ ์™„๋ฒฝ ๊ฐ€์ด๋“œ

๐Ÿ uv๋กœ Python ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌํ•˜๊ธฐ uv๋Š” Python ํ”„๋กœ์ ํŠธ์—์„œ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ + ๊ฐ€์ƒํ™˜๊ฒฝ + Python ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ํ•œ ๋ฒˆ์— ํ•ด๊ฒฐํ•ด์ฃผ๋Š” ์ตœ์‹  ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. Rust๋กœ ์ž‘์„ฑ๋˜์–ด ๊ธฐ์กด pip๋ณด๋‹ค 10~100๋ฐฐ ๋น ๋ฅด๋ฉฐ, pip, venv, pyenv๋ฅผ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ๋Š” ์˜ฌ์ธ์› ํˆด์ž…๋‹ˆ๋‹ค โšก ์ด ๊ธ€์—์„œ๋Š” ์‹ค๋ฌด์—์„œ ๋ฐ”๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ •ํ™•ํ•œ ๋ช…๋ น์–ด...

[Python] ๊ฐ€์ƒํ™˜๊ฒฝ venv ์‚ฌ์šฉ๋ฒ•

๐Ÿ ์™œ ํŒŒ์ด์ฌ ๊ฐ€์ƒํ™˜๊ฒฝ(venv)์„ ์จ์•ผ ํ• ๊นŒ? ํŒŒ์ด์ฌ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋‹ค ๋ณด๋ฉด โ€œA ํ”„๋กœ์ ํŠธ์—์„œ๋Š” Django 3.2๊ฐ€ ํ•„์š”ํ•œ๋ฐ, B ํ”„๋กœ์ ํŠธ์—์„œ๋Š” 4.0์ด ํ•„์š”ํ•˜๋„ค?โ€ ๊ฐ™์€ ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ์‹œ์Šคํ…œ์— ํŒจํ‚ค์ง€๋ฅผ ์ „์—ญ์œผ๋กœ ์„ค์น˜ํ•˜๋ฉด ๋ฒ„์ „ ์ถฉ๋Œ๋กœ ์ธํ•ด ์ฝ”๋“œ๊ฐ€ ๊นจ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ˜ฑ ๊ฐ€์ƒํ™˜๊ฒฝ(Virtual Environment)์€ ํ”„๋กœ์ ํŠธ๋งˆ๋‹ค ๋…...

[macOS] ๐Ÿ‘ป Ghostty ํ„ฐ๋ฏธ๋„ ์™„์ „ ์ •๋ณต: ์„ค์น˜๋ถ€ํ„ฐ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•๊นŒ์ง€

Ghostty๋Š” GPU ๊ฐ€์†์„ ํ†ตํ•ด ์••๋„์ ์ธ ์†๋„๋ฅผ ์ œ๊ณตํ•˜๋Š” ์ตœ์‹  ํ„ฐ๋ฏธ๋„์ž…๋‹ˆ๋‹ค. Apple Silicon์˜ ์„ฑ๋Šฅ์„ 100% ํ™œ์šฉํ•˜๊ธฐ ์œ„ํ•œ ํ•„์ˆ˜ ๋„๊ตฌ๋กœ, ์„ค์น˜๋ถ€ํ„ฐ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•๊นŒ์ง€ ํ•ต์‹ฌ๋งŒ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๐Ÿš€ ์„ค์น˜ ๋ฐ ํฐํŠธ ์„ธํŒ… brew install --cask ghostty โš ๏ธ ๋ฐ˜๋“œ์‹œ ์•„์ด์ฝ˜์ด ํฌํ•จ๋œ Nerd Font๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ์ด๋ชจ์ง€ ...

[AI] ๐Ÿค– ๋ฐ”์ด๋ธŒ ์ฝ”๋”ฉ์˜ ํ•ต์‹ฌ: Claude Code ํ”„๋กœ์ ํŠธ ๋ฌธ์„œ ๊ด€๋ฆฌ ์™„์ „ ๊ฐ€์ด๋“œ

AI์™€ ํ•จ๊ป˜ ๊ฐœ๋ฐœํ•˜๋Š” ์‹œ๋Œ€, ์ฝ”๋“œ๋ณด๋‹ค ์ค‘์š”ํ•œ ๊ฑด ๋ฌธ์„œ์ž…๋‹ˆ๋‹ค. Claude Code๋ฅผ ํ™œ์šฉํ•œ ํ”„๋กœ์ ํŠธ์—์„œ ๋ฌธ์„œ๋Š” โ€œ์‚ฌ๋žŒ์ด ์ฝ๊ธฐ ์œ„ํ•œ ๊ธฐ๋กโ€์ด ์•„๋‹ˆ๋ผ โ€œAI๊ฐ€ ๋งค ์„ธ์…˜๋งˆ๋‹ค ๊ธฐ์–ต์„ ๋ณต์›ํ•˜๊ธฐ ์œ„ํ•œ ์žฅ์น˜โ€์ž…๋‹ˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” ์–ด๋–ค ์–ธ์–ด, ์–ด๋–ค ํ”„๋กœ์ ํŠธ์—์„œ๋“  ํ†ต์šฉ๋˜๋Š” ๋ฌธ์„œ ๊ด€๋ฆฌ ์ „๋žต๊ณผ ์‹ค์ „ ํ”„๋กฌํ”„ํŠธ๋ฅผ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค. 1๏ธโƒฃ ์™œ ๋ฌธ์„œ ๊ด€๋ฆฌ๊ฐ€ ๋ฐ”์ด๋ธŒ ์ฝ”๋”ฉ์˜...

[AI Assignment - Python] ๐Ÿ ์ œ๋„ˆ๋ ˆ์ดํ„ฐ ์‹ค์ „ โ€” batch, file reader, infinite ID

๐ŸŽฏ ๊ณผ์ œ ๊ฐœ์š” ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ์—์„œ ์ž์ฃผ ์“ฐ์ด๋Š” ์ œ๋„ˆ๋ ˆ์ดํ„ฐ 3๊ฐœ๋ฅผ ๊ตฌํ˜„ํ•ด๋ดค์Šต๋‹ˆ๋‹ค. batch_generator โ€” ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐฐ์น˜ ๋‹จ์œ„๋กœ ๋‚˜๋ˆ„๊ธฐ file_line_reader โ€” ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ์„ ํ•œ ์ค„์”ฉ ์ฝ๊ธฐ (๋นˆ ์ค„ ์ฒ˜๋ฆฌ ์˜ต์…˜) infinite_id_generator โ€” ๋ฌดํ•œ ๊ณ ์œ  ID ์ƒ์„ฑ๊ธฐ ์š”๊ตฌ์‚ฌํ•ญ: ๋ชจ๋“  ํ•จ์ˆ˜์— ํƒ€์ž… ํžŒํŠธ, Ge...

[AI Assignment - Python] ๐ŸŽ€ ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์™„์ „ ์ •๋ณต โ€” timer, retry, validate_types ์ง์ ‘ ๊ตฌํ˜„

๐ŸŽฏ ๊ณผ์ œ: ์‹ค๋ฌดํ˜• ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ 3๊ฐœ ๊ตฌํ˜„ @timer โ€” ํ•จ์ˆ˜ ์‹คํ–‰ ์‹œ๊ฐ„ ์ธก์ • @retry(max_attempts=3) โ€” ์‹คํŒจ ์‹œ ์ž๋™ ์žฌ์‹œ๋„ @validate_types โ€” ํƒ€์ž… ํžŒํŠธ ๊ธฐ๋ฐ˜ ๋Ÿฐํƒ€์ž„ ํƒ€์ž… ๊ฒ€์ฆ ๋ชจ๋“  ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ์— functools.wraps๋ฅผ ์ ์šฉํ•˜๋Š” ๊ฒƒ์ด ์š”๊ตฌ์‚ฌํ•ญ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ“ ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ๊ธฐ๋ณธ ๊ตฌ์กฐ ๊ณผ์ œ์— ๋“ค์–ด...

[AI Assignment - Python] ๐Ÿ ํƒ€์ž… ํžŒํŠธ์™€ ์ปดํ”„๋ฆฌํ—จ์…˜ โ€” WeatherAnalyzer ํด๋ž˜์Šค ๊ตฌํ˜„๊ธฐ

๐ŸŽฏ ๊ณผ์ œ: WeatherAnalyzer ํด๋ž˜์Šค ๊ตฌํ˜„ ์ฒซ ๋ฒˆ์งธ ๊ณผ์ œ๋Š” ํƒ€์ž… ํžŒํŠธ์™€ ์ปดํ”„๋ฆฌํ—จ์…˜์„ ํ™œ์šฉํ•œ ๋‚ ์”จ ๋ฐ์ดํ„ฐ ๋ถ„์„ ํด๋ž˜์Šค ๋งŒ๋“ค๊ธฐ์ž…๋‹ˆ๋‹ค. ์ž…๋ ฅ ๋ฐ์ดํ„ฐ weather_data = [ {"city": "์„œ์šธ", "date": "2026-04-01", "temp": 15.2, "humidity": 45, "pm25": 32.1}, {"...

[LLM] Mac Mini M4 ํ™˜๊ฒฝ์—์„œ Ollama ์„ค์น˜ ๋ฐ ๊ด€๋ฆฌ ๊ฐ€์ด๋“œ

Mac Mini M4(Apple Silicon) ํ™˜๊ฒฝ์—์„œ Ollama ์„ค์น˜ ๋ฐ ๊ด€๋ฆฌ ๊ฐ€์ด๋“œ ๐Ÿ“Œ ๊ฐœ์š” ๋ณธ ๊ฐ€์ด๋“œ๋Š” Apple Silicon ๊ธฐ๋ฐ˜ Mac Mini M4 ํ™˜๊ฒฝ์—์„œ ๋กœ์ปฌ LLM(Local Large Language Model) ๋„๊ตฌ์ธ Ollama๋ฅผ ์„ค์น˜ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. Homebrew๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์„ค์น˜ํ•˜๊ณ , ์„œ๋น„์Šค ๋“ฑ๋ก๋ถ€ํ„ฐ ...

[Kubernetes] ๐Ÿ›ก๏ธ OPA Gatekeeper vs Kyverno: ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์ •์ฑ… ๊ด€๋ฆฌ ์™„์ „ ๊ฐ€์ด๋“œ

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์šด์˜ํ•˜๋‹ค ๋ณด๋ฉด โ€œ๋ชจ๋“  Pod์— ๋ฆฌ์†Œ์Šค ์ œํ•œ์„ ์„ค์ •ํ•ด์•ผ ํ•œ๋‹คโ€, โ€œ์Šน์ธ๋œ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์˜ ์ด๋ฏธ์ง€๋งŒ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹คโ€์ฒ˜๋Ÿผ ์กฐ์ง ์ฐจ์›์˜ ์ •์ฑ…์„ ๊ฐ•์ œํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด ์ƒ๊น๋‹ˆ๋‹ค. ์ด๋ฅผ ์ฝ”๋“œ ๋ฆฌ๋ทฐ์—๋งŒ ์˜์กดํ•˜๋ฉด ๋ˆ„๋ฝ์ด ๋ฐœ์ƒํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค. OPA Gatekeeper์™€ Kyverno๋Š” ์ด๋Ÿฐ ์ •์ฑ…์„ ํด๋Ÿฌ์Šคํ„ฐ ๋ ˆ๋ฒจ์—์„œ ์ž๋™์œผ๋กœ ๊ฐ•์ œํ•˜๋Š” ๋Œ€ํ‘œ์ ์ธ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค...

[AI] ๐Ÿค CrewAI: ๋ฉ€ํ‹ฐ ์—์ด์ „ํŠธ AI ํ˜‘์—… ํ”„๋ ˆ์ž„์›Œํฌ ์™„๋ฒฝ ๊ฐ€์ด๋“œ

CrewAI๋Š” ์—ฌ๋Ÿฌ AI Agent๊ฐ€ ์—ญํ• ์„ ๋ถ„๋‹ดํ•˜๊ณ  ํ˜‘๋ ฅํ•˜๋Š” ๋ฉ€ํ‹ฐ ์—์ด์ „ํŠธ ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. AgentยทTaskยทToolยทCrew ๊ตฌ์„ฑ์š”์†Œ๋ถ€ํ„ฐ Sequential/Hierarchical ํ”„๋กœ์„ธ์Šค, ๋ฉ”๋ชจ๋ฆฌ ์‹œ์Šคํ…œ, Python ์ฝ”๋“œ ์˜ˆ์ œ๊นŒ์ง€ ์‹ค๋ฌด ๊ธฐ์ค€์œผ๋กœ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.