본문 바로가기

Backend/Spring

(39)
JPA @ManyToOne Join (Only JpaRepository) JPA에서 @ManyToOne 어노테이션으로 조인한 Entity를 Join으로 조회하려고 해요. Inner Join과 Left Outer Join 모두 다뤄보겠습니다. JpaRepository를 이용할거구요. Native Query는 사용하지 않을거에요. 작업 환경은 Spring Boot 2.1.9 + JDK 11 버전입니다. 1. BoardEntity @Entity @Table(name = "board") @Getter @Setter public class BoardEntity implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.IDENTI..
Spring Boot Interceptor 적용 스프링에서 공통적으로 처리할 로직을 구현하고 싶을 때가 있어요. 대표적으로 Java Filter, Spring Interceptor, Spring AOP를 활용할 수 있는데요. 이 글에선 Interceptor를 활용하여 특정 URI들의 요청을 가로채서 역할을 수행할 수 있도록 구현해볼거에요. Interceptor는 Spring Container 영역이며 Servlet 단위에서 실행되요. 인증/권한 처리, 로직 시간 계산, 로깅 등을 공통적으로 처리하고 싶을 때 사용해요. AuthInterceptor 이름만 Auth로 써봤어요. 실제로는 로그만 찍을겁니다. AuthInterceptor 클래스에 HandlerInterceptor 인터페이스를 구현할거에요. 스프링에서 다해줘요. 우리는 비즈니스 로직만 구현하면..
Spring Boot Session MySQL 연동, 저장 이미 구현한 Spring Session의 데이터를 MySQL에 저장하는 방법에 대해서 알아볼거에요. 예제 소스가 필요하신 분은 아래 글을 참고해주세요. https://gofnrk.tistory.com/42 Spring Boot Session 사용하기 (Bean Scope) Spring Boot에서 세션을 사용하는 방법에 대해서 알아볼게요. Bean Scope를 활용하여 session 데이터를 편리하게 관리할 수 있는 방법을 알려드릴거에요. 굉장히! 간단합니다. 컴포넌트 하나만 추가하면 되요. Use.. gofnrk.tistory.com build.gradle dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-j..
Spring Boot Session MongoDB 연동, 저장 이미 구현한 Spring Session의 데이터를 MongoDB에 저장하는 방법에 대해서 알아볼거에요. 예제 소스가 필요하신 분은 아래 글을 참고해주세요. https://gofnrk.tistory.com/42 Spring Boot Session 사용하기 (Bean Scope) Spring Boot에서 세션을 사용하는 방법에 대해서 알아볼게요. Bean Scope를 활용하여 session 데이터를 편리하게 관리할 수 있는 방법을 알려드릴거에요. 굉장히! 간단합니다. 컴포넌트 하나만 추가하면 되요. Use.. gofnrk.tistory.com build.gradle dependencies { implementation 'org.springframework.boot:spring-boot-starter-data..
Spring Boot Session Redis 연동, 저장 이미 구현한 Spring Session의 데이터를 Redis에 저장하는 방법에 대해서 알아볼거에요. 예제 소스가 필요하신 분은 아래 글을 참고해주세요. https://gofnrk.tistory.com/42 Spring Boot Session 사용하기 (Bean Scope) Spring Boot에서 세션을 사용하는 방법에 대해서 알아볼게요. Bean Scope를 활용하여 session 데이터를 편리하게 관리할 수 있는 방법을 알려드릴거에요. 굉장히! 간단합니다. 컴포넌트 하나만 추가하면 되요. Use.. gofnrk.tistory.com build.gradle dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-r..
Spring Boot Session 사용하기 (Bean Scope) Spring Boot에서 세션을 사용하는 방법에 대해서 알아볼게요. Bean Scope를 활용하여 session 데이터를 편리하게 관리할 수 있는 방법을 알려드릴거에요. 굉장히! 간단합니다. 컴포넌트 하나만 추가하면 되요. pom.xml org.springframework.session spring-session-core build.gradle dependencies { implementation 'org.springframework.session:spring-session-core' } UserInfo 세션에 저장할 데이터 변수를 선언해줄거에요. 예제니깐 아주 간단하게 사용자의 아이디와 이름만 저장할게요. SCOP_SESSION : 객체가 한 세션에서 생명주기를 갖도록 Bean Scope를 sessio..
Spring Boot 재시작 없이 반영 (DevTools) 클래스 파일을 수정하고 테스트하려면 서버를 수동으로 재시작해주어야 하는 번거로움이 있어요. 사실, 효율적으로 테스트를 하기 위해서는 Junit과 같은 테스트 프레임워크를 사용하는 것이 가장 좋습니다만, 그렇지 않은 상황도 존재할 수 있죠. 그런 경우에 시간을 절약하기 위해 클래스 파일이 수정되었을 때 자동으로 리로드시키는 기능을 추가해볼게요. 사실은 재시작 없이가 아니라 자동 리로드라고 보셔야 하구요. Spring Boot 버전은 2.1.8에서 진행했습니다. Gradle build.gradle에 아래 코드 추가하고, Refresh Gradle Project configurations { developmentOnly runtimeClasspath { extendsFrom developmentOnly } }..
Spring Boot MongoDB 연동 스프링 부트에서 몽고DB를 연동하는 방법에 대해서 알아보려고 해요. 연동은 생각보다 굉장히 쉬워요. 스프링에서 JPA를 사용해보신 분들은 API 사용에 있어서 만큼은 따로 공부할 것도 거의 없을거에요. pom.xml org.springframework.boot spring-boot-starter-data-mongodb build.gradle implementation 'org.springframework.boot:spring-boot-starter-data-mongodb' application.yml 몽고 DB의 접속 정보를 적어주세요. 여기까지하면 몽고 DB 연동은 끝났습니다. spring: data: mongodb: host: localhost port: 27017 database: tutorial ..