전체 글
-
grafana에서 MS SQL Server에 연결 시 Application Intent 지정프로그래밍/기록, 개념, 용어 2023. 12. 4. 23:43
주기적으로 MS SQL Server에서 데이터를 가져와 시각화를 하려고 했는데 ApplicationIntent를 설정하는 곳이 없다. 해결 방법은 그냥 서버 이름 넣는 곳에 ApplicationIntent=ReadOnly를 직접 넣어주면 된다. [서버이름];ApplicationIntent=ReadOnly; 참고 SQL Server datasource doesn't support options when port is specified - Grafana / Configuration - Grafana Labs Community Forums
-
러스트를 배워보는 중프로그래밍 2023. 9. 10. 21:44
얼마 전부터 Rust를 이제 막 배워보고 있어요. 하루에 몇 분 씩 시간 내서요. 아래 Rust 공식문서로 학습하고 있고, 이제 막 struct까지 했어요. Using Structs to Structure Related Data - The Rust Programming Language (rust-lang.org) Using Structs to Structure Related Data - The Rust Programming Language A struct, or structure, is a custom data type that lets you package together and name multiple related values that make up a meaningful group. If you’..
-
C# 가비지컬렉션프로그래밍/기록, 개념, 용어 2022. 12. 11. 19:16
세대 참조형 인스턴스들은 관리 힙에 생성되고, 관리 힙은 참조형 인스턴스들을 세대로 나눠서 관리한다. 참조형 인스턴스는 관리 힙에서 0세대로 시작하고, 최대 2세대 까지 된다. 또한, GC의 static 프로퍼티인 MaxGeneration로도 최대 세대를 알 수 있다. // 최대 세대를 반환. Console.WriteLine($"Max Gen: {GC.MaxGeneration}"); 처음 할당된 참조형 개체는 관리 힙 0세대에 생성된다. 그리고 이 0세대에 생성된 개체들은 가비지 컬렉션이 일어날 때 이 개체를 참조하는 개체가 아무것도 없다면 제거되고, 제거되지 않는다면 1세대가 된다. 아래는 참조형 개체를 하나 생성하고, 강제로 가비지 컬렉션을 실행하여 세대 증가를 확인하는 코드이다. string mes..
-
EF Core로 날짜(DateTime) 필드 타입은 DateTimeOffset으로프로그래밍/기록, 개념, 용어 2022. 11. 29. 15:03
https://learn.microsoft.com/ko-kr/dotnet/api/system.datetimeoffset?view=net-7.0 DateTimeOffset 구조체 (System) UTC(협정 세계시)를 기준으로 일반적으로 날짜와 시간으로 표현한 시각을 나타냅니다. learn.microsoft.com 이렇게. [Table("Comments")] class Comment { public long Id { get; set; } public long? CreatedBy { get; set; } public string Text { get; set; } public DateTimeOffset CreatedAt { get; set; } public DateTimeOffset EditedAt { get..
-
C#, xUnit으로 테스트프로그래밍/기록, 개념, 용어 2022. 11. 27. 16:49
NET CORE로 개발하는 프로젝트에 테스트를 적용하고 했습니다. 반복적으로 테스트 하던 부분들을 줄이고, 이슈가 발생하면 그 이슈를 테스트 케이스로 만듦으로서 반복적으로 발생하는 이슈를 조금씩이라도 줄여가기 위함입니다. 테스트 프레임워크로는 xUnit이 적합해보여 그것을 사용하자고 생각했습니다. xUnit 테스트 프로젝트 만들기. 새 프로젝트 추가에서 xUnit을 검색하고, 그것으로 프로젝트를 만들면 됩니다. 만들어진 프로젝트엔 UnitTest1.cs 라는 파일이 있습니다. 테스트 할 메소드 지정하기. 테스트 할 메소드에 [Fact] 애트리뷰트를 지정하기만 하면 자동으로 테스트 메소드가 됩니다. 테스트는 기대한 값과, 실제 연산된 값을 비교함으로서 이루어지는데, 비교를 하려면 Assert로 검색되는 메..
-
간단한 디펜던시 인젝션(DI) 구현프로그래밍/기록, 개념, 용어 2022. 11. 14. 14:21
Singleton, Transient, Scoped 같은 라이프타임은 제외하고, 어떻게 생성자가 요구하는 인자들을 순서대로 전달하는지에 대해 초점을 맞췄습니다. 아래에 HelloService가 있습니다. HelloService 클래스는 생성자에서 string과 List을 파라미터로 가지고 있습니다. 우리는 이 HelloService를 생성할 때, 외부에서 지정한 인자들을 주입하는 것이 목적입니다. class HelloService { private string _header; private List _contents; public HelloService(string header, List contents) { _header = header; _contents = contents; } public void..
-
ASP.NET CORE에서의 클레임 키 임의 변경프로그래밍/기록, 개념, 용어 2022. 11. 4. 20:42
ASP.NET Core에서 JWT 클레임을 이용해 유저의 인증을 처리하려고 했다. 토큰은 아래와 유사한 코드로 만들어졌다. (특별할 것이 없음) var handler = new JsonWebTokenHandler(); var descriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(new Claim[] { // "sub" 클레임의 값 설정 new Claim(JwtRegisteredClaimNames.Sub, Guid.NewGuid().ToString()) }), SigningCredentials = new(new SymmetricSecurityKey(Encoding.UTF8.GetBytes("THISISASECRETKEY")), "H..
-
C# Channel프로그래밍/기록, 개념, 용어 2022. 10. 28. 14:04
Channel은 Producer, Consumer 간에 데이터를 비동기적으로 스레드 세이프 하게 전달하기 위한 클래스로, 서로 다른 스레드 간에 데이터를 주고받을 때 유용합니다. https://learn.microsoft.com/ko-kr/dotnet/api/system.threading.channels.channel?view=net-6.0 Channel 클래스 (System.Threading.Channels) 채널을 만들기 위한 정적 메서드를 제공합니다. learn.microsoft.com ConcurrentQueue와의 차이점 ConcurrentQueue는 스레드 세이프한 FIFO 컨테이너이며, ConcurrentQueue와 Channel은 유사하게 보입니다. 그러나 Channel은 입력이 있을 때까..