Program Language7 Java21 Virtual Thread(가상쓰레드) - 2 https://itarchives.tistory.com/39 Java21 Virtual Thread(가상쓰레드) - 1자바 가상 쓰레드(Virtual Threads)는 자바 19에서 프리뷰 기능으로 도입되어 자바 21에 정식 기능으로 포함되었습니다. 이 기술은 동시성 프로그래밍의 효율성을 극대화하기 위해 고안.🚀 탄생 배경itarchives.tistory.com 🚀 1. Executors.newVirtualThreadPerTaskExecutor()"대규모 동시 작업을 처리할 때 가장 먼저 떠올려야 할 표준적인 방법"ExecutorService를 생성하는 새로운 팩토리 메서드. 이 실행기는 제출되는 모든 작업(task)에 대해 새로운 가상 쓰레드를 생성하여 실행한다. 수많은 요청을 동시에 처리해야 하는.. 2025. 7. 22. Java21 Virtual Thread(가상쓰레드) - 1 자바 가상 쓰레드(Virtual Threads)는 자바 19에서 프리뷰 기능으로 도입되어 자바 21에 정식 기능으로 포함되었습니다. 이 기술은 동시성 프로그래밍의 효율성을 극대화하기 위해 고안.🚀 탄생 배경전통적인 자바 쓰레드(플랫폼 쓰레드)는 운영체제(OS)의 쓰레드에 직접 매핑되었으며, 이는 다음과 같은 문제점을 야기했다.높은 컨텍스트 스위칭 비용: OS 쓰레드 간의 전환은 CPU 레지스터 저장 및 복원 등 많은 오버헤드를 발생시킨다.제한된 동시성: OS 쓰레드는 메모리 사용량이 많아 동시에 생성할 수 있는 개수에 물리적인 제약이 존재했다.이는 웹 서버와 같이 수많은 동시 연결을 처리해야 하는 애플리케이션에서 성능 병목으로 작용쓰레드 풀 관리의 복잡성: 제한된 쓰레드 자원으로 인해 개발자는 쓰레드 .. 2025. 7. 22. Java sealed class란? Java의 sealed class는 클래스 계층의 상속을 제한하고 명시적으로 허용된 클래스만 상속할 수 있도록 만든 기능이다.이는 클래스의 확장 가능성을 제어하고, 패턴 매칭이나 코드의 안전성을 높이는 데 사용이 된다. ✅ 도입 버전sealed 키워드는 Java 15(Preview) 에 처음 도입되고, Java 17부터 정식으로 사용!📌 목적클래스 계층에서 누가 상속할 수 있는지 명확히 제한하여 안정성, 보안성, 코드 가독성 향상 효과✅ 기본 문법public sealed class Shape permits Circle, Rectangle, Triangle { // ...} sealed class는 permits 키워드를 통해 어떤 클래스만 상속 가능한지 명시sealed 클래스를 상속하는 클래.. 2025. 7. 16. Java record란? record는 자바 14 프리뷰로 추가되었고, 이 후 16버전에서 정식으로 적용이 되었다.🎯 record 클래스의 등장 배경🧱 1. Boilerplate 코드 문제Java는 객체지향 언어로서, 클래스 구조가 엄격하고 명확하지만 그만큼 반복적인 코드(boilerplate) 가 많다.단순히 데이터를 담기 위한 VO/DTO 클래스조차 다음을 반복적으로 작성해야 했고,private final 필드 선언생성자getterequals(), hashCode()toString()➡ 실질적인 로직 없이 코드만 많아지는 문제가 생겼다. (record 등장 전 기존에 사용하던 예시코드)public class Person { private final String name; private final int age;.. 2025. 7. 16. Java 12 - Switch Expressions Java12에서 나온 스위치 표현식과 기존 Java 12 이전의 스위치를 정리하여 작성하려 한다.(정식 채택은 Java 14에서 채택) ✅ 1. 기존 switch 문 (Java 11까지)String day = "MONDAY";int number;switch (day) { case "MONDAY": number = 1; break; case "TUESDAY": number = 2; break; default: number = 0; break;}System.out.println(number); ❌ 문제점코드 중복: break를 매번 써야 함오류 유발 가능성: break 누락 시 fall-through 발생할당 흐름이 .. 2025. 7. 16. Java10의 var 변수란?(Javascript X) ✅ 1. 타입 추론으로 코드 간결화불필요한 타입 중복을 제거해서 코드를 짧고 읽기 쉽게 해줌🔸 Before (Java 8):Map> map = new HashMap>();🔸 After (Java 10~):var map = new HashMap>();👉 가독성이 훨씬 좋아짐 — 특히 복잡한 제네릭 타입에서 효과 큼. ✅ 2. 유지보수 용이타입 변경 시 변수 선언도 함께 고쳐야 하는 번거로움을 줄여줌🔸 예:// 타입이 변경되어도 var는 그대로 사용 가능var userList = getUsers(); // List → 나중에 getUsers() 반환 타입이 바뀌더라도 코드를 수정할 필요 없음. ✅ 3. 일관된 선언 스타일모든 지역 변수 선언을 var로 통일하면 코딩 스타일이 정리됨.특히 Stream,.. 2025. 7. 15. 이전 1 2 다음