programing
-
ORM ORm Orm omg...프로그래밍 2023. 11. 14. 23:45
현대의 개발에 필수 요소는 아마 ORM일 것이다. ORM, Object Relational Mapping. 이름 그래도 객체 관계형 맵핑을 지원하는 모든 라이브러리를 ORM이라고 한다. 객체 관계란 무엇인가? 객체간의 관계, 즉, 1:1, 1:N 등의 객체간 관계를 의미한다. Database의 테이블간 1:1, 1:N의 관계와 동일하다. 그리고 가장 중요한 요소가 있는데, ORM이라고 불릴려면 프로그램밍 객체가 직접적으로 SQL로 번역되어야 한다. 우리가 흔히 아는 Dapper, Mybatis는 ORM이 아니라 객체 맵퍼다. 즉, 객체간 관계 상태나 프로그램밍을 통한 직접적 SQL 번역 작업이 포함되지 않는 라이브러리는 맵퍼로 칭한다. 대부분의 ORM, 즉, Entity Framework, Hiberat..
-
두번 개발하지 않는 방법프로그래밍 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..