JAVA(240)
-
[SpringBoot][WebMVC] 웹 JAR
1. 웹 JAR란 무엇인가? Web JAR는 클라이언트에서 사용하는 웹 라이브러리(jquery와 bootstrap)을 JAR 파일 안에 패키징한것이다. 2. 실습, Jquery 웹 라이브러리를 의존성 추가 1. jquery 의존성 추가 implementation 'org.webjars.bower:jquery:3.6.1' 2. html 파일에 jquery 소스 주소를 정의하고 jquery 쿼리 함수 호출 hello world modified 3. 실습, WebJars Locator Core 의존성 추가 jquery같은 웹 라이브러리의 버전을 생략하기 위해서는 WebJars Locator Core 의존성 라이브러리를 추가해야 합니다. 1. WebJars Locator Core 의존성 추가 implementa..
2022.11.10 -
[SpringBoot][WebMVC] 정적 리소스 지원
1. 정적 리소스 맵핑 “/**” 기본 리소스 위치 classpath:/static classpath:/public classpath:/resources/ classpath:/META-INF/resources 예) “/hello.html” ⇒ /static/hello.html spring.mvc.static-path-pattern: 맵핑 설정 변경 가능 spring.mvc.static-locations: 리소스 찾을 위치 변경 가능 (비권장) Last-Modified 헤더를 보고 304 응답을 보냄 정적 리소스가 수정되면 200 응답을 보냄 정적 리소스가 수정되지 않은 상태에서 다시 자원을 요청시 304 응답을 보냄 304 응답을 보내면서 정적 리소스를 다시 보내지는 않음(빨리짐을 의미함) Resourc..
2022.11.09 -
[SpringBoot][WebMVC] HttpMessageConverters
HttpMessageConverters란 무엇인가? HTTP 요청 본문을 객체로 변경하거나, 객체를 HTTP 응답 본문으로 변경할 때 사용하는 컨버터 {”username” : “yonghwan”, “password” : “123”} ↔ User @RequestBody HTTP 요청 본문을 객체로 변환 @ResponseBody 객체를 HTTP 요청 본문으로 변환 컨트롤러에 @RestController가 붙어있으면 리턴 타입에 @ResponseBody를 생략할 수 있음 // before @PostMapping("/users/create") public @ResponseBody User create(@RequestBody User user){ return user; } // after @PostMapping(..
2022.11.08 -
[SpringBoot] 스프링부트 통합테스트, 단위테스트
통합테스트 @SpringBootTest 단위테스트 @JsonTest @WebMvcTest @WebFluxTest @DataJpaTest @RestClientTest 1. 통합 테스트 개요 실제 운영 환경에서 사용될 클래스들을 통합하여 테스트 단위 테스트와 같이 기능 검증을 위한 것이 아닌 스프링 프레임워크에서 전체적으로 플로우가 제대로 동작하는지 검증하기 위해 사용됨 장점 애플리케이션의 설정과 모든 빈(Bean)을 모두 로드하기 때문에 운영환경과 가장 유사항 테스트가 가능함 전체적인 플로우를 쉽게 테스트가 가능함 단점 애플리케이션의 설정과 모든 빈(Bean)을 모두 불러오기 때문에 시간이 오래걸리고 무겁다 테스트 단위가 크기 때문에 디버깅이 어려운 편 @SpringBootTest 스프링부트는 @Sprin..
2022.11.07 -
[SpringBoot] OutputCaputre 테스트 유틸리티
OutputCapture 테스트 유틸리티 OutputCaputre 테스트 유틸리티는 스프링부트가 제공하는 유틸리티로써 로그 및 콘솔에 출력되는 문자열을 캡처하는 유틸리티입니다. OutputCapture 예제 1. 컨트롤러 및 서비스 정의 @RestController public class SampleController { Logger logger = LoggerFactory.getLogger(SampleController.class); @Autowired private SampleService sampleService; @GetMapping("/hello") public String hello(){ logger.info("kim yonghwan"); return "hello " + sampleServic..
2022.11.06 -
[SprinBoot] 로거(Logger) 커스터마이징
1. 커스텀 로그 설정 파일 사용 Logback : logback-spring.xml Log4J2 : log4j2-spring.xml JUL(비추) : logging.properties Logback extension 프로파일 Environment 프로퍼티 Logback 로거의 커스텀 로그 설정 파일 사용 resources/logback-spring.xml 생성 및 파일 작성 kr.yh 패키지의 발생 로그 레벨을 DEBUG로 설정 특정한 프로파일일 때만 로그를 남기기 태그를 사용하여 특정한 프로파일일때만 사용자가 정의한 로그 설정을 활성화시킵니다. 예를 들어 dev 프로파일에서는 로그 레벨을 DEBUG 레벨로 찍을 수 있습니다. Environment Properties 태그를 사용하여 Logback의 사..
2022.11.06