Backend

·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/JPA
ORM 개요 OOP 시대에 객체를 RDBMS에 관리하다 보니 SQL 중심적인 개발을 하게 됨으로써 나타나는 문제점들을 해결하기 위해 도입. 객체는 ↔ RDBMS 사이를 매끄럽게 연결하여 SQL 의존성을 덜어내고 OOP 중점적으로 개발을 하는 것이 목표. JPA (Java Persistense Api) 현재 Java 진형의 ORM 표준으로 인터페이스이고 구현체는 Hibernate, EclipseLink, DataNucleus 등 그 중 Hibernate 가 우리가 흔히 쓰는 구현체이다. SpringDataJPA JPA를 한 단계 더 추상화 시켜 개발을 편하게 해주는 Spring에서 제공하는 인터페이스 JPA 구동방식 persistence.xml에 jdbc 관련 정보 ( driver, username, pa..
·Backend/Spring
폼 입력 유효성 검사하기 Validation 개요 사용자가 만약 특정 로직을 수행 했는데 잘못된 입력으로 인해 어플리케이션이 오작동을 하면 안된다. 그러므로 검증을 통해 처리해 줘야 함. Validation 사용 검증을 수행하기 위해선 다음과 같은 의존성 모듈이 필요 org.springframework.boot:spring-boot-starter-validation'검증을 위한 라이브러리는 두 가지가 있다. javax 표준 스펙(jsr-303) Bean Validator : 공식문서 hibernate validator : 공식문서 @Valid 는 annotation 이 javax 표준 검증기이고 컨트롤러 메소드 유효성 검사만 가능. @Validated 는 Spring 에서 지원해주는 검증기이고 다..
김까따
'Backend' 카테고리의 글 목록 (2 Page)