penspanic

๋งŒ๋“ค๊ณ  ์‹ถ์€ ๊ฒŒ ๋งŽ์•„์„œ ๋Š˜ ๋ญ”๊ฐ€๋ฅผ ์ง“๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
๋ณธ์—…์€ ๊ฒŒ์ž„ ๊ฐœ๋ฐœ.

C# Source Generator๋กœ ๊ฒŒ์ž„ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌํ•˜๊ธฐ โ€” Datra

C# Source Generator๋กœ ๊ฒŒ์ž„ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌํ•˜๊ธฐ โ€” Datra

CSVยทJSONยทYAML์„ ๋ณด์ผ๋Ÿฌํ”Œ๋ ˆ์ดํŠธ ์—†์ด ํƒ€์ž… ์„ธ์ดํ”„ํ•˜๊ฒŒ ๋‹ค๋ฃจ๋Š” C# Source Generator ๊ธฐ๋ฐ˜ ๊ฒŒ์ž„ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ.

#Datra #CSharp #Unity #dotnet

๋ณ‘๋ชฉ์€ ์‚ฌ๋ผ์ง€์ง€ ์•Š๊ณ  ์˜ฎ๊ฒจ ๊ฐ„๋‹ค

๊ตฌํ˜„ โ†’ ์ดํ•ด โ†’ ํ™˜๊ฒฝ โ†’ ๊ฒ€์ฆ. AI์—๊ฒŒ ์ผ์„ ๋งก๊ธด ๋’ค ๋ง‰ํžˆ๋Š” ๊ณณ์ด ์˜ฎ๊ฒจ ๊ฐ„ ์ˆœ์„œ.

#AI #Workflow #Architecture #Personal

์—์ด์ „ํŠธ๊ฐ€ ๋‚ด Unity ํ”„๋กœ์ ํŠธ์—์„œ ์‹œ๊ฐ„์„ ์–ด๋””์— ์ผ๋‚˜

Claude Code์™€ Codex๊ฐ€ Unity ํ”„๋กœ์ ํŠธ์—์„œ ์ผํ•œ 6์ฃผ์น˜ ์„ธ์…˜ ๊ธฐ๋ก 8GB๋ฅผ ์„ธ์–ด ๋ดค์Šต๋‹ˆ๋‹ค. ๊ธฐ๋‹ค๋ฆฐ ์‹œ๊ฐ„, Unity๋ฅผ ๋ถ€๋ฅธ ๊ฒฝ๋กœ, ์‚ฌ๋žŒ์ด ๋ผ์–ด๋“  ์ง€์ , ๊ทธ๋ฆฌ๊ณ  LLM์—๊ฒŒ ๋กœ๊ทธ๋ฅผ ์ฝํž ๋•Œ ์–ด๋””๊นŒ์ง€ ๋ฏฟ์„ ์ˆ˜ ์žˆ์—ˆ๋Š”์ง€๋ฅผ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.

#Unity #AI #Retrospective

๋ณ‘๋ชฉ์€ ์‚ฌ๋ผ์ง€์ง€ ์•Š๊ณ  ์˜ฎ๊ฒจ ๊ฐ„๋‹ค

๊ตฌํ˜„ โ†’ ์ดํ•ด โ†’ ํ™˜๊ฒฝ โ†’ ๊ฒ€์ฆ. AI์—๊ฒŒ ์ผ์„ ๋งก๊ธด ๋’ค ๋ง‰ํžˆ๋Š” ๊ณณ์ด ์˜ฎ๊ฒจ ๊ฐ„ ์ˆœ์„œ.

#AI #Workflow #Architecture #Personal

์—์ด์ „ํŠธ๊ฐ€ ๋‚ด Unity ํ”„๋กœ์ ํŠธ์—์„œ ์‹œ๊ฐ„์„ ์–ด๋””์— ์ผ๋‚˜

Claude Code์™€ Codex๊ฐ€ Unity ํ”„๋กœ์ ํŠธ์—์„œ ์ผํ•œ 6์ฃผ์น˜ ์„ธ์…˜ ๊ธฐ๋ก 8GB๋ฅผ ์„ธ์–ด ๋ดค์Šต๋‹ˆ๋‹ค. ๊ธฐ๋‹ค๋ฆฐ ์‹œ๊ฐ„, Unity๋ฅผ ๋ถ€๋ฅธ ๊ฒฝ๋กœ, ์‚ฌ๋žŒ์ด ๋ผ์–ด๋“  ์ง€์ , ๊ทธ๋ฆฌ๊ณ  LLM์—๊ฒŒ ๋กœ๊ทธ๋ฅผ ์ฝํž ๋•Œ ์–ด๋””๊นŒ์ง€ ๋ฏฟ์„ ์ˆ˜ ์žˆ์—ˆ๋Š”์ง€๋ฅผ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.

#Unity #AI #Retrospective

์™„๋ฒฝ๊ณผ AI, ๊ทธ๋ฆฌ๊ณ  TDD

์‚ฌ๋žŒ์ด๋“  AI๋“  ์™„๋ฒฝํ•  ์ˆ˜ ์—†๋‹ค. AI๊ฐ€ ์ฝ”๋“œ ๋ณ€๊ฒฝ๋Ÿ‰์„ ๋Š˜๋ฆฌ๋Š” ๋™์‹œ์— ํ…Œ์ŠคํŠธ ์ž‘์„ฑ ๋น„์šฉ์„ ๋‚ฎ์ถ˜ ์ง€๊ธˆ, TDD์™€ CI๊ฐ€ ์™œ ๋” ์ค‘์š”ํ•˜๊ณ  ๋” ๊ฐ€์„ฑ๋น„ ์ข‹์€ ์„ ํƒ์ด ๋˜์—ˆ๋Š”์ง€ ์‹ค์ œ ๊ฒŒ์ž„ยทํ”„๋ ˆ์ž„์›Œํฌ ๊ฐœ๋ฐœ ๊ฒฝํ—˜์œผ๋กœ ์ •๋ฆฌํ–ˆ๋‹ค.

#AI #TDD #CI #Testing

์ƒˆ ์ฑ„ํŒ…์˜ AI๋Š” ๋‚˜๋ฅผ ๋ชจ๋ฅธ๋‹ค โ€” ๊ทธ๋ž˜์„œ ์ฑ„ํŒ… ๋ฐ–์— ๋ฌธ๋งฅ์„ ๋งŒ๋“ค์—ˆ๋‹ค

์ผ๊ธฐยทํ”„๋กœ์ ํŠธยท์ƒ๊ฐ์„ ํ•œ๊ณณ์— ๋ชจ์œผ๊ณ  Claude Code์™€ Codex๊ฐ€ ๊ทธ ์•ˆ์—์„œ ์ผํ•˜๊ฒŒ ํ–ˆ๋‹ค. ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์งˆ๋ฌธํ•ด๋„ ๊ณผ๊ฑฐ ๊ธฐ๋ก์„ ์ฐพ์•„ ์ž‘์—…ํ•˜๊ณ  ๋‹ค์‹œ ๊ธฐ๋กํ•˜๋Š” ์‹ค์ œ ์‚ฌ๋ก€์™€, AI ์‹œ๋Œ€์— ๊ฐœ์ธ ๊ธฐ๋ก์ด ๋” ์ค‘์š”ํ•ด์ง„ ์ด์œ ๋ฅผ ์ •๋ฆฌํ–ˆ๋‹ค.

#Personal #AI #Knowledge Management

.NET ๊ฒŒ์ž„ ์„œ๋ฒ„ GC, ์›Œํฌ๋กœ๋“œ๋ณ„๋กœ ์ธก์ •ํ•ด์„œ ๊ณ ๋ฅด๊ธฐ

2์ฝ”์–ด ARM ๋ฐ•์Šค์—์„œ .NET Server GC ์„ค์ •์„ ์›Œํฌ๋กœ๋“œ๋ณ„๋กœ ์ธก์ •ํ•œ ๊ธฐ๋ก. ๋ญ˜ ์ผœ๊ณ , ์–ด๋–ป๊ฒŒ ์Ÿ€๊ณ , ๋ญ๊ฐ€ ๋‚˜์•˜๋Š”์ง€.

#dotnet #CSharp #Optimization #GameDev

์—”์ง„๊ณผ ๊ฒŒ์ž„์„ ํ•จ๊ป˜ ๊ฐœ๋ฐœํ•˜๋Š” ๊ตฌ์กฐ โ€” ์Šน๊ฒฉ ํ”„๋กœํ† ์ฝœ, ํŒŒ์‚ฌ๋“œ, ์ง worktree

๊ฒŒ์ž„ splanet.io๋Š” ์ง์ ‘ ๋งŒ๋“  ์—”์ง„ OFF ์œ„์— ์žˆ๋‹ค. ๋ ˆํฌ๋Š” ๋‘˜์ธ๋ฐ ๋ณ€๊ฒฝ์€ ๋Œ€๊ฐœ ํ•˜๋‚˜๋‹ค. ๋ฌด์—‡์„ ์—”์ง„์— ์˜ฌ๋ฆด์ง€๋Š” ๊ทœ์น™์ด ์•„๋‹ˆ๋ผ ๊ฐ๊ฐ์ด์ง€๋งŒ, ์–ด๋–ป๊ฒŒ ์˜ฌ๋ฆด์ง€๋Š” ํ”„๋กœํ† ์ฝœ์ด ์žˆ๋‹ค. ํŒŒ์‚ฌ๋“œ๋กœ ๊ฒฝ๊ณ„๋ฅผ ์ขํžˆ๊ณ , worktree๋ฅผ ์ง์œผ๋กœ ์›€์ง์ด๊ณ , ์–ด๋А ์ฝ”๋”ฉ ์—์ด์ „ํŠธ๊ฐ€ ์™€๋„ ๊ฐ™์€ ๊ณ„์•ฝ์—์„œ ์ถœ๋ฐœํ•˜๊ฒŒ ๋งŒ๋“ ๋‹ค.

#OFF #GameDev #Architecture #Git

C# ๋กœ์ง์„ TypeScript๋กœ ์˜ฎ๊ธฐ๋Š” transpiler๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค โ€” Mirrorgen

ํƒ€์ž…๋งŒ ์ƒ์„ฑํ•˜๋Š” codegen์œผ๋กœ๋Š” ๋ถ€์กฑํ–ˆ๋‹ค. C#์˜ ๋กœ์ง์„ byte-exactํ•œ TypeScript๋กœ ์˜ฎ๊ธฐ๊ณ , ๋‘ ๊ตฌํ˜„์ด ๊ฐ™์€ ๊ฐ’์„ ๋‚ด๋Š”์ง€ ์ž๋™ ๊ฒ€์ฆํ•˜๋Š” transpiler๋ฅผ ๋งŒ๋“ค์–ด OSS๋กœ ๋—๋‹ค.

#dotnet #typescript #transpiler #Roslyn
OFF์— ํ–‰์„ฑ์„ ์–น๋‹ค โ€” Topology-Agnostic ์•„ํ‚คํ…์ฒ˜

OFF์— ํ–‰์„ฑ์„ ์–น๋‹ค โ€” Topology-Agnostic ์•„ํ‚คํ…์ฒ˜

๋ฌดํ•œ ํ‰๋ฉด ๋ถ„์‚ฐ ์„œ๋ฒ„ ํ”„๋ ˆ์ž„์›Œํฌ์˜€๋˜ OFF์— cube-sphere ํ–‰์„ฑ์„ ์–น์€ ์ด์•ผ๊ธฐ. ํ‰๋ฉด๋„ ๊ตฌ์ฒด๋„ ๊ฐ™์€ ์ฝ”์–ด ์œ„์—์„œ ๋„๋Š” ๊ตฌ์กฐ๋กœ ์–ด๋–ป๊ฒŒ ๋ฐ”๊ฟจ๋‚˜.

#OFF #Architecture #GameServer #Distributed

MatterKit

2026.09 โ€“ ์ง„ํ–‰ ์ค‘

๋ฌผ์ฒด๋ฅผ ๊ตฌ์กฐ์™€ ์žฌ์งˆ๋กœ ์ •์˜ํ•˜๋Š” Unity ๋ฌผ๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ. JSON ์›๋ณธ ํ•˜๋‚˜์—์„œ ๊ฒ‰๋ฉด, ์ถฉ๋Œ์ฒด, ์งˆ๋Ÿ‰, ๊นจ์ง€๋Š” ์กฐ๊ฐ์„ ํ•จ๊ป˜ ๋งŒ๋“ค๊ณ , ์ƒ์ž๋ฅผ ์—ด๋ฉด ์•ˆ์˜ ๋‚ด์šฉ๋ฌผ์ด ์Ÿ์•„์ง€๊ณ  ์ž๋ฅด๋ฉด ์กฐ๊ฐ์ด ๋‚จ๋Š”๋‹ค.

Spill

2026.09 โ€“ ์ง„ํ–‰ ์ค‘

๊ฐ€์นญ. ์œ ๋ฆฌ๋ณ‘์„ ๊ณ„๋‹จ์œผ๋กœ ํ•˜๋‚˜์”ฉ ๊ตด๋ ค ๋ณด๋‚ด๋Š” ๋ฌผ๋ฆฌ ์ธํฌ๋ฆฌ๋ฉ˜ํƒˆ ๊ฒŒ์ž„. ๋ณ‘์€ ๊ตฌ๋ฅด๊ณ  ๋ถ€๋”ชํžˆ๋‹ค ๊นจ์ง€๊ฑฐ๋‚˜ ๊ณจ๊นŒ์ง€ ์˜จ์ „ํžˆ ๋„์ฐฉํ•˜๊ณ , ๋„์ฐฉํ•œ ๋งŒํผ ๋™์ „์ด ๋˜์–ด ์ƒˆ ๋ณ‘๊ณผ ์žฅ์น˜๋ฅผ ์‚ฐ๋‹ค. MatterKit ์œ„์—์„œ ๊ฐœ๋ฐœ ์ค‘.

Datra

2025.07 โ€“ ์ง„ํ–‰ ์ค‘

C# Source Generator ๊ธฐ๋ฐ˜ ๊ฒŒ์ž„ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ. CSV, JSON, YAML์„ ๋ณด์ผ๋Ÿฌํ”Œ๋ ˆ์ดํŠธ ์—†์ด ํƒ€์ž… ์„ธ์ดํ”„ํ•˜๊ฒŒ. Spill์˜ ๊ฒŒ์ž„ ์ˆ˜์น˜๋„ Datra ํ‘œ๋กœ ๊ด€๋ฆฌํ•œ๋‹ค.

OFF (Open Field Framework)

2024.01 โ€“ ์ง„ํ–‰ ์ค‘

๋Œ€๊ทœ๋ชจ ์˜คํ”ˆ ์›”๋“œ ๊ฒŒ์ž„์„ ์œ„ํ•œ ํ’€์Šคํƒ .NET ํ”„๋ ˆ์ž„์›Œํฌ. ์„œ๋ฒ„ ํด๋Ÿฌ์Šคํ„ฐ๋ง, WebGPU ๋ Œ๋”๋ง, JS ์Šคํฌ๋ฆฝํŒ…, AI ์›”๋“œ ์ƒ์„ฑ๊นŒ์ง€. ์ง€๊ธˆ์€ MatterKitยทSpill ์ž‘์—…์œผ๋กœ ์ž ์‹œ ๋ฉˆ์ถฐ ์žˆ๋‹ค.

Mirrorgen

2026.05 โ€“ ์ง„ํ–‰ ์ค‘

C#์„ Single Source of Truth๋กœ ๋‘๊ณ  ๋กœ์ง๊นŒ์ง€ byte-exactํ•œ TypeScript๋กœ ๋ณ€ํ™˜ํ•˜๋Š” Roslyn ๊ธฐ๋ฐ˜ transpiler. C#๊ณผ ์ƒ์„ฑ๋œ TS๊ฐ€ ๊ฐ™์€ ๊ฐ’์„ ๋‚ด๋Š”์ง€ cross-validation์œผ๋กœ ๊ฒ€์ฆ.

Solo Band Studio

2025.11 โ€“ 2025.12

Meta Quest์—์„œ ํ”ผ์•„๋…ธ, ๋“œ๋Ÿผ, ๋ฒ ์ด์Šค๋ฅผ ์—ฐ์ฃผํ•˜๊ณ  ๋ฃจํ”„ ์Šคํ…Œ์ด์…˜์œผ๋กœ ํ˜ผ์ž ํ•ฉ์ฃผ๋ฅผ ์™„์„ฑํ•˜๋Š” VR ์Œ์•… ์ฐฝ์ž‘ ๋„๊ตฌ. ๋Œ€ํ•™ ์ˆ˜์—… ํ”„๋กœ์ ํŠธ๋กœ AI์™€ ํ•จ๊ป˜ ํ•œ ๋‹ฌ ๋งŒ์— ๋งŒ๋“ค์—ˆ๋‹ค.

Career

Allm (2016โ€“2020)

ํฌ๋ฆฌํ‹ฐ์นด ์˜จ๋ผ์ธ, CAPSULEMON FIGHT!, ๋ฃจ๋‹ˆ์•„ ์›์ •๋Œ€(ํ”„๋กœ๊ทธ๋žจ ๋ฆฌ๋“œ). ํด๋ผ์ด์–ธํŠธ/์„œ๋ฒ„ ํ’€์Šคํƒ.

์ž์„ธํžˆ ๋ณด๊ธฐ
  • ๋ฃจ๋‹ˆ์•„ ์›์ •๋Œ€ โ€” ํ”„๋กœ๊ทธ๋žจ ๋ฆฌ๋“œ. ์„œ๋ฒ„ 5์ข… + ํด๋ผ์ด์–ธํŠธ 2์ข… ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„
  • CAPSULEMON FIGHT! โ€” ํด๋ผ์ด์–ธํŠธ/์„œ๋ฒ„ ๊ฐœ๋ฐœ, PVE ํ™•์žฅ, ๋ผ์ด๋ธŒ ์„œ๋น„์Šค
  • ํฌ๋ฆฌํ‹ฐ์นด ์˜จ๋ผ์ธ โ€” ํด๋ผ์ด์–ธํŠธ/์„œ๋ฒ„ ์ฝ˜ํ…์ธ  ๊ฐœ๋ฐœ, ๋ผ์ด๋ธŒ ์„œ๋น„์Šค

Nexon (2021โ€“2022)

๋ฉ”์ดํ”Œ์Šคํ† ๋ฆฌ ์›”๋“œ โ€” Lua ์Šคํฌ๋ฆฝํŠธ ์—”์ง„, ์—๋””ํ„ฐ, ์ธํ…”๋ฆฌ์„ผ์Šค, API ๋ฆฌ๋“œ.

์ž์„ธํžˆ ๋ณด๊ธฐ
  • ๋ฉ”์ดํ”Œ์Šคํ† ๋ฆฌ ์›”๋“œ(Project MOD)์˜ Lua ์Šคํฌ๋ฆฝํŒ… ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ
  • ์ปค์Šคํ…€ Lua ์—๋””ํ„ฐ + ์ธํ…”๋ฆฌ์„ผ์Šค(์ž๋™์™„์„ฑ, ์ •์  ๋ถ„์„) ๊ฐœ๋ฐœ
  • API ๊ฐœ๋ฐœ ๋ฆฌ๋“œ

Unity Technologies (2022โ€“ํ˜„์žฌ)

Senior Software Engineer. ์—”์ง„ ๊ฐœ๋ฐœ, ์˜คํ”ˆ ์›”๋“œ ํ…Œํฌ ๋ฐ๋ชจ R&D, ๊ฒŒ์ž„์‚ฌ ์ตœ์ ํ™”/์ปจ์„คํŒ….

์ž์„ธํžˆ ๋ณด๊ธฐ
  • ์—”์ง„ ๊ฐœ๋ฐœ โ€” Graphics, DOTS ๋“ฑ ์ฝ”์–ด ์—”์ง„ ๋ฐ ๊ณต์‹ ํŒจํ‚ค์ง€ ๊ธฐ์—ฌ
  • ์˜คํ”ˆ ์›”๋“œ ํ…Œํฌ ๋ฐ๋ชจ โ€” DOTS, Netcode for Entities, World Streaming, CI/CD
  • ํ”„๋กœํŽ˜์…”๋„ ์„œ๋น„์Šค โ€” ๊ตญ๋‚ด์™ธ ๊ฒŒ์ž„์‚ฌ ๋Œ€์ƒ ์ตœ์ ํ™”, ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…, ์ปจ์„คํŒ