[Java] BiConsumer: 두 개의 매개변수를 처리하는 함수형 인터페이스
·
JAVA
안녕하세요 개발자 stark입니다! 오늘은 BiConsumer에 대해서 소개드리고자 합니다. 어느 날 제 사수님께서 2개의 List를 이중 stream을 돌리며 filter로 특정 조건을 매칭시키면서 값을 세팅하는 방식에서 BiConsumer를 사용하여 값을 세팅하는 방식으로 변경하신 다음 코드의 가독성과 전체적인 성능이 개선된 것을 리뷰해 주셨습니다. 그래서 저도 이 지식을 흡수하고 로직에서 사용해 보고자 BiConsumer에 대한 자료들을 찾아보며 이해하기 위해 많은 노력을 했습니다. 그리고 이제는 어느 정도 이해가 되었다고 느껴져서 조금이지만 정리해 본 것을 공유드리고자 합니다. 항상 새로운 것을 제게 가르쳐주시는 제 사수님께 감사한 마음을 가지며 포스팅을 작성합니다. 시작해 봅시다. Let's g..
[Java] Optional로 Null 처리하기
·
JAVA
자바8부터 지원하기 시작한 Optional을 사용하여 Null을 처리하는 방법을 예시를 통해 이해해 보자 📌 서론 개발을 하다보면 null을 종종 보게 되는데 'null' 값의 관리는 굉장히 중요한 문제 중 하나다. 'null' 값은 종종 예기치 못한 NullPointerException을 일으키며, 이는 애플리케이션의 신뢰성과 안정성을 저하시키기 때문이다. 자바 8에서는 이런 문제를 해결하기 위해 Optional이라는 기능이 등장한다. 이번 포스트에서는 Optional을 사용하여 어떻게 안전하게 'null' 값을 처리할 수 있는지 예제를 통해 알아보자 1. Optional로 조건에 따른 필터링 이 예시는 Optional.filter를 사용하여 특정 조건을 만족하는 값에만 접근하는 방법이다. public..
[Java] Stream: mapToInt 함수로 점수 합산하기
·
JAVA
Stream의 mapToInt() 함수를 예제를 통해 쉽게 이해해보자 1. 예제로 이해하는 mapToInt 학생 객체의 리스트에서 특정 조건을 만족하는 학생을 찾고, 그들의 점수를 합산하는 작업 학생 클래스 선언 예제에서 사용하게 될 Student 클래스를 생성한다. public class Student { private String name; private int score; public Student(String name, int score) { this.name = name; this.score = score; } public String getName() { return name; } public int getScore() { return score; } } for문을 사용해서 합계를 계산하는 코..
[Java] 예제로 이해하는 자바 스트림(stream)
·
JAVA
자바8 이상 문법인 Stream을 알아보자 📌 서론 이번 포스트에서는 간단한 예제를 통해 stream을 이해해보는것이 목표다. 1. Stream 예제: 특정 문자열을 찾고 대문자로 변환 문자열의 List에서 특정 문자열을 찾고 그 문자열을 대문자로 변환하는 작업 Stream을 사용하지 않고 for문을 사용한 코드 import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class ListExample { public static void main(String[] args) { // List를 생성한다. List list = Arrays.asList("apple", "banana", "cherry", "date", ..
[Java] 익명 클래스 (Anonymous Class)란?
·
JAVA
이번 포스트에서는 익명 클래스에 대해서 알아보자 📌 서론 Java의 익명 클래스는 주로 단순한 인터페이스 구현이나 추상 클래스 확장에 사용되는데, 이를 잘 활용하면 코드를 더 간결하고 명확하게 만들 수 있어. 1. 익명 클래스란? Java에서 익명 클래스는 매우 특별한 종류의 클래스로, 그 이름이 없고 선언과 동시에 객체가 생성된다. 이러한 클래스들은 특정한 상황, 특히 인터페이스의 간단한 구현이나 추상 클래스를 확장하는 경우에 자주 사용된다. 익명 클래스는 일반적인 클래스 선언 방법과 다르게, 그 자체로 구현과 인스턴스화가 결합된 형태를 취한다. 이것은 Java의 다형성과 더욱 동적인 코딩 스타일을 가능하게 하는 강력한 기능이다. 2. 익명 클래스의 특징 이름 없음 익명 클래스의 가장 큰 특징은 바로 ..
[Spring] 스프링 빈(Bean)을 함수형으로 등록하기
·
Spring/Spring에서 Java 활용하기
이전 포스팅에 이어서 함수형 프로그래밍의 사용방식을 알아보자.함수형 프로그래밍에 대한 것은 아래의 포스팅을 읽어보자. [Spring] 함수형 프로그래밍이란?함수형 프로그래밍에 대해 알아보자. 1. 함수형 프로그래밍이란?함수형 프로그래밍은 수학의 함수 개념을 프로그래밍에 적용한 패러다임이다. 이 패러다임에서는 순수 함수, 불변성, 고차 함수curiousjinan.tistory.com 1. 함수형 프로그래밍으로 Spring Bean 등록하기Spring Framework는 전통적인 애노테이션 기반 빈 등록 방식 외에도 함수형 프로그래밍을 활용한 빈 등록 방식을 지원한다. 함수형 빈 등록은 특히 이벤트 처리, 스트림 처리 등에서 유용하게 사용될 수 있으며, 코드의 간결성과 유연성을 높여준다. 예시: Consum..
[Spring] 함수형 프로그래밍이란?
·
Spring/Spring에서 Java 활용하기
함수형 프로그래밍에 대해 알아보자. 1. 함수형 프로그래밍이란?함수형 프로그래밍은 수학의 함수 개념을 프로그래밍에 적용한 패러다임이다. 이 패러다임에서는 순수 함수, 불변성, 고차 함수 등을 중시한다. 간단히 말해, 상태와 데이터를 변경하지 않고 함수를 조합하여 로직을 구성하는 방식이다. 순수 함수: 동일한 입력에 대해 항상 동일한 출력을 반환하며, 외부 상태에 의존하거나 변경하지 않는다.불변성: 데이터는 변경되지 않고, 새로운 데이터가 생성된다.고차 함수: 함수를 인자로 받거나 함수를 반환하는 함수다. 순수 함수 (Pure Function)순수 함수는 동일한 입력에 대해 항상 동일한 출력을 반환하며, 외부 상태에 의존하거나 변경하지 않는다. 이는 함수의 예측 가능성을 높이고, 테스트를 용이하게 만든다...