2024년 09월 26일 일일 요약
=============================================
1: 이 글에서는 JVM(Java Virtual Machine)의 기능과 동작 원리를 설명하고 있습니다. JVM은 스택 기반의 해석 머신으로, 자바 프로그램을 실행하기 위해 부트스트랩 클래스로더와 확장 클래스 로더를 활용합니다. 자바의 바이트코드와 클래스를 로딩하고 실행하는 과정, AOT(Ahead of Time) 컴파일, JIT(Just In Time) 컴파일을 통한 최적화, Garbage Collection과 하드웨어의 역할, 운영체제의 리소스 관리 등에 대해 설명합니다.
키워드: JVM, 바이트코드, AOT, JIT, Garbage Collection, 캐시 일관성 프로토콜, 메모리 관리, 가상 주소
출처: https://americanopeople.tistory.com/463
=============================================
2: Jenkins 내부에서 Docker CLI를 설치한 후, Docker 데몬에 접근하는 권한 문제로 Docker 명령어 실행이 불가능한 상황을 다루었습니다. 여러 가지 시도를 했지만 문제가 해결되지 않았고, 결국 Dockerfile을 통해 Jenkins 컨테이너를 재구성한 후 정상적으로 Docker 명령어를 사용할 수 있었습니다.
키워드: Jenkins, Docker, 권한 문제, Dockerfile, DevOps
출처: https://moonnight0.tistory.com/entry/Jenkins-DooD-%EA%B6%8C%ED%95%9C-%EB%AC%B8%EC%A0%9C-%ED%95%B4%EA%B2%B0%ED%95%98%EA%B8%B0-feat-troubleshooting
=============================================
3: Virtual Thread는 JDK 21에 추가된 경량 쓰레드로, OS 쓰레드를 사용하지 않고 JVM 내부 스케줄링으로 쓰레드를 생성할 수 있습니다. 이러한 특성으로 수십만에서 수백만 개의 쓰레드를 동시에 사용할 수 있습니다. 기존의 일반 Thread는 OS Thread와 매핑되어 있으며, 쓰레드 생성 시 커널 접근이 필요하므로 오버헤드가 발생합니다. Virtual Thread는 블로킹 I/O에 대한 대기 시간을 줄이고, 메모리 사용량이 적으며, 동기식 스타일로 쉽게 코딩할 수 있는 장점이 있습니다. 그러나 CPU 작업이 많은 경우에는 기존 쓰레드의 사용이 여전히 필요합니다.
키워드: Virtual Thread, OS Thread, Blocking I/O, JVM, Thread Pool
출처: https://americanopeople.tistory.com/464