일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 정렬
- stl
- 정렬알고리즘
- map
- 크리티컬섹션
- dataasset
- UE4 커스텀로그
- UML관련
- UE_LOG
- 언리얼엔진구조체
- 강참조
- C++
- 람다
- 델리게이트
- 알고리즘
- enumasByue
- moreeffectiveC++
- 애셋로드
- BFS
- 약참조
- 선택정렬
- unorder_map
- 프로그래머스
- 언리얼가비지컬렉터
- 스마트포인터
- 자료구조
- 람다사용정렬
- C++최적화
- Today
- Total
목록Note (423)
기억을 위한 기록들
디자인패턴의 목적 -> 읽기 쉽고, 이해 하기 쉽고, 수정하기 쉽기 위해 쓴다. 읽기 쉬워지기 위해서 디자인 패턴을 쓰는게 아니라, 디자인패턴을 쓰기 위해 코드가 더 어려워 지기도한다. 결국은 클래스 중심의 OOP 패턴들이 많이 있다. 오히려 간단한 함수 인터페이스나, 함수형 프로그래밍이나 멀티 패러다임(여러가지 섞은)이 더 나을 수도 있다. OOP 중심의 디자인 패턴을 학습하면 클래스에 대한 관점이 더 유연해지고, 문제에 맞는 클래스를 구조를 생각하는데 도움이 된다고 한다.
초안: 2021년 1월 27일 1차 수정 : 2023년 4월 23일 이름의 뜻? - 이름은 각 단계의 부분 문제를 풀 때 근시안적으로 최적해를 구한다고 붙여진 것. (탐욕에 눈이 멀어서 이렇게 [ 됐다고 붙여졌다고...) - 탐욕 알고리즘은 특별한 코드가 있는 알고리즘이 아닌 '개념적인' 알고리즘. - 어떠한 문제에도 적용할 수 있지만, 문제마다 적용하는 방식이 모두 다르다. 동적계획법(DP) 보다 효율적이긴 하지만, 동적계획법처럼 반드시 최적의 해를 구해준다는 보장 하지는 못한다. 최적의 해가 나오길 바랄 뿐이다. -> 빠른 의사결정이 가능. 괜찮은 해법인 경우가 많음. 탐욕알고리즘의 동작과정 1. 해 선택 : 현재 상태에서 부분 문제의 최적해를 구한 뒤, 이를 부분해 집합(Solution Set)에 ..
머신러닝이 요즘 핫하다. 그래서 관심이 아예 없진 않고, 멀리서 살짝 두고 있는 편인데 당장 시작하기엔 해야할 공부와 일들이 많아서 우선순위는 저 멀리에 있다가 잠깐 쉬면서, 이 책을 읽게 되었다. 이 책은 인공지능 관련 이론 지식에서 나아가 어떻게 하면 서비스를 효율적을 배포할 수 있을지에 대해 심도 있게 고민한 내용을 담고 있다고 한다 어떤 프로그래밍을 하더라도 요즘 단순 구현이상의 시스템 설계에 대한 고민을 많이 하고 있지만 쉽지 않긴하다. 그런면에서 이 책은 머신러닝의 설계에 대해 알려주고 있다. 이 책은 챕터11까지 있는데 머신러닝의 구성요소에 대해 전반적으로 아래와 같이 11챕터를 전부 소개해주고 있다는 느낌에 흥미로웠다. 재밌었던 부분은 챕터1 머신러닝 시스템 개요부분에서 '1.2 머신러닝 ..
C:\Program Files\Epic Games\UE_4.27\Engine\Build\BatchFiles\ RunUAT.bat BuildCookRun -project="프로젝트 경로\프로젝트.uproject" -noP4 -platform=Win64 -clientconfig=Shipping -cook -allmaps -build -stage -pak -archive -archivedirectory="프로젝트 경로\Binaries" "%EnginePath%\Engine\Build\BatchFiles\RunUAT.bat" BuildCookRun -project="프로젝트 경로/프로젝트.uproject" -noP4 -platform=Win64 -clientconfig=%BuildConfig% -cook -al..
https://insight.infograb.net/blog/2023/03/30/technical-writing-guide/ 테크니컬 라이팅 깔끔하게 완성하는 10가지 원칙 | DevSecOps 구축 컨설팅, 교육, 기술지원 서비스 이 글에서는 올해 DevOps 트렌드 가운데 5가지를 골라 살펴보고요. 각 트렌드의 개념과 기능, 장점, 시장 전망, 성장요인 등을 들여다봤습니다. insight.infograb.net
동적 계획법이란? - 큰 의미에서 분할 정복과 같은 접근 방식을 의미. - 처음 주어진 문제를 더 작은 문제들로 나눈 뒤 각 조각의 답을 계산하고, 이 답들로부터 원래 문제에 대한 답을 계산해 내기 때문. - 두번 이상 반복 계산되는 부분 문제들의 답을 미리 저장함으로써 속도의 향상을 꾀하는 알고리즘 설계기법을 동적 계획법이라고 한다. 하지만! 모든 문제를 이렇게 풀 수 없고 특별한 속성이 필요하다. 사용방법 : 1. 문제를 부분 문제로 나눈다. 2. 가장 작은 부분 문제부터 해를 구한 뒤 테이블에 저장. 3. 테이블에 저장되어 있는 부분 문제의 해를 이용하여, 점차적으로 상위 부분 문제의 최적해를 구한다. 사용 조건 : 1, 최적 부분 구조 : 큰 문제를 작은 문제로 나눌 수 있습접니다. 2. 중복되는..
- 해시 테이블에서 데이터를 저장할 위치를 사용하기 위해 사용 - 길이가 긴 데이터 둘을 빨리 비교하기 위해 (단, 해시값이 다른 경우만 빨리 비교 가능) - 누출되면 곤란한 데이터의 원본을 저장하지 않기 위해 - 용도에 따라 해시 알고리즘의 요구수항이 조금씩 달라질 수 있다. - 어떤 입력값을 받으면 어떤 해시함수의 규칙에 의해 특정 비트라던가 어떤 정수로 된 값으로 변하게 하는데, 이렇게 변한 값을 해쉬값, 해쉬코드라고 부른다. - 함수임으로 입력값이 같으면 출력값도 일치 해야한다.
초안 : 2021년 1월 3일 1차 수정 : 2023년 4월 10일 해시테이블이란? 해시 테이블(Hash Table)은 키(Key)와 값(Value)으로 이루어진 데이터를 저장하기 위한 자료구조 중 하나입니다. 해시 테이블은 일반적으로 배열(Array)과 연결 리스트(Linked List)를 조합하여 구현됩니다. 해시 테이블의 핵심 아이디어는 키를 해시 함수(Hash Function)에 넣어서 고유한 해시 코드(Hash Code)를 생성하고, 이 해시 코드를 배열의 인덱스로 사용하여 값을 저장하는 것입니다. 이렇게 하면 키와 값 쌍을 빠르게 찾을 수 있습니다. 해시 테이블의 장점은 검색, 삽입, 삭제 등의 연산이 O(1)의 시간 복잡도로 수행된다는 것입니다. 하지만 해시 함수의 충돌이 발생할 경우 해결하..
초안 : 2021년 9월 22일 1차 수정 : 2023년 4월 10일 기존 Sort(정렬) 알고리즘들이 여러 가지가 있다. 그중에서도 크게 2가지로 나눌 수가 있는데, 바로 Stable Sort와 UnStable Sort로 나눈다. 우선 Stable와 UnStable의 사전적 의미로는 아래와 같다. 정렬 알고리즘의 stability란, 동일한 키(key) 값을 가진 원소(element)들이 정렬 후에도 서로의 상대적인 위치가 유지되는 성질을 말합니다. 따라서 stable 한 정렬 알고리즘은 같은 값을 가진 원소들의 순서가 보존되어야 하는 경우에 유용합니다. 안정적인(stable) 정렬과 불안정한(UnStable) 정렬로 해석이 되는데, 먼저 안정적인 정렬은 나열된 수를 정렬한 뒤에도 기존에 있던 순서를 ..
초안 : 2020년 12월31일 1차수정 : 2023년 4월 10일 트리는 이름처럼 나무(tree)와 같은 자료구조이다. 뿌리를 가지고 뻗어져 나뭇가지에서 잎들이 있는 모습을 거꾸로 뒤집으면 자료구조에서의 트리가 된다. 트리 관련 용어 - 노드(Node) : 실제로 저장하는 데이터 - 루트 노드(Root Node) : 최상위에 위치한 데이터 - 리프 노드(Leaf Node) : 마지막에 위치한 데이터들 - 부모-자식 : 연결된 노드들 간의 상대적 관계 - 깊이(Depth) : 노드 -> 루트 경로의 길이 - 높이(Height) : 노드 -> 리프 경로의 최대 길이 - 하위 트리(Subtree) : 어떤 노드 아래의 모든 것을 포함하는 트리 트리의 용도 - 계층적 데이터를 표현한다. - 검색 트리를 통해 ..
언리얼엔진을 사용하다 보면 델리게이트 및 이벤트를 자주 접하다가, 가끔 유용하게 사용 하는 람다 함수에 대해 메모리 할당이 궁금해서 ChatGPT 한테 물어봤다. Q. 람다함수 메모리 할당은 어떻게 돼? A. 람다 함수는 컴파일러에 의해 함수 객체(function object)로 변환됩니다. 이 함수 객체는 일반적으로 람다 함수를 호출할 때 스택에 할당되며, 람다 함수에서 캡처한 변수가 있다면, 해당 변수도 스택에 저장됩니다. 람다 함수가 호출될 때, 스택에 할당된 함수 객체와 캡처된 변수는 모두 소멸됩니다. 따라서, 람다 함수의 메모리 할당은 일반적으로 스택 기반으로 이루어지며, 람다 함수의 호출 또한 스택 기반으로 이루어집니다. 그러나, 람다 함수가 함수 객체로 변환될 때, 람다 함수의 구현 코드와 ..
- 초안 작성 : 2020년 12월 27일 - 1차 수정 : 2023년 4월 3일 정렬 알고리즘이란? - 목록 안에 저장된 요소들을 특정한 순서대로 재배치하는 알고리즘 - 입력데이터는 보통 배열과 같은 데이터 구조 (연결리스틑 사용하면 처음 or 끝부터 차례대로 훑어야해서 정렬 시 사용이 복잡해진다) - 흔히 사용하는 순서 : 숫자 , 사전 순서(A~Z) - 정렬 방향 : 오름차순, 내림차순 사용하는 이유?? - 좀 더 효율적인 알고리즘을 사용하기 위해 - 사람이 읽기 편함을 위한 등등... 정렬시 고려사항 - 시간 복잡도 - 메모리 사용량 - 안정성(stability) - > safety가 아니라 stable 이다. -> 데이터의 순서가 바뀌지 않느냐 여부 문제 - 직렬 vs 병렬 안정성을 잘 모르는 ..