Qna. ORM이란 무엇인가?객체와 데이터베이스의 관계를 자동으로 매핑해 준다.또한, 객체 지향적으로 데이터를 저장하고 조회할 수 있다. 즉, SQL을 직접 사용하지 객체 지향 언어의 문법으로 데이터베이스를 조작할 수 있다. Qna. ORM의 장단점은 무엇인가?장점생산성 향상JPA에서 기본적인 CURD 지원과 Java 언어로 데이터베이스 조작이 간단하다.보안성 강화SQL Injection 같은 보안 취약점 방지 (ORM이 내부적으로 SQL을 안전하게 생성)단점높은 학습 곡선관련 기술을 익히고, 발생할 수 있는 성능 이슈 문제를 전부 파악하고 있어야 효율적으로 사용할 수 있다.복잡한 쿼리를 해결하기 어렵다. 세부적인 쿼리 최적화는 어렵다.동적 쿼리와 같은 문제는 QueryDSL을 통해 처리할 순 있다.성능..
목표Spring에서 Bean을 사용하는 이유 이해하기Spring이 동시 요청을 처리하는 방법 이해하기QnA. Spring에서 Bean을 사용하는 이유1. 객체의 효율적인 관리 (메모리 절약 & 중복 생성 방지)동일한 역할을 수행하는 객체를 하나만 만들어서 관리할 수 있다.JVM의 Heap 메모리에 객체를 효율적으로 관리한다.만약, Spring Bean 객체를 사용하지 않는다면, 각각의 클래스마다 동일한 객체를 new 연산으로 생성해서 사용해야 한다. → 이는 비효율적인 메모리 낭비로 이어진다. 2. 편리한 의존성 주입 (Dependency Injection, DI)간편하게 의존성을 주입할 수 있다.등록된 객체는 Spring Framework가 자동으로 관리해 주며, 생성자 주입, 필드 주입 등의 방법으로..
QnA. 생성자 주입과 필드 주입의 차이 생성자 주입은 객체 생성 시 의존성이 즉시 주입된다.반면, 필드 주입은 일단 빈 객체를 먼저 생성하고, 스프링 컨테이너가 초기화된 이후에 관련 의존성들이 주입된다. 생성자 주입 추가 설명@Componentpublic class FooBean { private final FooService fooService; @Autowired public FooBean(FooService fooService) { this.fooService = fooService; }}생성자 주입은Spring Container가 FooBean을 생성하기 전에 FooService 빈을 먼저 찾습니다.FooService 빈이 컨테이너에 있는 경우, 이를 Foo..
목표ServletContainer와 SpringContainer의 차이 이해하기ServletServlet이란?웹 요청과 응답의 흐름을 간단한 메서드 호출로 처리할 수 있게 도와주는 Java Program이다.Servlet은 HTTP 요청을 받아 처리한 후, 응답을 반환하는 역할을 한다.Servlet are responsible for accepting a request, processing it, and sending a response back.public interface Servlet { void init(ServletConfig config) throws ServletException; void service(ServletRequest req, ServletResponse res) th..