본문 바로가기

개발 일지/TIL

[ #27 ] TIL

✏️ 0523      


Spring 숙련 4주차 강의

첫 모의면접

수준별 학습: 스탠다드 이론반


Spring 숙련 4주차

 

 

미완성

 

 

 

 

 

 

 

 

==================
Validation 1-14 
------------------------
프로그래밍을 하는데에 있어서 가장 중요한 부분 중 하나
Java는 null 값에 대한 접근에 대해 NullPointerException 오류가 발행하기 때문에 이러한 부분을 예방하기 위해 Validation 즉, 검증 과정이 필요
Spring에서는 null 확인 뿐 아니라 문자의 길이 측정과 같은 다른 검증 과정도 쉽게 처리할 수 있도록 Bean Validation 제공

Bean Validation
간편하게 사용할 수 있는 여러 애너테이션을 제공 
강의자료에 표 있음

Validation 을 사용하기 위해서는
데이터 검증을 하고 싶은 Dto 앞에 @Valid 를 붙여줘야 한다
Spring 이 그걸 확인하고 Bean Validation 을 실행한다


ProductRequestDto
=================
Validation 예외처리 1-15
-------------------------
BindingResult
예외가 발생하면 BindingResult 객체에 오류에 대한 정보가 담긴다
파라미터로 BindingResult 객체를 받아올 수 있다


SignupRequestDto
UserController
==============
3주차 파일 대표 = spring-auth
==================
==================
RestTemplate 이란 2-1
-----------------------------
서비스 개발을 진행하다보면 라이브러리 사용만으로는 구현이 힘든 기능들이 무수히 많이 존재
Spring에서는 서버에서 다른 서버로 간편하게 요청할 수 있도록 RestTemplate 기능을 제공하고 있다

spring-resttemplate-server 파일 생성&세팅
spring-resttemplate-client 파일 생성&세팅
=======================
RestTemplate의 Get 요청 2-2
----------------------------------
Client 입장 서버>>
Spring의 UriComponentsBuilder를 사용해서 URI를 손쉽게 만들 수 있다
RestTemplate의 getForEntity는 Get 방식으로 해당 URI의 서버에 요청을 진행
첫 번째 파라미터에는 URI, 두 번째 파라미터에는 전달 받은 데이터와 매핑하여 인스턴스화할 클래스의 타입
요청의 결과값에 대해서 직접 JSON TO Object를 구현할 필요없이 RestTemplate을 사용하면 자동으로 처리
response.getBody() 를 사용하여 두 번째 파라미터로 전달한 클래스 타입으로 자동 변환된 객체를 가져올 수 있다


RestTemplateService - client
ItemDto - client
ItemService - server
ItemResponseDto - server
=====================
RestTemplate의 Post 요청 2-3
---------------------------------
PathVariable 방식 => postCall (RestTemplateService)

// 첫번째 url, 두번째 HttpBody 에 넣어줄 데이터, 세번째 전달 받은 데이터랑 Mapping 할 것
        ResponseEntity<ItemDto> responseEntity = restTemplate.postForEntity(uri, user, ItemDto.class);

postForEntity는  Post 방식으로 해당 URI의 서버에 요청을 진행
Java 객체를 두 번째 파라미터에 넣으면 자동으로 JSON 형태로 변환


RestTemplateService - client
ItemService - server
=====================
RestTemplate의 exchange 2-4
------------------------
요청 Header에 정보를 추가하고 싶다면 RestTemplate의 exchange를 사용
exchange 메서드의 첫 번째 파라미터에 RequestEntity 객체를 만들어 전달해주면 uri, header, body의 정보를 한번에 전달할 수 있다


+) 토큰을 직접 header에 넣고 그대로 반환하는 방식?도 내용 있음
exchangeCall - client
==================
Naver Open API 2-5
--------------------------------
네이버 open API
https://developers.naver.com/products/intro/plan/plan.md

// 검색 API 사용 방법
https://developers.naver.com/docs/serviceapi/search/shopping/shopping.md#%EC%87%BC%ED%95%91


 

 

> X-Naver-Client-Id: {애플리케이션 등록 시 발급받은 클라이언트 아이디 값}
> X-Naver-Client-Secret: {애플리케이션 등록 시 발급받은 클라이언트 시크릿 값}

 



naver 패키지 따로 만들었다

 

'개발 일지 > TIL' 카테고리의 다른 글

[ #29 ] TIL  (0) 2024.05.27
[ #28 ] TIL  (0) 2024.05.24
[ #26 ] TIL  (0) 2024.05.22
[ #25 ] TIL  (0) 2024.05.21
[ #24 ] TIL  (2) 2024.05.20