웹서버/C# + 유니티로 만드는 MMORPG 게임 개발 (3) - 웹서버

WebApi #1

monstro 2025. 4. 28. 16:36
728x90
반응형

이번 포스트에서는 Razor를 이용한 웹 페이지 구현 방식 중에서

이전의 Blazor 방식이 아닌, Web API 방식을 사용하여 웹 페이지를 구현해보겠습니다.

 

1) Web API 방식을 사용하는 이유

기존의 Blazor를 사용하는 방식 C# 스크립트와 더불어서 HTML 스크립트를 작성하여

SPA 방식으로 웹 페이지를 구현할 수 있다는 장점이 존재하였습니다.

 

그러나 프로젝트의 최종 목표는 웹 페이지의 구현이 아닌, Unity와 서버를 연결하는 것이 목표입니다.

따라서 웹 페이지의 역할은 Unity에서 수행하고 서버데이터만 건네주는 방식을 구현해볼 것입니다.

 

2) 절차

이전의 랭킹을 보여주는 Blazor 웹 페이지 프로젝트가 존재하는 동일한 경로에 프로젝트를 생성합니다.

따라서 몇 가지 절차를 수행해야 합니다.

 

2 - 1) Class Library 추가

 

기존 프로젝트와 동일하게 데이터의 역할을 수행하는 GameResult 클래스를 사용할 예정입니다.

 

 

이를 위해 Class Library 클래스를 하나 생성하여 GameResult 클래스를 작성하고

새로 진행하는 프로젝트가 해당 Class Library를 참조하도록 설정합니다.

 

 

새로 생성한 프로젝트에서 Add - Project Reference에서 SharedData를 참조하도록 설정합니다.

 

2 - 2) DB와 연동할 DbContext 지정 

 

새롭게 생성한 프로젝트에서 DB와 연동을 진행할 새로운 DbContext를 생성합니다.

이때 기존의 프로젝트에서 사용하던 DbContext와 이름이 겹치는 것을 방지하기 위해 다른 이름을 사용합니다.

 

2 - 3) Startup.cs

 

Startup 스크립트에서 추가한 DbContext를 통해 DB를 연동하여 서비스를 개시할 것을 선언합니다.

 

2 - 4) appsetttings.json

 

appsetttings.json에서 생성할 DB의 이름경로를 지정합니다.

 

2 - 5) Package Manager

// PM이 DbContext를 탐색한 경우
add-migration 프로젝트이름

// PM이 DbContext를 탐색하지 못한 경우
add-migration 프로젝트이름 -Context 새로추가한Context이름

 

이후 Package Manager 콘솔창에서 위의 명령어를 입력하여 DB를 생성하기 위한 Migration 파일을 생성합니다.

 

update-database

 

Migration 파일이 생성되면, 위의 명령어를 입력하여 새로운 DB를 생성합니다.

최종결과는 다음과 같습니다.

728x90
반응형