반응형 프로그래밍486 Unity Mirror & Mirage 네트워크 라이브러리에 대해서 게임 서버를 구현하려면 무엇이 필요한가? 일반적으로 서버/클라이언트 모델의 온라인 게임을 만들고 운영하려면 게임 서버 빌드를 만들고 호스팅 해야한다. 그 서버 빌드에는 서버 엔진 파트와 게임 컨텐츠 파트가 구현되어야 한다. 엔진 파트 - Transport 설계, 소켓 통신, API등 전반적인 네트워킹 기능 컨텐츠 파트 - 게임의 온라인 컨텐츠 기능 엔진 파트 구현은 어떻게 구현할 수 있는가? 직접 구현 먼저 성능과 필요한 기능을 고려해 서버 엔진을 팀내에서 자체적으로 제작하는 방법이 있다. 이 방법의 장점은 서버 기능의 확장, 유지 보수가 용이하다. 구현하고자 하는 게임에 최적화도 가능하다. 그리고 구현 방식을 자유롭게 선택 가능하다. 하지만 서버 엔진을 구현하기 위해 필요한 네트워크 지식을 모두 알아야.. 2023. 8. 9. Dapper Vs Entity Framework 비교 Dapper Vs Enttry Framework Entitiy Framework와 Dapper는 .NET 애플리케이션 환경에서 사용하는 두 유명한 ORM(Object-Relational Mapping) 툴이다. 둘 다 데이터 엑세스를 단순화하고 객체와 데이터베이스 간의 매핑을 수행하는데 사용하지만 접근 방식과 기능이 다르다. 이에 대해서 한번 정리해보려고 한다. Dapper Dapper는 경량형 마이크로 ORM이다. 단순화와 성능에 초점을 맞춰져 있다. 개발자가 raw SQL 쿼리를 작성하고 결과를 객체에 매핑 할 수 있다. 추상화를 최소화하고 쿼리를 직접 실행하여 더 빠른 데이터 엑세스를 제공한다. 관계를 매핑하고 처리하는데 더 많은 수동 작업이 필요하다. 성능이 중요한 프로젝트와 SQL 쿼리에 대한 .. 2023. 8. 9. 프로그래밍에서 주소(Addresses)와 데이터(Data)는 어떻게 다른가? 주소(Address)와 데이터(Data) 주소와 데이터는 컴퓨터 공학에서 가장 일반적인 두 단어이다. 데이터는 정보(information)를 설명하는 용어이고 주소는 정보의 위치(location)를 설명하는 용어이다. 이는 매우 간단하고 명확하게 들린다. 그러나 이는 생각보다 간단한 이야기는 아니다. 그렇다면 왜 주소와 데이터는 개념은 이해하기 어려울까? 예를 들어 나는 Alan Clements이고 Merrington Avenue 12에 산다. 누군가 내 주소를 헷갈려할까? 현실세계(non-computer world)에서 이 구분은 명확하다. 그러나 컴퓨터 세상에서 주소와 데이터는 다소 미묘하다. 주소와 데이터를 이용하여 C언어로 표현된 요소들을 생각해 보자. int t, *b; int a[10]; b .. 2023. 8. 8. C# 인터페이스 이해하기 인터페이스(Interface) 인터페이스는 추상화를 달성하고 객체가 서로 상호 작용할 수 있도록 하는 강력한 도구이다. 클래스가 구현해야 하는 메서드, 속성 및 이벤트의 집합을 정의하지만 이에 대한 구현은 제공하지 않는다. 이를 통해 코드의 유연성과 재사용성을 높인다. 소프트웨어 개발의 추상화는 시스템의 다른 부분에서 구현의 세부 사항을 숨기는 프로세스이며 이는 복잡성을 줄이고 개발자가 모든 세부 사항을 이해할 필요 없이 동일한 코드베이스에서 작업할 수 있도록 하기 위함이다. 또한 추상화를 통해 개발자는 구현 세부 정보 대신 기능에 집중할 수 있게 된다. 인터페이스란 무엇인가? 인터페이스는 클래스처럼 보이지만 구현이 없다. 여기에는 이벤트, 인덱서, 메서드 또는 속성의 선언만 포함된다. 인터페이스가 선언.. 2023. 8. 3. C# Closure 이해하기 C# Closure Closure는 C# 2.0부터 지원된 기능으로서 C#의 무명메서드(Anonymous Method)와 람다식(Lambda Expression)으로 구현할 수 있다. 먼저 간단히 무명메서드를 이용하여 Closure를 사용한 예를 살펴보자. 다음은 간단한 무명메서드를 정의하여 print라는 델리게이트 객체에 할당한 예이다. 여기서 정의된 delegate 블록은 작은 함수라 볼 수 있는데, 이 함수는 단순히 콘솔 출력 문장 하나로 되어 있다. 이것이 Closure가 아니다. public void Test2() { Action print = delegate (string msg) { Console.WriteLine(msg); }; print("A"); } 이제 한걸음 더 나아가 Test() .. 2023. 8. 2. C# 무명 메서드(Anonymous Method) 무명 메서드(Anonymous method) C# 2.0에서부터 메서드를 미리 정의하지 않아도 되는 메서드명이 없는 무명 메서드(혹은 익명 메서드, Anonymous Method)를 지원하게 되었다. 만약 어떤 메서드가 일회용으로 단순한 문장들로 구성되어 있다면, 굳이 별도의 메서드를 정의하지 않아도 되는 것이다. 무명 메서드를 만들기 위해서는 delegate 키워드와 함께 아래와 같이 파라미터와 실행 문장 블록을 적으면 된다. delegate 뒤의 파라미터는 해당 메서드 원형(prototype)에 맞는 동일한 파라미터 타입이어야 하며, 실행 문장블록에는 여러 문장들을 쓸 수 있다. 무명 메서드는 외관상 인라인 메서드(inline method) 형식을 띠며, 무명 메서드 자체를 delegate 타입의 변.. 2023. 8. 2. 이전 1 ··· 61 62 63 64 65 66 67 ··· 81 다음