프리온보딩 백엔드 챌린지 6월 - 1주차 후기 및 내용 정리

JVM부터 GC, 스레드 동기화까지의 내용을

2주간 월, 수 (19:30 ~ 22: 30) 총 3시간동안 강의 및 미션 수행을 하는 챌린지 일정이다.

이번 챌린지의 목표는

  1. 강의를 통해 프로그래밍 언어에 대한 이해도 높이기.

  2. 나아가 언어 뿐 아니라 어떠한 기술이든 깊게 살펴보는 습관 만들기.

이였고, 아는 내용은 다시 한번 정리해보자는 느낌으로 시작했다.


첫 강의는 자바의 정의와 동작 방식에 대해서 자세히 살펴보는 시간이였다.

자바 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? 무슨 방식일까?

자바는 두가지 방식을 혼합하여 사용하는 하이브리드 모델