처리율 제한기 동작 검증
처리율 제한기 gate-limiter의 동작을 검증하기 위해 Go 프로젝트에 프로메테우스를 적용하고 그라파나와 연동하였습니다.
처리율 제한기 gate-limiter의 동작을 검증하기 위해 Go 프로젝트에 프로메테우스를 적용하고 그라파나와 연동하였습니다.
기존에 존재했던 댓글 제한 기능을 보완하기 위해 Golang으로 처리율 제한기 미들웨어를 개발했습니다. yml 파일을 사용해서 동적으로 알고리즘을 선택하고 API 별로 제한설정을 적용할 수 있습니다.
Spring Data MongoDB에서 도큐먼트 데이터에 추상클래스를 포함하면서 매핑 시 발생했던 문제를 컨버터를 통해서 어떻게 해결했는지, 그리고 컨버터를 어떻게 등록할 수 있는지 설명합니다.
회원으로 운영되지 않는 서비스였기 때문에 사용자가 API스펙만 알아낸다면 손쉽게 부적절한 요청을 적용시킬 수 있습니다. 이러한 환경에서 어떻게 부적절한 요청을 사전에 방지하고, 발생했다면 어떻게 올바른 데이터로 복구할 수 있었는지 설명합니다.
프로젝트에 데이터베이스 레플리케이션을 적용하였습니다. 1개의 주DB와 2개의 보조 DB 서버로 구축된 시스템입니다. MySQL에서 레플리카 서버를 어떻게 설정할 수 있는지 살펴봅니다. 또한 스프링 애플리케이션에서 어떻게 여러개의 데이터소스를 설정하고 트랜잭션의 상태에 따라 분기할 수 있는지 살펴봅니다.
매번 까먹는 Let's Encrypt 인증서를 갱신하는 방법에 대해서 정리합니다. 갱신하는 것 정리하는 김에 발급받는 법도 정리했습니다.
스프링 시큐리티를 사용하지 않고 JWT를 활용한 인증시스템을 개발한 과정에 대해서 설명합니다. 아이디나 이메일, 그리고 패스워드로 로그인 하는 환경에서 개발하였습니다.
부적절한 요청을 보낸 유저를 차단하고, 올바른 데이터로 복구하기위해 로그를 어떻게 활용하였는지 설명합니다.
Github Actions를 사용한 배포자동화 과정을 설명합니다.
레디스를 사용해 서비스에 새로운 기능을 추가하였습니다.