| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- GetComponent
- 크루스칼
- 트리구조
- 유니티 sparkmain(clone)
- 디지털트윈
- 너비탐색
- Simulation
- 행동트리
- unity korea
- 티스토리챌린지
- 유니티
- unity sparkmain(clone)
- navisworks api
- dfs
- 습관형성 #직장인자기계발 #오공완
- sparkmain(clone)
- 오블완
- list clear
- 최소신장트리 mst
- Unity
- 드롭다운
- removeAll
- readonly
- raycast
- dropdown
- sparkmain(clone) 무한생성
- 최단거리 알고리즘
- C#
- 깊이탐색
- articulation body
- Today
- Total
낑깡의 게임 프로그래밍 도전기
32일차 : '한 번에 끝내는 유니티&C# 게임 개발 초격차 패키지' 강의 후기 본문

오늘도 강의 듣기 시작!

딱 20분이 소요됐다.

오늘은 Enumerator에 대해 배웠다. 처음엔 단순히 foreach 뒤에 나오는 대상 정도로만 생각했는데, 알고 보니 이게 흔히 말하는 반복자 패턴 (Iterator Pattern)의 구현이더라. 디자인 패턴 책에서 보던 그 개념이 실제 C# 안에 IEnumerator, IEnumerable이라는 형태로 녹아있었던 거다. IEnumerator, IEnumerable에대해 좀더 찾아보았다.
Enumerator는 쉽게 말해서 "지금 어디까지 순회했는지를 기억하는 포인터" 같은 역할을 한다. 예를 들어 List<int>를 foreach로 돌릴 때, 내부적으로는 GetEnumerator()를 호출해서 MoveNext()를 계속 부르며 하나씩 값을 꺼내오는 방식으로 작동한다. 이 MoveNext()가 true를 반환할 때까지 Current를 꺼내 쓰는 거다. 이렇게만 보면 그냥 for문 돌리는 거랑 다를 게 없어 보일 수 있지만, 진짜 강점은 내부 구조를 몰라도 외부에서 반복할 수 있다는 점이다.
그리고 IEnumerable은 Enumerator를 만들어주는 공장 같은 느낌이다. IEnumerable 인터페이스는 GetEnumerator() 메서드만 요구하고, IEnumerator가 그 다음부터의 순회 행위를 담당한다. 둘이 짝을 이루는 구조인 셈이다. 그러니까 foreach는 결국 IEnumerable의 GetEnumerator()를 호출하고, 나온 IEnumerator를 통해 순회하는 거다.
더 재밌는 건 이게 단순한 컬렉션에만 국한되지 않는다는 거다. 우리가 직접 만든 클래스에도 IEnumerable을 구현하고 yield return으로 값을 순차적으로 내보내주면, 마치 리스트처럼 foreach가 가능하다. 이건 정말 편하다. yield return 하나만 써도 알아서 상태를 기억하고 다음 값을 내보내주는 구조가 되니까, 복잡한 상태 관리나 인덱스 조작 없이도 반복자 역할을 쉽게 구현할 수 있다.
결국 Enumerator와 Enumerable은 데이터 구조와 반복 로직을 분리해주는 멋진 추상화 도구였다. 내부를 들여다보니 꽤나 깊고 우아한 구조였다. 이제는 foreach를 쓸 때마다 이 안에 숨어 있는 패턴의 고마움을 느끼게 될 것 같다.

오늘도 디지털 필기와 한컷!

오늘부로 47클립을 들었다.
내일도 파이팅!
'인강 후기' 카테고리의 다른 글
| 34일차 : '한 번에 끝내는 유니티&C# 게임 개발 초격차 패키지' 강의 후기 (4) | 2025.08.03 |
|---|---|
| 33일차 : '한 번에 끝내는 유니티&C# 게임 개발 초격차 패키지' 강의 후기 (6) | 2025.08.02 |
| 31일차 : '한 번에 끝내는 유니티&C# 게임 개발 초격차 패키지' 강의 후기 (4) | 2025.07.31 |
| 30일차 : '한 번에 끝내는 유니티&C# 게임 개발 초격차 패키지' 강의 후기 (4) | 2025.07.30 |
| 29일차 : '한 번에 끝내는 유니티&C# 게임 개발 초격차 패키지' 강의 후기 (9) | 2025.07.29 |