SpringBoot 활용하여 Slack메시지 보내기

2023. 3. 19. 15:39BackEnd/Spring&Spring Boot

작성자알 수 없는 사용자

728x90
반응형

 

안녕하세요. 기깔나는 사람들에서 백앤드개발자를 맡고있는 Hardy입니다.

 

 

저번글 디스코드에 웹훅보내기에 이어서 이번에는 슬랙을 확용하여 메시지 보내기를 구현해보도록 하겠습니다.

 

이전 글에서 작성한  의존성 , 보낼 메시지 정제하기 , HttpBody를 사용하기 위해 새로운 Rquest생성 , 데이터 정제를 위한 필터는

 

그대록 유지해 주셔야합니다!!

 

슬랙에 경우에는 기본 제공해주는 라이브러리가 존재합니다. 하지만 저희는 특정 데이터 형식으로 보낼꺼기 때문에 사용하지 않겠습니다.

 

만약 기본적인 슬랙 라이브러리가 필요하시다면 아래 의존성을 추가해 주시면 됩니다.

 

 implementation 'com.github.maricn:logback-slack-appender:1.6.1'

이제 시작하겠습니다.

 

 

 

 

 

 


 


의존성 추가

 

implementation 'net.gpedro.integrations.slack:slack-webhook:1.4.0'

- 해당 의존성은 slack에 메시지를 보낼때 사용됩니다.

- 해당 의존성을 추가하게 되면 slack에서 사용되는 filed들을 자유롭개 사용할 수 있으며 , 해당 필드 설정대로 slack에 메시지를 보낼수 있습니다.

 

슬랙 웹훅 URL 생성하기

- 슬랙 앱에 로그인을 합니다.

- 로그인 이후 webHook을 보내고자 하는 워크스테이션에 접속을 합니다.

- 접속을 하게되면 아래와 같이 워크스테이션 아래에 slack찾아보기를 선택한 후 앱을 선택합니다.

 

 

 

- 해당 앱을 검색한 후 클릭 후 구성을 누릅니다.

 

 

- slack에 추가를 클릭합니다.

 

- webhook을 보내고자 하는 채널을 선택합니다.

- 채널을 선택한 후 수신 웹후크 통합 앱 추가하기를 선택합니다.

 

- 그럼 보내고자 하는 채널의 웹후크 url을 받을 수 있습니다.

 

- 이제 받은 url을 아래와 같이 application.yml에 넣어 주셔야 합니다.

  slack:
    webhook-uri: https://hooks.slack.com/services/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

 

여기까지 완료되었다면 웹후크를 보낼 준비가 되었습니다.

 

 


SlackAppender 클래스 생성

 

- 해당 클래스는 logback에서 제공하는 AppenderBase를 상속받은 클래스 입니다.

- 해당 클래스를 Appender로 등록하기 위해서는 LoggerContext에 등록을 해줘야 하며 , @PostConstruct를 활용하여 등록을 했습니다.

- 해당 클래스를 Appender로 등록을 하면 로그 이벤트가 발생했을때 append메소드가 호출 되어 slack에 메시지를 보내게 됩니다.

 

 

SlackWebHook

- slack에 보낼 메시지를 생성합니다.

- 맨 처음 의존성을 주입한 net.gpedro.integrations.slack:slack-webhook 해당 라이브러리에서 제공하는 slackApi를 사용하여 메시지를 보내게 됩니다.

 

SlackMessageGenerator

- slackAttacment는 slack메시지 상에서 하나의 블록입니다.

- 하나의 블록은 하나의 메시지 블록을 의미합니다.

 

 

- fields는 slackAttacment안에 소제목이라고 생각하시면 됩니다.

 

 

- 해당 클래스는 slack에 보내고자하는 데이터를 만드는 역할을 합니다.

- net.gpedro.integrations.slack:slack-webhook  라이브러리에서 제공하는 slack의 필드에 맞게 정제된 데이터를 넣어주시면됩니다.

 

여기까지 완료되었다면 보낼 준비는 끝이 났습니다. 한번 보내보도록 하겠습니다.

 

Slackwebhook 보내기

- 해당 클래스를 생성한 후 서버를 가동합니다.

- 서버 가동후에 해당 url로 요청을 보내보도록 합시다.

 

 

- 내가 등록한 slack채널에 들어가보면 해당 형태의 로그 데이터가 보내진것을 확인 할 수 있습니다.

 

다음 글에서는 Telegram에 보내는 방법을 소개하도록 하겠습니다.


 


 

 

 

 

728x90
반응형