Java/Spring Framework 4

[Spring/MyBatis] 페이징 처리, Pagination 구현하기

API를 개발할 때, 페이징처리는 서버의 부하를 위해 꼭 필요한 기능이다.Spring에서 제공하는 Pageable을 활용하여 페이징 처리(페이지네이션)를 하는 방법에 대해 알아보자. 1) Pagination(페이지네이션): 데이터를 정렬기준, 페이지 크기, 몇 번째 페이지인지를   토대로 정보를 전달해주는 것1-1) Pageable Interface: Spring에서 페이징 처리를 하기 위해서 사용하는 인터페이스이다.객체를 생성할 때는 구현체인 PageRequest 를 사용하는데,PageRequest 생성자를 보면 page, size, sort 가 있다.[ PageRequset.class ]API를 호출할 때, 몇 번째 페이지인지에 대한 정보(page)와한 페이지당 보여줄 데이터의 개수(size)를 함께..

[Spring Data JPA] JPA 기본 Annotation 정리

Spring JPA에서 객체를 entity로 사용하기 위해 @Entity 어노테이션을 사용해야한다.이처럼 JPA를 사용할 때 필요한 Annotation에 대해 몇 가지 알아보자.  아래의 Member Entity를 예시로 들어보자.1) @Entity: entity 어노테이션은 DB 테이블과 1:1로 매칭되는 객체로, entity 객체의 인스턴스 하나가 테이블에서 하나의 레코드 값을 의미한다.따라서 각 레코드를 구분하기 위한 유일한 키값을 가지는데, 이것이 테이블의 PK(Primary Key)와 같은 의미를 가지며, @Id 어노테이션으로 정의한다. 2) @GeneratedValue: PK 자동 생성 전략을 설정하는 어노테이션으로, 4가지가 있다.@GeneratedValue(strategy = {기본키값 생..

[Spring Data JPA] JPQL 사용법

프로젝트를 진행하던 중, 쿼리를 어떻게 작성할지에 대하여 고민하다가 JPA를 사용하게 되었다.JPA는 간결하게 쿼리를 메소드로 호출할 수 있다는 장점이 있는데, 쿼리 작성에 조금 제한적이라는 어려움이 있었다.이를 보완하기 위해 찾아보다가 JPQL라는 것을 접하였고, 이를 활용하여 쿼리를 작성하였다.JPQL가 무엇인지, 사용법에 대해 간단히 알아보자. 1) JPQL란?: JPA는 SQL을 추상화한 JPQL(Java Persistence Query Language)이라는 객체 지향 쿼리 언어를 제공한다.테이블을 대상으로 쿼리를 작성하는 것이 아닌, 엔티티 객체를 대상으로 쿼리를 작성한다.따라서 엔티티를 각각 생성해준 뒤 쿼리를 작성할 수 있다.JPQL은 SQL과 문법이 유사하며, SELECT, FROM, W..

[Java/Spring] MyBatis typeAlias 사용법

Java로 서버개발을 할 때 MyBatis를 자주 사용하게 될 것이다.이 때 MyBatis의 typeAlias 라는 것을 사용할 수가 있는데,Alias는 "별칭" 이라는 의미로 사용자가 직접 정의하는 이름(별명)을 붙여주는 것이다.MyBatis를 사용하여 데이터를 처리할 때, 일반적으로 결과 데이터와 매핑되는 Java 클래스를 생성하게 된다.이 때 해당 Java 클래스의 Alias를 지정하여 사용하는 방법에 대해 알아보자. 1) typeAlias란: MyBatis를 이용하여 DB의 데이터를 받아 자바의 VO 객체에 담거나,반대로 자바 VO 객체의 데이터를 DB에 전송하는 과정에서보다 간결하게 코드를 작성하기 위해 사용하는 것이다.클래스의 경로를 별칭을 사용하여 정의해두고,이 별칭을 클래스 경로 대신 활용..