728x90 전체 글351 mssql parameter sniffing # 매개변수 스니핑(parameter sniffing)이란? 우선, 매개변수 스니핑에 대해 두려워하지 마십시오. 예상되는(정상) 동작입니다. 저장 프로시저가 컴파일되거나 다시 컴파일되면 해당 호출에 대해 전달된 매개변수 값이 "스니핑"되어 카디널리티 추정에 사용됩니다. 최종 효과는 특정 매개변수 값이 쿼리에서 리터럴로 사용된 것처럼 계획이 최적화된다는 것입니다. 다음 저장 프로시저를 예로 들어 보겠습니다. ``` create procedure dbo.SearchProducts @Keyword varchar(100) as select * from Products where Keyword like @Keyword ``` 테이블에 약 100,000개의 행이 있고 키워드 열에 단일 열 비클러스터형 인덱스(sin.. 2022. 7. 12. OOP(Object-Oriented Programming) 의 SOLID 원칙 # SOLID는 좋은 소프트웨어 아키텍처를 만드는 데 도움이 되는 5가지 기본 원칙 ### 단일 책임 원칙 (Single Responsibility Principle) class(=객체)는 하나의 책임(목적, 역할 등)만 지녀야 한다는 원칙이다. 새로운 기능을 기존 class에 추가하게 되면, (=하나의 class가 여러 기능을 수행하면) 코드가 길어지고 복잡해진다. 또 나중에 수정해야할 때 시간이 많이 걸릴 수 있다. ``` class Customer { public void Add() { try { // Database code goes here } catch (Exception ex) { System.IO.File.WriteAllText(@"c:Error.txt", ex.ToString()); } .. 2022. 7. 10. MVC (Model-View-Controller) MVP (Model-View-Presenter) MVVM (Model-View-ViewModel) 출처 [MVC MVP MVVM](https://kayuse88.github.io/mvvm-pattern/) [MVC MVP MVVM sample](https://kayuse88.github.io/mvvm-example/) ## MVC (Model-View-Controller) 뷰와 모델을 분리할 수 있지만 몇 가지 단점이 있습니다. ### 컨트롤러 고려사항 #### 테스트 용이성 - 컨트롤러는 WPF 라이브러리를 참조하기 때문에 단위 테스트가 힘듭니다. #### 모듈 및 유연성 - 만약 뷰의 내용을 고친다고 합니다. 그렇다면 뷰를 참조하는 컨트롤러의 내용까지 모조리 고쳐야 합니다. 작업량이 늘어나게 됩니다. 작은 프로젝트면 금방 고칠것이나 프로젝트의 규모가 커질수록 단순 작업량이 늘어나게 됩니다. ###.. 2022. 7. 10. 아키텍처 패턴(Architecture Patterns), 디자인 패턴(Design Pattern) [출처: NCS학습모듈 2001020105 SW아키텍처 설계 2001020106 SW아키텍처 이행](https://ncs.go.kr/unity/th03/ncsSearchMain.do) # A. 아키텍처 패턴(Architecture Patterns) (1) 아키텍처 패턴은 소프트웨어 시스템을 위한 검증된 구조적 도해(a pictorial, an illustrated)이다. 패턴은 서브 시스템과 그들의 역할을 사전 정의해 놓은 하나의 Set이다. Client-server pattern의 시스템 구조에 의하면 두 개의 서브 시스템이 식별된다. 클라이언트(여러 인스턴스일 수 있음)와 서버(유일함)가 그것들이다. 클라이언트 시스템의 주요 역할은 사용자에게 UI를 보여주는 역할일 수 있으며, 서버의 역할은 여러 질.. 2022. 7. 9. M220P: MongoDB for Python Developers Chapter 0: Introduction and Setup MongoDB URI Given the following MongoDB URI: mongodb+srv://brigitte:bardot@xyz-1234.srv.net/admin which of the following statements is true ? - The password used to authenticate is bardot Chapter 0: Introduction and Setup Setting Up Atlas mongorestore --gzip --archive=sampledata.archive.gz https://www.mongodb.com/docs/database-tools/mongorestore/ mongorestore — .. 2022. 6. 19. M121 The MongoDB Aggregation Framework Chapter 0: Introduction and Aggregation Concepts Introduction to the MongoDB Aggregation Framework Chapter 0: Introduction and Aggregation Concepts Atlas Requirement mongo "mongodb://cluster0-shard-00-00-jxeqq.mongodb.net:27017,cluster0-shard-00-01-jxeqq.mongodb.net:27017,cluster0-shard-00-02-jxeqq.mongodb.net:27017/aggregations?replicaSet=Cluster0-shard-0" --authenticationDatabase admin --ssl -.. 2022. 6. 18. InnoDBClusterSet https://www.youtube.com/watch?v=6dh_sXlaAqI http://www.mktg.co.kr/eDM/20220512_MySQL/html/images/InnoDBClusterSet.pdf MySQL Replication • 기존의 복제 방식은 여러 가지의 수동적인 스텝필요 - 복제 계정 생성, 소스로부터 백업 및 restore 절차 등 • 복제방식 - Async Replication - Semi-sync Replication • Auto-Failover 미지원 - Auto-failover를 위해서는 별도의 솔루션 필요 - MMM, MHA, Orchestrator, OS layer HA solution MySQL InnoDBCluster • Group Replication - 멤버쉽.. 2022. 6. 16. <string xmlns="http://tempuri.org/"> </string> 없애기 [WebMethod(EnableSession = true)] [ScriptMethod(ResponseFormat = ResponseFormat.Json)] public void function() { HttpContext.Current.Response.ContentType = "application/json"; // error on line 1 at column 1: document is empty string result = new JavaScriptSerializer().Serialize(new { result = list }); HttpContext.Current.Response.Write(result); } 2022. 6. 15. 외부화를 위한 Amazon의 선언 2002년에 Amazon 설립자 Jeff Bezos가 명령을 내렸습니다. 이 권한은 현대 웹 공간에서 Amazon의 중추를 형성하는 역할을 하여 기업 사고 방식의 API 개발 패러다임과 API 기능을 외부화하는 일반적으로 개선된 접근 방식을 모두 알려줍니다. 아래에서 권한에 대해 이야기하고 API 공간에서 이것이 왜 그렇게 전설이 되었는지 논의할 것입니다. 각 요점의 세부 사항을 자세히 살펴보고 그 명령이 API 및 마이크로서비스에 대한 현대적 사고의 대부분을 형성한 방법을 살펴보겠습니다. 위임 문제의 명령은 2002년 창립자 Jeff Bezos가 Amazon에 발행했습니다. 여러 가지 이유로 API/마이크로서비스 분야에서 어느 정도 전설이 되었습니다. 기업 관점에서 현대 API 디자인 패러다임의 대부분.. 2022. 6. 13. 이전 1 2 3 4 5 ··· 39 다음 728x90