오블완 10

싱글톤 패턴 (Singleton)

디자인 패턴 공부를 하면서 가장 먼저 알게됐던 패턴. 1. 싱글톤 패턴이란? - 프로그램 내에서 단 하나의 객체만 존재하는 컨트롤 타워로써 프로그램의 시작부터 종료까지 생존하면서 데이터 관리의 이점을 가져오는 디자인 패턴 - 게임 내에서 가장 많이 사용되는 디자인 패턴 중 하나 2. 장단점1) 장점 - 단일의 인스턴스와 전역적인 접근을 보장하기 때문에 싱글톤을 사용해 오브젝트들이 서로를 참조하고 있는 결합도를 낮출 수 있음 - 게임 내에서 파괴되지 않기 때문에 보다 편하게 데이터를 관리할 수 있음 2) 단점 - 전역적인 접근이 가능하기 때문에 데이터에 대한 보호수준을 주의하지 않으면 의도치 않은 데이터 변화가 발생할 수 있음 - 객체들이 싱글톤 객체의 데이터에 의존하게 되는 현상이 발생할 수 있음 - s..

인터페이스(Interface)

C#에서 클래스는 다중상속을 금지하였기 때문에 하나의 부모 클래스만 상속을 받을 수 있다. 그러다보니 발생하는 대표적인 문제점이 있는데 예를들면, '문'이라는 오브젝트가 '잠금'이라는 기능을 가진 클래스와 '출입구'라는 기능을 가진 클래스를 동시에 상속받지 못하다 보니 둘중에 하나의 기능만 하게 되는 문제가 발생한다.이러한 문제점을 보완하기 위해 필요한것이 인터페이스다. 1. 인터페이스1) 특징 - 인터페이스는 직접 구현하지 않고 인터페이스를 가지는 클래스에서 반드시 구현해야 한다는 특징이 있음. - 인터페이스의 첫글자 이름은 "I"로 해야한다는 암묵적인 룰이 있음 (ex. IEnterable, IOpenable 등) 2) 사용법 (1) 인터페이스를 생성하고 상속받는 클래스에서 반드시 구현해야하는 함수를..

C# 공부 2024.11.15

네트워크 동기화 [Photon, PUN]

네트워크 수업을 들으면서 매치메이킹 부분에서부터 명절 고속도로마냥 꽉 막힌 기분의 연속이었다.당장 네트워크 자체도 신경쓸게 너무 많아 어려운마당에 새로운 photonNetwork 메서드가 수없이 많고 콜백함수들도 너무 많았기 때문에 클론코딩을 하면서도 머리에 잘 들어오지 않았다.블로그에 쓰면서 조금이라도 더 이해하고 외워보고자 작성하게 됐다.1. 포톤 구현 컨셉:클라이언트 측에서 서버측으로 PhotonNetwork를 통하여 요청을 하고서버에서 클라이언트 측으로 MonoBehaviourPunCallbacks 클래스를 통하여 콜백 함수를 통해 응답하는 방식으로 요청을 처리한다.2. PhotonNetwork 메서드일단은 자주 사용하는 것으로 생각되는 것들만 작성했다.(실제로는 훨씬 많다)1) 네트워크 동기화 ..

네트워크 공부 2024.11.14

코루틴 (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