분류 전체보기 (124) 썸네일형 리스트형 [Spring Boot] ExceptionHandler 1. 스프링 @MVC 예외 처리 방법 @ControllerAdvice 전역적으로 예외 처리 (@ControllerAdvice 어노테이션이 붙은 클래스를 만들고 안에다가 ExceptionHandler 정의) @ExceptionHandler 특정 컨트롤러 안에서 발생하는 예외 처리 (아래 4.@ExceptionHandler 참고) 2. 스프링 부트가 제공하는 기본 예외 처리기 BasicErrorController HTML과 JSON 응답 지원 커스터마이징 방법 ErrorControll 구현 3. 커스텀 에러 페이지 에러가 발생했을 때 응답의 상태 값에 따라 다른 웹 페이지를 보여주고 싶은 경우 src/main/resources/static|template/error 하위에 404.html, 5xx.html .. [Spring Boot] index 페이지와 favicon 1. 웰컴 페이지 어플리케이션 루트로 요청했을 때 보여지는 페이지 (localhost:8080) 정적 페이지로 보여주는 방법과, 동적 페이지로 보여주는 방법 2가지 존재 정적 페이지로 보여주는 방법은 기본 리소스 위치 중 아무데나 index.html 파일을 두면 됨 index.html 찾아보고 있으면 제공 index.템플릿 찾아보고 있으면 제공 둘 다 없으면 에러 페이지 (Whitelabel Error Page) 2. 파비콘 어플리케이션 실행 시 보여지는 아이콘 https://favicon.io/ 에서 파비콘 만들고 resources/static에 favicon.ico 추가해서 변경 가능 기본 파비콘은 스프링 부트 jar파일에서 제공해주는 것 파비콘이 안 바뀌는 경우 localhost:8080/favic.. [Spring Boot] 웹 JAR 1. 웹 JAR 클라이언트에서 사용하는 자바스크립트 라이브러리 ex) jQuery, Bootstrap, react.js, ..들도 jar 파일로 추가 가능 jar 파일로 dependency 추가 maven 중앙저장소(www.mvnrepository.com)에도 올라와있음 script src에 버전 생략하고 사용하려면 webjars-locator-core 의존성 추가 가능 ex) jQuery 추가하기 org.webjars.bower jquery 3.6.0 https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8/dashboard 스프링 부트 개념과 활용 - 인프런 | 강의 스프링 부트의 원리 및 여러 기능을 코딩을 통해 쉽게.. [Spring Boot] 정적 리소스 지원 1. 정적 리소스 동적으로 생성되지 않은 것 웹 브라우저나 클라이언트에서 요청이 들어왔을 때, 요청에 해당하는 리소스가 이미 만들어져 있고, 이미 만들어진 리소스를 그대로 보내면 되는 경우 서버에서 작업을 처리해서 요청이 들어왔을 때 뷰를 만드는 것이 아니라 이미 만들어져 있는 리소스가 있고, 그런 리소스를 제공하는 방법 2. 기본 리소스 위치 : 기본 리소스 위치에 있는 리소스들은 "/**" 요청에 매핑이 되어 제공됨 classpath:/static classpath:/public classpath:/resources classpath:/META-INF/resources ex) /hello.html 요청이 들어오면 /static/hello.html 파일이 있는 경우 요청한 쪽으로 이 파일을 보내줌 ->.. [Spring Boot] Spring Web MVC 1. Spring Boot MVC 자동 설정으로 제공하는 여러 기본 기능 이러한 기본 설정 덕분에 아무런 설정 파일 작성없이 Spring Web MVC 개발 가능 spring-boot-autoconfigure-xxx.jar/META-INF/spring.factories 내에 Auto Configure org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration,\ 2. Spring MVC 확장 @Configuration + WebMvcConfigurer Spring Boot가 제공하는 MVC의 기능을 다 사용하면서 추가적으로 설정을 더 하고 싶은 경우 WebMvcConfigurer가 제공하는 많은 callback method를 사용.. [Spring Boot] Spring-Boot-Devtools Spring Boot가 제공하는 optional한 tool로 아래 의존성 추가해야 함 org.springframework.boot spring-boot-devtools 캐시 설정을 개발 환경에 맞게 변경 클래스패스에 있는 파일이 변경될 때마다 어플리케이션을 자동으로 재시작 - 직접 껐다 켜는 것(cold starts)보다 빠름 - 리로딩보다는 느림(JRebel 같은 건 아님) - 리스타트하고 싶지 않은 리소스 : spring.devtools.restart.exclude - 리스타트 기능 끄기 : spring.devtools.restart.enabled=false 라이브 리로드 - 리스타트(서버 재시작) 했을 때 브라우저 자동 리프레시하는 기능 - 브라우저 플러그인 설치해야 함 - 라이브 리로드 서버 끄기.. [Spring Boot] Test 1. spring-boot-starter-test Test를 위해서는 pom.xml 내에 spring-boot-starter-test 의존성 추가 필수 -> test scope으로 추가 org.springframework.boot spring-boot-starter-test test 2. 가장 기본적인 형태의 Test code import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @SpringBootTest public class S.. [Spring Boot] 로깅 - 커스터마이징 1. 커스터마이징한 로그 설정 파일 사용하기 Logback : logback-spring.xml Log4J2 : log4j2-spring.xml JUL : logging-properties (추천x) Logback extensions - Profile-specific Configuartion (프로파일 별 로그레벨 지정) : - Environment Properties 들도 사용 가능 : logback 설정 파일 안에서 Profile이나 Environment variable을 사용할 수 있으려면 logback.xml이 아닌 logback-spring.xml을 사용해야 함 (logback.xml은 너무 일찍 로딩이 되기 때문에 사용 불가) # logback-spring.xml # 2. 로거를 Log4j2로.. [Spring Boot] 로깅 - Spring Boot 기본 로거 설정 1. 로깅 퍼사드 VS 로거 로깅 퍼사드 - 로거 api들을 추상화해놓은 인터페이스 - 로깅 퍼사드 사용 시 로거를 바꿔낄 수 있다는 장점 - ex) Commons Logging, SLf4j 로거 - 실제 로그를 기록하는 구현체 - ex) JUL(Java Util Logging), Log4J2, Logback 2. Spring Boot는 Logback을 사용한다 Spring Boot는 기본적으로 Commons Logging을 사용 -> Spring 프레임워크의 spring-core 모듈이 만들어질 때 쯤에는 SLF4j가 없었기 때문 Commons Logging의 여러가지 문제들로 인해 구조적으로도 심플하고 더 안전한 SLF4j를 사용하게 됨 -> Spring 1.x 버전에서는 spring-core에서 C.. [Spring Boot] 프로파일 1. 프로파일 Spring Framework에서 제공해주는 기능 특정한 Profile에서만 특정한 Bean을 등록하고 싶다거나 어플리케이션의 동작을 특정 Profile에서만 다르게 하고 싶을 때 사용 # Profile("prod") @Profile("prod") @Configuration public class BaseConfiguration { @Bean public String hello() { return "hello"; } } -> 이 Bean 설정파일 자체가 "prod" 라는 profile일 때 사용이 됨 # HumanRunner @Component public class HumanRunner implements ApplicationRunner { @Autowired private String .. 이전 1 2 3 4 5 6 ··· 13 다음 목록 더보기