[TIL] 250801

๊น€์„ธํฌยท2025๋…„ 8์›” 1์ผ

โœ๏ธToday I Learned

๐Ÿ“… 2025-08-01

  • CS - ์ปดํ“จํ„ฐ ๋ฉ”๋ชจ๋ฆฌ ๊ณ„์ธต๊ตฌ์กฐ
  • ํŒ€ํ”Œ - BTTask๋กœ ๊ณต๊ฒฉ๋ชจ์…˜+๊ณต๊ฒฉ ๋™์‹œ ์‹คํ–‰์‹œํ‚ค๊ธฐ

CS - ์ปดํ“จํ„ฐ ๋ฉ”๋ชจ๋ฆฌ ๊ณ„์ธต๊ตฌ์กฐ

์ปดํ“จํ„ฐ๋Š” ๊ฐ๊ฐ ํŠน์ง•์ด ์žˆ๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ์—ฌ๋Ÿฌ ์ข…๋ฅ˜์˜ ๊ธฐ์–ต์žฅ์น˜๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์—ฌ ์ตœ์ ์˜ ํšจ์œจ์„ ๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

๋ฉ”๋ชจ๋ฆฌ ์ข…๋ฅ˜

  1. ๋ ˆ์ง€์Šคํ„ฐ
    ๊ฐ€์žฅ ๋น ๋ฅธ ๋ฉ”๋ชจ๋ฆฌ. CPU๊ฐ€ ์—ฐ์‚ฐํ•œ ๊ณ„์‚ฐ ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•œ๋‹ค.
    ์šฉ๋Ÿ‰์ด ๋ช‡ ๋ฐ”์ดํŠธ๋งŒ ์ €์žฅํ•  ์ˆ˜ ์žˆ์„ ์ •๋„๋กœ ๋งค์šฐ ์ ์–ด ํฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์—†๋‹ค.
  2. ์บ์‹œ
    ๋ ˆ์ง€์Šคํ„ฐ ๋‹ค์Œ ๋น ๋ฅธ ๋ฉ”๋ชจ๋ฆฌ. CPU ์ฝ”์–ด์™€์˜ ๊ฑฐ๋ฆฌ์— ๋”ฐ๋ผ L1, L2, L3์บ์‹œ ๋“ฑ์œผ๋กœ ๋‚˜๋‰œ๋‹ค.
    ๋ณดํ†ต SRAM์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์œผ๋ฉฐ ๋ ˆ๋ฒจ์ด ๋†’์„์ˆ˜๋ก ์šฉ๋Ÿ‰์ด ํฌ์ง€๋งŒ CPU์ฝ”์–ด์™€ ๊ฑฐ๋ฆฌ๊ฐ€ ๋ฉ€์–ด ๊ทธ๋งŒํผ ๋ ˆ์ดํ„ด์‹œ๊ฐ€ ๋Š˜์–ด๋‚˜ ์†๋„๊ฐ€ ๋А๋ฆฌ๋‹ค.
    ์ตœํ•˜์œ„ ๋ ˆ๋ฒจ ์บ์‹œ๋Š” LLC(Last Level Cache)๋ผ๊ณ ๋„ ๋ถ€๋ฅธ๋‹ค.
    L1 ์บ์‹œ๋Š” ๋ช…๋ น์–ด ์บ์‹œ์™€ ๋ฐ์ดํ„ฐ ์บ์‹œ๋กœ ๋‚˜๋‰œ๋‹ค.
    ๋ณดํ†ต ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์ œ์–ดํ•  ์ˆ˜ ์—†๊ณ  CPU์˜ ๋ฉ”๋ชจ๋ฆฌ ์ปจํŠธ๋กค๋Ÿฌ์— ์˜ํ•ด ์ œ์–ด๋œ๋‹ค.
    CPU๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•  ๋•Œ ๋จผ์ € ์บ์‹œ์—์„œ ๊ฐ€์ ธ์˜ค๊ฒŒ ๋˜๋ฉฐ ์ด ๋ฐ์ดํ„ฐ๊ฐ€ ์บ์‹œ ๋ฉ”๋ชจ๋ฆฌ์— ์žˆ์–ด ๋ฐ”๋กœ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ๋ฅผ Cache Hit์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ์บ์‹œ์— ์—†์–ด ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ง์ ‘ ๊ฐ€์ ธ์™€์•ผ ํ•  ๊ฒฝ์šฐ Cache Miss์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.
  3. RAM
    CPU๋‚˜ ๋ฉ”์ธ๋ณด๋“œ์™€ ๋ถ„๋ฆฌ๋˜์–ด์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ ์ค‘ ์ตœ์ƒ์œ„ ๋ฉ”๋ชจ๋ฆฌ์ด์ž ํ”„๋กœ๊ทธ๋žจ์„ ์ง์ ‘ ๊ตฌ๋™ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์ฃผ ๊ธฐ์–ต ์žฅ์น˜์˜ ์ตœํ•˜์œ„ ๋ฉ”๋ชจ๋ฆฌ์ด๋‹ค. CPU์™€ ์บ์‹œ์— ๋น„ํ•˜๋ฉด ํ›จ์”ฌ ๋А๋ฆฌ์ง€๋งŒ HDD, SSD์— ๋น„ํ•ด ํ›จ์”ฌ ๋น ๋ฅด๋‹ค. ์ฃผ๋กœ DRAM์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. SRAM์ด ๋น ๋ฅด์ง€๋งŒ ๋ฉด์ ์„ ํฌ๊ฒŒ ์ฐจ์ง€ํ•˜๊ณ  ๋น„์‹ธ๊ณ  ๋Œ€์šฉ๋Ÿ‰์œผ๋กœ ๋งŒ๋“ค๊ธฐ ์–ด๋ ค์›Œ์„œ ๋Œ€์ฒด๋˜์—ˆ๋‹ค.
    ํ˜„์žฌ ์‚ฌ์šฉ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์ด๋‚˜ ๋ช…๋ น๋งŒ์„ ์ž„์‹œ๋กœ ์ €์žฅํ•œ๋‹ค.
  4. SSD, HDD
    ํ”„๋กœ๊ทธ๋žจ์ด ๊ตฌ๋™๋  ๋•Œ ์ง์ ‘ ์“ฐ์ด์ง€ ์•Š๋Š” ๋ณด์กฐ ๊ธฐ์–ต์žฅ์น˜.
    ๋ฐ์ดํ„ฐ ์˜๊ตฌ ์ €์žฅํ•˜๋Š” ๋น„ํœ˜๋ฐœ์„ฑ ๋Œ€์šฉ๋Ÿ‰ ๊ธฐ์–ต์žฅ์น˜์ด๋‹ค.

์ง€์—ญ ์ฐธ์กฐ์„ฑ

์ž์ฃผ ์“ฐ๋Š” ์ •๋ณด๋งŒ ๋น ๋ฅธ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ ค๋†“๋Š”๋‹ค. ํ”„๋กœ๊ทธ๋žจ์ด ์ผ๋ถ€๋ถ„๋งŒ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ํ˜„์ƒ

์‹œ๊ฐ„์  ์ง€์—ฐ์„ฑ: ์ตœ๊ทผ์— ์ ‘๊ทผ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฐ€๊นŒ์šด ๋ฏธ๋ž˜์— ๋˜ ํ•œ๋ฒˆ ์‚ฌ์šฉ๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค.
๊ณต๊ฐ„์  ์ง€์—ฐ์„ฑ: ์ตœ๊ทผ์— ์ ‘๊ทผ๋œ ๋ฐ์ดํ„ฐ์˜ ์ฃผ๋ณ€ ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ฌ์šฉ๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค.

RAM์— ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•˜๋ฉด RAM์€ ๋ฐ์ดํ„ฐ๋ฅผ CPU๋กœ ๋ณด๋‚ด์ฃผ๋Š”๋ฐ ์ด๋•Œ CPU๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›๊ธฐ ์ „๊นŒ์ง€ ๋Œ€๊ธฐํ•˜๊ฒŒ๋œ๋‹ค. ์ž์ฃผ ์“ฐ๋Š” ์ •๋ณด๋ฅผ RAM์— ๋„ฃ์œผ๋ฉด ์“ธ ๋•Œ๋งˆ๋‹ค CPU๊ฐ€ ๋Œ€๊ธฐ๋ฅผ ํ•˜๊ฒŒ๋˜์–ด ์ปดํ“จํ„ฐ๊ฐ€ ์ „์ฒด์ ์œผ๋กœ ๋А๋ ค์ง„๋‹ค.
์ž์ฃผ ์“ฐ๋Š” ์ •๋ณด๋ฅผ ์บ์‹œ์— ์ €์žฅํ•˜๋ฉด RAM์—์„œ ๊ฐ€์ ธ์˜ฌ๋•Œ๋ณด๋‹ค ๋Œ€๊ธฐ ์‹œ๊ฐ„์ด ํ›จ์”ฌ ์ค„์–ด๋“ ๋‹ค. ํ•˜์ง€๋งŒ ์บ์‹œ๋Š” RAM๋ณด๋‹ค ์šฉ๋Ÿ‰์ด ์ ๊ณ  ๊ฐ€๊ฒฉ์ด ๋น„์‹ธ ์ž์ฃผ ์“ฐ์ง€ ์•Š๋Š” ์ •๋ณด๋Š” RAM์— ์˜ฌ๋ ค๋†“๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.


ํŒ€ํ”Œ - BTTask๋กœ ๊ณต๊ฒฉ๋ชจ์…˜+๊ณต๊ฒฉ ๋™์‹œ ์‹คํ–‰์‹œํ‚ค๊ธฐ

  1. BehaviorTree์—์„œ BTTask_ExecuteGameplayAbility์‹คํ–‰
    ๋ฐœ๋™ํ•  GA Asset tag์™€ ๊ฐ™์€ ํƒœ๊ทธ๋กœ ์„ค์ •
  2. ํ•ด๋‹น GA ํŠธ๋ฆฌ๊ฑฐ
  3. GA ๊ฐ–๊ณ  ์žˆ๋Š” ์•กํ„ฐ์˜ Character Data์—์„œ ํƒœ๊ทธ๋กœ ์• ๋‹˜ ๋ชฝํƒ€์ฃผ ๊ฐ€์ ธ์˜ค๊ธฐ
  4. PlayMontageAndWait์œผ๋กœ ๋ชฝํƒ€์ฃผ ์‹คํ–‰
  5. ํ•ด๋‹น ๋ชฝํƒ€์ฃผ์— ์• ๋‹˜ ๋…ธํ‹ฐํŒŒ์ด DrgAnimNotify_SendGameplayEvent ๋กœ ์ด๋ฒคํŠธ ํƒœ๊ทธ send
  6. Wait Gameplay Event์—์„œ ํƒœ๊ทธ ๋ฐ›์•„์„œ Fire Projectile ์‹คํ–‰

๐Ÿ’ก ๋А๋‚€ ์  (What I Felt)

๋น„ํ•ด๋น„์–ด ํŠธ๋ฆฌ์˜ ์ •๋ณด๋ฅผ ๊ฐ™์€ AI ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ๊ณต์œ ํ•˜๋Š” AI๋“ค์ด ๋ชจ๋‘ ๊ณต์œ ํ•˜์—ฌ ๊ฐ๊ฐ ํ˜„์žฌ ํƒœ์Šคํฌ์˜ ์ง„ํ–‰ ์ƒํ™ฉ์— ๋”ฐ๋ผ ์ข…๋ฃŒํ•˜๋Š” ๋กœ์ง์„ ๊ตฌํ˜„ํ•˜๋Š”๊ฒŒ ์–ด๋ ค์› ๋‹ค. ์ง€๊ธˆ์€ ์ž˜ ํ•ด๊ฒฐ๋œ ๊ฒƒ ๊ฐ™์€๋ฐ...


 ์ถœ์ฒ˜: ์ŠคํŒŒ๋ฅดํƒ€์ฝ”๋”ฉ ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„

0๊ฐœ์˜ ๋Œ“๊ธ€