프로그래밍
-
static method? static class?프로그래밍 2023. 11. 2. 23:27
처음으로 돌아가지 마세요. 손목은 소중합니다. 개발자는 필요에 따라 수 많은 유틸리티 함수를 작성하게 된다. 가장 간단하게 전화번호 또는 이름을 숨김 처리하기 위한 함수부터 각종 컬렉션을 체크하기 위한 함수까지, 또는 비즈니스에 필요한 도메인 함수를 작성하게 된다. 이러한 대부분의 코드는 static method로 작성되는 것이 대부분이다. 예로 아래와 같이 작성된다. public class StringUtils { public static string HiddenText(string str, char hiddenChar, int startIdx, int length = 0) { if (str.xIsEmpty()) return string.Empty; var arr = str.ToArray(); for ..
-
두번 개발하지 않는 방법프로그래밍 2023. 11. 2. 23:23
꼭 읽어보세요. 야근 하기 싫다면... 개발자는 종종 같은 기능을 두번 개발해야 할 경우가 있다. 프로젝트 참조가 중복 참조되거나 네임스페이스 등의 문제로 또는 재귀적 호출이 되는 문제로 같은 기능을 이름만 변경 시켜서 개발해야 하는 문제가 있다. 이 문제는 Clean Architectrue와 관련 있고 준비되지 않은 프로젝트는 결국 재개발되어야 하는 문제가 발생한다. 그럼 어떻게 해결할 수 있을까? 이는 IoC 컨테이너와 DI에 밀접한 관련이 있다. 누군가는 흔히 구현 코드에서 아래와 같이 작업하고 있을지 모른다. public class TestModel { public string Name { get; set; } public int Age { get; set; } } public class Test..
-
C# 병렬 실행 탐구프로그래밍 2023. 11. 2. 23:20
인간의 두뇌는 하나이지만, 컴퓨터의 두뇌는 이제 16개가 기본이다. 종종 우리는 특정한 시나리오에 대한 병렬 실행에 대한 요구를 구현해야 한다. C#에서는 유용한 병렬 실행 기능을 제공하고 있으므로 해당 기능에 대해 알아보자. 요구사항 매일 약 100여개의 API를 호출하여 특정 Db에 적재하거나 요청 마다 조회 결과를 제공해야 한다. 제한사항 모든 API는 최대한 빠르게 실행되어야 하고, 조회 결과를 리턴해야 할 경우 모든 Request는 약 5초 이내에 실행되어야 한다. 위와 같은 사항을 구현하려면 어떻게 해야 할까? 일반적으로 각각의 API 연동을 구현한 후 foreach로 실행할 것이다. 위 경우에는 제한 시간내에 처리하지 못 할 수 있고 모든 CPU를 사용하지 못 할 수 있다. 따라서, C#에서..
-
if else if else if else, no more프로그래밍 2023. 11. 2. 23:15
중첩 if else문을 사용하지 마세요. 그럼 어떻게 코딩함??? 프로그램 개발에서는 수 많은 if else 구문으로 작성되게 된다. javascript에 callback 지옥이 있듯, 일반적인 모든 프로그래밍에는 if else 지옥이 있다. 흔히 비즈니스 코드에서 나타나는 if else 구문을 줄여 보자. 먼저 아래의 예제를 보자 public enum ENUM_STEP_TYPE { None, Ing, Complete, Cancel } public class GetStepService { private readonly IGetStepNoneRepository _noneRepo; private readonly IGetStepIngRepository _ingRepo; private readonly IGetS..