본문 바로가기

스터디-공부/Java5

6장 JDK 동시성(concurrency) 라이브러리 Well-Grounded Java Developer – 2nd edition 이번 장에서는 아래의 것들을 다룹니다. 아토믹(Atomic) 클래스 락(Lock) 클래스 Concurrent data structures BlockingQueues Futures and CompletableFuture Executors java.util.concurrent 를 어떻게 다루는지에 대해서 알아보고 이번 장을 통해 실제 코드로 적용할 준비를 갖추는 것 목표로 합니다. 6.1 최신 동시성 어플리케이션을 위한 블록 만들기 Java는 예전부터 동시성을 지원해왔습니다. 그러나 Java 5가 출시 되면서 java.util.concurrent 패키지를 통해 새로운 방식들을 지원해왔습니다. java.util.concurrent의 .. 2023. 8. 7.
1장 최신 자바 소개 (4) – HTTP/2 소개 Well-Grounded Java Developer - 2nd edition 1.5.3 HTTP/2 (Java 11) HTTP 표준의 새로운 버전인 HTTP/2가 출시되었습니다. (글 작성 시점 기준 현재는 HTTP/3도 나왔습니다. 2022년 6월 6일, IETF RFC 9114로 표준화되었다고 함) HTTP 1.1(1997년) 에서 업데이트가 된 이유에 대해서 알아보고 Java 11에서 어떻게 HTTP/2를 제공하는지 알아보겠습니다. HTTP 1.1은 오래된 표준이기 때문에 최신 웹 어플리케이션에서 요구하는 성능에 비해 노후화 되었습니다. 이로 인해 아래와 같은 문제가 있었습니다. Head-of-line 블로킹 단일 사이트에 대한 연결 제한 HTTP 컨트롤 헤더의 성능 오버헤드 * 각각의 문제점에 대.. 2023. 6. 11.
1장 최신 자바 소개 (3) Well-Grounded Java Developer - 2nd edition 1.5 java 11의 작은 변경 사항 java 8 이후 비교적 많은 수의 새로운 작은 기능들이 적용되었습니다. 모든 변경 사항은 아니지만 가장 중요한 몇 가지 사항을 빠르게 살펴보겠습니다. 1.5.1 Collections factories (JEP 213) 컬렉션 리터럴 (collection literals - 리스트나 맵과 같은 objects 컬렉션) 을 선언하는 간단한 방법을 지원하는 것은 자주 요청되었던 개선 사항이였습니다. Java 컬렉션의 기본 설계 원칙은 클래스가 아닌 인터페이스로 표현된다는 것입니다. Java 8에서 인터페이스에 정적 메서드를 가질 수 있는 기능이 추가되었기 때문에 이를 활용하여 인터페이스에 간단한.. 2023. 6. 11.
1장 최신 자바 소개 (2) Well-Grounded Java Developer - 2nd edition 1.4 언어 및 플랫폼 변경 우리는 무엇이, 왜 변경되었는지 파악하는 것은 중요하게 생각합니다. 일반적으로 언어의 새로운 기능에 대해서는 관심이 많지만, 변화를 만들어 내기까지 얼마나의 시간과 노력이 소요되는지에 대해서는 관심이 많지 않습니다. 자바와 같이 성숙한(mature, 오래된) 런타임의 경우에는 다른 언어나 라이브러리에서 영향을 받기도 합니다. * syntactic sugar(구문적 설탕, 문법적 설탕) : 사람이 이해하기 쉽고 표현하기 쉽게 컴퓨터 언어를 디자인해 놓은 문맥 당연하게도 일반적으로 최소한의 노력이 드는 구현 수준을 선택하는 것이 좋습니다. 즉 새 기능을 라이브러리로 구현하는 것이 가능하다면 라이브러리로 .. 2023. 6. 7.
1장 최신 자바 소개 (1) Well-Grounded Java Developer - 2nd edition 2021년 9월에 최신 LTS 릴리즈인 Java 17이 나왔습니다. 2022년을 기준으로 대부분의 팀들은 Java 11이나 Java 8을 사용하고 있습니다. 클라우드에 배포하는 팀들은 Java 11을 쓰고 있지만 그렇게 되기까지에도 오랜 시간이 걸렸습니다. 이 책은 Java 11을 중심으로 진행합니다. a) 시장 점유율이 가능 큰 LTS 버전이고 b) 아직 Java 17이 눈에 띄게 적용되지 않았기 때문입니다. 그러나 Java 17의 기능들도 소개합니다. 이 논의들이 업그레이드를 꺼리는 일부 팀과 관리자를 설득하는데 도움이 되기를 바랍니다. 현대 자바의 핵심에 있는 언어와 플랫폼의 이중성에 대해 논의 하면서 시작해봅시다. 1.1.. 2023. 6. 2.