웹 사이트의 성능을 높이기 위해서는 여러 기술을 적용할 수 있다. 이 중 백엔드 개발자가 적은 시간을 투자하며 최대 성능 효과를 얻을 수 있는 방법으로 HTTP 압축, 다양한 리소스 최적화 기법(이미지, JS, CSS, 기타 리소스), HTTP 캐싱 등의 방법이 있다. 이 중 HTTP 캐시가 무엇인지와 적용 방법에 대해서 조금 더 자세히 알아보도록 하겠다. 1. 캐시 (Cache) & 캐싱 (Caching) 간단하게 설명하자면 캐시는 자주 사용되는 데이터나 값을 미리 복사해 놓는 임시 장소를 말하고 캐싱은 데이터를 이 캐시 영역에 저장하는 행위를 뜻한다. 캐시는 캐시의 접근 시간에 비해 원래 데이터를 접근하는 시간이 오래 걸리는 경우나 값을 다시 계산하는 시간을 절약하고 싶은 경우에 사용한다. 캐시에 데..
전체 글
즉시 로딩 개선현재 프로젝트에서 Writing, Category Entity는 각각 자기 자신과 @OneToOne 연관 관계를 가지고 이는 Eager Loading(즉시 로딩)으로 관리되고 있다.해당 로직을 Lazy Loading(지연 로딩)으로 바꿔 성능 개선을 해보고자 한다.발생 배경동글 서비스에서는 글과 카테고리의 순서를 사용자가 관리할 수 있는 기능을 제공한다.순서를 관리하기 위해서 단방향 연결리스트 구조를 바탕으로 로직을 구현하였다.public class Category { @OneToOne(fetch = FetchType.EAGER) @JoinColumn(name = "next_category_id") private Category nextCategory; ...}..
1. 코드 편집단축키설명Ctrl + F찾기 창Ctrl + H바꾸기 창Ctrl + A코드 전체 선택Shift + 방향키방향 키에 따라 코드 선택Ctrl + K + F커서가 위치한, 선택된 줄 자동 줄맞춤Ctrl + K + C커서가 위치한, 선택된 줄 주석 처리Ctrl + K + U커서가 위치한, 선택된 줄 주석 제거Ctrl + M + L코드 전체 or 선택된 줄 확장, 축소Ctrl + M + M커서가 위치한 코드를 확장, 축소Shift + Delete커서가 위치한 코드 한 줄 삭제2. 디버깅단축키설명Ctrl + F5실행Ctrl + F10커서가 위치한 줄까지 실행F5디버깅, 중단점까지 실행F9커서가 위치한 줄에 중단점 생성, 삭제Ctrl + Shift + F9중단점 모두 삭제F10디버깅 모드에서 한 줄씩 ..