자바를 복습하려고 자바의 정석 첫 장을 펼치자마자 난관에 봉착했다. 예전에는 아무 생각없이 읽었지만, JIT 컴파일러, HotSpot JVM, Runtime Constant Pool 등 외계어를 도저히 무시할 수 없어서 자바의 실행원리를 제대로 정리해야겠다고 다짐하여 글을 작성한다. 시리즈로 작성하려고 하는데, 본 게시글은 지적 호기심으로 깊게 검색해본 내용으로 초심자에게 적합하지 않을 수 있다. 설명하기에 앞서, Java는 썬 마이크로시스템즈(현 Oracle)에 의해 개발되었지만, JVM 명세(The Java Virtual Machine Specification)를 따르기만 하면 어떤 벤더든 JVM을 개발하여 제공할 수 있어서 JVM의 세부적인 구현은 다를 수 있다. 이 때문에 Hotspot JVM, ..
평화롭게 강의 듣던 와중, vscode extension을 다운받으려고 하는데 오잉? 다운이 안된다. 네트워크 속도가 1초에 2KB 수준으로 매우 느렸다. 나는 windows 환경에서 wsl2를 사용하고 있고 vscode 에서 wsl2를 터미널 기본 세팅으로 해놨다. 최근에 네트워크를 잘못 만지는 바람에 리눅스 서버가 다운되었던 경험이 있어서 당연히 리눅스 문제겠구나~ 싶었다. 그래서 vscode에서 remote-wsl을 이용하여 접속해보니 !? 이러한 오류의 향연이었다. 일단, remote-wsl을 안쓴지 좀 되어서 vs code 서버 버전이 안맞구나~ 싶었는데 그를 다운받는 과정에서 다운로드가 제대로 되고 있지 않은 것으로 이해하였다. 첫번째 노력, Temp 폴더에 tar.gz 파일 넣기 관련 오류를..
Vertical-align은 당신이 아는 수직정렬이 아니다. Flex 박스 이용 시 컨텐츠를 어떻게 수직정렬 해야할까? 항상 html/css는 가볍게 공부하고 넘어가고 그때 그때 구현하기에 바빴어서 평상시 어려움을 겪었던 수직 정렬에 관하여 말하고자 한다. 자극적인 제목을 사용했지만, 사실 대부분의 사람들이 잘 구현하고 있을 것이다. 이 글은 html/css에 처음으로 뛰어들어 어려움을 겪는 분들에게 나의 경험을 공유하고자 함이다. 개발자 신재윤입니다 :) 위와 같은 레이아웃이 있다고 하자. 현재 텍스트는 태그 내부에 작성했고 사진은 img 태그이다. 두 레이아웃은 flex를 이용한 가로배치를 했다. 여기서 우리가 하고자 원하는 작업은 글자를 수직정렬하여 가운데 보내기를 원할 것이다. 개발자 신재윤입니다..
Performance Metrics 컴퓨터 성능을 측정하는 것에 있어, 다양한 지표가 존재한다. 성능을 어떻게 정의내리느냐에 따라 차이가 나타나기도 한다. 컴퓨터 성능의 정의에 관한 것을 살펴보면, There are many ways to define something as "the best" 즉, 어떠한 기준을 잡느냐에 따라 최고의 성능을 낸다고 판단할 수 있다는 의미이다. 항공기의 예시로, 승객 수용량에 따라, 비행 시간에 따라, 속도에 따라, throughput에 따라, 여러 기준에 따라 성능이 최고인 것이 판가름 나는 것과 동일하게 컴퓨터의 성능 또한 마찬가지이다. 컴퓨터의 경우 프로세서 성능이 뛰어난 것을 기준으로 잡는지 혹은 메모리 크기를 기준으로 잡는지 각기 다르게 성능을 평가할 수 있다. ..
리스트 자료형? 튜플 자료형? 프로그래밍 언어에 연관성이 존재하는 데이터를 나열하는 방법을 흔히 "배열"이라고 불리는 형태로 많이 사용한다. 컴퓨터 공학에 입문할 때 배우는 대표적인 언어인 C언어에도 이 배열이라는 형태가 있다. C언어에서 배열을 배울 때 아래와 같은 형태를 먼저 배운다. #include int main(void) { int a[5] = {1, 2, 3, 4, 5} return 0; } C언어는 배열을 선언할 때 메모리에 해당하는 배열의 크기를 미리 할당한다. 위 코드에서 a 배열의 크기를 5로 지정했기 때문에 메모리의 5칸을 미리 할당 받는 것이다. 위에서는 정수형 자료를 5개 모두 넣었지만, 만약 {1, 2}만 줬다고 하면 메모리의 나머지 3칸은 쓰레기 값이 들어가있는 상태이다. 즉,..
컴파일러(Compiler), 인터프리터(Interpreter) 파이썬 학습 도중, CS 공부하면서 대충 알고 넘겼던 컴파일러와 인터프리터에 대한 정리가 필요하겠다 싶어서 블로그 포스팅을 하기로 결정했다. 내 개발 블로그의 첫번째 주제는 컴파일러와 인터프리터에 대한 이해이다 ! 먼저, 기본적인 프로그래밍 언어에 관하여 설명을 하고 컴파일러와 인터프리터에 대한 비교를 진행하겠다. 컴퓨터는 어떻게 프로그래밍 언어를 이해할까? 인간이 언어를 작성하면 컴퓨터가 이해하도록 변환하는 과정이 필요해요. 인류의 위대한 과학적인 업적인 컴퓨터의 발명을 우리는 당연하게 생각하며 사용해왔다. 현재에 이르러 많은 것을 가능하게 한 컴퓨터가 돌아가는 간단한 원리를 살펴보고자 한다. 컴퓨터 본체라는 하드웨어가 있는 상태에서 뛰어난..
- Java Compile time
- JVM Runtime Data Areas
- JVM Execute Engine
- flex box
- JIT Compiler
- CPU execution time
- vscode 오류
- 컴퓨터 성능 지표
- Dynamic Loading
- JVM Memory Areas
- Hotspot Compiler
- 자바 동적로딩
- wsl2 오류
- string pool
- JVM 실행원리
- flex align
- 프로그래머스
- Java 실행원리
- 클라우드 기반 백엔드 데브코스
- JVM ClassLoader
- 코딩부트캠프
- flex vertical align
- JVM
- 가변객체
- 백엔드 데브코스
- flex 수직정렬
- extension 다운 안됨
- Java 컴파일러 동작 원리
- 프로그래머스 데브코스
- Runtime Constant Pool
- Total
- Today
- Yesterday