Blog

Backend

리플렉션은 private을 뚫는 기술이 아니라 실행 중에 클래스 메타데이터를 읽는 기술이다

Spring 생성자 주입과 JPA 기본 생성자를 공부하다가 리플렉션이 정확히 무엇을 하는지 헷갈려서 다시 정리했습니다.

Backend

모니터링 장애 대응 실습 3편 - 앱이 죽어가는 신호, 메모리 누수와 에러율 급증

힙은 톱니를 잃고 우상향하다 로그 한 줄 없이 죽었고, 에러율은 0에서 20%로 치솟아 50초 만에 Discord를 울렸습니다. 추세형과 급변형, 정반대 장애 두 개를 추적한 기록입니다.

Backend

모니터링 장애 대응 실습 2편 - 자원이 마르면 생기는 일, 커넥션 풀 고갈과 느린 쿼리

HikariCP 풀 고갈은 에러율 93%로 비명을 질렀고, 100만 행 풀스캔은 에러 0건인 채 11배 느려졌습니다. 같은 자원 장애에서 정반대 신호를 추적한 기록입니다.

Backend

모니터링 장애 대응 실습 1편 - 정상이 뭔지 모르면 장애도 못 본다

장애 대응 경험을 만들기 위해 Spring Boot 앱에 Prometheus, Grafana, Loki 관측 스택을 직접 구성하고, k6 부하로 p95/p99, 에러율, HikariCP의 baseline을 확보한 기록.

Backend

테스트가 어려운 이유는 테스트 코드가 아니라 설계에 있다

테스트 코드를 잘 짜고 싶어서 공부하다 보니, 문제는 대부분 설계에 있었습니다. 제어할 수 없는 값, 외부 의존성, 아키텍처 관점에서 테스트하기 좋은 코드란 무엇인지 공부하고 정리한 내용입니다.

Database

DB 조회 성능 개선기 - 30초를 5초로

스칼라 서브쿼리를 CTE + PIVOT으로 리팩토링하고, 커버링 인덱스를 적용해 조회 성능을 6배 개선한 과정을 정리합니다.

Backend

TPS와 성능 최적화 - 서버 늘리기 전에 코드부터 보자

TPS의 개념부터 벌크 처리, 비동기, CQRS, 샤딩까지 실무 성능 최적화 기법을 비용 효율 순으로 정리합니다.