반응형

2026/01 19

[알고리즘] 다익스트라(Dijkstra) 알고리즘 - 최단 경로 알고리즘

가장 짧은 경로를 탐색하는 과정에서 최소 비용의 정점을 빠르게 선택하는것, 이를 효율적으로 처리하기 위해 힙(우선순위 큐)을 사용한다. [STL] 우선순위 큐 (priority_queue)우선순위가 높은 데이터가 먼저 나오는 자료구조,기본 구현은 힙 이며 기본 설정은 최대 힙(max-Heap) 이다.내부적으로 Heap 자료 구조를 사용한다삽입,삭제(pop)은 항상 O(log N)이고 top()(가장 우선 순codehortus.tistory.com [알고리즘] 힙정렬(Heap Sort)우선순위 큐 (priority_queue)우선순위가 높은 데이터가 먼저 나오는 자료구조,기본 구현은 힙 이며 기본 설정은 최대 힙(max-Heap) 이다.내부적으로 Heap 자료 구조를 사용한다삽입,삭제(pop)은 항상 O..

[Unreal]실시간 렌더링 파이프라인과 언리얼 GPU 최적화 기초 정리

실시간 렌더링은 CPU 가 렌더 명령을 준비하고 GPU가 파이프 라인을 통해 화면을 생성하는 구조.최적화는 드로우 콜 수 같은 단일 지표가 아니라 병목이 CPU인지 GPU(지오메트리/픽셀/대역폭)인지먼저 확정한 뒤 대응하는 절차이다.1. 픽셀, 해상도, GPU 의 필요성픽셀(pixel) : Picture Element 의 줄임말, 화면을 구성하는 가장 작은 점픽셀은 최종 프레임 버퍼의 출력 단위이고 GPU 내부에서는 래지스터화로 생성된 프래그먼트가 깊이/스텐실 테스트를 통과한뒤 픽셀에 기록된다.RGB(빨강, 초록, 파랑) 3색의 조합으로 0~255 의 256가지(8비트)로 빛의 색을 낸다. 해상도(Resolution) : 화면을 구성하는 픽셀의 개수가 얼마나 많은지 나타내는 척도가로 픽셀 수 x 세로 픽..

Unreal/Optimization 2026.01.09

[자료구조] 완전 이진 트리 (Complete Binary Tree)

트리(Tree)트리는 계층적(hierarchical) 데이터 구조로 여러개의 노드 가 부모-자식 관계로 연결 되 있는 자료 구조마치 나무가 땅에 뿌리를 내리고 가지를 뻗어나가는 것 처럼 트리도 하나의 root노드에서 시codehortus.tistory.com마지막 레벨을 제외한 모든 레벨이 꽉 차 있고 마지막 레벨의 노드들도 왼쪽부터 빈칸 없이 순서대로 채워지는 이진트리.배열을 이용한 구현 : 중간에 빈 공간이 없기 때문에 배열을 사용하여 효율적으로 저장 할 수 있다.힙 자료 구조의 기본 구조가 된다.힙이 완전 이진 트리를 유지하는 이유는 배열로 효율적으로 저장하고 높이를 최소로 유지해 연산을 빠르게 하려는 목적이다.레벨 순서대로 왼쪽 부터 빈칸 없이 채워지므로 노드를 배열에 0/1 번 부터 연속으로 담..

[알고리즘] 힙정렬(Heap Sort)

우선순위 큐 (priority_queue)우선순위가 높은 데이터가 먼저 나오는 자료구조,기본 구현은 힙 이며 기본 설정은 최대 힙(max-Heap) 이다.내부적으로 Heap 자료 구조를 사용한다삽입,삭제(pop)은 항상 O(log N)이고 top()(가장 우선 순codehortus.tistory.com힙 정렬은 힙(Heap) 자료구조를 이용해 정렬하는 방식.우선 순위 큐를 구현하는데 사용된다.이 힙 에는 최대 힙 (Max Heap) 과 최소 힙(Min Heap)이 있다최대힙 : 항상 큰 값을 루트에 위치하게 한다.최소힙 : 항상 작은 값을 루트에 위치하게 한다. 최대 힙 1. 부모 노드가 항상 자식 노드 보다 큰 값을 가진다.2. 루트 노드는 항상 최대값이 된다.최소 힙 1. 부모 노드가 자식 노드보다 ..

[Unreal] Online Subsystem 스팀연동 + 데디 서버 세션 연결

https://dev.epicgames.com/documentation/ko-kr/unreal-engine/online-subsystem-in-unreal-enginehttps://dev.epicgames.com/documentation/ko-kr/unreal-engine/online-subsystem-steam-interface-in-unreal-engineOnline Subsystem을 활용한 스팀 연결 및 데디서버 연결 과정을 정리한 글이다1. 데디 서버쪽 GameInstance가 세션을 생성,광고(서버 목록에 보이게)동작 흐름URCGameInstance::Init()World->GetNetMode() == NM_DedicatedServer 일 때만 실행온라인 서브시스템(OSS) 세션 인터페이스 획..

Unreal/Multi 2026.01.07

[c++] Friend class

한 클래스가 다른 클래스의 private 및 protected 의 멤버에 접근 할 수 있는 권한을 부여하는데 사용된다.객체 지향 프로그래밍의 핵심 원칙인 캡슐화에 따르면 외부 클래스는 다른 클래스의 내부 데이터에 직접 접근 할 수 없다. 하지만 특정 상황에서 두 클래스 간 긴밀한 협력이 필요하 때 friend 키워드를 사용해예외적으로 권한을 부여한다. 1. 기본 문법friend 권한을 주는 클래스 내부에서 friend class [클래스 명]; 을 선언한다.클래스 전체가 아닌 특정 함수만 friend 로 줄 수 있다.class A {private: int secret_data = 100; // 클래스 B를 친구로 선언 (B는 이제 A의 private에 접근 가능) friend class ..

c++ 2026.01.06

[알고리즘] DFS / BFS

DFS(Depth First Search) 깊이 우선 탐색, 트리나 그래프를 최대한 깊이 들어가서 탐색하는 방법,폭 넓은 지식 보다 깊이 있는 지식을 우선시 한다. DFS 기반의 탐색은 재귀나 스택 자료구조를 이룔해서 구현 할 수 있다.DFS를 수행 할 때 루트 노드에서 시작해서 한쪽의 최대한 깊이 들어 간 후 에 자식 노드를 모두 방문후 다시 부모로 돌아와 다른 자식을 방문하는 방식, 위와같은 순회 방식을 Pre-order traverse, 전위 순회 라고 한다. In-order traverse. 중위 순회, 왼쪽 → 루트 → 오른쪽 순서로 노드를 방문한다.Post-order traverse. 후위 순회, 왼쪽 → 오른쪽 → 루트 순서로 노드를 방문한다. 탐색 : 어떠한 값을 발견하기 위한 행위, 순..

[CPU] CPU의 구조

CPU는 여러 요소로 이루어져 있어 서로 협력해 명령어를 처리하고 데이터를 연산한다.주요 구성 요소로는 산술 논리 장치, 제어 장치, 레지스터가 있다.이 외에도 캐시 메모리와 버스 같은 부가 적인 요소도 포함되 있고 각 요소는 독립적인 기능을 수행하지만 서로 긴밀 하게 협력해 CPU가 정상적으로 동작 할 수 있도록 한다.1. 산술 논리 장치 (ALU, arithmetic login unit)CPU 의 핵심 구성 요소로 연산을 수행하는 역할을 한다.ALU는 명령어와 데이터를 받아 연산을 수행 후 결과를 출력 하는 구조로 이루저여 있다.1-1 ALU의 구성요소 1-1-1. 연산 선택기(operation selecot)ALU에서 어떤 연산을 수행할지 결정하는 역할을 한다.제어 장치에서 명령을 전달 받으면 연산..

[Unreal] CPU 및 아키텍처 최적화의 기초

1. 프레임 예산과 시간의 중요성1-1 우리에게 주어진 프레임 예산60fps 게임에서 한 프레임당 16.67 밀리초가 주어지고 120fps 에서는 8.33 미리초만 주어짐제한된 시간 안에 아래 작업들을 모두 완료함입력처리게임 로직물리 시물레이션애니메이션오디오렌더링 // 언리얼 엔진 내부의 Tick 처리 (매우 단순화)void UWorld::Tick(float DeltaTime){ // [1단계] 입력 수집 (Input) // [2단계] 게임 로직 (GameThread) - 여기가 최적화 대상! // 레벨에 있는 모든 액터를 순회 for (AActor* Actor : AllActors) { if (Actor->CanEverTick()) { ..

Unreal/Optimization 2026.01.05
반응형