분류 전체보기 37

코루틴 (Coroutine)

1. 사용처 - Update가 아닌 곳에서도 반복적으로 코드가 실행되어야 할 때가 있다. (ex.OnEnable, 이벤트 호출시 등등)> 그러한 상황에서 코루틴은 매우 효과적인 방법일 것이다. - 그밖에도 일정시간 텀을 두고 실행해야 하거나 특정 조건을 부여한 뒤 코드가 실행되게 해야 할 경우 등 다양한 방면에서 자주 사용된다. (실무에서도 굉장히 많이 사용된다고 하니 자세히 공부해보자)+ 필자는 저번 협업 프로젝트에서 코루틴을 너무 많이 사용해서 현업자들에게 많이 혼날거같다는 얘기도 들었다...2. 코루틴 사용방법1) 필수 요소 - IEnumerator라는 반환형으로 시작해야 한다. - yield return이 반드시 포함되어야 한다. 2) yield return의 종류(1) yield return n..

유니티 공부 2024.11.13

딕셔너리 (Dictionary <T>)

1. 해시테이블: 키(key) 값(value)을 한쌍으로 저장하는 구조. 키를 기준으로 값을 저장하는 구조.각 키는 해싱되어 값을 가리키는 고유한 식별자 역할대부분의 경우 O(1)의 시간복잡도를 가짐더보기* 해시 : 임의의 길이를 가진 데이터를 '해시 알고리즘'을 사용해 고정된 길이를 가진 데이터로 출력한 값1) 기본개념(1) 키 - 데이터를 저장하고 찾기 위해 사용되는 고유한 식별자 - 해시함수를 거쳐 데이터를 보관할 수 있는 식별코드(해시코드)로 전환된다. (2) 값 - 키를 기준으로 한 위치에 저장되는 데이터 - 키를 통해 값에 엑세스 할 수 있다. (3) 해시함수 - 입력된 키를 해시테이블의 주소(해시코드)로 변환하는 함수 - 자료구조의 성능을 결정짓는 중요한 요소 - 보관하고자 하는 테이블의 크..

자료구조 공부 2024.11.12

유니티이벤트(Unity Event) & 유니티액션(Unity Action)

유니티이벤트와 유니티액션을 이해하기에 앞서 Delegate(대리인)에 대해 이해해야 함.Delegate : 프로그래밍에서는 메서드를 참조하고 있다가 대신 호출해주는 변수를 의미더보기> 기존에는 A클래스 안의 F1메서드를 B클래스에서 사용하려면 B클래스가 A클래스를 소유하고 있었어야 했지만 Delegate를 활용하면 A클래스가 B클래스의 델리게이트에 함수를 등록해두면 된다.A클래스를 소유할 필요없이 B클래스가 메서드가 등록된 Delegate를 실행해주면 A클래스의 F1 메서드가 실행된다. 1. 유니티 이벤트: 이벤트와 델리게이트를 사용하기 편하도록 유니티측에서 랩핑 해 놓은 기능1) 이벤트 활용법 - 이벤트를 발생시키는 쪽(Publisher)과 이벤트에 반응하는 쪽(Subscriber)으로 구성되어 있으며..

유니티 공부 2024.11.11

스택(Stack)과 큐(Queue)

스택과 큐는 배열, 리스트와 달리 인덱스를 통해 데이터에 접근 할 수 없음.원소의 삽입과 삭제를 자주 반복해야 할 경우 리스트보다 스택과 큐를 사용하는 것이 메모리 측면에서 훨씬 좋다.길찾기 문제에서 이동할 수 있는 다음 노드를 큐에 저장할 경우 BFS, 스택에 저장할 경우 DFS  1. 스택 (Stack) : LIFO (Last In First Out): 후입선출. 데이터를 추가할 때 탑을 쌓듯이 차곡차곡 데이터가 쌓이게 됨.데이터를 꺼내고자 하면 가장 최근에 쌓았던 데이터를 반환 받음.  1) 삽입: Stack.Push(); - 가장 마지막에 데이터를 추가하기 때문에 O(1)의 시간 복잡도를 가짐 - 단, 내부 배열 최대 크기에 도달했다면 두배 크기로 재할당하기 때문에 O(n)의 시간 복잡도를 가짐 ..

자료구조 공부 2024.11.10

string 메서드

C#에서는 문자열을 처리하기 위해 System.String 클래스를 제공.주로 사용되는 string은 System.String의 별칭으로 클래스와 완전 동일하다. 1. 문자열 선언 및 초기화// 초기화 없이 단순 선언string _message;// null로 초기화string _message = null;// 빈 string 생성1string _message = "";// 빈 string 생성2(위 방법 말고 이방법이 메모리 측면에서 좋음!)string _message = System.String.Empty;// 문자열로 초기화string _message = "Hello, World!";// 문자배열char[] _letters = { H, E, L, L, O };// 문자배열을 통한 string 초기화..

C# 공부 2024.11.09

리스트(LIST)와 링크드리스트(LINKED-LIST)

배열의 경우 미리 정해놓은 배열의 크기 이상의 데이터를 추가할 수 없다는 단점이 있다.(데이터를 더 많이 추가하고자 한다면 배열을 새로 할당하고 기존의 데이터를 옮겨줘야 함)그와 달리 리스트는 크기를 넘어서 데이터를 추가할 수 있다. 1. 리스트 (LIST ): 자료구조를 더 편하게 사용할 수 있게 제네릭으로 선언됐기 때문에 다양한 타입을 다룰 수 있고 *박싱과 *언박싱에서도 비교적 자유로운 모습을 보인다.더보기* 박싱 : 값 형식의 데이터를 참조 형식의 데이터로 변환하는 것* 언박싱 : 참조 형식의 데이터를 값 형식으로 변환하는 것박싱과 언박싱은 최적화의 관점에서 지양해야 함. - 리스트는 기존의 크기를 넘어서 데이터를 추가할 수 있다. - 단, 기존의 크기를 넘어설 경우 기존 크기의 2배를 메모리에 ..

자료구조 공부 2024.11.08

1. 네트워크 기초

1. 네트워크: 네트워크란 그물망(Net)과 일(Work)의 합성어로 그물망처럼 장치를 연결하여 정보를 주고받는 일을 의미1) 프로토콜 - 네트워크에서 주고받는 0과 1로 구성되어 있는 데이터를 주고받은 후 해석하기 위해 네트워크를 구성하는 컴퓨터와 네트워크 장비들이 지켜야 할 규칙=> 데이터 전송 상대방, 데이터 형식, 데이터 전송순서와 절차, 데이터 전송방법 등을 규정2. OSI 7 계층 모델 * 중요! 암기! *: 국제 7계층 모델은 표준화 기구 (ISO)에서 개발한 통신에 관한 계층화 표준 모델.통신이 일어나는 과정을 단계별로 파악할 수 있으며, 이상이 생긴 단계만을 고칠 수 있는 장점이 있음( 물리 / 데이터링크 / 네트워크 / 전송 / 세션 / 표현 / 응용 ) 1) 물리계층 - 네트워크 데이..

네트워크 공부 2024.11.07