프로그래밍
-
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
-
UE4 데디케이티드 서버 만들기 샘플프로그래밍/의문 2021. 5. 29. 15:58
그냥 이거 따라하면 됨. Setting Up Dedicated Servers | Unreal Engine Documentation Setting Up Dedicated Servers How to set up and package a dedicated server for your project. docs.unrealengine.com 1. github에서 UE4 소스를 받는다. UE4 소스는 private 저장소에 있으므로 에픽 게임즈 개발자 등록을 해야 접근이 가능. 저장소 링크: EpicGames/UnrealEngine: Unreal Engine source code (github.com) 2. 소스 다운로드 후 Windows에선 Setup.bat을 실행 후 완료 대기. 3. Windows이므로, Ge..
-
Flatbuffers로 만들어진 바이너리 식별 방법프로그래밍/의문 2021. 5. 10. 01:58
결론: flatbuffers 바이너리에 헤더를 붙여서 쓰자. 플랫버퍼 바이너리는 바이너리 자신이 무엇인지 설명하지 않음. 즉, 플랫버퍼로 어떤 메세지를 직렬화 했을 때 이 직렬화된 메세지를 어떤식으로 해석해야 할 지 알 수 없다. file identifier 파일 확장자처럼, 플랫버퍼 바이너리를 어떤식으로 해석해야 하는지 플랫버퍼 바이너리에 identifier를 기입할 수 있다. identifier를 기입하려면 FlatBufferBuilder::Finish 또는 FlatBufferBuilder::FinishSizePrefixed 함수에 identifier를 입력한다. 단 identifier의 길이에는 제약이 있는데, 정확하게 4글자여야 한다는 것이다. 그리고 identifier를 이용한 바이너리는 fla..
-
실시간으로 평균 값 구할 때 좋은, 평균 필터 알고리즘.프로그래밍/기록, 개념, 용어 2021. 4. 25. 12:03
실시간으로 들어오는 값들로 부터 실시간으로 평균 값을 계산할 때 유용. 이전 값들의 목록 또는 이전 값들의 총 누산 값들을 저장할 필요가 없다. #include using namespace std; /// @params prevAvgVal 이전 평균 값. /// @params numSample 몇 번째 샘플인지. /// @params sampleVal 샘플 값. int avg(int prevAvgVal, int numSample, int sampleVal) { return (prevAvgVal * (numSample - 1) / numSample) + (sampleVal / numSample); } int main() { int prevAvgVal = 0; int sample = 4; int totalA..