프리온보딩 백엔드 챌린지 6월 - 1주차 후기 및 내용 정리
JVM부터 GC, 스레드 동기화까지의 내용을
2주간 월, 수 (19:30 ~ 22: 30) 총 3시간동안 강의 및 미션 수행을 하는 챌린지 일정이다.
이번 챌린지의 목표는
-
강의를 통해 프로그래밍 언어에 대한 이해도 높이기.
-
나아가 언어 뿐 아니라 어떠한 기술이든 깊게 살펴보는 습관 만들기.
이였고, 아는 내용은 다시 한번 정리해보자는 느낌으로 시작했다.
첫 강의는 자바의 정의와 동작 방식에 대해서 자세히 살펴보는 시간이였다.
자바 JDK LTS 버전인 17버전을 기준으로 진행했고,
중요한 내용을 정리하자면,
JDK(Java Development Kit : 자바 개발 킷 (JRE + Development Tools)
JRE(Java Runtime Environment) : 자바 실행 환경 (JVM + Library)
JVM(Java Virtual Machine) : 자바 가상 머신, 자바 바이트코드를 기계어로 변화하고 실행
모듈 : 코드, 데이터를 그룹화하여 재사용이 가능한 정적인 단위
컴포넌트 : 독립적으로 실행할 수 있는 소프트웨어 단위
JVM : 자바 가상 머신
역할 : 클래스 로딩 , GC 메모리 관리 , 스레드 관리, 예외 처리
Method Area - JVM 실행 시 생성되며 클래스의 구조나 정보를 저장하는 영역
Heap - JVM 실행 시 생성되며 모든 객체 인스턴스에 대한 메모리가 할당되는 영역
Execution Engine
Interpreter
메모리에 로드된 바이트코드를 한줄 씩 해석/실행
GC(Garbage Collector)
대표적으로 Heap영역, 메모리에서 사용하지 않은 개체를 식별해 삭제하는 프로세스
자바는 Interpret? Compile? 무슨 방식일까?
자바는 두가지 방식을 혼합하여 사용하는 하이브리드 모델