44,000원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part6: 웹 서버
Uri함수 파라미터 주소에 sslport번호를 넣으면 무한 로딩이걸림
여기 sslPort 번호를 가져와서Uri함수 파라미터에 주소를 입력했더니이렇게 무한 로딩이 걸려서 해결하고 싶어서 중단점 걸어보고 실행해봤습니다.여기서여기로 들어가면 var resultContent = await result.Content.ReadAsStringAsync(); 이 부분 전에 있는 중단점에는 잘 걸리는데 이 중단점에는 안 걸리고 함수 안에 있는 코드들이 전부 실행 되지 않고결국 _gameResults 는 정상적으로 함수가 실행 되지 않아서 값을 못 받아서 계속 null인 상태로 있어서 무한 로딩이 걸렸습니다. 그래서 처음에는 비동기 함수가 실행을 완전히 끝내기 전에 그 전에 있던 함수가 종료 되었나? 생각하면서 이것저것 만지다가 그런 문제는 아닌 것 같고 그냥 무지성으로 Uri 파라미터에 sslPort번호 말고여기에 "applicationUrl": "https://localhost:7146이 부분을 Uri파라미터 주소에 넣었더니 잘 실행됩니다 그런데 강사님은 sslPort번호를 넣어서 잘 작동시켰는데 왜 저는 sslPort를 넣었는데 이상하게 작동되는지 궁금합니다.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part6: 웹 서버
An unhandled exception has occured. See browser dev tools for detail.
blazor ranking app #3을 하던 도중에 스크린샷과 같은 에러가 나타났습니다.콘솔창에는 아래와 같은 에러 메세지가 떠서 제 입력이 userId가 null인 것으로 입력된 것 같습니다.문제가 있을 수 있어 하단에 제가 작성한 ranking.razor와 RankingService.cs의 코드를 첨부하지만 강의의 내용에서 작성한 코드와 동일하게 작성하였습니다.ranking.razor@page "/ranking" @using RankingApp.Data.Models @using RankingApp.Data.Services @inject RankingService RankingService <h3>Ranking</h3> @*LoginDisplay.razor의 내용 참조*@ <AuthorizeView> <Authorized> @*로그인한 경우*@ @if (_gameResults == null) { <p><em>Loading...</em></p> } else { <table class="table"> <thead> <tr> <th>User</th> <th>Score</th> <th>Date</th> </tr> </thead> <tbody> @foreach (var gameResult in _gameResults) { <tr> <td>@gameResult.UserName</td> <td>@gameResult.Score</td> <td>@gameResult.Date.ToString()</td> </tr> } </tbody> </table> @*데이터 추가하기*@ <p> <button class="btn btn-primary" @onclick="AddGameResult"> Add </button> </p> @if (_showPopup) { <div class="modal" style="display:block" role="dialog"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-Header"> <h3 class="modal-title">Add/Update GameResult</h3> <button type="button" class="close" @onclick="ClosePopup"> <span area-hidden="true">X</span> </button> </div> <div class="modal-body"> <label for="UserName">UserName</label> <input class="form-control" type="text" placeholder="UserName" @bind-value="_gameResult.UserName"> <label for="Score">Score</label> <input class="form-control" type="text" placeholder="Score" @bind-value="_gameResult.Score"> <button class="btn btn-primary" @onclick="SaveGameResult"> Save </button> </div> </div> </div> </div> } } </Authorized> <NotAuthorized> <p>You are not Authorized</p> </NotAuthorized> </AuthorizeView> @code { List<GameResult> _gameResults; bool _showPopup; GameResult _gameResult; protected override async Task OnInitializedAsync() { _gameResults = await RankingService.GetGameResultsAsync(); } void AddGameResult() { @*팝업 띄워주기*@ _showPopup = true; _gameResult = new GameResult() { Id = 0 }; } void ClosePopup() { _showPopup = false; } async Task SaveGameResult() { if(_gameResult.Id==0) //새로 데이터를 추가하는 작업, 이때는 id가 없지만 db에 넣어지면id 자동 생성 { _gameResult.Date=DateTime.Now; var result = RankingService.AddGameResult(_gameResult); @*AddGameResult는 rankingService.cs에 있다*@ } else { //TODO } _gameResults = await RankingService.GetGameResultsAsync(); @*다시 바뀐 데이터 다시 가져오기*@ } } RankingService.csusing RankingApp.Data.Models; namespace RankingApp.Data.Services { public class RankingService { ApplicationDbContext _context; public RankingService(ApplicationDbContext context) { _context = context; } //Create public Task<GameResult> AddGameResult(GameResult gameResult) { _context.GameResults.Add(gameResult); _context.SaveChanges(); //db에도 저장 return Task.FromResult(gameResult); } //Read public Task<List<GameResult>> GetGameResultsAsync() { List<GameResult> results = _context.GameResults .OrderByDescending(item => item.Score) .ToList(); return Task.FromResult(results); } //Update //Delete } }
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part6: 웹 서버
EFCore 포렌키 설정 관련 질문(Entity Framework Code First One-to-Many Relationship)
public class UserData { //public int Id { get; set; } [Key] public string UserId { get; set; } public string? Token { get; set; } [MaxLength(32)] public string? UserName { get; set; } public DateTime? CreateTime { get; set; } public BanData BanData { get; set; } public List<MailData> MailDatas { get; set; } public List<GetMailData> GetMailDatas { get; set; } } public class BanData { public int Id { get; set; } public DateTime Start { get; set; } public DateTime End { get; set; } public int State { get; set; } public string DescKey { get; set; } // Foreign Key ////1:1 방향일 경우 한쪽이 아이디까지 물고 있어야함 public string UserDataUserId { get; set; } [JsonIgnore] public UserData UserData { get; set; } } public class MailData { /// <summary> 우편물 구분 값 </summary> public int Id { get; set; } /// <summary> 발송일 </summary> public DateTime SendDate { get; set; } /// <summary> 우편물 받아야하는 기간 </summary> public DateTime EndDate { get; set; } /// <summary> 우편 내용물 </summary> public string Body { get; set; } /// <summary> 보낸이 ex)GM, DEV 등등 </summary> public string Sender { get; set; } // Foreign Key public string UserDataUserId { get; set; } [JsonIgnore] public UserData UserData { get; set; } } 이렇게 코드가 있을 경우 MailData -> UserData로 연동은 잘 됩니다다만 DB 테이블에 MailData가 생성되는데 제가 원하는 것은 UserData 테이블에 MailDatas 가 생성되는 것입니다 다만 위 코드처럼 처리를 할 경우 MailData 테이블에 모든 유저들의 메일 정보가 저장되고 UserData에서 긁어오는 것으로 파악되는데 맞을까여?만약 이렇게하여 모든유저들의 정보를 처리하는게 더 좋은 방식인지 UserData 테이블에 JSON으로 메일을 처리하는것이 좋은 방식인지 궁금합니다
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part6: 웹 서버
DB 설정 관련해서 질문 드립니다
[Table("UserTable")] public class UserData { [Key] public string UserId { get; set; } public string? Token { get; set; } [MaxLength(32)] public string? UserName { get; set; } public DateTime? CreateTime { get; set; } public BanData? Ban { get; set; } public ICollection<MailData> OwnMails { get; set; } public ICollection<GetMailData> GetMails { get; set; } } [Serializable] public class BanData { public DateTime Start { get; set; } public DateTime End { get; set; } public int State { get; set; } public string DescKey { get; set; } // Foreign Key public string UserId { get; set; } public UserData User { get; set; } } public class MailData { /// <summary> 우편물 구분 값 </summary> [Key] public long Id { get; set; } /// <summary> 발송일 </summary> public DateTime SendDate { get; set; } /// <summary> 우편물 받아야하는 기간 </summary> public DateTime EndDate { get; set; } /// <summary> 우편 내용물 </summary> public string Body { get; set; } /// <summary> 보낸이 ex)GM, DEV 등등 </summary> public string Sender { get; set; } // Foreign Key public string UserId { get; set; } public UserData User { get; set; } } /// <summary> 우편물 획득 시 </summary> public class GetMailData { /// <summary> 우편물 구분 값 </summary> [Key] public long Id { get; set; } /// <summary> 우편물 시간제한에 의한 삭제 </summary> public bool IsTimeOut { get; set; } /// <summary> 받은 날 </summary> public DateTime GetDate { get; set; } /// <summary> 우편 내용물 </summary> public string Body { get; set; } /// <summary> 보낸이 ex)GM, DEV 등등 </summary> public string Sender { get; set; } // Foreign Key public string UserId { get; set; } public UserData User { get; set; } }이렇게 SharedData.Models 정의를 해서 사용을 하고자 합니다 UserData에서만 DB 컬럼으로 활용을 하고싶습니다 ApplicationDbContext.csprotected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); modelBuilder.Ignore<BanData>(); modelBuilder.Ignore<MailData>(); modelBuilder.Ignore<GetMailData>(); }에는 DB로 만들어지지 않았으면 해서 예외처리를 추가했습니다 UserTableUserIdTokenUserNameCreateTimeBanData BanICollection<MailData> OwnMailsICollection<GetMailData> GetMails이런식으로 생성하게 하려면 어떻게해야 하나요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part6: 웹 서버
10분 48초 부근에 안 되는 사람들 참고하세요
css 파일도 필요할 확률이 높습니다(기본적으론 생성 안 됨).최신 버전으로 공부하고 있는데 거의 숨은 그림 찾기네요.버전이 바뀌면 달라질 수도 있습니다.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part6: 웹 서버
ArgumentException: Keyword not supported: 'trust server certificate'.
처음 appsettings.json에서 DefaultConnection의 값을 이름만 바꿀경우는 저 에러가 뜨지 않는데속성에서 연결 문자열의 값을 복사해서 붙여넣을 경우프로그램 실행 후 Register 할 경우 저 에러가 계속 뜹니다어떻게 해결해야 하나요 ?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part6: 웹 서버
Need Summary 부분 질문있습니다!
먼저FetchData.razor 에서 <EditForm Model="_addForecast" OnInvalidSubmit="SaveForecast"> @* Form Validation 기능 ON*@ <DataAnnotationsValidator /> @* 에러가 있으면 메시지 상세 출력*@ <ValidationSummary /> <label for="TemperatureC">TemperatureC</label> <InputNumber class="form-control" placeholder="TemperatureC" @bind-Value="_addForecast.TemperatureC" /> <label for="Summary">Summary</label> <InputText class="form-control" placeholder="Summary" @bind-Value="_addForecast.Summary" /> <br /> <button class="btn btn-primary" type="submit">Save</button> </EditForm>WeatherForecast에서 public class WeatherForecast { public DateTime Date { get; set; } [Required(ErrorMessage = "Need TemperatureC!")] [Range(typeof(int),"-100","100")] public int TemperatureC { get; set; } public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); [Required(ErrorMessage = "Need Summary!")] [StringLength(10, MinimumLength = 2, ErrorMessage = "2~10")] public string Summary { get; set; } } 이렇게 해주었는데Need Summary가 뜨지 않는데 이유를 알수 있을까요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part6: 웹 서버
계속 똑같은 에러가 뜹니다 ㅠㅠ
An unhandled exception occurred while processing the request.InvalidOperationException: The view 'Index' was not found. The following locations were searched:/Views/Home/Index.cshtml/Views/Shared/Index.cshtml 라고 계속 뜨는데저는 Shared폴더 자체도 없는데 계속 다른곳에서 파일을 찾는것 같은데 어떻게 해결해야하나요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part6: 웹 서버
이번 강의 코드를 받을 수 있을까요?
grouping 예제 부분을 실행하는데 있어 playersByLevel에 동일하게 작성하였는데로컬 부분에 해당 이름을 작성하고 열었는데 화면과는 다르게 Players도 가지지 않고 있고 Non-Public members로 분류되어서 나오네요.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part6: 웹 서버
ATOM이 2022년 12월 15일 기준 종료되었네요
어쩔수없이 VisualStudio Code를 이용해 따라가려하는데 html로 작성만 가능하면 될까요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part6: 웹 서버
CounterState 질문입니다.
순수한 궁금증으로 여쭤뵙습니다.혹시 해당 cs를 구현하지않고 private static int currentCount를 사용한다면 유저마다 보이는 currentCounter가 다를까요? 아니면 공통적으로 서버가 닫히기전까지 모든 유저가 동일한 숫자가 보일까요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part6: 웹 서버
"연결이 비공개로 설정되어 있지 않습니다." 오류가 뜰 경우
ChatGPT의 도움을 받았습니다.아래와 같이 시도해보세용~
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part6: 웹 서버
백엔드 서버에 JPA를 사용해도 문제가 없을까요?
안녕하세요! 현재 제가 이해하고 있는 내용은실시간 통신을 위햐선 Socket을 사용한다 치고DB에 접근하기 위해서 백엔드 서버가 필수요소이고해당 강의에선 Blazor를 사용하고 있습니다. 다만 궁금한 것은 현재 저는 JPA로 Rest API 서버를 만들어서 회원가입/로그인 시스템 까진 구현이 완료되었는데 실무에선 어떤 걸 주로 사용하는지 궁금합니다.또한, 현재 JPA Rest API서버의 문제점은 그냥 URL만 때려 박아도 일단 호출이 가능한데.차후 보안상 이슈가 있을게 뻔한데 실무에선 어떤식으로 관리하나요??
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part6: 웹 서버
SendPostRequest 에서 POST 중복된 값이 추가되는 것을 방지하려면 어떻게 하면 될까요?
SendPostRequest 를할 때 중복된 값이 추가되는데 id가 중복되지 않게 추가하려면 어떻게 하면 될까요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part6: 웹 서버
Task<WeatherForecast[]> 를 List<Task<WeatherForecast>> 이렇게 고친 후
웹서버 Form,Validation 강의에서 using System.Collections.Generic;Task<WeatherForecast[]> 를 List<Task<WeatherForecast>> 이렇게 고친 후 System.Threading.Tasks.Task<System.Collections.Generic.List<BlazorStudy.Data.WeatherForecast> 형식을 System.Collections.Generic.List<System.Threading.Tasks.Task<BlazorStudy.Data.WeatherForecast>> 형식으로 변환할 수 없습니다. 라는 오류 메시지가 뜹니다. 어떻게 해야 될까요?
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part6: 웹 서버
웹서버로 턴제 카드게임 구현가능할까요?
본인의 턴에 카드를 구매하고 카드의 효과로 점수를 얻는 식의 멀티플레이 게임을 구상중입니다. 혹시 웹서버로 이정도 게임의 서버를 구현하는 것이 적절할 지 궁금해 여쭈어봅니다. 제가 판단하기로는 가능하다고 생각하는데 서버공부를 한지 얼마 안된 초보다 보니 루키스님의 의견이 궁금해 강의 직접적인 관련은 없지만 이렇게 질문을 남깁니다. 그리고 하스스톤, 문명 등 참고할 만한 게임이 어떤 식으로 구현되었는지 정보를 찾아보고 싶은데 적절한 키워드가 떠오르지 않네요.. 혹시 이런 정보를 찾을 때의 팁을 여쭈어봐도 될까요?감사합니다.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part6: 웹 서버
싱크 문제
해당 영상 싱크가 맞지 않는 것 같네요! 이해하는데 문제는 없지만 다른분들 위해 확인 부탁드립니다
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part6: 웹 서버
Unable to create an object of type 'ApplicationDbContext'
add-migration RankingApp을 시도했을 때, Unable to create an object of type 'ApplicationDbContext' 에러가 뜹니다. 영상에서 해주신 것과 똑같이 설정했는데, 뭐때문에 안되는지 모르겠습니다... 현재 VS 버전에는 영상버전과 다르게 Startuo.cs가 program.cs로 합쳐진걸로 알고 있어서, 그것도 다 맞춰서 해준거같은데 안되네요ㅠ
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part6: 웹 서버
MSSQL 멀티스레드 요청에서 lock 문제
MSSQL 멀티스레드 요청에서 lock 을 해야 할까요?api 서버에서 mssql 로 여러 병렬 요청을 보낼때 DB 측에서 병렬요청에 대한 lock 으로 막고 하나씩 처리 되게끔 막아 하나요?답변 좀 부탁드리겠습니다!
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part6: 웹 서버
IEnumerable 사용이유
List 대신 IEnumerable을 사용한 이유가 뭔가요??IEnumerable 정의가 구글링 해보니 제네릭이 아닌 컬렉션에서 단순하게 반복할 수 있도록 지원하는 열거자를 노출합니다.라고 하는데 이걸 왜 자료형으로 쓰는지 이해가 잘 안됩니다 ㅠㅠ