본문 바로가기

Spring Boot15

[Spring Security][v5.7+] 설정 정리 왜 v5.7 버전 이상에서는 새로운 설정을 진행하는건가요? WebSecurityConfigurerAdapter를 상속받아 사용하게 되는 spring security 설정에서 component를 bean으로 등록하는 방식으로 특정 class의 의존성을 줄이고 필요한 bean 등을 블럭의 형태와 같이 필요로한 클래스들을 제정의 하여 사용하기 위해 버전이 올라가면서 구성이 변경 되었습니다. WebSecurityConfigurerAdapter class를 사용하여도 현재까지는 크게 이슈는 없지만 향후 라이브러리 버전이 올라감에 따라 해당 버전의 리스크는 개발자가 떠앉는 상황을 피하기위해 정리해 보았습니다. @Configuration @ComponentScan @EnableWebSecurity @EnableGlo.. 2022. 10. 17.
[Spring][JPA] DTO로 조회 하기 프로젝트 구조 JPA DTO 사용하는 이유 JPA 사용시에 Table 구조가 변경된 경우나 변경을 하지 않고 두개 이상의 Table을 Join해야 하는 경우에 종종 사용합니다. entity를 조회하여 코드상에서 데이터 조합을 하지 않고 JPA 쿼리를 이용하여 좀 더 빠른 성능을 낼수 있습니다. // 테이블 예제1 @Getter @Setter @Entity @Table(name = "shopping_basket") @Builder @AllArgsConstructor @NoArgsConstructor public class ShoppingBasketEntity { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long basket_id; priva.. 2022. 10. 11.
[Spring][JPA] JPA란? Persistence Layer - 영속성 계층 Spring 에서 DAO 객체를 사용하여 Database와 커넥션 등을 유지하는 것을 이야기 합니다. Mybatis와 JPA에서의 가장 큰 차이점을 따지고 본다면 DAO interface를 만들지 않고 JpaRepository 를 상속 받아 사용하게 됩니다. 이렇게 되면 가장 큰 이점으로 xml등의 파일을 따로 관리 하지 않고 Repository 내에서 Query를 조합하여 좀 더 직관적이고 객체 관점의 쿼리등이 가능해 집니다. Query 방법 예약되어 있는 query를 메서드 형태로 바로 불러와 사용도 가능하고 @Query annotation을 사용하여 native query 혹은 DTO 객체를 만들수도 있습니다. // 1. 예약 Query findAll.. 2022. 9. 14.
[Spring boot] FilterRegistrationBean - url 패턴으로 Filter 설정 Rest api 서비스를 만들때에 우리가 외부/내부 서버들과 주고 받는 데이터의 유효성만 확인 되는 것이 첫번째일 것입니다. 하지만 해당 요청에 포함하는 파라미터들의 Encoding 정보를 수정하거나 헤더에 들어있는 정보들의 유효성 등을 Controller에 도달하기 전에 확인 한다면 우리가 중복될 수 있는 유효성 체크 등의 코드를 줄여 나갈 수 있습니다. FilterRegistrationBean @Component @Order(1) public class CustomFilter implements Filter { // Filter 메서드 오버라이드 @Override public void doFilter( ServletRequest request, ServletResponse response, Filte.. 2022. 8. 10.