본문 바로가기

유니티 A* 길찾기 알고리즘 구현 A* 알고리즘(A star algorithm) grid map 개념 및 구현 A* algorithm이란? A* 알고리즘(A* star algorithm)은 주어진 출발 노드(node)에서부터 목표 노드(node)까지 가는 최단 경로를 찾아내는 그래프 탐색 알고리즘 중 하나이다. 주어진 지도(map)에서 출발 지점부 recall.tistory.com 위 글을 바탕으로 구현되었으며 다른 점으로 장애물(벽)이 추가되었습니다. 장애물로 인하여 다음 조건이 추가되었습니다. 1. 장애물은 지나갈 수 없습니다. 2. 대각선으로 이동 시, 이동하고자 하는 노드 방향의 사이드에 장애물이 있다면 지나갈 수 없습니다. 코드 전체 using System; using System.Collections; using System...
ASP.NET 파일 업로드 파일 데이터 손상 문제 해결 OpenReadStream, ReadAsync, InputFileChangeEventArgs 사용자가 브라우저에서 파일 업로드 버튼을 눌러 업로드를 시도하면 InputFileCahngeEventArgs 매개변수를 통해 받아오게 됩니다. 그렇게 얻은 파일 데이터를 파일 서버로 전송하기 위해 ReadAsync 함수를 호출하여 바이트로 변환해야 합니다. 어느정도 작은 파일(32KB 이하)을 두고 테스트할 때는 정상적으로 동작되어 이상이 없는 줄 알았습니다. 비교적 큰 파일을 업로드하고 파일 서버에서 해당 파일을 다시 다운로드하여 상태를 확인해 보니, 파일이 손상되어 있었습니다. 브라우저 환경이 아닌 실행프로그램으로 작성한 테스트 코드에서는 정상적으로 동작하여 파일 조각 모음(대용량 파일 처리로 인한 별도의 로직)시 손상된 줄 알았습니다. 그렇게 한시간 가량 디버깅을 하였고 원인을 찾았습니다. Stre..
Solved Blazor Unity Webgl Build.data 404 Not Found app.UseStaticFiles(new StaticFileOptions { ServeUnknownFileTypes = true, }); Program.cs
ASP.NET MapDelete Api 에러 해결 System.InvalidOperationException: 'Body was inferred but the method does not allow inferred body parameters. Below is the list of parameters that we found: app.MapDelete("/test", async (SomeClass json) => { }); body로 부터 전달 받은 값을 토대로 API를 구성하고자 할 때 위와 같은 문제가 발생합니다. // Route app.MapDelete("/test/{id}", async (int id) => { }); // Body app.MapDelete("/test", async (SomeClass json) => { }); 프레임워크가 둘 ..
Blazor/ASP.NET 구글 인증 로그인 기반 회원 가입 만들기 - 2. 회원가입 처리 목차 1. MongoDB 세팅 및 CRUD 2. 회원가입 처리 회원가입 코드 작성 Index.razor 수정 @page "/" @inject NavigationManager NavigationManager @using Google; @using GoogleOAuthSample.MongoDB; @using System.Security.Claims; @inject AuthenticationStateProvider AuthenticationStateProvider @inject DBService DBService 구글 로그아웃 @if (userModel != null) { 로그인이 완료되었습니다! - 계정 정보 - 이메일: @userModel.Email 역할: @userModel.Role } 구글 로그인 @c..
Blazor/ASP.NET 구글 인증 로그인 기반 회원 가입 만들기 - 1. MongoDB 세팅 및 CRUD 읽기에 앞서 아래 과정까지 완료되어 있어야 합니다! Blazor/ASP.NET 구글 인증 로그인 만들기 - 4. 구글 계정 정보 페이지에 띄우기 목차 1. 프로젝트 세팅 2. 구글 클라우드 API 프로젝트 세팅 3. 구글 인증 처리 코드 작성 4. 구글 계정 정보 페이지에 띄우기 구글 인증 처리까지 완료하여 로그인까지 성공하였지만 페이지에 아무 healp.tistory.com 목차 1. MongoDB 세팅 및 CRUD 2. 회원가입 처리 회원가입 기능을 만들기 위해 DB를 이용하여야 합니다. MySQL을 많이 사용하기도 하지만 여기서는 MongoDB를 사용해보도록 하겠습니다. https://www.mongodb.com/try/download/community Try MongoDB Community Edi..
Blazor/ASP.NET 구글 인증 로그인 만들기 - 4. 구글 계정 정보 페이지에 띄우기 목차 1. 프로젝트 세팅 2. 구글 클라우드 API 프로젝트 세팅 3. 구글 인증 처리 코드 작성 4. 구글 계정 정보 페이지에 띄우기 구글 인증 처리까지 완료하여 로그인까지 성공하였지만 페이지에 아무런 변화가 없어, 사용자 입장에서는 이게 된건지 말은건지 알기 어렵기 때문에 성공 여부를 알 수 있도록 작업을 진행하겠습니다. 코드 작성 1. App.razor 파일을 열어 아래와 같이 수정합니다. Not found Sorry, there's nothing at this address. 태그를 추가하여 기존 작성되어 있던 태그들을 감싸줍니다. 2. Index.razor를 수정합니다. @page "/" @inject NavigationManager NavigationManager @using Google; 구..
Blazor/ASP.NET 구글 인증 로그인 만들기 - 3. 구글 인증 처리 코드 작성 목차 1. 프로젝트 세팅 2. 구글 클라우드 API 프로젝트 세팅 3. 구글 인증 처리 코드 작성 4. 구글 계정 정보 페이지에 띄우기 코드를 작성하기 앞서 필요한 패키지가 있습니다. Nuget 패키지 설치 도구 - Nuget 패키지 관리자 - 솔루션용 Nuget 패키지 관리 찾아보기 탭에서 google을 검색하고 Microsoft.AspNetCore.Authentication.Google을 선택합니다. 프로젝트에 체크하고 버전을 선택합니다. 프로젝트가 Net 6.0 버전이기 때문에 패키지도 6으로 시작하는 버전을 선택합니다. (7.0인경우 7 선택) 코드 작성 1. 모델 작성 Google 폴더를 생성하고 GoogleUser C# 클래스를 생성하고 아래와 같이 작성합니다. namespace GoogleO..