| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- C#
- claude code
- 엘지 개발자 옵션
- ui
- Custom Package
- Android Debug
- adfit
- unity
- Dynamic Font
- 게임개발
- 이미지 폰트
- git
- Samsung 개발자 옵션
- TextMeshPro
- Sprite Atlas
- 최적화
- 다이나믹 폰트
- DotsTween
- 기초
- Dots
- LG 개발자 옵션
- Gir Ignore
- 버전관리
- Unity Editor
- 텍스트 메시 프로
- PVRTC
- 삼성 개발자 옵션
- SVN
- 입문
- 2D Camera
- Today
- Total
목록C# (147)
EveryDay.DevUp
[PART5.메서드와 매개변수(18/18)] 메서드를 매개변수로 넘기기 — 콜백의 첫 소개 메서드도 값처럼 인자로 전달할 수 있다 / 델리게이트는 메서드 참조를 담는 클래스 / 람다·이벤트로 가는 첫 다리 목차 [문제 제기] "음식이 다 됐을 때 알려줘"를 코드로 어떻게 표현하는가 [개념 정의] 콜벨이 콜백이고, 델리게이트가 콜벨이다 [내부 동작] 델리게이트 한 알을 분해하기 [실전 적용] 정적 콜백 vs 인스턴스 콜백 — 핫패스에서 쓰지 않을 때와 쓸 때 [함정과 주의사항] 핫패스에서 콜백을 매번 새로 만들지 마라 [C# 버전별 변화] 메서드 그룹 캐싱은 C# 11에서 추가됐다 [정리] 이것만 기억하면 람다·이벤트로 넘어갈 준비가 끝난다 ..
[PART5.메서드와 매개변수(17/18)] async Main — 진입점도 비동기로 (C# 7.1) 동기로 시작해야 했던 콘솔 앱이 이제는 첫 줄부터 await 한다 / 컴파일러가 만드는 합성 진입점의 정체 / Unity CLI 도구에서의 활용 목차 [문제 제기] — 첫 줄부터 await 하고 싶은데, 진입점이 막혀 있다 [개념 정의] — 식당 입구의 안내원과 같다 [내부 동작] — 컴파일러가 합성 진입점을 만든다 [실전 적용] — 언제, 어떻게 쓰는가 [함정과 주의사항] [C# 버전별 변화] [정리] 1. [문제 제기] — 첫 줄부터 await 하고 싶은데, 진입점이 막혀 있다 Unity 빌드 파이프라인에서 자주 마주치는 풍경입니다..
[PART5.메서드와 매개변수(16/18)] 던지기 표현식 — throw as expression (C# 7) 한 줄로 끝내는 매개변수 검사 / ?? throw 의 정체 / IL은 if-throw와 같다 목차 문제 제기 — 검사 한 줄을 위해 if 블록을 쓰고 있는가 개념 정의 — 자판기 즉시 알람 비유 내부 동작 — 컴파일러는 throw를 어떤 타입으로 보는가 실전 적용 — 언제 쓰고 언제 쓰지 말까 함정과 주의사항 C# 버전별 변화 정리 1. 문제 제기 — 검사 한 줄을 위해 if 블록을 쓰고 있는가 Unity 신입 개발자가 작성한 캐릭터 컨트롤러 생성자를 보자. C# public class CharacterCo..
[PART5.메서드와 매개변수(15/18)] _ Discards — 값을 받되 무시한다는 표시 (C# 7) 목차 핵심 한 줄 비유로 시작하기 — 영수증의 빈칸과 "—" 표시 정의 — `_`는 이름이 아니라 토큰 다섯 가지 사용처 — 가장 흔한 것부터 시각화 — discard가 "막히는" 스코프 충돌 IL 분석 — discard가 정말 슬롯을 안 만들까? 함정 다섯 가지 전형적인 코드 패턴 C# 버전별 도입 — 한 줄 요약 직전 주제와의 연결 — 튜플과 분해 한 줄 정리 핵심 한 줄 _는 변수 이름이 아니라 "이 자리는 의도적으로 비웠다"는 표식이며, 어떤 자리에서는 컴파일러가 진짜로 변수 슬롯조차 만들지 않고 어떤 자..
[PART5.메서드와 매개변수(14/18)] 튜플과 분해 — 한 통에 담아 보내고, 받는 쪽이 펼친다 (C# 7) 메서드 다중 반환의 표준 / ValueTuple은 struct, 옛 Tuple는 class / 분해는 Deconstruct 호출의 syntactic sugar / Unity 핫패스에서 GC 0바이트로 위치·회전 동시 반환 목차 [문제 제기] — "값 두 개를 돌려주고 싶을 뿐인데" 왜 이렇게 번거로웠는가 [개념 정의] — "도시락 한 통, 받는 쪽이 통째로 또는 따로 펼친다" [내부 동작] — 명명된 튜플의 이름은 어디로 가고, 분해는 어떻게 풀리는가 [실전 적용] — 다중 반환·사용자 정의 분해를 Unity에서 어떻게 쓰는가 [함정과 주의사항] ..
[PART5.메서드와 매개변수(13/18)] 정적 지역 함수 — static 지역 함수 (C# 8) 캡처 금지 봉인 / DisplayClass가 사라진다 / 핫패스에서 의도하지 않은 GC 압박 차단 목차 [문제 제기] — "지역 함수"가 조용히 GC를 갉아먹고 있었다 [개념 정의] — "혼자만 쓰세요" 봉인을 붙인 메모지 [내부 동작] — DisplayClass가 사라지고 private static 메서드가 남는다 [실전 적용] — Unity 핫패스에서 봉인을 거는 패턴 [함정과 주의사항] [C# 버전별 변화] [정리] 1. [문제 제기] — "지역 함수"가 조용히 GC를 갉아먹고 있었다 직전 글 [12. 지역 함수]에서 이런 코드를 ..
[PART5.메서드와 매개변수(12/18)] 지역 함수 (Local functions) — 메서드 안의 작은 도우미 메서드 안에 정의해 그 메서드 안에서만 쓰는 함수입니다 / 외부 변수에 직접 접근하면서도 람다보다 가볍습니다 / 그러나 캡처가 끼면 컴파일러가 숨은 클래스를 만들어내고, 델리게이트로 넘기는 순간 람다와 같아집니다 목차 [문제 제기] — `private` 헬퍼는 무겁고, 람다는 비싸다 [개념 정의] — 책상 위 메모지 한 장 [내부 동작] — 컴파일러가 만드는 두 가지 변환 [실전 적용] — 어디에 쓰면 가장 도움이 되는가 [함정과 주의사항] — 책상 위 메모지가 GC를 부르는 순간 [C# 버전별 변화] — C# 7 → 7.3 → 8 → 9 ..
[PART5.메서드와 매개변수(11/18)] 확장 멤버 (Extension members) — 확장 프로퍼티·정적 확장 (C# 14) 자석 액세서리가 진화했습니다 / 메서드뿐 아니라 프로퍼티·정적 멤버·연산자까지 외부에서 붙일 수 있습니다 / IL 레벨에서는 여전히 정적 메서드 호출이라 호출 비용은 그대로입니다 목차 [문제 제기] — 확장 메서드의 한계: 메서드만 붙일 수 있다 [개념 정의] — 자석 액세서리에 디스플레이·버튼·정적 메뉴가 추가됐다 [내부 동작] — 컴파일러가 만드는 두 종류의 메서드 [실전 적용] — 기존 확장 메서드 vs 새 확장 멤버, 무엇을 언제 쓰나 [함정과 주의사항] — 자석 액세서리의 새 함정 다섯 가지 [C# 버전별 변화] —..
[PART5.메서드와 매개변수(10/18)] 확장 메서드 사용법 — 정적 메서드를 인스턴스처럼 부르는 syntactic sugar static 메서드의 첫 매개변수에 this를 붙이면 마치 그 타입의 인스턴스 메서드인 것처럼 호출 가능 / IL 레벨에서는 일반 정적 호출과 완전히 동일 / LINQ의 정체이자 Unity 핫패스의 GC 함정 목차 [문제 제기] — 손댈 수 없는 클래스에 메서드를 더 붙이고 싶을 때 [개념 정의] — 자석으로 붙이는 무전기 액세서리 [내부 동작] — `call` vs `callvirt`, 그리고 null 인스턴스의 비밀 [실전 적용] — Unity에서 자주 쓰는 확장 메서드 패턴 [함정과 주의사항] [C# 버전별 변화] [..
[PART5.메서드와 매개변수(9/18)] 메서드 오버로딩 기초 — 같은 이름, 다른 시그니처 시그니처는 이름 + 매개변수 목록 / 반환 타입은 시그니처가 아니다 / 컴파일 타임에 결정되는 정적 디스패치 / 라이브러리 호환성에서 선택적 매개변수보다 우위 목차 문제 제기 — `Print(123)`, `Print("hp")`, `Print(3.14f)` 를 어떻게 한 이름으로 묶는가 개념 정의 — 시그니처가 다르면 같은 이름을 쓸 수 있다 내부 동작 — 컴파일러가 후보를 고르는 규칙 (Overload Resolution) 실전 적용 — 라이브러리 호환성과 Unity API 함정과 주의사항 C# 버전별 변화 — 동적 디스패치와 `dynamic` 정리 ..
