TIL

Spring 심화주차 개인 과제 TIL

phonebee 2025. 2. 27. 10:07

▶ 개인 과제 진행 과정

https://phonebee.tistory.com/77

 

내일배움캠프 TIL 23.

▶CH6 Spring 심화 개인 과제※ 리펙토링이란?● 리펙토링은 결과의 변경 없이 코드의 구조를 재조정한다는 의미이다. ※ 리펙토링은 왜 하는가?● 코드의 가독성을 높인다.● 유지보수를 편하게

phonebee.tistory.com

https://phonebee.tistory.com/78

 

내일배움캠프 TIL 24.

▶ CH6 Spring 심화 개인 과제▷ Level 1-2 리펙토링 퀴즈 - 불필요한 if-else 피하기public String getTodayWeather() { ResponseEntity responseEntity = restTemplate.getForEntity(buildWeatherApiUri(), WeatherDto[].class); WeatherDto[] weather

phonebee.tistory.com

https://phonebee.tistory.com/79

 

내일배움캠프 TIL 25.

▶ CH6 Spring 심화 개인 과제▷ Level 3 테스트 코드 연습● 1. 테스트 코드 연습 - 1@ExtendWith(SpringExtension.class)class PasswordEncoderTest { @InjectMocks private PasswordEncoder passwordEncoder; @Test void matches_메서드가_정

phonebee.tistory.com

 

 

▶ 트러블 슈팅

▷ 경고문 문제

● 전개

테스트 코드를 수정한 후 테스트를 실행했을 때 나타났다.

 

● 과정

테스트 코드를 실행하면

테스트 코드 실행 결과

위와 같은 경고문이 나타나게 된다.

 

● 원인

처음 보는 에러여서 구글링을 해보니 

OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended

해당 경고문은 IntelliJ 내부에서 자바를 사용할 때 발생하는 단순 내부 경고라고 하며 프로젝트 진행에는 문제가 없다고 한다.

 

실제로도 테스트 코드는 성공적으로 진행됐다.

하지만 테스트를 실행할 때 마다 경고문이 지속적으로 보이는 것은 안 좋다고 생각했기에 해결하기로 했다.

 

● 해결

위와 같은 경고문이 나오지 않기 위해서는

jvmArgs '-Xshare:off'

를 작성해야한다고 한다.

 

해당 코드를 build.gradle에 작성한 후

tasks.named('test') {
    useJUnitPlatform()
    jvmArgs '-Xshare:off'
}

실행시키면 경고문이 나타나지 않게 된다.

 

● jvmArgs '-Xshare:off' 란?

해당 코드는 JVM(Java Virtual Machine)을 실행할 때 클래스 데이터 공유(Class Data Sharing, CDS) 기능을 비활성화 하는 옵션이다.

 

※ 클래스 데이터 공유 (Class Data Sharing, CDS) 란?

JVM의 기동 속도를 높이고 메모리 사용량을 줄이기 위해 클래스 메타데이터를 공유하는 기술이다.

'TIL' 카테고리의 다른 글

플러스 주차 개인과제 TIL 2.  (0) 2025.03.11
플러스 주차 개인과제 TIL 1.  (0) 2025.03.10
내일배움캠프 TIL 25.  (0) 2025.02.26
내일배움캠프 TIL 24.  (0) 2025.02.24
내일배움캠프 TIL 23.  (0) 2025.02.21