시작하며 이번에 새롭게 사이드프로젝트를 진행하면서 백엔드 언어로 코틀린을 선정했다. 자바랑 여러가지 차이가 있고 뭐가 장점이고 하는 의사결정 과정이 중요한건 아니고, 중요한건 코틀린으로 언어를 바꾸면서 기존에 만들었던 코드를 다시 짜야 한다는 것이다. JWT 발행이나 인증, Intercepter 같은 기능들이 만들어놓은지 몇년 됐으니 이참에 새롭게 갈아엎자고 생각했다. 기존에 [Spring Boot] 인터셉터 인증 처리 제외 어노테이션 만들기 이런 글을 올린 적이 있었는데 주석에 기재된 날짜를 보니 벌써 3년 전이다. 아까워 하지 말고 전부 버리고 새로 만들기로 했다. 기존에는 JWT 발행 라이브러리로 com.auth0/java-jwt를 사용했었는데 코틀린으로 언어를 변경하면서 io.jsonwebtoke..
spring
이 글을 보는 분들이라면 다들 알겠지만 Log4J2 라이브러리에 취약점이 보고되었다. 참고: CVE-2021-44228 스프링부트는 기본적으로 기본 로그 시스템을 Log4J2로 변경했을때만 해당이 된다고 한다. 취약점에 대한 뉴스를 접하자마자 github의 pom.xml부터 확인했었고, 해당사항이 없는 걸 보고 안심한채 주말내내 불구경하는 마음으로 구경했었는데... 출근 후 확인해보니 디펜던시 걸린 다른 라이브러리에서 Log4J2를 사용하고 있었다. ./mvnw dependency:list | select-string -pattern log4j 나에게 사용하고 있는 라이브러리의 업데이트를 기다릴 시간따윈 없다. 강제로 버전을 올리는 방법을 알아보자 1. Maven 사용시 2.15.0 pom.xml의 pr..
개발을 하다보면 API 호출시 사용자의 인증정보를 체크할 필요성이 생긴다. 하지만 모든 API에 인증 체크 코드를 넣어두기엔 유지보수도 힘들고 같은 코드가 모든 메소드에 반복되게 되니 보통은 요청이 넘어오기 전에 Interceptor를 둬서 인증 체크하고 실제 메소드로 넘겨주는 방법을 사용하게 된다. 아래는 예전에 인터셉터를 구성했던 코드를 가져와봤다. JwtAuthInterceptor.java package me.huiya.core.Config; import me.huiya.core.Common.JWTManager; import me.huiya.Exception.AuthRequiredException; import org.springframework.web.servlet.HandlerIntercepto..
https://blog.huiya.me/14 SpringBoot html 템플릿 메일 보내기 - Thymeleaf 스프링부트에서 메일을 보내야 할 필요가 생겼다. 개발하면서 필요했던 요구사항은 아래와 같다. 가입 환영 메일, 이메일 인증 메일, 기타 등등 여러 종류의 메일 발송 가능할것. 단순 텍스트 blog.huiya.me 이 글에서 메일 보내기를 구현하고 나니 메일을 비동기로 보내야겠다는 생각이 들었다. 기존 프로젝트에서 가입과 메일 보내는걸 동기적으로 처리했다가 한참동안 기다려야 했던 기억이 나서 이번에는 꼭 스레드를 써봐야겠다고 마음을 먹었다. 그래서 찾아보니 SpringBoot에서는 쓰레드 생성이 어렵지 않았다. 예전에는 테스크 잡인가 뭔가 해서 진짜 복잡하게 돌렸던 기억이 나는데... 역시 스..
스프링부트에서 메일을 보내야 할 필요가 생겼다. 개발하면서 필요했던 요구사항은 아래와 같다. 가입 환영 메일, 이메일 인증 메일, 기타 등등 여러 종류의 메일 발송 가능할것. 단순 텍스트 이메일이 아니라 html로 구성되어 디자인이 가능할 것. 코드가 복잡하지 않고 확장성 있을 것 열심히 찾아보던 중 thymeleaf라는 라이브러리를 찾게 되었다. 사용법이 간단해 공유해보고자 한다. 1. Maven dependency(pom.xml) 설정 org.springframework.boot spring-boot-starter-mail org.springframework.boot spring-boot-starter-thymeleaf 2. src/main/resources/application.properties ..