JPA 4

[Spring] JPA - JPQL, QueryDSL, N+1 문제

JPQL - Table 이 아닌 Entity(객체) 기준으로 작성하는 쿼리를 JPQL이라고 하며 이를 사용할 수 있도록 EntityManger 또는 @Query 구현체를 통해 JPQL 쿼리를 사용할 수 있다. JQL : Entity 명으로 쿼리짤때 쓰이는 언어 (쓰이는 곳. JPQL, QueryDSL) SQL : Table 명으로 쿼리짤때 쓰이는 언어 (쓰이는 곳. JDBC, SQL Mapper) EntityManager.createQuery() - 쿼리 문자열과 Entity 를 직접 넣어서 쿼리를 작성한다. - setParameter 와 같이 key, value 문자열을 통해서 쿼리 파라미터를 매핑할 수 있다. 코드에 문자열이 들어가는게 안 좋은 이유 - 문자열은 오타가 발생할 여지가 많다. - 개발할..

[Spring] JPA - SpringData, JpaRepository, QueryDSL

SpringData 기능 목록 - 강력한 리포지토리 및 사용자 지정 객체 매핑 추상화 - 리포지토리 메서드 이름에서 동적 쿼리 파생 - 기본 속성을 제공하는 구현 도메인 기본 클래스 - 명료한 추적기능 지원(생성일시, 마지막 변경일시, 생성자, 마지막 변경자) - 사용자 지정 리포지토리 코드 통합 가능성 - JavaConfig 및 사용자 지정 XML 네임스페이스를 통한 간편한 Spring 통합 - Spring MVC 컨트롤러와의 고급 통합 - 교차 스토어 지속성에 대한 실험적 지원 SpringData Jpa와 JpaRepository의 원리 - Repository는 MarkerInterface로 특별한 기능은 없다. - Repository ~ JpaRepository 까지는 @NotRepositoryBe..

[Spring] JPA - ORM의 배경, Raw JPA 기능

ORM의 탄생 배경 탄생 배경을 알아야 하는 이유? - 내가 맡아야 할 프로젝트가 JPA가 적용이 안된 프로젝트일 수도 있다. - ORM은 갑자기 나타난 게 아니라 점차 발전해 온 DB 연동 기술이론이다. JDBC Java Database Connectivity - Java 앱과 DB를 연결시켜주기 위해 만들어진 기술이다. - JPA도 이 기술을 사용하여 구현되어 있다. JDBC Driver Manager - Connection (연결)을 생성하여 쿼리를 요청할 수 있는 상태를 만든다. - Statement (상태)를 생성하여 쿼리를 요청하게 해 준다. - ResultSet (결과 셋)을 생성하여 쿼리 결과를 받아올 수 있게 해 준다. - 사용 후에는 꼭 각각 close()를 호출해서 자원 해제를 시켜줘..

[Spring] 스파르타코딩클럽 Spring공부(3) - 3 Layer Architecture, JPA

3 Layer Architecture - 한 개의 클래스에 너무 많은 양의 코드가 존재할때 이해하기가 어려울때 - 코드의 추가 혹은 변경 요청이 곗고 들어올때 - 문제가 발생했는데 해당 클래스를 구현한 개발자가 퇴사하여 유지보수가 어려울때 위와 같은 상황에서 문제를 해결하기 위해 서버 개발자들은 서버에서 처리과정이 대부분 비슷하다는 것을 깨닫고, 처리과정을 크게 Controller, Service, Repository 총 3개로 분리하였다. Controller - 클라이언트의 요청을 받는다. - 요청에 대한 로직 처리는 Service에게 전담한다. (Request 데이터가 있다면 함께 전달) - Service에서 처리 완료된 결과를 클라이언트에게 응답한다. Service - 사용자의 요구사항을 처리(비즈..

프로필사진

남건욱's 공부기록

반응형