일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- Dataannotation
- validation
- 실행계획 원리
- SQL Server Optimizer
- async
- fast in ssms
- 영어공부
- async await
- task
- SSMS
- oauth2
- TPL
- 저장프로시저
- query
- english
- await
- SQLServer
- 쿼리 최적화
- IdentityServer4
- C#
- 느린 저장프로시저
- identityserver3
- identityserver
- execution plan
- esl
- .net
- stored procedure
- slow in the application
- MSSQL
- ThreadPool
- Today
- Total
목록Genius (47)
shyaway
See content in English IdentityServer 간략 구조 IdentityServer 의 간략한 구조를 살펴보고자 한다. OverviewOWIN Open Web Interface for .NET 의 약자이다. http://owin.org/html/spec/owin-1.0.html 에 인터페이스에 대한 정의 및 프로토콜이 명시되어 있다. 기존 ASP.NET 의 지나친 IIS 결합도, 그리고 너무 무거운 System.Web 의 의존성을 탈피하고자 탄생한 인터페이스이다. OWIN 을 통해서 Console Application 은 물론 원하는 Application 도메인에서 호스팅이 가능하며, Func Delegate 를 Middleware 라고 부르는 것이 특징이다. IdentityServ..
See content in English IdentityServer Basic IdentityServer 와 관련된 용어와, 특히 OAuth2 Flow 에 대해서 알아보자. IdentityServer?OpenID 스펙을 구현한 .NET/Katana 기반 프레임워크. OP ( OpenID Connect Provider 라고도 부름 )OpenID Connect specification / OAuth2 specification Protocol TermsOIDC ( OpenID Connect ) OAuth2 기반 Security Layer ( IETF 스펙 아님 ) OAuth2 Access Control 을 위한 RFC 프로토콜 ( IETF 스펙 ) OP ( OpenID Connect Provider ) STS..
See content in English Slow in the Application, Fast in SSMS? Part 2 쿼리 실행 계획을 캐싱하기 SQL Server 가 매번 프로시저를 실행할 때 마다 컴파일 한다면 SQL Server 가 차지하는 CPU 자원 때문에 성능이 저하되는 엄청난 리스크를 겪게될 것이다. 하지만 이 경우가 모든 시스템에 해당되는 사항은 아니기에, 이런 문제에 대해 규명이 필요하다고 느꼈다. 만약 비교적 다수의 비즈니스 분석가들이 평균 1분 정도 소요되는 복잡한 쿼리를 돌리는 빅데이터 웨어하우스 시스템을 생각해보자. 이런 경우라면 매번 프로시저를 컴파일 하는 것이 악영향을 끼치기는 커녕, 오히려 이득을 볼 것이다. 그러나 OLTP 데이터베이스 처럼 다수의 유저들이 짧고도 간단..
See content in English 어플리케이션에서는 느리고, SSMS 에서는 빠르다? Part 1 들어가기 전에예제로 들어가기에 앞서 Northwind 샘플 데이터베이스를 사용했음을 알린다. 해당 데이터베이스는 SQL 2000 에 포함되어있다. 이후 버전은 Microsoft's web site. 에서 다운로드 할 수 있다. 포스트 내용의 핵심적인 것은 모든 버전의 SQL Server 에 적용되긴 하지만, 어쨌든 SQL 2005 혹은 그 이후 버전을 중점적으로 작성되었음을 알린다. 이 포스트에서는 캐싱 계획을 조사하는 몇 가지 쿼리를 다룬다. SQL 2000 이전 버전은 캐싱 계획 측면에서 매우 성능이 낮은 편이다. 포스트에서 제시하는 쿼리를 수행하기 위해서는 서버 상태를 조회할 수 있는 서버 레벨..
See content in English 제너릭의 공변성과 반공변성 제너릭에서 공변성과 반공변성 하나의 용어이자, 최초에 정의된 타입보다 더 정확하거나, 덜 정확한 파생 타입을 사용할 수 있는지에 대한 여부를 결정하는 특성이다. 무슨 말인지 이해가 안 될지도 모른다, 하지만 코드를 보면 이해가 빠를 것이다. 샘플 모델 - Cup > Base 클래스.- PlasticCup > Cup 을 상속하는 파생 클래스.- PaperCup > Cup 을 상속하는 파생 클래스. 이렇게 베이스 클래스와 파생 클래스는 다형성으로 인해 아래와 같은 할당이 가능해진다. IEnumerable plasticCups = new List(); IEnumerable cups = plasticCups; 단순히 베이스 클래스와 파생 클래스..
See content in English 내가 ~ 만큼 앞서고 있었는데 !! 스포츠 게임이든, 실제 게임이든 이기고 있을 때와, 지고 있을 때가 있을 것이다. 축구에서 대한민국 2:1 미국 스코어로 후반 40분까지 지속했다고 가정해보자. 42분에 미국의 동점골이 터지고, 2분 뒤에 바로 역전 골이 터졌다. 그리고 휘슬이 울리기 직전, 한 골이 더 터지면서 경기는 대한민국 2:4 미국 대역전극으로 끝이 났다. 아마 이승우 선수가 해당 경기에 뛰었으면, 이런 얼굴이였을 것이다. " 아 2:1 로 이기고 있었는데 !!!! " 바로 이 때 할 수 있는 말이다. We were up by that much !! 의미 그대로 그 만큼 ( that much ) 위에 ( up ) 있었다는 것이다. 스코어가 더 높았으니,..
See content in English 기본 이해 RabbitMQ 는 Message Broker 로써 AMQP ( Advanced Message Queuing Protocol ) 기반으로 만들어졌는데, 이외에도 STOMP ( Simple Text Oriented Messaging Protocol ), MQTT ( Message Queuing Telemetry Transport ), HTTP 등 다양한 프로토콜을 지원한다. RabbitMQ 는 Documentation 으로 유명하다. 실제로 RabbitMQ 를 처음 접하는 개발자들이 궁금하거나 의아해할 수 있는 지점에서 예상했다는 듯 부연 설명, 예제 소스코드 등을 제시하고 있어 매우 쾌적하게 진입할 수 있다. 특정 기술을 분석함에 있어, 용어 정리는 필..
See content in English Lose touch lose touch "연락이 끊기다" 라는 표현이다."학교 졸업하고나면 보통 연락 끊기지" 정도 표현할 때 캐쥬얼하게 사용 가능하다. "You know, after high school, you kinda lose touch" "I lost touch with Emily after she moved to Korea." Let's keep in touch 표현은 많이 알고있는데, 그 반대의 경우는 잘 모르는 것 같다. 꽤 유용하게 사용할만한 표현인 것 같다.아래는 Friends 에서 실제로 해당 표현을 사용하는 동영상 Clip 이다. Lose touch lose touch It's an expression to tell somebody that ..
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 Swagger CodeGen 을 이용하여 JMeter 테스트 플랜 추출하기. 잘 알려졌다시피, JMeter 는 테스트 플랜을 작성하여 대량 HTTP Request 를 발생시켜 스트레스 테스트는 물론 유닛테스트까지 진행할 수 있는 매우 유용한 툴이다. RESTful API 프로젝트를 경험했다면, 한 번 이상은 써보는 툴이 아닌가 생각한다. 하지만 JMeter Thread Group 을 생성하고, Loop Count, Number Of Threads, HTTP Url, Port, API path, Parameters, Request Body 만들기 등, 테스트 준비를 위해 API 스펙을 일일히 체크하며 만드는 것은 상당한 단순 반복 작업을 요구한다. 현재 내가 개발 ..