Spring Cloud Gateway는 애플리케이션 실행 시 스프링부트에 내장되어 있는 Tomcat이 아닌 Netty 기반의 비동기 통신을 지원하는 형태의 웹 애플리케이션으로 실행된다. 분명 Spring Cloud Gateway 의존성을 추가해줬기 때문에 Netty로 실행되어야 하는데 여전히 Tomcat으로 실행된다... 간단하게 문제를 해결해보자. 문제 상황 환경 Java 17 SpringBoot 3.2.1 Spring Cloud 2023.0.0 gradle 분명 위와 같이 스프링부트 프로젝트를 생성할 때 Gateway dependency를 추가해준 후 프로젝트를 실행했지만, 아래와 같이 Tomcat이 애플리케이션을 구동한다. 뿐만 아니라 아래와 같이 Spring Cloud Gateway 라이브러리에 ..
Server/Spring
스프링부트를 이용해 프로젝트를 생성하고 별도의 설정을 건드려주지 않으면 로그는 info 단계 상위만 출력된다. (로그 단계 순서: trace-debug-info-warn-error) 따라서 만약 그 하위 로그 단계도 출력하고 싶다면 별도로 설정을 변경해주어야 한다. 현재 스프링 생태계에서 많이 사용되는 로깅 라이브러리로 logback과 slf4j가 있고, 이 두 라이브러리의 설정을 건드려주면 로깅에 대한 설정을 변경할 수 있다. 오늘은 이 두 라이브러리가 아닌, 간단하게 속성파일을 변경하여 외부 설정정보를 바꿔주는 방법으로 출력 로그 단계를 변경해보고자 한다. application.properties: 스프링부트가 동작하는데 필요한 설정정보를 담아두는 파일로, 외부 설정 정보를 변경해줄 수 있다. 예전에..
이전에 들었던 김영한님의 '스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술' 강의에 대해 복습을 하기 위해 요약을 해보았다. 라이브러리 Apache 클라이언트에서 요청하는 HTTP 요청을 처리하는 웹서버 정적타입(HTML, CSS, 이미지 등)의 데이터만을 처리하기 때문에 톰캣이 등장하게 되었다. Tomcat(톰캣) WAS Java EE 기반으로 만들어져, JSP와 Servlet을 구동하기 위한 서블릿 컨테이너 역할을 수행한다. 컨테이너란? 동적인 데이터들을 가공하여 정적인 파일로 만들어주는 모듈 서블릿(servlet)이란? 클라이언트의 요청을 받고 요청을 처리하여 결과를 클라이언트에게 제공하는 자바 인터페이스. java.servlet.package에 정의된 인터페이스로서 서블릿..
컨트롤러 내부에서 @Getmapping으로 요청을 보낸 후 홈페이지로 되돌아갈 때, return "redirect:/주소"를 쓰는데, 그냥 return view; 를 하면 될텐데 왜 redirect를 사용할 지 궁금했다. 차이점 return view; 의 경우에는 단순히 해당 화면을 다시 띄워준다. return "redirect:/주소"; 의 경우 해당 주소로 다시 URL 요청을 한다. 이 과정에서 해당 URL에 속하는 컨트롤러 내부 함수가 다시한번 실행된다. 뿐만 아니라, redirect:/ 는 함수가 실행된 후 돌아간다는 재귀적 의미가 담겨있어 코드를 읽는데 있어서도 구분되는 장점이 있다. redirect 시에 데이터를 넘겨주지는 못하기 때문에, 데이터를 같이 넘기기 위해서는 RedirectAttri..