๊ทธ๋ƒฅ ์ƒ๊ฐ๋‚˜๋Š”๋Œ€๋กœ ์ ์–ด๋ณด๋Š” ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ


๊ฐ€๋น„์ง€์ปฌ๋ ‰ํ„ฐ ์ดํ•˜ GC๋Š” ๋ฉ”๋ชจ๋ฆฌ ์ž๋™์ˆ˜์ง‘ ์‹œ์Šคํ…œ์ž„.

์ด๋Š” Unity, C#, ์–ธ๋ฆฌ์–ผ ๋“ฑ๋“ฑ์— ์žˆ์Œ (C++ ์€ ์—†๋‹ค ์ข†๊ฐ™๋‹ค)


Unity ๊ธฐ์ค€์œผ๋กœ GC๋ฅผ ์„ค๋ช…ํ•ด๋ณด๊ฒ ๋‹ค.

Unity๊ฐ€ C#๊ธฐ๋ฐ˜์œผ๋กœ ๋Œ์•„๊ฐ„๋‹ค๊ณ  ํ•ด์„œ C#์ด๋ž‘ GC๊ฐ€ ๊ฐ™์€ ์›๋ฆฌ๋กœ ๋Œ์•„๊ฐ€์ง€ ์•Š๋Š”๋‹ค.


GC๊ฐ€ ๋™์ž‘ํ•˜๋Š” ๋ฐฉ์‹์€ ๋‹จ์ˆœํ•˜๋‹ค.

1. ํž™์˜์—ญ์— ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ˆ˜์ง‘ํ•œ๋‹ค.ย 

2. GC ์˜ ์˜์—ญ์ด ๊ฐ€๋“ ์ฐจ๋ฉด ๋ฉ”๋ชจ๋ฆฌ ์ •๋ฆฌ๋ฅผ ์‹œ์ž‘ํ•œ๋‹ค

3. ๋ฉ”๋ชจ๋ฆฌ ์ •๋ฆฌ ํ›„์—๋„ ๊ณต๊ฐ„์ด ๋ถ€์กฑํ•˜๋‹ค๋ฉด GC์˜ ๊ณต๊ฐ„์„ ๋Š˜๋ฆฐ๋‹ค.

์ด ๊ฒƒ์„ ๋ฐ˜๋ณตํ•˜๋Š” ๊ฒŒ GC์ด๋‹ค.


ํ•˜์ง€๋งŒ ์ฝ”๋“œ๋ฅผ ์กธ๋ผ๊ฒŒ ๋Œ€์ถฉ์งœ๋ฉด GC๊ฐ€ ์—ฌ๋Ÿฌ๋ฒˆ ๋ฉ”๋ชจ๋ฆฌ ์ •๋ฆฌ๋ฅผ ์‹œ๋„ํ•˜๊ฒŒ ๋˜๊ณ 

GC๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ์ˆ˜์ง‘์„ ํ•˜๋Š” ๊ณผ์ • ์ž์ฒด๊ฐ€ ์—ฐ์‚ฐ์„ ๋งŽ์ด ๋จน๊ธฐ ๋•Œ๋ฌธ์— ํ”„๋ ˆ์ž„ ๋“œ๋ž์„ ์œ ๋ฐœํ•  ์ˆ˜ ์žˆ๋‹ค.


๊ทธ๋ ‡๋‹ค๋ฉด ์—ฌ๊ธฐ์„œ ์ฃผ์˜ํ•ด์•ผ ํ•  ์ ์ด ๋ฌด์—‡์ธ์ง€๋ฅผ ์•Œ์•„๋ณด์ž.


1. ๋‹จํŽธํ™” ํ˜„์ƒ

GC๋Š” ๋‹จํŽธํ™” ํ˜„์ƒ์ด ๋ฐœ์ƒํ•œ๋‹ค. ์ด๊ฒŒ ๋ฌด์—‡์ด๋ƒ๋ฉด 4byte ๋ฐ์ดํ„ฐ๋ฅผ ํž™์˜์—ญ์— 4๊ฐœ๋ฅผ ์ €์žฅํ–ˆ๋‹ค๊ณ  ํ•ด๋ณด์ž

[1][1][1][1] [1][1][1][1] [1][1][1][1]

์ด๋ ‡๊ฒŒ ์—ฐ์†๋œ ๊ณต๊ฐ„์— ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์ €์žฅ๋œ ์ƒํƒœ์—์„œ ๊ฐ€์šด๋ฐ์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ GC๊ณผ์ •์—์„œ ์ •๋ฆฌํ•œ๋‹ค๋ฉด

[1][1][1][1]ย [0][0][0][0]ย [1][1][1][1]

์ด๋Ÿฐ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‚จ๊ฒŒ ๋œ๋‹ค. ๊ทธ๋Ÿผ ์ € ๋นˆ ๊ณต๊ฐ„์€ 4byte๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋งŒ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.

์ด ํ˜„์ƒ์„ ๋‹จํŽธํ™” ํ˜„์ƒ์ด๋ผ๊ณ  ํ•˜๊ณ , ์ด ๋‹จํŽธํ™” ํ˜„์ƒ์ด ๋งŽ์ด ๋ฐœ์ƒํ• ์ˆ˜๋ก

GC์˜ ๋ฉ”๋ชจ๋ฆฌ์ƒ์— ์—ฌ์œ ๊ณต๊ฐ„์ด ๋งŽ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋นˆ๋ฒˆํ•˜๊ฒŒ GC๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.


๊ทผ๋ฐ C#์€ GCํ•˜๋Š” ๊ณผ์ •์—์„œ ์ € ๋นˆ๊ณต๊ฐ„์„ ์—†์• ์ฃผ๋Š” ๊ฒƒ์œผ๋กœ ์•Œ๊ณ ์žˆ๋‹ค. ์™œ Unity์—๋Š” ์—†์ง€?

์™œ๋ƒํ•˜๋ฉด C#์˜ GC๋Š” .NET์œผ๋กœ ๋Œ์•„๊ฐ€๋Š”๊ฑธ๋กœ ์•Œ๊ณ ์žˆ๋Š”๋ฐ ์™œ Unity๋Š” ๊ทธ๋Ÿฐ๊ฑฐ ์•ˆํ•ด์ฃผ์ง€?


2. ์ˆœํ™˜์ฐธ์กฐ

์ด๊ฒŒ C#์—๋Š” ์œ ํšจํ•œ ๋ง์ธ๋ฐ Unity์—๋„ ์œ ํšจํ•œ์ง€๋Š” ๋ชจ๋ฅด๊ฒ ๋‹ค. ๊ทธ๋Ÿฌ๋‹ˆ ๊ทธ๋ƒฅ ์จ๋ณธ๋‹ค

GC๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ •๋ฆฌํ•˜๋Š” ๊ธฐ์ค€์€ ํ•ด๋‹น ๊ฐ์ฒด์— ์ฐธ์กฐ๊ฐ€ ์žˆ๋А๋ƒ ์ด๋‹ค.

์ฆ‰ ๊ทธ ๋ฉ”๋ชจ๋ฆฌ์— ์ด๋ก ์ ์œผ๋กœ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋ƒ๋ฅผ ๋”ฐ์ง„๋‹ค๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๋‘ ๊ฐ์ฒด๊ฐ€ ์„œ๋กœ๋ฅผ ์ฐธ์กฐํ•˜๊ณ  ์žˆ๋Š” ์ƒํ™ฉ์ด๋ผ๋ฉด?ย 

GC์—์„œ๋Š” ํ•ด๋‹น ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•œ ๊ฒƒ์œผ๋กœ ํŒ๋‹จํ•˜๊ณ  GC์— ์ •๋ฆฌํ•˜์ง€ ์•Š๋Š”๋‹ค.



๊ทธ๋Ÿผ ์กด๋‚˜ GC ์–ด๋–ป๊ฒŒ ์”€?

์กด๋‚˜๊ฒŒ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ž˜ ์“ฐ๋ฉด ๋œ๋‹ค ใ…‡ใ…‡.

๋‹จํŽธํ™” ํ˜„์ƒ์ด ์•ˆ์ƒ๊ธฐ๊ฒŒ ํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅ์— ๊ฐ€๊น๋‹ค.ย 

ํ•˜์ง€๋งŒ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์กด๋‚˜ ์ž˜์จ์„œ ๋‹จํŽธํ™” ํ˜„์ƒ์„ ์ค„์ผ์ˆ˜๋Š” ์žˆ๋‹ค.


ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค๋”๋ผ๋„ ์ผ์ •ํ•œ ๋ฉ”๋ชจ๋ฆฌ์˜ ๊ทœ๊ฒฉ์— ๋งž๊ฒŒ ๋“ค์–ด๊ฐ€๊ฒŒ ๋งŒ๋“ค์–ด์„œ

๋‹จํŽธํ™” ํ˜„์ƒ์œผ๋กœ ๋ฐœ์ƒํ•œ ๋นˆ ๊ณต๊ฐ„์„ ์ตœ๋Œ€ํ•œ์œผ๋กœ ํ™œ์šฉํ•œ๋‹ค๋˜์ง€.


์˜ค๋ธŒ์ ํŠธํด๋ง๊ฐ™์€ ์ตœ์ ํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ†ตํ•ด ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ•ด์ œํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ์žฌํ™œ์šฉ์„ ํ•œ๋‹ค๋˜์ง€


์•„๋‹ˆ๋ฉด GC๊ด€๋ จ๋œ ์ฝ”๋“œ๋ฅผ ์ง์ ‘ ์ž‘์„ฑํ• ์ˆ˜๋„ ์žˆ๋‹ค. ใ…‡ใ…‡






๋ฐ˜๋ฐ•์‹œ ๋‹ˆ๋ง์ด ๋‹ค ๋งž์Œย