spring 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] Spring Security + Swagger 적용 401 에러 해결

Swagger는 REST API를 설계, 빌드, 문서화 및 사용하는 데 도움이되는 OpenAPI 사양을 중심으로 구축 된 오픈 소스 도구 세트이다.이번에 신규 서비스를 개발하게 되면서, API를 간편하게 문서화하기 위해 프로젝트 Gradle에 Swagger를 적용하였다.Swagger 적용으로 개발할 때도 Postman을 별도로 사용하지 않고 바로 테스트가 가능하여 굉장히 편리하다는 생각이 들었다.하지만 이후에 인증 기능을 추가하게 되면서 Swagger 페이지가 갑자기 열리지 않는 상황이 발생하였다.이 문제를 해결하는 과정에 대해서 알아보자. 개발환경언어: Java버전: Java 17프레임워크: Spring Boot 3IDE: IntelliJ빌드: Gradle 1) 문제파악Swagger를 잘 사용하던 중에..

[Java/Spring] MyBatis typeAlias 사용법

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