Slack Chat API 사용하여 슬랙 알림 메시지 전송 포스팅 썸네일 이미지

BackEnd/Spring

Slack Chat API 사용하여 슬랙 알림 메시지 전송

슬랙에서 지원해 주는 Chat API를 사용하여 알림 메시지를 전송해 주는 샘플 코드를 작성해 보겠습니다.[STEP 1] 알림봇으로 사용할 App 생성 api.slack.com/apps 접속 후 Create an App 클릭  앱 이름 및 알람봇을 적용할 Workspace 지정  [STEP 2] 생성한 알림봇에게 권한 부여 좌측 사이드바 Features → OAuth & Permissions 클릭  스크롤 살짝 내려서 Scopes 설정 항목 찾은 후 Add on Oauth Scope 클릭   알림봇에게 channels:read(채널 조회) 및 chat:write(메시지 전송) 권한 부여  [STEP 3] API 사용 시 필요한 토큰 발급받기 좌측 사이드바 Settings → Install App → In..

2023.02.27 게시됨

Static 변수에 @Value Injection 하기 포스팅 썸네일 이미지

BackEnd/Spring

Static 변수에 @Value Injection 하기

보통 application.properties에 선언되어 있는 변수 값을 @Value 어노테이션을 사용하여 Injection 하는데, Spring에서는 @Value가 static field를 지원하지 않기 때문에 Setter Inject으로 값을 할당할 수 있습니다. 기존 public class AuthToken { @Value("${jwt.secret}") private static String jwtSecret; // null } 수정 public class AuthToken { private static String jwtSecret; // jwt.secret value @Value("${jwt.secret}") public void setJwtSecret(String jwtSecret) { Aut..

2023.01.15 게시됨

Spring Gradle logback.xml 설정하여 로그 파일 저장하기 포스팅 썸네일 이미지

BackEnd/Spring

Spring Gradle logback.xml 설정하여 로그 파일 저장하기

백엔드 개발을 하면서 가장 중요하다고 느꼈던 부분 중 하나가 로그인 것 같습니다. 아무리 체크리스트를 작성하여 다양한 케이스의 테스트를 하더라도 실제 운영기에 배포 후 예상치도 못한 시스템 오류가 발생하여 클라이언트로부터 해당 사실을 전달받는 경우가 있는데, 이때 빠르게 확인할 수 있는 로그와 시스템 로그 두 가지가 있다면 원인 추적하는 시간이 생각보다 꽤 줄어드는 것 같습니다. logback.xml 파일을 설정하여 custom.log 와 system.log 두 개의 로그 파일을 저장해보도록 하겠습니다. [STEP 1] build.gradle 파일에 logback 관련 dependencies 추가 // logback implementation group: 'ch.qos.logback', name: 'lo..

2022.11.12 게시됨

Spring HikariPool Failed to validate connection 포스팅 썸네일 이미지

BackEnd/Spring

Spring HikariPool Failed to validate connection

Hikari CP와 DataBase의 Connection 관계 이해도가 낮아 해당 오류를 해결하는데 시간이 조금 걸렸다. 원인 : Hikari CP에선 Thread가 Connection을 요청하면 최초 연결 이후 해당 Connection을 CP(Connection Pool)에 담아놓고 재요청이 들어왔을 때 담아두었던 해당 Connection을 연결해준다. 불필요한 Connection 시도를 줄일 수 있어 효율적이지만 DataBase에서 Connection을 끊어버리면 Hikari CP에선 해당 사실을 알 수가 없어 연결 중이라 착각하고 끊긴 Connection을 연결해주는 과정에서 발생하는 오류이다. 해결 : 위 로그 내용 중 Possibly consider using a shorter maxLifeti..

2022.11.11 게시됨

STS4 SpringBoot Gradle 프로젝트 생성 포스팅 썸네일 이미지

BackEnd/Spring

STS4 SpringBoot Gradle 프로젝트 생성

https://start.spring.io 접속 후 프로젝트를 생성한다. * 최근 추세는 Maven -> Gradle로 바뀌고 있다고 한다. @SpringBootApplication public class SpringApplication { public static void main(String[] args) { SpringApplication.run(SpringApplication.class, args); } } SpringBoot는 기본적으로 Jar 배포 형태를 가지고 있다. SpringApplication 클래스의 어노테이션인 @SpringBootApplication을 통해 개발자가 작성한 클래스들이 자동으로 읽어져 빈으로 등록되고, 의존성에 추가한 라이브러리의 자동 설정 및 빈 등록 또한 진행된다..

2021.12.01 게시됨