🚩이번주에 배울 것
1. Controller - Service - Repository 에 대해 자신감을 가지기
2. 자바를 이용해 API를 이용하는 방법을 익히기
3. 스프링 스케줄러를 이용하여, 서버에게 원하는 작업을 원하는 시간에 시키는 방법을 익히기
❗기본기 다지기
- 3계층 숙달
- 스프링, 아니 개발의 핵심 중 하나가 분업과 느슨한 결합입니다. 각자가 맡은 바 책임을 다하면 기능이 온전히 작동하고, 느슨히 결합함으로써 유연성과 확장성을 가지기 때문이지요.
- 3계층은 분업과 느슨한 결합의 대표적인 예시이자, 스프링이 돌아가게 만드는 척추입니다.
- 깊게 파자면 끝없는 이론이 있지만, 지금은 그것보다 우선 손에 익게 하는데 집중하세요. 손에 익어서, "아 나도 웬만한 사이트는 노력하면 만들 수 있지!"라는 자신감을 가지는게 정말 중요해요.
- API handling
- 혼자 하는 개발은 없습니다. 그리고 세상에는 다양한 API가 있습니다. API를 잘 다루면 재미있는 나만의 서비스를 더 많이, 더 빠르게 만들 수 있고 그럼으로써 개발자로 한 단계 성장할 수 있습니다.
- 또한, 앞에서 말씀드린 느슨한 결합의 대표적인 예시가 바로 API 입니다. 우리가 이용할 네이버 검색 API의 내부 로직이 어떻게 되든 상관없이, 우리는 정해진 약속대로 요구하면 정해진 결과를 받을 수 있지요.
- 한 마디로 API가 아무리 많아도 쓸 줄 모르면 무용지물이죠. 그런데 JSON으로 주고받는 데이터를 어떻게 자바로 요청하고, 그 결과를 다룰 수 있는지 모르는 분들이 생각보다 많습니다. 이번에 그 기초를 확실하게 배워볼게요!
❗프로젝트 필요 기능 살펴보기
-요구 기능
상품명에 따른 검색
관심 상품 등록 & 조회
관심 상품에 대한 최저가 등록하기
-3계층 레이어
Controller 는 제일 바깥 쪽에서 요청을 받고, 응답을 되돌려주는 역할
Service 는 중간에서 구체적인 작업 순서를 결정
Repository 는 DB와 직접 소통함으로써 자료를 생성하고, 조회하고, 변경하고, 삭제
그리고 각 레이어 간에는 절대 Entity를 직접 사용하지 않고, DTO 라는 택배상자를 만들어 사용
❗네이버 쇼핑 API
-네이버 API
네이버 서비스를 코드로 이용할 수 있는 서비스
https://developers.naver.com/products/intro/plan/
-API 신청하기
-네이버 쇼핑 API 정보
https://developers.naver.com/docs/serviceapi/search/shopping/shopping.md#%EC%87%BC%ED%95%91
❗자바 프로젝트 만들 때 필수 체크
❗자바로 네이버 쇼핑 API 이용
RestTemplate rest = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.add("X-Naver-Client-Id", "vzVXgmgtqsCshEm_irZG");
headers.add("X-Naver-Client-Secret", "WNdiKKmC8K");
String body = "";
HttpEntity<String> requestEntity = new HttpEntity<String>(body, headers);
ResponseEntity<String> responseEntity = rest.exchange("https://openapi.naver.com/v1/search/shop.json?query=iphone", HttpMethod.GET, requestEntity, String.class);
HttpStatus httpStatus = responseEntity.getStatusCode();
int status = httpStatus.value();
String response = responseEntity.getBody();
System.out.println("Response status: " + status);
System.out.println(response);
-프로젝트 파일 만들기
728x90
반응형
'🔻Back-End > Spring' 카테고리의 다른 글
[Spring] 웹개발의 봄, Spring 4주차-3 (0) | 2022.07.19 |
---|---|
[Spring] 웹개발의 봄, Spring 4주차-2 (0) | 2022.07.18 |
[Spring] 웹개발의 봄, Spring 3주차-3 (0) | 2022.07.13 |
[Spring] 웹개발의 봄, Spring 3주차-2 (0) | 2022.07.13 |
[Spring] 웹개발의 봄, Spring 3주차-1 (0) | 2022.07.12 |