본문 바로가기
320x100
728x90

Spring12

spring boot 리소스 캐싱 오늘은 업무를 진행하면서 간단하게 html 페이지를 보여주는 서버를 띄울 필요가 있었다. 그 페이지에선 특성상 이미지와 css가 상당히 많은 수가 있어 매 요청마다 수많은 요청을 보냈다. 이에 따라 리소스 캐싱을 추가했다. application.properties에 아래 값을 추가한다. spring.web.resources.cache.period=43200 //1일 value는 초단위로 지정이 되며, 캐싱 적용 전 캐시 적용 후 상태코드에 보면 200을 반환하지만 (메모리 캐시에서)라고 표기되며, 잘 적용됐음을 확인할 수 있다. 응답 헤더에 보면 캐시의 max-age를 확인할 수 있다. 2022. 4. 27.
Spring Test 코드 작성하기 Spring에서 JUnit5를 이용하여 테스트 코드를 작성하는 방법을 소개합니다. 개발환경은 spring boot 2.6.3이고 ide는 Intelli J를 사용했습니다. 일반적으로 인텔리제이에서 프로젝트를 생성하면 src -> test에 메인 클래스 이름 + Test가 붙은 테스트용 클래스가 제공된다. 일반적으로 이렇게 생성되어 있을 것이다. 클래스 위에 @SpringBootTest 어노테이션은 스프링을 실제 띄워서 컨테이너를 띄우거나 DI를 하여 스프링과 동일한 환경에서 테스트할 수 있고, 단순 자바 코드로서 테스트가 아닌 DB연동 등 통합 테스트에 자주 사용한다. 하지만 김영한님의 말을 따르면 테스트 코드에서 해당 어노테이션이 붙으면 테스트의 설계가 잘못될 가능성이 높다고 했다. (통합 테스트가 아.. 2022. 3. 3.
spring,java]JPA를 이용한 API서버 기존에 사용하기로 생각만 했던 JPA. 회사에서 작은 웹 크롤링 API 서버를 만들 일이 생겨서 간단하게 사용해봤다. JPA는 Java의 ORM(Object Relation Mapping) 표준 기술로 인터페이스이다. 구현체는 스프링 부트에서는 기본적으로 하이버네이트이다. (바꾸거나 직접 구현할 수 있다.) 참고 JPA는 Java 웹 앱과 JDBC 사이에서 동작하며 개발자가 SQL에 대한 종속성을 낮출 수 있게 해 준다. (다만 JPA의 표준을 따라야 해서 러닝 커브가 있다.) 오늘은 실제 사용한 코드를 보며 설명을 이어간다. 과거엔 xml로 설정을 했었지만 spring boot에선 간단하게 사용이 가능하다. 일단 JPA 사용을 하기 위해 implementation 'org.springframework... 2021. 11. 30.
spring,java]스프링 Quartz 스케줄러 사용하기(배치) 오늘은 프로그램이 특정 작업을 반복하는 배치(스케줄링)란 무엇인지 알아보고 간단한 예제를 통해 사용법을 알아본다. 회사에서 특정 시간마다 반복 작업으로 로그를 확인해서 로그에 이상이 있다면 Slack에 알림을 보내는 작업을 해야했다. 이렇게 되면 매 시간마다 로그를 확인하는 작업이 필요했고, 그 결과에 따라 알림 여부를 발송한다. 이러한 요구사항을 확인한 난 Spring Batch와 Quartz가 떠올랐다. 하지만 Spring Batch가 없어도 Quartz만으로 배치 모듈을 만들 수 있어서, Quartz만 쓰기로 했다. 참고 : 배치란? 쿼츠 공식 사이트 들어가기 전에 개발환경은 이러하다. Java 11 Spring boot 2.5.3 gradle 7.1.1 implementation 'org.spri.. 2021. 8. 18.
300x250
320x100