본문 바로가기
728x90
반응형

분류 전체보기281

C#] Observer Design Pattern(관찰자 디자인 패턴) Observer Design Pattern에 대해서 objects 사이의 알림 mechanism을 만들 수 있다. 여러 objects가 다른 object를 관찰하고, 관찰하는 object에 이벤트 발생 시 알림을 받는다. 한쪽에는 관찰되는 object인 Provider가 있고, 다른 한쪽에는 Provider를 관찰하는 하나 이상의 Observers가 있다. 이벤트 또는 상태변경과 같은 미리 지정된 조건 발생 시, Observer는 Provider에 대한 알림을 받을 수 있다. Observer Design Pattern이 필요한 경우 이 패턴은 application 내부에 분산된 알림 system이 구현되어 있을때 도움이 된다. 이커머스 시스템을 갖고 있다고 하자. 몇몇 고객들은 특정 판매자의 제품에 관심.. 2024. 1. 10.
C#] Deprecated Method 표시, 미사용 함수 표시 C#에서 어떻게 deprecated method를 표시하는지 알아보자. Preparing the Environment public static class DateUtils { public static int GetCurrentYearV1() { return 2022; } public static int GetCurrentYearV2() { return DateTime.UtcNow.Year; } } 현재 연도를 가져오는 함수가 2개 있다. GetCurrentYearV1() 함수는 과거 연도를 반환한다. GetCurrentYearV2() 함수가 현재 연도를 가져오기 더 적합하다. ObsoleteAttribute GetCurrentYearV1() 함수에 ObsoleteAttribute를 사용하므로 deprec.. 2024. 1. 9.
C#] PeriodicTimer class 몇 시스템 개발 시, task 실행을 일정한 시간을 두고 해야할 때가 있다. C#은 .NET 6에서 소개된 PeriodicTimer class를 제공한다. 기능과 사용법을 살펴보고 간단히 구현해보자. C#에서 PeriodicTimer Class 작동법 1. 필요한 변수를 정의하자. private readonly PeriodicTimer _periodicTimer; private readonly CancellationTokenSource _cancellationToken = new(); private Task? _task; private int _size; 차후 초기화할 PeriodicTimer 변수가 있다. 반복 Task를 종료시킬때 사용할 CancellationTokenSource 변수를 정의하고 초기.. 2024. 1. 9.
C#] Pipes and Filter Architectural Pattern 순차적이고 독립적인 processing data 또는 tasks를 위한 modular 하고 유연한 system을 설계하기 위한 목적의 design pattern이다. 여러 단계를 거치며 각 단계별로 특정한 data 변환 또는 operation이 필요한 data streams을 다루는데 매우 유용하다. data processing pipelinex, text processing와 관련된 application에서 일반적으로 사용되는 패턴이다. 어떻게 이 디자인 패턴이 동작하고 기본적인 개념에 대해 살펴보자. Pipes and Filter Architectural Pattern의 이해 Pipes and Filters pattern은 component-based architectural design patter.. 2024. 1. 9.
C#] Path의 File, Directory 여부 확인 path가 file인지 directory인지 결정하는 방법을 살펴보자. 2가지 방법이 있다. 첫번째는 path가 file 또는 directory로 존재하는지 확인한다. 두번째는 path의 attribute를 확인한다. Directory, File 존재여부 확인 .NET에는 2쌍의 클래스가 있다. File과 Directory가 있고, FileInfo와 DirectoryInfo가 있다. File 함수는 FileInfo 함수와 비슷하고, Directory함수는 DirectoryInfo 함수와 비슷하다. Directory에서 file을 구분하는데 이 클래스들이 어떻게 사용되는지 보자. Directory와 File 클래스의 사용 File와 Directory는 static class이다. 둘다 Exists() 함수.. 2024. 1. 5.
C#] System.Linq.Enumerable.Aggregate 함수 MS 문서를 기반으로 단계별로 살펴보자. Aggregate() 함수는 source 순서로 모든 elements에 function을 적용하고, 매 함수 호출의 결과값으로 누적된 값을 계산한다. 3개의 오버로드를 갖는다. 1. Aggregate(IEnumerable, Func) public static TSource Aggregate (this System.Collections.Generic.IEnumerable source, Func func); Code Example string sentence = "the quick brown fox"; // 위 문자열을 개별 단어로 나눈다. string[] words = sentence.Split(' '); string reversed = words.Aggregate.. 2023. 11. 15.
728x90
반응형