Language

이번에는 자바8에 추가된 CompletableFuture에 대해 알아보도록 하겠습니다. 1. CompletableFuture에 대한 이해 [ Future의 단점 및 한계 ] Java5에 Future가 추가되면서 비동기 작업에 대한 결과값을 반환 받을 수 있게 되었다. 하지만 Future는 다음과 같은 한계점이 있었다. 외부에서 완료시킬 수 없고, get의 타임아웃 설정으로만 완료 가능 블로킹 코드(get)를 통해서만 이후의 결과를 처리할 수 있음 여러 Future를 조합할 수 없음 ex) 회원 정보를 가져오고, 알림을 발송하는 등 여러 작업을 조합하거나 예외 처리할 수 없음 Future는 외부에서 작업을 완료시킬 수 없고, 작업 완료는 오직 get 호출 시에 타임아웃으로만 가능하다. 또한 비동기 작업의 ..
Map 인터페이스에서 Java 8 버전에 추가된 일부 API에 대해 살펴봅니다. putIfAbsent() compute() computeIfPresent() computeIfAbsent() getOrDefault() 해당 코드는 Map 인터페이스의 구현체인 HashMap을 기준으로 정리하였습니다. 1. putIfAbsent(K key, V value) Map - putIfAbsent() putIfAbsent() 메서드는 네이밍에서 유추할 수 있듯이, 다음과 같이 동작합니다. Key가 존재할 경우: Value 변경 없이 기존에 존재하는 Key의 Value를 리턴합니다. Key가 존재하지 않는 경우: Key에 해당하는 Value를 저장한 후 null을 리턴합니다. HashMap - putIfAbsent() ..
시작하기전 예제코드는 여기에 있습니다. JUnit5 문서기반으로 번역과 공부하고, 실졔로 사용하면서 필요한 내용을 조금 보강했습니다. 다른 곳에 공유해도 좋지만, 출처만 남겨주시면 됩니다. JUnit5 이전 JUnit 버전과 다르게, JUnt5는 세개의 서브 프로젝트로 이루어져 있다. JUnit5은 JUnit Platform + JUnit Jupiter + JUnit Vintage 이 세개가 합친 것이다. JUnit Platform JUnit Platform은 JVM에서 테스트 프레임워크를 실행하는데 기초를 제공한다. 또한 TestEngine API를 제공해 테스트 프레임워크를 개발할 수 있다. JUnit Jupiter JUnit Jupiter는 JUnit 5에서 테스트를 작성하고 확장을 하기 위한 새로..
윈도우에 OpenJDK17을 설치하기 위해 아래 URL에 접속하여 OpenJDK 17 압축파일을 다운로드 한다. Java Platform, Standard Edition 17 Reference Implementations Java Platform, Standard Edition 17 Reference Implementations The official Reference Implementation for Java SE 17 (JSR 392) is based solely upon open-source code available from the JDK 17 Project in the OpenJDK Community. The binaries are available unde jdk.java.net 다운로드한 파..
미디엄의 유명한 글 코틀린 스코핑 함수에 대해 다룬 글을 퍼왔습니다. 원문 : “Kotlin Scoping Functions apply vs. with, let, also, and run” Kotlin Scoping Functions apply vs. with, let, also, and run Functional-style programming is highly advocated and supported by Kotlin’s syntax as well as a range of functions in… medium.com 코틀린의 표준 라이브러리는 다양한 기능 과 편리한 기능으로 함수형 프로그래밍을 쉽게 적용할 수 있도록 도와줍니다. 그중에서도 apply, with, let, also, run 함수들을 ..
Spring 개발하면서 Spring Data JPA를 사용하면 기본적으로 JpaRepository를 상속받아 Repository 인터페이스를 만들게 된다. 이 때, 기본 제공해주는 findById 를 사용하면 Optional 타입을 리턴받는다. Java 개발을 할 때면 기본 제공 메소드를 매번 구현할 필요가 없어서 굉장히 유용하게 사용하지만 Kotlin 에서도 그럴까? 아래 이어질 내용은 Kotlin에서 이 Optional 타입을 사용하는게 이상적인 형태인지를 고민해본 내용이다. Null은 kotlin의 친구다! kotlin 에서 Optional을 쓰면 안되나요? We use here the CrudRepository.findByIdOrNull Kotlin extension provided by defa..
Say simple
'Language' 카테고리의 글 목록