데이터가 많아 API 호출 시 내려줄 JSON 길이가 너무 길어 프론트단에서 응답값이 너무 길다는 경고가 계속 뜬다고 한다. 우선적으로 쉽게 해결할 수 있는 방법은 Http Response Body를 압축해서 내려주는 방법이다.Spring Boot에서 지원하는 믿을만한 방법으로 이렇게 application.yml 파일에설정을 해주면 된다.server: compression: enabled: true mime-types: text/html,text/plain,text/css,application/javascript,application/json min-response-size: 500server.compression.enabled : 압축 사용 여부server.compression.m..
FTP 접속을 위해서 라이브러리 사용을 위해 build.gradle.kts에 아래와 같이 의존성을 주입해준다.implementation("commons-net:commons-net:3.9.0") 우선 로그인까지 해본다."hostname.com"에는 접속할 FTP 주소를, "username"에는 아이디, "password"에는 비밀번호를 입력한다.import org.apache.commons.net.ftp.FTPimport org.apache.commons.net.ftp.FTPClientimport org.apache.commons.net.ftp.FTPReplyclass Service { fun download() { val ftpClient = FTPClient() try..
Spring Security 5.7.0-M2부터 WebSecurityConfigurerAdapter가 deprecated 됐다. 기존에는 스프링 시큐리티를 사용하면 WebSecurityConfigurerAdapter라는 추상 클래스를 상속하고configure 메서드를 오버라이드하여 설정하는 아래 방식처럼 사용을 했었다. @Configuration@EnableWebSecurityclass WebSecurityConfig( private val tokenProvider: TokenProvider, private val jwtAuthenticationEntryPoint: JwtAuthenticationEntryPoint, private val jwtAccessDeniedHandler: Jwt..
"{"code": "INVALID_NUMBER", "message": "번호가 유효하지 않습니다."}" 형태로 떨어지는 에러 응답을 feign client error decorder를 이용해서 ObjectMapper로 객체화시키고자 하였다. class ClientErrorDecoder : ErrorDecoder { override fun decode(methodKey: String?, response: Response): Exception { val exception = ObjectMapper().readValue(response.body().asInputStream(), BaseExceptionResponse::class.java) return if (response.status() in 400..49..