Spring Boot Profiles
Profile이 해결하는 문제: 환경별 설정 분리 개발, 스테이징, 프로덕션 환경은 데이터베이스 주소, 로그 레벨, 외부 API 엔드포인트가 다르다. 코드를 환경마다 […]
Profile이 해결하는 문제: 환경별 설정 분리 개발, 스테이징, 프로덕션 환경은 데이터베이스 주소, 로그 레벨, 외부 API 엔드포인트가 다르다. 코드를 환경마다 […]
MikroORM 이벤트 시스템 개요: 왜 Lifecycle Hook이 중요한가 운영 환경에서 엔티티가 생성·수정·삭제될 때 자동으로 타임스탬프를 기록하거나, 감사 로그를 남기거나, 관련
Service가 필요한 이유: Pod IP의 불안정성 Kubernetes에서 Pod는 생성될 때마다 새로운 IP를 받는다. Deployment가 롤링 업데이트를 수행하면 기존 Pod는 삭제되고
왜 Soft Delete인가: 물리 삭제 대신 논리 삭제를 선택하는 이유 운영 환경에서 데이터를 DELETE FROM으로 물리 삭제하면 복구가 불가능합니다. 감사
Guard가 하는 일: 요청의 실행 여부를 결정하는 단일 책임 NestJS에서 Guard는 요청이 라우트 핸들러에 도달하기 전에 “이 요청을 처리해도 되는가?”를
왜 Buffer Pool 튜닝이 중요한가 InnoDB는 디스크 I/O를 줄이기 위해 데이터 페이지와 인덱스 페이지를 메모리에 캐싱한다. 이 캐시 영역이 Buffer
왜 컬럼 타입 설계가 중요한가 NestJS + TypeORM 프로젝트에서 @Column()은 가장 많이 쓰는 데코레이터입니다. 그러나 기본 string, number만 쓰다 보면
들어가며: “커넥션 풀이 다 찼습니다” — 가장 흔한 운영 장애 Spring Boot 애플리케이션에서 HikariPool-1 – Connection is not available, request
왜 QueryBuilder를 깊이 알아야 하는가 TypeORM의 find() 계열 메서드는 간단한 CRUD에 적합하지만, 서브쿼리, 복합 조건, 집계, Raw SQL 표현식이 필요한