본문 바로가기

개발 지식3

[Unity] 유니티 최적화(Unity Batching) 1. Draw Call(드로우 콜) - CPU : 디지털 콘텐츠를 구성하고 있는 게임 오브젝트, 데이터 등을 읽어들이는 역할 - GPU : CPU에게 받아온 데이터를 토대로해서 컨텐츠를 그리는 역할 - Draw Call : CPU가 GPU한테 자신이 읽어들인 데이터를 그리리고 내리는 명령 - Command Buffer : 드로우 콜에 따라오는 데이터들, 다양한 정보들의 버퍼들이 포함되어 있음. - SetPass Call : Command Buffer의 그래픽 계열 쪽(메테리얼, 쉐이더 등)을 묶어놓은 그룹 SetPass를 전달하는 것을 의미 - Batch : Draw Call + SetPass Call 을 통해 GPU로 넘기는 과정, 많으면 많을수록 부하가 줄음. - 최적화 : Batch를 줄이는 것. .. 2023. 11. 3.
[개발 지식][C++/C#] 얕은 복사, 깊은 복사 1. 얕은 복사(shallow copy) - 한 객체의 모든 멤버 변수의 값을 다른 객체로 복사 - 실제 포인터가 가리키는 값은 같기 때문에 한 쪽이 변하면 다른 한 쪽도 따라서 변함 2. 깊은 복사(deep copy) - 한 객체의 모든 멤버 변수의 값 뿐만 아니라, 포인터 변수가 가리키는 모든 객체에 대해서도 복사 - 포인터까지 복사가 되어 생기는 것으로, 한 쪽이 아무리 바뀌어도 다른 한 쪽에는 영향이 없음 3. 소스코드(C++) // c++ #include #include #include #define _CRT_SECURE_NO_WARNINGS using namespace std; class Student { public: char* name; int age; Student(const char* .. 2023. 10. 31.
[개발 지식] 클린코드와 리팩토링 1. 클린 코드 - 가독성이 높은 코드 - 코드를 작성하는 의도와 목적이 명확하며, 다른 사람이 쉽게 읽을 수 있어야 함 - 다른 사람이 코드를 봐도 자유롭게 수정이 가능 - 변경된 내용이 어떻게 상호작용하는지 이해하는 시간을 최소화 시키는 것 - 가독성을 높이는 방법 1) 의미있는 네이밍 2) 오류 제거 3) 중복 제거 4) 의존성 최소화 5) 클래스, 메소드가 한가지 일만 처리 6) 보기 좋게 배치하기 7) 주석 달기 2. 클린 코드 예시 // 클린 코드 변경 전 public int A(int a) { return a * a; } // 클린 코드 변경 후 -> 의미있는 네이밍 public int Square(int num) { return num * num; } 3. 리팩토링 - 프로그램의 외부 동작.. 2023. 10. 24.