썸네일 스프링부트 html 파일을 pdf 파일로 변환 업무 진행중에 PDF 파일 다운로드 기능을 제공해야 하는 일이 있어 찾아보던중에 좋은 블로그를 찾아서 공유 하고자 한다. https://zorba91.tistory.com/323 [Spring] html 파일(with Thymeleaf)을 pdf파일로 변환하기 Thymeleaf engine을 사용하는 html을 pdf로 변환해서 파일로 저장하기 이번 포스팅은 Spring에서 html 파일을 pdf로 변환해서 로컬에 저장하는 방법이다. (설명을 끝까지 봐야 제대로된 pdf 파일이 나온다) zorba91.tistory.com 해당 블로그에 내용은 코틀린으로 작업이 되어 있어 자바로 변환하여 올려두었다. https://github.com/wifi-java/spring-html-pdf
썸네일 스프링부트 RestTemplate with axios, ajax 로 파일 다운로드 하기 프론트에 파일 다운로드 기능을 구현해야 하는데 a 태그에 download 속성을 사용시 같은 도메인일 경우는 파일 다운로드가 가능하지만 다른 도메인일 경우 파일이 다운로드가 받아지는게 아니라 브라우저에서 열리게 된다. 프론트에 자바스크립트로 axios나 ajax를 이용해서 파일 다운로드를 시도할 경우에도 도메인이 다를경우 cors 문제가 발생하는 경우가 있어 RestTemplate과 axsio, ajax를 이용해서 파일 다운로드 기능을 구현해 봤다. 샘플소스는 아래 주소에서 받을 수 있다. https://github.com/wifi-java/spring-file-down
썸네일 스프링부트 apache poi 이용하여 엑셀 작업하기 일을 하다보면 엑셀파일을 전달하거나 엑셀파일은 다운로드 받을 수 있는 기능을 제공해야 할때가 있다. 그리고 엑셀 파일을 업로드하여 읽어서 처리해야 하는 일도 종종 발생한다. 어떻게 하면 보다 쉽게 수정하거나 재활용할 수 있는 방법이 없을까 고민하다가 샘플로 한번 만들어보게 되었다. 소스는 아래 주소에서 받아 볼 수 있다. https://github.com/wifi-java/spring-poi-excel 엑셀 데이터를 그릴 추상 클래스를 작성하고 해당 추상클래스를 상속받아 출력할 양식에 따라 구현해주면 된다. import org.apache.commons.lang3.ObjectUtils; import org.apache.poi.hssf.util.HSSFColor; import org.apache.poi.s..
썸네일 aop를 활용하여 request, response 로그 출력 운영 업무를 하다보면 카탈리나 로그를 분석해야 하는 일들이 많은데 로그가 너무 많이 쌓이다보니 분석하는데 어려움이 있어 어떻게 하면 좋을지 고민하고 찾아보던중 aop를 이용하여 request, response 로그를 따로 출력 할 수 있는 방법을 찾을 수 있었다. aop 코드 작성 @Aspect @Component @RequiredArgsConstructor public class LoggingAspect { private static final Logger logger = LoggerFactory.getLogger(LoggingAspect.class); private final ObjectMapper objectMapper; // 모든 컨트롤러 대상으로 로그 수집 @Pointcut("within(*....
썸네일 JWT(JSON Web Token) 토큰에 대하여... 탄생 배경 세션 방식은 서버에서 상태를 관리하기 때문에 트래픽이 많을 경우 서버에 부하가 많이 가고 분산 서버 환경에서 세션을 공유하기가 어려운 문제가 존재했다. JWT 토큰은 이런 문제를 극복하고자 탄생하게 되었다. 구조 헤더, 페이로드, 서명으로 이루어져 있으며 이를 구분하는 값은 마침표(.)로 되어있다. 헤더 - typ: 토큰의 타입을 정의 - alg: 해싱 알고리즘 정의한다. 어떠한 알고리즘을 사용했는지 알 수 있다. 페이로드 사용자 정의 값을 담을 수 있는 공간이다. 등록된 약속어들이 있으니 해당 키 값은 피해서 등록할 수 있도록 해야 한다. - iss: 토급 발급자 - sub: 토큰 제목 - aud: 토큰 대상자 - exp: 토큰 만료 시간 - nbf: 토큰 활성화 날짜 지정된 날짜 이전까지 ..
썸네일 3년차 웹 개발자에 스프링부트 아키텍처 고찰... 웹 개발을 시작한지 3년 가까이 되어가는거 같은데... 처음 1년은 vue로 프론트엔드 개발만 하다가 이후에 백엔드 개발을 본격적으로 하게 된거 같다. 경력도 경력이고 본업이 웹 개발자가 아닌지라 회사에서 사용하는 아키텍처에 대한 설명을 들을수가 없었고... 그저 감각적으로 지금까지 개발을 해온것 같다. 돌이켜 보면 질문할 생각도 못했던거 같다 그래서 최근에 공부를 해보고자 하는 마음에 이런 저런 소스들을 보게되었고 아키텍처에 대해서 고민하게 되었다. 프로젝트에 패키지 구조가 서로 다를지라도 보통 컨트롤러, 서비스, 저장소 이 3개 레이어로 구성이 되는것 같다. 컨트롤러 사용자에게 요청받아 서비스 레이어에 요청하여 다시 사용자에게 전달하는 역할을 한다. 서비스 컨트롤러에서 요청한 내용에 대한 비즈니스 로..