
다른 시리즈 보기 [Java의 실행원리 0편] 시리즈 개요 [Java의 실행원리 1편] Compile-time 환경 [Java의 실행원리 2편] Runtime 환경 - JVM Class Loader [Java의 실행원리 3편] Runtime 환경 - JVM Memory, Runtime Data Areas [Java의 실행원리 4편] Runtime 환경 - JVM Execute Engine 드디어 Java의 실행원리 마지막 이야기인 Execute Engine에 관련된 이야기이다. 개발자가 작성한 Java 코드가 자바 컴파일러에 의해 바이트 코드로 바뀌고 클래스로더에 의해 Runtime Data Areas에 올려지면서 사용할 준비가 완료되었다. Execute Engine은 이 바이트코드를 어떻게 실행하는지 ..

다른 시리즈 보기 [Java의 실행원리 0편] 시리즈 개요 [Java의 실행원리 1편] Compile-time 환경 [Java의 실행원리 2편] Runtime 환경 - JVM Class Loader [Java의 실행원리 3편] Runtime 환경 - JVM Memory, Runtime Data Areas [Java의 실행원리 4편] Runtime 환경 - JVM Execute Engine JVM의 클래스로더에 의해 메모리 영역에 Byte Code(.class) 파일이 올라가면 사용할 준비가 끝난 것이다. 이제, 메모리 영역의 어디에 올라간다는 것인지 구조를 살펴보고 의미를 파악할 것이다. 이와 더불어 Method Area 내부에 Runtime Constant Pool이라는 단어가 보이는데, Constan..

다른 시리즈 보기 [Java의 실행원리 0편] 시리즈 개요 [Java의 실행원리 1편] Compile-time 환경 [Java의 실행원리 2편] Runtime 환경 - JVM Class Loader [Java의 실행원리 3편] Runtime 환경 - JVM Memory, Runtime Data Areas [Java의 실행원리 4편] Runtime 환경 - JVM Execute Engine ClassLoader - Dynamic Loading 저번 시간에 자바 컴파일러를 거쳐서 소스 코드(.java)에서 바이트 코드(.class) 파일까지는 만들었다. 이제 JVM 내부의 클래스로더가 런타임 시점에 JVM의 Memory area인 Runtime Data Area에 바이트 코드인 클래스 파일을 올리면 이를 이..

다른 시리즈 보기 [Java의 실행원리 0편] 시리즈 개요 [Java의 실행원리 1편] Compile-time 환경 [Java의 실행원리 2편] Runtime 환경 - JVM Class Loader [Java의 실행원리 3편] Runtime 환경 - JVM Memory, Runtime Data Areas [Java의 실행원리 4편] Runtime 환경 - JVM Execute Engine 1편에서는 JVM, JRE, JDK에 관한 설명을 하며 Java 8 이후부터는 런타임 이미지가 어떤 식으로 변경되었는지를 알아보며 간단하게 모듈화에 대한 이야기를 하고 Java Compiler를 통하여 Source Code(.java)가 Byte Code(.class)로 변경되어가는 과정을 상세하게 살펴볼 것이다. JV..

자바를 복습하려고 자바의 정석 첫 장을 펼치자마자 난관에 봉착했다. 예전에는 아무 생각없이 읽었지만, JIT 컴파일러, HotSpot JVM, Runtime Constant Pool 등 외계어를 도저히 무시할 수 없어서 자바의 실행원리를 제대로 정리해야겠다고 다짐하여 글을 작성한다. 시리즈로 작성하려고 하는데, 본 게시글은 지적 호기심으로 깊게 검색해본 내용으로 초심자에게 적합하지 않을 수 있다. 설명하기에 앞서, Java는 썬 마이크로시스템즈(현 Oracle)에 의해 개발되었지만, JVM 명세(The Java Virtual Machine Specification)를 따르기만 하면 어떤 벤더든 JVM을 개발하여 제공할 수 있어서 JVM의 세부적인 구현은 다를 수 있다. 이 때문에 Hotspot JVM, ..

Vertical-align은 당신이 아는 수직정렬이 아니다. Flex 박스 이용 시 컨텐츠를 어떻게 수직정렬 해야할까? 항상 html/css는 가볍게 공부하고 넘어가고 그때 그때 구현하기에 바빴어서 평상시 어려움을 겪었던 수직 정렬에 관하여 말하고자 한다. 자극적인 제목을 사용했지만, 사실 대부분의 사람들이 잘 구현하고 있을 것이다. 이 글은 html/css에 처음으로 뛰어들어 어려움을 겪는 분들에게 나의 경험을 공유하고자 함이다. 개발자 신재윤입니다 :) 위와 같은 레이아웃이 있다고 하자. 현재 텍스트는 태그 내부에 작성했고 사진은 img 태그이다. 두 레이아웃은 flex를 이용한 가로배치를 했다. 여기서 우리가 하고자 원하는 작업은 글자를 수직정렬하여 가운데 보내기를 원할 것이다. 개발자 신재윤입니다..

리스트 자료형? 튜플 자료형? 프로그래밍 언어에 연관성이 존재하는 데이터를 나열하는 방법을 흔히 "배열"이라고 불리는 형태로 많이 사용한다. 컴퓨터 공학에 입문할 때 배우는 대표적인 언어인 C언어에도 이 배열이라는 형태가 있다. C언어에서 배열을 배울 때 아래와 같은 형태를 먼저 배운다. #include int main(void) { int a[5] = {1, 2, 3, 4, 5} return 0; } C언어는 배열을 선언할 때 메모리에 해당하는 배열의 크기를 미리 할당한다. 위 코드에서 a 배열의 크기를 5로 지정했기 때문에 메모리의 5칸을 미리 할당 받는 것이다. 위에서는 정수형 자료를 5개 모두 넣었지만, 만약 {1, 2}만 줬다고 하면 메모리의 나머지 3칸은 쓰레기 값이 들어가있는 상태이다. 즉,..
- extension 다운 안됨
- Hotspot Compiler
- Java 컴파일러 동작 원리
- 자바 동적로딩
- JVM Runtime Data Areas
- 가변객체
- JIT Compiler
- 프로그래머스
- JVM Execute Engine
- JVM 실행원리
- flex vertical align
- JVM ClassLoader
- Java 실행원리
- string pool
- 프로그래머스 데브코스
- flex align
- 코딩부트캠프
- 컴퓨터 성능 지표
- vscode 오류
- flex 수직정렬
- CPU execution time
- flex box
- JVM
- 백엔드 데브코스
- Dynamic Loading
- wsl2 오류
- Runtime Constant Pool
- JVM Memory Areas
- Java Compile time
- 클라우드 기반 백엔드 데브코스
- Total
- Today
- Yesterday