일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 스마트포인터
- 선택정렬
- UELOG
- dataasset
- 델리게이트
- C++최적화
- C++
- 데이터애셋
- moreeffectiveC++
- 자료구조
- 약참조
- BFS
- UML관련
- 람다
- UE4 커스텀로그
- 프로그래머스
- 정렬알고리즘
- 애셋로드
- enumasByue
- stl
- 강참조
- 언리얼엔진구조체
- 언리얼가비지컬렉터
- map
- 크리티컬섹션
- 알고리즘
- 정렬
- UE_LOG
- 람다사용정렬
- unorder_map
- Today
- Total
목록Note (423)
기억을 위한 기록들
요즘(?) 핫하다고 하는 머신러닝과 딥러닝에 관심이 계속 쏠리고 있었다. 그렇게 운좋게도 해당 책을 얻어 읽어 볼 수 있었다. 책 제목에서부터 그렇듯 개발자가 일단 '소프트 웨어 개발자'를 위한 개발자이고 즉, 기존에 프로그래밍에 대해 선수지식이 잇는 사람들을 대상으로 생각됐다. 그 이유로 살펴보니 선수지식으로 파이썬 표기법을 이해해야 한다고 한다. 그외에도 뭔가 따라해보는 예제로 코틀린이나, 스위프트등으로 앱을 만드는 예제가 있어서 그런듯 싶다. 책을 먼저 목차부터 본다면 파트1. 모델구축 파트2 . 모델사용 크게 2파트로 구분되어 있고 챕터가 세분화 되어 있다. 우선 파트1. 모델 구축을 보면 챕터1. 텐서플로 소개 챕터2. 컴퓨터 비전 소개 챕터3. 고급 컴퓨터 비전 : 이미지에서 특징 감지하기 챕..
"F:\UnrealEngine-5.0\Engine\Build\BatchFiles\RunUAT.bat" BuildCookRun -project="F:\Project.uproject" -noP4 -platform=Win64 -clientconfig=Development -cook -allmaps -build -stage -pak -distribution -archive -archivedirectory="F:\ResultPath" -ubtargs="-DEV"
오브젝트의 포인터는 살아있는데 유효한 데이터를 제대로 담고 있지 않아 찾아보다가 알려준 함수이다. 특정 객체가 가비지 수집되었는지 알아내려면, 타이머를 하나 돌려서 IsValidLowLevel() == true인지 체크해 보면 된다. 참고로, 가비지 수집 대상인 객체를 사용하기 전에는 IsValidLowLevel() 함수로 체크해 보는 습관을 들이는 것을 추천한다. 참고 : https://eunho5751.tistory.com/28?category=926857 IsValid / IsValidLowLevel 언리얼 엔진은 UObject 인스턴스에 대해서 Garbage Collection 기능이 존재하지만, 우리는 의도적으로 또는 의도치않게 이 기능을 우회할 수 있기 때문에 UObject 인스턴스를 사용할 ..
이번에 리뷰할 책은 이라는 책으로, 이전 저서로 이라는 책도 있다. 이 책도 리뷰로 받아본 책이지만 그 전 시리즈인 은 직접 사서 읽어 본 적이 있다. http://www.yes24.com/Product/Goods/62926484 피, 땀, 픽셀 - YES24 게임 개발 뒤에 숨은 승리와 격동의 이야기 게임 개발의 이면에서 일어나는 장대한 서사시 속으로 독자를 안내한다. 야근에 지친 수백 명의 개발자로 이루어진 팀부터 단 한 명의 고독한 괴짜 www.yes24.com 전작은 유명한 게임들의 개발과정에 있던 히스토리나 내용들은 정리해 놓은 책이였고, 이번 책인 도 마찬가지이나, 결이 살짝 다르다. 이번작에서는 리셋이라는 단어를 쓴것 처럼 밝은 면포 다도 게임 업계의 살짝(?) 부정적인 면을 이야기해주고 있..
이번 리뷰 해볼 책은 안드로이드 입문 책으로 추천할만한 이다. 사실 나는 안드로이드 앱자체에 대한 입문은 한....5~6년전에 잠깐 맛만보고 그 뒤로는 크게 접할일이 없었는데, 다시 입문한다는 생각으로 해당 책을 읽어 보았다. 책은 간단하게 기본 안드로이드 스튜디오에 대한 가이드와 코틀린 프로그래밍 언어를 사용하면서 알려준다. 그래서 간단한 코틀린 언어에 대한 가이드도 지원해주고 있다. 코틀린이라는 언어도 처음들어봤고, 설명도 처음봤는데 거의 안드로이드 스튜디오에게 자바에 이어 공식언어라고 선언했다고 한다. 그리고 간단한 코틀린 언어 문법에 대한 설명을 해준다. 그리고 예제 샘플을 만들어보며 배우고 있는데, 개인적으로도 적당한 이론+문법과 실제 예제 프로젝트를 만들어 보는게 굉장한 도움이 된다고 생각한다..
이번 책은 소프트웨어 아키텍처에 관한 책이다. 요즘 개인적으로 어떤 소프트웨어를 개발하고 만드는 단계에 있어서 아키텍처에 대한 고민들을 주로 하게된다. 물론 정답은 없고, 상황에 따라 다르긴하지만 다양하게 접근하는 방법에 대해 알려주고 있으며, 책 뒷면에서는 "실용 가이드북"이라고 칭하고 있다. 대상 독자는 개발자라는 대상에서 전체적으로 해당되고 있다고 생각하고 그중에서 나는 미숙한 개발자라서 도움이 될것 같다. 책은 크게 2파트로 1. 리스크 주도 소프트웨어 아키텍처 2. 아키텍처 모델링 으로 나누어져 있어 해당 파트 아래에 다양한 챕터들로 설명해주고 있다. 파트0 챕터1 개요를 지나, 파트1에서는 좀 더 이론적인 소프트웨어 아키텍처에 관해 설명해주고 있다. 챕터2부터 2.소프트웨어 아키텍처/ 3. 리..
https://www.cplusplus.com/reference/sstream/stringstream/stringstream/ stringstream::stringstream - C++ Reference initialization (2)explicit stringstream (const string& str, ios_base::openmode which = ios_base::in | ios_base::out); www.cplusplus.com #include #include using namespace std; int main() { string str = "Hello World"; stringstream strStream(str); string to, From; strStream >> to >> Fro..
const는 상수화 시켜주는 키워드로 const int var = 5; //OK! const int var2; //error! var = 7 //error! 선언한 값을 바꾸지 못하며 초기화가 안되었다면 에러를 뿜어낸다. 하지만 이는 모두 런타임에서 확인하고 있으며, 컴파일 시간에서 확인할수 있게 추가된 constexpr이 C++11부터 지원되었다. constexpr int var = 5; //OK! constexpr int var2; //error! var = 7 //error! 사용하는 측면에서 변수 앞에 붙이는데는 큰 차이는 체감하지 못한다. 함수에서 사용할때의 차이가 좀 있는데 1. 가상으로 오버라이딩된 함수가 아니여야한다. 2 반환 값은 반드시 LiteralType이여햔다. 3. 함수에 붙을경우..
저렇게 큰 회사는 어떻게 일할까에 대한 해답을 주는 책을 찾았다. 이번달 5월 10일에 출간한 책이다. 내가 가끔 보던 "코드 없는 프로그래밍" 유튜브 채널에서도 소개 해줬던 책이다. https://www.youtube.com/watch?v=johqw9kSIWM&ab_channel=%EC%BD%94%EB%93%9C%EC%97%86%EB%8A%94%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D 나도 C++ 언어를 주로 다뤄오고 있고 구글에서 C++을 10년 이상 다뤄오는 다르는 큐레이터 2명이 작성한 책이니 기대가 됐다. 이 책은 기본적으로 어떤 프로그래밍 어떻게 작성하고 사용하는가에 대한 부분 보다는 "소프트웨어 엔지니어링이란"에 대한 좀 더 원초적인 질문에 대한 대답들..
using FStringFormatArgs = TMap; int itemnumber = 2; FStringFormatArgs args; args.Emplace( TEXT("0"), itemnumber); FString result = FString::Format(TEXT("item number is : {0}."), args); 나중에 사용할때 헷갈릴까 적어놓기... 근데 결국엔 FString::Format 함수 안을 보면 금방 확인할수 있다.
- 3차원 공간 상의 물체가 놓인 방향을 표시하기 위해 스위스 수학자 오일러가 소개한 방법. 장점 - x,y,z 각각의 축을 기준으로 얼만큼 회전할 것인지만 알면된다. - 회전 변환 행렬은 최소한 9개(3x3 행렬)의 값을 필요로 하는 반면 오일러 각을 이용하면 단 3개의 값으로 충분하여 메모리 공간을 훨씬 적게 쓰는 장점이 있다. 회전 변환 행렬을 보고 어떤 축을 기준으로 얼마만큼 회전을 했는지 알기가 쉽지 않지만, 오일러 각은 바로 알 수 있으므로 가장 직관적인 방향 표현법이다. - 만약 좌표계에서 한 축만을 기준으로 회전하는 변환들을 조합하는 경우라면 단순히 그축에 해당하는 회전각들을 모두 더하면 된다. 이런 경우는 회전의 곱셈보다 훨씬 빠르다. 단점 - 대표적인건 *짐벌락 ( 어떤 한축에 대해 물..
어떤 플러그인을 뒤져보다가 발견하게 되서 나중에 써먹기 위해 까먹을까봐 적음. ex)(언리얼엔진 클래라는 베이스 자세한건 생략) Parent 클래스에서 AvailableItem이라는 함수가 있다. 해당 함수안에 unimplemented(); 매크로가 선언되어 있다. 만약이 함수를 상속받는 클래스에서 해당 함수를 호출하지 않게되면 unimplemented(); 에서 check가 걸리게 된다. class Parent { UFUNCTION(BlueprintNativeEvent, Category = "Item") bool AvailableItem(); }; //.cpp bool Parent::AvailableItem__Implementation() { unimplemented(); //자식클래스에서 해당 함수 ..