회사에서 컨텐츠 개발을 하다보면 'enum 비트 플래그'를 쓰는 경우가 있는데, 여러 상태를 하나의 값으로 처리 할 수 있는 장점이 있다. 이왕 쓰는거 정리포스트를 올리자 싶어 적어본다. 👩💻 예제 코드- 바구니에 과일을 담고 확인해보자.1. flags Fruit 정의[Flags]public enum Fruit{ None = 0, Apple = 1 1 각 항목을 2의 거듭제곱으로 만들어서 중복 없이 조합 가능[Flags]를 붙이면 ToString() 출력 시 "Apple, WaterMelon"처럼 나와서 디버깅도 굿All을 만들어두면 향후 자동 패치할 때 유용 2. 실제 사용하기// 장바구니에 사과랑 바나나를 담음 var basket = Fruit.Apple | Fruit.Banana;..
😃 최근에 회사 코드를 List에서 IEnumerable 코드로 몇몇개 바꾸면서 무슨 차이가 있는지 정리해 보았다. 📚 기본 개념항목IEnumerableList정의읽기 전용의 순차열 인터페이스요소 추가/삭제 가능한 가변 컬렉션 클래스자료형인터페이스클래스접근 방식foreach만 가능foreach, list[i] 등 다양한 접근 가능가공 특성Linq 사용시 지연실행모든 요소가 메모리에 있어 즉시 사용 가능 지연실행 ? - 실제로 사용될 때까지 실행을 미루는 것 - 즉 코드는 써도 당장 실행되지 않고 foreach 등으로 순회할 때 실행된다는 뜻 📚 주요 기능 비교기능IEnumerableList요소 추가 / 삭제불가능Add(), Remove() 가능인덱스 접근불가능list[i] O(1) 가능Linq ..
https://medium.com/@sudipdevdev/how-to-detect-and-log-slow-queries-in-entity-framework-core-e2ab71024849 How to Detect and Log Slow Queries in Entity Framework CoreAs applications grow in complexity, performance bottlenecks can become a significant challenge, particularly with database queries…medium.com 요즘 EntityFramework사용해서 작업 중입니다. EntityFramework는 쿼리 로그 옵션을 넣어서 프로그램을 동작하면 실행하는 모든 쿼리에 대한 로그를..
🔹 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는 진단..