11.05 - TIL

김혁·2025년 11월 5일

TIL

목록 보기
50/84

오늘의 코드카타

  • 유사 칸토어 비트열
  • 당구 연습
    • 원쿠션을 해야한다는 조건이 있는데 이를 활용하여 각 면에 충돌했을 때를 가정해서 각 축을 대칭으로 미리 점을 찾아놓고, 점과의 거리를 계산하면 효율적으로 계산 가능
    • 그렇다면 두 번 이상 부딪히거나, 모서리에 부딪히는 경우는 고려하지 않아도 되는가?
      -> 해당 부분은 원쿠션을 하는 것보다 무조건 거리가 멀 수 밖에 없음
    • 주의 사항으로 같은 x, y 좌표를 가질 경우에는 특정 면에 대해서는 원 쿠션을 하기 전에 공에 부딪히기 때문에 해당 경우를 제외해줘야 함
    • https://school.programmers.co.kr/learn/courses/30/lessons/169198

오늘의 공부

기술 연구

  • 모션 워핑에 대하여 R&D하는 중
  • 파쿠르 애니메이션을 실행하는 데에 있어서 손 짚는 위치라던가 뛰는 위치가 동적으로 변경이 필요해서 해당 기술을 학습하고 있음
  • 동작하는 원리, 사용법, 샘플 프로젝트까지 해봤지만, GASP에는 너무 다양한 기능이 들어가 있어서 그런지 해당 애니메이션으로는 잘 진행이 되지 않아서, 그에 대한 해결법을 찾고 있음


오늘의 CS

메모리 단편화

  • 컴퓨터 메모리에서 공간이 충분히 비어있지만, 그 공간들이 너무 작게 흩어져 있어 실제로는 아무것도 할당할 수 없는 상태를 말함
  • 원인
    • 프로그램이 크기가 다른 여러 메모리 덩어리를 힙에서 요청함
    • 이 덩어리들이 사용한 후 해제되면, 원래 있던 자리에 빈 공간이 생김
    • 이 빈 공간들이 너무 작고 많이 흩어져 있으면, 다음에 오는 큰 메모리 요청을 수용할 수 없음

내부 단편화

  • 이미 할당된 메모리 블록의 내부에서 발생하는 낭비된 공간을 의미함
  • 원인 : 주로 고정 크기 할당 방식을 사용하면 발생함
  • 발생 과정 : 프로세스가 x 크기의 메모리를 요청했는데, 시스템이 관리의 용이성을 위해 x+a 크기의 메모리를 할당하면, a 만큼의 공간이 낭비됨
  • 해결 방법 : 내부 단편화가 발생하더라도 낭비되는 크기를 최소화하도록 고정된 블록 크기를 작게 설정

외부 단편화

  • 할당되지 않은 메모리 블록들 사이에서 발생하는 낭비된 공간을 의미함
  • 원인 : 주로 가변 크기 할당 방식을 사용하는 힙 영역에서 발생함
  • 해결 방법
    • 메모리 풀 : 미리 정해진 크기의 메모리 블록을 여러 개 확보해놓고, 할당 요청이 들어올 때마다 풀에서 꺼내 씀. 동일한 크기의 객체를 반복적으로 다룰 때, 외부 단편화를 크게 줄일 수 있음
    • 가비지 컬렉션 : 더 이상 사용하지 않는 메모리를 자동으로 회수함. 일부 가비지 컬렉터는 메모리 압축을 해서 흩어진 빈 공간을 한 곳으로 모아 외부 단편화를 해결함
    • 스마트 포인터와 할당 전략 : 스마트 포인터를 사용하여 메모리 누수를 방지하고, 특정 할당 전략(예: 힙의 특정 영역에만 특정 객체를 할당)을 사용하여 단편화를 줄일 수 있음

언리얼의 네트워크 Role

  • 멀티플레이 환경에서 액터가 클라이언트와 서버 쪽 어떤 쪽이 해당 액터를 제어하고 소유하는지를 정의하는 개념
  • 주로 네트워크 복제(Replication)의 주체와 방향을 결정하여, 게임의 동기화를 관리하는 데 사용됨
  • 두 가지 속성
    1. Role : 액터가 현재 실행되고 있는 시스템에서의 역할을 나타냄
    2. RemoteRole : 해당 액터를 바라보는 원격 시스템의 역할을 나타냄

Role 값

  • Authority : 해당 액터의 상태 변경에 대한 최종 권한을 가짐. 일반적으로 서버에서 실행되는 액터의 역할
  • AutonomousProxy : 액터의 상태 변화를 자신이 직접 제어하는 클라이언트의 역할
  • SimulatedProxy : 액터의 상태 변화를 네트워크를 통해 서버로부터 받아 시뮬레이션하는 클라이언트의 역할이언트의 역할
profile
게임 개발자를 향해..

0개의 댓글