.NET / C# Compiler, IL, DLL, EXE, JIT

1. 개요 C# 애플리케이션이 소스 코드에서 실행 가능한 프로그램으로 변환되는 과정은 여러 단계로 이루어져 있습니다. C# 컴파일러, 중간 언어(IL), 어셈블리(DLL, EXE), JIT 컴파일러 간의 관계와 전체 실행 흐름을 설명합니다. 2. 전체 실행 흐름 3. C# 컴파일러 (로슬린 – Roslyn) 역할 특징 컴파일러 파이프라인 구성요소 C# 코드 예시 4. 중간 언어 (IL, Intermediate Language) 특징 주요 […]

.NET / C# Compiler, IL, DLL, EXE, JIT 더 읽기"

백준 10813번 (공 바꾸기, C++) [BAEKJOON]

공 바꾸기 https://www.acmicpc.net/problem/10813 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 256 MB 90321 56671 50445 63.108% 문제 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 매겨져 있다. 바구니에는 공이 1개씩 들어있고, 처음에는 바구니에 적혀있는 번호와 같은 번호가 적힌 공이 들어있다. 도현이는 앞으로 M번 공을 바꾸려고 한다. 도현이는

백준 10813번 (공 바꾸기, C++) [BAEKJOON] 더 읽기"

Unity Serialization (직렬화)

🔥 Serialization (직렬화) 개요 Serialization이란 객체 데이터를 바이트 스트림으로 변환하여 저장하거나 전송할 수 있도록 하는 과정 주 목적은 필요할 때 다시 개체로 만들 수 있도록 개체의 상태를 저장하는 것 반대로 Deserialization은 저장된 바이트 데이터를 다시 객체로 변환하는 과정입니다. 🔥 JSON, XML, YAML 일반적으로 많이 사용하는 데이터 직렬화 포맷들 1️⃣ JSON (JavaScript Object Notation) ✔️ 특징

Unity Serialization (직렬화) 더 읽기"

ECS의 World와 SubScene의 관계

⭐ 개념 정리 ✅ World ECS에서 World는 Entity와 System 등을 관리하는 Container 역할 World는 특정 씬(Scene)에 종속되지 않고, 모든 ECS 데이터를 포함하여 관리한다. World가 관리하는 핵심 구성 요소 4가지 ✅ SubScene SubScene은 씬(Scene) 내부에서 특정 ECS 데이터(Entity)를 포함하는 컨테이너 역할을 한다. SubScene이 로드되면, 그 안의 GameObject들이 자동으로 Entity로 변환(Entity Conversion)되어 World에 등록 ➡️ SubScene의 로드

ECS의 World와 SubScene의 관계 더 읽기"

C#의 CancellationToken, CancellationTokenSource

🔥 CancellationToken, CancellationTokenSource https://learn.microsoft.com/ko-kr/dotnet/api/system.threading.cancellationtokensource?view=net-9.0 ✅ 개념 정리 CancellationToken과 CancellationTokenSource는 C#에서 비동기 작업(Task)이나 스레드를 안전하게 취소할 수 있도록 제공되는 기능합니다. 이를 활용하면 비동기 작업을 중단하거나, 긴 루프를 중지할 수 있도록 관리할 수 있습니다. 🔹 CancellationTokenSource 🔹 CancellationToken 역할 설명 CancellationTokenSource 취소 요청을 보내는 쪽 (발신자) 역할을 합니다. Cancel(), CancelAfter(), Dispose() 등을 호출 할 수 있습니다. CancellationToken

C#의 CancellationToken, CancellationTokenSource 더 읽기"

백준 9935번 (문자열 폭발, C++) [BAEKJOON]

문자열 폭발 https://www.acmicpc.net/problem/9935 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 (추가 시간 없음) 128 MB 97727 27262 19242 27.023% 문제 상근이는 문자열에 폭발 문자열을 심어 놓았다. 폭발 문자열이 폭발하면 그 문자는 문자열에서 사라지며, 남은 문자열은 합쳐지게 된다. 폭발은 다음과 같은 과정으로 진행된다. 상근이는 모든 폭발이 끝난 후에 어떤 문자열이 남는지

백준 9935번 (문자열 폭발, C++) [BAEKJOON] 더 읽기"

백준 11444번 (피보나치 수 6, C++) [BAEKJOON]

피보나치 수 6 https://www.acmicpc.net/problem/11444 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 256 MB 27890 12508 10367 47.603% 문제 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가

백준 11444번 (피보나치 수 6, C++) [BAEKJOON] 더 읽기"

ECS – EntityQuery 정리

EntityQuery 정리 ECS(Entity Component System)에서 특정 조건을 만족하는 Entity들을 효율적으로 검색하는 도구 Entity가 가진 컴포넌트 조합을 기준으로 검색하며, 이를 통해 메모리 캐시 효율을 극대화 1. EntityQuery의 기본 개념 – 특정 컴포넌트를 가진 Entity 찾기 2. EntityQuery의 주요 조건 조건 설명 WithAll<T>() 해당 컴포넌트를 모두 가진 Entity만 검색 WithAny<T>() 지정한 컴포넌트 중 하나라도 가진 Entity 검색

ECS – EntityQuery 정리 더 읽기"

ECS – MouseHoverAuthoring

1. MouseHover (IComponentData) 2. MouseHoverBaker (Baker) 3. MouseHoverSystem (SystemBase) 1) InitializationSystemGroup 초기화 단계에서 실행됨 2) WorldRaycastJob (IJob) 마우스 위치에서 Raycast를 실행하는 IJob 3) OnUpdate() 1> CollisionWorld 가져오기 2> 마우스 위치에서 레이(Ray) 생성 3> RaycastInput 설정 RaycastInput은 Unity Physics에서 사용되는 구조체로, 물리 엔진이 사용할 레이캐스트 정보를 포함 4> MouseHover 컴포넌트 가져오기 5> 레이캐스트 실행 NativeReference<RaycastHit>을 사용하여

ECS – MouseHoverAuthoring 더 읽기"

ECS – BufferTypeHandle

ECS – BufferTypeHandle ECS에서 DynamicBuffer<T>를 처리하려면 BufferTypeHandle<T>를 사용해야 한다. 즉, “IComponentData가 아닌 버퍼 데이터를 읽고/쓰는 Handle“ 1. BufferTypeHandle<T>란? 2. 사용 예제 1) OnCreate()에서 초기화 2) OnUpdate()에서 매 프레임 업데이트 3. BufferTypeHandle 상세 사용법 1) 기본 사용법 (IJobChunk에서 사용) 2) OnUpdate()에서 ScheduleParallel 실행 3) IJobParallelFor에서 BufferTypeHandle를 사용할 때 일반적으로 IJobParallelFor에서는 직접 사용할 수 없고, AsNativeArray() 를

ECS – BufferTypeHandle 더 읽기"

위로 스크롤