일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- 저장프로시저
- english
- async
- validation
- TPL
- SQLServer
- identityserver
- SSMS
- await
- MSSQL
- async await
- execution plan
- esl
- IdentityServer4
- query
- oauth2
- SQL Server Optimizer
- fast in ssms
- identityserver3
- Dataannotation
- stored procedure
- task
- 쿼리 최적화
- ThreadPool
- C#
- slow in the application
- 영어공부
- 느린 저장프로시저
- .net
- 실행계획 원리
- Today
- Total
목록.net (9)
Genius DM
See content in English Task 기본 요즘은 대부분의 컴퓨터 및 전자 기기가 강력한 멀티 코어를 갖추고 나온다. 컴퓨터 프로그래밍 세계에서 이는 곧 병렬처리가 중요해진다는 것을 의미한다. 컴퓨터 시스템에서 단 하나의 프로세스만을 사용하는 경우는 이제 DOS 만큼 머나먼 과거에나 존재하는 이야기가 되었다. 가장 세련되고 가장 현대적인 프로그래밍 언어 중 하나인 C# 에서 이러한 병렬 프로그래밍 기능을 .NET Framework 4 부터 탑재시켰다. 더 정확하게 얘기하면 .NET Framework 가 이를 지원한다. 이 새로운 프레임워크 버전에서 TPL ( Task Parallel Library ) 이 추가되었는데, 병렬성을 지원하기 위한 자료 구조 다수와 작업 및 작업 스케쥴링을 위한 알..
See content in English ThreadPool 에 대해서 빨리 Task 에 대해서 정리하고 싶지만, 그 근간인 ThreadPool 을 먼저 정리하는 것이 순서이기에 ThreadPool 에 대해서 한번 더 다뤄보려고 한다. 이번엔 이전 포스트보다 좀 더 디테일에 집중한다. ThreadPool 은 두 종류의 쓰레드를 지닌다.ThreadPool API 중 ThreadPool.GetMinThreads(out int workerThreads, out int completionPortThreads); 가 있는데, ThreadPool 의 최소 Thread 유지 개수를 반환하는데, 종류가 두 개이다. 이것의 정체가 무엇일까? WorkerThread Main Thread 를 제외한 모든 Thread 를 의..
See content in English ThreadPool System.Threading 네임스페이스에 속한 클래스로, 쓰레드 풀을 제공한다. Pool 은 영어 의미적으로 한 눈에 볼 수 있는 어떤 공간 ( 주로 사각형 ) 의 내용물을 의미한다. 그 내용물이 물이면 Swimming Pool 로 수영장이 되고, 당구공이 있으면 Pool Table 이 되어 당구대가 된다. Pool 은 그런 느낌이다. 고로 ThreadPool 이면, Thread 가 컨텐츠로 있는 공간을 의미하는 것이다. 이 ThreadPool 을 이용해서 비동기 I/O 작업을 할당하거나 특정 작업을 Thread 를 통해서 실행시킬 수 있다. ThreadPool 의 장점미리 생성된 Thread 를 사용하여 비용이 많이 드는 Thread 생성..
See content in English 아이덴티티 서버 클라이언트에서 특정 유저만 접근 허용하기. 스택오버플로우에 이런 질문이 몇 일전에 올라왔는데, 유저나 클라이언트 세팅만으로 간단하게 해결할 수 있을 줄 알았는데, 그런 직접적이고 간단한 방법이 없어서 생각보다 긴 답변을 작성하게 되었다. 요청이 진행 중일 때 이런 접근 제어를 하기위한 가장 적합한 방법을 찾아보았으나, 결국 사용자 정의 벨리데이션을 직접 구현하는 방법 밖에는 없었다. ICustomRequestValidatorthe overview architecture of IdentityServer3 이 글에서 설명했 듯, 아이덴티티 서버는 추가적인 인증 프로세스를 요청 과정에 추가하기 위한 간단한 방법을 디자인 단계에서부터 고안하여 방법을 마련..
See content in English IdentityServer3 토큰 데이터베이스에 저장하기 IdentityServer3 웹 어플리케이션이나 OAuth2, OpenID Connect 등의 프로토콜을 사용하는 API 에 대한 접근 제어 & SSO 를 이식하는 데 유용한 프레임워크이자 호스팅 가능한 컴퍼넌트이다. 다양한 어플리케이션을 지원하여 범용적으로 활용할 수 있다. Documentation 은 상대적으로 미비하나, Example 소스코드 제공은 매우 풍부하게 되어있는 편이다. 샘플 레파지터리는 https://github.com/IdentityServer/IdentityServer3.Samples/ 이곳에서 다운받을 수 있다. ITokenHandleStore, ITransientDataReposit..
See content in English Attribute 로 리스트 객체 유효성 검사하기 Annotation 을 통한 Validation 은 int, string 등의 데이터 타입 단위의 유효성 검증에 유용하다고 첫 번째 포스트에서 밝혔다. 주로 MVC 에서 많이 사용하므로, 사용자 Form 에서 입력받는 데이터 검증이 그 주된 사용처이기 때문에 리스트 아이템이나 객체 단위로 검증하는 경우에는 사용되는 경우를 아직 보지 못 한 것 같다. 개인적으로 Annotation 을 통한 Class decoration 은 장점이 많다고 생각한다. Model 에 Validation 대상을 명확하게 지정할 수 있으며 Required, Range, Email 처럼 코드 상에서 그 의미도 매우 명확하여 개발자로 하여금 M..
See content in English 커스텀 Attribute 만들기 지난 포스트에서 DataAnnotation 에 Attribute 들이 어떻게 동작하는 지 알아보았다. 그리고 더 복잡한 Validation 수행을 위한 IValidatableObject 에 대해 소개를 했고, 그 한계에 대해서 알아보았다. 이 포스트에서는 그 한계를 뛰어넘기 위해 취할 수 있는 방법에 대해서 알아보겠다. 커스텀 Attribute[Required] 같은 클래스는 .NET 에 다음과 같이 선언되어 있다.public class RequiredAttribute : ValidationAttribute { . . // 기타 Member 변수들 . public override IsValid(object value) { // Va..
See content in English DataAnnotation Validation and IValidatableObject DataAnnotation? [Required] 와 같이 클래스에 선언된 멤버 변수의 유효성을 검사하고자 할 때 사용되는 Annotation 을 의미한다. 데이터 유형이 명확한 데이터 타입에 대한 유효성을 검증하기 위해 만들어졌다. 그렇기 때문에 아래와 같은 유효성 검증 객체가 이미 포함되어 있고, 주요 Attribute 만 정리하면 아래와 같다. CreditCardAttribute EmailAddressAttribute MaxLengthAttribute MinLengthAttribute StringLengthAttribute UrlAttribute RequiredAttribu..
See content in English NuGet 라이브러리 추가 시 에러 이번에 테스트 용 앱 개발 중에 HTTP 파싱이 필요하여 라이브러리를 사용하려고 NuGet 을 열었다. HtmlAgilityPack 이라는 라이브러리를 사용하려고 하는데, 다음과 같은 메시지와 함께 라이브러리 설치가 실패하였다. NuGet: 'HtmlAgilityPack' already has a dependency defined for 'System.Net' 원인은 Visual Studio 2013 에서 NuGet Manager 가 최신이 아니였기 때문에 발생하는 문제였다. https://visualstudiogallery.msdn.microsoft.com/4ec1526c-4a8c-4a84-b702-b21a8f5293ca 위 ..