오늘은 RestTemplate 에 대한 강의를 통해 Client입장의 서버, Server입장의 서버가 데이터를 주고 받는 것을 실습해보았다. 오후엔 튜터님과 CRUD작성을 다시 복습하며 기본기를 다졌다.
RestTemplate이란 스프링에서 제공하는 기능으로 서버간에 데이터 요청을 간편하게 할 수 있는 역할을 한다. 오늘 실습에서는 프로젝트 두개를 만들어서 한 프로젝트에서는 포트번호를 7070으로, 나머지 하나에선 8080으로 설정하여 포트번호를 통해 데이터를 주고 받아 보았다.
dto, entity 클래스는 기존과 동일하게 설계하면 되며 controller와 service 부분에서 RestTemplate을 사용해서 데이터를 주고 받아야 한다. 이 때 새로운 요청URL을 만들어야 하는데 여기엔 http주소와 우리가 controller에서 작성했던 path등이 포함되어야 한다. 이번 실습에서는 .fromUriString("http://localhost:7070").path("/api/server/get-call-obj")등이 포함된 코드를 통해 요청 URL을 만들어 주었다.
이렇게 직접 어떤식으로 데이터를 주고 받는지 확인해 보았으니 다음번엔 간단한 데이터를 주고 받는 것이 아닌 더 복잡한 과정을 대신 해주는 외부 API를 사용하는 법을 알아 보겠다.
Controller -> 브라우저에서 요청한 데이터를 해당 요청의 html파일을 완성해서 브라우저로 응답하는 역할
데이터를 JSON방식으로 전달받기 위한 어노테이션 -> @RestController
jpa에서 관리 받는 클래스 라는 의미 -> @Entity
new의 역할 : 데이터 초기화 / 생성자 / 객체를 만듦
Bean이란 Spring에서 관리해주는 객체들의 모임으로 bean으로 등록되면 new를 통해 생성해주지 않아도 된다. 이렇게 등록해두는 이유는 매번 매서드가 실행될 때마다 객체를 다시 생성하면 그만큼 메모리를 많이 잡아먹어서 비효율적이기 때문이다. 이를 bean을 등록함으로써 용량을 더욱 효율적으로 쓸 수 있게 만든다.
반복적으로 학습하다보니 CRUD부분은 이제 자료를 보지 않고도 작성할 수 있을것 같았다. 하지만 아직도 기본적인 자바 개념에서 질문하셨을 때 바로바로 답이 나오지 않았고 튜터님도 이런 기초적인 부분이 제일 중요하다고 하셨다. 진도를 따라가는 것도 중요하지만 기초를 다지는 것이 더 중요하다는 말씀을 듣고 그 부분에 더 치중하여 공부해 보아야 겠다.