Project Valhalla — Java 객체 모델과 제네릭의 진화
1. 개요 Project Valhalla는 OpenJDK가 추진하는 Java 언어 및 JVM 개선 프로젝트이다. 핵심 목표 “Java 클래스가 제공하는 객체지향적 추상화와, primitive type이 제공하는 메모리 효율 및 실행 성능을 함께 얻는 것” 공식 문서 : Project Valhalla OpenJDK는 Valhalla의 방...
1. 개요 Project Valhalla는 OpenJDK가 추진하는 Java 언어 및 JVM 개선 프로젝트이다. 핵심 목표 “Java 클래스가 제공하는 객체지향적 추상화와, primitive type이 제공하는 메모리 효율 및 실행 성능을 함께 얻는 것” 공식 문서 : Project Valhalla OpenJDK는 Valhalla의 방...
1. Virtual Thread 개요 왜 등장했는가 기존 자바의 스레드 모델은 OS 스레드와 1:1로 매핑되는 플랫폼 스레드(Platform Thread) 기반이다. 이 구조에서 스레드 하나를 만들면 OS 수준의 스택 메모리(기본 약 1MB)가 할당되고, 컨텍스트 스위칭 비용도 OS 레벨에서 발생한다. (기본 java thread 구조) 결과적...
배경 GraalVM 포스트와 이어짐. GraalVM은 Native Image는 강력하지만 대가가 크다 — Closed World Assumption, 리플렉션 메타데이터 등록, 수 분짜리 빌드 시간. 그런데 실무에서 마주치는 문제의 상당수는 사실 이거다: “왜 Hello World 하나 띄우는 컨테이너 이미지가 400MB냐?” 시작 속도가...
배경 Lambda 환경에서 Java를 JVM에 얹어서 컨테이너로 사용한다고 가정하자. 호출 → JVM 빌드하는데 한세월.. Python 놔두고? Node 놔두고? 굳이 자바를? 그래도 난 자바를 쓰고싶어!!!! >> GraalVM을 쓴다면 완벽하게 커버할 수 있다. 최적의 컴파일러이자 플랫폼 1. GraalVM이란? GraalVM은...
이런 댓글 본 적 있으신가요? 성 세 라 G 컵 gⓞⓞgⓛe 검 색 ㄹㅈㄷ 미 드 지 림 [성세라 원 본] 구 글 검 색 하면 VIP 전용 방 송 사 고나옴 >성 세 라 사 건< ġ૦૦ġĿ 검 색 미 드 지 림 인기 게시물에 댓글 알바들이 이런 식으로 수백 개씩 달아놓습니다. 글자 사이에 공백을 넣거나 이상한 기호를 섞어서 인스타그램 ...
왜 API Limiter가 필요한가 API 서버를 운영하다 보면 “요청이 많아지면 서버를 늘리면 되지 않을까?”라는 생각을 하게 된다. 하지만 실제로는 모든 요청이 동일한 비용을 가지지 않는다. 특정 요청은 DB, 외부 API, 복잡한 연산을 동반하며 서버 리소스를 급격히 소모한다. 특히 외부 API를 호출하는 서버나, 관리자 권한 API를 제공...
들어가며 서비스가 성장하면서 가장 먼저 병목이 발생하는 지점 중 하나는 데이터베이스다. 초기에는 단일 데이터베이스만으로 충분하지만, 트래픽과 데이터 양이 일정 수준을 넘어서면 확장 전략을 고민해야 한다. 이 글에서는 데이터베이스 확장 전략의 흐름을 짚어보고, 그중에서도 최후의 선택지로 자주 언급되는 샤딩(Sharding)의 개념과 대표적인 전략을 정...