전체 글(17)
-
[TIL] 언리얼 부트캠프 Day 13 : C++ 템플릿과 STL -> SimpleVector 구현하기
오늘은 C++에서 템플릿과 STL의 활용 방법을 배우며, 이를 기반으로 SimpleVector라는 컨테이너 클래스를 직접 구현해 보았습니다. 이 글에서는 템플릿을 활용한 타입 독립적인 코드 작성, STL과의 비교, 반복자를 활용하는 방법 등을 중심으로 정리하겠습니다.1. 템플릿을 통한 타입에 독립적인 코드 작성법C++의 템플릿(template)은 다양한 데이터 타입을 지원하는 범용적인 코드를 작성할 수 있게 해줍니다. 이번에 구현한 SimpleVector는 템플릿을 사용하여 특정 데이터 타입에 의존하지 않고 동적으로 크기를 조정할 수 있는 벡터 컨테이너를 작성했습니다.템플릿의 기본 구조템플릿은 다음과 같은 구문으로 작성됩니다:template class ClassName { // 코드 구현};이 구문..
2025.01.03 -
[TIL] 언리얼 부트캠프 Day 12 : C++ Temp - 임시 객체와 관련 개념
오늘은 C++에서 중요한 개념 중 하나인 temp와 관련된 내용을 공부한 후, 이를 정리해 보려고 합니다. temp는 임시 객체(Temporary Object)와 깊은 연관이 있는데요, 이를 이해하면 더 최적화된 코드와 메모리 관리에 큰 도움이 됩니다.1. 임시 객체란?C++에서 **임시 객체(Temporary Object)**는 컴파일러가 프로그램 실행 중 임시로 생성하고, 짧은 시간 동안 사용된 뒤 바로 소멸되는 객체를 의미합니다.임시 객체의 생성 사례리터럴 표현std::string str = "Hello"; // "Hello"는 임시 객체함수 반환값std::string makeString() { return "Temporary";}std::string result = makeString(); ..
2025.01.02 -
[TIL] 언리얼 부트캠프 Day 11 : C++ 스마트 포인터(Smart Pointer)
스마트 포인터란?스마트 포인터(Smart Pointer)는 C++ 표준 라이브러리(STL)에서 제공하는 포인터 래퍼 클래스입니다. 일반 포인터(raw pointer)처럼 동적 메모리를 가리키지만, 스마트 포인터는 메모리 관리를 자동화하여 메모리 누수(memory leak)를 방지할 수 있습니다.스마트 포인터는 스코프를 벗어날 때 자동으로 메모리를 해제하기 때문에, 명시적으로 delete를 호출하지 않아도 됩니다.스마트 포인터의 주요 유형C++11부터 표준으로 제공되는 주요 스마트 포인터는 다음 세 가지입니다:1. std::unique_ptr특징:단일 소유권: 한 객체에 대해 하나의 unique_ptr만 소유할 수 있습니다.복사가 불가능하며, 이동만 가능합니다.사용 예시:#include #include c..
2024.12.31 -
[TIL] 언리얼 부트캠프 Day10 : C++의 스마트 포인터(Smart Pointer)
스마트 포인터는 C++ 표준 라이브러리에서 제공하는 클래스 템플릿으로, 포인터의 메모리 관리 문제를 해결하기 위해 고안되었습니다. 특히, 동적 메모리 할당 시 소유권과 생명주기를 자동으로 관리함으로써, Dangling Pointer, Memory Leak과 같은 문제를 방지합니다.스마트 포인터의 특징RAII(Resource Acquisition Is Initialization) 패턴 사용:객체의 생명주기를 관리하여, 객체 소멸 시 자동으로 메모리를 해제합니다.delete 호출을 명시적으로 하지 않아도 됩니다.소유권 관리:스마트 포인터는 동적 메모리의 소유권을 명확히 정의하고, 이를 기반으로 메모리를 관리합니다.소유권의 종류에 따라 다른 스마트 포인터를 사용합니다.표준 라이브러리 에 정의:C++11부터 표..
2024.12.30 -
[TIL] 언리얼 부트캠프 Day9 : C++ 동적 메모리 누수가 일어나는 이유
동적 메모리 누수(memory leak)란, 프로그램에서 동적으로 할당된 메모리가 해제되지 않고 사용 가능한 상태로 남아 있어, 더 이상 접근할 수 없는 상황을 말합니다. 이 문제는 주로 new로 메모리를 할당했으나, 대응되는 delete를 호출하지 않아서 발생합니다.1. 메모리 누수의 발생 과정동적 메모리는 new 키워드를 사용하여 프로그램 실행 중에 힙(Heap) 메모리에 할당됩니다. 하지만 해당 메모리를 해제하지 않으면, 프로그램이 종료될 때까지 그 메모리가 유지됩니다.예제:int main() { int* ptr = new int(42); // 동적 메모리 할당 // delete ptr; // 메모리를 해제하지 않음 return 0;}여기서 ptr이 가리키는 메모리를 해제하지 않으면..
2024.12.27 -
[TIL] 언리얼엔진 부트캠프 Day8 : 언리얼 엔진과 GitHub를 함께 사용할 때 유의해야 할 점
언리얼 엔진 프로젝트는 일반적인 코드 프로젝트와는 달리 대규모의 바이너리 파일과 다양한 설정 파일을 포함하고 있어 Git을 사용할 때 주의가 필요합니다. 아래는 GitHub와 언리얼 엔진을 함께 사용할 때 알아야 할 주요 유의사항입니다.1. 불필요한 파일 제외 (.gitignore 설정)언리얼 엔진 프로젝트에는 빌드 중 생성되는 불필요한 파일들이 많습니다. 이러한 파일들은 Git에서 제외해야 저장소 크기를 관리하고 성능 문제를 방지할 수 있습니다. .gitignore 파일을 설정하여 관리합니다..gitignore 파일 예시:# Unreal Engine 파일 제외Binaries/Build/Intermediate/Saved/DerivedDataCache/# 로그 및 임시 파일*.log*.tmp*.db# Ma..
2024.12.26