1. 개요로그 수집을 하기 위한 솔루션이라고 하면 당연히 ELK(Elasticsearch, Logstash, Kibana)를 떠올릴 수 있다. 하지만 무거운 ELK를 감당하기엔 서버 스펙이 낮았고, 비교적 가볍게 실행할 수 있는 PromTail, Loki, Grafana를 도입하게 되었다. 또한 메트릭 수집은 Prometheus, Grafana로 이미 진행하고 있었기 때문에 도입의 근거는 더욱 명확했다. 어쩌다보니 로그 수집 환경 구축만 3번째이다. Cloud Watch, ELK, Loki.. 2. Grafana & Promtail & Loki 설치 Grafana는 오픈 소스로 제공되는 대시보드 및 시각화 플랫폼이다. 그라파나는 다양한 데이터소스로부터 데이터를 가져와서 대시보드와 그래프 ..
1. Lambda 도입 이유만약 50X50 사이즈의 이미지를 로딩하는데 10MB 짜리 400X400 사이즈의 이미지를 이용한다면 리소스 낭비가 심하다. 위와 같은 경우가 한 개가 아니라 여러 개일 경우 사용자가 체감하는 응답 시간은 꽤 클 것이다. 이를 해결하기 위해 리사이징(RTesizing)기술을 사용하여 이미지 용량을 줄임으로써 속도를 빠르게하는 방법론은 이미 많은 사람들이 사용하고있다. 하지만 이미지 리사이징 작업 같은 경우 CPU와 메모리를 많이 사용하기 때문에 로컬 서버에서 작업을 돌려버리면 다른 사용자의 요청을 못받는 현상이 생길수 있다. 그렇다고 따로 이미지 리사이징 전용 로컬 서버를 만들어 올린다 해도, 모든 사용자가 항상 이미지 리사이징 작업 기능을 이용하는 것도 아니기에 서버를 계..
1. 개요진행중인 프로젝트에서 현재 사용자가 보고 있는 지도 화면에 일자리를 띄워주는 기능을 개발하게됐다. 에어비엔비 같은 숙박 업소, 네이버 부동산같은 부동산 플랫폼에서도 쉽게 볼 수 있는 기능이다. 우리 서비스에도 이와 비슷한 기능이 있고, 아래는 개발 중인 서비스의 초안 디자인이다. 각 일자리 모집 공고에는 이미 위도, 경도 데이터를 함께 갖고 있다.따라서 현재 클라이언트가 보고 있는 지도의 북동쪽, 남서쪽 위도, 경도를 파라미터로 받은 후 쿼리를 날려 조회해 올 생각이다. 사실 학습이 꽤나 필요하거나, 정리할 게 있는 경우에만 포스터를 작성하는 편인데 이번엔 구글링 했을 때 자료가 너무 없어서 처음 하시는 분들이게 조금이나마 도움이 되고자 쓰고있다. 2. 카카오 Map Key 발..
Repeat스프링 배치는 특정 조건이 충족될 때까지 Job 또는 Step을 반복하도록 배치 애플리케이션을 구성할 수 있다. 스프링 배치에선 Step과 Chunk의 반복을 RepeateOperation을 사용해 처리하고 있다.기본 구현체론 RepeatTemplate을 제공한다. Step은 RepeatTemplate을 사용해 Tasklet을 반복적으로 실행한다. ChunkOrientedTasklet은 내부적으로 ChunkProvider를 통해 ItemReader로 데이터를 읽어올 것을 지시한다. ChunkProvider는 내부적으로 RepeatTemplate을 갖고 있고 이를 이용해 반복적으로 ItemReader에게 반복적으로 데이터를 읽어오도록 처리한다. FaultTolerant스프링 배치는 Jo..
1. 개요예전에 프로메테우스, 그라파나를 도커로 띄워 스프링 부트 모니터링 환경을 구축했었다. 하지만 모니터링을 매번 눈으로만 하기는 힘들다. 그라파나에선 쿼리를 통해 slack, email 등 여러 서비스로 알림을 보내줄 수 있다. 사실 처음 모니터링 환경을 구축했을 때도 slack으로 알림을 보내도록 하고싶었는데, PromQL 다루는데 미숙해서 실패했었다. 이번에 깔끔하게 정리해서 기록해두려 한다. 2. Slack 설정먼저 알람 메시지를 Slack으로 전달받기 위해 Slack의 Web Hook 을 생성해야 한다. Slack App 생성하기 Slack API 홈페이지에 접속한 후 로그인 해준다. 로그인이 완료되었다면, Create New App 버튼을 클릭해 Slack App을 생성해..
1. 개요현재 진행중인 창업 프로젝트의 기능 개발이 대부분 끝나고, 사업자가 나와야 할 수 있는 SMS, 알림톡 부분과 뱅킹 기능만이 남았다. 지난 5개월간 정신없이 기능 개발에 집중하다보니 미흡한 부분이 꽤나 보였고 최근엔 하나하나 리펙터링 과정을 밟고있다. 꼼꼼히 지난 코드를 살피던 중 동시성 문제가 발생할 만한 로직이 발견됐고 이를 해결하고자 Thread-Safe, 동시성 문제에 대해 공부하게 됐다. 아래 게시글에서 공부했던 내용들을 정리해뒀다. https://dgjinsu.tistory.com/53 멀티 쓰레드 사용 시 꼭 알아야 할 내용 - Thread-Safe멀티 쓰레드는 프로그램의 성능을 향상시키는 가장 확실한 방법이다. 하지만 여러 쓰레드가 자원을 공유한다면 예기치 않은 문제를 발생시..