유니티 WebGL 프로젝트에서 Websocket 사용하기

유니티 세계에서 통신을 하기 위한 방법으로 소캣, HttpRequest 등 다양한 방법들이 있습니다. 그 중 저는 실시간 양방향 통신이 필요해서 소캣을 이용하여 NetworkManager를 만들었습니다. 😭 일반 소켓을 웹에 사용하면 웹 소캣이겠지.. 라고 생각한 무지했던 과거의 나.. 하지만 일반 소캣과 웹 소캣은 프로토콜부터 달랐으며 서로 통신도 안된다는 것을 깨닫고 웹 소캣 통신을 하기위해 여러가지 시도를 하게 됩니다. 그 중 성공했던 방법을 공유해 드리겠습니다. 👍 System.Net.WebSockets (실패) 첫 번째로 시도한건 C# 에서 바로 사용할 수 있는 System.Net.WebSockets 이었습니다. 라이브러리를 받을 필요 없이 바로 추가해서 사용할 수 있기 때문이었습니다. ...

2025년 01월 01일 · 2 min · 283 words · JongBin

유니티 싱글톤 패턴 및 템플릿 구현

💡 Quotation 소프트웨어 디자인 패턴에서 싱글턴 패턴(Singleton pattern)을 따르는 클래스는, 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴한다. 이와 같은 디자인 유형을 싱글턴 패턴이라고 한다. Wikipedia 싱글톤 패턴은 위 내용처럼 프로그램이 가동된 후 딱 하나의 인스턴스만 갖는 객체를 말합니다. 전역 변수의 개념이 있으며 해당 객체의 포인터를 알고 있다면 글로벌한 성격을 가질 수도 있습니다! 👍 하지만 전역 및 글로벌 변수들이 많으면 스파게티 코드가 된다는 단점이 있으며 사용하는 순간 종속되기 때문에 단위 테스트의 어려움을 가질수 있습니다. 따라서 구현 전에 적절한 설계가 반드시 필요합니다. ...

2025년 01월 01일 · 3 min · 639 words · JongBin

CORS 오류 원인 및 해결 방법

💡 Quotation 교차 출처 리소스 공유(Cross-Origin Resource Sharing, CORS)는 브라우저가 자신의 출처가 아닌 다른 어떤 출처(도메인, 스킴 혹은 포트)로부터 자원을 로딩하는 것을 허용하도록 서버가 허가 해주는 HTTP 헤더 기반 메커니즘입니다. - MDN WebGL 프로젝트 개발 중 CORS 오류가 저를 너무 힘들게 해서 그 과정과 해결 방법을 공유하려고 글을 쓰게 되었습니다. 😭 우선 왜 이런 오류가 발생하는지 원인부터 제대로 알아보도록 하겠습니다. 원인 ✅ 자신의 출처가 아닌 다른 어떤 출처(도메인, 스킴 혹은 포트)로부터 자원을 로딩 ...

2024년 12월 27일 · 2 min · 342 words · JongBin

C# Task async/await, Task.Wait()/Result() 차이 및 테스트

.NET Framework 또는 Core 프로젝트에서 async 와 await 키워드를 이용하여 비동기 처리를 할 수 있다고 해서 몇 가지 실험을 해봤습니다. 😎 C++ 에서는 스레드풀에 일들(Jobs)을 넣어 백그라운드에서 작업을 진행 시켰는데, 단 두 개의 키워드로 이런 일들이 가능하다고 하니 신기하고 편해 보이기도 합니다. 👍 테스트 💡 Information C# 콘솔 프로젝트에서 진행했습니다. Program.cs 파일만 만들어지는 기본 프로젝트 1. async 키워드를 붙이면? 일단 async 키워드를 붙이면 내장된 스레드풀에서 돌아가는지 궁금했습니다. 코드는 아래와 같고, 예상 결과는 Main 0과 Main 1이 거의 동시에 출력되고 2초 후에 Async 가 출력될 것이라고 생각했습니다. ...

2024년 12월 26일 · 4 min · 737 words · JongBin

웹 소켓 개념 및 사용 방법 ASP.NET Core 프로젝트

서버 - 클라이언트 간 통신 프로토콜 중 HTTP 는 비연결성으로 항상 연결되어 있는 상태가 아닙니다. 아주 간단히 설명하자면, 웹 서버(apache 또는 nginx 등)는 클라이언트로부터 요청이 들어오면 연결을 수립하고 요청한 자료를 만들어 클라이언트에 전송하고 연결을 종료시킵니다. 그렇다면 실시간으로 보여지는 👍 좋아요 라던지, 조회수 등 실시간 알람 처리는 어떤 방법으로 처리를 하게 되는 것일까요? 💡 Quotation 웹 소켓은 사용자의 브라우저와 서버 사이의 인터액티브 통신 세션을 설정할 수 있게 하는 고급 기술입니다. 개발자는 웹 소켓 API를 통해 서버로 메시지를 보내고 서버의 응답을 위해 서버를 폴링하지 않고도 이벤트 중심 응답을 받는 것이 가능합니다. ...

2024년 12월 22일 · 3 min · 570 words · JongBin