728x90

Programming 12

RenderDoc, Intel GPA, PIX 그래픽스 프로그래밍 프로파일링, 디버깅 도구

RenderDoc RenderDoc은 MIT 라이선스의 무료 독립형 그래픽 디버거. Windows, Linux, Android, Nintendo Switch™ 플랫폼에서 Vulkan, D3D11, D3D12, OpenGL, OpenGL ES RHI를 사용하는 모든 애플리케이션을 빠르고 쉽게 단일 프레임을 캡처하고 상세히 살펴볼 수 있습니다. https://renderdoc.org/ RenderDoc I've written this post with a specific target audience in mind, namely those who have a good grounding in existing APIs (e.g. D3D11 and GL) and understand the concepts of mu..

[Unity] C# Finalizer 와 Garbage Collector 동작에 대한 정리

C++의 소멸자(Destructor)와 C#의 Finalizer의 공통점과 차이점 공통점 문법적으로 ~Class() {...} 로 코딩 클래스 객체가 소멸될 때 리소스를 해제하기 위해 사용 차이점 C++ 의 소멸자는 delete myObj; 와 같이 명시적으로 호출 시기를 정할 수 있음. C# 의 소멸자는 C++와 구분하기 위해 Destructor대신 Finalizer로 부름. Finalizer는 개발자가 그 호출을 명시적으로 결정할 수 없고, Garbage Collection 메커니즘에서 호출. 좀 더 구체적으로, C# 클래스에 Finalizer 가 존재하면, 해당 객체의 생성자 호출시 Finalization Queue라는 QC 내부 큐에 레퍼런스 추가. 이후, Managed Heap이 차서 GC처리를..

[책] 코딩인터뷰 퀘스천, 내용 정리 모음

. 좋은 책이고 광범위하고 어려운 책이었습니다. 가볍게 기본기 연습삼아 읽어보자 하고 시작했는데 생각보다 내용이 깊고 넓고 어려운 내용들이 많았습니다. 기본기를 잡기에도 부족함이 없어보이는 책입니다. 그도 그럴 것이, 책 초반의 저자의 말에서 이런 구절이 나옵니다. ​ "이 책의 내용은 필요한 모든 주제를 자세하게 다루고 있다" "이 책을 읽고 전부 이해했다면 면접에 도전해도 된다고 확신한다. 이 책은 대학 공학 학사, 석사 준비하는 학생들에게도 매우 유용하다" ​ 프로그래밍 관련 학사/석사 수준의 내용들을 다루고 있다고 하니, 어려워도 이상할 게 없어보입니다. 아무튼 매우 좋은 책이고 나중에 한번은 더 읽어보고 내용을 이해해보려 노력해봐야겠다는 생각도 들게 합니다. 코딩인터뷰 퀘스천"메모" 프로그래밍 ..

코딩인터뷰 퀘스천"메모+후기" 디자인(설계), 마무리

. . 책 읽으면서 메모했던 내용들 옮겨봅니다. ​ - 챕터21 디자인(설계) 디자인 패턴 - 특정 종류의 문제를 해결하기 위함 - 문제를 이해하고 사용할 패턴을 좁힘. - 서로 다른 패턴들 사이의 관계성 찾고, 안정적으로 사용할 패턴들과 변경 사항들 결정. ​ 리팩토링 외부동작 변경 없이 내부 구조 변경. - 여러 디자인패턴 공부로는 좋은 설계자가 되는데 불충분. - 패턴들을 이해하고 장점을 더 활용할 수 있어야 좀 더 이해하기 쉽고 수정하기 편하도록 소프트웨어 내부 구조를 변경. ​ 패턴 - 생성 패턴 : 객체의 생성을 다룸 Factory, Abstract Factory, Builder, Prototype, Singleton - 구조 패턴 : 클래스들이 커다란 구조를 형성하기 위해 결합될 수 있는 방..

코딩인터뷰 퀘스천"메모" 탐욕,분할정복 알고리즘, 동적 계획법, 복잡도 클래스

. . 책 읽으면서 메모했던 내용들 옮겨봅니다. ​ - 챕터17 탐욕 알고리즘 체스 게임에서 의사 결정은 향후의 수에 대해서도 고려. 반면 테니스는 그 순간 최선이라고 생각하는 현재 상태를 기반으로 행동. Greedy Strategy 는 테니스에 적합. ​ 직관적이고 간단하며 이해하기 쉽고 코드화가 용이함. 지역적 최선이 전체 문제의 해라는 보장이 없다. ​ 응용 : 선택정렬, 위상정렬. 힙 정렬. 허프만 부호화 압축 알고리즘. 동전 교환 문제. 환전. 작업 스케쥴 알고리즘. ​ 챕터18 분할 정복 알고리즘 탐욕 전략으로 해결되지 않는 문제들 주 몇몇은 Divide & Conquer 로 해결 가능. 재귀 기반, 문제를 직접 해결할 수 있을 정도로 간단한 문제가 될 때까지 동일한 유형인 둘 이상의 하위 문..

코딩인터뷰 퀘스천"메모" 검색,해싱,문자열 알고리즘

. . 책 읽으면서 메모했던 내용들 옮겨봅니다. ​ - 챕터11 검색 불규칙 선형 검색 : 정렬되지 않아 순서를 모르는 배열. 최악의 경우 모든 요소 검사 O(n) 정렬/규칙 선형 검색 : 정렬된 배열에서 검색. O(n) 이진 검색 : 사전 검색처럼. 인접한 방향으로 추적. O(logn) 심볼 테이블 그리고 해싱 : 13장 심볼 테이블, 해싱 챕터 참조. 문자 검색 알고리즘 : 15장 문자열 알고리즘 챕터 참조. ​ 챕터14 해싱 시간 복잡도 O(1) 로 만들기 위해. 해싱 구성 요소 - 해시 테이블 (Hash Table) - 해시 함수 (Hash Functions) : 해시값 충돌 최소화/균일분포, 쉽고 빠른 연산, 모든 키의 정보로 해싱 적재 인수(Load Factor) : 저장데이터 수 / 해시테이..

코딩인터뷰 퀘스천"메모" 그래프 알고리즘, 정렬

. . 책 읽으면서 메모했던 내용들 옮겨봅니다. ​ - ​ 챕터9 그래프 알고리즘 서울에서 뉴욕까지 가는 가장 빠른 노선은? 같이 객체간의 관계에 대한 정보 자료구조가 그래프. 정점 노드들의 집합 V와 간선(정점의 쌍)들의 집합 E를 사용하여 (V, E)로 나타냄. Directed Edge : 방향성을 가지는 간선 Undirected Edge : 방향을 가지지 않은 간선 Directed Graph Undirected Graph ​ 그래프 어플리케이션 전자 회로 컴포넌트간 관계 표현, 운송 네트워크, 컴퓨터 네트워크, 데이터베이스 ​ 챕터10 정렬 정렬 알고리즘의 분류 기준 비교 횟수(최선은 O(nlogn), 최악은 O(n^2) 복잡도) 도치(값 교환) 횟수, 메모리 사용, 반복, 안정성, 작용성 ​ 비교..

코딩인터뷰 퀘스천"메모" 프로그래밍 기초, 알고리즘, 연결 리스트, 스택

. . 책 읽으면서 메모했던 내용들 옮겨봅니다. 챕터1 프로그래밍 기초 / 12, 13 프로그래밍 테크닉, 기초 문제 -네임 맹글링(Name mangling) C컴파일러는 언더바’_’ 를 붙여 함수나 심볼을 연결. main() 함수는 _main() 심볼명, int counter; 는 _counter 심볼명에 링크. C++ 컴파일러는 함수 오버로딩 메커니즘. 단순 언더바를 붙이지 않고, 링커가 ‘맹글링’을 사용. 네임 맹글링 : C++ 컴파일러가 동일한 이름의 함수, 변수들을 라인 식별자, 인자 크기 등의 확장 정보들을 가진 어떤 명칭(유일 심볼명)으로 변경, 연결하기 위한 메커니즘. ​ 함수명 맹글링 : @ 변수명 맹글링 : @@ ex) int Test(int a, int b) => _1add@8 ex)..

유니티..바이블 - 19장 마스터 데이터 퀘스트 (1화)

. . 19장: 마스터 데이터 퀘스트 Excel Importer, 마스터 데이터의 구축과 활용, 레벨 디자인, ScriptableObject ​ - Excel Importer 플러그인을 이용한 엑셀 파일의 이용 방법 - 엑셀 파일을 이용하는 마스터 데이터 구축의 예 - 유니티에서 마스터 데이터를 이용하는 구체적인 구현 방법 ​ 플러그인 주소 https://github.com/mikito/unity-excel-importer/releases ​ Unity 2019.1.4f1 버전으로 진행. 프로젝트를 열면 마이그레이션이 완료되고 아래와 같은 에러가 뜸. Feature `out variable declaration' cannot be used because it is not part of the C# 4.0..

프로그래밍, 구현이 더 중요? 설계가 더 중요?

© annca, 출처 Pixabay ​ "프로그래밍은 잘 동작만 하면 된다" 프로그래밍을 하는 사람이라면 누구나 한 번쯤은 언젠가 들어봤을 이야기입니다. 맞는 말입니다. 하지만, 오해를 부르기도 좋은 말입니다. ​ 이 말은 마치, "[설계를 대충 해도,] 프로그래밍은 잘 동작만 하면 된다" 라고 말하는 것처럼 보입니다. ​ 이렇게 한 번 비유해볼까요. "설계를 대충 해도, 집은 잘 살기만 하면 된다" 어떤가요? 제가 느끼기엔, 앞뒤가 안 맞는 말로 보입니다. 집을 대충 설계하고 지었는데 잘 살아질 리가 없죠. 어딘가 분명 문제가 있을 겁니다. 고려되지 않은 배선, 수도관, 보일러, 에어컨 위치, 방음재, 단열재, 마감, 바닥재 등등등... 고려할 것이 많은 만큼, 살기 좋은 집을 지으려면 집을 대충 설계..

728x90
반응형