🚀 프로젝트/🥁 두둥

🚀 프로젝트/🥁 두둥

    [DuDoong] 두둥 프로젝트 관련 글 정리

    [DuDoong] 두둥 프로젝트 관련 글 정리

    📚 사용 언어 / 프레임워크 Java + Spring Boot MySQL Redis Docker JUnit5 Spring Batch Spring Cloud Feign 📝 관련 포스팅 Custom Enum Validator 구현하기 (Enum 값 JSON Parse Error 해결) Reflection 을 이용하여 Enum Validator 개선하기 Custom Enum Deserializer 구현하여 Enum 에 없는 값 null 로 파싱하기 스프링 날짜 타입 JSON 변환 및 포맷팅하기 - @JsonFormat, @JacksonAnnotationsInside Incoming WebHooks 로 슬랙봇 생성 및 슬랙 메세지 전송하기 500 내부 에러 발생 시 Slack 알림 전송하기 (슬랙 봇) ✨ 웹 ..

    [Spring] 스프링 500 에러 발생 시 Slack 알림 전송하기 (슬랙 봇)

    [Spring] 스프링 500 에러 발생 시 Slack 알림 전송하기 (슬랙 봇)

    지난 글에 이은, 본격적으로 500 내부 서버 에러 발생 시 슬랙으로 알림을 전송해주는 봇을 만들어보는 글이다. Slack API 를 활용하여 이러한 알림 서비스를 구현할 수 있다. ⚙️ Dependency implementation 'com.slack.api:slack-api-client:1.27.2' 다음과 같은 의존성을 build.gradle 에 추가해준다. 🚀 Slack API 사용하기 위한 설정 📝 SlackApiConfig @Configuration public class SlackApiConfig { @Value("${slack.webhook.token}") private String token; @Bean public MethodsClient getClient() { Slack slackC..

    [Spring] 스프링 Slack 메세지 전송하기 (Incoming WebHooks 활용하여 슬랙봇 만들기)

    [Spring] 스프링 Slack 메세지 전송하기 (Incoming WebHooks 활용하여 슬랙봇 만들기)

    개발 중 로컬 서버에서 발생한 에러는 바로 탐지가 가능하지만, 배포 서버에서 실행 중일 때 발생한 에러는 바로 탐지가 어렵다. 그래서 에러 발생 시 메세지를 띄워주면 좋겠다고 누구나 한 번 쯤은 생각해보았을 것이다. Slack API 를 활용하여 알림을 보낸다면 이러한 알림 서비스를 구현하고 활용할 수 있다. 다만 이 파트에서는 에러 자동 탐지 알림 대신 사용자 편의를 의한 단순 메세지 발송에 대해서만 적었다. 500 서버 에러 탐지 알림은 아래 다른 게시글에 올려두었다. https://gengminy.tistory.com/53 [Spring] 스프링 500 에러 발생 시 Slack 알림 전송하기 (슬랙 봇) 지난 글에 이은, 본격적으로 500 내부 서버 에러 발생 시 슬랙으로 알림을 전송해주는 봇을 만..

    [Spring] 스프링 날짜 타입 JSON 변환 및 포맷팅하기 - @JsonFormat, @JacksonAnnotationsInside

    [Spring] 스프링 날짜 타입 JSON 변환 및 포맷팅하기 - @JsonFormat, @JacksonAnnotationsInside

    개발을 하다보면 좋든 싫든 항상 날짜에 대한 포맷팅을 마주하게 된다. 이 글에서는 그 과정에서 공부했던, @JsonFormat 을 활용하여 LocalDateTime 등 날짜에 대한 JSON 직렬화하기와 또 날짜 포맷팅, Jackson 을 활용한 커스텀 어노테이션까지 적어보았다. 💥 LocalDateTime 형식 { "name": "hello", "startAt": "2023-02-26T15:12:17.536Z", "endAt": "2023-02-26T15:12:17.536Z" } LocalDateTime 같은 경우에는 기본적으로 중간에 알파벳 등이 섞여있어 응답 시 같이 내보내게 된다. { "name": "hello", "startAt": "2023.03.20 12:00", "endAt": "2023.0..

    [Spring] 스프링 Custom Enum Deserializer 구현으로 JSON Enum null 로 파싱하기

    [Spring] 스프링 Custom Enum Deserializer 구현으로 JSON Enum null 로 파싱하기

    https://gengminy.tistory.com/48 [Spring] 스프링 Enum Validator Reflection 으로 개선 및 구현하기 https://gengminy.tistory.com/47 [Spring] 스프링에서 Enum 클래스 Validation 추가하기 (Enum JSON parse error 해결) 스프링에서 일반적으로 RequestBody 의 값을 Validation 하는 방법 스프링 MVC 에서 @Valid 어노테이션을 gengminy.tistory.com 앞서 스프링에서 Custom Enum Constraint Validator 를 Reflection 으로까지 구현했다. 하지만 딱 한 가지가 남았는데.... 보기 싫었던 다음과 같은 반복적인 코드가 있다. // Enum V..

    [Spring] 스프링 Enum Validator Reflection 으로 개선 및 구현하기

    [Spring] 스프링 Enum Validator Reflection 으로 개선 및 구현하기

    https://gengminy.tistory.com/47 [Spring] 스프링에서 Enum 클래스 Validation 추가하기 (Enum JSON parse error 해결) 스프링에서 일반적으로 RequestBody 의 값을 Validation 하는 방법 스프링 MVC 에서 @Valid 어노테이션을 명시해주면 컨트롤러에서 해당 값에 대해 미리 Validation 해줘서 값이 들어오게 된다. JAVAX 에서 @Not gengminy.tistory.com 앞서 작성한 스프링에서 Custom Enum Constraint Validator 구현하기 이 글에서 @Enum 이라는 커스텀 어노테이션을 만들었고 Request 필드에서 적용해보았다. @Schema(defaultValue = "OPEN", descri..

    [Spring] 스프링에서 Enum 클래스 Validation 구현하기 (Enum JSON parse error 해결)

    [Spring] 스프링에서 Enum 클래스 Validation 구현하기 (Enum JSON parse error 해결)

    스프링에서 일반적으로 RequestBody 의 값을 Validation 하는 방법 스프링 MVC 에서 @Valid 어노테이션을 명시해주면 컨트롤러에서 해당 값에 대해 미리 Validation 해줘서 값이 들어오게 된다. JAVAX 에서 @NotBlank, @NotNull, @Positive 등등 원시 타입에 대해서는 여러 가지 기본 검증을 지원한다. 하지만 Enum 클래스에 대한 Validation 은 기본으로 지원하지 않는다. 그러면 어떤 식으로 처리해야 할까? 📌 Enum Validation 처리를 하지 않았을 경우 Enum 필드에 대해 Validation 처리하지 않는다면 Enum 클래스에 속하지 않은 값이 Request 필드에 포함되면 JSON 값을 Enum 으로 올바르게 파싱하지 못하여 위 처럼..