최근 데이터 엔지니어링을 공부하면서 원본 데이터를 별도로 저장 하는 기준에 대해 고민하게 되었고, 생각을 정리하기 위해 글을 작성하게 되었습니다. 1. 왜 고민을 하게 되었을까? 공공 데이터 포털의 데이터를 저장하는 작업을 하면서 원본 데이터를 저장할지 에 대한 고민이 생겼습니다. PG사에서 들어오는 결제 데이터는 금전과 직접 연결되어 ...
원본 데이터는 언제 저장해야 할까?
오케스트레이션의 역할과 책임은 어디까지 일까?
공공데이터로 ETL 토이 프로젝트를 하는 과정에서 오케스트레이션의 역할과 책임 에 대해 고민하게 되었고, 생각을 정리하기 위해 글을 작성하게 되었습니다. 1. 왜 이런 고민을 하게 되었을까? ETL 파이프라인을 구성할 때, 데이터를 압축 해제한 후 저장하는 작업을 Airflow와 스프링 중 어디에서 할지 에 대해 고민이 들었습니다. 이전...
MySQL의 시간 정밀도
정산하다 보면 날짜 범위 조회 를 정말 많이 하게 되는데요. 날짜 단위 조회에서 BETWEEN 과 >= AND < 중 어떤 방식이 더 명확한지 고민하게 되었고, 이 과정에서 알게된 내용을 정리하기 위해 글을 작성하게 되었습니다. SELECT * FROM time_test WHERE created_at BETWEEN '2026-02-07...
STRAIGHT_JOIN은 왜 마지막에 사용해야 할까?
회사에서 코드리뷰를 하던 중, STRAIGHT_JOIN 의 사용기준 에 대해 사수와 이야기를 나누었고, 왜 이를 최대한 지양해야 하는지 에 대한 생각을 정리하기 위해 글을 작성하게 되었습니다. 1. STRAIGHT_JOIN STRAIGHT_JOIN은 MySQL 옵티마이저가 테이블 조인 순서를 결정하지 못하거나 비효율적인 실행 계획을 선택...
HTTP 캐시
아직 작성 중입니다. 1. 캐시의 생명 주기 HTTP 캐시는 응답을 받은 순간부터 바로 만료되지 않습니다. 응답에 포함된 Cache-Control 헤더에 따라 캐시는 유효 상태(fresh) 와 만료 상태(stale) 를 거칩니다. 캐시가 fresh 상태인 동안 브라우저는 서버나 CDN에 요청을 보내지 않습니다. 캐시가 ...
Stack, Stack Frame
CPU를 학습하던 중, 스레드 스택과 함수 스레드 스택 프레임에 대해 알게 됐고, 이를 정리하기 위해 글을 작성하게 되었습니다. 아직 작성 중입니다. 1. Stack, Stack Frame 스택은 스레드 단위로 하나만 존재합니다. 함수마다 독립적인 스택이 따로 있는 것이 아니라, 스레드마다 하나의 스택이 있고 함수 호출마다 그 ...
레지스터는 어떻게 이전 문맥을 기억할까?
아직 작성 중입니다. 1. 레지스터 CPU 레지스터는 프로그램 실행 상태 그 자체입니다. 지금 어떤 명령어를 실행 중인지, 다음에 어디로 이동해야 하는지, 계산 중인 값이 무엇인지가 모두 레지스터에 들어 있습니다. CPU는 메모리를 읽지 않고도 즉시 실행하기 위해, 현재 실행에 필요한 모든 정보를 레지스터에 올려 둔 상태로 동작합...
메모리 배리어와 가시성: while 루프는 왜 멈추었을까?
최근 메모리 베리어에 대해 학습하게 됐고, 이 과정에서 2년 전 취준생 때 학습했던 내용이 기억났습니다. 당시 지식 부족으로 틀린 결론을 냈었는데요. 이를 바로 잡고 싶어 글을 작성하게 되었습니다. 1. 왜 while문이 중단될까? 최근 CPU 캐시를 공부하면서 2년 전 지율님과 공부할 때 봤던 코드가 떠올랐습니다. 둘이서 아래 코드가 ...
메모리 가시성과 안전한 객체 공개: Double-Checked Locking은 왜 위험했을까?
메모리 가시성을 공부하면서 DCL이 안전하지 않을 수 있다 는 것을 알게 되었고, 이를 정리하기 위해 글을 작성하게 되었습니다. 1. Double-Checked Locking은 왜 안전해 보일까? Double-Checked Locking(DCL)은 싱글톤을 지연 초기화하면서도 매번 synchronized를 사용하지 않기 위해 고안된 패턴...
왜 리눅스는 모든 것은 파일로 취급할까?
리눅스를 공부하다보면 모든 것은 파일이다 라는 말을 보게 되는데요. 최근 리눅스는 왜 모든 것을 파일로 취급하는지에 대해 궁금증이 들었고, 이 과정에서 알게 된 내용을 정리하기 위해 글을 작성하게 되었습니다. 아직 작성 중입니다. 1. “모든 것은 파일이다”의 의미 리눅스에서 Everything is a file 이라는 말은...