DevTales
close
프로필 배경
프로필 로고

DevTales

  • 분류 전체보기 (83)
    • Lang (49)
      • Java (21)
      • Kotlin (3)
      • C (12)
      • Go (9)
      • Python (4)
    • Spring (13)
      • Data (2)
      • Kafka (2)
      • Security (0)
      • Webflux (9)
    • Infra (9)
      • Database (3)
      • Middleware (0)
      • Container (1)
      • OS (5)
    • Build (0)
    • CS (3)
      • Network (1)
      • Security (1)
      • Architecture (1)
    • Leaner's High (5)
    • 기타 (4)
  • 홈
  • 방명록
[Java 21] (15) - Lambda & stream

[Java 21] (15) - Lambda & stream

람다식 (Lambda expression) 자바가 1996년에 처음 등장한 이후로 세 번의 큰 변화가 있었는데, 한 번은 JDK 5부터 추가된 지네릭스(generics)의 등장이고, 또 한 번은 JDK 8부터 추가된 람다식(lambda expression)의 등장, 그리고 마지막으로 JDK 9의 모듈화(modularity)입니다. 이 세가지 새로운 변화에 의해 자바는 더 이상 예전의 자바가 아니게 되었습니다. 특히 람다식의 도입으로 인해, 이제 자바는 객체지향언어인 동시에 함수형 언어가 되었습니다. 람다식이란? 람다식(Lambda expression)은 간단히 말해서 메서드를 하나의 '식(expression)'으로 표현한 것입니다. 람다식은 함수를 간략하면서도 명확한 식으로 표현할 수 있게 해줍니다. ..

  • format_list_bulleted Lang/Java
  • · 2025. 11. 17.
  • textsms
[Java 21] (14) - thread 2

[Java 21] (14) - thread 2

가상 쓰레드 (virtual thread) 자바는 오랫동안 널리 사용되면서 독점적인 지위를 누려왔지만, 그만큼 여러 진보된 새로운 기술로부터 많은 도전을 받기도 했습니다. 특히 자바의 성능에 있어서 개선 요구사항이 많았는데, 오라클은 이러한 요구사항을 반영하기 위해 부단히 노력해왔습니다.그 결과로 JDK 9에서 새로운 방식의 가비지 컬렉터인 G1을 도입하면서 큰 개션이 있었고, JDK 21에서는 가상 쓰레드를 도입하면서 또 다른 눈에 띄는 개선을 달성하였습니다. 가상 쓰레드란? 가상 쓰레드는 기존의 쓰레드보다 가벼운 '경량 쓰레드(light thread)'입니다. 가볍다는 것은 더 적은 자원을 사용한다는 것을 의미하며, 기존의 쓰레드들보다 훨씬 더 많은 수의 가상 쓰레드를 생성할 수 있습니다. 그리고 가..

  • format_list_bulleted Lang/Java
  • · 2025. 11. 13.
  • textsms
[Java 21] (13) - thread 1

[Java 21] (13) - thread 1

쓰레드 프로세스(process)란 간단히 말해서 '실행 중인 프로그램'입니다. 프로그램을 실행하면 OS로부터 실행에 필요한 자원(메모리)을 할당받아 프로세스가 됩니다. 프로세스는 프로그램을 수행하는데 필요한 데이터와 메모리 등의 자원 그리고 쓰레드로 구성되어 있으며 프로세스의 자원을 이용해서 실제로 작업을 수행하는 것이 바로 쓰레드입니다. 그래서 모든 프로세스에는 최소한 하나 이상의 쓰레드가 존재하며, 둘 이상의 쓰레드를 가진 프로세스를 '멀티쓰레드 프로세스(mutil-threaded process)'라고 합니다. 하나의 프로세스가 가질 수 있는 쓰레드의 개수는 제한되어 있지 않으나 쓰레드가 작업을 수행하는데 개별적인 호출 스택을 필요로 하기 때문에 프로세스의 메모리 한계에 따라 생성할 수 있는 쓰레드의..

  • format_list_bulleted Lang/Java
  • · 2025. 11. 11.
  • textsms
[Java 21] (12) - modern Java features

[Java 21] (12) - modern Java features

Generics 지네릭스는 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입 체크(compile-time type check)를 해주는 기능입니다. public int compare(Object o1, Object o2) { if(o1 instanceof Student && o2 instanceof Student) { Student s1 = (Student) o1; Student s2 = (Student) o2; return Integer.compare(s1.getTotal(), s2.getTotal()); } return -1;}위 코드에서 compare()의 매개변수 타입이 Object인 이유는 모든 타입을 비교할 수 있게 ..

  • format_list_bulleted Lang/Java
  • · 2025. 11. 5.
  • textsms
[Java 21] (11) - collections framework

[Java 21] (11) - collections framework

컬렉션 프레임워크 컬렉션 프레임워크란, '데이터 군을 저장하는 클래스들을 표준화'한 것입니다. 컬렉션(Collection)은 다수의 데이터, 즉 데이터 그룹을, 프레임워크는 표준화된 프로그래밍 방식을 의미합니다. JDK 1.2 이전까지는 Vector, Hashtable, Properties와 같은 컬렉션 클래스, 다수의 데이터를 저장할 수 있는 클래스들을 서로 다른 각자의 방식으로 처리해야 했으나 JDK 1.2부터 컬렉션 프레임워크가 등장하면서 다양한 종류의 컬렉션 클래스가 추가되고 모든 컬렉션 클래스를 표준화된 방식으로 다룰 수 있도록 체계화되었습니다. 핵심 인터페이스 컬렉션 프레임워크는 컬렉션 데이터 그룹을 크게 3가지 타입이 존재한다고 인식하고 각 컬렉션을 다루는데 필요한 기능을 가진 3개의 인터페..

  • format_list_bulleted Lang/Java
  • · 2025. 11. 3.
  • textsms
[Java 21] (10) - date, time and formatting

[Java 21] (10) - date, time and formatting

날짜와 시간 Calendar와 Date Date는 날짜와 시간을 다룰 목적으로 JDK 1.0부터 제공되어온 클래스입니다. JDK 1.0이 제공하는 클래스의 수와 기능은 지금과 비교할 수 없을 정도로 빈약했습니다. Date클래스 역시 기능이 부족했기 때문에, 서둘러 Calendar라는 새로운 클래스를 그 다음 버전인 JDK 1.1부터 제공하기 시작했습니다. Calendar는 Date보다는 훨씬 나았지만 몇 가지 단점들이 발견되었습니다. 그래서 늦은 감이 있지만 Java 8부터 'java.time 패키지'로 기존의 단점들을 개선한 새로운 클래스들이 추가되었습니다.여기서 말하는 Date클래스는 java.sql 패키지가 아닌 java.util 패키지의 Date클래스를 의미합니다. Calendar와 Gregori..

  • format_list_bulleted Lang/Java
  • · 2025. 10. 31.
  • textsms
  • navigate_before
  • 1
  • 2
  • 3
  • 4
  • navigate_next
전체 카테고리
  • 분류 전체보기 (83)
    • Lang (49)
      • Java (21)
      • Kotlin (3)
      • C (12)
      • Go (9)
      • Python (4)
    • Spring (13)
      • Data (2)
      • Kafka (2)
      • Security (0)
      • Webflux (9)
    • Infra (9)
      • Database (3)
      • Middleware (0)
      • Container (1)
      • OS (5)
    • Build (0)
    • CS (3)
      • Network (1)
      • Security (1)
      • Architecture (1)
    • Leaner's High (5)
    • 기타 (4)
최근 글
인기 글
최근 댓글
태그
  • #Kotlin In Action
  • #점프 투 파이썬
  • #혼자 공부하는 C언어
  • #Java의 정석
  • #R2DBC
  • #비동기
  • #tucker의 go언어 프로그래밍
  • #WebFlux
  • #java
  • #Netty
전체 방문자
오늘
어제
전체
Copyright © Kakao Corp. All rights reserved.
Designed by 티스토리

티스토리툴바