WEB/Spring
-
[Spring] QuerydslWEB/Spring 2023. 2. 15. 15:30
Querydsl이란? HQL(Hibernate Query Language) 쿼리를 타입에 안전하게 생성 및 관리할 수 있도록 해주는 프레임워크 Querydsl을 통하여 생성되는 정적 Q-type 클래스를 이용하여 SQL과 같은 쿼리를 생성하도록 도와주는 프레임워크. Querydsl이 필요한 이유 JPA를 사용할 때, 복잡한 쿼리가 필요할 경우, JPA 자체 제공 메서드만으로 해결하기에 어려움이 있음. @Configuration public class QueryDslConfig { // 영속성 관리 어노테이션 @PersistenceContext private EntityManager entityManager; @Bean public JPAQueryFactory jpaQueryFactory() { retur..
-
[Spring] JPAWEB/Spring 2023. 2. 15. 15:16
JPA란? 자바 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스 ORM에 대한 자바 API 규격이며 Hibernate, OpenJPA 등이 JPA를 구현한 구현체 JPA 장점 생산성이 뛰어나고 유지보수가 용이 sql을 직접적으로 작성하지 않고, 객체를 사용하여 동작 DB컬럼이 추가될 때마다 테이블 수정이나 SQL 수정하는 과정, 값을 할당하거나 변수 선언 등의 부수적인 코드가 줄어듦 DBMS에 대한 종속성이 줄어든다. DBMS가 변경된다 하더라도 소스, 쿼리, 구현 방법, 자료형 타입 등을 변경할 필요가 없다. JPA 단점 JPA의 장점을 살려 잘 사용하기 어려움 복잡한 쿼리를 사용할 때 불리 잘못 사용할 경우, 실제 SQL문을 직접 작성하는 것보다 성능이 떨어짐 Entity 클래..
-
[Spring] Aop와 ScopeWEB/Spring 2022. 10. 31. 09:27
AOP란 Aspect Oriented Programming의 약자로 관점 지향 프로그래밍입니다. 쉽게 말해서 어떠한 로직을 기준으로 핵심적인 관점과 부가적인 관점으로 분류 후 각각의 관점을 기준으로 모듈화한다는 뜻입니다. 여기서 말하는 핵심적인 관점은 비즈니스 로직이 될 수 있고 부가적인 관점은 핵심 로직이 실행되기 위해 행해져야 하는 데이터베이스 연결, 로깅, 파일 입출력 등이 될 수 있습니다. Aspect 흩어진 관심사(Crosscutting Concerns)를 묶어서 모듈화 한 것. 하나의 모듈. Advice와 Point Cut이 들어간다. Target Aspect가 가지고 있는 Advice가 적용되는 대상(클래스, 메서드 등등)을 말한다. Advice 어떤 일을 해야할 지에 대한 것. 해야할 일들..