Spring Boot DevTools
개발용 DevTools: live reload, 자동 재시작, 개발 설정, remote debugging
1Spring Boot DevTools란 무엇인가요?
Spring Boot DevTools란 무엇인가요?
답변
Spring Boot DevTools는 automatic restart(코드 변경 시 자동 재시작), LiveReload(자동 브라우저 새로 고침), remote debugging 같은 기능으로 개발자 경험을 향상시키는 개발용 모듈입니다. DevTools는 운영 환경에서 자동으로 비활성화되어(JAR/WAR 패키징을 통해 감지) 성능에 미치는 영향을 방지합니다. 이 선택적 의존성은 수동 재시작을 줄여 개발 주기를 크게 가속화합니다.
2브라우저 자동 새로고침을 가능하게 하는 DevTools 기능은 무엇입니까?
브라우저 자동 새로고침을 가능하게 하는 DevTools 기능은 무엇입니까?
답변
LiveReload는 포트 35729에서 수신 대기하며 classpath의 리소스(HTML, CSS, JS, 이미지)가 수정될 때마다 브라우저 자동 새로고침을 트리거하는 임베디드 서버입니다. Spring 컨텍스트를 재시작하는 automatic restart와 달리, LiveReload는 프론트엔드 에셋에 집중하여 즉각적인 시각적 피드백을 제공합니다. DevTools 서버와의 WebSocket 연결을 설정하려면 LiveReload 브라우저 확장 프로그램을 설치해야 합니다.
3Maven 프로젝트에 Spring Boot DevTools를 어떻게 추가합니까?
Maven 프로젝트에 Spring Boot DevTools를 어떻게 추가합니까?
답변
DevTools는 설정에서 optional scope와 true를 지정한 Maven 의존성으로 추가합니다. optional scope는 DevTools가 사용자의 프로젝트에 의존하는 다른 프로젝트로 전이되지 않도록 보장하며, true는 프로덕션 패키징 시(excludeDevtools를 사용한 spring-boot-maven-plugin) DevTools를 제외할 수 있게 합니다. 이 이중 보호는 DevTools가 개발 환경 내에 엄격히 유지되도록 합니다. optional scope는 개발 전용 의존성에 대한 best practice입니다.
프로덕션 환경에서 DevTools의 동작은 어떻습니까?
DevTools automatic restart의 주요 장점은 무엇입니까?
+12 면접 질문