전체 글 101

[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

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

개념요약IDE: 통합개발환경 (ex. 통합개발환경)컴파일: 사람이 알아들을 수있는 프로그래밍언어로 구현한 코드를 컴퓨터가 알아들을 수 있는 언어로 변경하는 과정 기본 문법#include : C++에서 제공하는 라이브러리헤더파일을 포함할때는 #include를 사용함 에 헤더파일을 입력함main: 프로그램의 시작점cout (console output): C++ 라이브러리에서 제공하는 출력 문법cin(console input): C++ 라이브러리에서 제공하는 입력 문법endl(end line): 개행return 0: 프로그램이 정상적으로 종료되었음을 운영체제에 알리는 역할변수입력받은 값을 저장할 수 있는 공간변수는 타입과 이름을 갖음변수는 초기 선언과 동시에 값을 가질 수 있으며, 추후에 대입 연산자를 통해..

C++ 2025.05.28

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

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

내일배움캠프 2025.05.21

[Unreal Engine] 간단한 상호작용 구현

개념 요약Line Trace눈앞에 있는 오브젝트를 탐지하는 "레이저 광선"같은 기능마우스나 키보드로 상호작용 탐지 시 사용됨인터랙션 키 바인딩키보드 입력을 통해 특정 이벤트 실행일반적으로 E 키나 마우스 클릭에 매핑구현 과정 요약Interact 입력 Mapping 추가Edit > Project Settings > InputAction Mappings에 Interact(키: E) 추가E 키 이벤트를 블루프린트에서 찾기 위함문 또는 아이템 블루프린트 생성새 Actor 블루프린트 생성하기(BP_InteractableDoor 또는 BP_PickUpItem)Static Mesh추가(문/아이템 등으로 보이게 설정)생성한 BP_InteractableDoor/BP_PickupItem 에디터에서Components 탭의 ..

Unreal Engine 2025.05.16

[Unreal Engine]에셋 내비게이션 및 간단한 게임 씬 구성

개념요약내비게이션(Navigation)이란?캐릭터가 씬 안에서 자연스럽게 이동할 수 있는 공간을 의미함지나갈 수 없는 곳은 막고, 통과 가능한 구조를 명확히 해야 게임 플레이시 부드럽게 동작함충돌(Collision)이란?오브젝트와 캐릭터가 실제로 닿는지 아닌지를 판별해주는 시스템벽을 뚫고 지나가지 않도록 설정하는 데 사용됨구현 과정 요약씬 컨셉 잡기허수아비가 세워진 농장초목지 메테리얼을 깔고 펜스 헛간을 배치하며 주인의 집을 배치에셋 배치 캐릭터 내비게이션 확인 테스트 플레이테스트 플레이 영상느낀점 & 개선하고 싶은 점다양한 오브젝트를 자연스럽게 배치하고 충돌 설정을 하는것에 많은 노력이 들어가는 것을 다시금 느낄 수 있었고 기본적으로 Collision 설정이 되어있는 모델링도 있어 좋았던 것 같다.

Unreal Engine 2025.05.15