
1. 서론서비스에서 자주 조회되는 인기글 API의 응답 속도를 개선하고자, Spring Boot에서 제공하는 @Cacheable 어노테이션을 활용해 캐시를 빠르게 붙였습니다. 간단하게 붙이고 성능도 챙기자는 의도였고, 처음에는 실제로 응답 속도도 빨라지고, 서버 부담도 줄어드는 듯 보였습니다. 하지만 운영을 지속하면서 이상한 지점을 발견했습니다. JVM Heap 사용량이 점점 누적되는데도, Full GC 이후에도 메모리 사용량이 줄지 않는 현상이 반복되었고, 같은 시점에 TPS가 급격히 하락하고 응답 지연이 늘어나는 문제도 함께 나타났습니다. 처음에는 일시적인 부하인가 싶었지만, Scouter로 수치를 확인하고 나니 이건 단순한 GC 문제만은 아니구나를 생각했습니다. 관련해서 어떤 점 때문에 메모리..
Troubleshooting
2025. 4. 30. 14:46
TAG
- 스키마 자동 생성
- 즉시 로딩
- 비영속
- @joincolumn
- 조인 전략
- 영속성 컨텍스트
- @TransactionalEventListener
- Redis
- onetoone
- @Entity
- 비동기
- @OneToMany
- 1차 캐시
- JPA
- 엔티티 매니저
- 준영속
- @GeneratedValue
- @Table
- 연관관계
- 메일
- 인메모리 db
- N + 1
- @Id
- @MappedSuperclass
- @Cacheable
- 최적화
- mappedBy
- 변경감지
- 단일 테이블 전략
- @ManyToOne
최근에 올라온 글
최근에 달린 댓글
링크