본문 바로가기

spring boot4

TIL : @Async, @EnableAsync (24) Spring Async비동기 처리를 나타내는 @Async에는 proxy target 옵션이 존재한다.처리 모드가 프록시일 때만 설정할 수 있는 옵션인데, true라면 CGLIB로, false라면 동적 프록시로 생성한다. 두 방법 모두 프록시를 사용하므로 당연히 상속을 사용하는데, CGLIB는 subclass 기반이고 동적 프록시는 interface 기반이다.여기서 CGLIB는 바이트 코드 기반으로 생성하기 때문에 성능적으로 약간 낫다. @Async가 아닌 커스텀 어노테이션을 등록해서도 사용할 수 있다.@EnableAsync 속성에 annotation 필드가 바로 이 옵션이다. 비동기를 사용하기 앞서 thread pool의 사이즈, queue 사이즈를 정해서 하나의 Executor를 빈으로 등록한다.poo.. 2024. 6. 12.
TIL : @PathVariable vs @RequestParam (20) 🌞 Spring Spring에서 URI로 전달되는 값을 받아오는 방법이 두 가지 존재한다. id가 1인 게시글을 가져올 때 다음과 같이 표현할 수 있다. GET http://xxx.xxx.xxx/api/post?id=1 // query parameter GET http://xxx.xxx.xxx/api/post/1 // path variable 딱 보면 다른데 자세하게 어떤 차이가 있는지 알아보자! 🌀RequestParam GET http://xxx.xxx.xxx/api/post?id=1 이렇게 URI에 쿼리가 들어가는 방식일 때 사용하는 어노테이션이다. 일반적으로 Http GET Method에서 많이 사용한다. 조금 더 자세하게 들어가면 다음 4가지 경우로 많이 사용한다. 1️⃣ Searching @Ge.. 2023. 1. 10.
자바 ORM 표준 JPA 프로그래밍 : JPA 시작 (2장) 📌 객체 매핑 시작 JPA를 사용하려면 가장 먼저 클래스와 테이블과의 매핑이 필요하다. 매핑을 위해서 JPA에서 제공하는 어노테이션(javax.persistence.*)을 추가해야 한다. 🌀Entity 클래스를 테이블과 매핑한다고 JPA에게 알려주는 어노테이션이다. 이 어노테이션이 붙은 클래스를 엔티티 클래스라고 부른다. 🌀Table 엔티티 클래스에 매핑할 테이블 정보를 알려주는 어노테이션이다. name 속성으로 어떤 테이블과 매핑할지 설정할 수 있다. 만약 생략한다면 엔티티 이름을 사용한다. 🌀Id 엔티티 클래스의 필드를 기본 키(PK)에 매핑하는 어노테이션이다. 이 어노테이션이 붙은 필드를 식별자 필드라고 한다. 🌀Column 필드를 칼럼에 매핑하는 어노테이션이다. 매핑 어노테이션을 생략하면 필드명을.. 2022. 9. 15.
[Spring] Spring Data JPA란? 📌 Spring Data JPA란? JPA 구현체(Hibernate)를 좀 더 쉽게 사용하고자 추상화시킨 모듈 Spring Boot에서 쉽게 사용할 수 있는 추가적인 API를 제공한다. 📌 Hibernate VS Spring Data JPA 사실 Hibernate와 Spring Data JPA를 사용하는 것은 큰 차이가 없는데 왜 Spring Data JPA가 등장했을까? ✔️ 구현체 교체의 용이성 구현체 교체의 용이성이란? Hinernate 외에 다른 구현체로 쉽게 교체할 수 있다는 뜻이다. Spring Data JPA 내부에서 구현체 매핑을 지원해주기 때문에 새로운 구현체가 등장하면 쉽게 옮길 수 있다. ✔️ 저장소 교체의 용이성 저장소 교체의 용이성이란? 관계형 데이터베이스 외에 다른 저장소로 쉽게.. 2022. 8. 13.