본문 바로가기

전체 글135

.NET이란? .NET은 다양한 애플리케이션을 만들 수 있게 해주는 무료 오픈 소스 플랫폼이다크로스 플랫폼을 지원하며, 웹・모바일・데스크톱・클라우드・게임・IoT・AI 등 거의 모든 형태의 앱 개발이 가능하다 .NET 구성요소언어C#, F#, Visual Basic 지원CoreCLR앱을 실행하는 엔진이다JIT 컴파일, GC 등 기본적인 실행 기능을 담당한다BCL, Base Class Library입출력, JSON 처리, 암호화, HTTP 등 필수 기능을 제공하는 라이브러리이다SDKCLI(Command Line Interface), 빌드 도구, 템플릿 등을 포함한다NuGet.NET 생태계의 패키지 매니저이다. 너겟을 이용하여 외부 라이브러리를 쉽게 설치할 수 있다 .NET 아키텍처 .NET 아키텍처는 MS에서 발표한 CL.. 2025. 4. 2.
Unity UI 최적화 Unity UI를 최적화할 수 있는 방법에 대해 복습하고 기억하는 것이 목표인 글이다 캔버스 분할하기UI 캔버스에서 요소를 변경하면 캔버스 전체가 변경된 것으로 인식된다새로운 드로우콜이 발생하여, 메시 재생성으로 인한 연산의 낭비 발생최적화캔버스를 분할하기각 캔버스가 자체적으로 지오메트리를 유지하고 배칭을 수행요소들이 업데이트되는 시점에 따라 캔버스를 그룹화동적 요소와 정적 요소 분리 그래픽 레이캐스터(Graphic Raycaster) 최적화하기그래픽 레이캐스터는 입력 사항을 UI 이벤트로 변환하는 역할을 한다입력을 수신하는 UI 요소를 확인하고 교차 지점을 확인하는 과정에서 이벤트 발생최적화정적 요소나 비인터랙티브 요소에 대한 레이캐스트 타겟 비활성화로 검사 횟수 감소시키기 Camera.main 사용 .. 2025. 4. 2.
Unity GC 최적화 1. 오브젝트 풀링생성/파괴는 많은 연산 비용이 든다. 그리고 Unity GameObject는 클래스이므로 생성될 때마다 힙 메모리에 할당된다따라서 풀링을 통해 힙 할당을 줄이고 GC 발생을 최소화 시켜야한다또한 풀링을 사용하면 미리 오브젝트를 만들어놓을 수 있어 메모리 사용량이 예측 가능해져서 프로파일링에도 도움이 된다 자세한 정보는 다음의 링크를 참고하자. 오브젝트 풀 개념, 오브젝트 풀 사용 예제 2. 문자열 연결시 StringBuilder 사용C#의 문자열은 불변타입이다. 따라서 새로운 문자열을 사용할 때마다 새로운 참조 타입 객체가 생성된다이 때 StringBuilder를 활용하여 문자열 연결을 수행하면 메모리 할당을 줄일 수 있다// Worstvoid Update(){ int score .. 2025. 4. 1.
Unity 6 에디터 주요 변경점 1. 스크립트 관련 메뉴 변경점 기존 C# 스크립트 => MonoBehaviour Script로 변경 카테고리로 목적에 따라 생성할 스크립트를 분리 2. 레이어 위치 변경 기존의 Inspector에 있던 레이어 버튼이 Scene 패널 내부의 오버레이로 이동 3. 라이팅 위치 변경 기존에는 Lighting관련 작업을 하기 위해 복잡하게 찾아야 했다하지만 Edit 버튼을 통해 접근 가능하도록 단계 최소화 4. 부대지정 기능 추가 (Selection Group) 저장할 오브젝트 선택 후저장하기: Ctrl + Alt + 숫자키불러오기: Ctrl + Shift + 숫자키 5. Build Settings => Build Profile 패널 변경 각 플랫폼에 맞는 세팅을 매번 바꾸지 않을 수 있는 기능 추가Playe.. 2025. 3. 31.
Unity R3 라이브러리 import(설치) 방법 R3에 대한 설명은 다음의 링크를 참고하자 R3는 Unity에서 사용할 때 두 단계 설치가 필요하다핵심 로직은 NuGetPackage를 통해 받아오고 Unity 확장을 Git을 통해 붙이는 구조다 1. NugetForUnity 설치 패키지 관리자 열기 좌상단 + 클릭, install package git URL.. 클릭  https://github.com/GlitchEnzo/NuGetForUnity.git?path=/src/NuGetForUnity URL 입력 후 install 클릭   설치 완료된 모습 2. R3 설치 진행 Unity 창 상단 중 NuGet => Manage NuGet Packages 클릭으로 창 팝업  R3 검색 후 설치 진행  Unity Package Manager => instal.. 2025. 3. 31.
C# R3 R3란?Reactive Extensions(Rx)의 3세대 구현체라는 의미1세대: System.Reactive2세대: UniRx (Unity 전용)3세대: R3 – .NET 8, C# 12 기반의 현대적, 경량화, 범용 리액티브 시스템기존 Rx의 한계기존에는 OnError 호출 시 스트림 인스턴스가 즉시 종료되며, 예외 복구를 위한 흐름을 구성하는 것이 어렵고 비직관적이었다스트림 기반으로 async 처리를 하려 했지만, C#의 async/await가 등장하며 라이브러리의 존재 이유가 붕 뜨게 되었다원래는 모든 비동기 처리를 위해 LINQ to Everything을 적용했지만 이는 과도한 범용성을 가져 복잡성이 증가하고, 실무에서는 적용하기 어려운 구조가 되었다Rx의 본질에 집중하다R3 라이브러리는 기존 .. 2025. 3. 30.
반응형