Spring Boot-5

윤상혁·2024년 10월 5일

(백기선)Spring Boot

목록 보기
5/10

Spring Boot - dev tools에 관한 설명이다.

Property Defaults

->*cache:데이터 임시 저장 공간.

->두번째 줄을 보면, option=true(저번 메모,Spring Boot-4 마지막 부분)인 이유가 또 나오는데, production(베포) 상태일때는 caching이 매우 좋지만(ex. 웹 같은 경우, cache에 미리 데이터를 임시 저장하므로, 로딩 속도가 더 빨라진다.), develop(개발) 상태일때는 좋지 않다.

->그 이유로 preventing you from seeing the changes you just made in your application.이라고 함(자세한 설명은 밑에 그림 참고)

*cf.)parsing
->프로그램에서는 주로 다른 언어로 작성된 문서를 디코딩 한다는 뜻이라고 한다.

디코딩의 뜻은 변형된 부호를 다시 원래 상태로 되돌리는 것을 뜻한다.(<->인코딩)
(출처:https://moo-you.tistory.com/479)

->즉, 개발 상태에서는 cache가 활성화 되어 있으면, 캐시에 저장된 이전 버전의 데이터를 사용하게 되어, 이전 버전이 보여지게 되는 것이다.


cf.) 갑자기 궁금해서 정리한 static 개념

->1.메모리에 로드될 때 '딱 한번만 초기화' 2. '모든 객체가 그 값을 공유'
->2번 이유 때문에 1번이 되는 것이다.

<좀 더 쉬운 설명을 위해 간단한 요약>


Automatic Restart

->spring-boot-devtools는 classpath change 상에 있는 파일들을 자동적으로 재시작해준다.
->즉, 한마디로 변경 선 상에 있는 class들을 자동적으로 재시작한다는 의미임.(저번 시간에 메모한 devtools의 기능을 다시 한번 명시하는 것이다.)

cf.) classpath란?

->즉, 'class를 찾을 때의 경로'를 의미함.

->Eclipse 같은 IDE에서는 바로바로 restart가 되지만, intelliJ 같은 IDE에서는 build를 다시 해줘야 한다.(devtools가 있어도)
->VSCode도 build 다시 해야 됨.(직접 경험해 봄)


Restart vs Reload

->Spring Boot가 제공하는 Restart는 2개의 classloader로 나뉨.
->base classloader(classes that do not change,라이브러리나 외부 의존성 등) & restart classloader(you are actively developing)

->restart가 발생하면, restart classloader는 버려지고(restart에 반영됐으므로), a new one이 새로 생긴다.

->이는 cold starts(reload starts)보다 훨씬 빠르다. -> 당연하게도, restart는 변하지 않은 base classloader를 이미 사용할 수 있으므로.
->reload starts: 아예 다시 껐다가 다시 load하는 것을 의미함. 즉, 모든 클래스가 종료되고 다시 load 되는 것을 의미함.


cf.) 뜬금없지만 fork의 의미

->즉, 무언가를 복제하여 독립적인 작업을 수행을 의미함.


cf.)(메모 방식 변경) 지금부터는 '큰 제목'만 메모할 것이다.

->이것이 이유이다.


LiveReload

-> 웹에서 자동으로 새로 고침을 의미함.
-> chrome,firefox,Safari 에서 쓸 수 있다.(livereload 플러그인 깔면)


Remote Application

local이 아닌 원격으로 개발 및 실행하는 환경을 의미함.


다음 강의부터는 Spring Boot features(기능)에 대해서 다룰 예정임.

이제까지는 설정 쪽만 다룬 느낌.


profile
통합형 개발자. 기획부터 개발, 자동화까지. 문제를 구조적으로 이해하고, AI를 능동적으로 활용해 본질적인 해결책을 제시하는 사람입니다.

0개의 댓글