본문 바로가기
반응형

.NET29

.NET - Semaphore 초기값? initialCount, maximumCount Semaphore는 기본적으로 자원을 공유해서 사용해야 하는 멀트 스레드 환경에서 사용된다. 자원이나 실행에 대한 접근 제어가 필요할 때 사용할 수 있다. .NET 기준으로 lock 개념과 유사하며, 큰 차이점이라면, lock은 하나의 접근만 가능하지만, Semaphore는 지정한 개수만큼 접근할 수 있다. 이 지정한 개수는 Semaphore를 선언시점에 기본적으로 2가지 값을 설정해 주어야 한다. initialCount, maximumCount 이다. maximumCount 는 최대 접근 가능 개수 라고 할 수 있다. 만약 maximumCount를 3으로 지정한 경우 3개의 까지의 접근을 허용 한다는 것이다. 그리고 initialCount는 Semaphore를 선언하는 시점에 사용가능한 갯수라고 생각하.. 2020. 12. 1.
.NET - Thread Start with Argument or Data 요청을 처리하면서 병렬로 작업을 실행해야 하는 이슈가 있었다. 인터넷에 확인 Backgraoud Task 방식이 있지만, 이는 별도의 작업을 지속적으로 실행하는 별도의 서비스를 생성하는 방안으로, 모니터링등의 지속 실행작업에 용이하고 특정 요청시점에 실행하기에는 Thread 를 통한 작업 실행이 알맞을 것이라는 생각이 들었다. 쓰레드 실행시 가장 많이 찾아본 내용은 바로 인자, 데이터 전달이였다. 작업을 처리하기 위해서 실행하는 스레드이기 때문에 처리할 데이터나 정보를 스레드에 전달해야 하는데, 인터넷에서 찾아본 내용중 가장 바른? 방법이외에도 존재하지만, 내가 읽기에 제일 가독성이 높은 코드로 데이터 전달 방안으로 정리해 보았다. 클래스 자체에 전달 데이터 정의 스레드를 통해 진행할 작업을 위해 먼저 .. 2020. 11. 30.
.Net - EF 'Entity type 'xxx' has composite primary key defined with data annotations. To set composite primary key, use fluent API.' 금일 Database 의 PK(Primary Key)를 2개 지정하여 사용하다가 이와 같은 오류를 마주하였다. 이 오류는 .Net Entity Framework에서 Primary Key 2개가 실제 EF에서 적절하게 매핑이 되지 않아서 발생한다. 아래 그림과 같이 Data Model에 2개의 키를 지정해 준 상황에 발생하는 오류라고 할 수 있다. [Key] [Required] public string testkey { get; set; } public string version { get; set; } public string type { get; set; } [Key] [Required] public string realkey { get; set; } 따라서 Entity 생성 시점에 PK가 2개임을 알.. 2020. 11. 26.
.Net bootstrap - Tab Menu 만들기 한 화면에 여러 탭을 이용해 표현하고자 하는 경우, 기능별로 구분해서 보여줘야 한다면 탭으로 구분하여 개발이 가능하다. 기본적으로 bootstrap4에서 제공하는 nav-tabs 를 활용하여 사용이 가능하다. Linux Windows Analyze ...1 ...2 ...3 Icon은 앞서 작성한 Font Awesome 글을 확인해 보기 바란다. https://asecurity.dev/entry/Netcore-%EB%AC%B4%EB%A3%8C-Icon-Font-Awesome-5-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0 .Net/core - 무료 Icon, Font Awesome 5 사용하기 기존에 glyphicon을 사용하다 일부 단조로움이 있어 찾아보던 중 Font Awesom.. 2020. 11. 13.
.Net/core - make service for auto-start when boot on Ubuntu youtu.be/1akt--pYvfs 오늘은 Ubuntu 서버에 실행한 .Net/Core Application을 서비스로 등록해 상태를 관리하거나 서버 재시작시 자동으로 실행이 가능하도록 만들어 보자. 1. Prepare make Service 서비스를 만들기 전에 체크해야 하는 부분이 3가지가 있다. 1. Check to path of dotnet command 2. Check to path about application of dotnet 3. Test to running for user permission .Net/Core를 실행할 때 필수로 필요한 요소가 위 3가지 이다. 먼저 dotnet command가 설치된 위치를 확인하자. 기본적으로 패키지 설치를 진행했다면, Ubuntu기준으로 /usr/.. 2020. 11. 12.
.Net/C#/Core - How to Get Client IP on HTTP .Net Core를 개발하면서 기존 C#과 앞으로 .Net core(.Net)에서 어떻게 다른지 정리하는 글을 남긴다. 클라이언트 IP를 가져올때 주의할점은 프록시 서버를 이용하는 경우를 대비해서 X-Forward-For 헤더를 확인할 필요가 있다는 것이다. X-Forward-For 는 아래 글에 잘 정리되어 있는데, 현재 전송된 HTTP 패킷이 어떤 프록시 서버를 거쳤는지, 그리고 실제 Client IP는 무엇인지 확인이 가능한 헤더이다. https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For X-Forwarded-For The X-Forwarded-For (XFF) header is a de-facto standard hea.. 2020. 11. 10.
.NET core 3.1 - File Download .NET file Download는 다음과 같은 방법으로 구사할 수 있다. 아래 글을 읽어보면 간략히 3가지 방법으로 요약할 수 있다. https://stackoverflow.com/questions/45727856/how-to-download-a-file-in-asp-net-core How to download a file in ASP.NET Core In MVC, we have used following code to download a file. In ASP.NET core, how to achieve this? HttpResponse response = HttpContext.Current.Response; System.Net.WebClient net = new ... stackoverflow.co.. 2020. 11. 9.
.Net - Web application Ubuntu 배포하기 여기에서는 간단히 .Net core(이하 .Net) 웹 서비스를 Ubuntu 서버에 배포해서 실행하는 것까지 진행해보겠다. 1. .Net core Web application 프로젝트 생성 가장 먼저 해야 할 일은 .Net core web application 프로젝트를 Visual Studio에서 생성하는 것이다. 여기에서 MVC 탬플릿을 이용하여 생성하였다. 탬플릿을 이용하면, 기본적인 구조를 만들어 주기 때문에 별다른 코드 추가 없이 바로 사용 할 수 있다. 하여 Publish 메뉴를 이용해서 바로 배포를 진행해보자. 배포 메뉴를 선택하고 배포 프로필을 만들 때 기본적으로 현재 지원하는 플랫폼에서 모두 실행가능한 Portable으로 되어 있는데, 보다 파일을 간소화 하고자 한다면, 타켓 플랫폼을 지.. 2020. 11. 8.
최고의 .NET / C# 디컴파일러 Decompilers Best TOP3 오늘 소개할 내용은 .NET/C# Decompilers(디컴파일러) 에 대한 도구중 유명한 도구 3가지를 소개하도록 하겠습니다. 3등: .Net Reflector . Net Reflector는 오래된 도구로 사랑받는 Decompilers입니다. 거희 1.0 시절부터 나온 도구로써 유명한 도구입니다. 일반적인 성능을 자랑하며, 유료라는 점이 약간은 불편한 요소입니다. 2등: ILSpy . Net Reflector와 성능상 차이는 크지 않으면서 오픈소스로, 무료로 사용이 가능합니다. 코드 해석 능력은 중간 정도입니다. 1등 dotPeek 마지막으로 소개시켜드리는 이 도구는 디컴파일러 중에 가장 막강한 도구입니다. 빌드시점의 코드를 가장 원본과 동일하게 구사해 내는 도구이며, 무료라는 점 역시 칭찬할 만합니다.. 2020. 11. 4.
반응형