JAVA/JVM

    02. JVM 구조

    JVM 구조 현재 JVM에서 가장 보편적으로 사용되는 구조는 핫스팟 가상 머신 구조입니다. 서버상에서 장시간 운영되는 애플리케이션을 위한 구조입니다. 가볍고 부하가 적으며, GC 최적화를 잘해 자바의 성능이 아쉽다는 평을 많이 지우는 데 기여했습니다. 먼저 핫스팟의 구조를 봅시다. 먼저 JVM은 스택 기반의 해석 머신입니다. 물리적인 하드웨어(레지스터)는 없으나, 일부 결과(중간 값)를 스택에 보관하며, 이 스택의 맨 위에 쌓인 값(마지막에 실행된 명령어)들을 가져와 계산을 실시하죠. 단계적으로 설명하자면 1. OS의 메모리 할당 2. 가상 머신 프로세스(자바 바이너리) 실행 3. 자바 가상 환경 구성 및 스택 머신 초기화 4. 컴파일된 클래스 파일 로드 (값들을 스택 영역에 저장) 5. 계산 실시 이 ..

    01. 컴퓨터 언어와 바이트코드

    1. 컴퓨터의 언어 기계어 세계 각지의 사람들은 서로 다른 언어들로 소통을 합니다. 컴퓨터 또한 그들만의 언어로 소통을 실시합니다. 바로 1과 0으로 이루어진 숫자들을 이용해서 말이죠. 이를 기계어(Machine Language)라고 합니다. 1000 1011 0111 1111 0000 0001 1100 1000 0100 0000 1010 0111 ... 문제점 1. 진입 장벽 실제로 이를 이용해서 프로그래밍 역시 가능합니다. 하지만 수정을 해야 하는 상황을 가정해봅시다. 만약 위와 같은 코드가 몇만 줄이 있을 때, 딱 원하는 부분만 수정하기에는 정말 어려운 일입니다. 이는 고스란히 개발자들의 진입장벽에도 영향을 주게 됩니다. 이 문제를 조금이나마 해결하고자, 16진법으로 변경해 보지만... 8b 45 ..