목록게임 (68)
센로그
◆ MVC 철학 모델, 뷰, 컨트롤러로 구분하여 코드를 관리하는 패턴 ASP.NET Core에서 MVC는 다음과 같이 사용된다. Model : 데이터 모델. (데이터를 표현하는 구조) 요리 재료 메모리, 파일, DB 등에서 데이터 모델의 형태로 정보를 추출 (DTO 등) Controller : 데이터 가공, 필터링, 유효성 체크, 서비스 호출 재료 손질 및 요리 각종 Service를 통해 요리함 (DI로 서비스 추가) View : 최종 결과물을 어떤 형태로 보여줄지 최종 서빙 이런식으로 역할을 분담하면 유동적으로 기능을 확장 및 변경할 수 있고, 재사용이 쉽다는 장점이 있다. ASP.NET Core에서의 MVC 좀 더 구체적으로 살펴보자. ASP.NET Core에서 MVC에는 Controller/Acti..

◆ 미들웨어 미들웨어는 요청 및 응답을 처리하는 소프트웨어를 의미한다. 미들웨어들을 사용하여 요청 및 응답을 처리하는 파이프라인을 구성한다. 이를 요청 파이프라인(request pipeline)이라고 부른다. 미들웨어는 WebApplication 객체를 통해 구성할 수 있다. var builder = WebApplication.CreateBuilder(args); //WebApplicationBuilder 객체 var app = builder.Build(); //WebApplication 객체 미들웨어의 각 구성 요소는 다음과 같은 작업을 할 수 있다. 요청을 (파이프라인의 다음 구성 요소로) 전달할지 여부를 선택할 수 있다. 전달하지 않고 흐름을 끊는 것을 ShortCut이라고 함 파이프라인의 다음 미..

◆ ASP.NET Core 웹앱(MVC) 이 시리즈에서는 ASP.NET Core 웹앱(MVC) 프로젝트가 어떻게 구성되었는지, 각각 어떤 기능을 하는지 공부할 것이다. MVC는 말 그대로 모델, 뷰, 컨트롤러로 구분하여 코드를 관리하는 디자인 패턴이다. ASP.NET Core 웹앱 프로젝트로 생성하면 된다. 참고로 .NET 6부터는 이전 버전과 달라진 점이 몇가지 있다. Program.cs, Stratup.cs로 분리되어있던 게 통합됨. main 없이 Program.cs가 자동으로 진입점이 됨. 코드들도 대폭 수정됨. Program.cs 기본적으로 ASP.NET Core 웹앱(MVC) 프로젝트를 생성하면, Program.cs에 다음 코드가 포함된다. var builder = WebApplication.C..

◆ CLR이란?개발 플랫폼과 운영체제 사이의 닷넷 런타임. (가상머신) .NET의 가상머신 (Virtual Machine)우리가 작성한 소스코드(C#, C++ 등)을 OS 위에 있는 .NET에서 동작하게 해주는 것C#의 경우, 빌드 후 IL(Intermediate Language, 중간 언어)로 변환되어 CLR에서 실행되는 구조이다. ◆ CLR의 구성 (기능)CLR은 어떤 역할을 할까?Base Class Library 지원Collections, I/O, XML, DataType definition 등Thread 지원멀티스레드의 병렬 실행을 관리하기 위한 스레드 지원Type CheckerCTS(Common Type System)와 CLS(Common Language Specification)를 사용하여 형..

◆ IPunObservable 이란?관찰할 데이터들을 주고받으며 동기화 해주도록 구현할 수 있는 인터페이스이 인터페이스를 상속받은 스크립트는 인터페이스 메서드인 OnSerializeView()를 꼭 구현해줘야 하며, PhotonView의 Observed Components란에 추가하여 관찰할 수 있다.위 그림에서 PhotonView는 IPunObservable을 상속한 PlayerMove클래스의 OnSerializeView()를 호출하여 동기화한다. 이때, 초당 PhotonNetwork.SerializationRate로 설정된 만큼의 비율로 호출한다. (get 및 set 가능) stream을 주고 받는 만큼, 안에 int, string 등을 포함하여 전달할 수 있다. 따라서 간단한 변수 동기화에 많이 쓴..
◆ Room 생성 및 참가PhotonNetwork.CreateRoom(string roomName, RoomOptions roomOptions): roomOptions을 반영한 룸 생성PhotonNetwork.JoinRoom(string roomName): roomName 이름의 룸에 접속PhotonNetwork.JoinRandomRoom(): 생성되어있는 룸들 중에서 랜덤한 룸에 접속PhotonNetwork.JoinOrCreateRoom(string roomName, RoomOptions roomOptions, TypedLobby typedLobby, string expectedUsers): 룸에 참가하되, 해당 룸이 없으면 새로 생성해서 참가PhotonNetwork.JoinRandomOrC..