til 93

[Unreal Engine] 활용 프로그램 제작해보기

순서Level 생성하기Actor 생성하기.cpp 파일과 .h파일 작성하기Level 생성하기새로운 Level을 만들기 위해 File에서 'New Level'을 선택Open월드 대신 Basic Level을 선택하여 CreateActor 생성하기새로운 Actor를 만들기 위해 Tools에서 'New C++ Class'를 선택Class 종류 중에 Actor를 선택하여 이름을 입력하고 생성 - Actor는 생성할때 클래스의 이름 앞에 A를 붙임.cpp와 .h파일 작성하기

Unreal Engine 2025.06.17

[Unreal Engine]Unreal Engine 기본 개념

순서언리얼 엔진의 특징Actor로그 출력언리얼 엔진의 특징실시간 렌더링 기능언리얼 엔진은 실시간 렌더링 기술이 뛰어나 고 퀄리티의 게임과 시뮬레이션 등의 개발이 쉽게 구현 가능함.블루 프린트C++을 알지 못하더라도 코딩없이 게임 로직을 만들 수 있게 해주는 비주얼 스크립팅 시스템이다.필요 시 C++ 클래스와 블루프린트를 함께 사용할 수 있음직관적인 이벤트 처리로 BeginPlay, Tick 등 이벤트 처리 용이함모든 플랫폼에서 사용 가능함PC, 콘솔, 모바일을 모두 지원함한 번의 구현을 통해 다양한 기기에 배포할 수 있어 효율이 좋음활성화된 커뮤니티튜토리얼이 잘 작성되어 있으며 포럼이 활성화 되어있어 입문시 조작방식을 쉽게 익힐 수 있음.ActorActor란?언리얼 엔진에서 게임에 배치될 수 있는 모든 ..

Unreal Engine 2025.06.16

[C++] 디자인패턴

순서디자인패턴이란?생성패턴(싱글톤 패턴)구조패턴(데코레이 패턴)행동패턴(옵저버 패턴)디자인패턴이란?개발 시 반복적으로 등장하는 문제를 해결하기 위한 일반화된 솔루션생성패턴(싱글톤 패턴)생성패턴?: 새로운 것을 만들어내는 방법과 관련된 패턴싱글톤 패턴이란?: 프로그램 전체에서 단 하나의 인스턴스만 존재하도록 보장하고, 해당 인스턴스에 전역적으로 접근할 수 있도록 하는 디자인 패턴핵심인스턴스가 월드에 하나만 존재해야하며 전역으로 접근해서 사용해야할 때생성자를 외부에서 호출할 수 없도록 막고, 정적 메서드를 통해 인스턴스를 반환해야 할 때주의해야하는 점과도하게 사용하면 유연성과 확장성이 떨어지기 때문에 꼭 필요한 경우에만 사용.Unreal Engine 게임 개발에서 활용 예제 : 전역 데이터 저장이나 게임 전..

C++/디자인패턴 2025.06.13

[C++]객체지향적 설계

순서응집도결합도SOLID원칙단일 책임 원칙개방 폐쇠 원칙리스코프 치환 원칙인터페이스 분리 원칙의존 역전 원칙객체지향적 설계가 중요한 이유대부분 라이브러리 및 오픈소스는 객체지향적으로 설계됨좋은 설계로 구현된 코드는 개발 시간을 단축할 수 있음좋은 설계로 구현된 코드는 기능 변경에 유연하게 대응할 수 있음응집도응집도란? : 클래스 또는 모듈 내부의 구성 요소들이 얼마나 밀접하게 관련되어 있는지를 나타내기 때문에 일반적으로 응집도가 높을수록 좋은 설계라고 평가됨.응집도가 낮은 경우서로 관련 없는 기능들이 하나의 클래스에 포함된 경우를 의미함.ex)팀원들의 목적이 하나인 팀과 팀원들의 목적이 각기 다른 팀의 차이응집도가 높은 경우서로 관련 있는 모듈들만 하나의 class에 있는 경우ex)1.피자배달 경로 확인..

C++ 2025.06.11

[C++]STL(Standard Template Library)

순서STL이란?컨테이너벡터맵알고리즘반복자STL이란?C++ 표준 라이브러리의 핵심 구성 요소 중 하나로 자료구조, 알고리즘, 반복자를 제네릭하게 제공하는 라이브러리임.제네릭 프로그래밍 철학을 기반으로 설계하여 템플릿을 사용해서 자료형에 상관없이 동작함최적화된 자료구조와 알고리즘을 제공하며, 코드 재사용성, 안정성, 성능을 확보함컨테이너데이터를 담는 자료구조를 뜻함. (데이터를 담는 방식이나 제공하는 메서드에 따라 여러 가지 컨테이너를 제공함)모든 컨테이너는 템플릿으로 구현되어 있으며, 다양한 타입의 데이터를 저장할 수 있음모든 컨테이너는 메모리 관리를 내부적으로 하기 때문에 사용시 메모리 해제를 직접 고려하지 않아도 됨.대부분의 컨테이너는 반복자를 제공하기 때문에 내부 구현을 몰라도 동일한 방식으로 컨테이..

C++ 2025.06.11

[C++]템플릿

순서함수 오버로딩템플릿함수 오버로딩함수 오버로딩: 컴파일러가 매개변수의 타입과 개수를 기준으로 같은 이름의 함수들을 구분할 수 있도록, 네임 맹글링하여 여러 개 정의할 수 있게 하는 것.네임 맹글링(Name Mangling): 함수 이름 구분을 위해 내부적으로 고유한 이름을 부여하는 것 (단, 함수의 반환형만으로는 오버로딩이 성립하지 않음)C언어와 다르게 C++에서는 오버로딩을 통해 동일한 이름의 함수를 여러 개 정의할 수 있음. => C는 함수 이름으로만 함수를 구분하지만, C++은 함수 이름과 매개변수 타입 정보를 함께 사용해 구분하기 때문함수 오버로딩이 유효해지는 조건매개변수 타입이 다른 경우매개변수의 개수가 다른 경우함수 오버로딩 호출함수 오버로딩이 되려면, 호출되는 함수가 분명해야함. 호출 시점..

C++ 2025.06.09

[C++] 자원 관리하기

순서스택 메모리힙(동적) 메모리Dangling PointerMemory Leak스마트 포인터얕은 복사와 깊은 복사언리얼 엔진의 메모리 관리스택 메모리함수 내에서 선언된 지역 변수와 매개변수는 별도로 동적 할당하지 않는 한, 기본적으로 스택 메모리에 저장되며, 함수가 끝나면 자동으로 해제됨.예외적인 상황으로 함수 내의 제어구조, 블록, 스코프 등에서 선언된 변수는 해당 지역이 끝날 때 마다 소멸됨.일반적으로 할당 가능한 스택 메모리의 크기가 제한적임변수의 스코프(생존 영역)을 벗어나면 자동으로 해제되므로, 메모리를 더 길거나 유연하게 관리하기 어려움 => 해당 문제를 해결하기 위해 힙(동적)메모리를 사용할 수 있음힙 메모리동적 할당 시 new 연산자를 사용하고, 해제 시 delete 연산자를 사용함스택과 ..

C++ 2025.06.09

[C++]프로그래밍 기초3

반복작업을 줄여주는 함수함수를 사용하면 생기는 장점가독성 및 재사용성 향상함수란?프로그래밍을 하다 보면 반복적으로 사용되는 코드나 논리적으로 하나로 묶이는 코드가 있다. 해당 코드를 이름을 붙여 정의하고 가져다 쓰는 방식으로 구현하면 코드가 깔끔해지고 재사용성이 높아진다. 해당 방식으로 작업을 정의하고 이름을 붙이는 문법을 함수라고 한다.#include using namespace std;// 두 정수를 더하는 함수 (반환 있음)int add(int a, int b) { return a + b; // 결과 반환}// 메시지를 출력하는 함수 (반환 없음)void printMessage() { cout 코드블럭 설명int add(int a, int b)로 선언된 함수는 int형태로 반환하는 반환값..

C++ 2025.06.02

[C++]프로그래밍 기초2

간단한 계산기 구현변수선언두 숫자를 입력받아 저장할 int형 변수를 firstNum, secondNum으로 선언합니다.계산할 부호를 입력받기 위해 string형 변수를 calculate로 선언합니다.계산 결과값을 저장할 float형 변수를 answer로 선언합니다.입력받기cout을 이용하여 입력할 정보를 띄워줍니다cin을 이용하여 정보에 맞는 숫자 또는 계산 부호를 입력받아 줍니다.계산하기입력을 받은 계산부호를 통하여 if문으로 판별해 입력받은 숫자를 계산해줍니다.나눗셈 계산을 할 때 firstNum에 (float)을 붙여 형 변환을 해준 이유는 int형 변수로 받은 두 숫자를 나누면 몫만 나오기 때문에 앞의 숫자를 소숫점으로 강제형변환 시켜주었습니다.answer에 계산 결과값을 넣고 cout으로 띄워줍..

C++ 2025.05.29

[Unreal Engine] 블루프린트를 이용한 비주얼 스크립팅

블루프린트란?언리얼 엔진에서 제공하는 비주얼 스크립팅 시스템복잡한 코드 작성없이 노드 기반으로 프로그래밍을 가능하게 하는 시스템레벨당 짝을 맞춰 생산하여 레벨당 블루프린트를 구별할 수 있음블루프린트 사용해보기Event: 일종의 트리거로 '어떤 상황에서 호출이 될 것이다'라는 약속을 의미함Event BeginPlay: 게임이 시작할때 마다 한번씩만 실행되는 이벤트Event Tick: 프레임마다 실행되는 이벤트프로그래밍을 시작할 때 출력해보는 Hello World를 블루프린트로 출력해 볼 것이다.빈 화면에 우클릭을 하고 PrintText를 선택하여 생성해준다. 게임이 시작될 때 출력되도록 할 것이기 때문에 Event BeginPlay를 Prinet Text의 InText에 핀을 연결하고 InText 아래에 ..

내일배움캠프 2025.05.21