Webclient io.netty.resolver.dns.DnsNameResolverTimeoutException 원인Webclient를 사용 하면서 DnsNameResolverTimeoutException이 발생했다. 내부망에서 내부 서버 통신 시 외부 도메인 사용으로 인해서 시간이 오래 걸려 발생한 문제이다. 해결방법1. 직접 내부 IP 를 통해 직접 접속2. 내부 DNS 통해서 접속방법 에러 Timeout 5,000ms가 발생했다. 설정한게 없는데 왜 5초나 걸렸지 보니 기본 Timeout 설정이 5초 였다. UnixResolverOptions classpackage io.netty.resolver.dns;final class UnixResolverOptions { ... static final class Builder { private int ndots; private .. 2025. 6. 24. Spring WebFlux 와 Netty 현업 프로젝트에서는 R2DBC, WebFlux 기술 스택으로 새롭게 개발이 진행 됐습니다.WebFlux에 대해서 알아 보려구 합니다. 기존 프로젝트는 Spring MVC + JDBC 조합은 Blocking 방식이고, 이와 다르게 이번에는WebFlux + R2DBC 조합으로 Non-Blocking 방식으로 진행하게 되었습니다. WebFlux(Non-Blocking) + JDBC(Blocking) 조합은 권장하지 않습니다. WebFlux의 Non-Blocking 장점 이 사라집니다.그리고 WebFlux는 적은수의 스레드로 많은 요청을 처리하게 되어 있는데, JDBC를 사용하면 DB 호출 마다 스레드가 Blocking 되어 리소스가 빠르게 고갈 됩니다.이렇게 되면 WebFlux가 빠르더라도 JDBC가 병목이 .. 2025. 5. 12. Spring AOP 내부 호출 작동 문제 AOP를 사용하다 보면 같은 클래스에서 AOP 어노테이션 설정된 메소드를 호출하면, 해당하는 AOP 가 작동하지 않는다.@Autowired로 자기 자신 객체를 생성해 프록시 객체를 주입받으면 해결 되는 문제이다.설계상의 응집도 문제로 좋은 설계 방법은 아니다.이러한 문제가 왜 발생하는지 알아보자. Spring AOP(Aspect Oriented Programming) 란?관점 지향 프록그래밍, 프록시 기반(Proxy-based) 구조를 사용합니다.로깅, 트랜잭션 관리 (@Transactional), 인증, 인가 등 해당 지점에서 실행됐을때, 자동으로 다른 로직도 실행 하기 위해 사용됩니다.@Servicepublic class UserService { @Transactional public vo.. 2024. 12. 11. Spring Boot Servlet Requset euc-kr 인코딩 문제 Client 에서 json 인코딩 형식을 euc-kr로 보낼때가 있는데, 그러면 spring boot 기본 캐릭터 셋 형식이 UTF-8이라 한글이 깨진다. HttpServletRequest로 받아 아래와 같이 euc-kr 로 변경해주면 해결된다. xml, json 문서 형식도 파악 가능하다 . PostMapping(value="/test") public void insertLog(HttpServletRequest request) throws Exception { //post 로 받을때, inputStream 으로 받아야된다. ServletInputStream inputStream = request.getInputStream(); //Charset euc-kr 로 설정 String messageBody =.. 2024. 1. 10. 이전 1 다음