본문 바로가기

전체 글62

24.01.07 언리얼에서의 cpp(언리얼과 비쥬얼 스튜디오 호환 에러 해결법) 이번엔 표준라이브러리 사용이 아닌 언리얼에서 간단한 c++프린트를 생성하여 코딩해보겠습니다.구현 기능은 다음과 같습니다. 새로운 엑터를 생성하고 엑터가 spawn 되는 시점에 동작되도록 아래 요구사항대로 동작하도록 코드를 구현 합니다시작점(0,0) 있는 게임 캐릭터가 랜덤하게 10회 이동 합니다. 각 스텝에서 거쳐간 좌표를 모두 출력하는게 목적입니다.세부 요구사항은 아래와 같습니다.시작점은 (0,0)이고 한번 이동시 x좌표와 y좌표 모두 2이상 이동할 수 없습니다. 예를 들면 아래와 같습니다.(0,0) 에서 (1,2)은 이동할수 없습니다. y좌표가 2이상 이동했기 때문입니다.(0,0)에서 (1,1)은 이동할 수 있습니다. x좌표 y좌표 모두 2미만 이동했기 때문 입니다.이동은 입력을 받는게 아니고 10회.. 2025. 1. 7.
25.01.06 언리얼 cpp 디자인패턴 디자인 패턴이란 “개발 시 반복적으로 등장하는 문제를 해결하기 위한 일반화 된 솔루션” 이라고 정의할 수 있습니다. 경험이 많은 개발자들이 개발자들이 구현을 하면서 많이 고민하는 문제를 아래와 같이 정리해서 만든 패턴 입니다. 패턴의 종류는 아래와 같이 구성되어 있습니다.출처 : 자바 구조 패턴은 어떻게 쓰일까? | 요즘IT 위 그림에서 보듯이 디자인 패턴은 크게 3개로 분리 됩니다. 생성 패턴(Creational Patterns)새로운 것을 만들어내는 방법과 관련된 패턴 입니다. 예를 들어 공장에서 물건을 찍어내는 것에 비유할 수 있습니다. 이 물건이 프로그래밍에선 객체가 됩니다. 이 중에서 싱글톤 패턴에 대해 알아볼 것입니다. 구조 패턴(Structual Patterns)여러 부품을 어떻게 조립하고 .. 2025. 1. 6.
25.01.03 언리얼 클래스로 벡터구현 구현 내용은 다음과 같습니다.클래스의 이름은 SimpleVector라고 합니다.타입에 의존하지 않고 데이터를 받을수 있는 배열을 멤버변수로 갖습니다.생성자는 아래와 같이 구현 합니다.기본 생성자는 크기가 10인 배열을 만듭니다.숫자를 하나 받는 생성자는 해당 숫자에 해당되는 크기의 배열을 만듭니다.아래와 같은 멤버함수를 구현 합니다.push_back 인자로 받은 원소를 맨 뒤에 추가 합니다. 반환값은 없습니다. 배열의 크기가 꽉 찼는데 원소가 더 들어올경우 아무 동작도 하지 않습니다.pop_back은 벡터의 마지막 원소를 제거 합니다. 만약 제거할 원소가 없다면 아무 동작도 하지 않으며, 인자 및 반환값은 없습니다.size는 인자가 없고 현재 원소의 개수를 반환합니다.capacity 현재 내부 배열의 크.. 2025. 1. 3.
25.01.02 언리얼 cpp STL에 대하여 STL이란?C++의 **STL(Standard Template Library)**은 데이터를 저장하고 조작하기 위한 표준 템플릿 라이브러리입니다. STL은 C++ 프로그래밍에서 효율적이고 간결한 코드를 작성하는 데 매우 유용합니다.  STL 구성 요소STL은 크게 3가지 주요 구성 요소로 나뉩니다:컨테이너 (Containers)데이터를 저장하는 객체.예: vector, list, deque, set, map 등.알고리즘 (Algorithms)데이터를 정렬, 검색, 변경하는 데 사용되는 함수들.예: sort, find, binary_search, reverse, accumulate 등.이터레이터 (Iterators)컨테이너의 요소를 순회하는 데 사용되는 포인터와 비슷한 객체.예: begin(), end().. 2025. 1. 2.
24.12.30 언리얼 cpp 자원관리(메모리관리) 메모리 관리는 cpp의 가장 큰 장점이라 할 수 있습니다. 다른 객체지향 언어들에 비해 수동적인 메모리관리로 효율적인 메모리 관리가 가능합니다. 하지만 큰 힘에는 큰 책임이 따르는 법입니다. 메모리를 효율적으로 관리하기 위해서는 메모리누수에 대해 경계해야합니다. 먼저 일반적인 그동안 했던 변수들의 어떤 메모리에 저장되는지 살펴보겠습니다.일반 변수들은 대부분 스택 메모리 공간을 차지 합니다. 스택 메모리의 특징은 변수의 생존 주기가 끝나면 변수 선언시 할당되었던 메모리고 저절로 회수가 된다는 것 입니다. 따라서 사용자가 따로 메모리를 관리 해줄 필요가 없습니다. 변수의 생존주기는 선언된 라인을 기준으로 가장 가까운 마침 괄호”}” 입니다.#include using namespace std;void func.. 2024. 12. 30.
24.12.26 두수의 차 구하기 및 배열의 합과 평균 그리고 정렬함수 만들기 오늘 알게된 새로운(?) cpp를 공부하면서 느낀 점은 가장 기본적인 것부터 공부하면서 알게되었습니다. 그동안 using namespace std;를 써서네임스페이스를 활용하여왔는데 매번 std::를 표기해주는 버릇을 들이는 편이 좋다는 것이었습니다. std 네임스페이스를 가져올때 이름선언이 충돌할 수 도 있기때문입니다. 지금이야 간단한 연습용 코드들만 쓰기때문에 문제가 없어왔지만실무로 들어가게 되면 보다 구조가 복잡하고 양이 많은 상용수준의 코드에서는 충돌경우가 많기때문에 std::를 표현하는것이 더 훌륭한 코드연습입니다. 또한 pow함수에 대해 잊고있었는데 cmath가 제공하는 함수로 제곱수가 가능합니다.pow(5,4) = 5의 4제곱입니다. 또한 round는 반올림 함수라는것을 잊지맙시다. 항상 기.. 2024. 12. 26.