본문 바로가기

Java22

Java - Lombok이란? Boilerplate 코드들 Java를 사용하기 위해서는 엄청나게 많은 Boilerplate 코드들을 작성하게 된다. 가장 기본적인 변수에 접근하기 위해서도 getter를 선언해야 한다. 실제 코드는 몇 줄 안되는 것 같은데 이미 스크롤은 끝이 없이 늘어나있다. 필요한 class를 찾기 위해서 이리저리 스크롤을 엄청나게 움직여야하는데 불편함이 이만 저만이 아니다. public static class Create { private String username; private String nickname; private User.SnsType snsType; private String description; private String sellerEnabledYN; private Integer workHour.. 2022. 9. 15.
Java - 비동기 api 호출 (CompletableFuture 2편) 지난 시간에는 Java에서 비동기로 api를 호출하기 위해서 CompletableFuture를 사용하는 방법에 대해서 알아보았다. 오늘은 CompletableFuture를 사용할 때 성능을 최적화하는 방법과 여러 개의 비동기 작업을 파이프라인을 통해서 선언적으로 사용하는 방법에 대해서 알아보도록하겠다. CompletableFuture의 기본 사용 방법을 알고 싶다면 이전 글을 참고하길 바란다. https://today-devstart.tistory.com/32 Java - 비동기 api 호출 (CompletableFuture 1편) 동기 API Java 개발을 하다보면 loop 안에서 여러번의 api를 호출해야할 때가 있다. 예를 들어서 아래와 같이 10번의 api 호출을 해야하는 코드가 있다. for .. 2022. 9. 5.
Java - 비동기 api 호출 (CompletableFuture 1편) 동기 API Java 개발을 하다보면 loop 안에서 여러번의 api를 호출해야할 때가 있다. 예를 들어서 아래와 같이 10번의 api 호출을 해야하는 코드가 있다. for (int i = 0; i < 10; i++) { blockingApiCall(); } Java에서 이렇게 함수를 호출하면 동기적으로 처리가 된다. 동기적으로 처리 된다는 것은 현재 진행중인 작업이 완료되어야만 그 다음 작업이 진행될 수 있다는 것인데 아래 그림처럼 1번 요청이 완료되어야 2번 요청을 진행할 수 있다는 것을 뜻한다. 만약 api를 한 번 호출하는데 1초가 걸린다고 하면 이 함수는 10번을 반복하기 때문에 무려 10초라는 시간을 기다려야 한다. 뿐만 아니라 이렇게 api의 응답을 기다리는데 걸리는 시간 동안 쓰레드가 bl.. 2022. 9. 4.
Java - 람다란 무엇인가?(Lambda) Lambda의 출현 Java에서는 기존의 @FunctionalInterface를 사용하기 위해서는 새로운 객체를 만들어서 동작 파라미터화를 했었다. 객체를 만들어서 넘기기 때문에 코드 이해가 쉽지 않고 불필요한 코드들이 많이 들어갔다. Java8이 등장하면서 람다표현식을 지원하기 시작했고 동작 파라미터화를 할 때 익명 클래스를 만들어서 객체를 넘기지 않고 람다식을 넘길 수 있게 되면서 코드가 확 줄어들었고 이해하기도 쉽게 되었다. 아래 예시가 람다식을 사용했을 때와 아닐 때의 비교 코드이다. Lambda의 특징 Lambda식은 Parameter List, Body, Return Type, Exception List로 구성되어 있다. 메서드를 전달 할 수 있도록 익명 함수를 단순화시킨 구조이다. 람다의 특.. 2022. 8. 21.