본문 바로가기
728x90

java14

[Java] 자바 8 - (2) Stream : 데이터 처리 연산 자바 8 - (2) Stream : 데이터 처리 연산 Stream은 자바 8에서 새로 추가된 기능입니다. Stream을 데이터 요소의 시퀀스를 처리하는 기능으로 데이터 처리 파이프라인을 만들 수 있으며 원본 데이터를 변경하지 않고 중간 연산과 최종 연산을 이용하여 원하는 데이터 결과를 얻는 함수형 스타일의 API입니다. 예제 코드는 Github에서 확인하실 수 있습니다. 1. Stream의 정의 Stream이란 데이터 처리 연산을 지원하도록 소스에서 추출된 연속된 소스를 말합니다. 중간 연산과 최종 연산을 통해 데이터를 처리하며, 중간 연산은 실제로 수행되지 않고 최종 연산이 호출될 때까지 지연 실행됩니다. private List coffeeList = new ArrayList(); @BeforeEach.. 2023. 7. 23.
[Java] 자바 8 - (1) Stream : 람다 표현식의 등장 배경 자바 8 - (1) Stream : 람다 표현식의 등장 배경 자바 역사를 통틀어 가장 획기적인 변화는 자바 8에서 일어났습니다. 물론 그 이전에도 새로운 자바 버전이 릴리즈 될 때마다 많은 변화가 있었지만 자바 8 만큼 획기적이고 생산성에 큰 영향을 줄 만큼 큰 변화는 일어나지 않았습니다. 그렇다면 자바 8에서는 어떤 변화가 생겼기에 큰 변화가 일어났다고 하는 걸까요? 그것은 바로 Stream 입니다. Stream을 알아보기 전 선행학습이 이루어져야 하는 것이 바로 람다 표현식입니다. 이전에는 어떤 문제가 있었고, 그 문제를 해결하기 위해 왜 람다 표현식이 등장했는지 알아보기 위해 포스팅하게 되었습니다. 예제 코드는 Github에서 확인하실 수 있으며 이 포스팅은 람다 표현식에 등장 배경에만 다루기 때문.. 2023. 7. 23.
[Java] Lambda Expression(람다 표현식) Lambda Expression(람다 표현식) Lambda Expression(람다 표현식)은 JDK 1.8부터 추가된 것으로 메서드를 하나의 식(expression)으로 표현하는 것을 말합니다. 람다식을 사용함으로써 코드가 간결해지고 또한 가독성이 증가되는 여러 이점 등이 있으며 메서드를 람다식으로 표현하면 메서드의 이름과 반환 값이 없어지므로 람다식을 익명함수(Anonymous Function)라고도 합니다. 1. Lambda Expression 장점 1-1. 불필요한 코드를 줄일 수 있다. 일회성 메서드가 필요할 경우 람다 표현식을 사용하게 되면 익명 클래스와 같이 불필요한 코드를 사용하지 않아도 됩니다. 불필요한 코드를 사용하지 않으므로서 코드가 간결해지고 가독성이 증가되는 장점이 있습니다. //.. 2023. 7. 22.
[Java] ThreadLocal ThreadLocal 실무에서 개발자를 괴롭히는 대표적인 문제 중 하나가 바로 동시성 문제입니다. Spring Container는 기본적으로 사용하는 모든 빈들을 싱글톤으로 관리합니다. 즉, 객체의 인스턴스가 애플리케이션에서 하나만 존재한다는 뜻인데 만약 싱글톤 객체가 가변 객체일 경우 여러 개의 Thread가 싱글톤 객체가 갖고 있는 필드를 공유하게 되면 동시성 문제가 발생하게 됩니다. 예제 코드는 Github에서 확인할 수 있습니다. 1. 동시성 문제 예시 조건 1 : 싱글톤 객체인 FieldService는 불변 객체가 아닌 가변 객체일 경우 조건 2 : nameStore 저장하는 시간은 1초 소요 요청 1 : Thread-A가 nameStore에 "userA"를 저장 후 조회 요청 2 : Threa.. 2023. 7. 16.
728x90