스프링

    [스프링] 1 + N

    [스프링] 1 + N

    목차 1. 1+N이란? 2. 즉시로딩과 지연로딩 3. 1+N이 발생하는 케이스 4. 1+N의 해결방안 🤔 1 + N 이란? 연관관계가 설정된 엔티티 사이에서 한 엔티티(1)를 조회하였을 때, 조회된 엔티티의 개수(N)만큼 연관된 엔티티를 조회하기 위해 추가적인 쿼리가 발생하는 문제이다 예를 들어 게시글(1) 과 댓글(N) 이 있을 때, 게시글과 댓글이 조인된 형태로 함께 조회되기를 기대했지만, 게시글을 조회(1)하는 쿼리와 댓글을 조회(N)하는 쿼리가 따로 날아가며 총 1+N 번 쿼리가 발생 DBMS에서 직접 쿼리를 작성하면 발생하지 않을 문제지만, JPA와 같은 ORM이 등장하고, 쿼리가 자동화 되면서 발생되는 문제이다 즉시로딩 과 지연로딩 에 대한 개념을 먼저 설명하고, 간단한 예제를 통해 1 + N..

    [스프링] 서블릿(Servlet)과 서블릿 컨테이너(Servlet Container)

    [스프링] 서블릿(Servlet)과 서블릿 컨테이너(Servlet Container)

    스프링으로 웹 개발을 하다 보면 서블릿이라는 단어를 자주 접하게 된다. 그만큼 중요한 개념이므로 웹 개발을 하기 위해 필수적으로 이해해야한다. 서블릿과 서블릿 컨테이너가 무엇인지 알아보자. 서블릿(Servlet)이란? 서블릿은 웹 프로그래밍에서 클라이언트 요청을 처리하고, 처리 결과를 클라이언트에 전송하는 기술이다. 쉽게 말해 자바를 사용하여 웹을 만들기 위해 필요한 기술이다. 이전 웹 프로그램들은 클라이언트의 요청에 대한 응답으로 정적인 페이지를 넘겨주었지만, 현재는 동적인 페이지를 가공하기 위해 웹 서버가 다른 곳에 도움을 요청한 후 가공된 페이지를 넘겨주게 된다. 이때 서블릿을 사용하게 되면 웹 페이지를 동적으로 생성하여 클라이언트에게 반환해 줄 수 있다. 서블릿의 특징 서블릿을 사용하게 되면, 1..

    [스프링] 싱글톤과 @Configuration

    스프링을 공부하다 보면 싱글톤이라는 말을 접하게 된다. 싱글톤이란 무엇인지, 스프링에서 싱글톤을 어떻게 적용하는지 알아보자 싱글톤이란? 싱글톤이란 디자인패턴 중 하나로, 객체의 인스턴스가 하나만 생성되는 패턴을 말한다. public class Singleton { private static Singleton instance = new Singleton(); private Singleton() { // 생성자는 외부에서 호출못하게 private 으로 지정해야 한다. } public static Singleton getInstance() { return instance; } public void say() { System.out.println("hi, there"); } } 위의 코드와 같이 외부에서 객체 ..