모든 블로그
네이버 D2

네이버 D2

도메인d2.naver.com
주요 카테고리 AI · 프론트엔드

활동 요약

대표 인기 포스트FE News 26년 7월 소식을 전해드립니다.579 조회
최근 30일
19개
평균 조회
97
누적 조회
18,756
전체 글
194개
마지막 발행
2026. 11. 11.
블로그 방문

네이버 D2 기술 블로그 글 (29)

백엔드

Python의 GC가 멀티프로세싱과 만나면 생기는 일 - Python과 Airflow, 그리고 관련된 문제 해결기 2편

Airflow의 fork 기반 프로세스에서 Python 순환 GC가 COW와 MySQL 커넥션 종료를 유발한 원인을 분석했습니다. Memray로 별도 누수를 수정하고, 지연 import로 fork 승계 객체를 줄이는 접근을 다뤘습니다.

#Python#Airflow#MySQL
1800

백엔드

Hive는 잊으려 했지만, Spark는 기억하고 있었다: 사라진 get_table RPC 복원기

Hive 4.2에서 제거된 get_table RPC로 Spark 잡이 실패한 원인을 추적했습니다. Thrift IDL 계약을 보존한 RPC 복원과 생성 코드 검증 방식을 정리했습니다.

#Hive#Spark#Thrift
2500

백엔드

Python의 멀티프로세싱과 Airflow, 그리고 관련된 문제 해결기 1편

Airflow task 실행에서 필요한 병렬성과 격리성을 설명하고, fork와 spawn의 차이를 비교했습니다. Airflow 3가 성능상 fork를 채택한 이유와 프로세스 구조도 정리했습니다.

#Python#Airflow#멀티프로세싱
5000

백엔드

12.5억 개의 시계열과 555조 개의 데이터포인트를 다루는 VictoriaMetrics 아키텍처와 무중단 장비 전환

네이버 검색의 대규모 VictoriaMetrics 운영 구조와 Hot/Warm 2계층 설계를 소개했습니다. 메모리 한계를 해결하고 180대 장비를 무중단으로 전환한 방법도 공유했습니다.

#VictoriaMetrics#Kubernetes#TSDB
8500

백엔드

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

C++ 객체 수명과 암묵적 객체 생성 규칙을 정리하며 reinterpret_cast 사용 시의 UB 가능성을 설명했습니다. C++20의 표준 수용 범위와 std::launder, placement new의 역할도 함께 다루었습니다.

#C++#reinterpret_cast#객체 수명
7000

백엔드

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

C++에서 타입 퍼닝과 포인터 변환에 `std::bit_cast`와 `reinterpret_cast`를 어떻게 구분해 써야 하는지 정리했습니다. 엄격한 앨리어싱 규칙과 포인터↔정수 변환의 의미론도 함께 설명했습니다.

#C++#std::bit_cast#reinterpret_cast
7700

백엔드

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

스마트스토어센터가 Oracle에서 MySQL로 무중단 전환한 방법을 이중 쓰기 중심으로 설명했습니다. JPA와 MyBatis에서의 트랜잭션 처리, PK와 컬럼 타입 조정까지 다뤘습니다.

#Oracle#MySQL#JPA
18500

백엔드

@RequestCache: HTTP 요청 범위 캐싱을 위한 커스텀 애너테이션 개발기

HTTP 요청 범위에서 반복 호출을 막기 위해 @RequestCache를 설계한 과정을 정리했습니다. 요청 스코프와 Actuator 충돌로 발생한 예외와 해결 방향도 함께 다뤘습니다.

#Spring Boot#cache#proxy
11300

백엔드

DBT, Airflow를 활용한 데이터 계보 중심 파이프라인 만들기

DBT와 Airflow로 데이터 계보 중심 파이프라인 Flow.er를 구축한 사례를 소개했습니다. 운영 비용 절감과 조직 확장을 위한 구성 요소와 개선 경험을 공유했습니다.

#DBT#Airflow#data lineage
8800

백엔드

서비스 조직에서 Kafka를 사용할 때 알아 두어야 할 것들 (5)

Kafka Consumer Group Protocol v2를 소개하고 v1의 문제점, v2의 장점과 마이그레이션 포인트를 다뤘습니다. 서비스 조직에서 Kafka를 사용할 때 참고할 실무 팁을 정리했습니다.

#Kafka#마이그레이션#성능
22100

백엔드

API 호출식 웜업의 부작용을 넘어서 : 라이브러리만 데우는 JVM 웜업

JVM JIT Compiler 웜업의 기본과 기존 API 호출식 웜업의 부작용을 짚고, 라이브러리만 데우는 방식을 소개했습니다. 구현과 검증을 통해 이점과 한계를 함께 정리했습니다.

#Java#web#모니터링
21000

백엔드

JuiceFS: 오브젝트 스토리지를 활용하는 HDFS 호환 분산 파일 시스템

HDFS와 오브젝트 스토리지의 장단점을 비교하고, 그 한계를 보완하는 JuiceFS의 구조와 활용법을 설명했습니다. Hadoop 환경에서 JuiceFS를 설정해 HDFS CLI, MapReduce, Spark와 연동하는 방법도 다뤘습니다.

#Hadoop#HDFS#JuiceFS
9100

백엔드

Spring Cloud Config HA 적용을 위한 커스터마이징

Spring Cloud Config의 SPOF 우려를 줄이기 위해 HA 구성을 커스터마이징한 사례를 소개했습니다. MySQL과 Kafka 이중화, 빈 단위 리프레시와 DR 테스트까지 함께 다뤘습니다.

#Spring Cloud#Kafka#MySQL
11500

백엔드

C++에서 안정적인 멀티 스레드 코드를 위한 스레드 안전성 개념 정리

C++ 멀티 스레드에서 데이터 레이스와 스레드 안전성의 핵심 개념을 정리했습니다. 기본 스레드 안전성, 동기화 관계, shared_ptr 관련 주의점을 함께 살펴봤습니다.

#C++#동시성
12800

백엔드

Thread-safety in C++

C++에서 안정적인 멀티 스레드 코드를 위한 스레드 안전성 개념을 정리한 발표입니다. data race와 happens-before, std::mutex·std::atomic 활용을 설명했습니다.

#C++#동시성
6900

백엔드

서비스 조직에서 Kafka를 사용할 때 알아 두어야 할 것들 (3)

Kafka Client가 클러스터 상태를 파악하는 metadata 동작 방식을 설명했습니다. 서비스 개발 시 관련 옵션을 어떻게 설정하면 좋은지도 다뤘습니다.

#Kafka#event
20600

백엔드

서비스 조직에서 Kafka를 사용할 때 알아 두어야 할 것들 (4)

Kafka 프로듀서 최적화와 압축 기능 활용법을 정리한 발표 내용입니다. 자료 구조, 메시지 전송 흐름, 주요 설정값을 통해 성능 개선 포인트를 소개했습니다.

#Kafka
10700

백엔드

Yappi로 Python에서도 성능을 챙겨보자

Yappi로 FastAPI 서버의 병목을 찾아 성능을 개선한 사례를 다뤘습니다. JSON 직렬화와 변환 경로를 줄여 CPU 사용률과 응답 시간을 크게 낮췄습니다.

#Python#FastAPI#Yappi
20000