| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- RSA
- TextMeshPro
- 패스트캠퍼스
- 게임개발
- 직장인자기계발
- Custom Package
- C#
- Unity Editor
- adfit
- 환급챌린지
- ui
- sha
- Dots
- 오공완
- base64
- 샘플
- 암호화
- Tween
- 최적화
- Job 시스템
- AES
- DotsTween
- 2D Camera
- 직장인공부
- 패스트캠퍼스후기
- 가이드
- job
- unity
- Framework
- 프레임워크
- Today
- Total
목록2026/04/05 (33)
EveryDay.DevUp
List vs Array — 언제 무엇을 선택하는가Unity 모바일 게임에서 데이터를 담을 그릇을 고를 때, 배열과 리스트의 내부 동작을 이해하면 GC 스파이크 없는 안정적인 프레임을 유지할 수 있다.목차문제 제기개념 정의내부 동작실전 적용함정과 주의사항C# 버전별 변화정리문제 제기적을 처치하면 드롭 아이템 목록을 만들어야 한다. 당신은 int[]를 쓸 것인가, List를 쓸 것인가?"둘 다 되니까 아무거나" — 이렇게 생각하면 Unity 모바일 환경에서 매 프레임 GC(Garbage Collector, 메모리를 자동으로 회수하는 런타임 구성요소) 스파이크가 터지거나, 고정 크기 배열에 무리하게 요소를 추가하려다 버그가 생긴다.배열은 크기가 고정이고, List는 크기가 동적이다. 이 한 줄이 전부처럼 보..
공변성과 반공변성 — in/out이 필요한 이유IEnumerable를 IEnumerable로 넘기는 건 직관적으로 당연해 보인다. 그런데 List를 List로 넘기면 컴파일 오류가 난다. 왜 같은 상속 관계인데 어떤 제네릭은 되고 어떤 제네릭은 안 될까? 그 답은 out과 in 키워드가 컴파일러에 알려주는 타입 흐름의 방향에 있다.목차1. 문제 제기2. 개념 정의3. 내부 동작4. 실전 적용5. 함정과 주의사항6. C# 버전별 변화7. 정리1. 문제 제기Unity에서 적(Enemy) 계층 구조를 설계했다고 하자.C#public class Enemy : MonoBehaviour { public virtual int HP => 100; }public class Zombie : Enemy { public ov..
제네릭 제약 조건 — where T : 의 의미제네릭 는 강력하지만, 아무 타입이나 받으면 T에 대해 아는 것이 없다. where T :는 컴파일러에게 "이 T는 최소한 이런 능력을 가진 타입이다"라고 증명서를 보여주는 것이다. 이 증명 덕분에 boxing 없이 인터페이스 메서드를 호출하고, 컴파일 타임에 실수를 잡고, JIT(Just-In-Time, 실행 시점 컴파일) 컴파일러가 최적화된 코드를 생성할 수 있다.목차문제 제기개념 정의내부 동작실전 적용함정과 주의사항C# 버전별 변화정리문제 제기Unity로 모바일 게임을 만들고 있다. 무기마다 데미지 계산 로직이 다르고, 이를 하나의 시스템으로 처리하고 싶다.C#// 인터페이스로 추상화했지만...public interface IAttackable{ ..
제네릭 — 가 해결하는 문제한 줄의 가 boxing 3번, 캐스팅 3번, 런타임 예외 1번을 동시에 없앤다. 제네릭이 뭔지 모르면, List를 왜 쓰는지도 모르는 것이다.목차문제 제기 — `ArrayList`가 남긴 세 가지 부채개념 정의 — 타입을 나중에 결정하는 틀내부 동작 — JIT 컴파일러의 두 가지 전략실전 적용 — 제네릭을 언제, 어떻게 쓰는가함정과 주의사항 — 제네릭이 만능은 아니다C# 버전별 변화 — 제네릭의 진화정리 — 핵심 체크리스트문제 제기 — ArrayList가 남긴 세 가지 부채Unity 프로젝트에서 적(enemy) 체력을 관리하는 코드를 상상해 보자.C#using System.Collections;ArrayList hpList = new ArrayList();hpList.Add(..
문자열 포맷팅 — String.Format·보간·Span 기반 포맷문자열을 조합하는 방법은 C# 버전마다 달라졌다. String.Format에서 시작해 $"보간"을 거쳐 zero-alloc 포맷까지 — 겉보기엔 같은 결과를 내지만, 내부에서 일어나는 일은 완전히 다르다.목차문제 제기 — 왜 포맷팅 방식이 중요한가개념 정의 — 문자열 포맷팅의 세 세대내부 동작 — 컴파일러는 포맷팅을 어떻게 처리하는가실전 적용 — Unity에서의 문자열 포맷팅함정과 주의사항C# 버전별 변화정리문제 제기 — 왜 포맷팅 방식이 중요한가Unity 모바일 게임에서 플레이어의 HP를 화면에 표시하는 코드를 작성했다.C#void Update(){ uiText.text = string.Format("HP: {0} / {1}", c..
string vs StringBuilder vs Span — 문자열 처리 도구 선택문자열을 만들고, 조합하고, 잘라내는 세 가지 도구. 각각의 내부 구조를 알면 "언제 무엇을 쓸까"는 자동으로 결정된다.목차문제 제기 — 왜 도구 선택이 중요한가개념 정의 — 세 도구의 본질적 차이내부 동작 — 각 도구가 메모리를 다루는 방식실전 적용 — Before/After로 보는 올바른 도구 선택함정과 주의사항C# 버전별 변화정리문제 제기 — 왜 도구 선택이 중요한가Unity 모바일 게임의 인벤토리 화면을 만들고 있다. 아이템 정보를 문자열로 조합해서 UI에 표시해야 한다.C#void Update(){ string info = "Name: " + itemName + " | Lv." + level + " | ATK..
string은 왜 불변인가한 번 만들어진 문자열은 절대 바뀌지 않는다. 이 단순한 규칙 하나가 인턴 풀, == 값 비교, StringBuilder의 존재 이유를 모두 설명한다.목차문제 제기 — 왜 string의 불변성을 알아야 하는가개념 정의 — 불변(Immutable)이란 무엇인가내부 동작 — CLR은 string을 어떻게 관리하는가실전 적용 — Before/After로 보는 올바른 문자열 사용법함정과 주의사항C# 버전별 변화정리문제 제기 — 왜 string의 불변성을 알아야 하는가Unity로 모바일 게임을 만들고 있다. 매 프레임 점수를 갱신하는 UI 코드가 있다.C#void Update(){ scoreText.text = "Score: " + currentScore;}겉보기엔 한 줄짜리 간단한..
== vs Equals vs ReferenceEquals — 같아 보이는 세 비교, 완전히 다른 동작"두 오브젝트가 같은지" 비교하는 코드를 쓸 때, ==과 Equals를 아무렇게나 골라 써도 될까? Unity에서 Destroy(obj) 후 obj == null은 true인데 ReferenceEquals(obj, null)은 false를 반환하는 이유는 뭘까? 이 글은 C# 비교 연산의 세 축 — ==, Equals, ReferenceEquals — 이 컴파일러와 런타임에서 어떻게 다르게 처리되는지 IL 수준까지 파고들어 설명한다.목차== 연산자Equals 메서드ReferenceEquals함정과 주의사항C# 버전별 변화정리== 연산자문제 제기Unity 프로젝트에서 아이템 비교 로직을 만들었다. Perso..
record — 불변 데이터를 다루는 새로운 방법Unity 게임에서 무기 능력치, 플레이어 스탯, 이벤트 데이터를 안전하게 다루는 핵심 도구. record가 컴파일러에게 얼마나 많은 일을 시키는지, 그리고 Unity에서 어떻게 써야 GC 스파이크를 피하는지 알아본다.목차문제 제기개념 정의내부 동작실전 적용함정과 주의사항C# 버전별 변화정리문제 제기Unity 모바일 게임을 만들다 보면 "데이터를 담는 객체"가 끝없이 필요하다. 무기 능력치, 플레이어 스탯, 네트워크 패킷, 이벤트 메시지 — 이런 객체들은 동작(메서드)보다 데이터 자체가 중요하다.문제는, 이런 데이터 객체를 class로 만들 때마다 반복되는 코드가 쏟아진다는 것이다.C#// 무기 데이터를 class로 만들면 이렇게 된다public class..
struct 4형제 — struct, record struct, readonly struct, ref structUnity 모바일 게임 클라이언트 신입 개발자를 위한 C# struct 심층 가이드목차왜 struct가 네 가지나 있는가 — 문제 제기struct — 값 타입의 기본 형태readonly struct — 불변성을 컴파일러가 강제한다record struct — 값 의미론 + 자동 생성 멤버readonly record struct — 불변 레코드ref struct — 스택만 살고 힙에는 절대 가지 않는다내부 동작 — IL 수준 차이 종합 정리실전 적용 — 언제 무엇을 선택하는가함정과 주의사항C# 버전별 변화정리왜 struct가 네 가지나 있는가 — 문제 제기Unity에서 캐릭터의 위치를 나타내는 타..
