| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
- Gir Ignore
- TextMeshPro
- claude code
- LG 개발자 옵션
- Android Debug
- 엘지 개발자 옵션
- git
- DotsTween
- 버전관리
- SVN
- 이미지 폰트
- 기초
- 텍스트 메시 프로
- 다이나믹 폰트
- Custom Package
- ui
- 삼성 개발자 옵션
- C#
- Unity Editor
- 2D Camera
- Dynamic Font
- unity
- Dots
- 입문
- PVRTC
- Sprite Atlas
- 최적화
- 게임개발
- Samsung 개발자 옵션
- adfit
- Today
- Total
목록전체 보기 (110)
EveryDay.DevUp
[PART1.C# 런타임과 .NET 플랫폼 기초(4/11)] 전역 using — 프로젝트 전체에 한 번에 적용 (C# 10)global using 의 동작 원리 / 와의 관계 / Unity .asmdef 에서의 실전 함정목차[문제 제기] — 파일마다 반복되는 네 줄짜리 주문[개념 정의] — "한 번만 선언하면 모두가 쓴다"[내부 동작] — 컴파일러만 쓰고 버린다[실전 적용] — 언제 쓰고 어떻게 정리하는가[함정과 주의사항] — Unity 실전에서 가장 많이 밟는 지뢰[C# 버전별 변화] — 파일 상단 정리의 역사[정리] — 이것만 기억하세요1. [문제 제기] — 파일마다 반복되는 네 줄짜리 주문Unity 프로젝트를 새로 열어 스크립트 파일 10개를 만들어 보신 적이 있으실 겁니다. 열 개 파일 모두 상..
[PART1.C# 런타임과 .NET 플랫폼 기초(3/11)] 어셈블리 · 네임스페이스 · using — 코드가 담기는 세 개의 그릇어셈블리는 물리적 덩어리, 네임스페이스는 논리적 이름 공간, using은 이 둘을 편하게 엮는 컴파일러 지시문입니다.목차[문제 제기] `using`만 추가했는데 왜 빌드가 안 되는가[개념 정의] 세 개의 층을 도서관으로 이해하기[내부 동작] 어셈블리의 내부 구조와 이름 해석 순서[실전 적용] using의 4가지 형태와 실전 선택[함정과 주의사항] 신입이 가장 자주 밟는 지뢰[C# 버전별 변화] 네임스페이스와 using의 진화[정리] 이것만 기억하세요1. [문제 제기] using만 추가했는데 왜 빌드가 안 되는가Unity 프로젝트에서 TextMeshPro를 쓰려고 스크립트 상단..
[PART1.C# 런타임과 .NET 플랫폼 기초(2/11)] C# 컴파일 과정 — 소스 → IL → 네이티브 코드C# 소스가 실행되기까지 왜 두 번 컴파일되는가 / IL·JIT·AOT의 역할 / Unity IL2CPP가 특별한 이유목차문제 제기 — 왜 C# 코드는 빌드한 뒤에도 바로 기계어가 아닌가개념 정의 — 두 번 컴파일되는 언어내부 동작 — Roslyn · JIT · AOT 각 단계가 실제로 하는 일실전 적용 — Unity IL2CPP와 Mono, 그리고 성능 관찰함정과 주의사항C# 버전별 변화정리1. 문제 제기 — 왜 C# 코드는 빌드한 뒤에도 바로 기계어가 아닌가Unity 에디터에서 .cs 파일을 저장하면 프로젝트 루트 아래 Library/ScriptAssemblies/ 폴더에 .dll 이 생깁..
[PART1.C# 런타임과 .NET 플랫폼 기초(1/11)] .NET 플랫폼의 구조 — CLR · BCL · 어셈블리CLR은 엔진, BCL은 부품 창고, 어셈블리는 완성된 차 한 대 — C# 코드가 실행되기까지의 전 과정을 한 번에 정리합니다.목차왜 .NET 구조를 알아야 하는가.NET 플랫폼이란 무엇인가CLR — .NET의 실행 엔진BCL — 공용 부품 창고어셈블리 — 배포의 단위소스 → IL → 네이티브 — 전체 흐름AppDomain vs AssemblyLoadContext — 격리의 진화.NET Framework · .NET Core · .NET 5+ — 세 갈래의 역사Unity에서의 .NET — Mono와 IL2CPP함정과 주의사항버전별 변화 — CLR과 런타임 기능정리 — 꼭 기억할 것1. 왜 ..
[PART14.고급 언어 기능(5/5)] partial 클래스와 partial 메서드 — 코드 생성기와 함께 쓰는 방법하나의 클래스를 여러 파일에 나눠 쓰는 이유 / 컴파일러가 합치는 원리 / Source Generator와의 완벽한 시너지목차문제 제기partial 클래스partial 메서드C# 버전별 변화정리문제 제기Unity에서 PlayerController를 만들다 보면 입력 처리, 이동, 전투, 애니메이션, 사운드까지 한 파일에 몰리면서 수천 줄짜리 괴물 스크립트가 탄생한다. 팀원 둘이 같은 파일을 수정하면 Git 충돌은 일상이 된다.더 심각한 문제가 있다. 코드 생성 도구가 자동으로 만들어주는 코드와 내가 직접 작성한 코드가 같은 클래스에 있어야 할 때, 생성 도구를 다시 실행하면 내 코드가 덮..
[PART14.고급 언어 기능(4/5)] Source Generator — 컴파일 타임 코드 생성리플렉션을 대체하는 이유 / Roslyn 파이프라인에서 코드가 태어나는 과정 / AOT와 Unity에서 빛나는 순간목차문제 제기 — 리플렉션이 풀지 못하는 문제개념 정의 — Source Generator는 무엇인가내부 동작 — Roslyn 파이프라인에서 코드가 태어나는 과정실전 적용 — 리플렉션을 Source Generator로 대체하기함정과 주의사항 — Source Generator의 제약과 흔한 실수C# 버전별 변화 — ISourceGenerator에서 IIncrementalGenerator로정리 — 핵심 요약 체크리스트1. 문제 제기 — 리플렉션이 풀지 못하는 문제Unity 모바일 게임을 만들다 보면, ..
[PART14.고급 언어 기능(3/5)] 표현식 트리 — 코드를 데이터로 다루는 원리람다를 실행하지 않고 분석한다 / Expression와 Func의 결정적 차이 / IQueryable의 비밀 / IL2CPP 환경에서의 생존 전략목차문제 제기개념 정의내부 동작실전 적용함정과 주의사항C# 버전별 변화정리문제 제기Unity 프로젝트에서 이런 코드를 본 적이 있을 것이다.C#// 리플렉션으로 컴포넌트 프로퍼티에 접근string propName = "Health";var value = playerComponent.GetType().GetProperty(propName)?.GetValue(playerComponent);프로퍼티 이름을 문자열로 넘기는 이 패턴은 위험하다. "Health"를 "Helath"로 오타를..
[PART14.고급 언어 기능(2/5)] 리플렉션 — 타입을 런타임에 분석하는 원리typeof · GetType · MethodInfo.Invoke의 IL 수준 동작 / 리플렉션의 성능 비용과 델리게이트 캐싱 / BindingFlags로 private 멤버까지 탐색하는 방법 / IL2CPP 코드 스트리핑 함정 / Source Generator로 리플렉션을 대체하는 현대적 패턴목차문제 제기 — 컴파일 타임에 알 수 없는 타입을 다뤄야 한다면?개념 정의 — 리플렉션이란 무엇인가내부 동작 — Type 객체를 얻는 세 가지 방법실전 적용 — 리플렉션은 언제 쓰는가함정과 주의사항C# 버전별 변화정리1. 문제 제기 — 컴파일 타임에 알 수 없는 타입을 다뤄야 한다면?Unity 프로젝트에서 이런 상황을 떠올려보자. ..
[PART14.고급 언어 기능(1/5)] Attribute — 코드에 메타데이터를 붙이는 방법코드 위에 꼬리표를 달아 프레임워크가 읽게 만드는 원리 / 커스텀 Attribute 작성법 / Unity Inspector의 비밀목차왜 이걸 알아야 하는가개념 정의 — Attribute란 무엇인가내부 동작 — 컴파일러와 런타임이 Attribute를 처리하는 방식실전 적용 — Attribute를 효과적으로 쓰는 방법함정과 주의사항C# 버전별 변화정리왜 이걸 알아야 하는가Unity에서 [SerializeField]를 붙이면 private 필드가 인스펙터에 나타나고, [Range(0, 100)]을 붙이면 슬라이더가 생긴다. [RequireComponent]를 붙이면 컴포넌트가 자동으로 추가된다. 이 대괄호 한 줄이 도..
[PART13.패턴 매칭과 현대 C#(4/4)] 범위와 인덱스 — ^와 ..는 무엇인가끝에서부터 세는 인덱스 / 슬라이싱 / Span과의 결합으로 할당을 없애는 법목차문제 제기 — 왜 `arr.Length - 1`을 매번 쓰는가개념 정의 — `^`와 `..`, 그리고 두 구조체내부 동작 — 컴파일러는 이 문법을 어떻게 풀어내는가실전 적용 — Unity 핫패스에서 GC를 없애는 법함정과 주의사항 — `^0`, `List`, 잘못된 슬라이싱C# 버전별 변화정리1. 문제 제기 — 왜 arr.Length - 1을 매번 쓰는가Unity에서 간단한 상황을 하나 떠올려 봅시다. 네트워크 패킷의 마지막 체크섬 바이트를 읽고, 헤더 4바이트를 뗀 본문을 꺼낸다고 해봅니다. C# 8.0 이전이라면 이런 코드가 익숙합니다...
