Spring Framework/Spring

Spring Framework/Spring

Spring JDBC vs SQL Mapper vs ORM 차이점 비교 (장단점)

위 글은 유튜브 우아한테크 채널에 도이님 발표 영상을 바탕으로 작성한 글입니다.https://www.youtube.com/watch?v=RWFtuQUx3fo JDBC JAVA에서 범용 데이터 액세스를 위한 표준 인터페이스이다. 순수 JDBC 불편한 점개발자가 모든 코드를 직접 작성해야 한다. 이로 인해 중복 코드가 많아지는 문제가 발생한다. 이를 해결하기 위해 영속성 프레임워크가 생겨나고, 중복된 작업을 처리해줍니다.반복적인 작업들을 추상화하고 편리함 제공ex) DB 연결, 해제, CRUD 등 SQL MapperSQL 문과 객체의 필드를 매핑하여, 관계형 DB의 데이터를 객체화하는 프레임워크이다.직접 작성한 SQL 문과 필드를 매핑하고, 조회 결과의 ROW를 객체화합니다.JDBC Template, MyB..

Spring Framework/Spring

Java ORM 사용 이유 및 장단점 완벽 정리 (JPA, Hibernate)

Qna. ORM이란 무엇인가?객체와 데이터베이스의 관계를 자동으로 매핑해 준다.또한, 객체 지향적으로 데이터를 저장하고 조회할 수 있다. 즉, SQL을 직접 사용하지 객체 지향 언어의 문법으로 데이터베이스를 조작할 수 있다. Qna. ORM의 장단점은 무엇인가?장점생산성 향상JPA에서 기본적인 CURD 지원과 Java 언어로 데이터베이스 조작이 간단하다.보안성 강화SQL Injection 같은 보안 취약점 방지 (ORM이 내부적으로 SQL을 안전하게 생성)단점높은 학습 곡선관련 기술을 익히고, 발생할 수 있는 성능 이슈 문제를 전부 파악하고 있어야 효율적으로 사용할 수 있다.복잡한 쿼리를 해결하기 어렵다. 세부적인 쿼리 최적화는 어렵다.동적 쿼리와 같은 문제는 QueryDSL을 통해 처리할 순 있다.성능..

Spring Framework/Spring

Spring Controller가 수백만 개의 요청을 처리하는 원리 - Spring Bean의 역할과 목적

목표Spring에서 Bean을 사용하는 이유 이해하기Spring이 동시 요청을 처리하는 방법 이해하기QnA. Spring에서 Bean을 사용하는 이유1. 객체의 효율적인 관리 (메모리 절약 & 중복 생성 방지)동일한 역할을 수행하는 객체를 하나만 만들어서 관리할 수 있다.JVM의 Heap 메모리에 객체를 효율적으로 관리한다.만약, Spring Bean 객체를 사용하지 않는다면, 각각의 클래스마다 동일한 객체를 new 연산으로 생성해서 사용해야 한다. → 이는 비효율적인 메모리 낭비로 이어진다. 2. 편리한 의존성 주입 (Dependency Injection, DI)간편하게 의존성을 주입할 수 있다.등록된 객체는 Spring Framework가 자동으로 관리해 주며, 생성자 주입, 필드 주입 등의 방법으로..

Spring Framework/Spring

Spring DI 방식 비교: 생성자 주입과 필드 주입의 차이점 정리

QnA. 생성자 주입과 필드 주입의 차이 생성자 주입은 객체 생성 시 의존성이 즉시 주입된다.반면, 필드 주입은 일단 빈 객체를 먼저 생성하고, 스프링 컨테이너가 초기화된 이후에 관련 의존성들이 주입된다. 생성자 주입 추가 설명@Componentpublic class FooBean { private final FooService fooService; @Autowired public FooBean(FooService fooService) { this.fooService = fooService; }}생성자 주입은Spring Container가 FooBean을 생성하기 전에 FooService 빈을 먼저 찾습니다.FooService 빈이 컨테이너에 있는 경우, 이를 Foo..