Model-View-Controller로 나누어 설계하는 방식
MVC 패턴은 애플리케이션의 개발 영역을Model-View-Controller로 나누어 관리하는 디자인 패턴이다.
각각의 역할이 분리되어 있어, 유지보수가 용이하고, 중복 코드가 줄어들며,
개발자 간 협업이 쉬워지는 장점이 있다.
예시: 게시글의 제목, 내용, 작성일 등 데이터를 관리하는 클래스
예시: HTML, XML, Unity에서의 UI Canvas 등
예시: 버튼 클릭 시 데이터를 저장하거나 화면을 전환하는 로직
ASP.NET Core 와 유니티를 사용하여, 플레이어의 데이터를 가져오는 예제를 보여줄 것이다.
Player.cs (Model)
namespace Server.Models;
public class Player
{
public int Id { get; set; }
public string Nickname { get; set; }
public int Level { get; set; }
}
PlayerController.cs (Controller)
using Microsoft.AspNetCore.Mvc;
using GameServer.Models;
namespace Server.Controllers;
[ApiController]
[Route("api/[controller]")]
public class PlayerController : ControllerBase
{
[HttpGet("{id}")]
public IActionResult GetPlayer(int id)
{
// 임시로 보내는 플레이어 데이터
var player = new Player
{
Id = id,
Nickname = "Sean_mn",
Level = 10
};
return Ok(player);
}
}
PlayerFetcher.cs - 유니티에서 데이터를 가져오는 로직
using UnityEngine;
using UnityEngine.Networking;
using System.Collections;
public PlayerFetcher : MonoBehaviour
{
private void Start()
{
StartCoroutine(GetPlayerData(1));
}
private IEnumerator GetPlayerData(int id)
{
string url = $"http://localhost:5000/api/player/{id}";
UnityWebRequest req = UnityWebRequest.Get(url);
yield return req.SendWebRequest();
if (req.result == UnityWebRequest.Result.Success)
{
Debug.Log("플레이어 정보: " + req.downloadHandler.text);
}
else
{
Debug.LogError("에러: " + req.error);
}
}