목록전체 글 (213)
Deff_Dev
1. Tree가 무엇인지 알고 있나요? Tree의 종류에는 어떤 것들이 있나요?트리 (Tree)란 노드들이 나무 가지처럼 연결된 비선형 계층적 자료구조로, 루트 노드에서 시작하여 자식 노드들이 연결되어 있는 형태를 가진다.더보기편향 트리 (Skewed Tree):모든 노드가 한쪽 방향으로만 치우친 트리.이진 트리 (Binary Tree):각 노드가 최대 두 개의 자식 노드를 가지는 트리.이진 탐색 트리 (Binary Search Tree, BST):왼쪽 서브트리에는 작은 값, 오른쪽 서브트리에는 큰 값을 가지는 이진 트리.완전 이진 트리 (Complete Binary Tree):마지막 레벨을 제외한 모든 레벨이 완전히 채워져 있는 이진 트리.포화 이진 트리 (Full Binary Tree):모든 노드가 ..
1. 유니티 최적화 기법은 어떤 것들이 있나요?최적화를 해본 적이 있나요? 없다면 어떤 최적화가 있는지 설명해주세요.GetComponent 및 객체 생성 최적화문제: GetComponent는 비용이 높은 연산이며, new로 객체를 생성하면 힙 메모리에 계속 할당된다.해결: 자주 사용되는 컴포넌트는 캐싱하고, 객체 풀링(Object Pooling)을 사용해 객체 재사용한다.Coroutine 최적화문제: StartCoroutine은 메모리 할당을 동반하므로 자주 시작/중단하는 것은 비효율적이다.해결: 시작/중단을 자주하는 기능은 코루틴이 아닌 다른 방법을 사용한다.ex) UniTask문자열 최적화문제: 문자열 비교와 연결은 새로운 문자열을 생성하며, 이는 메모리 상으로 비효율적이다.해결: 문자열 비교는 변수..
Predicate반환 값이 반드시 Bool이고 입력 파라미터가 1개인 Delegate이다.반환 타입을 정해야줘야 하는 Func와 달리 Bool 타입으로 고정이기 때문에 사용 목적을 명확하게 전달할 수 있다.List numbers = new List { -1, 5, 0, -3, 10 };// Predicate 정의Predicate isPositive = delegate (int x){ return x > 0;};// 리스트에서 조건을 만족하는 요소 찾기int firstPositive = numbers.Find(isPositive);Console.WriteLine("첫 번째 양수: " + firstPositive);중복 제거한 랜덤 요소 반환 프레임 워크HashSet을 이용한 중복제거 코드를 모든 타입..
1. 코루틴의 동작원리에 대해 설명해주세요.Coroutine은 IEnumerator를 이용하여 함수를 작성하고 yield return을 사용하여 특정 조건이 충족될 때까지 실행을 일시 중단하고, 그 후에 실행한다.StartCoroutine을 이용하여 해당 Coroutine을 실행할 수 있고, Unity의 메인 스레드에서 동기적으로 처리된다. YieldInstructions 키워드더보기FixedUpdate 이후yield return new WaitForFixedUpdate()모든 스크립트의 FixedUpdate 함수가 실행이 끝난 후에 yield return new WaitForFixedUpdate() 이후 내용을 실행합니다.Update 이후yield return null현재 프레임의 모든 Update 함..
1. Time.timeScale을 0으로 하면 Update와 FixedUpdate는 모두 호출이 되지 않을까요? 그 이유는 무엇일까요?Update와 FixedUpdate는 timeScale에 영향을 받기 때문에 호출되지 않는다.Time.timeScale을 0으로 설정하면 게임의 시간 흐름이 멈추게 되어, 시간에 의존하는 Update와 FixedUpdate는 실행되지 않는다.2. Update의 호출주기에 영향을 주는 것은 무엇일까요?컴퓨터의 프레임에 영향을 받는다. (프레임 당 Update 호출)즉, 프레임 당 한 번씩 호출되기 때문에, FPS가 높은 컴퓨터에서는 Update가 더 자주 호출되고, FPS가 낮은 컴퓨터에서는 Update가 덜 자주 호출된다.이를 보정하기 위해 Time.deltaTime을 사..