Skip to main content Link Menu Expand (external link) Document Search Copy Copied
  • 2025-12-26 Grafana Redis Cluster 대시보드 + Stream lag 모니터링 쿼리 기본 샤딩된 stream 별 소비자 그룹 및 컨슈머 lag 모니터링을 추가했습니다. 그리고 link 들어가면 아래처럼 pending 된 메세지들을 확인하는 페이지로 이동하도록 설정하였습니다.
  • 2025-12-24 XACKDEL 미지원, Grafana 대시보드 spring data redis 에 아직 xAckDel 이 반영이 안되어있어서 유틸 만들어서 추가하였습니다. 그래도 결국 extension 함수로 만들어도 lettuce 에서 응답파싱할 때 XACKDEL 응답을 뭘로 파싱해야하는지 몰라서 에러가 납니다.
  • 2025-12-22 Redis Stream 파티셔닝 시 한계점 stream 을 파티셔닝할려고 했는데 생각해보니까 kafka 처럼 파티션을 컨슈머에 할당하는 리밸런싱을 직접 해줘야할 것 같습니다. 그러니까 파티셔닝된 stream 당 하나의 파드내 컨슈머에서 읽을 수 있도록 해야합니다.
  • 2025-12-21 Redis Cluster 내 설정값 관리 및 구축 쓰기 확장성을 고려한 redis cluster 구축을 위해서 docker 로 초기 설정을 진행했었습니다.
  • 2025-12-18 Redis 8.4 를 써야하는 이유 이번에 redis 단일 노드만 쓰다가 cluster 로 구축해보면서 redis 버전을 정해야했습니다. 그래서 버전별 어떤 기능이 추가되었고 변경되었는지 정리했더니 진짜 유용해서 작성합니다. Redis 8.2 에서 XACKDEL 명령이 추가되었다고 합니다.
  • 2025-12-10 redis stream 는 kafka 와 달리 그런거 없었다... 실무에서 redis stream 으로 사용자에게 알림전송 시스템을 구축하면서 kafka 와 다른점들을 많이 느꼈다. 개인적으로 느낀 4개 주요 차이점 있는데 AI 의 힘을 빌리지 않고 정리해본다.
  • 2025-11-30 공통 개발 라이브러리를 직접 만들어서 gradle 모듈 github package 로 쉽게 관리하기 교촌, 자담 등 여러 프랜차이즈 서비스를 운영하다 보면, 각 프로젝트에서 공통으로 사용하는 코드(도메인, 유틸, 설정 등) 가 생깁니다. 그래서 저희 팀은 하나의 저장소 안에 여러 브랜드의 모듈을 함께 관리하는 구조로 시작했습니다.
  • 2025-11-17 Ollama 는 mac m1 환경에서 docker 실행하기엔 너무 느렸다... m1 에서 docker 로 ollama gemma3 모델 서빙할려고 했는데 너무 느림. 그래서 찾아보니 ollama 측에 이슈 봤는데 여기서 답변을 잘 해줌. 맥에서는 docker 에 gpu 메탈가속을 공유하지 못해서 느리다고 함. 그래서 그냥 맥에서 직접 서빙해야한다.
  • 2025-11-11 API 최적화 방법 최근 API 응답 최적화 관련 질문을 받았꼬 해당 방법에 대해 진짜 시작부터 끝까지 하나의 플로우로 정리해봤다. 일단 API 는 유저 정보를 불러오는 API 이며 내부망 API 2번 및 DB 1번 호출이 포함되어 있다고 가정한다.
  • 2025-11-10 protobuf 이진 내부구조 분석 및 gRPC 와 REST API 성능 비교 요즘 gRPC 를 외/내부망 통신에 많이 사용하는 추세이다. 듣기로는 소형 이진포멧으로 페이로드 크기를 줄일 수 있다고 한다. 성능 최적화에 기여할 수 있을 것 같아서 평소에 restAPI 만 쓰다가 이참에 gRPC 에 대해 알아보기로 했다.
  • 2025-11-07 GZIP 압축을 이용한 서버 응답 최적화(?) API 응답 최적화 방법 중 하나로 GZIP 압축을 이용하는 방법이 있다고 한다. 뭔가 데이터를 압축해서 보내면 네트워크 전송량이 줄어들어서 응답속도가 빨라질 것 같긴 한데, 실제로 효과가 있을까 궁금해서 실행해봤다. 일단 먼저 gzip 이란?
  • 2025-10-28 대용량 엑셀 파일 처리를 위한 Apache POI 최적화 팁 약 엑셀 하나당 100MB 이상의 대용량 엑셀 파일을 연속으로 처리해야하는 상황이 있었습니다. 칼럼수도 증가하며 row 수는 1000만건이 넘어가면서 메모리 부족 이슈가 발생했습니다. 거의 1GB 이상의 메모리에 올라가있는 상황이 발생했죠.
  • 2025-10-10 Bean 안쓰고 로우레벨에서 싱글톤으로 관리하기 일반적으로 Spring-Boot 쓰다보면 싱글톤 관리할려고 할 때 @Bean, @Component, 등등 어노테이션으로 객체를 관리한다. 그러다가 문득 아예 로우레벨에서 싱글톤으로 관리하는 방법도 알면 좋을 것 같아서 정리해본다.
  • 2025-10-09 ElasticSearch ILM 설정 기록 용량제한 90% 가 넘으면 경고가 뜨고, 95% 가 넘으면 읽기전용으로 바뀐다. 롤오버로 새로운 인덱스 생성하는거 굳이 안써도 됨.
  • 2025-10-04 llama2 chat 7b run on MBP M1 max 최종 목적은 git PR 요약 및 개선점을 머지 이전에 알아서 AI 가 로컬에서 alert 하는게 목적이다. 이를 위해서는 그래도 1분이내 응답이 만료되어야하고, 응답이 1000자 까지 지원해줘야한다(다시보니 500자도 충분할 듯).
  • 2025-10-02 실수로 인해 발생하는 장애를 방지하기 위한 개인적인 규칙과 셋업 실수로 인해 발생하는 장애를 방지하기 위해 개인적인 규칙과 셋업을 기록합니다. SQL 쿼리는 직접 짠 뒤 AI 검증 - 한 명 이상 같이 검증 - 실행시간 남기고 - update, delete 는 select 로 한 번 보고 explain 건 뒤 수행한다.
  • 2025-09-16 Mysql - Redis stream - Mongodb CDC + ETL setup Intro 기존에 저희는 Mysql 를 main db 로, 멀티프렌차이즈를 목표로 운영하다보니 여러 다양한 스키마들이 필요했고 이를 위한 Mongodb 를 secondary db 로 운영하고 있었습니다.
  • 2025-08-10 goroutine 경량스레드 상기 Java Virtual Thread vs Goroutine 이전에 Java 의 native thread 와 goroutine 차이점을 정리한 적이 있고 그냥 다시 상기하는 차원에서 정리한다. .
  • 2025-08-04 Redis 클러스터 모드에서 stream key 분산처리 Redis Stream 적용기 의 후속편이다. Redis Stream 은 stream key 를 하나의 큐로 사용한다. 문제는 redis cluster 모드에서 redis stream key 는 하나의 노드에만 저장이 되기떄문에 부하분산이 되지 않는다.
  • 2025-05-21 Spring batch 주문 관련 배치 작업 중 변경감지 안되서 정리함. 현재는 Spring batch 에서 reader processor writer step 중 ItemReader 내부에서 last read id + offset size 로 Pagination 해서 읽어오고 있음.