🔹 1. ~ Handler (핸들러)특정 이벤트나 요청을 처리하는 역할.주로 이벤트 기반 시스템이나 메시지 큐, HTTP 요청 등의 처리기에 사용됨.✅ 예시RequestHandler → HTTP 요청을 받아서 적절한 서비스로 넘김.EventHandler → 특정 이벤트 발생 시 실행되는 로직을 담당.ErrorHandler → 예외 처리 담당.🔹 2. ~ Service (서비스)비즈니스 로직을 담당하는 계층데이터베이스 접근 없이, 순수한 애플리케이션 로직을 수행.보통 여러 개의 Repository 또는 DAO를 조합해서 비즈니스 기능을 구현함.비즈니스 로직이란? - 사용자의 요구사항을 처리하는 코드 - 이 프로그램이 실제로 해야하는 핵심 기능을 담당 ex) 비즈니스 로직 O : 게임에서 플레이어가..
가중치에 따른 랜덤 값 뽑기 🎲게임 서버나 애플리케이션 개발 시, 특정 항목을 랜덤하게 선택해야 할 경우가 종종 있다.그럴때 각 항목에 가중치를 부여해서 확률적으로 선택되는 방법이 매우 유용하다. 예를 들면 항목 A가 45%, B가 35%, C가 15%, D가 5%로선택되게 하는 방법이다. 이 포스트에서는 C# Random.Shared를 사용하여 어떻게 가중치 기반 랜덤 값을 뽑는지 설명하려 한다. 🎯 일단 가중치란 무엇을까? 🤔 **가중치(Weight)**는 각 항목이 선택될 확률을 상대적으로 조정하는 수치이다.예를 들어, A 항목이 45%, B 항목이 35%, C 항목이 15%, D 항목이 5%의 가중치를 가지고 있다면,A가 선택될 확률이 가장 높고, D는 상대적으로 가장 낮다.가중치는 확률을..
🖥️ Incremental Source Generator 란?- .NET 5 이후의 기능으로, 컴파일 타임에 코드 생성을 최적화 하고 성능을 향상시키기 위해 도입된 기술 - 기존의 소스 생성기보다 더 효율적이고 부분적으로 코드 생성을 수행할 수 있는 기능 제공 주요 개념 1. Incremental Source Generation- 코드 생성을 부분적으로 수행하여, 변경된 부분만 다시 생성- 전체 코드 베이스를 다시 분석하지 않고 변경된 입력에 대해서만 반응, 더 효율적인 코드 생성 가능 2. Performance- 대규모 코드베이스에서 소스 생성기의 성능을 크게 향상 시킴- 반복적인 빌드 및 변경 작업에서 유용 3. Diagnostics - Incremental Source Generator는 진단..
개요 - MemoryPack은 Cysharp라는 일본의 소프트웨어 개발 회사에서 개발한 고성능 C# 직렬화 라이브러리 MemoryPack 라이브러리- .NET에서 사용되는 고성능 메모리 패킹 및 직렬화 라이브러리- 게임 개발이나 고성능 애플리케이션에서 자주 사용됨.- 직렬화와 역직렬화작업을 빠르고 효율적으로 처리, .NET 최신 기능 활용 특징 1. 고성능- MemoryPack은 빠르고 효율적인 직렬화/역직렬화 성능 제공 2. 간단한 사용 방법- 직렬화할 클래스에 `MemoryPackable` 특성을 적용하고 `partial` 클래스를 정의하면 사용 가능 3.소스 생성기 - .NET의 소스 생성기 기능을 사용하여 컴파일 타임에 직렬화 및 역직렬화 코드를 자동으로 생성 4. 최신 C# 기능 지원 - ..
1. global using - global using은 C# 10에서 도입된 새로운 기능- 네임스페이스를 전역적으로 사용할 수 있도록 하는 키워드- 이를 통해 모든 파일에서 공통으로 사용하는 네임스페이스를 매번 using 구문으로 선언할 필요 없이 한 번에 선언할 수 있음- 만약 global using문과 일반 using 문이 혼합되어 있는 경우에는, 모든 global using문이 일반 using 문 앞에 선언되어야함. // GlobalUsing.cs 파일global using System;global using System.Text;global using System.IO; 2. global using static - using static은 타입(type)을 import 하여 해당 타입 안..
🖥️ 오버헤드(OverHead)OverHead 는 시스템의 리소스를 소모하면서도 실제 작업의 주요 성능에 기여하지 않는 추가적인 비용이나 부하를 의미. 컴퓨터 과학에서 오버헤드는 다양한 맥락에서 발생할 수 있음. 요약 : 리소스를 소모하는 추가적인 비용이나 부하 오버헤드의 종류 1. 함수 호출 오버헤드- 함수 호출 시 스택 관리, 레지스터 저장 및 복원, 프로시저 호출 등의 추가적인 작업 때문에 발생하는 비용 ex) - 스택 프레임 생성 및 제거 : 함수 호출 시 현재 함수의 상태를 스택에 저장하고, 호출된 함수의 스택 프레임을 생성: 함수가 종료되면 프레임 제거하고, 이전 함수의 상태를 복원 - 파라미터 전달: 함수 호출 시 인자들을 스택이나 레지스터를 통해 전달 - 프로시저 호출 및 반환: ..