post-thumbnail

성능 최적화(SQL 쿼리 힌트, 쓰기지연)

1\. SQL 쿼리 힌트 사용JPA는 데이터베이스 SQL 힌트 기능을 미제공 => 하이버네이트 직접 사용하이버네이트 쿼리가 제공하는 addQueryHint() 메소드 사용2\. 트랜잭션을 지원하는 쓰기 지연SQL 실행시마다 네트워크 호출할 경우 많은 비용이 소모 =>

2022년 12월 3일
·
0개의 댓글
·
post-thumbnail

성능 최적화(배치 처리)

많은 데이터의 배치처리가 필요한 상황인 경우, 일반적인 방식으로 엔티티를 계속 조회하면 영속성 컨텍스트에 많은 엔티티가 쌓이면서 메모리 부족 오류가 발생따라서 이런 배치 처리는 적절한 단위로 영속성 컨텍스트 초기화가 필요1) JPA 등록 배치데이터 등록데이터 수정페이징

2022년 12월 3일
·
0개의 댓글
·
post-thumbnail

성능 최적화(읽기전용 쿼리)

1\. 성능 최적화의 필요성영속성 컨텍스트에서 엔티티가 관리될 경우장점: 1차 캐시, 변경감지 등단점: 메모리 사용 증가(변경감지를 위해 스냅샷 인스턴스를 보관)단순 조회성인 경우 읽기 전용으로 엔티티 조회하여 메모리 사용량 최적화2\. 쿼리 최적화 방법1) 스칼라 타

2022년 12월 3일
·
0개의 댓글
·
post-thumbnail

성능 최적화(N+1문제)

N+1 문제(1) 즉시로딩em.find() 메소드로 조회외부조인을 사용해서 한 번의 SQL 실행JPQL 사용시board 조회 => board 수만큼 즉시로딩이 걸려있는 boardReply 조회하기 위해 추가 SQL 실행

2022년 11월 29일
·
0개의 댓글
·

속성 값 설정

1\. 기본개념타임리프는 주로 HTML 태그에 th:\* 속성을 지정하는 방식으로 동작이 때, th:\* 로 속성이 적용됨녀 기존 속성은 대체(없는 경우 새로 생성)2\. 속성설정/추가실제 작성한 코드타임리프 렌더링된 코드3\. 적용예시

2022년 11월 17일
·
0개의 댓글
·

연산

비교연산: HTML 엔티티 사용 부분만 주의조건식: 자바의 조건식과 유사Elvis 연산자: 조건식의 편의 버전No-Operation: \_인 경우 타임리프가 실행되지 않는 것처럼 동작HTML의 내용 그대로 출력되므로 잘 활용하면 편리

2022년 11월 17일
·
0개의 댓글
·

리터럴

기본개념소스코드상에 고정된 값타임리프의 리터럴문자, 숫자, 불린, null사용방법무조건 문자 리터럴은 작은 따옴표로 감싸야 함단, 공백 없이 쭉 이어질 경우에는 하나의 의미있는 토큰으로 인지하므로 작은 따옴표 생략 가능룰: A-Z , a-z , 0-9 , \[] , .

2022년 11월 17일
·
0개의 댓글
·

유틸리티 객체 & 날짜

타임리프는 문자, 숫자, 날짜, URI 등을 편리하게 다루는 다양한 유틸리티 객체를 제공1\. 타임리프가 제공하는 유틸리티 객체 목록https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.htmlhttps&#x

2022년 11월 14일
·
0개의 댓글
·

기본 객체

타임리프가 제공하는 기본 객체${ - ${ - ${ - ${ - ${편의 객체 이러한 점을 해결하기 위해 편의 객체도 제공 \-HTTP 요청 파라미터 접근: param예) ${param.paramData} \-HTTP 세션 접근: session예) ${sess

2022년 11월 13일
·
0개의 댓글
·

변수 - SrpingEl

타임리프에서 변수 사용시에는 변수 표현식을 사용변수 표현식: ${...}그리고 이 변수 표현식에는 스프링EL이라는 스프링이 제공하는 표현식 사용 가능지역변수 선언th:with 사용하여 지역변수를 선언할 수 있음지역변수는 선언한 태그 안에서만 사용 가능

2022년 11월 13일
·
0개의 댓글
·
post-thumbnail

텍스트 - text, utext

1\. 개념타임리프의 가장 기본 기능인 텍스트 출력 기능타임리프는 기본적으로 HTML 태그의 속성에 기능을 정의하여 동작함HTML의 콘텐츠에 데이터를 출력할 경우, th:text 사용HTML 콘텐츠의 영역 안에 직접 데이터를 출력할 경우, \[...] 사용2\. Esc

2022년 11월 9일
·
0개의 댓글
·

기본 표현식

https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html간단한 표현:◦ 변수 표현식: ${...}◦ 선택 변수 표현식: \*{...}◦ 메시지 표현식: ◦ 링크 URL 표현식: @{...}◦ 조각 표

2022년 11월 9일
·
0개의 댓글
·

타임리프 소개

https://www.thymeleaf.org/doc/tutorials/3.0/thymeleafspring.html특징서버사이드 HTML 렌더링(SSR)네츄럴 템플릿스프링 통합 지원 참고 서버사이드 HTML 렌더링(SSR)이란?백엔드 서버에서 HTML을 동적으

2022년 11월 9일
·
0개의 댓글
·
post-thumbnail

Named Query

1\. 기본개념정적 쿼리미리 정의해서 이름을 부여해두고 사용하는 JPQL사용방법: 어노테이션, XML에 정의애플리케이션 로딩 시점에 초기화 후 재사용장점: 애플리케이션 로딩 시점에 쿼리 검증(문법 오류 발견 등)2\. 어노테이션에 정의하여 사용엔티티에 정의사용 소스3\

2022년 11월 2일
·
0개의 댓글
·

엔티티 직접 사용

1\. 엔티티 직접 사용 - 기본키 값JPQL에서 엔티티를 직접 사용할 경우 SQL에서 해당 엔티티의 PK를 사용함실행쿼리(where절에서 PK를 사용)2\. 엔티티 직접 사용 - 기본키 값실행쿼리(where절에서 PK를 사용)

2022년 10월 31일
·
0개의 댓글
·
post-thumbnail

다형성 쿼리

엔티티 구조도 예시(다형적으로 구성)TYPE조회 대상을 특정 자식 개체로 한정예) Item 중 Book, Movie를 조회TREAT자바의 type casting과 유사하게 동작상속 구조에서 부모타입을 특정 자식타입으로 다룰 때 사용FROM, WHERE, SELECT(h

2022년 10월 31일
·
0개의 댓글
·

페치 조인의 한계

1\. 페치 조인의 한계📌 페치 조인 대상에는 별칭 사용 X📌 둘 이상의 컬렉션은 페치 조인 X📌 컬렉션을 페치 조인할 경우 페이징 API 사용 X => hibernate는 경고 로그 & 메모리에서 페이징일대다의 경우 '다'에 맞춰서 데이터 뻥튀기가 발생하기 때

2022년 10월 31일
·
0개의 댓글
·
post-thumbnail

페치 조인

1\. 기본개념SQL의 조인 종류가 XJPQL에서 성능 최적화를 위해 제공하는 전용 기능연관된 엔티티/컬렉션을 SQL 한 방에 함께 조회하도록 함명령어 'join fetch' 직접 사용LEFT/INNER JOIN FETCH + 조인경로지연로딩이 걸려있더라도 페치조인이

2022년 10월 30일
·
0개의 댓글
·

경로표현식

1\. 기본개념.을 찍어 객체 그래프를 탐색하는 것용어 정리상태필드: 단순히 값을 저장하기 위한 필드연관필드: 연관관계를 위한 필드단일값: @ManyToOne, @OneToOne, 대상이 엔티티컬렉션: @OneToMany, @ManyToMany, 대상이 컬렉션2\. 특

2022년 10월 30일
·
0개의 댓글
·

타입 표현, 조건식

타입 표현 케이스문자: ‘HELLO’, ‘She’’s’숫자: 10L(Long), 10D(Double), 10F(Float)Boolean: TRUE, FALSEENUM: jpabook.MemberType.Admin (패키지명 포함)엔티티 타입: TYPE(m) = Memb

2022년 10월 27일
·
0개의 댓글
·