안녕하세요. 좋은 강의 잘 듣고 있습니다. 다름이 아니라, JWT 기반 인증으로 회원을 관리할 때 소셜로그인 외에 서비스에 자체적인 회원가입 기능이 있는 경우에는 어떤식으로 관리해야 할까요? 자체 회원가입 / 로그인 기능 등을 스프링 시큐리티를 사용해서 JWT 토큰을 발급할 수 있도록 하려고 했는데, 그 경우엔 시큐리티를 이용하려면 기존에 사용하던 인터셉터 대신 필터를 사용하여 시큐리티에 등록해야 될까요? 아니면 시큐리티를 사용하지 않고 그냥 로그인할 때 소셜로그인처럼 AccessToken 과 RefreshToken을 자체적으로 만들어 발급해주는 식으로 구현해도될까요?
현재 강의를 보며 DB를 실시간으로 수정하는 것을 확인했습니다. 궁금한 점은 DB를 수정하는 과정에서 별도의 Lock이 없이 코드를 작성했다는 점입니다. 멀티 쓰레드, 멀티 유저 상황에서 DB에 접근한다면 race condition이 발생할 수 있다고 생각이 듭니다. 현재 블레이저로 만든 툴은 맛보기 정도라서 그런 상황을 고려하지 않은 거고 추후 서버에서 DB의 정보를 수정할 때는 lock을 걸어서 관리할 예정인가요? 찾아봐도 await 자체가 그런 기능을 하지 않는 것 같아 질문 남겨봅니다.
어떻게 검색해야 할 지 몰라서 밤늦게 질문드립니다 ㅠㅠ 혹시라도 주무시는데 알람이 갈까 미리 사과드립니다. @if(_showPopup)을 이용해서 다이얼로그를 띄우는 부분에 관해서 질문입니다. 버튼을 이용해서 _showPopup을 true로 바꿔주면 다이얼로그가 뜨는 부분이 잘 이해가 되지 않습니다. true로 바꾸어주었다고 해도 @if 부분을 다시 가야 다이얼로그 부분이 뜰텐데, while로 백그라운드로 체크하는건지 true가 되면 Callback으로 if를 체크해서 다이얼로그를 띄워주는건지 어떤 방법으로 true로 바뀐 것을 확인하고 다이얼로그를 띄우는건가요? +) 이번엔 출시된 디아블로2 레저렉션을 짬짬이 하고 있는데 햄딘이라는 캐릭을 키우고 있습니다. 캐릭터를 기준으로 반지름을 가지고 원 궤도로 회전하는 해머를 소환해서 닿는 몬스터를 때리는 기술을 쓰는데, 어떻게 구현을 한건지 해머를 돌리면서 자주 생각이 들더라구요. 디자인 패턴이 익숙치 않아 떠오르는 대로 다음처럼 생각 해보았는데요, 구현 자체의 문제점이라거나 해머를 많이 생성하면 서버와 통신할 때 문제가 생길까요? 해머라는 Class를 다음과 같이 설계해서 Class Hammer { public int _playerId { get; set; } public Vec3d _pos {get; set; } public _damage {get; set; } } 해머의 위치 _pos를 일정 프레임 단위로 체크해서 닿는 몬스터의 체력을 _damage만큼 업데이트 해주고, 해당 몬스터의 체력이 0 이라면 _playerId를 찾아서 경험치를 주거나 아이템 권한을 설정해주는 식으로 구현해주면 되지 않을까 생각해봤습니다.
2회차 보고 있는중에,, ConfigureServices에 RankingService외에 다른 서비스를 추가하려면 어떻게 해야할까요? 서비스 명만 다르게 아래와 같이 동일하게 추가하면 page 접근시 연결이 자동 종료 되버립니다. services.AddHttpClient<RankingService>(c => { c.BaseAddress = new Uri("https://localhost:44351"); }); services.AddHttpClient<InventoryService>(c => { c.BaseAddress = new Uri("https://localhost:44351"); });