본문 바로가기

분류 전체보기31

언리얼 C++ 기본 타입 블루프린트 / C++ 매핑 타입기본 매핑 타입 블루프린트는 기본적으로 unsigned 정수형을 사용하지 않는다. 블루프린트와 연동이 필요한 변수는 uint 계열 타입 및 double 타입의 사용을 지양해야 한다.BlueprintC++Floatfloat-doubleIntegerint32-uint32Integer64int64-uint64Boolbool유틸리티 매핑 타입BlueprintC++StringFStringNameFNameVectorFVectorRotatorFRotatorTransformFTransform 오브젝트 매핑 타입 블루프린트의 오브젝트 레퍼런스는 C++의 포인터에 해당한다. 따라서 할당되지 않은 참조는 실행 시 문제를 야기한다.BlueprintC++ObjectUObject*ActorAActo.. 2025. 5. 13.
2차 미분방정식의 물리적 예시 우리 주변의 사물의 움직임을 기술하는 도구로서 물리와 수학은 아주 유용하다.미분은 변화율. 2차 미분은 변화율의 변화율을 뜻한다.F=ma, V=IR 같은 기본 개념만 있으면 이해할 수 있도록 최대한 단순하게 설명하겠다. 자동차의 움직임위치: 자동차가 어디에 있는지.속도: 위치가 얼마나 빠르게 변하는지 (위치의 '변화율', 1차 미분).가속도: 속도가 얼마나 빠르게 변하는지 (속도의 '변화율', 즉 위치의 '변화의 변화율', 2차 미분). PID 제어 원하는 목표값에 도달하고 유지하기 위해 현재 상태와의 오차를 계속 보정하는 피드백 시스템P (비례): 현재 오차만큼 조절 (온도가 2℃ 낮으면 히터를 좀 더 세게!)I (적분): 과거부터 쌓인 오차만큼 조절 (계속 추우면 히터를 더더욱 세게!)D (미분):.. 2025. 5. 12.
공업수학 복소해석학, 복소평면 공업수학2의 가장 큰 토픽은 복소해석학.교수님께서는 너희가 배우는 모든게 다 이차 미분방정식을 풀기 위해 배우는거라고 하셨다. 나도 매우 동감한다.복소수 i의 등장과, 복소평면을 맛보기로 다룬다.우리가 중학교때 배운 근의 공식에서 루트 내부 값을 판별식으로 켤레제곱근이 나온다고 배웠다.유도과정은 간단하다. x^5=1을 풀어보면(x-1)로 묶은 뒤 조립제법으로 다른 항을 구한다.x^5 - 1 = (x - 1)(x^4 + x^3 + x^2 + x + 1) 이고, 기존 지식으로는 이차식에 대해 근의 공식을 쓸 수 있으므로 이차식으로 변환한다.x^4 + x^3 + x^2 + x + 1 를 x^2으로 나누면x^2 + x + 1 + 1/x + 1/x^2 = 0 정리하면 (x^2 + 1/x^2) + (x + 1/x).. 2025. 5. 12.
PID제어 PID제어란? 산업 제어 시스템 및 다양한 자동 제어 분야에서 가장 널리 사용되는 피드백 제어 루프(Feedback Control Loop) 메커니즘제어기의 세 가지 핵심 구성 요소인 비례(Proportional), 적분(Integral), 미분(Derivative) 항의 첫 글자를 딴 것PID 제어의 각 요소P (비례, Proportional) 제어:개념: 현재 시점의 오차 값에 비례하여 제어 출력을 결정. 오차가 크면 큰 제어 출력을 내고, 오차가 작으면 작은 제어 출력을 낸다.수식 (간략화): P_out = Kp * e(t)Kp: 비례 이득 (Proportional Gain). 값이 클수록 오차에 대한 반응이 빨라지고 제어 강도가 커지지만, 너무 크면 시스템이 불안정해지거나 오버슈트(Overshoo.. 2025. 5. 12.
메모리 관리 메모리 관리는 안정적이고 버그 없는 프로그램 개발에서 중요한 주제이다. 댕글링 포인터(dangling pointer)는 이미 메모리에서 해제된 대상을 참조하는 포인터이며, 추적하기 어려운 버그를 발생시키는 주요 원인이다.UE의 UObject 참조 카운팅 시스템은 UObject 클래스에서 파생된 액터와 클래스의 메모리를 관리하는 기본 수단이며, 이를 통해 UE 프로그램 내에서 메모리가 관리된다.만약 UObject에서 파생하지 않은 C++ 클래스를 작성한다면 TSharedPtr/TWeakPtr를 사용한다. 이 글은 메모리 관리와 코드 디버깅 방법을 설명한다.메모리 관리 기능은 개발자가 메모리 해제를 직접 걱정할 필요가 없게 한다. 메모리 관리 프로그램은 동적으로 객체를 참조하는 포인터의 수를 기억한다. 참조.. 2025. 5. 11.
탬플릿 메서드 패턴 알고리즘을 캡슐화 하는 것커피 클래스, 홍차 클래스가 있다면커피 만들기 알고리즘 : 물 끓이기, 끓는 물에 커피를 우려내기, 커피를 컵에 따르기, 설탕과 우유를 추가하기홍차 만들기 알고리즘 : 물 끓이기, 끓는 물에 홍차를 우려내기, 홍차를 컵에 따르기, 레몬을 추가하기알고리즘에 공통점이 아주 많다.알고리즘을 캡슐화 하자. 공통 메서드는 그대로, 서브클래스별로 달라지는 메서드는 추상으로 넘기자. 모든 자식 클래스는 추상 단계들을 구현해야 합니다.선택적 단계들에는 이미 어떤 디폴트​(기본값) 구현이 있지만, 필요한 경우 이를 무시하고 오버라이드​(재정의) 할 수 있습니다.모든 메서드가 추상이여도 상관없다. 함부로 바꾸면 안되는 메소드들이 있다면 final로 선언하면 된다. 스트레티지도 똑같이 알고리즘을 캡.. 2025. 5. 11.