목록코딩 (21)
공부일지
목차목차가비지 컬렉터란답변파생질문가비지가 뭐임?덧붙일 것가비지 컬렉터 회피 전략에는 무엇이 있는가?답변파생 질문덧붙일 것 가비지 컬렉터란 답변C# 메모리 관리 시스템의 핵심 컴포넌트, 사용되지 않는 메모리를 자동으로 찾아 해제한다.개발자의 관리가 필요 없어 메모리 낭비 방지하고 관리를 단순화 시킨다. 사용하지 않는 메모리 해제, 메모리 할당 요청 처리, 새 객체에 할당 가능한 메모리 공간 찾기 등의 작업을 진행한다. Mark ans Sweep 알고리즘을 사용하여 실행 중인 프로그램에서 접근 가능한 객체를 표시하고 표시되지 않는(:접근 불가) 객체를 메모리에서 제거한다. 파생질문 가비지가 뭐임? 동적 메모리 중 사용되지 않는 것이걸 세분화하면 세대가 나옴.0,1,2 참조 메모리 중 0세대가 가장 덧붙일 것..
옵저버패턴의 정의옵저버(: obesrver : 관측자) 패턴 플레이어 체력을 관찰하다가 0으로 떨어진다면 UI,Controller, Manager 등에 플레이어 패배를 알리는 기능을 고려해보자. 가장 먼저 고려할 수 있는 건 아마도 Update문 안에서 프레임 단위로 체력을 확인하다가 0 이하가 된다면 처리해 주는 것이다.다만 이 경우 UI관련 코드들, Control 관련 코드, Manager코드 전부와 커플링이 되고 말 것이다. 이런 코드 전부와 커플링이 되지 않고 체력 상태를 전파하기 위해서 사용하는 것이 옵저버 패턴이다. 📌옵저버 패턴 : 하나의 옵저버를 통해 행동을 감시해서 처리하는 것이 옵저버 패턴을 사용하면 누가 받든 상관없이 알림을 보낼 수 있다. 따라서 옵저버 패턴은 위와 같이 일대 다의 ..
📌스크립터블 오브젝트란📍📌 스크립터블 오브젝트란...Unity에서 관리하는 유연한 데이터 컨테이너...스크립팅 가능한 오브젝트이며, 스크립트로 정의하고 에셋 메뉴를 통해 생성. 유니티에 에셋을 저장하는 재사용 가능한 데이터 구조.클래스 인스턴스와 별도로 대량의 데이터나 설정 저장 가능.코드와 데이터를 분리하여 코드를 더 깔끔하고 관리하기 쉽게 함.인스펙터 창에서 직접 수정, 관리.값의 사본이 생성되는 것을 막아 메모리 사용을 줄일 수 있다.착탈식(pluggable) 데이터 집합을 미리 정의함.🔨🔧S.O. 선언과 사용 예시🧾📝using System.Collections; using System.Collections.Generic; using UnityEngine; [CreateAssetMenu(fileNa..
루키스 님 - 델리게이터 부분 07:06 델리게이트의 정의📌델리게이트 : 대리자 = 대리하는 것변수가 똑같은 로직을 다른 값으로 사용하는 것 마냥, 하나의 동작에 여러 상황이 부여되는 것.함수 자체를 인자(연락처)로 넘겨주고 함수를 호출하는 것(거꾸로 연락 주는 것).→ 걍 함수 담는 변수. 혹은 유사 함수 포인터. → 어려운 말로 함수에 대한 참조 타입이라 한다. 델리게이트 선언delegate 반환형 델리게이트이름(매개변수)ex) delegate void SpawnDelegateFuc(); 델리게이트 사용delegate void SpawnDelegateFuc(); void Start() { //델리게이트를 저장할 변수 생성 SpawnDelegateFuc spawnAction; //델리게이트 변수에 함수..
null 조건부 연산자 “?.”foo 객체가 null이 아니면 member 필드에 접근int? bar; bar = foo?.member; “?[]”객체의 멤버 접근이 아닌 배열 같은 컬렉션 객체 첨자를 이용한 참조에 사용.ArrayList a = new ArrayList(); a?.Add("야구"); a?.Add("축구"); WriteLine($"{a?[0]}"); WriteLine{$"{a?[1]}"}; null 병합 연산자 “??”두 개의 피연산자를 받아서 왼쪽 피연산자가 null이 아니면 그대로, null이면 오른쪽 피연산자를 반환int? a = null; Console.WriteLine(${a ?? 0}); a = 99; Console.WriteLine(${a ?? 0}); Reference[C#..
Switch문~~문과 ~~식의 차이패턴 매칭(Pattern Matching) Switch문 switch문과 패턴 매칭 중 형식 패턴 : 나중에 써먹어 볼 만할 듯object obj = 123; switch(obj) { case int: break; case float: break; default: break; } 케이스 가드(Case Guard) : switch문의 case 절 패턴을 구체적으로 만들어주는 추가 조건 검사“when”switch (obj) { case int: break; case float f when f >= 0: break; case float: break; default: break; } ~~문과 ~~식의 차이문 : 결과 반환과 무관하게 주어진 작업을 진행.식 : 결과값을 만들 수 ..
연속적 동형 데이터 타입(Homogeneous Data Types) C/C++ 에서는 연속적인 메모리 공간에 대한 주소이며C# : 배열 객체로서 메모리 상의 배열에 대한 정보를 가지며 System.Array 클래스로 생성되어 속성과 메서드를 사용할 수 있는 객체 인스턴스 가변 배열(Jagged Array) : 배열 요소가 서로 다른 차원과 크기를 갖는 배열.가변 배열 : int [][] a = ne wint [][];2차원 배열 : int[ , ] a = new int[ , ];특일반 다차원 배열에서 공간의 낭비가 심할 때각 차원마다 다른 배열 크기를 가져야 할 때 동적 배열(Dynamic Array) : 최대 크기를 미리 알 수 없을 때, 중간에 확장 또는 축소하는 기능을 갖는 배열장점 : 꼭 필요한 ..
자료구조(Data Structure) : 데이터를 효율적으로 액세스하고 조작할 수 있도록 구조를 만들어 저장하고 관리하는 것.어떻게 구현할지 - 자료형의 물리적 형태로 구현 추상적 자료형(Abstract Data Type, ADT) : 특별한 구현방법을 지정하지 않은 자료형알고리즘이 문제를 해결하는데 필요한 자료형과 그 자료를 사용한 연산들을 수학적으로 정의한 모델무엇이 구현되어야 하는지 - 자료형의 논리적 형태로 정의하는것 자료구조단순 구조(Primitive Data Structure) : 기본적 데이터 타입 ex) 정수 실수 문자 부울린선형 구조(Linear Data Structrue) : 앞 자료와 뒤 자료의 1대 1 구조.배열, 연결리스트, 스택, Queue 등비선형 구조(Non-Linear Da..