[Spring Boot] JUnit5 @RequiredArgsConstructor 사용
Try & Error Log 2023. 11. 22. 13:39

JUnit5의 테스트 코드 실행 환경에서 MockMvc의 DI를 Autowired 말고 final로 주입받기 위해서 @RequiredArgsConstructor을 사용하기 위해 작성하였고 Import도 하였다. 하지만 다음과 같은 오류가 발생되었다. java: java.lang.NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport does not have member field 'com.sun.tools.javac.tree.JCTree qualid' 에러가 발생하는 이유는 JUnit5가 DI를 스스로 지원하기 때문에 JUnit이 생성자에 다른 의존성을 주입하려고 먼저 개입 하기 때문이다.JUnit 5가 DI(Dependency Injectio..

Entity
BackEnd/Spring 2023. 11. 22. 01:56

Entity는 데이터베이스 테이블과 매핑되는 자바 객체를 의미합니다. 주로 JPA와 함께 사용되며, 데이터베이스와 애플리케이션 사이의 데이터를 효과적으로 조작하고 관리하기 위한 객체 지향적인 프로그래밍 방식을 제공합니다. 되도록이면 엔티티는 Setter 메서드를 구현하지 않고 사용. 엔티티는 db와 바로 연결되어 있으므로 안전상의 문제가 발생 가능성이 높다. 엔티티를 생성할 경우에는 롬복의 @Builder 어노테이션을 통한 빌드패턴을 사 @Id 애너테이션 - SQL에서 Primary Key와 같은 특징을 가집니다. 고유 번호를 기본 키로 함으로써 동일한 값으로 저장할 수 없게합니다. @GeneratedValue - GenerationType.IDENTITY는 SQL에서 Auto_Increment와 같은 ..

스프링 부트 Validation
BackEnd/Spring 2023. 11. 17. 02:53

Lombok @Data 어노테이션은 @Getter/ @Setter/ @ToString/ @EqualsAndHashCode/ @RequiredArgsConstructor를 합친 것 Spring Boot @Validated어노테이션 이 클래스를 구성하는 메서드 중에서 1개라고 notblank notnull... 을 사용하면 지우면 안 된다. @Valid `주로 메서드의 매개변수에 사용되며, 주로 스프링 MVC에서 컨트롤러의 메서드에 적용된다.` @Validated `주로 메드나 클래스에 사용되며, 스프링 MVC 외의 다른 레이어에서도 사용할 수 있다.` @NotBlank 해당 어노테이션이 붙은 요소가 null이 아니고 공백 문자를 제외한 적어도 하나의 문자를 포함하고 있음을 검증한다. @NotNull 말 그..

[Lombok]
Study 2023. 10. 27. 15:03

롬복을 처음 이용했는데 매우 좋은 라이브러리였다. Getter와 Setter을 Lombok을 이용해 @Getter @Setter를 변수에 작성하기만 하면 Getter와 Setter을 쓴것과 같은 효과를 준다! Dependencies implementation 'org.projectlombok:lombok:1.18.30' annotationProcessor 'org.projectlombok:lombok:1.18.30' testImplementation 'org.projectlombok:lombok:1.18.30' testAnnotationProcessor 'org.projectlombok:lombok:1.18.30' class Lombok { private String name; public String ..