Java 8 도입 이후에 Optional을 활용하면서 자주 사용하는 orElse(), orElseGet()의 차이점을 알아보겠습니다. 1. orElse(), orElseGet() 이란? orElse(), orElseGet 구현 코드 실제로 orElse()와 orElseGet()의 코드를 살펴보자. /** * If a value is present, returns the value, otherwise returns * {@code other}. * * @param other the value to be returned, if no value is present. * May be {@code null}. * @return the value, if present, otherwise {@code other} *..
@AllArgsConstructor, @RequiredArgsConstructor 사용 주의 @AllArgsConstructor @RequiredArgsConstructor @ToString public class User { public String id; public String password; } 위와 같이 User 클래스를 생성했다고 했을 때 보통 아래와 같이 코드를 작성합니다. public void addUser(String id, String password) { User user = new User(id, password); userRepository.save(user); } 생성자의 첫번째 자리에는 id, 두번째에는 password가 잘 들어갑니다. 이 후 요구사항의 변경으로 User의 ..
1. Pinpoint란? Pinpoint는 네이버에서 만든 대규모 분산 시스템의 성능을 분석하고 문제를 진단, 처리하는 플랫폼 즉 APM (Application Performance Monitoring) 도구 입니다. 또한 내부적으로 서버맵, 실시간 활성 스레드 차트, 요청 / 응답 차트, API 호출 상세 기록, 서버의 상태를 실시간으로 시각화하여 볼 수 있는 기능을 제공합니다. 특히나 요즘 같이 분산환경에서 애플리케이션 모니터링에 최적화된 기능들이 많아 백엔드를 구성하는데 있어 큰 도움을 받을 수 있습니다. 2. 구성요소 Pinpoint는 위와 같이 3가지 모듈인 Pinpoint Agent, Pinpoint Collector, Pinpoint Web으로 이루어집니다. Pinpoint Agent 스프링..