[Spring] JWT Refresh Token Rotaion, Token Family이란? (1/2)
·
🍀 Spring Boot
들어가며현재는 프로젝트에 RefreshToken을 단순히 1주로 유효기간을 설정해둔 상황입니다. 그러면 사용자는 일주일 후엔 반드시 로그인을 해주어야 하는 불편한 상황이 되어버리는데요. 그렇기 때문에 이를 개선함과 동시에 RefreshToken이 탈취될 수도 있는 상황을 보완할 수 있도록 RefreshToken Rotation 방식을 도입하게 되었습니다. 해당 포스팅에선 RefreshToken Rotation에 대해 정리하여 소개합니다.❏ 기존 방식을 다시 살펴보자사용자의 로그인 시도Server에서 AccessToken_1, RefreshToken_1 발급사용자가 만료된 AccessToken_1을 가지고 요청AccessToken_1이 유효하지 않기에 Access DeniedRefreshToken_1을 가..
[Spring] JPA의 ddl-auto 옵션에 대해 알아보자
·
🍀 Spring Boot
들어가며스프링 부트 프로젝트를 시작할 때, application.yml 파일을 생성하여 설정하다보면, 항상 맞이하게 되는 spring.jpa.hibernate.ddl-auto 옵션이 있습니다. 처음에는 create와 update로만 설정하곤 했지만, 더 다양한 옵션이 존재합니다. 해당 포스팅에서는 JPA의 ddl-auto의 각 옵션들은 어떻게 동작하는지와 어떤 환경에서 사용해야 하는걸까에 대해 정리해보았습니다.❏ ddl-auto란?ddl-auto란 JPA 구현체인 Hibernate가 엔티티 클래스 기반으로 데이터베이스 스키마를 어떻게 생성하거나 검증할지 결정하는 설정값입니다.spring: jpa: hibernate: ddl-auto: updateapplication.yml 파일에 위처럼 ..
'authorizeRequests()' is deprecated 해결 || Spring Security Configuration
·
🍀 Spring Boot
기존에 사용해오던 방식대로 SecurityConfig를 만들어서 403 Error를 해결하고자 하였는데, authorizeRequests()가 deprecated 되었다고 한다. WebSecurityConfigurerAdapter도 deprecate되어 빈을 등록하는 방식으로 바꿔주었었는데, 이것도 바꿔보자!아래와 같이 변경하여 사용할 수 있다.http .authorizeRequests() .requestMatchers("/admin/**").hasRole("ADMIN") .requestMatchers("/**").hasRole("USER") .and().formLogin(); return http.build();antMatchers를 requestMatchers로 변경. authorizeRequest는..
[Spring] 의존성 주입(DI, Dependency Injection) (생성자 주입을 사용해야 하는 이유)
·
🍀 Spring Boot
📌 DI(Dependency Injection)DI(Dependency Injection)이란, 객체를 직접 생성하는 것이 아니라 외부에서 생성 후 주입시켜주는 방식이다. 즉, 의존 관계를 외부에서 결정하고 주입하는 것을 의미한다. interface Book { // 더 다양한 Book을 의존받을 수 있도록 인터페이스로 추상화 ... } class ScienceBook implements Book { ... } class EnglishBook implements Book { ... } public class Library { private Book book; public Library() { this.book = new ScienceBoo..
[Spring] JPA N + 1 문제 발생 원인 및 해결 방안
·
🍀 Spring Boot
📌 JPA N + 1 문제란?조회된 데이터 개수만큼, 연관 관계의 조회 쿼리가 추가로 발생하는 문제를 의미한다. EX) 카테고리와 게시글@Entity @NoArgsConstructor @Setter @Getter public class Board { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String title; private String content; @ManyToOne private Category category; public Board(String title, String content, Category category) { this.title = title; this.content = co..
[Spring] 스프링 입문 - 7. AOP
·
🍀 Spring Boot
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 [무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다., 스프링 학습 첫 길잡이! 개발 공부의 길을 잃지 않도록 도와드립니다. 📣 확인해주세www.inflearn.com 인프런 김영한님 강좌인 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 내용을 학습하며 다룬 글입니다. 문제(저작권, 오류 및 잘못된 부분 등)가 있다면 알려주세요!! PREV) 스프링 입문 - 6. 스프링 DB 접근 기술 [Spring] 스프링 입문 - 6. 스프링 DB 접근 기술스프링 입문 - ..
[Spring] 스프링 입문 - 6. 스프링 DB 접근 기술
·
🍀 Spring Boot
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 [무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다., 스프링 학습 첫 길잡이! 개발 공부의 길을 잃지 않도록 도와드립니다. 📣 확인해주세www.inflearn.com 인프런 김영한님 강좌인 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 내용을 학습하며 다룬 글입니다. 문제(저작권, 오류 및 잘못된 부분 등)가 있다면 알려주세요!! PREV)스프링 입문 - 5. 회원 관리 예제 - 웹 MVC 개발 [Spring] 스프링 입문 - 5. 회원 관리 예제 - 웹 MV..
[Spring] 스프링 입문 - 5. 회원 관리 예제 - 웹 MVC 개발
·
🍀 Spring Boot
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 [무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다., 스프링 학습 첫 길잡이! 개발 공부의 길을 잃지 않도록 도와드립니다. 📣 확인해주세www.inflearn.com 인프런 김영한님 강좌인 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 내용을 학습하며 다룬 글입니다. 문제(저작권, 오류 및 잘못된 부분 등)가 있다면 알려주세요!! PREV)스프링 입문 - 4. 스프링 빈과 의존관계 [Spring] 스프링 입문 - 4. 스프링 빈과 의존관계스프링 입문 - 코드로..
[Spring] 스프링 입문 - 4. 스프링 빈과 의존관계
·
🍀 Spring Boot
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 [무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다., 스프링 학습 첫 길잡이! 개발 공부의 길을 잃지 않도록 도와드립니다. 📣 확인해주세www.inflearn.com 인프런 김영한님 강좌인 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 내용을 학습하며 다룬 글입니다. 문제(저작권, 오류 및 잘못된 부분 등)가 있다면 알려주세요!! PREV)스프링 입문 - 3. 회원 관리 예제 - 백엔드 개발 [Spring] 스프링 입문 - 3. 회원 관리 예제 - 백엔드 개발..
[Spring] 스프링 입문 - 3. 회원 관리 예제 - 백엔드 개발
·
🍀 Spring Boot
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 [무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다., 스프링 학습 첫 길잡이! 개발 공부의 길을 잃지 않도록 도와드립니다. 📣 확인해주세www.inflearn.com 인프런 김영한님 강좌인 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 내용을 학습하며 다룬 글입니다. 문제(저작권, 오류 및 잘못된 부분 등)가 있다면 알려주세요!! PREV)스프링 입문 - 2. 스프링 웹 개발 기초 [Spring] 스프링 입문 - 2. 스프링 웹 개발 기초스프링 입문 - 코드로..