Web(54)
-
Fixture Monkey로 테스트에서 객체를 자동으로 생성해보자
Fixture Monkey 란? 2023년 11월 10일 네이버의 오픈소스 픽스쳐 몽키가 정식 릴리즈 되었습니다. 픽스쳐 몽키는 코틀린, 자바에서 테스트 객체를 자동으로 생성하는 라이브러리 입니다. 테스트용 객체를 만드는데 생성자나, Builder 패턴을 사용하여 번거럽고 시간이 많이 걸리는 일을 줄여 간결하고 생산성있는 테스트코드를 작성하는데 도움을 줍니다. https://github.com/naver/fixture-monkey?tab=readme-ov-file Maven 의존성 추가 com.navercorp.fixturemonkey fixture-monkey-starter 1.0.0 test 사용방법 Lombok 을 사용할 경우 롬복으로 생성자를 만들 경우 ConstructorPropertiesArb..
2024.02.13 -
ObjectMapping 라이브러리 비교
JSON to DTO, Entity to DTO 으로 각 객체가 Mapping이 필요할 때가 많습니다. 필드가 적을 경우에는 직접 생성자를 통해서 해줄수 도 있겠지만 필드가 많을경우 굉장히 번거로운 작업이 될 경우가 많습니다. 그래서 보통 ObjectMapping 라이브러리를 사용하는데, 각 ObjectMapping 라이브러리를 비교해보고, 적합한 상황에 맞춰 사용하는것이 좋을거 같아 글을 적습니다. 1. ObjectMapper 첫번째로 가장 흔하고 자주 사용하는 ObjectMapper입니다. ObjectMapper는 Jackson 라이브러리의 일부로 제공되며, 주로 JSON-Object 변환을 수행하는 데 사용합니다. spring-boot-starter-web 에 포함되어있기 때문에, 일반적인 spri..
2024.01.24 -
[Spring] @Constraint로 커스텀 벨리데이션 만들기
1. @Constraint 해당 어노테이션을 사용하면, 사용자가 원하는 Constraint와 Validation을 만들어 이를 적용할수있다. 도메인 모델에서 부여되는 제약조건을 생성하기 위해 쓰인다. 2. 예시 @Constraint(validatedBy = GenderValidator.class) @Target(ElementType.FIELD) @Retention(RetentionPolicy.RUNTIME) public @interface ValidGender { String message() default "올바른 성별을 입력해주세요"; Class[] groups() default {}; Class
2022.12.07 -
[JPA] 스프링 JPA 다중DB 사용하기
@Configuration @RequiredArgsConstructor @EnableJpaRepositories( basePackages = {"프로젝트 패키지 경로"}, entityManagerFactoryRef = "dbEntityManager", transactionManagerRef = "dbTransactionManager" ) @EnableTransactionManagement public class DbConfig { private final DbProperties dbProperties; private final DbWriteProperties dbWriteProperties; @Value("propertise에 입력된 값") private boolean showSql; @Bean publ..
2022.11.28 -
[Grafana] 그라파나에서 팀즈로 알람(alerting) 받기
그라파나 9.0 버전부터 알람을 보내는 방법이 변경이 된거 같아 정리해보려고 한다. - 스프링부트를 사용하며 스프링부트 액츄에이터를 이용하여 프로메테우스에 메트릭정보를 보내서 모니터링으로 활용할수 있다. 하지만 프로메테우스만 으로는 한계가 있어 좀더 UI 시각화에 좋은 그라파나도 같이 연동해서 사용하는 편이다. - 모니터링 설정을 하는 방법은 차후에 정리해서 올리기로 하고, 지금은 설정된 그라파나를 이용해 팀즈 웹훅을 통해 알람을 받는 방법에 대해 적어보려고 한다. 1. 첫번째로 Contact points 를 설정해 어디로 알람을 받을건지 미리 입력을 해둔다. 2. Alert rules를 입력해 어떤상태일때 알람을 받을건지 설정을 합니다. 여기서 C 부분을 참고하시어 지금은 A쿼리 의 마지막 값이 3을 ..
2022.11.28 -
[JPA] AuditorAware을 사용하여 자동으로 등록/수정자 생성하기
JPA 를 사용하다 보면 중복적으로 등록자/등록일/수정자/수정일 DB에 등록할 경우가 잦다. AuditorAware을 구현하여 이런 중복적인 코드를 제거하고 어노테이션을 활용하여 간단하게 해경해보자. 1. AuditorAware 을 Implement 받는 클래스 생성 로그인 시 스프링 시큐리티에 있는 로그인 정보를 받아올수 있도록 로직을 구성해준다. public class AuditorAwareImpl implements AuditorAware { @Override public Optional getCurrentAuditor() { Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); if (null ..
2022.11.21