Backend/Spring

·Backend/Spring
RestTemplate RestTemplate 은 스프링3.0 이상 부터 지원하는 HTTP 통신, 그 중 RestAPI 를 기준으로 요청을 쉽게 할 수 있게 도와주는 동기방식의 Rest 클라이언트. Hateoas 의 하이퍼 미디어 링크를 삽입할 수 있게 도와주는 Traverson과 함께 사용된다. Spring 5.0 부터는 비동기 방식도 지원하는 WebClient를 사용한다. (서비스 ⇒ other 서비스) 로 필요한 데이터를 받아올 때 사용 하며 예를들어, 받아온 JSON 타입의 데이터를 Jackson2 MessageConverter을 통해 객체에 바인딩을 하여 우리가 쓸 수 있는 Object 형태로 받아 온다. RestTemplate 동작원리 RestTemplate ⇒ HttpMessageConver..
·Backend/Spring
Hateoas 기존의 API 응답 방법에서 만약 특정 URL에 대한 요청을 했는데, 해당 URL이 바뀌었다면 404 NotFound를 반환하기 때문에 이를 동적으로 Hypermedia 링크를 삽입된 응답을 반환하기 위한 메커니즘이 Hateoas 이다. Hateoas(Hypermedia As The Engine Of Application State)는 Hypermedia를 Application의 상태를 관리하기 위해 도입된 개념. 즉 , 클라이언트는 서버와 동적으로 상호작용이 가능하도록 해야함. ⇒ 요청에 필요한 URI를 응답에 포함시켜 반환 RestAPI 구현레벨 RestAPI에도 구현 레벨이 있는데 Hateoas 는 마지막 Level3 의 단계이다. [참고링크] 의존성 추가하기 implementatio..
·Backend/Spring
HTTP 통신과 관련된 Annotation들 @RequestMapping (요청을 받을 때) 특정 URL에 요청을 보내면 Controller에서 이를 처리하는데, URL과 HTTP Method에 따라 맞는 요청을 받아 처리한다. @Controller @Slf4j @SessionAttributes("order") @RequiredArgsConstructor @RequestMapping("/orders") public class OrderController { @GetMapping("/current") // @RequestMapping(value = "/current",method = RequestMethod.GET) public String orderForm(@AuthenticationPrincipal U..
·Backend/Spring
YML YML 은 ‘사람이 쉽게 읽을 수 있는’ 데이터 직렬화 양식이고 원래 Yet Another Markup Language 였는데 핵심은 마크업이 아닌 데이터임을 보여주기 위해 YAML Ain't Markup Language 라는 재귀적요소를 더한 이름으로 바꾸었음. YML의 장점 가독성 자료형과의 결합 주석 사용가능 1. 가독성 xml의 경우엔 태그기반 markup으로 속성을 표시해 주는데 조금만 복잡해도 사람이 읽기가 힘들다. json 의 경우도 마찬가지로 어디까지가 Object이고 Array 인지 보기가 힘듬. 그에 반해 yml은 계층구조로 표현하여 가독성이 좋으며 .properties 에 비해 불필요한 중복제거도 가능. 2. 자료형과의 결합 YML의 기본 자료형 스칼라 : number, Str..
·Backend/Spring
Spring Secutiry 구성하기 WebSecurityConfigurerAdapter SpringSecutiry 의존성을 추가하게 되면 기본적으로 WebSecurityConfigurerAdapter 클래스가 실행. WebSecurityConfigurerAdapter 는 SpringSecutiry 의 웹(http) 보안 기능 초기화 및 설정들을 당담하는 내용이 담겨있고 인증/인가 관련 설정을 제공. configure() 메서드를 Override 하여 설정정보를 구성할 수 있다. @Configuration @EnableWebSecurity @RequiredArgsConstructor public class SecurityConfig extends WebSecurityConfigurerAdapter { p..
·Backend/Spring
스프링시큐리티를 공부하던 도중 책에서 이런 코드가 있었다. SecutiryConfig 구성 클래스 안에서 configure를 orverride 하는 코드이다. .hasRole() 을 호출할 때 ROLE_USER 로 설정하는것. 그리고 이는 밑의 코드와 동일하게 돌아간다고 하지만 막상 돌려보면 ? ?????? 오류를 찾아봤더니 친절하게 설명을 해준다. ROLE_ 은 자동생성해주니깐 prefix의 ROLE_ 을 쓰지말라고 .. hasRole()의 내부는 이렇게 생겨먹었다. 저 rolePrefix는 자동으로 ROLE_ 이라는 prefix를 붙여주기 때문에 ROLE_ 이라는 prefix를 제외한 권한을 적으라는 것이다. 여기서 ROLE_ 이라는 prefix를 자동으로 붙여준다. 별도의 설정을 하지 않는 이상 따..
·Backend/Spring
폼 입력 유효성 검사하기 Validation 개요 사용자가 만약 특정 로직을 수행 했는데 잘못된 입력으로 인해 어플리케이션이 오작동을 하면 안된다. 그러므로 검증을 통해 처리해 줘야 함. Validation 사용 검증을 수행하기 위해선 다음과 같은 의존성 모듈이 필요 org.springframework.boot:spring-boot-starter-validation'검증을 위한 라이브러리는 두 가지가 있다. javax 표준 스펙(jsr-303) Bean Validator : 공식문서 hibernate validator : 공식문서 @Valid 는 annotation 이 javax 표준 검증기이고 컨트롤러 메소드 유효성 검사만 가능. @Validated 는 Spring 에서 지원해주는 검증기이고 다..
·Backend/Spring
스프링 구조 어플리케이션은 기본적으로 Components 간의 상호작용으로 동작하는데 Component 또는 Bean 형태로 스프링 컨테이너인 ApplicationContext 라는 DI 컨테이너에 올려두고 관리 되는 구조. ApplicationContext 와 Bean 등록 빈을 등록하는 방법은 위와 같이 annotation 기반으로 등록하거나 xml 파일로 등록할 수 있다. 위와 같이 스프링 컨테이너에 빈을 등록하면 실제 어플리케이션이 동작할 때 의존성 주입 (DI) 을 기반으로 해서 스프링이 관리하는 빈으로 변경되어 수행된다. @Configuration // Coonfiguration 또한 Component 이다. public class AppConfig { @Bean public UserServi..
김까따
'Backend/Spring' 카테고리의 글 목록 (2 Page)