스프링31 TIL : @Modifying, Junit5 (13) 🌞 Spring 1️⃣ @Modifying 어노테이션 @Query 어노테이션을 통해 작성된 DML문(select 제외)을 사용할 때 붙이는 어노테이션이다. JpaRepository가 제공하는 기본적인 메서드 혹은 메서드 네이밍 쿼리에는 적용되지 않는다! 2️⃣ JPQL 쿼리 (짧) JPQL 쿼리로 검색 조건 처리 시 좀 어려울 수 있지만 count에 대한 처리가 쉽다, fetchCount()...! ✍️ Junit5 1️⃣ 기본 Annotation 🌀BeforeAll / 🌀AfterAll : 모든 테스트보다 이전/이후에 실행, static 메서드만. 🌀BeforeEach / 🌀AfterEach : 각 테스트 전/후에 실행 🌀DisplayName("테스트 임당") : 테스트 이름 정하기 🌀Disable :.. 2022. 9. 27. 자바 ORM 표준 JPA 프로그래밍 : 영속성 관리 (3장) 📌 엔티티 매니저 팩토리와 엔티티 매니저 🧷 엔티티 매니저 팩토리 팩토리를 만들기 위해서는 많은 비용을 요구한다. 하나만 만들어서 애플리케이션 전체에서 사용한다. 설정 정보(persistence.xml)를 바탕으로 생성한다. 서로 다른 스레드 간에 공유해도 문제가 없다. 🧷 엔티티 매니저 생성하는데 비용이 거의 들지 않는다. 동시성 문제 때문에 스레드 간에 공유 금지. 필요한 시점까지 커넥션을 얻지 않는다. 보통 트랜잭션을 시작할 때 커넥션을 얻는다. 엔티티 매니저 팩토리를 생성할 때 커넥션풀도 만드는 방법은 J2SE 환경에서 사용하는 방법이다. 대부분의 JPA 구현체들이 사용하는 방법이다. 📌 영속성 컨텍스트란? JPA를 이해하는데 가장 중요한 용어는 영속성 컨텍스트(persistence context.. 2022. 9. 26. [Spring] AOP (feat. Proxy Pattern) ✍️ 학습 목표 AOP 이해하기 프록시 패턴이란? 📌 AOP Spring의 핵심 전략 중 하나인 AOP는 Aspect Oriented Programming의 약자이다. AOP은 횡단 관심사의 분리를 허용함으로써 모듈성을 증가시키는 것이 목적인 프로그래밍 패러다임이다. 위키백과에서 가져온 정의는 역시 전혀 와닿지 않는다. 그림으로 이해해보자. 🧷 Before AOP 위 그림을 보면 각 클래스들은 중복되는 부분을 가지고 있다. 이렇게 구현하면 A 클래스에 구현된 주황색 코드를 수정하게 된다면 클래스 B, C에 구현된 모든 코드를 수정해야 한다. 당연히 중복된 모든 코드를 수정하기 힘들 것이고 나아가 유지보수도 힘들 것이다. 🧷 After AOP AOP를 적용하게 된다면 다음과 같이 중복된 코드를 모듈화하여 .. 2022. 9. 21. 자바 ORM 표준 JPA 프로그래밍 : JPA 시작 (2장) 📌 객체 매핑 시작 JPA를 사용하려면 가장 먼저 클래스와 테이블과의 매핑이 필요하다. 매핑을 위해서 JPA에서 제공하는 어노테이션(javax.persistence.*)을 추가해야 한다. 🌀Entity 클래스를 테이블과 매핑한다고 JPA에게 알려주는 어노테이션이다. 이 어노테이션이 붙은 클래스를 엔티티 클래스라고 부른다. 🌀Table 엔티티 클래스에 매핑할 테이블 정보를 알려주는 어노테이션이다. name 속성으로 어떤 테이블과 매핑할지 설정할 수 있다. 만약 생략한다면 엔티티 이름을 사용한다. 🌀Id 엔티티 클래스의 필드를 기본 키(PK)에 매핑하는 어노테이션이다. 이 어노테이션이 붙은 필드를 식별자 필드라고 한다. 🌀Column 필드를 칼럼에 매핑하는 어노테이션이다. 매핑 어노테이션을 생략하면 필드명을.. 2022. 9. 15. [Spring] Servlet, 서블릿 ✍️ 학습 목표 Servlet 이해하기 Servlet Container 알아보기 📌 Servlet MVC 패턴에서 사용되는 Controller는 Servlet을 활용한 기술이다. 따라서 MVC 패턴을 준수하는 스프링 공부하기 위해선 Servlet에 대한 이해도 필수적이다. Servlet이란? 클라이언트의 요청을 처리하고, 처리 결과로 반환해주는 Java 기반의 CGI이다. CGI : 웹 서버 상에서 User Program을 동작시키기 위한 조합 ✔️ Servlet의 특징 결국 Servlet은 기존 웹 서버의 문제를 개선하고 동적인 여러 기능을 지원한다. 너무 기계적으로 적어둔 글이 많아서 핵심만 요약했고, 내용은 다음과 같다. 클라이언트의 요청에 대해 정적으로 작동하던 기존의 웹 프로그램의 문제점을 보완.. 2022. 9. 15. [Spring] Spring의 MVC ✍️ 학습 목표 MVC 패턴 이해하기 Spring의 MVC 📌 MVC 패턴 스프링은 MVC 패턴을 준수하는 프레임워크이다. 따라서, 스프링의 MVC 패턴을 이해하기 위해서는 먼저 MVC 패턴이 무엇인지 알아야한다. MVC (Model - View - Controller) 패턴은 소프트웨어 공학에서 사용되는 디자인 패턴이다. 이렇게 각자의 규칙과 역할을 가진 3개의 컴포넌트로 구성된 패턴을 MVC 패턴이라고 한다. ✔️ 모델, Model 애플리케이션의 정보, 데이터, DB 등을 담당하는 컴포넌트이다. 다음과 같은 규칙을 가진다. User가 원하는 모든 데이터를 가지고 있어야한다. View와 Controller에 대한 어떠한 정보도 알지 말아야한다. 변경이 발생하면 변경사항을 처리(수정, 전달 등) 할 수 .. 2022. 9. 14. 이전 1 2 3 4 5 6 다음