두둥 프로젝트를 진행하면서 통신 판매 중개업종이므로 , 호스트에게 공연 카드결제 대금 정산 작업도 배치로 돌려야 했는데, 이때 pdf로 정산서를 보내줘야할 일이 생겼다. 두둥에서는 메일도 thymeleaf를 사용해서 보내고 있으므로, pdf 도 thymeleaf 를 사용해서 보내는 방법으로 결정했다. 이미지와, 한글 적용을 하려면 꽤나 고생좀 해야하는데 그 방법을 공유하고자한다. 목차 1. flying-saucer-pdf 2. 한글 적용하기 3. 이미지 가능하게 하기 1. flying-saucer-pdf GitHub - flyingsaucerproject/flyingsaucer: XML/XHTML and CSS 2.1 renderer in pure Java XML/XHTML and CSS 2.1 rend..
api를 공개하게 되면 유저가 마음대로 요청을 할 수 있다. 프론트 쪽에서는 쓰로틀링으로 막아주긴하지만, 백엔드에서는 추가적으로 요청량을 제한 해야한다. 요청량을 제한하는건 ip기반으로 하게되면, 로드밸런서에서 막아줄수도있고 , nginx 에서도 막아 줄 수 있다. 두둥 프로젝트에서는 유저 아이디 기반으로 요청량을 측정하고 싶어서 서버 내부서 제한을 걸기로 했다. 그 방법을 공유하고자 한다. 목차 1. 문제점 2. buket4j 3. 적용하기 3.1. Bucket4j 와 레디스 jcache 로 연결하기 3.2. ProxyManager 로 버킷 만들기 3.3 인터셉터에 적용하기 3.3.1. 인터셉터에서 유저정보를 불러올려면? SecurityContextHodler 3.3.2 인터셉터에 적용해보자. 1. 문..
두둥 백엔드에서는 에러로그를 cloudWatch 로도 전송하면서, 실시간으로 500번대 알림을 받아보기 위해서 슬랙으로 비동기적으로 에러를 전송하고 있다. 하지만 스프링은 한번 깐 body의 값을 볼 수 없어서 ContentCachingRequestWrapper (Spring Framework 6.0.6 API) handleContentOverflow protected void handleContentOverflow(int contentCacheLimit) Template method for handling a content overflow: specifically, a request body being read that exceeds the specified content cache limit. The..
[스프링] error code 도메인 별 분리하기 두둥 프로젝트에서는 처리중에 에러가 발생할경우 RuntimeException 을 상속받은 DuDoongException 에서 다시 상속받아서 코드별 에러클래스를 만들고 있다. @Getter @AllArgsConstructor public class DuDoongCodeExceptio devnm.tistory.com 지난 글에서는 error code를 도메인별로 분할하는 작업을 진행했었다. 이번 글에서는 위와 같이 클라이언트들이 에러에대해 보기 쉽도록 나열을 하는 방법을 공유하고자 한다. 목차 1. 문제점 2. 에러 코드를 일일히 적지 않고 어떻게 옮길 수 있을까. 3. 스웨거 타입 분석 4. 적용하기 4.1. 커스텀 어노테이션 생성 4.2. 커스텀 어노테..