전체보기
-
C# 에서의 의존성 주입프로그래밍/의문 2022. 1. 22. 23:32
요약 Microsoft.Extensions.DependencyInjection 패키지 설치. Microsoft.Extensions.DependencyInjection 네임스페이스의 ServiceCollection를 이용해 의존성 주입에 이용될 클래스들을 등록. ServiceCollection으로 ServiceProvider 빌드. ServiceProvider의 GetService로 3의 ServiceCollection에 등록했던 인스턴스들을 사용. ServiceCollection에 등록한 클래스들이 사용하는 인수들은 ServiceProvider에 의해 알아서 주입이 됩니다. Microsoft.Extensions.DependencyInjection 패키지 설치. Nuget 같은 것을 이용해 Microsof..
-
-
Javascript의 수 타입들프로그래밍/의문 2021. 12. 17. 02:03
자바스크립트의 빌트인 수 타입에는 Number와 BigInt가 있다. Number는 IEEE754-2019 64비트 부동소수점 타입이다. ECMAScript® 2022 Language Specification (tc39.es) ECMAScript® 2022 Language Specification The first and subsequent editions of ECMAScript have provided, for certain operators, implicit numeric conversions that could lose precision or truncate. These legacy implicit conversions are maintained for backward compatibility, ..
-
CIDR프로그래밍/의문 2021. 12. 12. 03:21
- CIDR는 Classless Inter-Domain Routing(클래스 없는 도메인 간 라우팅) 의 약어이다. - 최신 IP 주소 할당 방법이다. 예전의 IP 주소 할당 방식인, 네트워크 클래스를 대체했다. - IPv4 주소를 효율적으로 사용하게 해준다. - 사이더 라고 읽음. CIDR의 형태 CIDR는 / 모양새이다. 예를 들자면 아래와 같다. 10.10.1.32/27 CIDR의 접두어 길이는 CIDR의 IPv4 주소 부분과 비교할 IPv4 주소가 서로 몇 비트가 일치해야 하는지를 나타낸다. 아래는 10.10.1.32/27 CIDR 블록이, 각 IP를 어떻게 필터링 하는지를 나타낸다. 10.10.1.44는 10.10.1.32와 27비트 부분까지 일치하여 매칭된 IP 이지만, 10.10.1.90는 ..
-
메세지 큐 전달 보증 비교프로그래밍/의문 2021. 12. 9. 11:31
Compare NATS - NATS Docs Compare NATS - NATS Docs Kafka has a large number of integrations in its ecosystem, including stream processing (Storm, Samza, Flink), Hadoop, database (JDBC, Oracle Golden Gate), Search and Query (ElasticSearch, Hive), and a variety of logging and other integrations. docs.nats.io Quality of Service / Guarantees NATS At most once, at least once, and exactly once is avail..
-
텅 빈 클래스 또는 구조체는 왜 0 사이즈가 아닐까?프로그래밍/의문 2021. 10. 23. 20:10
클래스 또는 구조체가 사이즈 0이 될 경우 서로 다른 2개의 인스턴스가 같은 주소를 가질 수 있게 되므로, 텅 빈 클래스 또는 구조체라도 최소 1바이트 이상의 크기를 가진다. 그러나 최적화 옵션에 따라 1바이트를 표현하지 않는 규칙도 있는 듯.(empty base class optimization) class Empty {}; struct X : Empty { int a; // ... }; void f(X* p) { void* p1 = p; void* p2 = &p->a; if (p1 == p2) cout
-