본문 바로가기

Spring14

Spring | 스프링 데이터 JPA 스프링 데이터 JPA 스프링 데이터 JPA를 사용하면, 리포지토리에 구현 클래스 없이 인터페이스 만으로 개발을 완료할 수 있음 반복 개발해온 기본 CRUD 기능도 스프링 데이터 JPA가 모두 제공함 스프링 데이터 JPA는 JPA를 편리하게 사용하도록 도와주는 기술이므로 JPA를 선수 학습한 후에 스프링 데이터 JPA를 학습해야 함 스프링 데이터 JPA 제공 기능 인터페이스를 통한 기본적인 CRUD findByName(), findByEmail() 처럼 메서드 이름만으로 조회 기능 제공 페이징 자동 기능 제공 *실무에서는 JPA와 스프링 데이터 JPA를 기본으로 사용하고, 복잡한 동적 쿼리는 QUerydsl이라는 라이브러리를 사용하면 됨. Querydsl을 사용하면 쿼리도 자바 코드로 안전하게 작성할 수 .. 2023. 12. 7.
Spring | JPA(Java Persistence API) JPA JAVA 진영에서 ORM(Object-Relational Mapping) 기술 표준으로 사용되는 인터페이스이며, 실제적으로 구현된 것이 아니라 구현된 클래스와 매핑을 해주기 위해 사용되는 프레임워크. 구현은 여러 업체들이 하는 것이라고 보면 됨 대표적인 오픈소스로는 Hibernate가 있음. 기존의 반복 코드는 물론이고, 기본적인 SQL도 JPA가 직접 만들어서 실행해줌 SQL과 데이터 중심의 설계에서 객체 중심의 설계에서 객체 중심의 설계로 패러다임을 전환할 수 있음 개발 생산성을 크게 높일 수 있음 ORM(Ojbect-Relational Mapping) 우리가 일반적으로 알고 있는 애플리케이션 Class와 RDB(Relational Database)의 테이블을 매핑(연결)한다는 뜻이며, 기술적.. 2023. 12. 7.
Spring | 스프링 JdbcTemplate 순수 Jdbc(Java Database Connectivity)와 동일한 환경 설정을 하면 됨 스프링 JdbcTemplate와 MyBatis 같은 라이브러리는 JDBC API에서 본 반복 코드를 대부분 제거해줌. 하지만 SQL은 직접 작성해야 함. 2023. 12. 6.
Spring | DataSource, @SpringBootTest, @Transactional DataSource - 데이터베이스 커넥션을 획득할 때 사용하는 객체. 스프링 부트는 데이터베이스 커넥션 정보를 바탕으로 DataSource를 생성하고 스프링 빈으로 만들어두므로 DI를 받을 수 있음 *스프링의 DI (Dependencies Injection)을 사용하면 기존 코드를 전혀 손대지 않고, 설정만으로 구현 클래스 변경 가능 *개방-폐쇠 원칙(OCP, Open-Closed Principle) : 확장에는 열려있고, 수정/변경에는 닫혀있음 @SpringBootTest - 스프링 컨테이너와 테스트를 함께 실행하는 애노테이션 @Transactinal - 테스트 케이스에 이 애노테이션이 있으면, 테스트 시작 전에 트랜잭션을 시작하고, 테스트 완료 후에 항상 롤백함. 이렇게 하면 DB에 데이터가 남지 .. 2023. 12. 6.