C++ 41

[UnrealEngine] Enhanced Input System

순서Enhanced Input System이란?EnhancedInputSystem 헤더파일Enhanced Input System의 구성요소Enhanced Input System이 추구하는 설계 원칙Enhanced Input System의 단점 및 고려사항Enhanced Input System이란?UnrealEngine5에서 제공하는 새로운 입력시스템이다.입력 이벤트를 데이터 자산 기분으로 구성하고, 이를 EnhancedInputComponent를 통해 처리함코드/블루프린트 내에서 키와 액션을 직접 바인딩하던 방식에서 Enhanced Input으로 더 많은 추상화 계층과 구조적 관리 방식을 제공함EnhancedInputSystem 헤더파일"EnhancedInputComponent""InputAction""..

Unreal Engine 2025.08.01

[C++]구조패턴/어댑터 패턴

순서어댑터 패턴이란?어댑터 패턴의 장점과 단점어댑터 패턴 사용시 고려사항간단한 어댑터 패턴 작성어댑터 패턴이란?서로 다른 인터페이스를 가진 클래스들을 함께 작동하도록 만들어주는 중개자 역할의 디자인 패턴즉, 호환되지 않는 인터페이스를 연결해주는 디자인 패턴어댑터 패턴 사용의 예외부 SDK/라이브러리 통합크로스 플랫폼 개발레거시 시스템 연동다양한 API 통렌합(렌더링, 오디오, 네트워크)어댑터 패턴의 장점과 단점장점기존 클래스를 수정 없이 재사용 가능함클라이언트 코드 변경 없이 다양한 인터페이스 연결 가능함단점코드가 복잡해질 수 있음너무 많이 사용하면 설계가 모호해질 수 있음어댑터 패턴 사용시 고려사항진짜 인터페이스 불일치 문제인지, 설계 문제인지 먼저 확인해야함 - 인터페이스가 이미 호환되는 경우엔 피해..

C++/디자인패턴 2025.07.28

[C++]생성 패턴/빌더 패턴

순서빌더 패턴이란?빌더 패턴의 장점과 단점빌더 패턴 사용시 고려사항간단한 빌더 패턴 작성빌더 패턴이란?복잡한 객체의 생성 과정을 단계별로 나누어, 동일한 생성 절차에서 서로 다른 표현 결과를 만들 수 있게 하는 생성 패턴.복잡한 객체를 조립하듯이 여러 단계로 나누어 생성함.빌더 패턴의 사용 예캐릭터 커스터마이징과 같이 많은 옵션이 필요할 때생성자 매개변수가 너무 많을 때선택적 매개변수가 많을 때객체 생성 과정이 여러 단계일 때빌더 패턴의 장점과 단점장점복잡한 객체 생성 제어: 객체 생성 과정을 세밀하게 조정 가능가독성 향상: 메서드 체이닝을 통한 명확한 생성 절차를 가짐불변 객체 생성 용이: 생성 후 변경 불가능한 객체 정의에 적합함생성과 사용의 분리: 클라이언트는 생성 세부사항을 몰라도 됨단점클래스 수..

C++/디자인패턴 2025.07.25

[C++] 연산자 오버로딩

순서연산자 오버로딩이란?연산자 오버로딩이 필요한 이유연산자 오버로딩 문법주의할 점연산자 오버로딩이란?기본 연산자를 클래스에 맞게 새로운 의미로 재정의 하는 것.연산자 오버로딩이 필요한 이유클래스끼리 연산을 직관적으로 하기 위해.연산자 오버로딩 문법리턴타입 클래스이름::operator연산자(인자){} 형식으로 작성 ex) ==연산자 오버로딩bool operator==(const Point& other) const{ return (x == other.x) && (y == other.y);}if(p1 == p2){ cout 주의할 점새로운 의미를 부여할 때 직관적이여야 함과도한 오버로딩은 코드 가독성을 해칠 수 있음연산자의 원래 의미와 다르게 동작하지 않도록 주의해야함

C++ 2025.07.17

[Unreal Engine] Unreal Engine_C++ 매크로

순서Unreal C++ 매크로란?주요 매크로Unreal C++ 매크로란?언리얼 엔진의 헤더 툴(UHT)이 처리하는 특별한 주석/메타데이터.C++ 코드에 리플렉션(reflection) 정보를 추가하여 기능에디터에 속성을 노출블루프린트와 상호작용GC(Garbage Collection)대상 객체로 관리 가능컴파일 전에 UHT가 읽어들여 자동 코드 생성 및 메타데이터 등록주요 매크로클래스 관련 UCLASS(): 언리얼이 이 클래스를 관리하도록 표시USTRUCT(): 언리얼에 구조체 등록UENUM(): 언리얼에 열거형 등록UINTERFACE(): 언리얼 인터페이스 클래스 등록GENERATED_BODY(): 헤더 툴이 가상 함수 테이블, 리플렉션 데이터, 직렬화 함수 등을 자동 생성변수 관련UPROPERTY(): ..

Unreal Engine 2025.07.16

[C++] Iterator 반복자

순서반복자란?주요 기능 및 연산자Iterator 사용법auto 키워드시간 복잡도iterator 반복자란?iterator 반복자는 STL 컨테이너 내부 요소를 순회하는데 사용되는 객체이다.배열의 인덱스를 직접 사용하는 대신, iterator를 활용하면 더 범용적인 코드 작성이 가능함iterator의 역할컨테이너 내 원소 순회원소 삽입, 삭제, 변경반복 구조 최적화iterator의 원리포인트와 유사한 방식으로 작동, 하지만 단순한 메모리 주소가 아닌 컨테이너 요소를 안전하게 조작할 수 있는 인터페이스를 제공함.주의사항iterator가 end()를 초과하여 접근하지 않도록 해야함iterator가 유효한 범위를 유지하는지 신경 써야함iterator를 활용할 때 컨테이너가 변경되면, 무효화된 반복자를 사용하지 않..

C++ 2025.07.10

[Unreal Engine] 리플렉션 시스템

순서리플렉션이란?클래스 리플렉션변수 리플렉션함수 리플렉션리플렉션이란?C++ 클래스의 변수 및 함수 정보를 엔진 내부의 메타데이터 형태로 저장하고, 이를 에디터나 블루프린트에서 활용할 수 있게 만들어주는 기술C++ 클래스에 있는 여러 멤버를 Reflection하여 에디터와 블루프린트에서 직접 설정, 호출이 가능함프로그래머가 작성한 C++ 로직의 뼈대를 디자이너나 다른 팀원들이 에디터에서 직관적으로 조정할 수 있음매개변수를 코드에서만 변경하는 것이 아니라, 에디터에서 바로 조정(슬라이더 또는 입력)하여 반복 테스트를 빠르게 진행가능클래스 리플렉션#include ClassName.generated.h 헤더파일UClass() 매크로해당 클래스를 언리얼 엔진의 리플렉션 시스템에 등록한다는 의미UClass() 매크..

Unreal Engine 2025.07.09

[C++]Alogorithm헤더파일

순서algorithm 헤더파일이란?주요 알고리즘 함수algorithm 헤더파일이란?앞서 다룬 클래스 템플릿 + 멤버 함수로 구성된 sstream 헤더와는 다르게 algorithm 헤더는 함수 템플릿임 C++ 표준 라이브러리에 포함된 헤더로 범위기반 알고리즘 함수들을 제공함정렬, 검색, 수치 연산, 변환, 집계에 이용함algorithm 헤더 특징템플릿 함수로 구성되어 컨테이너 타입과 무관하게 사용할 수 있음반복자를 사용하여 번위를 지정함주요 알고리즘 클래스, 함수알고리즘 함수들은 클래스 컨테이너(vector, list 등)의 요소에 접근하기 위해 반복자 클래스와 함께 사용함관련 반복자 클래스vector, list, set는 ::iterator 범위를 지정하여 사용함reverse, istream, ostre..

C++ 2025.07.08

[Unreal Engine]Unreal_C++ 빌드 프로세스

순서Visual Studio C++ 빌드 설정Visual Studio C++ 빌드Visual studio C++ 빌드 설정코드의 빌드 과정.코드를 컴파일(Compile)을 거쳐 링크(Link)를 하면 동적 라이브러리(DLL)가 생성된다.생성된 DLL은 언리얼 에디터에 로드되고, 새로 작성한 클래스, 함수 등이 게임과 에디터 내에서 즉시 반영됨.빌드 구성 및 플랫폼 확인Visual studio 상단 툴바에서 빌드 구성(Configuration)과 플랫폼(Platform)을 설정할 수 있음빌드 구성(Configuration)DebugGame게임 로직만 디버그 정보를 포함, 엔진은 최적화된 상태로 빌드에디터가 아닌 독립 실행 파일 환경에서 디버깅이 가능DebugGameEditor에디터 환경에서 게임 로직을 디..

Unreal Engine 2025.07.07