PostgreSQL의 의외의 함정: Boolean, 텍스트 I/O, 그리고 ETL 이슈

PostgreSQL은 강력하고 표준을 잘 따르는 데이터베이스입니다. 하지만 의외의 작은 함정들도 있죠. 그중 하나는 바로 boolean 값을 다루는 방식, 특히 데이터를 텍스트 형식으로 내보낼 때의 이야기입니다. 🧠 PostgreSQL의 Boolean 처리 방식: 생각과 다르다 PostgreSQL은 boolean 값을 내부적으로 1비트(bit) 만으로 효율적으로 저장합니다. 예상한 대로죠. 하지만 그 값을 텍스트로 변환하거나 COPY 같은 방식으로 내보내면, 결과는 좀 다릅니다: SELECT true::text; -- 결과: 't' SELECT false::text; -- 결과: 'f' 맞습니다 — true는 't', false는 'f' 로 표현됩니다. 이건 PostgreSQL의 텍스트 I/O 기본 동작 방식인데, 이 동작 때문에 시스템 간 데이터를 주고받을 때 미묘한 버그가 생기기도 합니다. ...

6월 10, 2025

🔧 왜 Airflow는 init, scheduler, webserver를 따로 띄울까?

Airflow 조금 만지다 보면, 대부분 이렇게 서비스가 나뉘어 돌아가는 걸 보게 됩니다. airflow-init airflow-scheduler airflow-webserver “이걸 굳이 왜 이렇게 쪼개?” 라는 생각이 들 수 있는데요. 이게 바로 실전 운영 방식입니다. 1️⃣ airflow-init — 준비 담당 다른 이름으로 airflow-db-migrate 나 airflow-bootstrap 이라고 부르기도 합니다. 딱 한 번만 실행되는 프로세스입니다. 하는 일: airflow db upgrade → DB 스키마 최신화 (DB 구조 최신으로 맞춰줌) 최초 admin 유저 생성 중요 포인트: 이건 계속 도는 서비스가 아닙니다. 할 일 다 하면 바로 종료 (exit code 0). ...

5월 30, 2025