[AI] MCP ์„ค์ • ๊ฐ€์ด๋“œ
ยท
๐Ÿ“ AI/โœ AI Tools
1. MCPMCP๋Š” ํด๋ผ์ด์–ธํŠธ(AI ๋„๊ตฌ)์™€ ์„œ๋ฒ„(๋„๊ตฌ ์ œ๊ณต์ž) ์‚ฌ์ด๋ฅผ ์ž‡๋Š” JSON-RPC ๊ธฐ๋ฐ˜ ํ”„๋กœํ† ์ฝœ์ด๋‹ค.[AI ๋„๊ตฌ] - [MCP Server] - [ํŒŒ์ผ / API / DB]MCP ์„œ๋ฒ„ ํ•˜๋‚˜๊ฐ€ "ํŒŒ์ผ ์ฝ๊ธฐ", "DB ์กฐํšŒ", "GitHub PR ์ƒ์„ฑ" ๊ฐ™์€ ํˆด(Tool)์„ ์ •์˜ํ•˜๋ฉด, AI๊ฐ€ ์ž‘์—… ์ค‘์— ๊ทธ ํˆด์„ ์ž๋™์œผ๋กœ ํ˜ธ์ถœํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด "์ด ํ”„๋กœ์ ํŠธ์˜ DB ์Šคํ‚ค๋งˆ๋ฅผ ๋ณด๊ณ  ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ฝ”๋“œ ์งœ์ค˜"๋ผ๊ณ  ํ•˜๋ฉด AI๊ฐ€ MCP๋ฅผ ํ†ตํ•ด ์‹ค์ œ DB์— ์ ‘๊ทผํ•œ ๋’ค ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค.๋ฐฉ์‹์„ค๋ช…์ฃผ์š” ์‚ฌ์šฉ์ฒ˜stdioํ‘œ์ค€ ์ž…์ถœ๋ ฅ์œผ๋กœ ํ†ต์‹ . ๋กœ์ปฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ง์ ‘ ์‹คํ–‰npx, node, python ๋กœ์ปฌ ์‹คํ–‰HTTP (SSE / Streamable)HTTP๋กœ ํ†ต์‹ . ์›๊ฒฉ ์„œ๋ฒ„ ์ ‘์† ๊ฐ€๋ŠฅDocker ์„œ๋ฒ„, ์›๊ฒฉ ๋ฐฐํฌ 2. ..
[Unreal] ์ตœ์ ํ™”
ยท
๐Ÿ“ Game/โœ Unreal
1. ์ตœ์ ํ™”๋†’์€ ๋ Œ๋”๋ง ๋ถ€ํ•˜์™€ CPU ๋ณ‘๋ชฉ ํ˜„์ƒ์€ ๊ฒŒ์ž„์˜ ํ”„๋ ˆ์ž„ ์†๋„๋ฅผ ๋–จ์–ด๋œจ๋ฆฌ๊ณ  ๊ฒŒ์ž„ ํ”Œ๋ ˆ์ด์— ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ตœ์ ํ™”๋Š” ํ•„์ˆ˜์ด๋‹ค. ํŠนํžˆ ์ตœ์ ํ™”๋Š” ํ•œ ๋ฒˆ์— ๋๋‚˜๋Š” ์ž‘์—…์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ž‘์—…, ํ…Œ์ŠคํŠธ, ๊ฐœ์„ ์˜ ๋ฐ˜๋ณต์ด ์ค‘์š”ํ•˜๋‹ค. 2. ๋ Œ๋”๋ง ์ตœ์ ํ™” ๋ Œ๋”๋ง(rendering)์€ ์ปดํ“จํ„ฐ ํ”„๋กœ๊ทธ๋žจ์„ ์ด์šฉํ•ด 2D ๋˜๋Š” 3D ๋ชจ๋ธ์—์„œ ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์ด๋‹ค.CullingLODNaniteShader Complexity View๋ฅผ ํ†ตํ•ด ๋จธํ„ฐ๋ฆฌ์–ผ ๋ณต์žก๋„ ํ™•์ธํ•„์š”ํ•˜์ง€ ์•Š์€ ๊ทธ๋ฆผ์ž ์ œ๊ฑฐ ๋ฐ ์‹ค์‹œ๊ฐ„ ๊ทธ๋ฆผ์ž ์ตœ์†Œํ™” 1) Culling๋ Œ๋”๋ง ์ตœ์ ํ™” ๊ธฐ๋ฒ• ์ค‘ ๊ฐ€์žฅ ๋Œ€ํ‘œ๋˜๋Š” Culling์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž. Culling์€ ๊ตณ์ด ๋ Œ๋”๋ง ํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค๊ณ  ํŒ๋‹จ๋œ ์˜ค๋ธŒ์ ํŠธ๋“ค์„ ์ œ์™ธํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. ์–ธ๋ฆฌ์–ผ..
[C++] Palindrome
ยท
๐Ÿ“ Computer Science/โœ Algorithm
Palindrome1. ๊ฐœ๋…Palindrome์€ ๊ฑฐ๊พธ๋กœ ์ฝ์–ด๋„ ์ œ๋Œ€๋กœ ์ฝ๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ๋ฌธ์žฅ์„ ๋งํ•œ๋‹ค.  2. ๋ฌธ์ œhttps://leetcode.com/problems/palindrome-partitioning/description/#include #include using namespace std;class Solution {public: vector> answer; vector sub; vector> partition(string s) { dfs(s, 0); return answer; } void dfs(string s, int index) { if (index == s.length()) { answer.push_bac..
[Unreal] ํŒจํ‚ค์ง•
ยท
๐Ÿ“ Game/โœ Unreal
1. ํŒจํ‚ค์ง•?ํŒจํ‚ค์ง•์€ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฐฐํฌํ•˜๊ธฐ ์œ„ํ•ด ์ปจํ…์ธ ์™€ ์†Œ์Šค๋“ค์„ ๋นŒ๋“œ, ์ฟ ํ‚น, ํŒจํ‚น์„ ํ•˜๋Š” ์ผ๋ จ์˜ ๊ณผ์ •์ด๋‹ค. 1) ๋นŒ๋“œ๋นŒ๋“œ๋Š” ์„ ํƒํ•œ ํ”Œ๋žซํผ์—์„œ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์‹คํ–‰ ํŒŒ์ผ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ์ปดํŒŒ์ผ ๊ณผ์ •์ด๋‹ค. ์ „์ฒ˜๋ฆฌ UBT → UHT (.h) → ์ปดํŒŒ์ผ (.cpp) → ์–ด์…ˆ๋ธ”๋ฆฌ (.obj) → Module → ์™„๋ฃŒ์šฐ์„  UBT์™€ UHT์˜ ์ „์ฒ˜๋ฆฌ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์นœ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ UBT๊ฐ€ ๋จผ์ € ํ˜ธ์ถœ๋˜๋ฉฐ ํ•„์š”์— ๋”ฐ๋ผ UHT๊ฐ€ ํ˜ธ์ถœ๋œ๋‹ค.๊ทธ ํ›„ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ปดํŒŒ์ผ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.  UBT(Unreal Build Tool)๋Š” ํ”„๋กœ์ ํŠธ์˜ ๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค.์–ด๋–ค ์†Œ์Šค ์ฝ”๋“œ ํŒŒ์ผ๋“ค์ด ๋ณ€๊ฒฝ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ , ๊ทธ์— ๋”ฐ๋ผ ์–ด๋–ค ๋ถ€๋ถ„์„ ์ƒˆ๋กญ๊ฒŒ ์ปดํŒŒ์ผํ•  ๊ฒƒ์ธ์ง€ ๊ฒฐ์ •ํ•œ๋‹ค.ํ”„๋กœ์ ํŠธ์˜ ํด๋” ๊ตฌ์กฐ์™€ ์†Œ์Šค ํŒŒ์ผ์„ ๊ธฐ๋ฐ˜์œผ๋กœ OS์— ๋งž๋Š” ์†”๋ฃจ์…˜์„ ์ƒ์„ฑํ•˜์—ฌ ..
[Unreal] ์บ๋ฆญํ„ฐ ์• ๋‹ˆ๋ฉ”์ด์…˜ ๊ฐœ์„ 
ยท
๐Ÿ“ Game/โœ Unreal
1. ๋ธ”๋ Œ๋“œ ์ŠคํŽ˜์ด์Šค(Blend Space)๊ฑท๊ธฐ, ๋›ฐ๊ธฐ ๋“ฑ ๊ธฐ์กด ์• ๋‹ˆ๋ฉ”์ด์…˜์˜ ๊ตฌํ˜„ ๋ฐฉ์‹์€ FSM ๊ตฌ์กฐ๋กœ ํŠน์ • ์กฐ๊ฑด์— ๋งž๋Š” ์• ๋‹ˆ๋ฉ”์ด์…˜์ด ์ฆ‰์‹œ ์‹คํ–‰๋˜๋„๋ก ๊ตฌํ˜„๋˜์–ด ์žˆ์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ด ๋ฐฉ์‹์€ ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ „ํ™˜์ด ์ผ์–ด๋‚  ๋•Œ ๋”ฑ๋”ฑ ๋Š๊ธฐ๋Š” ๋А๋‚Œ์ด ๋“ค์—ˆ๋‹ค.  ์• ๋‹ˆ๋ฉ”์ด์…˜์ด ์ „ํ™˜ํ•  ๋•Œ ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ๋ฐ”๋€Œ๋„๋ก ๋ธ”๋ Œ๋“œ ์ŠคํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋‹ค. ๋ธ”๋ Œ๋“œ ์ŠคํŽ˜์ด์Šค๋Š” ๋‘ ์ž…๋ ฅ๊ฐ’์— ๋”ฐ๋ผ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ๋ธ”๋ Œ๋”ฉ ์‹œ์ผœ ์ค€๋‹ค.  ๋ธ”๋ Œ๋“œ ์ŠคํŽ˜์ด์Šค๋ฅผ ์ƒ์„ฑํ•œ ํ›„, ๋จผ์ € ์ถ• ์„ธํŒ…์ด ํ•„์š”ํ•˜๋‹ค. Vertical AxisName: SpeedMinimum Axis Value: 0Maximum Axis Value: 700Smoothing Time: 0.1. ๊ฐ’์ด ํด์ˆ˜๋ก ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ์ „ํ™˜๋œ๋‹ค. ํ˜„์žฌ ์บ๋ฆญํ„ฐ์˜ ๊ฑท๊ธฐ ์†๋„๋Š” 500, ๋›ฐ๊ธฐ ์†๋„๋Š” 700์œผ๋กœ ์„ค์ •๋˜์–ด ์žˆ์–ด ..
[Unreal] ํ”„๋กœํผํ‹ฐ(๋ฆฌํ”Œ๋ ‰์…˜), ๋งคํฌ๋กœ, ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜
ยท
๐Ÿ“ Game/โœ Unreal
1. ๋ฆฌํ”Œ๋ ‰์…˜๋ฆฌํ”Œ๋ ‰์…˜(Reflection)์€ ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰ ์‹œ๊ฐ„์— ์ž๊ธฐ ์ž์‹ ์„ ์กฐ์‚ฌํ•˜๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. ์—ฌ๊ธฐ์„œ ์ž๊ธฐ ์ž์‹ ์ด๋ž€ ํด๋ž˜์Šค, ๊ตฌ์กฐ์ฒด, ํ•จ์ˆ˜, ๋ฉค๋ฒ„ ๋ณ€์ˆ˜, ์—ด๊ฑฐํ˜• ๋“ฑ์„ ์˜๋ฏธํ•œ๋‹ค. ์ฆ‰, ๋Ÿฐํƒ€์ž„์— ๊ฐ์ฒด์˜ ํƒ€์ž…์„ ๋ณด๋Š” ๊ฒƒ์„ ํฌํ•จํ•ด ๊ตฌ์กฐ์™€ ํ–‰๋™๊นŒ์ง€ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์ด ๋ฆฌํ”Œ๋ ‰์…˜์ด๋‹ค. 2. ํ”„๋กœํผํ‹ฐ์ž๋ฐ”๋‚˜ C#์—์„œ๋Š” ๋ฆฌํ”Œ๋ ‰์…˜์„ ์ง€์›ํ•˜์ง€๋งŒ, ์–ธ๋ฆฌ์–ผ C++์—์„œ๋Š” ์ง€์›ํ•˜์ง€ ์•Š๊ณ  ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ ์–ธ๋ฆฌ์–ผ ์ž์ฒด ์‹œ์Šคํ…œ์œผ๋กœ ๋ฆฌํ”Œ๋ ‰์…˜์„ ์ œ๊ณตํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ๊ทธ ์‹œ์Šคํ…œ์„ ์–ธ๋ฆฌ์–ผ์˜ ๋ฆฌํ”Œ๋ ‰์…˜์ธ ํ”„๋กœํผํ‹ฐ๋ผ ๋ถ€๋ฅธ๋‹ค. ์–ธ๋ฆฌ์–ผ ๋‚ด์˜ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์‹œ์Šคํ…œ๋“ค์ด ์ด ๋ฆฌํ”Œ๋ ‰์…˜ ๊ฐ์ฒด์— ์˜์กดํ•œ๋‹ค.๋„คํŠธ์›Œํฌ ๋ฆฌํ”Œ๋ฆฌ์ผ€์ด์…˜๋ธ”๋ฃจํ”„๋ฆฐํŠธ์™€ C++ ์—ฐ๋™์—๋””ํ„ฐ์˜ ๋””ํ…Œ์ผ ํŒจ๋„์ž๋™ ์‹œ๋ฆฌ์–ผ๋ผ์ด์ œ์ด์…˜๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜ 3. ๋งคํฌ๋กœํด๋ž˜์Šค, ๋ณ€์ˆ˜, ํ•จ์ˆ˜ ๋“ฑ ์ƒํ™ฉ์— ๋งž๊ฒŒ ๋งคํฌ๋กœ๋ฅผ ๋‹ฌ์•„๋‘๋ฉด, UHT(..