์•ˆ๋…•ํ•˜์„ธ์š”!


์ •๋ง ์˜ค๋žœ๋งŒ์— ๊ฐœ๋ฐœ์ผ์ง€๋ฅผ ์“ฐ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.


๋งค๋ฒˆ ์จ์•ผ๊ฒ ๋‹ค ์ƒ๊ฐ๋งŒ ํ•˜๊ณ  ๋ฏธ๋ฃจ๋‹ค๊ฐ€ ๊ธ€์„ ์•ˆ ์“ฐ๊ฒŒ ๋˜๋„ค์š”..




์ด๋ฒˆ์—๋Š” Hot-Reload์— ๋Œ€ํ•ด ์†Œ๊ฐœํ•ด๋ณด๋ ค ๊ธ€์„ ์”๋‹ˆ๋‹ค.



Hot-Reload๋Š” ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ–ˆ์„ ๋•Œ, ์ด๋ฅผ ๋Ÿฐํƒ€์ž„์— ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฐ˜์˜ํ•˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.


์œ ๋‹ˆํ‹ฐ ์—”์ง„์˜ ๊ฒฝ์šฐ, ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๋ฉด ์ฝ”๋“œ ์ „์ฒด๋ฅผ ๋‹ค์‹œ ์ปดํŒŒ์ผํ•ด์•ผ ํ•˜๊ณ  ์ผ๋ฐ˜์ ์œผ๋กœ ์—๋””ํ„ฐ ๋ชจ๋“œ๋กœ ๋Œ์•„์™”๋‹ค๊ฐ€ ๋‹ค์‹œ ํ”Œ๋ ˆ์ด ํ•˜๋Š”๋ฐ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.



์ €ํฌ ๊ฒŒ์ž„์˜ ๊ฒฝ์šฐ AI๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ์ด๋Ÿฌํ•œ ์†Œ์Šค์ฝ”๋“œ ์ˆ˜์ • ๋ฐ ์ ์šฉ์„ ๋ฐ˜๋ณตํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•˜๋Š”๋ฐ, ๊ทธ ๋•Œ์˜ ์ž‘์—… ํ๋ฆ„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์•˜์Šต๋‹ˆ๋‹ค.


ย  [์†Œ์Šค ์ฝ”๋“œ ์ˆ˜์ •] -> [ํ”Œ๋ ˆ์ด ์ข…๋ฃŒ] -> [์ปดํŒŒ์ผ] -> [ํ”Œ๋ ˆ์ด ์‹œ์ž‘] -> [์ˆ˜์ •ํ•˜๊ณ  ์‹ถ์€ ์š”์†Œ ๋ฐœ๊ฒฌ] -> ๋ฐ˜๋ณต


์—ฌ๊ธฐ์„œ ํ•ซ-๋ฆฌ๋กœ๋”ฉ ๊ธฐ๋Šฅ์„ ์ด์šฉํ•˜๋ฉด


ย  [์†Œ์Šค ์ฝ”๋“œ ์ˆ˜์ •] -> [ํ™•์ธ] -> ๋ฐ˜๋ณต

ย 

์ด๋ ‡๊ฒŒ ์ž‘์—… ํ๋ฆ„์„ ๋‹จ์ถ•์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.



25b2c434e0de37a76aabd7a61dc031382c868e5a5244e3df9463c1711e6c3a9e7bffa3


๋ณดํ†ต ์ด๋Ÿฐ ๊ธฐ๋Šฅ์€ ๋ฃจ์•„๊ฐ™์€ ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด๋ฅผ ํ†ตํ•ด ๊ตฌํ˜„ํ•˜์ง€๋งŒ ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ํ•ด์•ผ ํ•˜๋Š” ์ž‘์—…๋“ค์ด ๋ฒˆ๊ฑฐ๋กญ๊ณ , ์„ฑ๋Šฅ ๋ฌธ์ œ ๋“ฑ์˜ ์ด์Šˆ๋„ ์ƒ๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


ํ•˜์ง€๋งŒ ํ•ซ-๋ฆฌ๋กœ๋”ฉ์€ ์Šคํฌ๋ฆฝํŠธ์–ธ์–ด์™€ ์œ ์‚ฌํ•œ ๋น ๋ฅธ ๋ฐ˜๋ณต์„ ๋™์ผํ•œ ์–ธ์–ด๋กœ ํ•  ์ˆ˜ ์žˆ๊ณ , API๋ฅผ ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๊ฑฐ์ณ์•ผ ํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์šด ์ž‘์—…๋“ค์ด ์ƒ๋žต๋œ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.



์ด๋ฅผ ์œ„ํ•ด ์•„๋ž˜ ์—์…‹์„ ๊ตฌ์ž…ํ•ด ์ˆ˜์ •ํ•˜์—ฌ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.


https://assetstore.unity.com/packages/tools/integration/roslyn-c-runtime-compiler-142753


์›๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.


1. ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๊ฐ์‹œํ•˜๋‹ค๊ฐ€ ๋ณ€ํ™”๋ฅผ ๊ฐ์ง€ํ•œ๋‹ค. (FileSystemWatcher ์ด์šฉ)

2. ๊ทธ ํŒŒ์ผ๋งŒ ๋‹ค์‹œ ์ปดํŒŒ์ผํ•œ๋‹ค. (Microsoft.CodeAnalysis.CSharp ๊ธฐ๋Šฅ ์ด์šฉ)

3. ์›๋ž˜ ์žˆ๋˜ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์ƒˆ ๋ฒ„์ „์œผ๋กœ ๊ต์ฒดํ•ด์ค€๋‹ค. (Hot-Reload)


๋Ÿฐํƒ€์ž„์—์„œ ์ปดํŒŒ์ผ์„ ํ•˜๋ฉด ์–ด์ฉ” ์ˆ˜ ์—†์ด ์—ญ์ฐธ์กฐ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ์ฝ”๋“œ๋ฅผ Hot-Reload ํ•˜๊ธฐ๋Š” ํž˜๋“ญ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด๋ฅผ ์“ฐ๋Š” ๋А๋‚Œ์œผ๋กœ ์ž์ฃผ ํ…Œ์ŠคํŠธํ•˜๋ฉฐ ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ๋กœ์ง์˜ ์ผ๋ถ€๋ถ„์„ ๋น ๋ฅด๊ฒŒ ๊ฐœ๋ฐœํ•˜๋Š”๋ฐ ๋งŽ์€ ๋„์›€์ด ๋์Šต๋‹ˆ๋‹ค.


19bcc32dd4c73db36bf1dca511f11a39d48019bdc1f79b08b3



๊ทธ๋ฆฌ๊ณ  ์ด๋ ‡๊ฒŒ ๋ฐ”๋€ ์‹œ์Šคํ…œ์—์„œ ์ž‘์—…ํ•  ๋•Œ, ๊ณต๊ฒฉ ์†๋„๋‚˜ ์ด๋™ ์‹œ๊ฐ„๊ฐ™์€ ์„ธ์„ธํ•œ ๊ฐ’๋“ค์„ ํ”„๋ฆฌํŽฉ ํ•„๋“œ์— ์ €์žฅํ•˜์ง€ ์•Š๊ณ , ์†Œ์Šค ์ฝ”๋“œ์— ํ•˜๋“œ ์ฝ”๋”ฉํ•˜์˜€์Šต๋‹ˆ๋‹ค.


Hot-Reload ๊ธฐ๋Šฅ์œผ๋กœ ๋‹ค์‹œ ์ปดํŒŒ์ผํ•˜๋Š”๊ฒŒ ์˜คํžˆ๋ ค ๊ฐ’๋“ค์„ ๋” ๋น ๋ฅด๊ฒŒ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์—ˆ๊ณ , ํ•„๋“œ ๋ณ€์ˆ˜๋“ค์ด ๋งŽ์•„์ง€๋ฉด ๊ฒฐ๊ตญ ๊ฐ ๊ฐ’๋“ค์ด ์–ด๋””์— ์“ฐ์ด๋Š”์ง€ ์•Œ๊ธฐ ํž˜๋“ค๊ฒŒ ๋˜์–ด ๊ฒฐ๊ตญ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ์ฝ๊ฒŒ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.



์ฝ์–ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!



[์‹œ๋ฆฌ์ฆˆ] Frostory ๊ฐœ๋ฐœ์ผ์ง€
ยท [๊ฒŒ์ž„ ์†Œ๊ฐœ ๊ฒธ ์ผ์ง€] Frostory - 1 [์›€์งค์šฉ๋Ÿ‰์ฃผ์˜]
ยท [๊ฒŒ์ž„ ์†Œ๊ฐœ ๊ฒธ ์ผ์ง€] Frostory - 2 [์›€์งค์šฉ๋Ÿ‰์ฃผ์˜]
ยท [๊ฒŒ์ž„ ์†Œ๊ฐœ ๊ฒธ ์ผ์ง€] Frostory - 3
ยท [๊ฐœ๋ฐœ ์ผ์ง€] Frostory - 4
ยท [๊ฐœ๋ฐœ ์ผ์ง€] Frostory - 5 [์›€์งค์šฉ๋Ÿ‰์ฃผ์˜]
ยท [๊ฐœ๋ฐœ ์ผ์ง€] Frostory - ๋ธŒ๊ธˆ์†Œ๊ฐœ
ยท [๊ฐœ๋ฐœ ์ผ์ง€] Frostory - 7 ์Šคํ”„๋ผ์ดํŠธ ์ˆœ์„œ ์ฒ˜๋ฆฌ
ยท [๊ฐœ๋ฐœ ์ผ์ง€] Frostory - 8 ๋ ˆ๋ฒจ ์—๋””ํŒ… ํˆด
ยท [๊ฐœ๋ฐœ ์ผ์ง€] Frostory - 9 ๋Œ€ํ™” ์‹œ์Šคํ…œ
ยท Frostory - 10 ๊ทธ๋ž˜ํ”ฝ ๋ฆฌ์†Œ์Šค ์ œ์ž‘ ๊ณผ์ •
ยท Frostory - 11 ๋ ˆ๋ฒจ ํ”„๋กœํ† ํƒ€์ž… ์˜์ƒ
ยท Frostory - 12 ์ง€ํ˜• ์‹œ์Šคํ…œ
ยท Frostory - 13 ๋ฒ„๋ ค์ง„ ๋ ˆ๋ฒจ๋“ค
ยท Frostory - 14 ๋ฌด๊ธฐ ์‹œ์Šคํ…œ
ยท Frostory ๋ฃฌ ์‹œ์Šคํ…œ
ยท Frostory ๋ชฌ์Šคํ„ฐ ์ œ์ž‘๊ณผ์ •
ยท Frostory ์ƒ์กด์‹ ๊ณ 
ยท Frostory ๋ชจ๋ฐ”์ผ ์ตœ์ ํ™” ์‚ฝ์งˆ๊ธฐ
ยท Frostory ํŠน์ˆ˜ํšจ๊ณผ ๋ฐœ์ „๊ณผ์ •
ยท Frostory ํŠธ๋ฆฌ๊ฑฐ ์‹œ์Šคํ…œ
ยท Frostory ํ”ฝ์…€ ํผํŽ™ํŠธ ์„ธํŒ…
ยท Frostory BIC์ „์‹œ ํ›„๊ธฐ ๋ฐ ๋ฐ๋ชจ ๊ณต๊ฐœ
ยท Frostory - ๋กœ๊ทธ ๋ทฐ์–ด
ยท Frostory ๋กœํ”„
ยท Frostory ๊ฑฐ๋ฏธ์ค„ ์ œ์ž‘ ๊ณผ์ •