Floating Point 란?
CS2025. 7. 21. 23:08Floating Point 란?

Floating Point는 글자 그대로 해석하면 '떠 있는 점'이고 다른 말로하면 '부동 소수점'이다.부동 소수점이 뭔지 IEEE 754는 또 뭔지 알아 보도록 하자.다른 인터넷글을 찾아보면 부동 소수점에 대한 설명이 불친절? 하다고 느껴서 본인이 공부한 것을 좀 쉽게 풀어서 정리하려고 한다. 그리고 123.125f의 메모리를 까보면 00 40 f6 42가 나오는데 왜 값이 이렇게 나오는지와 에디안에 대해서도 짧게 알아보자. IEEE 754와 float단정도우선 어디서 한번쯤 들어봤을 법한 IEEE 754가 무엇인지 알아보자. (보통 I 트리플 754라고 발음하는 것 같다)'IEEE 754는 컴퓨터가 부동 소수점 수를 이진수로 어떻게 표현하고 연산할지를 규정한 국제 표준이다.' 그럼 IEEE 754라..

[UE5] SetBrushFromSoftTexture함수 분석
UE52025. 6. 21. 18:32[UE5] SetBrushFromSoftTexture함수 분석

UImage클래스의 SetBrushFromSoftTexture함수를 간단하게 분석하고 본인 피셜로 정리하였습니다.우선 해당함수는 텍스쳐를 '비동기 로딩'을 해주는 함수이다. ue에서는 ref가 두가지로 나뉘는데 첫번째는 hard ref 두번째는 soft ref가 있다. hard ref는컴파일 타임에 설정된 Resource 또는 Instance에 대한 직접적인 포인터이다.우리의 캐릭터가 로드되면서, 함께 로딩하는 TObjectPtr로 선언한 언리얼 오브젝트들도 메모리에 함께 로딩된 것을 의미하고 soft ref는 필요한 데이터만 로딩하도록 할 수 있는 것을 의미한다. 에셋의 경로만을 가지고 있고 사용자가 manual하게 로드해주어야한다(필요시) SetBrushFromSoftTexture함수는 텍스쳐를 비동..

[CPP] Universal Reference & forward (모두의 코드 분석)
CPP2025. 5. 31. 18:10[CPP] Universal Reference & forward (모두의 코드 분석)

https://modoocode.com/228" data-og-description="모두의 코드 씹어먹는 C++ - 작성일 : 2018-03-27 이 글은 50581 번 읽혔습니다. 등에 대해 다룹니다. 안녕하세요 여러분! 지난번의 우" data-og-host="modoocode.com" data-og-source-url="https://modoocode.com/228" data-og-url="https://modoocode.com/228" data-og-image=""> 씹어먹는 C++ - 모두의 코드 씹어먹는 C++ - 작성일 : 2018-03-27 이 글은 50581 번 읽혔습니다. 등에 대해 다룹니다. 안녕하세요 여러분! 지난번의 우modoocode.com위 글에서 좀 내리다 보면 perfe..

[UE] UnrealEngine 빌드 과정과 Module 추가방법
UE52025. 5. 30. 15:56[UE] UnrealEngine 빌드 과정과 Module 추가방법

우선 unreal engine이 어떤 요소들로 이루어져있는지 부터 알아보자.ue는 module, plugin, project로 구성이 되어있으며 ue에서 코드 구조를 조직화하고 확장하는데 필수적인 구성요소들로 이루어져있다. Module이란module은 에디터 툴, 런타임 기능, 라이브러리 등과 같은 기능을 담당하는 코드의 패키지이다. 좀더 쉡게말하면 하나의 DLL처럼 동작하며, 코드 파일들을 하나의 단위로 묶어주는 역할을 한다.각 module은 .cpp, .h를 함께 갖고있으며, 이 둘을 하나의 최소실행 단위로 생각할 수 있다. module은 프로젝트, 플러그인과 같은 다른 요소에 종속적이다. 즉, 모듈은 단독적으로 동작할 수 없으며, 다른 plugin 또는 project와 함께 동작하도록 설계되어야 한..

[CPP] std::move와 const제약
CPP2025. 5. 29. 17:31[CPP] std::move와 const제약

std::move와 const 제약에 다룬 글이다. 이동생성자와 perfect fowarding과 밀접한 연관이 있는데 perfect forwarding은 다음 글에서 다루도록 하겠다. 우선 이동생성자(및 이동대입 연산자)가 무엇인지 부터 알아보자.MSDN을 보면 '이동 생성자를 사용하면 rvalue개체가 소유한 리소스를 복사하지 않고 lvalue로 이동할 수 있습니다.' 라고 되어 있다. 게임에서 예를 들어보면 level_a에 player가 있고 이제 이 player가 level_b로 이동했다고 해보자.그럼 level_b에서 player에 대한 정보를 싹다 복사해서 level_b에 동일한 데이터로 player를 생성할 수 있다.근데 player가 10MB의 용량을 가진다면 level_b로 이동하는데 ..

[C++] std::vector resize와 reserve의 차이점
CPP2025. 5. 6. 22:30[C++] std::vector resize와 reserve의 차이점

STL의 대표 컨테이너인 vector의 resize와 reserve의 차이점을 알아보도록 하자.resize는 코테 공부를 할 때 정말 많이 사용했었는데 reserve는 가끔만 사용했었는데 둘의 차이점이 있다는 점정도만 알고 넘어가다가 도저히 안될거같아서 정리한 글이다...ㅠ 우선 vector자체는 가변배열이다. 데이터를 push_back하다가 보면 현재 동적할당받은 크기를 넘어서는 순간 다시 현재 사이즈 보다 더큰 배열을 동적할당하여 데이터를 새로 동적할당한 곳으로 복사한다. 이렇게 동적할당하고 복사하고~ 이런 과정의 비용이 비싸기 때문에 동적할당을 한번만 수행하여 비용을 낮추는데 주로 사용되는 vector의 멤버 변수가 두가지가 있다. 바로 resize, reserve이다. (동적할당이 어떻게 발생하고..

[백준] 1182 부분수열의 합 C++
알고리즘/백준2025. 5. 5. 21:42[백준] 1182 부분수열의 합 C++

https://www.acmicpc.net/problem/1182 우선 부분수열의 개념부터 보도록 하자. 부분 수열이란? ' 부분수열은 주어진 수열에서 일부 또는 전체 원소를 원래 순서대로 뽑아 만든 새로운 수열을 말합니다.'{a, b, c}라는 집합에서 부분 수열은 {a}, {b}, {c}, {a, b}, {a, c}, {b, c}, {a, b, c} 공집합 이렇게 된다. {b, a}는 부분 수열이 아니다. 순서대로 뽑지 않았기 때문이다. 그럼 이제 문제를 어떻게 풀지 접근해보도록 하자.{1, 2, 3} 이있을 때 4를 만족하는 부분 수열의 개수를 구하기 위해서 {1, 3}을 뽑으면 된다는 것을 직관적으로 알 수 있는데 이를 코드로 나타내기 위해서는 '백트래킹'이 필요하다. (n이 20이기 때문에 비트..

[백준] 인구이동 16234 C++
알고리즘/백준2025. 4. 29. 10:45[백준] 인구이동 16234 C++

https://www.acmicpc.net/problem/16234 해설인구이동 문제이다.핵심은 인접한 마을의 인구수가 L보다 크거나 같고 R보다 작거나 같으면 이동이 가능하다고 판단하고 인구이동을 시키는것이다. Connected Component를 구하는 문제이다. 이동이 가능하다는 것의 판단은 인접한 두 마을 사이의 인구차이 값에 절대값을 취해서 판단해주면 된다.문제는 n*n짜리 보드(배열)에서 '어떻게' 이동이 가능한 마을을 '묶어서' 처리하냐는 것이다. 본인 처음에 dfs나 bfs로 탐색하여 unoin find?나 그룹화할 또 다른 배열을 만들어서 같은 번호의 그룹끼리 합을 더하고 평균을 내서 원본 board배열에 값을 갱신하는 아이디어를 생각했는데 이 보다 간단한 방법이 있다. '묶어서' 처리한..

image