호이스팅이란? 모든 변수 선언은 호이스트된다. 호이스트 란 변수의 정의가 그 범위에 따라 선언(declaration)/초기화(initialization)/할당 분리되는 것을 의미한다. 쉽게 말하면 변수가 함수내에서 정의되었을 경우 선언이 함수의 최상위로, 함수 바깥에서 정의되었을 경우는 전역 컨텍스트의 최상위로 변경됩니다. const hoisting...
[Spring] P6Spy
출처 https://zgundam.tistory.com/199 https://github.com/TerryChang/p6spytest https://backtony.github.io/spring/2021-08-13-spring-log-1/
[Spring] Filter와 Interceptor 차이
필터 정확한 명칭은 서블릿 필터(스프링에서 제공하는 기능이 아님) 필터를 적용할 경우 필터가 호출된 다음에 서블릿이 호출 따라서 모든 고객의 요청 로그를 남기는 요구사항이 있을 경우 필터를 사용 필터 체인 필터는 체인으로 구성되며, 중간에 필터를 자유롭게 추가 및 제거할 수 있음 예를 들어 로그를 남기는 필터를 먼저 적용한 후...
[JPA] JPA 정리
페치 조인의 한계 1) 페치 조인 대상에는 별칭(alias)을 줄 수 없다. String query = "select t from Team t join fetch t.members as m" //as m 이라는 별칭(alias)는 fetch join에서 사용할 수 없다. 하이버네이트는 가능하지만, 가급적 사용을 하지 않는게 좋다 ex:...
[Swagger] springdoc vs springfox
출처 https://junho85.pe.kr/1583?category=177748
[JPA] default_batch_fetch_size
JPA를 사용할 때 N+1 문제를 해결하기 위해 default_batch_fetch_size를 설정하여 in절로 여러 개를 한 번에 가져올 수 있도록 한다. 하지만 실제 default_batch_fetch_size를 100으로 설정하고 30개의 데이터를 가져오려 하니 25개를 담은 in절 쿼리 1번 + 5개를 담은 in절 쿼리 한 번이 호출되었다. ...
[Java] 일급 컬렉션
일급 컬렉셕이란? 단순하게 컬렉션을 Wrapping 하여 클래스로 묶어내는 것을 말한다. 예를 들어, 다음과 같은 코드를 Map<String, String> map = new HashMap<>(); map.put("1", "A"); map.put("2", "B"); map.put("3", "C"); 아래와 같이 Wrappi...
[자바 ORM 표준 JPA 프로그래밍-기본편] 벌크 연산
본 포스팅은 인프러의 JPA 기본편을 수강하고 정리하는 내용입니다. JPQL - 벌크 연산 일반적인 여러 객체에 대한 업데이트나 delete문이라 생각하면 된다. 재고가 10개 미만인 모든 상품의 가격을 10% 상승하려면? JPA 변경 감지 기능으로 실행하려면 너무 많은 SQL 실행 1)재고가 10개 미만인 상품을 ...
[자바 ORM 표준 JPA 프로그래밍-기본편] Named 쿼리
본 포스팅은 인프러의 JPA 기본편을 수강하고 정리하는 내용입니다. JPQL - Named 쿼리 (정적 쿼리) 미리 정의해서 이름을 부여해두고 사용하는 JPQL 정적 쿼리 어노테이션, XML에 정의 애플리케이션 로딩 시점에 초기화 후 재사용 진짜 네임드 쿼리의 장점 애플리케이션 로딩 시점에 JPA가 ...
[자바 ORM 표준 JPA 프로그래밍-기본편] 엔티티 직접 사용
본 포스팅은 인프러의 JPA 기본편을 수강하고 정리하는 내용입니다. 엔티티 직접 사용 - 기본 키 값 JPQL에서 엔티티를 직접 사용하면 SQL에서 해당 엔티티의 기본 키 값을 사용 [JPQL] select count(m.id) from Member m //엔티티의 아이디를 사용 select count(m) from Member m ...