๋„คํŠธ์›Œํฌ ์ง€์—ฐ ๋ณด์ƒ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋ฐ”์ผ ์ŠˆํŒ… ๊ฒŒ์ž„์˜ ํƒ„๋„ ๊ณ„์‚ฐ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๊ฐ•ํ™”ํ•œ ๋ฐฉ๋ฒ•

๋„คํŠธ์›Œํฌ ์ง€์—ฐ ๋ณด์ƒ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋ฐ”์ผ ์ŠˆํŒ… ๊ฒŒ์ž„์˜ ํƒ„๋„ ๊ณ„์‚ฐ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๊ฐ•ํ™”ํ•œ ๋ฐฉ๋ฒ•

์•ˆ๋…•ํ•˜์„ธ์š”. ์ €๋Š” Pixonic์˜ ์„œ๋ฒ„ ๊ฐœ๋ฐœ์ž Nikita Brizhak์ž…๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ๋ชจ๋ฐ”์ผ ๋ฉ€ํ‹ฐํ”Œ๋ ˆ์ด ์‹œ ๋ ‰ ๋ณด์ƒ์— ๋Œ€ํ•ด ๋ง์”€๋“œ๋ฆฌ๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.

๋Ÿฌ์‹œ์•„์–ด๋ฅผ ํฌํ•จํ•˜์—ฌ ์„œ๋ฒ„ ์ง€์—ฐ ๋ณด์ƒ์— ๊ด€ํ•œ ๋งŽ์€ ๊ธฐ์‚ฌ๊ฐ€ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ์ˆ ์€ 90๋…„๋Œ€ ํ›„๋ฐ˜๋ถ€ํ„ฐ ๋ฉ€ํ‹ฐํ”Œ๋ ˆ์ด์–ด FPS ์ œ์ž‘์— ์ ๊ทน์ ์œผ๋กœ ์‚ฌ์šฉ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Š” ๋†€๋ผ์šด ์ผ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ด ๋ชจ๋“œ๋ฅผ ์ฒ˜์Œ์œผ๋กœ ์‚ฌ์šฉํ•œ QuakeWorld ๋ชจ๋“œ๋ฅผ ๊ธฐ์–ตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋ฐ”์ผ ๋ฉ€ํ‹ฐํ”Œ๋ ˆ์ด์–ด ์ŠˆํŒ… ๊ฒŒ์ž„์ธ Dino Squad์—์„œ๋„ ์ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ด ๊ธฐ์‚ฌ์—์„œ ๋‚˜์˜ ๋ชฉํ‘œ๋Š” ์ด๋ฏธ ์ž‘์„ฑ๋œ ๋‚ด์šฉ์„ ์ˆ˜์ฒœ ๋ฒˆ ๋ฐ˜๋ณตํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๊ธฐ์ˆ  ์Šคํƒ๊ณผ ํ•ต์‹ฌ ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด ๊ธฐ๋Šฅ์„ ๊ณ ๋ คํ•˜์—ฌ ๊ฒŒ์ž„์—์„œ ์ง€์—ฐ ๋ณด์ƒ์„ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ–ˆ๋Š”์ง€ ์„ค๋ช…ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ์˜ ํ”ผ์งˆ๊ณผ ๊ธฐ์ˆ ์— ๋Œ€ํ•œ ๋ช‡ ๋งˆ๋””.

Dino Squad๋Š” ๋„คํŠธ์›Œํฌ ๋ชจ๋ฐ”์ผ PvP ์ŠˆํŒ… ๊ฒŒ์ž„์ž…๋‹ˆ๋‹ค. ํ”Œ๋ ˆ์ด์–ด๋Š” ๋‹ค์–‘ํ•œ ๋ฌด๊ธฐ๋ฅผ ์žฅ์ฐฉํ•œ ๊ณต๋ฃก์„ ์กฐ์ข…ํ•˜๋ฉฐ 6๋Œ€6 ํŒ€์œผ๋กœ ์„œ๋กœ ์ „ํˆฌ๋ฅผ ํŽผ์นฉ๋‹ˆ๋‹ค.

ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๋ชจ๋‘ Unity๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ์ŠˆํŒ… ๊ฒŒ์ž„์˜ ์•„ํ‚คํ…์ฒ˜๋Š” ๋งค์šฐ ๊ณ ์ „์ ์ž…๋‹ˆ๋‹ค. ์„œ๋ฒ„๋Š” ๊ถŒ์œ„์ฃผ์˜์ ์ด๋ฉฐ ํด๋ผ์ด์–ธํŠธ ์˜ˆ์ธก์€ ํด๋ผ์ด์–ธํŠธ์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜์€ ์‚ฌ๋‚ด ECS๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ๋ชจ๋‘์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ง€์—ฐ ๋ณด์ƒ์— ๋Œ€ํ•ด ์ฒ˜์Œ ๋“ค์–ด๋ณด์‹  ๊ฒฝ์šฐ, ๋ฌธ์ œ์— ๋Œ€ํ•œ ๊ฐ„๋žตํ•œ ์„ค๋ช…์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋ฉ€ํ‹ฐํ”Œ๋ ˆ์ด์–ด FPS ๊ฒŒ์ž„์—์„œ ๊ฒฝ๊ธฐ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์›๊ฒฉ ์„œ๋ฒ„์—์„œ ์‹œ๋ฎฌ๋ ˆ์ด์…˜๋ฉ๋‹ˆ๋‹ค. ํ”Œ๋ ˆ์ด์–ด๋Š” ์ž…๋ ฅ(๋ˆŒ๋ฆฐ ํ‚ค์— ๋Œ€ํ•œ ์ •๋ณด)์„ ์„œ๋ฒ„์— ๋ณด๋‚ด๊ณ  ์ด์— ๋Œ€ํ•œ ์‘๋‹ต์œผ๋กœ ์„œ๋ฒ„๋Š” ์ˆ˜์‹ ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณ ๋ คํ•˜์—ฌ ์—…๋ฐ์ดํŠธ๋œ ๊ฒŒ์ž„ ์ƒํƒœ๋ฅผ ํ”Œ๋ ˆ์ด์–ด์—๊ฒŒ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ์ด ์ƒํ˜ธ ์ž‘์šฉ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉด ์•ž์œผ๋กœ ํ‚ค๋ฅผ ๋ˆ„๋ฅด๋Š” ์ˆœ๊ฐ„๊ณผ ํ”Œ๋ ˆ์ด์–ด ์บ๋ฆญํ„ฐ๊ฐ€ ํ™”๋ฉด์—์„œ ์›€์ง์ด๋Š” ์ˆœ๊ฐ„ ์‚ฌ์ด์˜ ์ง€์—ฐ ์‹œ๊ฐ„์ด ํ•ญ์ƒ ํ•‘๋ณด๋‹ค ์ปค์ง‘๋‹ˆ๋‹ค.

๋กœ์ปฌ ๋„คํŠธ์›Œํฌ์—์„œ๋Š” ์ด ์ง€์—ฐ(์ผ๋ฐ˜์ ์œผ๋กœ ์ž…๋ ฅ ์ง€์—ฐ์ด๋ผ๊ณ  ํ•จ)์ด ๋ˆˆ์— ๋„์ง€ ์•Š์„ ์ˆ˜ ์žˆ์ง€๋งŒ, ์ธํ„ฐ๋„ท์„ ํ†ตํ•ด ํ”Œ๋ ˆ์ดํ•  ๋•Œ๋Š” ์บ๋ฆญํ„ฐ๋ฅผ ์ œ์–ดํ•  ๋•Œ "์–ผ์Œ ์œ„์—์„œ ๋ฏธ๋„๋Ÿฌ์ง€๋Š”" ๋Š๋‚Œ์„ ์ค๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” ํ”Œ๋ ˆ์ด์–ด์˜ ํ•‘์ด 200ms์ธ ๊ฒฝ์šฐ๊ฐ€ ์—ฌ์ „ํžˆ ์šฐ์ˆ˜ํ•œ ์—ฐ๊ฒฐ๋กœ ๊ฐ„์ฃผ๋˜๋Š” ๋ชจ๋ฐ”์ผ ๋„คํŠธ์›Œํฌ์™€ ์ด์ค‘์œผ๋กœ ๊ด€๋ จ๋ฉ๋‹ˆ๋‹ค. ์ข…์ข… ํ•‘์€ 350, 500 ๋˜๋Š” 1000ms์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์ž…๋ ฅ ์ง€์—ฐ์ด ์žˆ๋Š” ๋น ๋ฅธ ์ŠˆํŒ… ๊ฒŒ์ž„์„ ํ”Œ๋ ˆ์ดํ•˜๋Š” ๊ฒƒ์ด ๊ฑฐ์˜ ๋ถˆ๊ฐ€๋Šฅํ•ด์ง‘๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…์€ ํด๋ผ์ด์–ธํŠธ ์ธก ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์˜ˆ์ธก์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ํด๋ผ์ด์–ธํŠธ ์ž์ฒด๋Š” ์„œ๋ฒ„์˜ ์‘๋‹ต์„ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ  ํ”Œ๋ ˆ์ด์–ด ์บ๋ฆญํ„ฐ์— ์ž…๋ ฅ์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‹ต๋ณ€์„ ๋ฐ›์œผ๋ฉด ๋‹จ์ˆœํžˆ ๊ฒฐ๊ณผ๋ฅผ ๋น„๊ตํ•˜๊ณ  ์ƒ๋Œ€์˜ ์œ„์น˜๋ฅผ โ€‹โ€‹์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ํ‚ค๋ฅผ ๋ˆ„๋ฅด๊ณ  ๊ฒฐ๊ณผ๋ฅผ ํ™”๋ฉด์— ํ‘œ์‹œํ•˜๋Š” ๊ฒƒ ์‚ฌ์ด์˜ ์ง€์—ฐ์€ ์ตœ์†Œํ™”๋ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ ๋‰˜์•™์Šค๋ฅผ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ๋Š” ํ•ญ์ƒ ๋งˆ์ง€๋ง‰ ์ž…๋ ฅ์— ๋”ฐ๋ผ ์ž์‹ ์„ ๊ทธ๋ฆฌ๊ณ  ์ ์„ ์„œ๋ฒ„ ๋ฐ์ดํ„ฐ์˜ ์ด์ „ ์ƒํƒœ์— ๋”ฐ๋ผ ๋„คํŠธ์›Œํฌ ์ง€์—ฐ์œผ๋กœ ๊ทธ๋ฆฝ๋‹ˆ๋‹ค. ์ฆ‰, ์ ์„ ํ–ฅํ•ด ์ด์„ ์  ๋•Œ ํ”Œ๋ ˆ์ด์–ด๋Š” ์ž์‹ ์„ ๊ธฐ์ค€์œผ๋กœ ๊ณผ๊ฑฐ์— ๊ทธ๋ฅผ ๋ด…๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ ์˜ˆ์ธก์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ธฐ ์šฐ๋ฆฌ๋Š” ์ด์ „์— ์ผ๋‹ค.

๋”ฐ๋ผ์„œ ํด๋ผ์ด์–ธํŠธ ์˜ˆ์ธก์€ ํ•œ ๊ฐ€์ง€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ๋ฌธ์ œ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๊ณผ๊ฑฐ์— ์ ์ด ์žˆ์—ˆ๋˜ ์ง€์ ์—์„œ ์ด์„ ์˜๋ฉด ์„œ๋ฒ„์—์„œ ๊ฐ™์€ ์ง€์ ์—์„œ ์ด๊ฒฉ์„ ๊ฐ€ํ•  ๋•Œ ์ ์ด ๋” ์ด์ƒ ๊ทธ ์œ„์น˜์— ์—†์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„œ๋ฒ„ ์ง€์—ฐ ๋ณด์ƒ์€ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ๋ฌด๊ธฐ๊ฐ€ ๋ฐœ์‚ฌ๋˜๋ฉด ์„œ๋ฒ„๋Š” ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๋ฐœ์‚ฌ ๋‹น์‹œ ๋กœ์ปฌ์—์„œ ๋ณธ ๊ฒŒ์ž„ ์ƒํƒœ๋ฅผ ๋ณต์›ํ•˜๊ณ  ์‹ค์ œ๋กœ ์ ์„ ๊ณต๊ฒฉํ•  ์ˆ˜ ์žˆ์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๋Œ€๋‹ต์ด "์˜ˆ"์ด๋ฉด ํ•ด๋‹น ์‹œ์ ์— ์ ์ด ๋” ์ด์ƒ ์„œ๋ฒ„์— ์—†๋”๋ผ๋„ ์ ์ค‘ ํšŸ์ˆ˜๊ฐ€ ๊ณ„์‚ฐ๋ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์ง€์‹์„ ๋ฐ”ํƒ•์œผ๋กœ ์šฐ๋ฆฌ๋Š” ๋‹ค์ด๋…ธ์Šค์ฟผ๋“œ์—์„œ ์„œ๋ฒ„ ์ง€์—ฐ ๋ณด์ƒ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์šฐ์„ , ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ณธ ๊ฒƒ์„ ์„œ๋ฒ„์— ๋ณต์›ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ดํ•ดํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ •ํ™•ํžˆ ๋ฌด์—‡์„ ๋ณต์›ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ? ์šฐ๋ฆฌ ๊ฒŒ์ž„์—์„œ ๋ฌด๊ธฐ์™€ ๋Šฅ๋ ฅ์˜ ์ ์ค‘์€ ๋ ˆ์ด์บ์ŠคํŠธ์™€ ์˜ค๋ฒ„๋ ˆ์ด, ์ฆ‰ ์ ์˜ ๋ฌผ๋ฆฌ์  ์ถฉ๋Œ์ฒด์™€์˜ ์ƒํ˜ธ ์ž‘์šฉ์„ ํ†ตํ•ด ๊ณ„์‚ฐ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์šฐ๋ฆฌ๋Š” ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ๋กœ์ปฌ๋กœ "๋ณธ" ์ถฉ๋Œ์ฒด์˜ ์œ„์น˜๋ฅผ โ€‹โ€‹์„œ๋ฒ„์—์„œ ์žฌํ˜„ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹น์‹œ ์šฐ๋ฆฌ๋Š” Unity ๋ฒ„์ „ 2018.x๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ฆฌ API๋Š” ์ •์ ์ด๋ฉฐ ๋ฌผ๋ฆฌ์  ์„ธ๊ณ„๋Š” ๋‹จ์ผ ๋ณต์‚ฌ๋ณธ์— ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์ƒํƒœ๋ฅผ ์ €์žฅํ•œ ๋‹ค์Œ ์ƒ์ž์—์„œ ๋ณต์›ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋ญ ํ• ๊นŒ?

ํ•ด๊ฒฐ์ฑ…์€ ํ‘œ๋ฉด์— ์žˆ์—ˆ๊ณ , ๊ทธ ๋ชจ๋“  ์š”์†Œ๋Š” ์ด๋ฏธ ๋‹ค๋ฅธ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  1. ๊ฐ ํด๋ผ์ด์–ธํŠธ์— ๋Œ€ํ•ด ํ‚ค๋ฅผ ๋ˆŒ๋ €์„ ๋•Œ ์ƒ๋Œ€๋ฅผ ๋ณธ ์‹œ๊ฐ„์„ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด๋ฏธ ์ด ์ •๋ณด๋ฅผ ์ž…๋ ฅ ํŒจํ‚ค์ง€์— ๊ธฐ๋กํ–ˆ์œผ๋ฉฐ ์ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ ์˜ˆ์ธก์„ ์กฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.
  2. ๊ฒŒ์ž„ ์ƒํƒœ์˜ ๊ธฐ๋ก์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ƒ๋Œ€๋ฐฉ(๋”ฐ๋ผ์„œ ์ถฉ๋Œ์ž)์˜ ์œ„์น˜๋ฅผ โ€‹โ€‹โ€‹โ€‹์œ ์ง€ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด๋ฏธ ์„œ๋ฒ„์— ์ƒํƒœ ๊ธฐ๋ก์„ ๊ฐ–๊ณ  ์žˆ์œผ๋ฉฐ ์ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋นŒ๋“œํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ธํƒ€. ์ ์ ˆํ•œ ๋•Œ๋ฅผ ์•Œ๋ฉด ์—ญ์‚ฌ์—์„œ ์˜ฌ๋ฐ”๋ฅธ ์ƒํƒœ๋ฅผ ์‰ฝ๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  3. ์ด์ œ ๊ธฐ๋ก์„ ํ†ตํ•ด ๊ฒŒ์ž„ ์ƒํƒœ๋ฅผ ํ™•๋ณดํ–ˆ์œผ๋ฏ€๋กœ ํ”Œ๋ ˆ์ด์–ด ๋ฐ์ดํ„ฐ๋ฅผ ์‹ค์ œ ์„ธ๊ณ„์˜ ์ƒํƒœ์™€ ๋™๊ธฐํ™”ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์กด ์ถฉ๋Œ์ฒด - ์ด๋™, ๋ˆ„๋ฝ๋œ ์ถฉ๋Œ์ฒด - ์ƒ์„ฑ, ๋ถˆํ•„์š”ํ•œ ์ถฉ๋Œ์ฒด - ํŒŒ๊ดด. ์ด ๋กœ์ง ์—ญ์‹œ ์ด๋ฏธ ์ž‘์„ฑ๋˜์–ด ์—ฌ๋Ÿฌ ECS ์‹œ์Šคํ…œ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ํ•˜๋‚˜์˜ Unity ํ”„๋กœ์„ธ์Šค์—์„œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฒŒ์ž„๋ฃธ์„ ๋ณด์œ ํ•˜๋Š” ๋ฐ ์ด๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฌผ๋ฆฌ์  ์„ธ๊ณ„๋Š” ํ”„๋กœ์„ธ์Šค๋‹น ํ•˜๋‚˜์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฃธ ๊ฐ„์— ์žฌ์‚ฌ์šฉ๋˜์–ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์‹œ๋ฎฌ๋ ˆ์ด์…˜์ด ์‹œ์ž‘๋  ๋•Œ๋งˆ๋‹ค ์šฐ๋ฆฌ๋Š” ๋ฌผ๋ฆฌ์  ์„ธ๊ณ„์˜ ์ƒํƒœ๋ฅผ "์žฌ์„ค์ •"ํ•˜๊ณ  ํ˜„์žฌ ๋ฐฉ์˜ ๋ฐ์ดํ„ฐ๋กœ ๋‹ค์‹œ ์ดˆ๊ธฐํ™”ํ•˜์—ฌ ์˜๋ฆฌํ•œ ํ’€๋ง ์‹œ์Šคํ…œ์„ ํ†ตํ•ด Unity ๊ฒŒ์ž„ ๊ฐ์ฒด๋ฅผ ์ตœ๋Œ€ํ•œ ์žฌ์‚ฌ์šฉํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ๋‚จ์€ ๊ฒƒ์€ ๊ณผ๊ฑฐ์˜ ๊ฒŒ์ž„ ์ƒํƒœ์— ๋Œ€ํ•ด ๋™์ผํ•œ ๋…ผ๋ฆฌ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ๋ฟ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ชจ๋“  ์š”์†Œ๋ฅผ โ€‹โ€‹์ข…ํ•ฉํ•จ์œผ๋กœ์จ ์šฐ๋ฆฌ๋Š” ๋ฌผ๋ฆฌ์  ์„ธ๊ณ„์˜ ์ƒํƒœ๋ฅผ ์ ์ ˆํ•œ ์ˆœ๊ฐ„์œผ๋กœ ๋˜๋Œ๋ฆด ์ˆ˜ ์žˆ๋Š” "ํƒ€์ž„๋จธ์‹ "์„ ๊ฐ–๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ๋Š” ๊ฐ„๋‹จํ•ด์กŒ์Šต๋‹ˆ๋‹ค.

public class TimeMachine : ITimeMachine
{
     //ะ˜ัั‚ะพั€ะธั ะธะณั€ะพะฒั‹ั… ัะพัั‚ะพัะฝะธะน
     private readonly IGameStateHistory _history;

     //ะขะตะบัƒั‰ะตะต ะธะณั€ะพะฒะพะต ัะพัั‚ะพัะฝะธะต ะฝะฐ ัะตั€ะฒะตั€ะต
     private readonly ExecutableSystem[] _systems;

     //ะะฐะฑะพั€ ัะธัั‚ะตะผ, ั€ะฐััั‚ะฐะฒะปััŽั‰ะธั… ะบะพะปะปะฐะนะดะตั€ั‹ ะฒ ั„ะธะทะธั‡ะตัะบะพะผ ะผะธั€ะต 
     //ะฟะพ ะดะฐะฝะฝั‹ะผ ะธะท ะธะณั€ะพะฒะพะณะพ ัะพัั‚ะพัะฝะธั
     private readonly GameState _presentState;

     public TimeMachine(IGameStateHistory history, GameState presentState, ExecutableSystem[] timeInitSystems)
     {
         _history = history; 
         _presentState = presentState;
         _systems = timeInitSystems;  
     }

     public GameState TravelToTime(int tick)
     {
         var pastState = tick == _presentState.Time ? _presentState : _history.Get(tick);
         foreach (var system in _systems)
         {
             system.Execute(pastState);
         }
         return pastState;
     }
}

๋‚จ์€ ๊ฒƒ์€ ์ด ๊ธฐ๊ณ„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒท๊ณผ ๋Šฅ๋ ฅ์„ ์‰ฝ๊ฒŒ ๋ณด์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋‚ด๋Š” ๊ฒƒ๋ฟ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

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

ํ•˜์ง€๋งŒ Dino Squad์—๋Š” ๊ทธ๋Ÿฌํ•œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค! ๊ฒŒ์ž„์— ์žˆ๋Š” ๋Œ€๋ถ€๋ถ„์˜ ๋ฌด๊ธฐ๋Š” ์—ฌ๋Ÿฌ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ํ‹ฑ(๊ฒฝ์šฐ์— ๋”ฐ๋ผ ์ˆ˜์‹ญ ํ‹ฑ) ๋™์•ˆ ๋‚ ์•„๊ฐ€๋Š” ์ˆ˜๋ช…์ด ๊ธด ์ด์•Œ์ธ ๋ฐœ์‚ฌ์ฒด๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ์š”? ๋ช‡ ์‹œ์— ๋น„ํ–‰๊ธฐ๋ฅผ ํƒ€์•ผ ํ• ๊นŒ์š”?

ะ’ ๊ณ ๋Œ€ ๊ธฐ์‚ฌ Half-Life ๋„คํŠธ์›Œํฌ ์Šคํƒ์— ๋Œ€ํ•ด Valve ์ง์›๋“ค๋„ ๊ฐ™์€ ์งˆ๋ฌธ์„ ํ–ˆ๊ณ  ๊ทธ๋“ค์˜ ๋Œ€๋‹ต์€ ๋‹ค์Œ๊ณผ ๊ฐ™์•˜์Šต๋‹ˆ๋‹ค. ๋ฐœ์‚ฌ์ฒด ์ง€์—ฐ ๋ณด์ƒ์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉฐ ์ด๋ฅผ ํ”ผํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ์—๊ฒŒ๋Š” ์ด ์˜ต์…˜์ด ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฐœ์‚ฌ์ฒด ๊ธฐ๋ฐ˜ ๋ฌด๊ธฐ๋Š” ๊ฒŒ์ž„ ๋””์ž์ธ์˜ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” ๋ญ”๊ฐ€๋ฅผ ์ƒ๊ฐํ•ด๋‚ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ช‡ ๊ฐ€์ง€ ๋ธŒ๋ ˆ์ธ์Šคํ† ๋ฐ ํ›„์— ์šฐ๋ฆฌ๋Š” ํšจ๊ณผ๊ฐ€ ์žˆ์„ ๊ฒƒ ๊ฐ™์€ ๋‘ ๊ฐ€์ง€ ์˜ต์…˜์„ ๊ณต์‹ํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค.

1. ๋ฐœ์‚ฌ์ฒด๋ฅผ ์ƒ์„ฑํ•œ ํ”Œ๋ ˆ์ด์–ด์˜ ์‹œ๊ฐ„๊ณผ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜์˜ ๋ชจ๋“  ํ‹ฑ, ๋ชจ๋“  ํ”Œ๋ ˆ์ด์–ด์˜ ๋ชจ๋“  ์ด์•Œ์— ๋Œ€ํ•ด ์šฐ๋ฆฌ๋Š” ๋ฌผ๋ฆฌ์  ์„ธ๊ณ„๋ฅผ ํด๋ผ์ด์–ธํŠธ ์ƒํƒœ๋กœ ๋กค๋ฐฑํ•˜๊ณ  ํ•„์š”ํ•œ ๊ณ„์‚ฐ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ ‘๊ทผ ๋ฐฉ์‹์„ ํ†ตํ•ด ์„œ๋ฒ„์— ๋ถ€ํ•˜๋ฅผ ๋ถ„์‚ฐ์‹œํ‚ค๊ณ  ๋ฐœ์‚ฌ์ฒด์˜ ๋น„ํ–‰ ์‹œ๊ฐ„์„ ์˜ˆ์ธกํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ์—์„œ ์ ์˜ ๋ฐœ์‚ฌ์ฒด๋ฅผ ํฌํ•จํ•œ ๋ชจ๋“  ๋ฐœ์‚ฌ์ฒด๋ฅผ ์˜ˆ์ธกํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์˜ˆ์ธก ๊ฐ€๋Šฅ์„ฑ์ด ํŠนํžˆ ์ค‘์š”ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋„คํŠธ์›Œํฌ ์ง€์—ฐ ๋ณด์ƒ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋ฐ”์ผ ์ŠˆํŒ… ๊ฒŒ์ž„์˜ ํƒ„๋„ ๊ณ„์‚ฐ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๊ฐ•ํ™”ํ•œ ๋ฐฉ๋ฒ•
๊ทธ๋ฆผ์—์„œ ํ‹ฑ 30์˜ ํ”Œ๋ ˆ์ด์–ด๋Š” ์˜ˆ์ƒํ•˜์—ฌ ๋ฏธ์‚ฌ์ผ์„ ๋ฐœ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Š” ์ ์ด ์–ด๋Š ๋ฐฉํ–ฅ์œผ๋กœ ๋‹ฌ๋ฆฌ๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ๋ฏธ์‚ฌ์ผ์˜ ๋Œ€๋žต์ ์ธ ์†๋„๋ฅผ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋กœ์ปฌ์—์„œ ๊ทธ๋Š” 33๋ฒˆ์งธ ํ‹ฑ์—์„œ ๋ชฉํ‘œ๋ฌผ์„ ๋งž์ถ˜ ๊ฒƒ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๋ ‰๋ณด์ƒ ๋•๋ถ„์— ์„œ๋ฒ„์—๋„ ๋‚˜์˜ค๋„ค์š”

2. ์ฒซ ๋ฒˆ์งธ ์˜ต์…˜๊ณผ ๋™์ผํ•˜๊ฒŒ ๋ชจ๋“  ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜์ง€๋งŒ ์ด์•Œ ์‹œ๋ฎฌ๋ ˆ์ด์…˜์˜ XNUMXํ‹ฑ์„ ๊ณ„์‚ฐํ•œ ํ›„ ๋ฉˆ์ถ”์ง€ ์•Š๊ณ  ๋™์ผํ•œ ์„œ๋ฒ„ ํ‹ฑ ๋‚ด์—์„œ ๋น„ํ–‰์„ ๊ณ„์† ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜์—ฌ ์‹œ๊ฐ„์ด ์„œ๋ฒ„์— ๋” ๊ฐ€๊นŒ์›Œ์งˆ ๋•Œ๋งˆ๋‹ค ํ•˜๋‚˜์”ฉ ํ‹ฑํ•˜๊ณ  ์ถฉ๋Œ์ฒด ์œ„์น˜๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋‹ค์Œ ๋‘ ๊ฐ€์ง€ ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ๊นŒ์ง€ ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  • ์ด์•Œ์ด ๋งŒ๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๊ณ„์‚ฐ์ด ๋๋‚ฌ์Œ์„ ์˜๋ฏธํ•˜๋ฉฐ ์‹คํŒจ ๋˜๋Š” ์ ์ค‘์„ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์€ ์ด์ด ๋ฐœ์‚ฌ๋œ ๋™์ผํ•œ ํ‹ฑ์— ์žˆ์Šต๋‹ˆ๋‹ค! ์šฐ๋ฆฌ์—๊ฒŒ ์ด๊ฒƒ์€ ํ”Œ๋Ÿฌ์Šค์ด์ž ๋งˆ์ด๋„ˆ์Šค์˜€์Šต๋‹ˆ๋‹ค. ํ”Œ๋Ÿฌ์Šค - ์ŠˆํŒ… ํ”Œ๋ ˆ์ด์–ด์˜ ๊ฒฝ์šฐ ์ ์ค‘๊ณผ ์ ์˜ ์ฒด๋ ฅ ๊ฐ์†Œ ์‚ฌ์ด์˜ ์ง€์—ฐ์ด ํฌ๊ฒŒ ์ค„์–ด๋“ค์—ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋‹จ์ ์€ ์ƒ๋Œ€๋ฐฉ์ด ํ”Œ๋ ˆ์ด์–ด์—๊ฒŒ ๋ฐœ์‚ฌํ•  ๋•Œ ๋™์ผํ•œ ํšจ๊ณผ๊ฐ€ ๊ด€์ฐฐ๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ ์€ ๋Š๋ฆฐ ๋กœ์ผ“๋งŒ ๋ฐœ์‚ฌํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋ฉฐ ํ”ผํ•ด๋Š” ์ด๋ฏธ ๊ณ„์‚ฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ด์•Œ์ด ์„œ๋ฒ„ ์‹œ๊ฐ„์— ๋„๋‹ฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์‹œ๋ฎฌ๋ ˆ์ด์…˜์€ ์ง€์—ฐ ๋ณด์ƒ ์—†์ด ๋‹ค์Œ ์„œ๋ฒ„ ํ‹ฑ์—์„œ ๊ณ„์†๋ฉ๋‹ˆ๋‹ค. ๋Š๋ฆฐ ๋ฐœ์‚ฌ์ฒด์˜ ๊ฒฝ์šฐ ์ด๋ก ์ ์œผ๋กœ ์ฒซ ๋ฒˆ์งธ ์˜ต์…˜์— ๋น„ํ•ด ๋ฌผ๋ฆฌ ๋กค๋ฐฑ ์ˆ˜๊ฐ€ ์ค„์–ด๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋™์‹œ์— ์‹œ๋ฎฌ๋ ˆ์ด์…˜์˜ ๋ถˆ๊ท ์ผํ•œ ๋กœ๋“œ๊ฐ€ ์ฆ๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์„œ๋ฒ„๊ฐ€ ์œ ํœด ์ƒํƒœ์˜€๊ฑฐ๋‚˜ ํ•œ ์„œ๋ฒ„ ํ‹ฑ์—์„œ ์—ฌ๋Ÿฌ ์ด์•Œ์— ๋Œ€ํ•ด XNUMX๊ฐœ์˜ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ํ‹ฑ์„ ๊ณ„์‚ฐํ–ˆ์Šต๋‹ˆ๋‹ค.

๋„คํŠธ์›Œํฌ ์ง€์—ฐ ๋ณด์ƒ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋ฐ”์ผ ์ŠˆํŒ… ๊ฒŒ์ž„์˜ ํƒ„๋„ ๊ณ„์‚ฐ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๊ฐ•ํ™”ํ•œ ๋ฐฉ๋ฒ•
์ด์ „ ๊ทธ๋ฆผ๊ณผ ๋™์ผํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค์ด์ง€๋งŒ ๋‘ ๋ฒˆ์งธ ๊ตฌ์„ฑํ‘œ์— ๋”ฐ๋ผ ๊ณ„์‚ฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฏธ์‚ฌ์ผ์€ ๋ฐœ์‚ฌ๊ฐ€ ๋ฐœ์ƒํ•œ ๋™์ผํ•œ ํ‹ฑ์—์„œ ์„œ๋ฒ„ ์‹œ๊ฐ„์„ "๋”ฐ๋ผ์žก์•˜๊ณ " ํžˆํŠธ๋Š” ๋‹ค์Œ ํ‹ฑ๋ถ€ํ„ฐ ๊ณ„์‚ฐ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 31๋ฒˆ์งธ ํ‹ฑ์—์„œ๋Š” โ€‹โ€‹์ด ๊ฒฝ์šฐ ์ง€์—ฐ ๋ณด์ƒ์ด ๋” ์ด์ƒ ์ ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

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

์ด์™€ ๋ณ„๋„๋กœ ์„ฑ๋Šฅ ๋ฌธ์ œ๋ฅผ ์ œ๊ธฐํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ชจ๋“  ๊ฒƒ์ด ์†๋„๋ฅผ ๋Šฆ์ถœ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค๋ฉด ์ €๋Š” ๊ทธ๋ ‡๋‹ค๊ณ  ๋Œ€๋‹ตํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. Unity๋Š” ์ถฉ๋Œ์ฒด๋ฅผ ์ด๋™ํ•˜๊ณ  ์ผœ๊ณ  ๋„๋Š” ๋ฐ ์ƒ๋‹นํžˆ ๋Š๋ฆฝ๋‹ˆ๋‹ค. Dino Squad์—์„œ๋Š” "์ตœ์•…์˜" ๊ฒฝ์šฐ ์ „ํˆฌ ์ค‘์— ์ˆ˜๋ฐฑ ๊ฐœ์˜ ๋ฐœ์‚ฌ์ฒด๊ฐ€ ๋™์‹œ์— ์กด์žฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๋ฐœ์‚ฌ์ฒด๋ฅผ ๊ฐœ๋ณ„์ ์œผ๋กœ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•ด ์ถฉ๋Œ๊ธฐ๋ฅผ ์ด๋™ํ•˜๋Š” ๊ฒƒ์€ ๊ฐ๋‹นํ•  ์ˆ˜ ์—†๋Š” ์‚ฌ์น˜์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฌผ๋ฆฌ "๋กค๋ฐฑ" ์ˆ˜๋ฅผ ์ตœ์†Œํ™”ํ•˜๋Š” ๊ฒƒ์ด ์ ˆ๋Œ€์ ์œผ๋กœ ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” ํ”Œ๋ ˆ์ด์–ด์˜ ์‹œ๊ฐ„์„ ๊ธฐ๋กํ•˜๋Š” ๋ณ„๋„์˜ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ECS์— ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์ง€์—ฐ ๋ณด์ƒ์ด ํ•„์š”ํ•œ ๋ชจ๋“  ๊ฐœ์ฒด(ํˆฌ์‚ฌ์ฒด, ๋Šฅ๋ ฅ ๋“ฑ)์— ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์—”ํ„ฐํ‹ฐ ์ฒ˜๋ฆฌ๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ์ง€๊ธˆ๊นŒ์ง€ ์—”ํ„ฐํ‹ฐ๋ฅผ ํด๋Ÿฌ์Šคํ„ฐ๋งํ•˜๊ณ  ํ•จ๊ป˜ ์ฒ˜๋ฆฌํ•˜์—ฌ ๊ฐ ํด๋Ÿฌ์Šคํ„ฐ์— ๋Œ€ํ•ด ๋ฌผ๋ฆฌ์  ์„ธ๊ณ„๋ฅผ ํ•œ ๋ฒˆ์”ฉ ๋กค๋ฐฑํ•ฉ๋‹ˆ๋‹ค.

์ด ๋‹จ๊ณ„์—์„œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์ž‘๋™ํ•˜๋Š” ์‹œ์Šคํ…œ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์†Œ ๋‹จ์ˆœํ™”๋œ ํ˜•ํƒœ์˜ ์ฝ”๋“œ:

public sealed class LagCompensationSystemGroup : ExecutableSystem
{
     //ะœะฐัˆะธะฝะฐ ะฒั€ะตะผะตะฝะธ
     private readonly ITimeMachine _timeMachine;

     //ะะฐะฑะพั€ ัะธัั‚ะตะผ ะปะฐะณะบะพะผะฟะตะฝัะฐั†ะธะธ
     private readonly LagCompensationSystem[] _systems;
     
     //ะะฐัˆะฐ ั€ะตะฐะปะธะทะฐั†ะธั ะบะปะฐัั‚ะตั€ะธะทะฐั‚ะพั€ะฐ
     private readonly TimeTravelMap _travelMap = new TimeTravelMap();

    public LagCompensationSystemGroup(ITimeMachine timeMachine, 
        LagCompensationSystem[] lagCompensationSystems)
     {
         _timeMachine = timeMachine;
         _systems = lagCompensationSystems;
     }

     public override void Execute(GameState gs)
     {
         //ะะฐ ะฒั…ะพะด ะบะปะฐัั‚ะตั€ะธะทะฐั‚ะพั€ ะฟั€ะธะฝะธะผะฐะตั‚ ั‚ะตะบัƒั‰ะตะต ะธะณั€ะพะฒะพะต ัะพัั‚ะพัะฝะธะต,
         //ะฐ ะฝะฐ ะฒั‹ั…ะพะด ะฒั‹ะดะฐะตั‚ ะฝะฐะฑะพั€ ยซะบะพั€ะทะธะฝยป. ะ’ ะบะฐะถะดะพะน ะบะพั€ะทะธะฝะต ะปะตะถะฐั‚ ัะฝั‚ะธั‚ะธ,
         //ะบะพั‚ะพั€ั‹ะผ ะดะปั ะปะฐะณะบะพะผะฟะตะฝัะฐั†ะธะธ ะฝัƒะถะฝะพ ะพะดะฝะพ ะธ ั‚ะพ ะถะต ะฒั€ะตะผั ะธะท ะธัั‚ะพั€ะธะธ.
         var buckets = _travelMap.RefillBuckets(gs);

         for (int bucketIndex = 0; bucketIndex < buckets.Count; bucketIndex++)
         {
             ProcessBucket(gs, buckets[bucketIndex]);
         }

         //ะ’ ะบะพะฝั†ะต ะปะฐะณะบะพะผะฟะตะฝัะฐั†ะธะธ ะผั‹ ะฒะพััั‚ะฐะฝะฐะฒะปะธะฒะฐะตะผ ั„ะธะทะธั‡ะตัะบะธะน ะผะธั€ 
         //ะฒ ะธัั…ะพะดะฝะพะต ัะพัั‚ะพัะฝะธะต
         _timeMachine.TravelToTime(gs.Time);
     }

     private void ProcessBucket(GameState presentState, TimeTravelMap.Bucket bucket)
     {
         //ะžั‚ะบะฐั‚ั‹ะฒะฐะตะผ ะฒั€ะตะผั ะพะดะธะฝ ั€ะฐะท ะดะปั ะบะฐะถะดะพะน ะบะพั€ะทะธะฝั‹
         var pastState = _timeMachine.TravelToTime(bucket.Time);

         foreach (var system in _systems)
         {
               system.PastState = pastState;
               system.PresentState = presentState;

               foreach (var entity in bucket)
               {
                   system.Execute(entity);
               }
          }
     }
}

๋‚จ์€ ๊ฒƒ์€ ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ๋ฟ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

1. ์‹œ๊ฐ„์ƒ ์ตœ๋Œ€ ์ด๋™ ๊ฑฐ๋ฆฌ๋ฅผ ์–ผ๋งˆ๋‚˜ ์ œํ•œํ•ด์•ผ ํ•˜๋Š”์ง€ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.

์—ด์•…ํ•œ ๋ชจ๋ฐ”์ผ ๋„คํŠธ์›Œํฌ ์กฐ๊ฑด์—์„œ ๊ฒŒ์ž„์— ์ตœ๋Œ€ํ•œ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์ค‘์š”ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์Šคํ† ๋ฆฌ๋ฅผ 30ํ‹ฑ(ํ‹ฑ ์†๋„ 20Hz)์œผ๋กœ ์ œํ•œํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํ”Œ๋ ˆ์ด์–ด๋Š” ๋งค์šฐ ๋†’์€ ํ•‘์—์„œ๋„ ์ƒ๋Œ€๋ฅผ ๊ณต๊ฒฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2. ์ œ ์‹œ๊ฐ„์— ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌผ์ฒด์™€ ์ด๋™ํ•  ์ˆ˜ ์—†๋Š” ๋ฌผ์ฒด๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

๋ฌผ๋ก  ์šฐ๋ฆฌ๋Š” ์ƒ๋Œ€๋ฐฉ์„ ์›€์ง์ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์˜ˆ๋ฅผ ๋“ค์–ด ์„ค์น˜ ๊ฐ€๋Šฅํ•œ ์—๋„ˆ์ง€ ์‰ด๋“œ๋Š” ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜จ๋ผ์ธ ์ŠˆํŒ… ๊ฒŒ์ž„์—์„œ ํ”ํžˆ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด ๋ฐฉ์–ด ๋Šฅ๋ ฅ์— ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋‘๋Š” ๊ฒƒ์ด ๋” ๋‚ซ๋‹ค๊ณ  ํŒ๋‹จํ–ˆ์Šต๋‹ˆ๋‹ค. ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ํ˜„์žฌ์— ์ด๋ฏธ ๋ฐฉํŒจ๋ฅผ ๋ฐฐ์น˜ํ•œ ๊ฒฝ์šฐ ๊ณผ๊ฑฐ์˜ ์ง€์—ฐ ๋ณด์ƒ ์ด์•Œ์ด ์ด๋ฅผ ํ†ต๊ณผํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค.

3. ๊ณต๋ฃก์˜ ๋Šฅ๋ ฅ(๋ฌผ๊ธฐ, ๊ผฌ๋ฆฌ์น˜๊ธฐ ๋“ฑ)์— ๋Œ€ํ•œ ๋ณด์ƒ์ด ํ•„์š”ํ•œ์ง€ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ๊ฒƒ์ด ๋ฌด์—‡์ธ์ง€ ๊ฒฐ์ •ํ•˜๊ณ  ์ด์•Œ๊ณผ ๋™์ผํ•œ ๊ทœ์น™์— ๋”ฐ๋ผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

4. ์ง€์—ฐ ๋ณด์ƒ์ด ์ˆ˜ํ–‰๋˜๋Š” ํ”Œ๋ ˆ์ด์–ด์˜ ์ถฉ๋Œ์ฒด๋ฅผ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ• ์ง€ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ์ข‹์€ ๋ฐฉ๋ฒ•์œผ๋กœ, ๊ทธ๋“ค์˜ ์œ„์น˜๋Š” ๊ณผ๊ฑฐ๋กœ ์ด๋™ํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ํ”Œ๋ ˆ์ด์–ด๋Š” ์ž์‹ ์ด ํ˜„์žฌ ์„œ๋ฒ„์— ์žˆ๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ์‹œ๊ฐ„์— ์ž์‹ ์„ ๋ณผ ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ŠˆํŒ… ํ”Œ๋ ˆ์ด์–ด์˜ ์ถฉ๋Œ์ฒด๋„ ๋กค๋ฐฑํ•˜๋Š”๋ฐ, ์—ฌ๊ธฐ์—๋Š” ๋ช‡ ๊ฐ€์ง€ ์ด์œ ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

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

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

์„ธ ๋ฒˆ์งธ๋กœ, ๋ ‰ ๋ณด์ƒ์ด ์‹œ์ž‘๋˜๊ธฐ ์ „๋ถ€ํ„ฐ ECS์—์„œ ์–ป์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ณต๋ฃก ๋ฌด๊ธฐ์˜ ์œ„์น˜๋‚˜ ๋Šฅ๋ ฅ ์ ์šฉ ์ง€์ ์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.

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

๋„คํŠธ์›Œํฌ ๋Œ€๊ธฐ ์‹œ๊ฐ„์€ ๋‹จ์ˆœํžˆ ์ œ๊ฑฐํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ๋งˆ์Šคํ‚น๋งŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์œ„์žฅ ๋ฐฉ๋ฒ•๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์„œ๋ฒ„ ์ง€์—ฐ ๋ณด์ƒ์—๋„ ์žฅ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ด์— ๋งž์€ ํ”Œ๋ ˆ์ด์–ด๋ฅผ ํฌ์ƒ์‹œํ‚ค๋ฉด์„œ ์ด์„ ์˜๋Š” ํ”Œ๋ ˆ์ด์–ด์˜ ๊ฒŒ์ž„ ๊ฒฝํ—˜์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Dino Squad์˜ ๊ฒฝ์šฐ ์—ฌ๊ธฐ์„œ ์„ ํƒ์€ ๋ถ„๋ช…ํ–ˆ์Šต๋‹ˆ๋‹ค.

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

2019 ๋ฒ„์ „(ํ˜น์€ ์กฐ๊ธˆ ๋” ์ด์ „ ๋ฒ„์ „)์—์„œ Unity๋Š” ๋…๋ฆฝ์ ์ธ ๋ฌผ๋ฆฌ์  ์žฅ๋ฉด์— ๋Œ€ํ•œ ์™„์ „ํ•œ ์ง€์›์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋ชจ๋“  ๋ฐฉ์— ๊ณตํ†ต๋œ ๋ฌผ๋ฆฌ์  ์„ธ๊ณ„๋ฅผ ๋น ๋ฅด๊ฒŒ ์ œ๊ฑฐํ•˜๊ณ  ์‹ถ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์—…๋ฐ์ดํŠธ ์งํ›„์— ์„œ๋ฒ„์— ์ด๋ฅผ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ๊ฐ ๊ฒŒ์ž„๋ฃธ์— ๊ณ ์œ ํ•œ ๋ฌผ๋ฆฌ์  ์žฅ๋ฉด์„ ์ œ๊ณตํ•˜์—ฌ ์‹œ๋ฎฌ๋ ˆ์ด์…˜์„ ๊ณ„์‚ฐํ•˜๊ธฐ ์ „์— ์ธ์ ‘ํ•œ ๋ฐฉ์˜ ๋ฐ์ดํ„ฐ์—์„œ ์žฅ๋ฉด์„ "์‚ญ์ œ"ํ•  ํ•„์š”๋ฅผ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฒซ์งธ, ์ƒ์‚ฐ์„ฑ์ด ํฌ๊ฒŒ ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‘˜์งธ, ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์ƒˆ๋กœ์šด ๊ฒŒ์ž„ ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ ์žฅ๋ฉด ์ •๋ฆฌ ์ฝ”๋“œ์—์„œ ์˜ค๋ฅ˜๋ฅผ ๋ฒ”ํ•˜๋ฉด ๋ฐœ์ƒํ•˜๋Š” ๋ชจ๋“  ์ข…๋ฅ˜์˜ ๋ฒ„๊ทธ๋ฅผ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์˜ค๋ฅ˜๋Š” ๋””๋ฒ„๊ทธํ•˜๊ธฐ ์–ด๋ ค์› ์œผ๋ฉฐ ํ•œ ๋ฐฉ์˜ ์žฅ๋ฉด์— ์žˆ๋Š” ๋ฌผ๋ฆฌ์  ๊ฐ์ฒด์˜ ์ƒํƒœ๊ฐ€ ๋‹ค๋ฅธ ๋ฐฉ์œผ๋กœ "ํ๋ฅด๋Š”" ๊ฒฐ๊ณผ๋ฅผ ๋‚ณ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•˜์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ์šฐ๋ฆฌ๋Š” ๋ฌผ๋ฆฌ์  ์žฅ๋ฉด์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌผ๋ฆฌ์  ์„ธ๊ณ„์˜ ์—ญ์‚ฌ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š”์ง€์— ๋Œ€ํ•ด ๋ช‡ ๊ฐ€์ง€ ์—ฐ๊ตฌ๋ฅผ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์กฐ๊ฑด๋ถ€๋กœ ๊ฐ ๋ฐฉ์— ํ•˜๋‚˜์˜ ์žฅ๋ฉด์ด ์•„๋‹Œ 30๊ฐœ์˜ ์žฅ๋ฉด์„ ํ• ๋‹นํ•˜๊ณ , ์ด๋ฅผ ์ˆœํ™˜ ๋ฒ„ํผ๋กœ ๋งŒ๋“ค์–ด ์Šคํ† ๋ฆฌ๋ฅผ ์ €์žฅํ•œ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ด ์˜ต์…˜์€ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ํŒ๋ช…๋˜์—ˆ์ง€๋งŒ ๊ตฌํ˜„ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ƒ์‚ฐ์„ฑ์ด ํฌ๊ฒŒ ํ–ฅ์ƒ๋˜์ง€๋Š” ์•Š์•˜์ง€๋งŒ ๋‹ค์†Œ ์œ„ํ—˜ํ•œ ๋ณ€๊ฒฝ์ด ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋„ˆ๋ฌด ๋งŽ์€ ์žฅ๋ฉด์„ ์žฅ์‹œ๊ฐ„ ์ž‘์—…ํ•˜๋ฉด์„œ ์„œ๋ฒ„๊ฐ€ ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ• ์ง€ ์˜ˆ์ธกํ•˜๊ธฐ ์–ด๋ ค์› ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์šฐ๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ทœ์น™์„ ๋”ฐ๋ž์Šต๋‹ˆ๋‹ค.ํŒŒ์‚ฐํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด ๊ณ ์น˜์ง€ ๋งˆ๋ผ.".

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€