Enum Class 자바에서 enum 클래스는 상수 집합을 정의하는 데 사용되는 특별한 유형의 클래스입니다. 이 클래스는 관련된 상수 그룹을 정의하고, 각각의 상수에 대한 메서드와 속성을 추가할 수 있습니다. enum은 주로 고정된 값들을 표현하는데 사용되며, 예를 들어 요일, 월, 계절 등을 나타내는 데 자주 활용됩니다. 기존에 사용하던 상수 등록 방식은 아래와 같습니다. class EnumExample { private final static int MONDAY = 1; private final static int TUESDAY = 2; private final static int WEDNESDAY = 3; private final static int THURSDAY = 4; private final..
Optional 이란? Optional은 Java 8에서 도입된 클래스로, 값의 존재 여부를 나타내는 컨테이너 클래스입니다. 주로 null 값을 다루는 데 사용되며, NullPointerException을 방지하고 안전한 코드 작성을 도와줍니다. 컨테이너 클래스는 다른 객체를 담는 용도로 사용되는 클래스입니다. 객체들을 그룹화하고, 저장하고, 관리하는 데 사용됩니다. 자바에서는 다양한 컨테이너 클래스를 제공하여 데이터를 구조화하고 다룰 수 있도록 도와줍니다. 특징 값의 존재 여부 표현: Optional은 값이 존재할 수도 있고, 존재하지 않을 수도 있다는 개념을 표현합니다. 값이 존재할 경우 해당 값을 감싸고, 존재하지 않을 경우에는 비어있는 상태로 나타냅니다. 메서드 체이닝: Optional은 메서드 ..
스트림이란? 자바 8부터 도입된 스트림(Stream)은 데이터를 처리하는 연속적인 연산을 지원하는 기능입니다. 스트림을 사용하면 컬렉션, 배열 또는 I/O 자원과 같은 데이터 소스를 함수형 스타일로 다룰 수 있습니다. 특징 연속된 연산: 스트림은 데이터를 처리하는 일련의 연속된 연산을 수행합니다. 이러한 연산은 중간 연산과 최종 연산으로 구분됩니다. 중간 연산은 다른 스트림을 반환하며, 최종 연산은 결과를 반환하거나, 외부 자원에 작업을 수행하거나, 최종 결과를 도출합니다. 지연 연산: 스트림은 지연 연산을 지원합니다. 즉, 중간 연산은 실제로 수행되지 않고 최종 연산이 호출될 때까지 기다립니다. 이를 통해 최적화된 실행 계획을 구성할 수 있습니다. 파이프라인: 스트림은 연속된 연산들로 구성된 파이프라인..
Reflection이란? JDK document에 따르면, java.lang.reflect 패키지는 클래스와 객체에 대한 반사적인(reflective) 정보를 얻기 위한 클래스와 인터페이스를 제공합니다. 반사적인 정보란 클래스의 필드, 메소드, 생성자에 대한 정보를 말하며, 이를 활용해 객체를 생성하거나 메소드를 호출하는 등의 작업을 수행할 수 있습니다. 프로그래밍에서 Reflection은 반사 현상과 비슷한 개념으로, 코드가 자신의 구조나 동작 방식을 반사하여 프로그램에서 객체를 동적으로 생성하거나 객체의 정보를 얻어내는 등의 작업을 할 수 있게 합니다. 결국은 리플렉션은 런타임 시에 클래스의 정보를 분석하고, 해당 클래스의 객체를 생성하거나 메소드를 호출하는 등의 작업을 수행합니다. 즉, 리플렉션을 ..
제네릭스(Generics) 제네릭스(Generics)는 자바에서 제공하는 기능 중 하나로, 클래스나 인터페이스에서 사용될 데이터 타입을 미리 지정하는 것입니다. 즉, 클래스나 인터페이스에서 사용하는 데이터 타입을 일반화하여 여러 종류의 타입에 대해 동일한 코드를 작성할 수 있도록 합니다. 제네릭스를 사용하지 않는 경우, 클래스나 메서드에서 사용하는 데이터 타입이 명확하지 않아서 다음과 같은 문제가 발생할 수 있습니다. 예를 들어, 여러 종류의 데이터를 담을 수 있는 리스트를 만들고자 한다고 가정해봅시다. 그렇다면 다음과 같이 리스트를 만들 수 있습니다. ArrayList list = new ArrayList(); list.add("hello"); list.add(1234); 위 코드에서 ArrayList..
컬렉션 프레임워크(Collection Framework) Java Collections Framework는 Java에서 데이터를 저장, 처리 및 조작하는 데 사용되는 API(응용 프로그램 프로그래밍 인터페이스)의 집합입니다. 이 API를 사용하면 다양한 데이터 구조, 예를 들어 리스트, 집합, 맵 등을 생성하고 조작할 수 있습니다. Java Collections Framework에는 여러 클래스와 인터페이스가 포함되어 있습니다. 예를 들어, List, Set 및 Map과 같은 인터페이스는 데이터를 저장하는 데 사용됩니다. 이러한 인터페이스의 구현체는 ArrayList, HashSet 및 HashMap과 같은 클래스입니다. 이러한 클래스는 데이터를 저장하고 처리하는 다양한 방법을 제공합니다. 핵심 인터페이..