본문 바로가기

백엔드/Java9

[lombok]@Data 주의사항 Lombok의 @Data 어노테이션은 클래스에 대해 getter, setter, toString(), equals(), hashCode() 메소드 및 기본 생성자를 자동으로 생성해줍니다. 이는 개발자가 이러한 보일러플레이트 코드를 직접 작성하지 않아도 되게 하여, 개발 속도와 가독성을 크게 향상시킵니다. 그러나 사용 시 주의해야 할 몇 가지 사항이 있습니다. @Data 어노테이션 사용 시 주의점 무분별한 Setter 사용: @Data는 클래스의 모든 필드에 대해 setter 메소드를 생성합니다. 이는 불변성(Immutability)을 해치고 객체의 상태를 예기치 않게 변경할 수 있어, 특히 멀티스레드 환경에서 문제가 될 수 있습니다. equals()와 hashCode() 구현: @Data는 이 두 메소드.. 2023. 12. 26.
lombok Lombok은 Java 언어에서 사용되는 라이브러리로, 반복되는 코드(boilerplate code)를 줄여주는 도구입니다. 이 라이브러리의 목적은 개발자가 보다 직관적이고 간결한 코드를 작성할 수 있도록 돕는 것입니다. Lombok의 개념 어노테이션 기반: Lombok은 다양한 어노테이션을 제공합니다. 예를 들어 @Getter, @Setter, @NoArgsConstructor, @AllArgsConstructor, @Data 등이 있으며, 이들은 각각 getter 및 setter 메소드, 생성자, 전체 필드에 대한 toString(), equals(), hashCode() 메소드 등을 자동으로 생성합니다. 코드 생성: 컴파일 시점에 Lombok이 제공하는 어노테이션을 기반으로 필요한 메소드나 생성자 .. 2023. 12. 26.
실수 계산이 정확하지 않은 이유 실수 계산이 정확하지 않은 이유는 주로 부동 소수점(floating-point) 표현의 한계 때문입니다. 이를 이해하기 위해서는 먼저 부동 소수점이 사용되는 이유와 그 특성을 알아야 합니다. 부동 소수점의 사용 이유 넓은 범위의 수 표현: 부동 소수점은 매우 작은 수부터 매우 큰 수까지 넓은 범위의 실수를 표현할 수 있습니다. 이는 과학적 계산, 엔지니어링 등에서 필수적입니다. 유연한 정밀도: 부동 소수점 방식은 가수(mantissa)와 지수(exponent)를 사용하여 수를 표현합니다. 이 때문에 다양한 정밀도의 수를 다룰 수 있습니다. 부동 소수점의 정확성 문제 이진 기반 표현: 컴퓨터는 이진수(0과 1)를 사용하여 데이터를 표현합니다. 일부 십진수 실수는 이진수로 정확히 표현할 수 없어 근사값으로 .. 2023. 12. 23.
자바의 래퍼(wrapper) 클래스 자바의 래퍼 클래스(wrapper class)는 기본 자료형(primitive data types)을 객체로 다루기 위해 사용되는 클래스입니다. 자바는 기본적으로 객체 지향 언어이지만, 성능 향상을 위해 여덟 가지 기본 자료형을 제공합니다: byte, short, int, long, float, double, char, boolean. 이 기본 자료형은 객체가 아니라서 객체 지향적인 기능을 직접 사용할 수 없습니다. 이를 보완하기 위해 각 기본 자료형에 해당하는 래퍼 클래스가 제공됩니다 래퍼 클래스의 종류 Byte (for byte) Short (for short) Integer (for int) Long (for long) Float (for float) Double (for double) Charac.. 2023. 12. 22.