전체 글

전체 글

    [Java] JVM Warmup

    이 글은 아래의 카카오 테크 유튜브에 나온 영상을 기반으로 정리해본 것이다.Warmup이 필요한 이유 위의 영상의 요지는 Java Application을 시작할 때 초기에 JIT Compiler가 충분히 캐시되지 않은 상태에서 실 사용자들의 인입이 너무 많아 쓰레드가 묶여서 속도 저하가 발생된다는 것이다.  JVM 흐름 이해하기자바 애플리케이션의 프로세스 흐름은 글로 설명하면 아래와 같다.우선 .java 파일을 자바 컴파일러를 통해 컴파일을 하면 바이트 코드 형식의 .class 파일이 생긴다.그리고 .class 파일이 묶인 .war나 .jar 파일을 JVM이 실행할 수 있다.그 과정에서 .class 파일을 위의 그림처럼 Class Loader가 처음 실행시킨 뒤 Execution Engine에 의해 In..

    도메인 네임 구매에 대한 ChatGpt와의 대화

    수억 달러라길래 6000억원 제시. 시가총액 1조라길래 10조 제시. 인터넷에 떠도는 밈인 "상대가 만족하지 않는다면 액수가 부족하기 때문이다"라는 말이 떠올라서 1000조 제시 졌다.

    Spring AOT(Ahead-Of-Time) 경험 이야기

    Spring 6.0 AOT 지원 Spring 6.0.0, Spring Boot 3.0을 맞아 Spring AOT에 대한 전폭적인 지지를 할 것으로 보입니다. AOT에 대한 내용은 그리 어렵지 않습니다. 그냥 어플리케이션 시작 시간을 빠르게 하는 기술이라고 합니다. 기존의 JVM 방식에서는 프로그램이 올라갈 때 바이트 코드를 컴파일하지만 AOT는 '네이티브 이미지'라는 것을 미리 만들어서 미리 컴파일 할 수 있도록 해주는 기능을 제공합니다. 더불어 메모리 사용량도 줄여 경량화 애플리케이션을 구축하는 데 도움을 준다고 합니다. 사용 방법 일단 Spring AOT를 이용하려면 JVM이 아닌 GraalVM을 사용해야합니다. Release GraalVM Community Edition 22.3.1 · graalv..

    Spring 6.0 HTTP Interface 사용법 및 REST API Client 방식의 변화

    이 글은 Spring 6.0의 HTTP Interface 사용법 및 REST API Client 방식의 변화를 설명하고자 합니다. 해당 내용은 깃헙에 올려져 있습니다. Spring 6.0 등장 2022년 11월 Spring 6.0 버전이 나왔습니다. 주요 특징이 있다면 6.0 버전 부터는 Java 17 이상만 지원을 합니다. Spring Initilzer 에서도 이제는 Spring Boot 3.0 이상 지원을 기본으로 합니다. 아마 올 상반기 쯤에는 Spring Initializer에 2.7.9 버전은 보이지도 않을지도 모릅니다. 그래서 앞으로는 개발의 편의성을 위해 Java 11에서 17로 바꿔주는 작업을 해줍니다. 그에 맞게 환경 변수도 편집하고 IDE에도 Java 17로 구동하도록 변경해줍니다. R..