Notice
Recent Posts
Recent Comments
Link
관리 메뉴

λͺ©λ‘μ „체 κΈ€ (1103)

KoreanFoodie's Study

[C++ κ²Œμž„ μ„œλ²„] 2-6. λ©”λͺ¨λ¦¬ ν’€ #1

[C++ κ²Œμž„ μ„œλ²„] 2-6. λ©”λͺ¨λ¦¬ ν’€ #1 핡심 : 1. λ©”λͺ¨λ¦¬ 풀을 μ΄μš©ν•˜λ©΄, λ©”λͺ¨λ¦¬ νŒŒνŽΈν™”λ₯Ό ν”„λ‘œκ·Έλž˜λ° λ ˆλ²¨μ—μ„œ μ–΄λŠ 정도 ν•΄μ†Œν•¨μœΌλ‘œμ¨ λ©”λͺ¨λ¦¬λ₯Ό μ’€ 더 효율적으둜 μ‚¬μš©ν•  수 μžˆλ‹€. 2. 할당에 ν•„μš”ν•œ λ©”λͺ¨λ¦¬ 쑰각의 크기에 따라 λ©”λͺ¨λ¦¬ 풀을 각각 λ§Œλ“€μ–΄ μ‚¬μš©ν•˜λŠ” κ²½μš°κ°€ 있고, 같은 μ‚¬μ΄μ¦ˆλ§Œ μ‚¬μš©ν•˜λŠ” λ©”λͺ¨λ¦¬ 풀을 ν™œμš©ν•  μˆ˜λ„ μžˆλ‹€. 3. λ©€ν‹° μ“°λ ˆλ“œ ν™˜κ²½μ—μ„œ λ©”λͺ¨λ¦¬ 풀을 ν™œμš©ν•œλ‹€λ©΄, ν’€ μ ‘κ·Ό μ‹œ Lock 을 잘 μž‘μ•„μ£Όλ„λ‘ ν•˜μž. 였브젝트 풀링은 μ•„μ£Ό.. 였래된 μœ μ„œ κΉŠμ€ 기법이닀. μ£Ό λͺ©μ μ€ λ©”λͺ¨λ¦¬ νŒŒνŽΈν™”λ₯Ό μ΅œμ†Œν™”ν•˜κΈ° μœ„ν•΄ ν”„λ‘œκ·Έλž˜λ° λ ˆλ²¨μ—μ„œ λ©”λͺ¨λ¦¬λ₯Ό 효율적으둜 κ΄€λ¦¬ν•˜κΈ° μœ„ν•¨μΈλ°, 사싀 μ£Ό 골격은 κ°„λ‹¨ν•˜λ‹€. λ©”λͺ¨λ¦¬ 쑰각을 담을 'ν’€'을 λ§Œλ“€κ³ , λ©”λͺ¨λ¦¬κ°€ ν•„μš”ν•  λ•Œ μƒˆλ‘­κ²Œ λ©”λͺ¨λ¦¬λ₯Ό ν• λ‹Ήν•˜κ³ , ν• λ‹Ήν•œ λ©”..

Game Dev/Game Server 2023. 9. 11. 17:25
[언리얼] UI μ—μ„œ μ• λ‹ˆλ©”μ΄μ…˜μ˜ μ΄λ²€νŠΈκ°€ λλ‚¬μŒμ„ μ•Œλ €μ£ΌλŠ” 방법

[언리얼] UI μ—μ„œ μ• λ‹ˆλ©”μ΄μ…˜μ˜ μ΄λ²€νŠΈκ°€ λλ‚¬μŒμ„ μ•Œλ €μ£ΌλŠ” 방법 핡심 : 1. UI 에 μ‚½μž…λœ μ• λ‹ˆλ©”μ΄μ…˜μ—μ„œ 이벀트λ₯Ό μΆ”κ°€ν•˜κ³ , κ·Έλž˜ν”„μ—μ„œ μ΄λ²€νŠΈκ°€ λ°œμƒν–ˆμ„ λ•Œ ν˜ΈμΆœν•  ν•¨μˆ˜λ₯Ό C++ μ—μ„œ κ²€μƒ‰ν•΄μ„œ μ—°κ²°ν•΄ μ£Όλ©΄ λœλ‹€. 가끔 그런 κ²½μš°κ°€ μžˆλ‹€. μ½”λ“œλ‘œ ν’€μ–΄μ•Ό ν•˜λŠ” λ™μž‘κ³Ό μ—°μΆœμ„ ν•¨κ»˜ μ‚¬μš©ν•΄μ•Ό ν• λ•Œ, νŠΉμ • λ™μž‘μ„ μ—°μΆœμ΄ λλ‚˜λŠ” 타이밍에 μ˜μ‘΄ν•΄μ•Ό ν•˜λŠ” κ²½μš°κ°€. λŒ€ν‘œμ μœΌλ‘œ μ• λ‹ˆλ©”μ΄μ…˜μ΄ μžˆλŠ”λ°, μ• λ‹ˆλ©”μ΄μ…˜μ΄ μ™„μ „νžˆ λλ‚˜κ±°λ‚˜, νŠΉμ • μ‹œμ μ— 왔을 λ•Œ μ½”λ“œμ—μ„œ νŠΉμ • λ™μž‘μ„ μˆ˜ν–‰ν•˜λ„λ‘ λ§Œλ“€μ–΄μ•Ό ν•˜λŠ” μΌ€μ΄μŠ€κ°€ μ™•μ™• 생기곀 ν•œλ‹€. 보톡 μŠ€ν‚¬ μͺ½ κ΅¬ν˜„μ„ ν•˜λ‹€λ³΄λ©΄, Notify 같은 κ±Έ λ§Œλ“€μ–΄μ„œ 이λ₯Ό ν•΄κ²°ν•˜κΈ°λ„ ν•˜μ§€λ§Œ.. UI 의 κ²½μš°μ—λŠ”, 이벀트 트리거λ₯Ό 톡해 이λ₯Ό ν•΄κ²°ν•  수 μžˆλ‹€. 이제 μ˜ˆμ‹œλ₯Ό 보자. 일단 μ›ν•˜λŠ” UI λ₯Ό ..

Game Dev/Unreal C++ : Dev Log 2023. 9. 8. 19:15
[C++ κ²Œμž„ μ„œλ²„] 2-1. Reference Counting

[C++ κ²Œμž„ μ„œλ²„] 1-25. Reference Counting 핡심 : 1. λ©€ν‹° μ“°λ ˆλ“œ ν™˜κ²½μ—μ„œ, 생 포인터λ₯Ό μ‚¬μš©ν•˜λŠ” 것은 μ–Έμ œλ‚˜ μœ„ν—˜ν•˜λ‹€. μ˜λ„μΉ˜ μ•Šκ²Œ delete 된 포인터λ₯Ό μ‚¬μš©ν•˜λ €κ³  ν•  μˆ˜λ„ 있기 λ•Œλ¬Έμ΄λ‹€. 2. μΌλ°˜μ μœΌλ‘œλŠ” Smart Pointer λ₯Ό 톡해 이런 문제λ₯Ό ν•΄κ²°ν•˜λŠ”λ°, 핡심적인 뢀뢄은 κ²°κ΅­ Reference Count λ₯Ό μ²΄ν¬ν•˜μ—¬ nullptr 에 μ ‘κ·Όν•˜λŠ” 것을 λ§‰λŠ” 것이닀! λ¬Όλ‘  SharedPtr κΉŒμ§€ μ œλŒ€λ‘œ 써 μ£Όμ–΄μ•Ό 문제λ₯Ό 막을 수 μžˆλ‹€. λ©€ν‹°μ“°λ ˆλ“œ ν”„λ‘œκ·Έλž˜λ°μ„ ν•  λ•Œ, 생 포인터λ₯Ό μ‚¬μš©ν•˜κ²Œ 되면 μ˜λ„μΉ˜ μ•Šκ²Œ nullptr 에 μ ‘κ·Όν•˜λŠ” 경우λ₯Ό λ§žλ”±λœ¨λ¦¬κ²Œ λœλ‹€. μ•„λž˜μ˜ μ˜ˆμ‹œλ₯Ό 보자. λ ˆμ΄μŠ€μ™€ 터렛이 μžˆλ‹€κ³  ν•˜κ³ , 터렛이 레이슀λ₯Ό νƒ€κ²ŸνŒ…ν•˜μ—¬ 격좔 μ‹œν‚€λŠ” 것을 상상해 보자! ..

Game Dev/Game Server 2023. 8. 21. 19:07
[C++ κ²Œμž„ μ„œλ²„] 1-23. DeadLock 탐지

[C++ κ²Œμž„ μ„œλ²„] 1-23. DeadLock 탐지 핡심 : 1. λ°λ“œλ½μ„ μž‘λŠ”λ‹€λŠ” 것은, κ²°κ΅­ 락을 μž‘λŠ” 방식에 μžˆμ–΄ 사이클이 ν˜•μ„±λ˜λŠ”μ§€λ₯Ό νŒλ‹¨ν•˜λŠ” 것과 λ™μΌν•˜λ‹€. 2. DFS λ₯Ό μ‘μš©ν•˜μ—¬, 사이클이 μƒκΈ°λŠ”μ§€ μ—¬λΆ€λ₯Ό κ²€μ‚¬ν•˜λ©΄ DeadLock 상황을 미리 κ²€μΆœν•  수 μžˆλ‹€. DeadLock 의 경우, 개발 λ‹¨κ³„μ—μ„œλŠ” λ‚˜μ˜€μ§€ μ•ŠμœΌλ‚˜, 막상 라이브 μ„œλΉ„μŠ€λ₯Ό ν•˜λ©΄ κ²€μΆœλ˜λŠ” κ²½μš°κ°€ λ§Žλ‹€. κ΅¬μ‘°μ μœΌλ‘œλŠ” λ°λ“œλ½μ΄ 걸릴 둜직이 μžˆμŒμ—λ„, μ ‘μ†μž μˆ˜κ°€ λ§Žμ§€ μ•Šμ•„ λ°λ“œλ½μ΄ 걸리지 μ•Šμ„ 수 μžˆλ‹€. 이런 타이밍 적인 μ΄μŠˆμ— μ˜μ‘΄ν•˜μ§€ μ•Šκ³ , DFS λ°©μ‹μœΌλ‘œ 사이클이 μžˆλŠ”μ§€λ₯Ό κ²€μ‚¬ν•˜μ—¬, λ°λ“œλ½ 문제λ₯Ό 미리 방지할 수 μžˆλ‹€. λ°λ“œλ½μ„ μž‘λŠ”λ‹€λŠ” 것은, κ²°κ΅­ 락을 μž‘λŠ” 방식에 μžˆμ–΄ 사이클이 ν˜•μ„±λ˜λŠ”μ§€λ₯Ό νŒλ‹¨ν•˜λŠ” 것과 λ™μΌν•˜κΈ° λ•Œλ¬Έμ΄..

Game Dev/Game Server 2023. 8. 8. 21:28