목표 Jpa 즉시로딩과 지연로딩의 개념에 대해 알아보자. 즉시로딩과 지연로딩의 개념을 이해하기 위해서는 Jpa Proxy 객체 개념의 이해가 선행되어야 한다. Proxy에 대한 이해가 없다면 JPA Proxy란? 을 먼저 보면 좋을 것 같다. 즉시로딩(EAGER)과 지연로딩(LAZY) 즉시로딩(EAGER Loading) Hibernate는 지연로딩과 즉시로딩, 두 가지 로딩 전략을 제공하는데, 즉시로딩은 연관된 엔티티를 한 번의 쿼리로 함께 로딩하는 방식을 말한다. 즉시로딩을 사용하면, Entity와 연관된 모든 Entity들이 한 번에 로딩되므로, 필요한 데이터를 즉시 사용할 수 있다. 연관관계 annotation 속성에 "fetch = FetchType.EAGER"를 추가하여 사용할 수 있다. 예를 ..
https://zzzzseong.tistory.com/5 [Spring] Redis 사용하기(1) 목표 Redis가 무엇이고 언제 사용하는 것인지 알아보자 Docker로 Redis를 실행해보자 Redis란 무엇이고 언제, 어떻게 사용하는것일까? Redis(Remote Dictionary Server) Redis는 오픈소스기반 NoSQL의 Key-Value Store, zzzzseong.tistory.com 해당 글은 위 포스트와 이어지는 글입니다. Redis개념과 Docker를 이용한 Redis 사용방법을 보려면 위 포스트를 참고해주세요. 목표 이전 포스트에서 Redis의 기본적인 개념과 작동방식을 알아보았다. 이번 포스트에서는 Redis를 Spring에서 사용하는 방법에 대해 알아보자. Redis 사용..
목표 Spring을 공부하면서 DispatcherServlet이라는 단어는 정말 많이 접했지만, 단순히 클라이언트의 요청에 따라 알맞은 Controller로 안내하는 녀석으로만 알고있었지 정확히 어떤 방식으로 어떤 일을 하는지 이해하보려고 하지 않았던 것 같다. DispatcherServlet이 어떤 일을 하는지, 어떤 과정을 거치는지 등을 글로 정리하면서 이해하고 학습해보자. DispatcherServlet DispatcherServlet은 모든 HTTP 요청을 가장 먼저 받아 적합한 Controller로 전달하는 역할은 한다. Spring에서 HTTP 요청 및 응답을 처리하는 핵심 기술이라고 할 수 있다. DispatcherServlet은 FrontController라고도 불리는데 GRASP Pat..
목표 Jpa Proxy가 무엇인지에 대해 이해한다. 어떤 상황에서 Proxy를 사용해야하는지 이해한다. Jpa Proxy란? Proxy Proxy는 데이터베이스 조회를 미루는, Hibernate가 만든 실제 객체를 상속받아 만들어지는 가짜 객체이다. Proxy 객체는 target이라는 이름의 변수로 실제 객체의 참조를 보관하는데 Proxy 객체를 호출하면 Proxy객체는 실제 객체의 메소드를 호출한다. DB에서 정보를 조회하고 실제 객체를 가져올때 em.find()를 사용하는 것처럼. Proxy 객체를 가져오고 싶을때는 em.getReference()를 사용해 Proxy객체를 가져올 수 있다. 그렇다면, Proxy객체의 동작 원리는 어떻게 되는 것일까? Proxy객체를 생성하고 데이터를 읽으려 하면 그때..
목표 Redis가 무엇이고 언제 사용하는 것인지 알아보자 Docker로 Redis를 실행해보자 Redis란 무엇이고 언제, 어떻게 사용하는것일까? Redis(Remote Dictionary Server) Redis는 오픈소스기반 NoSQL의 Key-Value Store, In-Memory Database이며 속도와 확장성, 대량 데이터 처리 능력을 제공한다. 여기서 Key-Value Store란 메모리를 기반으로 데이터를 빠르게 읽어올 수 있는 저장소를 의미하며 Disk를 기반으로 하는 RDBMS보다 Read가 빠르다. 💡Key-Value 형태는 HashMap과 유사해 보이는데, 그냥 HashMap을 사용하면 되는거 아닌가? 서버가 1대 있다는 가정에서는 Redis의 장점이 크게 보이지 않지만, 분산환..