JAVA/Spring

JAVA/Spring

[QueryDSL] QueryDSL이란? + 간단한 실습

1. QueryDSL? # Spring Data JPA의 한계 자바 어플리케이션에서 DB에 접근할 수 있게 해주는 JDBC. JDBC를 사용해 JPA를 구현한 ORM 프레임워크인 Hibernate. 그것을 한 층 더 편리하게 쓰게 해주는 Spring Data JPA. 하나하나 SQL문을 작성할 필요 없이 일정한 규악에 따른 derivced query만 작성하면 알아서 원하는 DB 접근 쿼리문을 작성해주는데다가, object mapping까지 시켜주는 유용한 라이브러리. .. 이지만 역시 한계는 존재한다. 1) 끝도 없이 길어지는 Derived Query 주인 - 애완동물 연관 관계에서, 특정 주인의 애완동물 중 특정 나이 이상의 애완동물을 최신 순으로 찾는 derived query이다. public Li..

JAVA/Spring

[Spring Boot] 404 Not Found Exception 처리

404 Not Found Error 웹서버에 존재하지 않는 자원을 요청했을 때, 즉 Mapping이 정의되지 않은 path로 이동했을 때 스프링 웹 서버는 다음과 같은 Not Found error 객체를 응답으로 내보낸다. { "timestamp": "yyyy-MM-ddTHH:mm:14.441+00:00", "status": 404, "error": "Not Found", "message": "No message available", "path": "/{NOT_SUPPORTED_URI}" } 스프링 mvc 구조에서 별도의 viewName 설정이 없다면 위 응답이 ModelAndView 객체의 attribute값으로 들어가게 되고, "error.html"파일이 viewName이 되어 response가 만들..

JAVA/Spring

[JPA] N+1 문제 원인, 해결방법

Spring Boot JPA 프로젝트 진행 과정 중, 생각 없이 연관관계를 쓰다가 테스트 과정에서 필요 이상의 쿼리문이 찍히는 것을 보고 원인을 추적하다 알게 된 개념. 사실 어느정도 알고 있는 개념이었는데 실제로 맞딱뜨리니 이제서야 똑바로 정리하고 해결방법을 적용할 계기가 생겼다. 역시 개발 관련은 일단 만들고 봐야 1. N + 1 문제란? 연관 관계가 존재하는 엔티티를 조회(1)했을 때 조회된 데이터의 갯수(N)만큼 조회 쿼리가 추가로 나가는 현상. 추가 쿼리는 의도하지 않은 사항이고, 조회 결과로 나온 데이터의 갯수만큼 추가 쿼리가 발생하기 때문에 프로그램의 성능에 큰 문제를 일으킬 수 있다. 게시판 프로젝트에서 디비에 존재하는 게시글이 10만개라면 10만 개의 추가 쿼리가 나갈 수도 있는 것이다...

JAVA/Spring

JPA? JDBC? Hibernate? Spring Data JPA?

JDBC, Spring JDBC, JPA, Hibernate, Spring Data JPA... 자바를 이용하여 데이터 관련 처리를 하거나 스프링 프로젝트에서 DB에 접근하게 되면 빼놓을 수 없는 단어들이다. 프로젝트 구현에만 집중하느라 JPA Repository의 derived query같은 편리한 기능들만 따와 쓰기 바빴고 정확한 원리나 그 근간에 있는 기술의 역사 등은 대충 넘겼다. 그동안 프로젝트를 진행하면서 '대충 이런 것들이겠지' 하고 쓰던게 마음에 걸려 한번 정리하는 시간을 가져보겠다! 1. JPA : ORM 가이드 Java Persistence API로, JAVA 언어 자체에서 제공하는 ORM(Object Relational Mapping) 기술에 대한 표준 명세이다. ORM 프레임워크를 ..

김부추
'JAVA/Spring' 카테고리의 글 목록