inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

더 자바, 코드를 조작하는 다양한 방법

모자에서 토끼를 꺼내는 마술

바이트버디 Unloading 관련해서 질문드립니다.

400

개발한입

작성한 질문수 17

0

먼저, 자바8과 스프링 강의등 다 잘 수강을 마쳤습니다.

항상 좋은 강의 만들어주셔서 감사하게 보고있습니다 :)

본론으로 들어가 Java Code Hot Deploy와 관련되서 여기저기 찾아보다가 결국에 백기선님 강의까지 도달했는데요.

제가 알고 있기로는 자바의 BootStrap이나 Extension 그리고 System나 Application Class Loader의 경우 Unloading 기능이 없는 것으로 알고 있습니다.

바이트 버디와 말씀하신 부분 중에서도 궁금했던 부분이 언로딩 기능인데요.

모자라는 클래스를 Application Class Loader와 바이트 버디가 만들어주는 Class Loader에서 로드해주기 때문에 사실상 같은 이름이지만 JVM 상에서는 2개라고 말씀해주셨던 부분이 있었습니다.

제 생각은 그렇다면 바이트 버디가 Unloading과 Reloading이 가능한 이유는 바이트 버디가 자체적으로 Class Loader를 갖고 있기 때문에 JVM 내부에 있는 클래스 로더의 Unloading이 안된다는 단점을 상쇄시킨 것이라고 생각하면 될까요?

JPA java spring

답변 2

1

백기선

음.. 글쎄요. 우선 클래스 릴로딩 같은 경우는 문서에 따르면 별도의 클래스로더가 아니라 javaagnet를 사용한 JVM의 HotSwap 기능을 사용한다고 나와있네요. 그리고 바이트버디에서 말하는 Unloaded는 신수옹님이 말씀하시는 Unloading이 아니라 클래스로더가 로딩하지 않은 클래스르를 말하는 것 같습니다.

0

개발한입

아 그렇군요 javaagent 핫스왑이랑 바이트버디 문서를 정독을 해봐야겠습니다. 감사합니다 :)

클래스 로더가 메소드 영역에 저장하는 것은 바이트코드인가요?

1

82

1

실제 개발 단계에서 이 같은 지식들을 적용할 기회가 있을까요?

0

102

1

코틀린 컴파일에 대해서

0

218

1

RuntimeException

0

340

1

Annotation processor에서 element type을 제한했는데도 다른 타입으로 컴파일이 됩니다...이상하게도..

0

399

1

gradle 사용하시는 분 도움

4

763

1

CGLib를 따라 해보면서 문제점이 있으며, 해결법입니다. JDK17입니다.

6

865

0

Spring Data JPA 동적 프록시를 사용 질문

0

419

1

어노테이션 프로세서 활용 예와 관련해 질문 있습니다.

0

503

1

"자바 언어가 플랫폼에 독립적이다" 라는 것에 대해 옳게 이해했는지 궁금합니다!

1

1133

1

'클래스 로더' 강의에서 클래스 로딩을 설명할 때 잘못된 것 같아 질문드립니다.

3

1257

2

metaspace 질문드립니다.

2

394

0

소스컴파일시점에 MagicMojaProcessor가 사용되면 안되는이유

0

423

0

다이나믹 프록시에서 리플렉션이 어떻게 사용되는거죠?

0

468

1

다이나믹 프록시의 단점

0

350

0

new 와 constructor.newInstance();의 차이

0

662

0

두번 실행해야하는 이유

0

472

0

제가 설명한게 맞는지 봐주실 수 있나요?(jvm설명)

0

445

0

JIT 컴파일러와 인터프리터

1

1011

1

Method.invoke()

0

426

1

site 폴더내에 jacoco 폴더가 생기지 않습니다.

0

987

1

메모리 영역의 구조 질문

0

449

1

GC 설명부분 질문드립니다.

0

489

1

jit 와 인터프리터 질문

1

394

1