-
[OKE 인프라 학습 시리즈] 클라우드 런에서 오라클 쿠버네티스(OKE)로 — 왜 다시 상시 가동 환경으로 옮기나
GKE 인프라 학습 시리즈에서 GKE에 직접 서비스를 띄우고 비용을 줄이는 이야기까지 왔었다. 그 뒤 개인 앱은 비용 문제로 Cloud Run으로 한 번 옮겼는데, 이번엔 방향을…
-
애드센스는 어떻게 내 사이트를 평가할까 — Googlebot 자동 크롤과 Search Console로 그 근거 확인하기
오늘 내 블로그의 색인 상태를 Google Search Console에서 직접 뜯어보다가, 그동안 막연하던 그림 하나가 또렷해졌다. 애드센스 심사는 누가 사람이 앉아서 페이지를 넘겨보는 게 아니라, 구글이…
-
[어원] approximately — ap+proxim(가장 가까운)+ly, ‘가장 가까운 값으로’ 그리고 개발이 근사에 기대는 이유
근삿값은 참값(정중앙)에 가장 가까이 데려다 놓은 값이다. Photo: Afif Ramdhasuma / Unsplash 이 글은 개발자를 위한 [어원] 노트 중 하나다. 앞서 simultaneous가 “정확히 같은 때에”를…
-
[어원] simultaneous — simul(같은 때에)에서 CPU SMT까지, ‘동시에’를 정확히 가리키는 단어
한눈에 보기 항목 내용 단어 simultaneous /ˌsaɪ.məlˈteɪ.ni.əs/ 품사 형용사 (부사: simultaneously) 의미 같은 시간에 일어나는, 동시에 발생하는 핵심 뿌리 라틴어 simul = “같은 때에, 함께”…
-
[백엔드 운영] 풀을 키우기 전에 — 느린 SQL이 커넥션을 잡고 있을 때
active가 max에 붙었다고 풀이 작은 건 아니다. 각 커넥션이 어떤 SQL을 몇 ms째 잡고 있는지(held)부터 봐야 한다. items.order_id 인덱스 하나로 hold time을 줄여, 풀을 키우지…
-
[백엔드 운영] 긴 작업이 짧은 요청을 잡아먹을 때 — 풀 격리와 읽기/쓰기 분리
풀은 FIFO 큐다. 긴 작업 하나가 슬롯을 오래 잡으면 빠른 SELECT까지 줄 뒤에서 대기한다. short/long 풀 격리와 읽기/쓰기 분리를 Spring의 AbstractRoutingDataSource(마법)와 Go의 명시 호출로 비교한다.
-
[백엔드 운영] Hikari가 공짜로 해주던 것 — 커넥션 누수 추적을 직접 만들어 보다
커넥션을 빌리고 반납을 안 하면 풀은 조용히 고갈된다. HikariCP는 leakDetectionThreshold 한 줄로 누수를 stacktrace까지 잡아주지만, Go pgxpool엔 그 기능이 없어 직접 만들어야 한다. 같은 UX를…
-
[백엔드 운영] 커넥션을 얼마나 기다리고 얼마나 오래 살릴까 — timeout과 lifetime을 Hikari·pgxpool로 비교
풀이 비었을 때 얼마나 기다릴지(connectionTimeout vs ctx deadline)와 커넥션을 얼마나 오래 살릴지(maxLifetime). ‘실패를 빨리 만들수록 건강하다’는 fast-fail 원리와, DB가 먼저 끊은 죽은 커넥션을 풀이 빌려주는…
-
[백엔드 운영] 커넥션 풀이 막히는 순간을 숫자로 읽는 법 — Hikari와 pgxpool은 같은 고갈을 다르게 보여준다
active·idle·awaiting·total·max 다섯 숫자와 p50·p99로 풀의 상태를 읽는 법. 그리고 같은 풀 고갈을 HikariCP는 awaiting 게이지로, Go pgxpool은 누적 카운터로 보여주는 관측 패러다임 차이까지 — 두…
-
[독서] 빅터 프랭클 『죽음의 수용소에서』 — 과거·현재·미래에 의미를 부여한다는 것, 그리고 죽음과 함께 가벼워지는 마음
빅터 프랭클의 『죽음의 수용소에서』(Man’s Search for Meaning)를 덮으면서 가장 먼저 든 생각은, 이 책이 결국 한 문장으로 수렴한다는 것이었다 — “삶은 어떤 상황에서도 의미를 가질…