목록spring (11)
Flèche
영속성 컨텍스트와 1차 캐쉬 1차 캐시 : 영속성 컨텍스트는 내부에 캐시를 가지고 있는데 이것을 1차 캐시라 한다. 영속 상태의 엔티티는 모두 이곳에 저장된다. 쉽게 말해 영속성 컨텍스트 내부에 Map이 하나 있는데 (1차 캐시), 키는 @Id로 매핑한 식별자고 값은 엔티티 인스턴스다. em.find()를 호출했는데 엔티티가 1차 캐시에 없으면 엔티티 매니저는 데이터베이스를 조회해서 엔티티를 생성하고 1차 캐시에 저장한 후에 영속 상태의 엔티티를 반환한다. 영속성 컨텍스트의 쓰기지현 엔티티 매니저는 트랜잭션을 커밋하기 직전까지 데이터베이스에 엔티티를 저장하지 않고 내부 쿼리 저장소에 INSERT SQL을 모아둔다. 그리고 트랜잭션을 커밋할 때 모아둔 쿼리를 데이터베이스에 보내서 저장시킨다. 이를 트랜잭션..
커넥션풀 : DB에서 미리 connection(연결)을 해놓은 객체들을 pool에 저장해두었다가, 클라이언트 요청이 오면 connection을 빌려주고 처리가 끝나면 다시 connection을 반납받아 pool에 저장하는 방식을 말한다. 캐쉬 : 애플리케이션의 처리 속도를 높여준다. 이미 가져온 데이터나 계산된 결과값의 복사본을 저장함으로써 처리 속도를 향상시키며, 이를 통해 향후 요청을 더 빠르게 처리할 수 있다. 웹 캐쉬 : 사용자(client)가 웹 사이트(server)에 접속할 때, 정적 컨텐츠(이미지, JS, CSS 등)를 특정 위치(client, network 등)에 저장하여, 웹 사이트 서버에 해당 컨텐츠를 매번 요청하여 받는것이 아니라 특정 위치에서 불러옴으로써 사이트 응답시간을 줄이고, ..
1. getForEntity 메소드는 지정된 URI 또는 URL 템플릿에서 리소스를 검색합니다. 응답 상태 코드, 응답 본문 등을 얻을 수있는 ResponseEntity로 응답을 반환합니다 2. getForObject 메서드는 HTTP GET 메서드를 사용하여 지정된 URI 또는 URL 템플릿에서 지정된 응답 유형에 대한 데이터를 가져옵니다.
1. HttpEntity requestEntity = new HttpEntity(requestDto); 클래스 2. ResponseEntity responseEntity = restTemplate.exchange(url, HttpMethod.PUT, requestEntity, Long.class); url로 put method => 언제나 같은 결과를 보장하는 method requestEntity를 body로 보낸디 Long은 리턴타입
PUT post와 가장 큰차이는 put 메서드는 자원의 식별자를 이미 알고있는 상태여야한다는 점이다. put 메서드는 식별자의 자원을 http 메세지로 함께 넘어온 엔티티로 교체한다. put 메서드로 넘어온 식별자가 꼭 존재하고있는 식별자일 필요는 없다. 존재하지않는 식별자를 넘길수도있는데 이런 경우엔 넘어온 식별자를 id로 하는 새 자원을 생성하고 201(created) 응답을 한다. 식별자를 id로 사용할수없는 경우엔 에러코드로 응답한다. 차이 새 자원을 생성한다는 점에서 POST랑 같다. POST와 PUT의 가장 큰 차이는 POST는 request message로 포함된 엔티티를 이용해 새로운 자원을 생성해 내는것이고, PUT은 request message와 함께 넘어온 식별자의 자원을 만드는것이다..
1. http post방식: The data sent to the server with POST is stored in the request body of the HTTP request 요약) POST를 통해 서버로 전송 된 데이터는 HTTP 요청의 요청 본문에 저장됩니다
스프링 부트로 웹서비스를 만들 수 있도록 도와주는 책이 있어서 그 책을 공부하며 프로젝트를 했었습니다. 그런데 그 책이 2019년도에 나온 책이고, 현재 나온 최신 스프링부트 및 빌드 툴 버전이 아니라서 2019년도에 쓰여진 책을 바탕으로 현재 버전에서 달라진 점을 고려해서 프로젝트 하는게 어려웠습니다. 예를 들어 Lombok 라이브러리를 추가할 때 dependency를 추가하는 부분의 코드가 달라졌습니다. 맨 처음에 제가 했던 생각은 ‘책을 쓴 분처럼 gradle4.xx 버전으로 gradle 버전을 낮춘 뒤 프로젝트를 할까?’ 였습니다. 그러나 최신 스프링부트 버전인 2.4.3버전에서는 gradle4.xx를 쓸 수 없어서 낮췄던 gradle 버전을 다시 gradle 6.xx로 바꾸고, dependenc..