본문 바로가기
320x100
728x90

springboot4

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.
SpringBoot,React]스프링 실행시 리액트 서버 자동 실행 , 빌드시 같이 빌드하기 나는 지금 SpringBoot와 React를 통해 백엔드, 프런트엔드를 구성해서 샘플 프로젝트를 만들고 있다. 이 두 환경에서 프로젝트를 진행하다보니 spring boot 실행시키고 react에서 npm run start를 두 번에 거쳐서 실행시켜야 하는 게 정말 정말 매우 너무너무 귀찮았다. 난 스프링이 실행이 되면서 리액트 서버도 자동으로 켜지는 방법이 없을까 하다가 gradle의 build script를 작성하기로 마음먹었다. 일단 사전 준비는 다음과 같다. Spring boot gradle react 딱 이 3개면 된다. 그리고 package.json에 "proxy": "http://localhost:8080",를 추가하여 프록시 설정을 해줬다. 일단 내 프로젝트 구조는 이와 같다. fronten.. 2021. 8. 6.
React,SpringBoot] index.js:1 Warning: validateDOMNesting(...): <h1> cannot appear as a descendant of <p>. at h1 at p at header at div at App (http://localhost:3000/main.5143fe28e33d775bbc5c.hot-update.js:37:83) spring boot와 react를 이용해서 샘플 TodoList를 만들려고 하다가 위와 같은 경고가 발생했다. 해당 경고는 리액트에서 발생했고, 콘솔창에서 확인할 수 있었다. 태그에서 문제가 있다고 경고가 발생했고, 그 안에 h1 태그가 문제였다. 서버에서 데이터를 받아와서 조건부 렌더링을 하는 부분이었는데, 태그는 인라인 요소인데 안에 h1 태그가 들어가 있어 오류가 발생했다. h1을 감싸는 p태그를 제거하니까 에러가 깔끔히 사라졌다. 2021. 8. 5.
300x250
320x100