반응형

웹, 앱 개발/Spring 6

@SpringQueryMap란? & 사용 예시

@SpringQueryMap 란? SpringQueryMap은 Spring Cloud OpenFeign 라이브러리에서 제공하는 어노테이션 중 하나입니다. 이 어노테이션은 Feign 클라이언트에서 GET 요청을 보낼 때, Query Parameter를 맵 형태로 전달하기 위해 사용됩니다. @RequestParam과 유사한 역활을 수행하지만, 여러 개의 파라미터가 아닌 단일 맵 형태로 전달할 수 있다는 점이 다릅니다. 예를 들어, @RequestParam을 사용하여 다음과 같이 Query Parameter를 전달할 수 있습니다. @RequestParam 사용 예시 @GetMapping("/request_param") fun requestParam( @RequestParam("id") id: Int, @Req..

@SuperBuilder란? & 사용 예시

SupperBuilder 란? @SuperBuilder는 Lombok 라이브러리에서 제공하는 어노테이션 중 하나입니다. 이 어노테이션을 사용하면 자바 빈(Java Bean) 클래스를 빌더 패턴(Builder Pattern)으로 간편하게 구현할 수 있습니다. 빌더 패턴은 객체를 생성하기 위한 여러 속성을 가진 클래스를 생성하고, 이를 이용하여 객체를 생성하는 방식입니다. 빌더 패턴은 객체 생성을 보다 유연하고 가독성 높은 방식으로 구현할 수 있어, 객체 생성 로직이 복잡한 경우 유용합니다. @SuperBuilder 어노테이션은 @Builder 어노테이션의 기능을 보완하기 위해 도입되었습니다. @Builder 어노테이션으로는 상속받은 필드를 빌더에서 사용하지 못하는 등의 제한이 있었습니다. @SuperBui..

[SpringBoot] sourceCompatibility & targetCompatibility

들어가기 전에 Spring boot 프로젝트를 생성하면 build.gradle 파일에 다음의 코드들이 추가되어있는것을 볼 수 있습니다. group = 'com.example' version = '0.0.1-SNAPSHOT' sourceCompatibility = '11' 위의 코드 중 'sourceCompatibility'는 무엇인지에 대한 글입니다. sourceCompatibility란? sourceCompatibility란 Java 버전과 일치하는 값으로 컴파일에서 사용하는 JDK 버전입니다. 소스 코드에서 사용할 수 있는 Java 버전을 해당 버전 값으로 제한 합니다. 컴파일 단계에서 에러를 감지하여, 실수로 더 높은 버전의 Java 기능을 사용하는 것을 방지합니다. targetCompatibili..

[SpringJPA] @Embeddable & @Embedded (Value Type)

@Embeddable & @Embedded Spring JPA 에서 제공하는 기능으로, 다양한 값 타입(value type)으로 구성된 엔티티(Entity) 클래스를 더 나은 추상화 및 재사용성을 위해 사용됩니다. User @Entity public class User { @Id @GeneratedValue private Long id; private String firstName; private String middleName; private String LastName; private String city; private String street; private String zipcode; } 테이블의 구조는 괜찮지만 Name과 Address를 재사용하고 여러 엔티티에 사용하기에는 부적절합니다. Na..

[SpringBoot] Query Parameter Log (쿼리 파라미터 로그) 남기기

insert into member (username, id) values (?, ?)위의 로그처럼 SpringBoot 개발을 하면서 실행시킨 쿼리의 파라미터가 '?' 로 표시되어 어떤 값인지 확인이 불가능합니다. 다음의 설정을 통해 쿼리 파라미터 값을 확인할 수 있습니다. yml 파일 속성 추가 # application.yml logging: level: org.hibernate.type: traceapplication.yml 파일에 위의 속성을 추가하면 쿼리 아래에 다음과 같이 파라미터 값 로그가 남습니다. ... : binding parameter [1] as [VARCHAR] - [memberA] ... : binding parameter [2] as [BIGINT] - [1] P6S..

[Spring Boot] Junit5 - @RunWith(SpringRunner.class)

Junit4를 사용하다 Junit5로 테스트를 만들고 @Runwith(SpringRunner.class)를 작성하면, Cannot resolve symbol 'RunWith' 에러가 나타난다. @RunWith(SpringRunner.class)는 Junit4에서만 사용이 가능하고, Junit5에서는 사라졌다. Junit5에서는 대신 @ExtendWith(SpringExtension.class)를 사용해야 한다. // Junit4 @RunWith(SpringRunner.class) // Junit5 @ExtendWIth(SpringExtension.class)

반응형