본문 바로가기

분류 전체보기179

[Java] 익명클래스, 함수형 인터페이스, 익명함수(람다식) 익명 클래스(Anonymous Class) 익명 클래스는 이름이 없는 클래스로, 한 번만 사용되거나 간단한 기능을 구현할 때 사용됩니다. 익명 클래스는 인터페이스나 추상 클래스를 즉시 구현하거나 확장하는 데 사용됩니다. 익명 클래스의 특징  1. 이름 없음: 클래스를 정의하면서 바로 인스턴스를 생성하는 방식으로, 클래스 이름이 없습니다. 2. 재사용 불가: 익명 클래스는 한 번 정의되고 나면 재사용할 수 없습니다. 3. 즉석에서 정의: 인터페이스나 추상 클래스의 구현체를 한 번만 정의하고 사용할 때 주로 사용됩니다. 4. 복잡한 구현 가능: 하나 이상의 메서드를 포함하거나 여러 개의 메서드를 구현할 수 있습니다. 익명 클래스 예시public class Main { public static void .. 2024. 10. 5.
[Spring] DTO **DTO(Data Transfer Object)**는 데이터 전송 객체로, 주로 계층 간의 데이터 전송을 목적으로 사용하는 객체입니다. DTO는 일반적으로 서버와 클라이언트 간 또는 애플리케이션의 다른 계층 간에 데이터를 전송할 때 사용됩니다. DTO는 데이터를 담는 순수한 객체로, 비즈니스 로직이 들어가지 않으며, 단순히 데이터를 전송하는 역할만 합니다. DTO의 주요 목적과 특징  1. 데이터 전송: • DTO는 주로 한 시스템에서 다른 시스템으로, 또는 애플리케이션의 계층 간 데이터를 전송하는 데 사용됩니다. • 예를 들어, 클라이언트가 서버로 API 요청을 보낼 때, DTO를 통해 필요한 데이터를 전달하고, 서버에서 클라이언트에게 응답할 때도 DTO를 사용해 데이터를 반환합니다. 2. 비즈니스 .. 2024. 10. 4.
[Java] Stream 자바의 Stream API는 자바 8에서 도입된 함수형 프로그래밍 개념을 지원하는 기능으로, 데이터 컬렉션(예: 배열, 리스트 등)을 효율적이고 간결하게 처리할 수 있게 해줍니다. 스트림은 데이터의 흐름을 처리하기 위한 추상화된 계층으로, 주로 데이터 필터링, 변환, 집계 같은 작업을 수행할 때 사용됩니다. 1. Stream의 개념  • Stream은 데이터 소스를 기반으로 한 데이터 처리 연산의 흐름입니다. Stream은 컬렉션(예: List, Set, Map)이나 배열을 처리하는 데 사용됩니다. • 스트림은 데이터를 처리할 때 원본 데이터를 변경하지 않고, 데이터 흐름을 함수형 방식으로 처리합니다. 즉, 기존 데이터를 변환하여 새로운 컬렉션을 생성하거나, 값을 집계하는 작업을 수행합니다. 2. Str.. 2024. 9. 29.
[Java] Optional 자바에서 **Optional**은 null 처리를 안전하게 할 수 있도록 도와주는 유틸리티 클래스입니다. 자바 8에서 도입되었으며, null 값을 직접 다루는 대신 값이 있거나 없을 수 있는 컨테이너로, null 포인터 예외를 피하고 더 명확한 코드를 작성하는 데 도움을 줍니다. 1. Optional의 기본 개념  • **Optional**은 값이 있을 수도 있고, 없을 수도 있는 상황에서 null을 사용하지 않고, 더 명확하게 비어 있음을 표현할 수 있는 클래스로 설계되었습니다. • **null 포인터 예외(NullPointerException, NPE)**는 자바에서 자주 발생하는 오류 중 하나입니다. Optional을 사용하면 null을 직접 사용하지 않고, 값이 없을 때의 처리를 안전하게 할 수 .. 2024. 9. 29.
[Java] 리스트(List) 와 배열(Array)의 차이점 배열(Array)과 리스트(List)의 차이점에 대해 이론적인 부분을 중점으로 설명하고, 간단한 코드 예시를 통해 차이점을 이해할 수 있도록 하겠습니다. 1. 배열(Array) 1.1 기본 개념  • 배열은 고정된 크기를 가진 동일한 타입의 데이터를 저장하는 자료구조입니다. 한 번 생성된 배열의 크기는 변경할 수 없습니다. • 배열은 인덱스를 통해 **O(1)**의 시간 복잡도로 빠르게 요소에 접근할 수 있습니다. • 배열은 메모리에서 연속된 공간을 차지하며, 각 요소는 연속적으로 저장됩니다. 이는 메모리 사용 효율이 높고, 액세스 속도가 빠르다는 장점이 있습니다. 1.2 배열의 특징  • 고정 크기: 배열은 선언 시 크기가 고정되며, 중간에 크기를 변경할 수 없습니다. • 동일한 타입: 배열은 동일한 .. 2024. 9. 29.
[Java] 람다 표현식(Lamda Expression) **람다 표현식(Lambda Expression)**은 자바 8에서 도입된 간결한 문법으로, **익명 함수(anonymous function)**와 같은 역할을 합니다. 람다 표현식을 사용하면 코드를 간결하게 작성할 수 있으며, 특히 함수형 프로그래밍 스타일을 자바에서 사용할 수 있도록 지원합니다. 람다 표현식은 **함수형 인터페이스(Functional Interface)**와 함께 자주 사용되며, **단일 추상 메서드(Single Abstract Method, SAM)**를 구현하는 용도로 사용됩니다. 이를 통해 자바에서 간결한 콜백 처리와 데이터 처리를 할 수 있습니다. 1. 람다 표현식의 문법 람다 표현식의 기본적인 문법은 다음과 같습니다:(매개변수) -> { 실행 코드 } • 매개변수: 람다 표현.. 2024. 9. 29.