전체 글 38

asp.net core를 활용하여 모바일 게임 만들기 (9일차)

어제에 이어서 마저 만들어보겠습니다.Data 폴더를 만들어줍니다.그 안에 GameDbContext 클래스를 만들어줍니다. using GameServer.Entities;using Microsoft.EntityFrameworkCore;namespace GameServer.Data{ public class GameDbContext : DbContext { public GameDbContext( DbContextOptions options) : base(options) { } public DbSet Players => Set(); protected override void OnModelCrea..

카테고리 없음 2026.08.07

asp.net core를 활용하여 모바일 게임 만들기 (8일차)

오늘은 어제 설명하다 말았던 ApiClient를 마저 보고 코드 피드백을 받을걸 바탕으로 수정을 하겠습니다. private static ApiResult CreateFailureResult( UnityWebRequest request){ string errorCode = request.result.ToString(); string errorMessage = request.error; string responseBody = request.downloadHandler?.text ?? string.Empty; if (request.result == UnityWebRequest.Result.ProtocolError) { Apply..

카테고리 없음 2026.08.04

asp.net core를 활용하여 모바일 게임 만들기 (7일차)

전에는 ServerConnectionTester에서 요청을 처리하는 코드를 제작했었습니다. 하지만 다양한 기능을 추가하면 UnityWebRequest 코드가 반복되는 문제가 있습니다. 따라서 이를 해결하기 위해 공통된 네트워크 처리를 해줄 ApiClient를 만들어보겠습니다. namespace Work.LCM._01.Scripts.Network{ public class ApiResult { public bool IsSuccess { get; } public long StatusCode { get; } public T Data { get; } public string ErrorCode { get; } public string Erro..

카테고리 없음 2026.08.02

asp.net core를 활용하여 모바일 게임 만들기 (6일차)

제가 블로그를 쓴지도 6일차가 되었네요. 그동안 다양한 개념을 배울 수 있었지만 이론적인 부분으로만 공부하다보니 막상 게임 개발은 하지 못하고 있었습니다. 그래서 지금부터는 방식을 조금 바꿔서 유니티에 기능을 순차적으로 만들면서 동시에 개념 공부를 하려고 합니다. 이제 2주안에 유니티에서 돌아갈 서버 기능들을 만들어야하기 때문에 유니티에 연결하면서 개발하도록 하겠습니다. 일단 전에 만들었던 ping 기능을 유니티 텍스트로 띄우는 기능부터 만들어보겠습니다.그 다음에 유니티에서 Network 폴더 안에 ServerStatusResponse 스크립트를 만들어줍니다. using System;namespace Work.LCM._01.Scripts.Network{ [Serializable] public..

카테고리 없음 2026.07.29

asp.net core를 활용하여 모바일 게임 만들기 (5일차)

이전 시간에 Validation까지 배웠었습니다. Service 지금까지 코드를 짜면서 모든 기능을 Controller안에 넣다보니 기능이 과하게 몰리는 문제가 있었습니다.그래서 Service 계층을 만들어서 역할 분리를 하겠습니다. Services 폴더를 새로 만들어줍니다.using GameServer.Contracts;namespace GameServer.Services;public interface IPlayerService{ PlayerSummaryResponse? GetById(int playerId); PlayerSummaryResponse? TryCreate(string nickname);}IPlayerService 인터페이스를 만듭니다. using GameServer.Contra..

카테고리 없음 2026.07.27

asp.net core를 활용하여 모바일 게임 만들기 (4일차)

RequestDTO이제 클라이언트가 서버에게 새로운 플레이어 생성이라는 요청을 보내기 때문에 RequestDTO를 만들겠습니다. namespace GameServer.Contracts{ public class CreatePlayerRequest { public string Nickname { get; init; } = string.Empty; }} 새로운 플레이어 생성을 요청하기 위해 Nickname 정보를 담은 DTO를 만들었습니다. 직렬화와 역직렬화 이때 직렬화와 역직렬화 개념을 알아야합니다. 왜냐하면 클라이언트와 서버간에 통신은 JSON 형태로 하지만 그 JSON 안에 담긴 데이터를 C# 객체로 변환해야하기 때문입니다. 직렬화 - 서버의 C# 객체를 JSON으로 변환하는..

카테고리 없음 2026.07.24

asp.net core를 활용하여 모바일 게임 만들기 (3일차)

하나의 Controller 안에 여러개의 Action이번에는 서버 시간 데이터를 보내는 DTO를 만들어 보겠습니다. namespace GameServer.Contracts{ public class ServerTimeResponse { public DateTimeOffset ServerTimeUtc { get; init; } }} 다음처럼 ServerTimeResponse 클래스를 만들고 프로퍼티를 추가해줍니다.그리고 이 DTO에 있는 서버시간을 클라이언트에게 넘겨주기 위해 Controller 안에 Action을 하나 더 만들겠습니다. using GameServer.Contracts;using Microsoft.AspNetCore.Mvc;// asp.net core의 기능들을 ..

카테고리 없음 2026.07.23

asp.net core를 활용하여 모바일 게임 만들기 (2일차)

어제는 개발 환경 설정을 해봤습니다. 오늘은 본격적으로 asp.net core를 공부해보겠습니다. 보기 -> 터미널에 들어가서 dotnet build를 입력하면 프로젝트를 빌드할 수 있습니다.잘 빌드가 되었다면 dotnet run을 입력하여 서버를 실행해줍니다.사진처럼 http://localhost:5098 경로가 나옵니다. 뒤에 포트는 컴퓨터마다 다르기 때문에 이를 확인하고 입력해주셔야 합니다.저 경로를 인터넷에 입력하면 지금은 404 에러가 나옵니다. 일단은 터미넬에 ctrl c를 입력하여 서버를 종류합니다. 그러면 이제 서버가 클라이언트에게 JSON으로 서버시간과 메세지를 주는 API를 만들어보겠습니다. 먼저 Contracts 폴더를 만듭니다. Contacts 폴더 안에는 클라이언트와 서버과 직접..

카테고리 없음 2026.07.21

asp.net core를 활용하여 모바일 게임 만들기 (1일차)

일단 asp.net core가 뭔지 학습하기 위해 개발 환경 설치를 하겠습니다. 먼저 .NET SDK를 다운로드 받아보도록 하겠습니다.PowerShell에 dotnet --version을 입력하면 지금 닷넷 버전을 알려줍니다. 저는 지금 9.0.311이 나오는데 .NET 10 SDK 버전을 설치해야 하기 때문에 설치를 하도록 하겠습니다.그 전에 Visual Studio도 .NET 10 SDK 버전을 사용하기 위해서 18.x 이상 되는 버전을 사용해야 하기 때문에 버전을 확인하겠습니다.버전이 17.x이기 때문에 18.x를 새로 다운로드 해주겠습니다. https://visualstudio.microsoft.com/ko/downloads/?os=mac&utm_source=chatgpt.com Windows, ..

네트워크 2026.07.20

[자료구조와 알고리즘] 복습

#include #include #include using namespace std;int main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); vector> v(5); string answer; for (int i = 0; i > s; for (char c : s) { v[i].push_back(c); } } for (int i = 0; i = 0; j--) { if (i 수행때 틀렸던 문제 PCCE 1회 기출문제 9번 복습 처음에 풀었던 방법 #include #include #include using namespace std;int solution(vector> board, int h, int ..