C# + Unity

[C#] MemoryCache 클래스로 데이터 캐싱하기 포스트 Teaser

[C#] MemoryCache 클래스로 데이터 캐싱하기

카테고리:

3 분 소요

MemoryCache 클래스 System.Runtime.Caching 네임스페이스의 MemoryCache 클래스는 .NET에서 제공하는 메모리 내 캐싱 솔루션으로, 애플리케이션에서 자주 사용되는 데이터를 메모리에 저장해 빠르게 접근할 수 있게 도와준다. 메모리 캐싱에 특화된 만큼 아래와 같은 특징을 가진다. 메모리 내 캐싱: 데이터를 메모리에 저장하여, 디스크 접근이나 데이터베이스 쿼리보다 훨씬 빠르게 데이터에 접근한다. 정책...

[Unity] can only be called from the main thread. 문제 해결하기 포스트 Teaser

[Unity] can only be called from the main thread. 문제 해결하기

카테고리:

2 분 소요

Unity 엔진의 동작 원리 Unity 엔진은 많은 블로그와 Unity 공식 문서에서 아래의 그림과 같이 Main Thread와 Render Thread, Worker Thread들로 구성되어 있다고 설명한다. 위와 같은 구조로 인해서 UI 요소를 변경하는 함수들은 메인 스레드 위에서만 작동한다. 이로 인해서 멀티 스레드 환경에서 메인 스레드가 아닌 다른 스레드가 UI 요소를 변경하면 아래와 같은 메시지를 출력한다. [문제가...

[C#] TcpClient Class에서 Nagle 알고리즘 적용 해제하기 포스트 Teaser

[C#] TcpClient Class에서 Nagle 알고리즘 적용 해제하기

카테고리:

최대 1 분 소요

TcpClient C#에서의 TcpClient 클래스는 TCP/IP 프로토콜을 사용하여 네트워크 통신을 수행하는 데 사용된다. 이 클래스는 클라이언트 측 TCP 연결을 만들고 관리하는 기능을 제공하는데, 주로 네트워크 기반 응용 프로그램에서 서버와의 통신 또는 다른 클라이언트와의 통신에 사용된다. https://learn.microsoft.com/ko-kr/dotnet/api/system.net.sockets.tcpclient?view...

[C#] .NET 8 부터 적용된 제품 버전 접미사 제거하기 포스트 Teaser

[C#] .NET 8 부터 적용된 제품 버전 접미사 제거하기

카테고리:

1 분 소요

소스 링크 빌드 도구 .NET 8부터 도입된 Source Link는 개발자가 라이브러리의 소스 코드를 디버깅할 때 더 쉽게 따라갈 수 있도록 도와주는 기능이다. 이 기능을 사용하면 라이브러리 제공자는 라이브러리를 빌드할 때 소스 코드 파일과 함께 컴파일러가 해당 파일이 정의된 위치를 나타내는 정보를 생성한다. 이러한 Source Link 정보를 포함한 NuGet 패키지를 사용하는 개발자는 디버깅 세션에서 라이브러리 코드를 따라가는 데 ...

[C#] WinAPI OpenProcess 함수로 프로세스 핸들 얻기 포스트 Teaser

[C#] WinAPI OpenProcess 함수로 프로세스 핸들 얻기

카테고리:

2 분 소요

프로세스 핸들 프로세스 핸들(Process Handle)은 컴퓨터 운영 체제에서 프로세스를 식별하고 관리하기 위한 개념이다. 프로세스 핸들은 보통 운영 체제 API에서 제공되며, 각 언어 및 환경에서는 해당 API를 이용하여 프로세스 핸들을 얻고 조작한니다. 프로그래밍에서는 핸들을 이용하여 프로세스나 자원을 제어하는 데 사용한다. 주요한 Windows API 함수 및 프로세스 핸들과 관련된 몇 가지가 있다. CreateProce...

[C#] 대리자와 delegate, Action, Func 포스트 Teaser

[C#] 대리자와 delegate, Action, Func

카테고리:

2 분 소요

대리자 대리자는 특정 매개 변수 목록 및 반환 형식이 있는 메서드에 대한 참조를 나타내는 형식이다. 쉽게 설명하면, 대리자를 통해 함수를 매개 변수로 전달할 수 있다. 이는 콜백 함수와 같은 이벤트에서 사용한다는 점에서 C++의 함수 포인터와 유사하지만, 멤버 함수에 대해 완전히 개체 지향이라는 점에서 다르다. 매개변수로는 상황에 따라 Action이나 Func를 사용한다. 매개 변수가 없으며 값을 반환하지 않는 경우에는 Action을 ...

[Unity] Destory의 비밀과 DestroyImmediate 포스트 Teaser

[Unity] Destory의 비밀과 DestroyImmediate

카테고리:

1 분 소요

Destory 함수 유니티에서는 하이어라키(Hierarchy)에 살아있는 GameObject를 스크립트로 삭제하는 방법으로 Destory 함수를 사용한다. 일반적으로 Destory 함수를 사용하면 즉시 제거된다고 생각하기 쉽지만, 사실 지연된 소멸을 통해 해당 함수의 호출이 발생한 시점에서부터 다음 Update 함수가 호출되기 전 사이에 파괴된다. 그래서 흔히 다음과 같은 실수를 하기 쉽다. foreach (Transform chil...