Spring 37

Spring Cloud Gateway - API Gateway 맛보기

1. 앞서 알고가기 Spring Cloud Gateway 로 API Gateway 구축에 앞서 필요한 개념을 먼저 간단하게 정리해봤다. 1-1. API Gateway 란? 인증 / 모니터링 / 오케스트레이션 등과 같은 기능을 포함한 향상된 Reverse Proxy다. Netflix zuul, Amazon API Gateway, Spring Cloud Gateway 같은 것들이 잘 알려진 Api Gateway 구현체들이다. 1-2. Spring Cloud Gateway (이하 SCG) 란? Spring Reactvie 생태계에 구현된 API Gateway이다. Gateway Handler Mapping으로 들어오는 요청들을 적절한 대상으로 라우팅하는 간단하고 효과적인 방법을 제공한다. 그리고 Spring ..

Spring 2020.10.19

Spring Jpa - Query DSL + Gradle 6 설정

최근 Spring boot + jpa 로 프로젝트 진행하다 jpa 인터페이스 네이밍 방식의 단점을 느끼고 Query DSL을 도입하면서 정리한 글 기본 제공 @Query와 인터페이스 메서드 네이밍 방식은 한계가 있고 가독성도 안좋음 // 쿼리가 길어질수록 더러워짐 @Query(value="UPDATE Work W SET W.workGroup = :workGroup WHERE W.workSeq = :workSeq", nativeQuery = false) // 네이밍이 길어질수록 더러워짐 Page findByWorkGroup_WorkGroupNmContainingAndWorkNmContaining(String workGroupNm, String workNm, Pageable pageable); 1. Grad..

Spring 2020.09.21

Spring Jpa - Paging api 처리하기

JPA를 이용해서 Paging API를 처리해보자. JpaRepository는 PagingAndSortingRepository를 상속받고 있으므로 CurdRepository보다 하위 클래스인 JpaRepository를 상속받아 구현하자. public interface WorkGroupRepository extends JpaRepository { Page findByWorkGroupNmContaining(String workGroupNm, Pageable pageable); } 예제 @RestController @RequestMapping("/workgroup") @RequiredArgsConstructor public class WorkGroupController { @GetMapping public P..

Spring 2020.09.18

Spring Data Jpa Auditing

Spring Data Jpa Auditing Audit: 회계 감사, 감사하다 테이블 설계시 항상 공통적으로 들어가는 생성일자, 수정일자 등의 컬럼에 대해 자동으로 값을 넣어주는 기능을 Spring-Data-Jpa에서 제공한다. @EnableJpaAuditing 활성화 @EnableJpaAuditing @Configuration public class DatabaseConfig { @Bean public DataSource dataSource() { ... @EnableJpaAuditing 어노테이션을 활성화 시켜줘야 한다. 위치는 Config 클래스나 Application.class와 같은 root 클래스에 추가한다. Entity 설정 @Entity @Table(name = "BOARD") @IdCla..

Spring 2020.07.29

ApplicationContext와 Singleton

스프링은 객체 컨테이너 스프링의 핵심 기능은 객체를 생성하고 초기화 하는 것이다. BeanFactory 인터페이스: 객체 생성과 검색에 대한 기능을 정의한다. ApplicationContext 인터페이스: 메시지, 프로필/환경 변수 등을 처리할 수 있는 기능을 추가로 정의한다. AnnotationConfigApplicationContext: ApplicationContext의 구현체, 자바 어노테이션을 이용하여 클래스로부터 객체 설정 정보를 가져온다. GenericXmlApplicationContext: ApplicationContext의 구현체,XML로부터 객체 설정 정보를 가져온다. GenericGroovyApplicationContext: ApplicationContext의 구현체,그루비 코드를 이..

Spring 2020.07.29

Spring Security + Rest

Spring Security는 기본적으로 인증 과정에서의 결과를 redirect로 처리합니다. 인증 성공 시 success page 인증 실패 시 failure page 비인가 접근 시 authentication page 크게 세가지의 행동에 대한 처리를 page redirect가 아닌 response를 반환하게 만들면 됩니다. 이러한 컨셉을 잡고 구현해 나가봅시다. 모든 소스는 https://github.com/lteawoo/RestSpringSecurity에서 확인 하실 수 있습니다. Spring Security 기본 인증의 경우 UsernamePasswordAuthenticationFilter에서 formlogin 요청을 필터링하여 처리합니다. 이 클래스는 AbstractAuthenticationP..

Spring 2020.02.19

STS4 + Spring Boot + Gradle 기본 세팅하기

환경 구성 개발 툴 : STS 4 -> Spring boot 개발을 위한 최적화 툴이라고 생각함. Intellij CE(무료버전)으로 개발하다 Web과 Spring 그리고 JSP에 대한 기능 미비로 대체함 빌드도구 : Gradle -> Maven Repository도 지원하면서 빠름, Maven에 비해 간결한 설정 프레임워크 : Spring Boot -> Spring 레거시보다 빠른 프로젝트 시작 가능이 최대의 장점이라고 생각한다. 그리고 확장성 부분도 부트가 나온지 꽤 됐기 때문에.. 레거시보단 못하겠지만 그래도 훌륭하지 않을까. 귀찮음을 해결한 대가라고 생각하자. Spring Boot makes it easy to create stand-alone, production-grade Spring base..

Spring 2019.12.23