pile·
네이버 D2

naver-d2

네이버 D2

네이버 D2의 엔지니어링 블로그. 매시간 RSS로 자동 수집해요.

16
전체
+1
이번 주
최신
  1. 인프라 / DevOps·네이버 D2네이버 D2·

    네이버 검색의 대규모 메트릭 저장소, VictoriaMetrics 운영기

    문제네이버 검색 같은 대규모 시스템의 메트릭을 Prometheus로 다루다 보면 클러스터 확장성과 장기 보관 비용에서 한계가 온다.

    접근Prometheus 대체로 VictoriaMetrics 도입. 시계열 데이터 압축, 다운샘플링, 클러스터 토폴로지 운영을 통해 데이터 보관 비용 절감 + 쿼리 성능 유지.

    결과대규모 observability 시스템을 비용 효율적으로 운영. PromQL 호환성 덕분에 기존 대시보드/알람 마이그레이션 비용도 낮춤.

    #victoriametrics#prometheus#time-series+2
  2. 백엔드·네이버 D2네이버 D2·

    C++ 객체 수명과 암묵적 객체 생성

    문제C++ 에서 memcpy / cast 같은 저수준 작업이 undefined behavior 가 되지 않으려면 객체 수명 규칙을 제대로 이해해야 한다.

    접근C++ 표준의 "객체 수명(object lifetime)" 정의 + C++20 도입의 암묵적 객체 생성(implicit object creation) 규칙을 정리. 어떻게 쓰면 안전한지 코드 예시로 설명.

    결과std 표준이 보장하는 안전한 패턴과 위험 패턴을 명확히 구분. C++ 개발자가 무심코 쓰는 패턴의 위험도 파악.

    #cpp#object-lifetime#memory-model+2
  3. 백엔드·네이버 D2네이버 D2·

    C++ std::bit_cast와 reinterpret_cast — 언제 어떤 것을 써야 하는가

    문제std::bit_cast 와 reinterpret_cast 모두 비트 패턴을 재해석한다. 언제 어떤 것을 써야 하나.

    접근C++20 에 도입된 bit_cast 와 기존 reinterpret_cast 의 안전성 차이, type punning 시 undefined behavior 가 되는 조건을 코드 예시로 비교.

    결과bit_cast 는 trivially copyable 타입 사이 안전한 변환, reinterpret_cast 는 더 강력하지만 undefined behavior 위험. 상황별 선택 가이드 제공.

    #cpp#bit-cast#reinterpret-cast+2
  4. DB / 데이터·네이버 D2네이버 D2·

    스마트스토어센터 Oracle에서 MySQL로의 무중단 전환기

    문제Oracle 에서 MySQL 로 전환할 때 SQL 방언, sequence vs auto_increment, 트랜잭션 모델 차이 같은 함정이 있다. 그것도 무중단으로.

    접근네이버 스마트스토어센터가 dual-write + shadow validation + 점진 cutover 패턴으로 마이그레이션. 차이를 자동 비교로 검증하면서 진행.

    결과서비스 중단 없이 RDBMS 교체 완료. RDBMS 마이그레이션의 모범 사례로 정리.

    #rdbms#oracle-to-mysql#database-migration+2