.net
-
[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;..
-
[VSCode] WSL Ubuntu에서 ASP.NET Core 개발환경 세팅.NET/개발환경 및 Tools 2021. 2. 21. 13:41
재미삼아 WSL Ubuntu 기반에 .NET 개발환경을 구축해보았다. 1. .NET 설치 WSL Ubuntu 에서 .NET을 설치한다. 설치는 .MS 공식문서에 잘 나와있다. docs.microsoft.com/ko-kr/dotnet/core/install/linux-ubuntu#2004- Ubuntu에 .NET 설치 - .NET Ubuntu에 .NET SDK 및 .NET 런타임을 설치하는 다양한 방법을 보여 줍니다. docs.microsoft.com 설치가 완료되면 dotnet --version 명령어로 확인할 수 있다. 2. ASP.NET 프로젝트 생성 명령어로 ASP.NET 프로젝트를 생성한다. 예시의 명령어는 react를 웹 클라이언트 프로젝트가 포함된 webAPI 생성 명령어이다. 프로젝트는 "A..
-
[.NET] List 배열을 Random 정렬하는 간단한 소스코드 예시.NET/개념 및 유용한 팁 2021. 2. 12. 11:47
개인프로젝트 진행하다가 .NET에서 코드 1줄로 랜덤 정렬 구현하는 방법을 정리할 겸 작성. using System; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; namespace RandomArrayTest { class Program { static void Main(string[] args) { Console.WriteLine("Hello World!"); List list = new List() { 1,2,3,4,5,6,7,8,9,10 }; // 랜덤으로 정렬시킬 List (어떤 유형이건 상관없음) list.Sort((a, b) => new Random().NextDouble() >= 0.5? 1 : -1); /..
-
[.NET] AppContext.BaseDirectory 와 Environment.CurrentDirectory 위치 차이점 및 유의사항.NET/개념 및 유용한 팁 2021. 2. 1. 18:45
닷넷으로 개발하는 사람들중에서 현재 프로그램이 실행되는 위치를 가져와야하는 경우가 발생할 수 있다. 그럴때 AppContext.BaseDirectory 또는 Environment.CurrentDirectory를 사용하게 될 것이다. 간단한 Console 프로젝트를 만든 뒤, 해당 소스처럼 작성하고 디버깅해보자. 이름은 ConsoleApp1 이라고 지었다. class Program { static void Main(string[] args) { Console.WriteLine("Console App1"); Console.WriteLine(AppContext.BaseDirectory); Console.WriteLine(Environment.CurrentDirectory); } } 실제 실행결과는 스크린샷과 ..
-
[.NET] 메모리가 폭발하는 ClosedXML.NET/유용한 라이브러리 2021. 1. 30. 14:34
지난시간엔 상업 목적으로도 사용할 수 있는 ClosedXML 라이브러리에 대해 소개했었다. https://ddochea.tistory.com/83 [.NET] 상업 목적에서도 무료로 사용할 수 있는 엑셀(Excel) 편집 라이브러리 ClosedXML 소개. (feat. EPPlu .NET에서 엑셀을 다룰 때 주로 어떤 라이브러리를 쓰는가? Interop? EPPlus? Interop은 과거에 설정에 애먹었던 기억이 있으며, Excel이 설치되어있는 환경에서만 사용가능했던 것으로 기억하고 있다. (옛 ddochea.tistory.com 무료로 쓸 수 있다는 메리트와 고소당할 수 있는 EPPlus에 대한 경각심을 위해 작성했었는데 ClosedXML에는 한 가지 큰 문제가 있다. 메모리를 너무 많이 쓴다. 아..
-
[.NET] 상업 목적에서도 무료로 사용할 수 있는 엑셀(Excel) 편집 라이브러리 ClosedXML 소개. (feat. EPPlus 사용시 주의사항).NET/유용한 라이브러리 2021. 1. 28. 23:23
.NET에서 엑셀을 다룰 때 주로 어떤 라이브러리를 쓰는가? Interop? EPPlus? Interop은 과거에 설정에 애먹었던 기억이 있으며, Excel이 설치되어있는 환경에서만 사용가능했던 것으로 기억하고 있다. (옛날 기억이다. 지금은 잘 모르겠다.) EPPlus는 훌륭한 라이브러리이지만 비상업목적으로 사용했을때만 무료이다. 상업적 목적으로 사용하려면 돈 내고 라이선스를 사도록 하자. 비용은 2021.01 기준 연간 1인당 최대 299 USD 라고 한다. (만약 사용중인 EPPlus가 4버전 이하이고, 해당 라이브러리를 직접 수정한 것이 아닌, 원본소스를 이용했다면 LGPL 라이선스 정책에 따라 고소는 면할 수 있다. 그런데 EPPlus를 자체적으로 수정했다면 소스코드에 대한 공개의무가 있다.) ..
-
[.NET] 간략한 메일(Mail)발송 프로그램 예제.NET/개념 및 유용한 팁 2021. 1. 19. 20:49
sendmail 이나 qmail 같은 메일서버를 구축하는 것이 아닌, 단 몇줄의 코드만으로도 메일발송전용 프로그램을 만들 수 있다. 위키백과에 소개된 것처럼 SMTP 프로토콜을 구현해서 발송하면 되는데, 훌륭한 라이브러리가 있으므로 굳이 일일히 구현할 필요는 없다. (라이브러리는 하단에 소개한다.) https://ko.wikipedia.org/wiki/%EA%B0%84%EC%9D%B4_%EC%9A%B0%ED%8E%B8_%EC%A0%84%EC%86%A1_%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C 간이 우편 전송 프로토콜 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 간이 전자 우편 전송 프로토콜(Simple Mail Transfer Protocol, SMTP)..
-
[UiPath] C#.NET <-> VB.NET 코드 컨버팅 사이트UiPath RPA/Tips 2019. 12. 8. 17:46
UiPath 를 다루면서 불편했던 점은 변수값을 초기화하거나, Invoke Code를 통해 소스를 작성할 때 비주얼베이직(Visual Basic)으로 작성하는 점입니다. 물론 VB 출신개발자거나 VB에 익숙하시면 문제되진 않지만, C# 으로 .NET을 다루던 개발자는 욕나오는 상황이 아닐 수 없습니다. 19.10 버전 이후로 C#도 지원한다고 하지만 변수 선언 시 기본값 초기화생성은 여전히 VB 방식이며, 구버전으로 운영되는 곳은 VB를 사용해야 합니다. C#을 사용할 수 없을때, 아래 사이트를 이용해보세요. http://converter.telerik.com/ Code Converter C# to VB and VB to C# – Telerik Copyright © 2019, Progress Softwa..