JIT 컴파일
·
Java
JIT 컴파일 정의 Just-In-Time Compilation (= Dynamic Translation, 동적 번역) 프로그램을 실행하는 시점(런타임)에 기계어로 번역하는 컴파일 기법이다. 실행 시점에 인터프리트 방식으로 코드를 읽어가면서 기계어 코드를 생성한다. 생성된 기계어 코드를 캐싱하여, 재사용 시에는 캐싱된 기계어 코드를 사용한다. Java의 경우 Java 컴파일러 : 자바 프로그램 코드 → 바이트코드 JIT 컴파일러 : 바이트코드 → 기계어 코드 장점 (사용 이유) Only 인터프리터 방식보다는 성능이 좋고, Only 정적 컴파일 방식보다는 이식성이 좋다. 즉, 정적 컴파일러의 성능과 인터프리터 언어의 편의성을 모두 추구한다. 의외의 장점 정적 컴파일러로 번역한 결과보다 성능이 더 좋을 수 ..
OpenJDK 아카이브 링크
·
Java
OpenJDK 아카이브 링크 https://jdk.java.net/archive/
Java의 정석 13장 리뷰
·
Java
Java의 정석 13장 리뷰 쓰레드를 구현할 때는 run() 메서드를, 실행할 때는 start() 메서드를 호출한다. (p.726) 쓰레드의 호출 스택을 별도로 생성하기 위해서이다. 쓰레드 그룹(thread group) (p.741) 보안 상 이유로 도입된, 쓰레드를 그룹으로 관리하는 클래스이다. 자신이 속한 쓰레드 그룹이나 하위 쓰레드 그룹은 변경할 수 있지만, 다른 쓰레드 그룹의 쓰레드를 변경할 수는 없다. 모든 쓰레드는 반드시 쓰레드 그룹에 포함되어 있어야 하며, 기본적으로는 부모 쓰레드와 같은 쓰레드 그룹에 속한다. JVM은 기본적으로 system과 main 쓰레드 그룹을 생성한다. 다음과 같이 참조 변수 없이 쓰레드를 생성하여 바로 실행시켜도, 이 쓰레드의 참조가 ThreadGroup에 저장되어..
백기선 스프링 프레임워크 핵심 기술 완강 후기
·
Java
백기선 스프링 프레임워크 핵심 기술 완강 후기 후기 Spring Framework의 Core 부분만 간략하게 학습한 것인데도 상당히 방대하다고 느꼈다. Spring Boot를 사용하면 상당히 편리해 보이는 부분이 많아서, 요즘 추세에 따라 반드시 알아야 할 것 같다. 토비의 스프링 3에 많은 정보가 있는 듯 하다. 백기선 스프링 커리큘럼 완강 이후 심화 학습용으로 보면 좋을 것 같다. 리액트나 안드로이드의 라이프사이클을 파악해야 쉽게 프로그래밍할 수 있는 것처럼, 스프링 Bean의 라이프사이클을 아는 것이 중요한 것 같다. 스프링 등장 시기 : 2003년 스프링 5부터는 서블릿 기반이 아닌 서버 애플리케이션도 개발할 수 있게 되었다. (WebFlux 지원) 아래 내용은 Spring Framework Co..
Java 이클립스 The project description file (.project) for ~ is missing 에러
·
Java
Java 이클립스 The project description file (.project) for ~ is missing 에러 workspace를 구성하고나서 리포지토리를 옮겼더니 이클립스를 켜서 Navigator를 볼 때 위의 에러가 발생했다. .metadata\.plugins\org.eclipse.core.resources\.projects\프로젝트명\.location 의 경로와 실제 경로가 맞지 않으면 발생하는 것 같다. .metadata\.plugins\org.eclipse.core.resources\.projects 폴더를 지우고 다시 이클립스를 켰더니 해결됐다. 참고 https://www.rdeeson.com/weblog/99/relocating-eclipse-projects-the-projec..