전체 글
-
[code-server] 서버기반 개발환경으로 vscode를 실행하는 code-server 소개ETC 2021. 10. 31. 21:01
지난시간엔 MS의 vscode.dev를 소개하는 글을 올렸었다. 브라우저에서 vscode를 사용할 수 있어 어떤 디바이스를 사용해도 소스코드를 수정하거나 확인할 수 있지만, 터미널이나 실제 코드를 디버깅하는 기능은 사용할 수 없다는 단점이 있었다. 이번시간에는 비록 MS에서 직접 개발한 것은 아니지만, 서버 비용외 별도 사용량은 없는 MIT 기반 개발환경 구축 플랫폼인 code-server를 소개한다. https://github.com/cdr/code-server GitHub - cdr/code-server: VS Code in the browser VS Code in the browser. Contribute to cdr/code-server development by creating an accoun..
-
[xUnit] 테스트 프로젝트를 로깅(Logging)하는 방법.NET/개념 및 유용한 팁 2021. 10. 31. 13:21
xUnit과 같은 테스트 프로젝트는 각 테스트 함수별 진행에 따른 로그가 별도 표시되어야 할 필요성이 있다. 아래 프로젝트는 webapi 템플릿을 생성할때 나오는 `WeatherForcast` 프로젝트의 Controller 테스트 코드이다. using Microsoft.Extensions.Logging; using System.Linq; using Xunit; using Xunit.Abstractions; namespace WebApiTestCase.Controllers.Tests { public class WeatherForecastControllerTests { private ITestOutputHelper _logger; public WeatherForecastControllerTests(ITest..
-
[vscode.dev] 브라우저 기반 에디터 vscode.dev 소개ETC 2021. 10. 23. 11:58
무료 개발 툴 중에서 가장 인기가 많다고해도 과언이 아닌 코드 에디터 vscode의 웹 브라우저 버전이 정식으로 나왔다. 최신 브라우저에서 https://vscode.dev 를 접속하면 확인할 수 있다. 브라우저에서 동작하기 때문에 갤럭시탭이나 아이패드와 같은 테블릿이나 휴대폰에서도 접속하여 사용이 가능하다. 물론 접속한 브라우저와 기기OS의 상황에 따라 로컬 프로젝트 사용가능 유무가 갈리며, 디버깅에 제약이 있다. 이번시간엔 일반적인 PC 환경 외, 테블렛에서도 적용 가능한 방법으로 vscode.dev 를 맛보기로 한다. 1. Github에서 리포지토리 만들기 기능을 제대로 사용하기위해선 Github 계정이 필요하므로 가입이 선행되어야 한다. Github에서 신규 리포지토리를 만든다. 2. vscode..
-
[ASP.NET Core] Serilog 에서 미들웨어를 이용한 모든 Request 로그 기록 설정.NET/ASP.NET Core 2021. 10. 12. 23:10
Serilog를 통해 모든 Request에서 로그기록을 하고 싶을 경우 LogContext와 미들웨어를 이용해야 한다. * 사실 Serilog는 RequestID property가 기본제공되므로 미들웨어 없이 {RequestId}를 써도 되긴한다. LogContextMiddleware.cs public class LogContextMiddleware { private readonly RequestDelegate _next; public LogContextMiddleware(RequestDelegate next) { _next = next; } public Task Invoke(HttpContext context) { using (LogContext.PushProperty("TraceId", context..
-
[.NET] 유효성(Validation)검사 코드를 간결하게 작성하는데 도움주는 GuardClauses 소개.NET/유용한 라이브러리 2021. 9. 25. 22:03
프로그램 개발을 진행하다보면 특정 변수값에 대해 유효성검사를 해야 한다. 특정 유효성은 개발하는 시스템에 관련된 사항에 따라 직접 작성해야 하지만 일반적으로 null이면 안되는데, null이 들어오거나, 0이 들어오면 안되는데 0이 들어오는 문제에 대해선 어느 프로그램을 개발해도 공통적으로 처리해야할 검사코드가 될 것이다. 이번에 소개할 라이브러리는 일반적인 상황에 대한 유효성검사 코드 작성을 간결하는데 도움을 주는 GuardClauses 란 라이브러리이다. 아래 코드는 GuardClauses 를 적용하기 전 소스코드이다. Order 라는 객체를 생성하는데, 유효하지 않은 매개변수를 받아 처리하려고 한다. class Program { static void Main(string[] args) { try {..
-
[CRC] CRC parity bit 계산 사이트ETC 2021. 9. 25. 12:00
https://www.lammertbies.nl/comm/info/crc-calculation?crc=123456789&method=ascii On-line CRC calculation and free library - Lammert Bies On-line CRC calculation sheet. Free CRC routines downloadable. Covers CRC-16, CRC-32, CRC-CCITT, DNP, Sick and other routines. www.lammertbies.nl 대략 10년 전 설비관제, 제어 업체를 다니던 시절에 parity bit 체크 테스트를 위해 접속했던 사이트로 기억한다. 또 찾을 일은 없겠지만 필요한 사람이 있을 듯 하여 링크를 올려둔다.
-
[ASP.NET Core] 기본 로그를 지우고 Serilog만 나오도록 수정하는 방법.NET/ASP.NET Core 2021. 9. 22. 23:03
NET5 기준으로 ASP.NET Core 프로젝트를 생성하면 Program.cs 파일에 CreateHostBuilder() 함수가 기본 생성된다. 해당 함수에는 Host.CreateDefaultBuilder(args) 및 ConfigureWebHostDefaults() 함수를 호출하여 웹 서비스에 필요한 기본적인 설정사항등을 별도 작업없이 추가해주는데 이때 MS에서 기본제공하는 Log 제공자(Provider)도 추가된다. Serilog 와 같이 서드파티 제공자를 사용하고 싶다면 CreateHostBuilder를 아래와 같이 수정하여 MS 기본 제공 Log 공급자를 제거해야 한다. public static IHostBuilder CreateHostBuilder(string[] args) => Host.Cr..
-
[ASP.NET Core] AddSingleton(), AddScoped(), AddTransient() 차이점 - 1.NET/ASP.NET Core 2021. 9. 12. 22:54
ASP.NET Core에서 의존성 주입에 의해 추가되는 Service는 크게 3가지 생명주기를 지닌다. AddSingleton AddScoped AddTransient AddSingleton의 경우는 클라이언트(보통 웹브라우저)의 접속상태에 관계없이, 웹 서비스 시작 때 생성되서, 웹 서비스가 종료될때까지 유지된다. Singleton이란 이름에 걸맞게, 클라이언트가 아무리 많이 붙어도 오직 1개의 서비스만 존재하게 된다. AddScoped는 클라이언트의 Request 시작부터, Response 종료까지 유지된다. 각 클라이언트마다 존재하므로, 연결되는 클라이언트 수 만큼 존재하게 될 수 있다. AddTransient는 의존성 주입한 객체마다 독립적인데, 그냥 간단한 교육용 예제 서비스에선 AddScope..