unique_ptr 써보기
·
C++
메모리 누수를 막는 코드를 짜면서, 여러가지 방식을 테스트 하다가 지금까지 써보지 않은 방식인 스마트 포인터를 사용해 보면서 정리해 보았다.관련 코드는 아래 깃허브의 TEXT_RPG 폴더를 체크해 보면 된다.https://github.com/GbLeem/Cpp_Issues 1. unique_ptr 간단한 문법unique_ptr은 헤더에 정의되어있으며, 단 하나의 소유권만 가지게 하는 smart pointer이다.unique_ptr name; 위와 같은 모습으로 선언할 수 있다.주의할 것은 대입과 복사는 불가능하고, 이동 연산은 가능하다.unique_ptr uPtr1;unique_ptr uPtr2(uPtr1); //복사 불가능uPtr2 = uPtr2; //대입 불가능unique_ptr uPtr3(move..
텍스트 RPG 게임 만들기 (C++)
·
C++
싱글턴 객체 / 전방 선언 / cin관련 함수 / 포인터 / const 에 관한 이야기 C++를 이용하여 텍스트 기반 RPG 게임을 만드는 과정에 있어서 생긴 이슈들을 중점으로 글을 정리해 볼 것이다.1. 싱글턴 객체 생성싱글턴 객체의 생성은 어디에서 해야 할까?싱글턴 객체로 구현한 클래스를 정의한 cpp 파일에서 하면 된다.//Character.hprivate: static Character* instance; //Character.cpp...Character* Character::instance = nullptr;Character* Character::GetInstance(string name){ if (instance == nullptr) { instance = new C..
TIL day 21
·
TIL
어제는(1/14) 면접을 보느라 TIL day 20이 없습니다.1. 코딩 테스트오늘 오전에는 오랜만에 코딩테스트 문제를 다시 풀었습니다.level 2에 피로도 문제를 풀었습니다. https://school.programmers.co.kr/learn/courses/30/lessons/87946 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr뭘로 풀지?처음에 이 문제를 보고 그리디 문제처럼 보였습니다. 그런데 예제로 주어진 값들을 보면 어떤 방법으로도 그리디에 해당하지 않았습니다.필요 피로도나, 소모 피로도 둘 중 무엇을 우선시 하더라도 최적의 결과가 나오지 않아서 다른 방법을 생각해 모았습니다.이 문제의 ..
TIL day 19
·
TIL
1. 언리얼 엔진 개념 공부언리얼 엔진의 리플렉션, GC 그리고 데디케이트 서버에 관해 간단히 공부해 보았습니다.https://gbleem.tistory.com/35 Unreal Property System (Reflection)참고자료https://unrealcommunity.wiki/unreal-property-system-(reflection)-36d1e6 Unreal Property System (Reflection) | Unreal Engine Community WikiBrief description of the Unreal Property System.unrealcommunity.wikihttps://dev.epicgames.com/documentatigbleem.tistory.comhttps..
운영체제 몇 가지
·
CS
갑자기 생각난 운영체제에 관련된 내용들 몇 가지를 정리해 본 글입니다.0. 프로세스와 스레드https://velog.io/@gb_leem/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C-%EB%A6%AC%EB%B7%B0-2-%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EC%99%80-%EC%93%B0%EB%A0%88%EB%93%9C 운영체제 리뷰 2 - 프로세스와 쓰레드OS 2 - process and threadvelog.io프로세스 정의실행중인 프로그램같은 프로그램을 여러개 실행시켜도, 모두 다 프로세스이다.프로세스는 각자 고유한 가상 메모리를 가지고 있기에,실제 물리 메모리와 상관없이 프로세스 자신이 전체 메모리를 모두 가진 것처럼 동작한다. (by 가상 메모..
Unreal Engine Dedicated Server
·
Unreal Engine
https://www.youtube.com/watch?v=DrkG3W8a_lshttps://dev.epicgames.com/documentation/ko-kr/unreal-engine/setting-up-dedicated-servers-in-unreal-engine 정보 추가 예정..
Unreal Engine Garbage Collection
·
Unreal Engine
1. 언리얼 엔진에서의 GC 동작 방식overviewUObject의 파생된 오브젝트가 인스턴스화되면, 언리얼 엔진의 GC 시스템에 등록된다.인스턴스화언리얼 엔진의 GC는 30~60초마다 자동으로 더이상 사용되지 않는 객체를 찾아 제거한다.언리얼 GC 시스템영구적으로 존재하는 Root Set를 가지고 있다.reflection을 사용해서 오브젝트의 property를 살펴보고, 참조된 객체에 대해서도 이를 재귀적으로 검사한다.연결된 오브젝트들 중 하나라도 Root Set에 연결되어 있으면, 살아있는 상태로 유지되고Root와 연결되지 않은 경우 해제시키고, 이 오브젝트가 가리키던 모든 포인터를 null로 설정한다.2. Unreal's GC system C++ 코드함수 안에서의 포인터C++에서의 동작과 같음잠시 ..
Unreal Property System (Reflection)
·
Unreal Engine
참고자료https://unrealcommunity.wiki/unreal-property-system-(reflection)-36d1e6 Unreal Property System (Reflection) | Unreal Engine Community WikiBrief description of the Unreal Property System.unrealcommunity.wikihttps://dev.epicgames.com/documentation/ko-kr/unreal-engine/reflection-system-in-unreal-engine 1. Reflection이란reflection은 프로그램이 런타임에 스스로를 검사할 수 있는 능력이다.그러나 C++ 언어 자체는 이러한 기능이 없기 때문에 언리얼이 자..
TIL day 18
·
TIL
1. C++ 텍스트 기반 RPG 게임 제작 과제오늘은 하루종일 필수 기능 구현을 하면서 지나갔습니다. (코테도 못 풀었습니다ㅠㅠ)처음으로 팀원들과 소통하면서 프로젝트를 진행하니 재미있는 시간이었습니다.관련 코드는 추후에 완성되면, 다시 정리하여 업로드 할 예정입니다. 아래는 프로젝트 노션입니다.https://teamsparta.notion.site/1-3-6275cd21563d4ddeba5d7ce71f361581 1기 3조 | NotionMade with Notion, the all-in-one connected workspace with publishing capabilities.teamsparta.notion.site 2. Unreal Engine GC 공부남은 시간에 언리얼 엔진의 가비지 컬렉션에 ..
TIL day 17
·
TIL
1. 코딩 테스트오늘은 프로그래머스 level2 가장 큰 정사각형 찾기 문제를 풀었습니다.https://school.programmers.co.kr/learn/courses/30/lessons/12905 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr시행착오처음에 아무 생각없이 문제를 풀때 이중 for문을 써서(사실상 O(N^4)) 최대 길이를 찾는 코드를 짰습니다.당연하게도 이 방식은 시간 초과가 발생했습니다.#include #includeusing namespace std;int row;int col;int Check(int x, int y, vector> board){ int c = 0; ..