| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 최소신장트리 mst
- 크루스칼
- C#
- removeAll
- dropdown
- 트리구조
- Simulation
- dfs
- list clear
- 드롭다운
- 습관형성 #직장인자기계발 #오공완
- unity korea
- navisworks api
- Unity
- GetComponent
- 너비탐색
- 디지털트윈
- unity sparkmain(clone)
- 유니티 sparkmain(clone)
- readonly
- 티스토리챌린지
- 행동트리
- articulation body
- raycast
- 최단거리 알고리즘
- 유니티
- sparkmain(clone) 무한생성
- 깊이탐색
- sparkmain(clone)
- 오블완
- Today
- Total
목록전체 글 (188)
낑깡의 게임 프로그래밍 도전기
new상속을 할때 override말고 new를 쓸수있다 새로 만들어진 함수로 생각할 수 있다. sealed sealed를 class 앞에 추가해주면 상속받을 수 없다. 부모에서 override된 함수를 자식에서도 override할 수 있다. base는 각 한단계 위 부모 것이다. gotoColsole.WriteLine("start")goto start;Colsole.WriteLine("starting");start:Colsole.WriteLine("end");start사이에 있는 코드를 건너뛴다주의할 점은 가독성을 헤치는 것이다. 쓰면은 코드가 복잡해진다. 실무에서 잘 사용하지는 않는다 정렬List ints = new List();ints.Sort();List itemInfos = new List(){ ..
오늘은 집에서 강의 듣는 날~!40분정도 학습을 하고 마쳤다.오늘은 object, dictionary, enum컨트롤, struct, consolas 강의는 잘 들었고 object, dictionary, enum컨트롤의 정의와 설명이 조금 부족했던 struct, consolas에 대해 더 알아보기로 했다. object는 C#에서 모든 타입의 최상위 부모로 사용되는 기본 타입이다. int든 string이든 class든 struct든 다 object로 포장할 수 있어서, 다양한 타입을 하나의 컬렉션에 담거나 유연하게 데이터를 처리할 때 사용된다. 하지만 object는 실제 타입이 무엇인지 모른 채 접근할 수 없기 때문에 꺼낼 때는 캐스팅이 필요하고, 이때 잘못된 형변환으로 에러가 날 수 있어서 주의가 필요하..
object모든 자료형은 object를 최상위 상속을 받게 된다. 모든 자료형을 다 받을 수 있다.int intValue = 42;ovject obj = intValue;//value타입을 reference타입으로 바꾸는 boxing작업int intValue2 = (int)obj //unboxingGiftBox giftBox = new GiftBox();object obj2 = giftbox;주의 무분별하게 사용X박싱 언박싱은 메모리상 손실과 성능상 부담을 느낀다.그래서 비슷한 상황에 제네릭을 쓰는걸 더 추천한다.static void main(string[] args){ SetValue(intValue); SetValue(giftBox);}static void SetValue(T obj){ Cons..
오늘도 강의 듣기 시작!딱 20분이 소요됐다. 오늘은 Enumerator에 대해 배웠다. 처음엔 단순히 foreach 뒤에 나오는 대상 정도로만 생각했는데, 알고 보니 이게 흔히 말하는 반복자 패턴 (Iterator Pattern)의 구현이더라. 디자인 패턴 책에서 보던 그 개념이 실제 C# 안에 IEnumerator, IEnumerable이라는 형태로 녹아있었던 거다. IEnumerator, IEnumerable에대해 좀더 찾아보았다. Enumerator는 쉽게 말해서 "지금 어디까지 순회했는지를 기억하는 포인터" 같은 역할을 한다. 예를 들어 List를 foreach로 돌릴 때, 내부적으로는 GetEnumerator()를 호출해서 MoveNext()를 계속 부르며 하나씩 값을 꺼내오는 방식으로 작동한..
public class MyCollection : IEnumerable{ private int[] data; public MyCollection(int[] data) { this.data = data; } public IEnumerator GetEnumerator() { return new MyCollectionEnumerator(this.data); }}public class MyCollectionEnumerator : IEnumerator{ private int[] data; private int position = -1; public MyCollectionEnumerator(int[] data) { this...
오늘도 점심을 챙겨먹고 강의를 듣기 시작했다.짧은 강의였지만 코드를 치느라 시간이 좀 걸렸다. 오늘은 operator에 대해 배웠다. C++이건 C#이건 연산자는 늘 있었던 개념이라 익숙하다고 생각했었는데, 클래스를 대상으로 직접 정의할 수 있다는 사실은 새삼스럽게 느껴졌다. 클래스와 클래스가 마치 int나 float처럼 덧셈을 하고, 비교를 하고, 심지어 ++ 같은 연산도 적용될 수 있다니, 처음엔 약간 신기하기도 하고 복잡하다는 생각도 들었다. 그런데 막상 직접 operator를 정의해서 써보니 꽤 직관적인 면도 있고, 오히려 어떤 상황에서는 꼭 필요한 기능처럼 보이기도 했다. 예를 들어 두 벡터를 더한다거나, 복소수 계산을 한다거나, 어떤 객체 간의 비교 연산이 필요할 때, 매번 .Add() 나 ..
operator를 쓰면 클래스끼리 더하거나 빼거나 등의 연산이 가능하다pubic static을 써야한다.public class Character{ public readonly int Hp; public readonly int Power; public Character(int hp, int power) { Hp = hp; Power = power; } public static Character operator + (Character a, Charater b) { return new Character(hp: a.Hp + b.Hp, power: a.Power + b.Power); } public static explic..
오늘은 편의점 도시락을 먹고 강의를 들었다.오늘 강의는 길어서 듣는데 좀 걸렸다. 오늘은 정말 많은 것을 배운 하루였다. 강사님은 실습 위주의 수업을 중심으로, 직접 코드를 작성하고 실행해보며 기능들을 익히게 해주셨다. 실전에서 어떻게 적용되는지를 보여주시며 자연스럽게 흐름을 파악할 수 있게 이끌어 주셨다. 그런 실습 중심의 방식은 효과적이었고, 실제로 손을 움직이며 이해하는 데 큰 도움이 되었다. 하지만 나는 거기서 한 발 더 나아가, 개념적인 부분에 대한 궁금증이 생겼다. MVC는 Model-View-Controller의 약자로, 프로그램을 세 가지 책임 영역으로 나누어 구조화하는 디자인 패턴이다. Model은 데이터와 비즈니스 로직을 담당하고, View는 사용자에게 보여지는 화면, Control..
MVCModel (Date)View (UI)Controller (Data UI)MVC는 Model-View-Controller의 약자로, 웹 애플리케이션 구조를 체계화한 디자인 패턴. 구성 요소 Model: 데이터와 비즈니스 로직 담당 → DB와 직접 연결되거나 Entity 클래스 형태로 존재 View: 사용자에게 보여지는 화면(UI) → Razor(.cshtml) 파일로 구성됨 Controller: 사용자의 요청을 받아 Model과 View를 연결하는 중간 관리자 → URL 요청 처리, View 선택, Model 전달 담당예시 흐름 사용자가 /Product/Detail/1 요청 ProductController.Detail(int id) 호출됨 내부에서 ProductService.GetById(id) ..
오늘도 점심먹고 강의 한편~!졸렸지만 꾹 참고 들었다.시작 부분을 캡쳐해놓고 저장을 안해서 종료밖에 없다. 하지만 오늘은 한클립 들었으니 뭐..리플렉션을 강의 시간내에 다 담기 힘드므로 따로 좀더 찾아보았다. C#에서 리플렉션은 게임 클라이언트 개발에서도 은근 자주 쓰이는데, 특히 런타임에 타입을 모를 때 동적으로 인스턴스를 생성하거나 내부 멤버를 호출해야 할 때 쓴다고한다. 예를 들어 유니티 에디터 확장할 때, 프로퍼티 창 자동화하거나 시리얼라이즈 안 된 필드까지 에디팅하려 할 때 리플렉션 써주면 딱이다. Type 객체를 얻는 방식은 대표적으로 typeof(SomeClass)나 someObject.GetType()이 있는데, GetType()은 런타임 타입 기준이고 typeof는 정적으로 타입 정보를 ..