• [기타]Grafana Loki

    들어가며 현재 우리팀에서 서비스 하고 있는 MSA 환경의 서비스들은 로그를 사내 인프라팀에서 제공하는 ES에서 수집하고 Kibana와 결합하여 데이터를 시각화 하거나 로그를 조회하는 용도로 사용하고 있다. 그런데 우리팀 뿐만 아니라 다른팀들도 같이 사용하고 있다보니 로그 수집 용량에 한계가 있어서 최대 2주까지만 로그 보관이 가능한 상황이었다. 운영 문의를 처리하다보면 2주는 기본이고 한달,...


  • [Java]Mybatis Generator

    DTO 클래스를 생성하기 너무 귀찮다… 사내 프로젝트들은 기본적으로 A라는 테이블에 대해서 1대1로 매핑되는 DTO를 만들어서 쓰는 편이다. 아, 물론 이번 글 제목에도 나와있듯이 이 Table-DTO 관계에 쓰이는 DTO 클래스들은 개발자가 직접 Getter, Setter, ToString… 등을 달아서 생성하는건 아니다. 사내 공용 라이브러리에서는 이미 Mybatis Generator 플러그인을 이용해서 DB에 있는 모든 테이블들을...


  • [Java]Datadog Span Tags (feat. Datadog 도입썰)

    짧게 적어보는 Datadog 도입.ssul 올해 상반기부터 사내 APM 솔루션으로 데이터독을 도입하게 되었다. 이전에는 핀포인트를 사용하고 있었는데 무료인 점에서는 충분히 매력적이나 데이터독의 기능이 너무 막강하여 안 넘어갈 수가 없었다. 라고 썼지만 이러한 사내 솔루션 도입은 인프라를 전담하는 팀에서 사전에 시장 조사를 하고 여러 솔루션을 나열하고 그 중에 하나를 골라서 PoC를 진행하여...


  • [기타]2022년 회고록

    벌써 1년이 또 지나서 2023년의 해가 밝은지도 벌써 두달이 지났다. 올해는 연초부터 회사일과 현재 사는 집에 대한 일 등으로 조금 정신없이 보내고 있다가 이제 좀 한가해져서 2022년에 대한 회고록을 적어보고 있다. 1. 2022년엔… 작년에 썼던 회고록의 작성 시점이 이미 2022년 중순쯤이었는데 당시에 회사에서 진행 중인 멤버십 서비스 런칭으로 인해 상당히...


  • [Kafka]한번에 여러 건의 메시지를 컨슘하는 BatchListener (feat. 멀티 스레드)

    보통 일반적인 카프카 리스너는 public void consumeTest(ConsumerRecord<String, TestDto> record, ConsumerRecordMetadata meta)에서 볼 수 있듯이 ConsumerRecords가 아닌 ConsumerRecord 단수 파라미터를 받게 된다. 한번에 하나의 레코드만 받아다가 하나의 메시지를 처리할 수 있다. 카프카 리스너를 일종의 배치처럼 특정 타이밍마다 혹은 어느정도의 메시지가 쌓였을 때만 컨슘하여 메시지를 한번에 처리할 수 있는 방법이 없을까 찾아보다가...