반응형 프로그래밍474 Effective C# Item 42 : IEnumerable<T> 데이터 소스와 IQueryable<T> 데이터 소스를 구분하라 IEnumerable 데이터 소스와 IQueryable 데이터 소스를 구분하라IQueryable와 IEnumerable는 거의 동일한 API 정의를 가진다. 따라서 이 두 인터페이스는 상호 교환 가능하다고 생각할 것이며 실제로도 대부분 그렇다. 이는 사실 의도한 설계이기도 하다. 하지만 시퀀스는 그냥 시퀀스일 뿐이어서 항상 이 둘을 서로 대체하여 사용할 수 있는 것은 아니다. 사실 이 둘은 동작 방식도 매우 다르고 성능 차이도 크게 난다. 다음의 예를 살펴보자. // 첫번째 예var q = from c in dbContext.Customers where c.City == "London" select c;var finalAnswer = from c in q orderby c.Name select c;// .. 2024. 9. 25. IEnumerable vs IQueryable 어떻게 다른지 알아보자 IEnumerable과 IQueryable에 대해서처음에는 이 둘이 한쌍으로 묶일 거라고는 전혀 상상하지 못했다. 일단 이름부터 너무 다르지 않은가?하지만 이 둘을 묶어서 비교하다보면 같이 설명하는 이유에 대해서 알게 될 것이다.IEnumerableLINQ-to-Object가 작동하도록 하는 인터페이스이다. public IEnumerable getListCode(string code){ return _dbset.Where(p => p.Code == code);}해당 구문을 실행하게 되면 DB 테이블을 통으로 조회를 한 후 서버 메모리에 로드하고 처리하게 된다. ex) select * from table명IQueryableLINQ-to-SQL이 작동하도록 하는 인터페이스이다. public IQuery.. 2024. 9. 25. 인증서 생성 시 알게 된 x509에 대해서 알아보자 공인 인증 기관, CA(Certificate Authority)공인 인증 기관(CA)은 인증 정책을 수립하고, 인증서 발급과 관리 역할을 하며 다른 CA와 상호 인증을 제공한다. 다시 풀어서 설명하자면, CA에서는 개인키와 공개키 쌍을 만들고, 개인키를 자신이 만들었다고 인증서를 발행하게 된다. 즉, Private key를 보증하기 위해 쌍이 되는 Public key, 그리고 인증기관이 정식으로 발행했다는 것을 알리기 위한 공인 인증 기관의 전자 서명이 인증서에 들어있다.그런데 이때 인증서를 작성하는 인증기관마다 상이하면 인증서의 내용을 이해하는데 문제가 있을 것이다. 이러한 인증서들의 표준이 되는 규칙이 있어야 하는데, 현재 가장 널리 사용되는 PKI의 표준이 x509이다. PKI란?PKI-공개키기반구.. 2024. 9. 23. SSL 인증서 유효기간 확인 방법 인증서 파일 내부 확인 방법SSL을 사용하지 않고 인증서 내부를 바로 확인하는 방법이 있다.$cat cert.crt 하지만 이 방법으로는 인증서 관련 정보들을 알 수가 없다.OPENSSL 커맨드로 유효기간 확인하기$openssl x509 -in -text -nooutValidity 관련 부분을 참고하면 유효기간 확인이 가능하다. HTTPS 통신을 위한 자체 인증 SSL 인증서 만들기전반적인 과정OpenSSL 다운로드Private Key 생성인증서 요청(CSR) 파일 생성(private.csr)자체 서명하기 위해서 rootCA 생성자체 서명한 인증서 생성(private.crt)pem 확장자로 변환NGINX config 파일에서 해당 파일jettstream.tistory.comOPENSSL 설치 관련으로는.. 2024. 9. 20. 도커(Docker)로 Nginx 실행시 설정 파일 변경하는 방법 Nginx default 설정 파일을 변경해서 실행해 보자1. 설정 파일 생성변경할 설정 파일 경로nginx/conf/default2. Dockerfile 생성nginx/Dockerfile #DockerfileFROM nginx:latestCOPY conf/default /etc/nginx/sites-available/defaultCMD ["nginx", "-g", "daemon off;"]생성한 default 파일을 Docker로 생성한 경로에 카피해 준다는 내용이 추가되었다. 3. Docker 이미지를 생성 (Dockerfile이 있는 경로에서 실행하자.)$docker build --tag nginx-test:1.0 . 4. 이미지 확인$docker images 5. Docker 이미지 실행$dock.. 2024. 9. 13. DTO란? DTO에 대해서 알아보자 DTO(Data Transfer Object)DTO는 개발자 커뮤니티나 개발자 논의에서 항상 나오는 용어이다. 하지만 개발자들끼리도 DTO에 대한 이해가 조금씩 다르다. 이번 기회에 DTO에 대해서 정리해 보도록 하자. DTO의 정의유명 개발자들의 글에서도 DTO가 같은 의미로 사용된 것인지 아닌지 헷갈릴 때가 있다. 중요한 것은 자신만의 명확한 정의가 있고 이를 설명할 수 있어야 한다는 것이다. 아래 글을 꼭 읽어보도록 하자! Data Transfer ObjectAn object that carries data between processes in order to reduce the number of method calls.martinfowler.comAn object that carries data .. 2024. 9. 11. 이전 1 ··· 5 6 7 8 9 10 11 ··· 79 다음