1편에서 락이 무엇이고, 어떤 인덱스 구조 위에서 어떤 과정으로 잡히는지 봤다. 이번 편은 InnoDB가 제공하는 개별 락을 타입(how, S/X) 과 종류(what, 레코드·갭·넥스트키…) 두 축으로 하나씩 살펴본다. Lock 타입 (how) InnoDB는 기본적으로 행 수준(row-level) 잠금을 구현하며(테이블 수준 잠금도 ...
MySQL - LOCK 살펴보기 (1) — 락 기초와 잠금 과정
락을 잘 모르면 비효율적인 쿼리를 작성하거나, 데드락을 유발하거나, 불필요한 성능저하 등을 일으킬 수 있다고 생각한다. 또한 디버깅시 실마리를 못잡을 수도 있다. 이런 일을 최대한 겪지 않도록 MySQL에서는 어떤 락을 제공하는지 살펴보자. 이 글은 두 편으로 나눈다. (1편) 락이 무엇이고, 어떤 인덱스 구조 위에서, 어떤 과정으로 잡히는지...
HTTPS 요청이 HTTP로 리다이렉트 되는 현상 2
상황 약 3년 전 HTTPS 요청이 HTTP로 리다이렉트 되는 현상을 겪었었다. 이때는 해결방법 2 (RequestHeader set X-Forwarded-Proto “https”) ForwardedHeaderFilter 이전 서버 구성 (브라우저) ---- https ---- (Load Balancer 1 : DSR 방식) ---- ht...
WEB - TCP vs UDP, 그리고 네트워크 진단 도구들
네트워크 팀과 소통하다 보면 “그 서버로 telnet 한번 때려보세요”, “traceroute 결과 좀 주세요” 같은 얘기를 자주 듣는다. 그런데 정작 그 도구가 뭘 하는 도구인지, 왜 그걸 쓰라는 건지 모르면 결과를 봐도 해석을 못 한다. 특히 네트워크 팀에서 “ACL 열어드렸어요”라고 했는데 telnet이 안 되면, 이게 네트워크가 안 열린 ...
WEB - WAF, SNAT, DNAT 등 (서버 이전하면서 헷갈렸던 개념들 정리)
최근 회사에서 서버 이전 작업을 하면서 헷갈렸던 개념들을 정리해본다. FW vs WAF — 왜 방화벽이 있는데 또 필요한가 이름이 둘 다 “방화벽”이라 헷갈리지만 검사하는 계층이 다르다. FW (방화벽) WAF (Web Application Firewall) ...
Spring - @Async 살펴보기 (JDK Executor를 곁들인..)
JDK의 Executor / ExecutorService / ThreadPoolExecutor Spring의 TaskExecutor / AsyncTaskExecutor / ThreadPoolTaskExecutor 비슷한 이름의 클래스들 정리 및 @Async 동작까지 살펴보자. Executor 공식문서 제출된 Runnable 작업을 실행하는 ...
Java - PreparedStatement는 어떻게 SQL Injection을 방어할까 (feat. MySQL)
java.sql.Statement (Interface) 공식문서 : “The object used for executing a static SQL statement and returning the results it produces.” users 테이블 id name pw ...
오늘 드는 생각 (260511, AI 시대와 나)
개인적으로 Claude Code를 사용하게 되면서, 코드를 직접 작성하는 데 쓰는 시간은 거의 0에 가깝다고 해도 과언이 아니게 된 것 같다. 작년 말부터 지금까지 반년 정도 사용하면서 느낀 점과, AI를 어떤 태도로 활용해야 할지에 대한 생각을 정리해보려고 한다. 느낀 점 생산성이 비약적으로 높아졌다. 코드의 퀄리티는 기존 코드베이스나 ...
오늘 드는 생각 (260510, 관성)
쉬기 시작하면 계속 쉬고 싶어진다. 쉽게 도파민을 얻는 것들도 마찬가지다. 유튜브를 보거나, 배달 음식을 시켜 먹거나, 별생각 없이 돈을 쓰는 행동들은 순간은 즐겁지만 남는 건 별로 없는 것 같다. 반대로, 당장은 조금 힘들더라도 꾸준히 했을 때 시간이 지나며 빛을 발하는 것들이 있다. 멋진 몸은 반복된 웨이트 트레이닝의 결과물이고 내...
오늘 드는 생각 (260406, 견고한 삶)
개발자로서 견고한 시스템을 만든다는 건, 단순히 기획서에 있는 요구사항이 정상적으로 동작하게 만드는 것 이상이라고 생각한다. 정말 중요한 건, 시스템이 정상적으로 작동하기 위한 전제조건이 깨졌을 때 대비책이 마련되어 있는지인 것 같다. 즉, 시스템의 안정성은 ‘정상 상황’이 아니라 ‘예상하지 못한 상황’에서 얼마나 잘 버티는지에 달려 있다고 본다. ...