본문 바로가기

전체 글

[Unreal] 언리얼 엔진과 네트워크 언리얼 엔진의 네트워크 시스템을 공부하면서, 언리얼 엔진은 과연 TCP일까 UDP일까 문득 궁금해졌다.찾아보며 다음과 같은 내용들을 찾았다. 우선 언리얼의 NetDriver.h의 내용은 다음과 같다.// Copyright Epic Games, Inc. All Rights Reserved.//// Base class of a network driver attached to an active or pending level.#pragma once#include "CoreMinimal.h"#include "Engine/EngineBaseTypes.h"#include "Engine/EngineTypes.h"#include "Net/NetworkMetricsDatabase.h"#include "HAL/IConsol.. 더보기
String 클래스의 구조와 friend 선언을 통한 연산자 오버로딩의 출력 #include using namespace std;class MyString{ public: MyString(const char* str) { for(int i = 0; i str[i] = '\0'; } for(int i = 0; i str[i] = str[i]; } } void operator+=(const char* str) { int idx = 0; for(int i = len; i str[i] = str[idx]; idx++; } } friend ostream& operator 1. operatoroperator는 멤버 함수가 아닌 전역 함수로 정.. 더보기
Wrapper Class C++에서는 기본 데이터 타입을 감싸는 클래스를 만들어 Wrapper Class처럼 사용할 수 있다.1. Wrapper Class 정의 및 기본 사용#include class Integer {private: int value;public: // 생성자 Integer(int v) : value(v) {} // 값을 가져오는 메서드 int getValue() const { return value; } // 값을 설정하는 메서드 void setValue(int v) { value = v; }};int main() { Integer obj(10); // 기본 타입 int를 감싸는 Wrapper Class 객체 생성 std::co.. 더보기
Smart Pointer 스마트 포인터는 C++에서 제공하는 포인터의 한 형태로, 자동 메모리 관리를 지원하는 포인터다.C++은 C#과 같이 가비지 컬렉션을 지원하는 언어와는 다르게, 메모리를 동적으로 할당했다면 반드시 수동으로 해제해야 한다.이를 위해 등장한 것이 바로 스마트 포인터 이며, 스마트 포인터는 포인터가 가키리는 메모리를 더 이상 사용하지 않을 경우 자동으로 해제하는 역할을 한다.#include #include using namespace std;int main(){ unique_ptr uPtr(new int(1945)); // auto는 더 이상 쓰지 않는다. auto_ptr aPtr(new int(1945)); shared_ptr sPtr(new int(1945)); return 0;}.. 더보기
[Unreal] API 클래스 이름에 붙는 API는 매크로다.이는 DLL끼리 서로 노출시키는 것으로, 사용 방법에 따라 모듈 내부에서만 사용하는 경우에는 캡슐화를 제공하고 외부에서는 사용할 부분과 사용하지 않을 부분을 구분한다. 클래스에 선언 시 (클래스이름_API) 모두 OPEN하여 사용한다는 뜻이다.만일 클래스에 선언하지 않고, 특정 함수에만 API 선언을 하면, 해당 함수만 OPEN 한다. 이를 mini API라고 한다.-> 이렇게 오픈된 것들은 다른 모듈에서 자유롭게 접근이 가능하다. 일종의 함수용 namespace라고 생각해도 무방하다. 핵심은 캡슐화다! 더보기
[Tip] 파일의 이름 길이 32자를 넘기지 않는 것이 가장 좋다.넘겨도 작동은 가능하지만, 간헐적으로 문제가 발생한다. 더보기
[Tips] 이름 앞에 붙는 것 A -> Actor Class 상속U -> UObject Class 상속F -> Structure / Native Class / FStructure 상속E-> Enumb -> boolean 더보기
[Tips] UFNCTION 리플렉션의 역할을 하는 매크로이다. 이는 언리얼에서 동적으로 추적한다는 의미로, 보통 다이나믹 델리게이트에서 많이 사용한다. UFNCTION의 동적 추적은 개발자가 메모리 관리를 할 필요 없게 해준다. 더보기