본문 바로가기

분류 전체보기231

텔레그램 봇을 이용한 알림 서비스 만들기(1) 들어가며 텔레그램에서 제공하는 Bot을 이용하여 알림 서비스를 만들 수 있다. 텔레그램에서 필요한 설정부터 코드 구현까지 알아본다. 다음 서비스를 이용하여 노티가 필요한 다양한 부분에서 사용할 수 있다. 이미지가 많아 1부와 2부로 정리한다. 1부에서는 텔레그램 봇 토큰과 챗 아이디 얻기 및 텔레 봇 노티 테스트로 이루어져 있다. 텔레그램 봇을 이용한 알림 서비스 만들기(1) 개발 환경 - 스프링부트 - 코틀린 순서는 아래와 같은 순서로 진행된다. 텔레그램 봇 토큰 얻기 (1부) 텔레그램 챗 아이디 얻기 (1부) 텔레 봇 노티 테스트 (1부) 코드 구현 (2부) 테스트 코드 확인 (2부) 텔레그램 봇 토큰 얻기 먼저 텔레그램이 설치해준다. 설치가 되었다면 텔레그램 상단 검색창에 botfather 라고 검.. 2023. 4. 9.
Spring - @Retryable 을 이용한 재수행 로직 처리하기 들어가며 서비스를 개발하거나 어떤 로직을 구현할 때 실패에 따른 재수행 로직을 추가하고 싶을 때가 있다. 따로 코드로 구현할 수 있겠지만 스프링을 사용한다면 스프링에서 제공하는 @Retryable 어노테이션을 통해서 간편하게 재수행 로직을 구현할 수 있다. Spring - @Retryable 을 이용한 재수행 로직 처리하기 @Retryable 사용 방법 먼저 @Retryable을 사용하기 위해서는 다음 두가지 작업을 해줘야 한다. 1. 의존성 추가 implementation("org.springframework.retry:spring-retry") implementation("org.springframework:spring-aspects") 2. @EnableRetry 어노테이션 추가 다음 두가지 작업이.. 2023. 4. 2.
동시성 이슈를 해결하기 위한 Redisson 분산락 알아보기(1) 동시성 이슈를 해결하기 위한 방법으로는 여러가지 방법이 있지만 오늘은 그중 Redisson에서 제공하는 분산락을 통해 동시성을 제어하는 방법에 대해서 정리한다. 내용은 1편과 2편으로 나눠 1편에서는 동시성 이슈의 관한 이론과 Redisson의 이론적인 부분을 정리하고 2편에서는 코드를 통해서 동시성 이슈에 대한 테스트를 진행한 내용에 대해서 정리한다. 동시성 이슈를 해결하기 위한 Redisson 분산락 알아보기(1) 동시성 이슈? Redisson에 대해서 알아보기 위해 먼저 동시성 이슈가 무엇인지에 대해서 알아본다. 동시성 이슈란, 동일한 자원에 대해 둘 이상의 스레드가 동시에 제어할 때 나타나는 문제이다. 이해가 쉽도록 다음 코드로 예를 들어본다. 다음과 같은 서비스 로직이 있다. @SpringBoo.. 2023. 3. 27.
Google - Natural Language API + AutoML 기사 추천 알고리즘을 만들기 위해 이용할 수 있는 구글에 Natural Language API에 대한 내용을 정리하고, 구현한 코드와 데모사이트에서 제공하는 결과 값을 비교한 내용을 정리한다. Google - Natural Language API 구글이 제공하는 Natural Language AI에는 머신러닝 커스텀 모델을 학습하여 사용할 수 있는 AutoML 기능과 자연어 이해를 적용할 수 있는 Natural Language API 기능을 제공한다. Natural Language API 와 AutoML Natural Language API는 강력한 선행 학습된 모델을 통해 감정 분석, 항목 분석, 구문 분석, 콘텐츠 분류의 기능을 통해 개발자가 애플리케이션에 자연어 이해를 쉽게 적용시킬 수 있도록 지원.. 2023. 3. 23.
Heap Dump 분석 - Jmap & Eclipse Memory Analyzer(MAT) Java Application을 개발하고 운영하다 보면 메모리 누수 즉, OutOfMemoryError를 겪는 경우가 있다. 그 중에서도 힙 메모리 공간이 부족해서 생기는 에러인 java.lang.OutOfMemoryError: Java heap space이 발생했을 때 HeapDump 분석을 하는 방법에 대해서 정리한다. Heap Dump 분석 - Jmap & Eclipse Memory Analyzer(MAT) java.lang.OutOfMemoryError: Java heap space java.lang.OutOfMemoryError 예외는 메모리 누수 상황이 발생했을 때 발생하며 그 중에서도 Java heap space 예외는 JVM 내 힙 공간이 부족하여 생기는 예외이다. 힙은 서버를 구동할 때 .. 2023. 3. 17.
자바 -Xms -Xmx 힙 메모리 설정 Jar 파일을 실행할 때 여러 옵션들을 줄수가 있는데 그 중에서도 힙메모리 관련 설정인 -Xms와 -Xmx 옵션에 대해서 정리한다. 자바 -Xms -Xmx 힙 메모리 설정 -Xms와 -Xmx -Xms와 -Xmx 옵션은 Jar 파일을 실행할 때 초기 할당 메모리와 최대 할당 메모리를 지정하는 옵션이다. 간혹 -Xms 옵션을 초기 할당 메모리가 아닌 최소 할당 메모리로 잘못 알고 있는 경우가 있는데 최소가 아닌 초기 할당 이다. 만약 다음과 같이 설정을 했다고 가정해보자. -Xms2048m -Xmx4096m 다음과 같이 옵션을 주고 jar 파일을 실행하게 되면 초기 힙 메모리 사이즈가 2048MB로 설정되고 최대는 4096MB로 설정이 된다. 테스트를 위해서 인텔리제이에서 자바 애플리케이션을 실행할 때 옵션.. 2023. 3. 14.