inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링 부트 - 핵심 원리와 활용

예제 만들기

Lombok 생성자

630

성실한 공작새

작성한 질문수 4

0

@Data
public class Member {

    private String memberId;
    private String name;

    public Member() {
    }

    public Member(String memberId, String name) {
        this.memberId = memberId;
        this.name = name;
    }
}

기본생성자와 모든필드를 가지는 생성자도 Lombok을 통해서 @NoArgsConstructor @AllArgsConstructor

로 어노테이션으로 등록할 수 있는걸로 알고 있는데 @Data만 사용하고 생성자는 어노테이션으로 등록 안하시는 이유가 있을까요?

@Data의 경우 @Setter을 포함하기 때문에 조심히 사용해야 된다 하셨는데 이처럼 주의해야 될 점이 있는건지 궁금합니다

spring spring-boot prometheus grafana

답변 1

0

나무늘보

안녕하세요, 성실한 공작새 님! 공식 서포터즈 codesweaver 입니다.

말씀하신 것처럼 롬복 애노테이션을 활용하면 생성자 코드도 생략할 수 있습니다. 강의에서는 롬복 사용법에 포인트를 두지 않았기에 생성자를 직접 만드신 것 같습니다.

@Data 사용시 주의하실 점이 몇가지 있습니다.

1 불변객체 일 경우 getter/setter 를 제공하면 안되므로 @Data 애노테이션을 사용할 수 없습니다.

2 ToString() 메서드가 무한루프에 빠질 수 있습니다. 두 객체가 상호참조 관계인 경우 ToString() 메서드는 무한루프에 빠질 수 있어 주의가 필요합니다. (이때는 ToString 대상 필드를 지정하여 문제를 회피할 수 있습니다)

3 객체 비교 함수(equals() / hashcode()) 메서드도 자동으로 오버라이딩 되는 부분을 주의해야 합니다. 객체와 객체 일치 비교를 할 때 이 함수 오버라이딩이 문제가 될 가능성도 있습니다. 또 상속 관계인 경우 부모 필드까지 오버라이딩 대상이 되므로 주의가 필요합니다.


감사합니다.

보안이 엄격한 데이터

0

73

1

MyProperties 자체를 클라이언트 코드에서 사용

1

43

1

http://localhost:8080/actuator/prometheus

0

85

3

jar 추가에대한 질문드려도될까요?

0

64

1

build.gradle bom link 변경

0

65

2

@Counted 초기화

0

48

1

@Validated를 적용해도 빈 검증이 안되는 경우에 대한 조치 공유..

0

101

2

springboot에서 actuator없이 micrometer를 사용할수 있나요?

0

67

1

@Configuration 질문드립니다.

0

84

2

[공유] 터미널 말고 IDE 에서 jar 실행하기

0

101

1

localhost:8080/hello-servlet 404오류

0

123

2

내장톰캣2 서블릿 톰켓 실행이 안됩니다

1

154

2

최대 Tomcat 스레드 수를 확인하는 지표

0

160

1

mac m2에서 startup.sh 실행후 아무 반응이 없습니다.

0

94

2

내장 톰캣 실행 오류 관련 질문드립니다.

0

158

1

스프링 발전 과정들도 자세히 알아둬야하나요??

1

127

1

스프링부트 ioc 컨테이너 갯수

0

89

1

404 페이지

0

133

3

actuator 호출시 타임스탬프 질문

0

90

1

순수 라이브러리 사용하기 2 - memory-v1

0

125

1

외부설정 @ConfigurationProperties의 내부 클래스에서 static을 사용하는 이유를 알고 싶습니다.

0

105

1

서블릿 컨테이너 초기화1 강의 관련 질문입니다~

0

94

1

Thread Config Max 패널 설정 변경 질문

0

128

1

스프링 액츄에이터 shutdown 엔드포인트 활성화가 안됩니다.

0

108

1