분류 전체보기 31

DFS(깊이 우선 탐색), BFS(너비 우선 탐색)

DFS(Depth-First Search, 깊이 우선 탐색) DFS는 깊이 우선 탐색이라고도 부르며 그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘입니다. DFS는 스택 자료구조(혹은 재귀함수)를 이용하며, 구체적인 동작 과정은 다음과 같습니다. 1. 탐색 시작 노드를 스택에 삽입하고 방문 처리를 합니다. 2. 스택의 최상단 노드에 방문하지 않은 인접한 노드가 하나라도 있으면 그 노드를 스택에 넣고 방문 처리합니다. 방문하지 않은 인접 노드가 없으면 스택에서 최상단 노드를 꺼냅니다. 3. 더 이상 2번의 과정을 수행할 수 없을 때까지 반복합니다. - C++ 재귀 함수를 통한 간단 DFS 구현 예제 #include using namespace std; bool visted[9]; vector graph..

(Unity) JSON을 통한 데이터 처리 in Unity

JSON은 웹이나 네트워크에서 서버와 클라이언트 사이에서 데이터를 주고 받을 때 사용하는 개방형 표준 포멧입니다. JSON은 XML에 비해서 가독성이 좋고 직렬화(Serialize)와 비직렬화(Deserialize) 함수를 통해서 데이터에서 JSON 데이터로, JSON 데이터에서 데이터로 편하게 변환할 수 있다는 장점을 가지고 있습니다. 이러한 JSON 포맷은 유니티에서도 많이 사용되는데, 네트워크 게임을 개발할 때 게임에 필요한 데이터를 주고 받거나, 게임 진행 상황을 저장하거나, 게임 설정을 저장하는 방식으로도 사용할 수 있습니다. 유니티에서 기본 제공하는 JsonUtility는 컴팩트한 최소한의 기능을 제공하는데, 이를 통해 직렬화 / 역직렬화로 게임 내 데이터와 Json데이터의 상호 변환이 쉽게 ..

Unity 2022.10.24

[디자인 패턴] 옵저버 패턴(Observer Pattern) in Unity

옵저버 패턴(Observer Pattern) 옵저버 패턴에는 상태를 가지고 있는 주체 객체와 상태의 변경을 알아야 하는 관찰 객체가 있습니다. 여기서 옵저버는 말 그래도 무언가를 감시하는 역할을 한다는 뜻으로 어떤 '이벤트'가 일어나는 것을 감시하며 객체의 상태 변화가 있을 때마다 메서드 등을 통해 객체가 직접 각 옵저버에게 통지하고 미리 정의해둔 어떠한 동작을 수행하도록 하는 디자인 패턴을 의미합니다. 더보기 - Subject가 Observer에 대해서 아는 것은 Observer가 특정 인터페이스를 구현한다는 것 뿐입니다. - Observer는 언제든지 새로 추가할 수 있습니다. - 새로운 형식의 Observer를 추가해도 Subject를 변경할 필요 없이 새로운 클래스에서 Observer 인터페이스만..

디자인 패턴 2022.10.20

[디자인 패턴] 싱글톤 패턴

싱글톤 패턴 애플리케이션이 시작될 때, 어떤 클래스가 최초 한 번만 메모리를 할당(static)하고 해당 메모리에 인스턴스를 만들어 사용하는 패턴 즉, 싱글톤 패턴(Singleton pattern)을 따르는 클래스는, 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴합니다. 싱글톤으로 구현한 인스턴스는 '전역'이므로, 다른 클래스의 인스턴스들이 데이터를 공유하는 것이 가능한 장점이 있습니다. 단점으로는 싱글톤 인스턴스가 너무 많은 일을 하거나 많은 데이터를 공유시킬 경우 다른 클래스의 인스턴스들 간에 결합도가 높아져 객체 지향 설계 원칙 중 '개방-폐쇄 원칙' 이 위배됩니다. 결합도가 높아지게 되면, 유지보수가 힘들고 테..

디자인 패턴 2022.10.19