본문 바로가기

자바2

[Kotlin] value class를 활용해서 "원시 값과 문자열을 포장하라" 성능 최적화하기 안녕하세요! 이번 글에서는 "모든 원시 값과 문자열을 포장하라" 원칙에 대해 알아보고, Kotlin으로 성능 최적화 하는 방법에 대해 알아보겠습니다. 요약 객체지향 생활체조의 "모든 원시 값과 문자열을 포장하라" 원칙을 Kotlin으로 구현할 때 value class를 '잘' 활용하면 불필요한 오버헤드를 줄일 수 있습니다. 생성 성능 측정 결과, 유의미한 차이는 없었습니다. 참조 및 연산 성능 측정 결과, value class가 일반 클래스보다 약 32% 느렸습니다. JVM Heap dump를 분석한 결과, value class가 일반 클래스에 비해 약 58%의 공간만 차지했습니다. 이 글에서 얻을 수 있는 것 객체지향 생활체조의 "모든 원시 값과 문자열을 포장하라" 원칙을 이해할 수 있다. Kotlin.. 2023. 12. 10.
[Spring] RestTemplate 에러 핸들러 커스텀하기 안녕하세요. 황진성입니다. 오늘은 Spring Web에서 제공하는 RestTemplate의 ErrorHandler를 커스텀해보겠습니다. 목적 우리는 RestTemplate으로 클라이언트를 생성해서, 또 다른 서버로 동기(sync) 요청을 보낼 수 있습니다. RestTemplate의 getForEntity 메서드로 GET 요청을 보내면, Response로 받는 JSON을 객체 형태로 변환해서 반환해줍니다. RestTemplate restTemplate = new RestTemplate(); ResponseEntity response = restTemplate.getForEntity( "http://localhost:8080/users/1", User.class ); User user = response.g.. 2022. 7. 10.