Backend/Java4 Virtual Thread 신기술이란...Java 21부터 정식 릴리즈된 가상 스레드에 대해 알아보려고 합니다. 우아한 테크 채널의 발표 영상과 우아한 기술 블로그의 글을 많이 참조했습니다. 기술적으로 정확한 정보를 전달해 준 우아한 테크와 달리 이 글은 제 추측이 많이 가미되었습니다. 부디 정보로 받아들이기보다는 이런 경험과 생각을 한 사람이 있구나 정도로 봐주시면 감사하겠습니다. [참고 링크] 우아한 테크 세미나 - Java의 미래, 가상 스레드 우아한 기술 블로그 - Java의 미래, Virtual Thread JEP 444: Virtual Threads Java의 미래, Virtual Thread | 우아한형제들 기술블로그JDK21에 공식 feature로 추가된 Virtual Thread에 대해 알아보고, Thread, R.. 2024. 8. 5. Serial GC / Parallel GC / G1 GC Serial GC가장 단순한 가비지 컬렉터로 하나의 스레드를 사용하여 GC를 수행한다. 여기서 말하는 스레드는 CPU의 물리적인 처리 단위를 의미 한다. GC 발생 시 Stop The World가 발생하며 사용하는 스레드가 적은 만큼 그 시간도 길다. Minor GC에선 Mark(unreachable 인스턴스 마킹)과 Sweep(메모리 해제)이, Old GC에선 Compact(메모리 단편화 해소)까지 진행된다. Parallel GCSerial GC가 싱글 스레드를 사용했다면, Parallel GC는 Minor GC에서 멀티 스레드를 사용하여 GC를 수행한다. 스레드가 늘어나는 만큼 Serial GC에 비해 상대적으로 Stop The World 시간이 짧다. Serial GC와 마찬가지로 Mark - Sw.. 2024. 6. 19. JVM Stack / Heap - GC StackJVM 내부에서의 스택은 스레드(Thread)가 독립적으로 실행되는 메모리 영역을 의미한다. Stack 영역에 스레드가 올라가고, 스레드마다 Call Stack / Program Counter Resister / Native Method Stack이 할당된다. Call Stack메서드가 실행되면 메서드 정보를 담은 Stack Frame이 Call Stack으로 push 된다. 이때 Call Stack은 지역 변수 정보를 담은 Local Variable Array, 연산 정보를 담은 Operand Stack, 호출된 메서드에 대한 포인터 등이 포함되어 있다. public static void main(String[] args) { int a = 5; int b = 6; print.. 2024. 6. 19. Java Compile 코딩을 처음 시작했을 때 Java 컴파일에 대한 내 인상은 아래와 같았다.Java 소스코드는 자바 컴파일러에 의해 컴파일된다.컴파일은 파일 저장 시 즉시 일어난다.그리고 놀랍게도 이 생각은 최근까지 이어져왔는데, 이번에 기술 면접 대비 공부를 하면서 Java의 compile과정을 설명하라는 질문을 마주치게 됐다. 저장하면 컴파일러가 하는 게 컴파일이다. 이 말이 내가 사용하는 환경에서 틀린 말은 아니지만 면접에서 저렇게 대답할 순 없는 노릇이었다. 그러다 작년 원티드 프리온보딩에서 진행했던 Java GC 세션이 떠올랐다. 강사님이 굉장히 디테일한 부분까지 설명해 주셔서 여태 참여한 챌린지 중 가장 만족도가 높은 세션이었는데, 강의 초반 Java와 JVM에 대해 논하면서 컴파일에 대한 얘기를 했던 기억이 .. 2024. 6. 7. 이전 1 다음