분류 전체보기
-
[ASP.NET Core] 세상 간편해진 Video/Audio Streaming.NET/ASP.NET Core 2021. 4. 21. 22:36
예전에 개선된 다운로드 예제를 작성하면서 확인하게된 EnableRangeProcessing 옵션을 테스트해보고자 코드 몇 줄 끄적였다. true로 설정한 채 mp4, mp3 같은 미디어 파일을 반환하면 자동으로 스트리밍 처리가 된다는 것이다. 테스트를 위해 mvc프로젝트를 생성하고 간단한 StreamingController 를 생성해보았다. StreamingController.cs using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace StreamingEx..
-
[Visual Studio] 구 버전에서 생성한 ASP.NET 프로젝트가 VS2019에서 열리지 않는 현상 해결방법.NET/개발환경 및 Tools 2021. 4. 20. 22:47
몇 해 전 퇴사자가 남기고 간 ASP.NET 솔루션 확인해야 할 일이 생겨 Visual Studio 2019(v16)에서 열려고 하였다. 그런데 아래와 같은 오류와 함께 웹 프로젝트가 열리지 않았다. 프로젝트를 다시 로드하면 나타나는 메시지이다. 내용은 아래와 같다. 가져온 프로젝트 "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Microsoft\VisualStudio\v15.0\WebApplications\Microsoft.WebApplication.targets"을(를) 찾을 수 없습니다. 또한 $(MSBuildExtensionsPath32) ~ "C:\Program Files (x86)\MSBuild"에 대한 대체..
-
[ASP.NET] WebApi 에서 ApiController에 Route("api/[controller]")로 붙는 이유.NET/개념 및 유용한 팁 2021. 4. 19. 20:57
Visual Studio에서 ASP.NET 또는 ASP.NET Core의 WebAPI 프로젝트에서 컨트롤러를 추가할 때, Route("api/[controller]")가 자동으로 붙는것을 확인해본적이 있을 것이다. 프로젝트를 생성할 때 만들어지는 WeatherForecastController 는 단순히 [Route("[controller]")] 만 추가되기 때문에 별 대수롭지 않게 api/ 부분을 제거하는 사람도 존재할지 모른다. 하지만 가급적 추가한 채로 사용하도록 하자. 특히 React, Vue와 같은 웹 프론트엔드 개발자와 협업한다면, 웹 프론트엔드에도 route 기능이 존재한다. 따라서 React, Vue에서 자체적인 route 적용을 통해 페이지 이동을 컨트롤할 수 있다. 문제는 React와 V..
-
[C# 8.0] 당신의 Substring() 범위 연산자로 대체되었다..NET/개념 및 유용한 팁 2021. 4. 17. 16:38
인터넷에서 방황하다 C# 배열에 대한 배열에 dot(.)을 두개 써서 배열의 범위 일부를 가져올 수 있는 범위 연산자를 확인하게 되었다. C# 8.0 부터 나온 건데 이제야 알게 되었다. 범위 연산자를 알기 전까지, 문자열의 지정된 index 에서 분해할 단어의 길이만큼 잘라 표현해야할 때 Substring 함수를 사용했었다. Console.WriteLine("Substring 기존 방식".Substring(0, 9)); 그러나 C# 8.0 부터는 아래와 같이 사용할 수도 있다. Console.WriteLine("Substring_C# 8부터 사용가능한 방식"[0..9]); 문자열 때문에 소스길이가 더 길어보이는데 실질적으론 .Substring(0,9) -> [0..9]가 된것이므로 코드가 줄어든게 맞다..
-
[ASP.NET Core] 개선된 다운로드 예제(feat. ASP.NET을 쓰지 말아야할 이유 1 Stack 추가).NET/ASP.NET Core 2021. 4. 15. 23:02
예전에 ASP.NET Core로 일반적인 파일 다운로드 기능 구현 예제를 만든적이 있었다. (ddochea.tistory.com/76) 해당 예제에선 파일을 다운로드할 때 byte[] 버퍼에 담아 전달하도록 작성했었는데, 그 이유는 크기가 큰 파일을 전달할때 생기는 메모리 사용 문제점, 그리고 이를 해결하기위한 스트리밍 방법인 "HTTP range requests" 예제를 구현하고 비교하는 포스트를 작성하기 위한 일종의 큰 그림(?) 이었다. "HTTP range requests"에 관한 정보는 아래 링크에서 확인할 수 있다. developer.mozilla.org/ko/docs/Web/HTTP/Range_requests HTTP range requests - HTTP | MDN HTTP range re..
-
[Web] querystring을 이용한 캐시 무시(cache busting) 요청은 javascript나 css같은 contents 에 한정된다.ETC 2021. 4. 14. 23:22
그저께 ASP.NET Core에서 캐싱을 활용하는 방법과 예제를 간략하게 다뤘었다. (ddochea.tistory.com/132) 그리고 오늘 관련해서 친구에게 문의가 왔었다. "querystring 값 다르게 하면 캐시 무시할 수 있냐?" 그 질문에 나는 당당하게 "ㅇㅇ" 이라고 대답했다. 왜냐하면 오래 전에 javascript가 캐싱된 일부 브라우저에 수정된 javascript를 일괄적용시킬 수 있도록 사용한 방법이 querystring 을 추가하고, 필요할때마다 값을 바꿔주는 것으로 해결했기 때문이었다. 이것을 "cache busting" 이라고 한다. What is cache busting? · Curtis Timson What is cache busting? · Curtis Timson A ca..
-
[ASP.NET Core] HTTP Cache-Control Header 를 이용한 Get 응답(Response) 캐싱 및 파일 다운로드 예제.NET/ASP.NET Core 2021. 4. 12. 22:34
운영중인 웹 서비스에 대한 수정요청이 있어 작업하던 도중 파일 다운로드기능에 캐싱이 필요하여 응답 캐싱이 가능하도록 작업했다. 사실 사용자 수가 많지 않은 내부서비스라 딱히 적용안해도 되긴 하지만 돈(?) 안되는 트래픽은 줄일 수 있으면 줄이는 습관을 가지는게 좋은지라 적용했다. 적용자체도 그리 어렵지 않다. 1. Startup.cs에 AddResponseCaching() 및 UseResponseCaching() 적용 Startup.cs 에 services.AddResponseCaching()과 app.UseResponseCaching() 함수를 이용하여 캐싱 기능을 적용한다. using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting;..
-
[Spring Boot] VSCode를 이용한 WSL2 기반 Java 웹 개발환경 구축ETC 2021. 4. 10. 17:29
지난시간엔 VSCode에 대한 자바 개발환경을 구축했었다. 콘솔개발환경이라면 그 정도로 마무리지어도 되겠지만, 국내에서 Java를 사용한다는 건 곧 Spring Framework를 쓰겠다는 말과 같으므로 Spring Framework 에 대한 세팅까지 완료되어야 진정한 개발환경 구축이라고 말할 수 있겠다. 선수되는 작업들은 아래 링크에 따라 진행한다. 1. OpenJDK 설치 : ddochea.tistory.com/129 2. VSCode Java 개발환경 준비 : ddochea.tistory.com/130 * 만약 WSL2 설정까지 진행하지 않았다면, www.44bits.io/ko/post/wsl2-install-and-basic-usage 를 참조해주기 바란다. 1. Spring Boot 관련 확장설..