[Lombok] Difference Between @Value and @Data

2022. 3. 11. 21:22ยท ๐ŸŒ WEB/JAVA
๋ชฉ์ฐจ
  1. @Value
  2.  
  3. @Data

์ปดํŒŒ์ผ๊ณผ์ •์—์„œ ์ƒ์„ฑํ•ด ์ฃผ๋Š” ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•˜๋Š” java๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค.

@Value

๊ธฐ๋ณธ์ ์œผ๋กœ ๋ถˆ๋ณ€๊ฐ์ฒด๋กœ ๋งŒ๋“ค์–ด์ค€๋‹ค.

class์— ์„ ์–ธํ•˜๋ฉด ์•„๋ž˜์˜ ์–ด๋…ธํ…Œ์ด์…˜์ด ๊ธฐ๋ณธ์ ์œผ๋กœ ํฌํ•จ๋œ๋‹ค.

@Getter @AllArgsConstructor 

@ToString  @EqualsAndHashCode 

@FieldDefaults(makeFinal = true, level = AccessLevel.PRIVATE)

 

ํ•˜์ง€๋งŒ 

 

@Setter ๋Š” ํฌํ•จ๋˜์ง€ ์•Š๋Š”๋‹ค.

์™œ๋ƒํ•˜๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ถˆ๋ณ€์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— setter๋ฅผ ์ƒ๋žตํ•˜๋Š” ๊ฒƒ์€ ๋‹น์—ฐํ•˜๋‹ค

 

@FieldDefaults(makeFinal = true, level = AccessLevel.PRIVATE) ๋Š” private์ด๋‚˜ final ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค.

 

์ตœ์ข…์ ์œผ๋กœ @Value ๋ฅผ ์‚ฌ์šฉํ•œ๋Š” ๊ฒƒ์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

        import lombok.Getter;
        import lombok.ToString;
        import lombok.EqualsAndHashCode;
        import lombok.experimental.FieldDefaults;;
        import lombok.AllArgsConstructor;
        
        @Getter
        @ToString
        @EqualsAndHashCode
        @FieldDefaults(makeFinal = true)
        @AllArgsConstructor
        public class Student  {
            private String name;
            private int section;
        }

 

@Data

 

    
        import lombok.EqualsAndHashCode;
        import lombok.Getter;
        import lombok.RequiredArgsConstructor;
        import lombok.Setter;
        import lombok.ToString;
        
        @Getter
        @Setter
        @ToString
        @EqualsAndHashCode
        @RequiredArgsConstructor
        public class Person  {
            private Long id;
            private String firstName;
            private String lastName;
            private String email;
            private int age;

        }

 

+ @Data With @Builder

 

@Data ๋Š” ํ•„์ˆ˜ ์ƒ์„ฑ์ž๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

ํ•˜์ง€๋งŒ @Builder๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ‘์ž๊ธฐ @Data ๊ฐ€ ๋ชจ๋“  ํ•„๋“œ ๊ฐ’์„ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋ฐ›๋Š” ์ƒ์„ฑ์ž๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

 

Spring DI ๋Š” ๊ฐ์ฒด๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๊ธฐ ์œ„ํ•ด ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์—†๋Š” ๊ธฐ๋ณธ ์ƒ์„ฑ์ž์— ์˜์กดํ•˜๊ธฐ ๋•Œ๋ฌธ์—

@NoArgsConstructor๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ๋ณธ์ƒ์„ฑ์ž๋ฅผ ์‚ฌ์šฉํ•ด์ค˜์•ผ ํ•œ๋‹ค.

 

์•ˆ๊ทธ๋Ÿฌ๋ฉด ์—๋Ÿฌ๋‚จ

        @AllArgsConstructor
        @NoArgsConstructor
        @Data
        @Builder
        public class Person  {
            ...
        }

 

@NoArgsConstructor ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์—†๋Š” ๊ธฐ๋ณธ ์ƒ์„ฑ์ž ์ƒ์„ฑ
@AllArgsConstructor ๋ชจ๋“  ํ•„๋“œ ๊ฐ’์„ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋ฐ›๋Š” ์ƒ์„ฑ์ž ์ƒ์„ฑ
@RequiredArgsConstructor final , @NonNull์ธ ํ•„๋“œ ๊ฐ’๋งŒ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋ฐ›๋Š” ์ƒ์„ฑ์ž ์ƒ์„ฑ

 

 

 

์ฐธ๊ณ  ์‚ฌ์ดํŠธ

https://devwithus.com/lombok-data-annotation/

๋ฐ˜์‘ํ˜•
์ €์ž‘์žํ‘œ์‹œ

'๐ŸŒ WEB > JAVA' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Java 8 Interface - default ๋ฉ”์„œ๋“œ, static ๋ฉ”์„œ๋“œ  (0) 2022.03.23
[MapStruct] ๋‚ด๊ฐ€ ์ฐพ์•„ ์“ฐ๋ ค๊ณ  ์ •๋ฆฌํ•œ ๊ธ€  (0) 2022.03.16
๋‚ด๊ฐ€ ๋ณด๋ ค๊ณ  ์ •๋ฆฌํ•˜๋Š” JAVA ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ 5- ์Šค๋ ˆ๋“œํ’€  (0) 2021.10.06
๋‚ด๊ฐ€ ๋ณด๋ ค๊ณ  ์ •๋ฆฌํ•˜๋Š” JAVA ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ 4- ๋ฐ๋ชฌ ์Šค๋ ˆ๋“œ, ์Šค๋ ˆ๋“œ ๊ทธ๋ฃน  (0) 2021.10.06
๋‚ด๊ฐ€ ๋ณด๋ ค๊ณ  ์ •๋ฆฌํ•˜๋Š” JAVA ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ 3- ์Šค๋ ˆ๋“œ ์ƒํƒœ  (0) 2021.10.05
  1. @Value
  2.  
  3. @Data
'๐ŸŒ WEB/JAVA' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • Java 8 Interface - default ๋ฉ”์„œ๋“œ, static ๋ฉ”์„œ๋“œ
  • [MapStruct] ๋‚ด๊ฐ€ ์ฐพ์•„ ์“ฐ๋ ค๊ณ  ์ •๋ฆฌํ•œ ๊ธ€
  • ๋‚ด๊ฐ€ ๋ณด๋ ค๊ณ  ์ •๋ฆฌํ•˜๋Š” JAVA ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ 5- ์Šค๋ ˆ๋“œํ’€
  • ๋‚ด๊ฐ€ ๋ณด๋ ค๊ณ  ์ •๋ฆฌํ•˜๋Š” JAVA ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ 4- ๋ฐ๋ชฌ ์Šค๋ ˆ๋“œ, ์Šค๋ ˆ๋“œ ๊ทธ๋ฃน
์• ์ •์“ฐ
์• ์ •์“ฐ
์• ์ •์“ฐ
์• ์ •์ฝ”๋”ฉ ๐Ÿ’ป
์• ์ •์“ฐ
์ „์ฒด
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (93)
    • ๐Ÿง  MIND (0)
    • ๐Ÿ“ ํšŒ๊ณ  (5)
    • โš™๏ธ ๋ฐฐํฌ ๋ฐ ์ธํ”„๋ผ (2)
    • ๐Ÿ—‚๏ธ DataBase (1)
      • QUERY (1)
    • ๐Ÿ’ป Computer Science (12)
    • ๐ŸŒ WEB (62)
      • HTML,CSS (0)
      • Kotlien (1)
      • JAVA (20)
      • JavaScript (3)
      • Spring (16)
      • Thymeleaf (2)
      • Node.js (1)
      • React (2)
      • SETTING (3)
      • JPA (11)
    • ๐Ÿœ TESTING (3)
    • ๊ธฐํƒ€ (4)
    • ์—๋Ÿฌ๋ชจ์Œ (4)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • Java
  • null์ œ์™ธ
  • ArgumentCaptor
  • spring-boot
  • Spring
  • QueryDSL
  • ์ฝ”ํ…Œ
  • Til
  • 6์›”ํšŒ๊ณ 
  • max_digest_length
  • ์„œ๋น„์Šคํ…Œ์ŠคํŠธ
  • JWT
  • rdsํŒŒ๋ผ๋ฏธํ„ฐ
  • JPA
  • ์ง๋ ฌํ™”
  • XSSFWorkbook
  • ํšŒ๊ณ 
  • ๋ฉ”์„œ๋“œํ…Œ์ŠคํŠธ
  • Setting
  • ๋ฐฑ์ค€
  • ๊ฐœ๋ฐœ์žํšŒ๊ณ 
  • ๊ธฐ์ดˆ
  • Gson null
  • ํŒŒ์ด์ฌ
  • ์ธํ„ฐ๋ทฐ
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • ๊ฐœ๋ฐœ์ž
  • ๋™์ ํ”„๋ก์‹œ
  • enum
  • ์ž๋ฐ”

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

hELLO ยท Designed By ์ •์ƒ์šฐ.v4.2.1
์• ์ •์“ฐ
[Lombok] Difference Between @Value and @Data
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”

๋‹จ์ถ•ํ‚ค

๋‚ด ๋ธ”๋กœ๊ทธ

๋‚ด ๋ธ”๋กœ๊ทธ - ๊ด€๋ฆฌ์ž ํ™ˆ ์ „ํ™˜
Q
Q
์ƒˆ ๊ธ€ ์“ฐ๊ธฐ
W
W

๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๊ธ€

๊ธ€ ์ˆ˜์ • (๊ถŒํ•œ ์žˆ๋Š” ๊ฒฝ์šฐ)
E
E
๋Œ“๊ธ€ ์˜์—ญ์œผ๋กœ ์ด๋™
C
C

๋ชจ๋“  ์˜์—ญ

์ด ํŽ˜์ด์ง€์˜ URL ๋ณต์‚ฌ
S
S
๋งจ ์œ„๋กœ ์ด๋™
T
T
ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ ์ด๋™
H
H
๋‹จ์ถ•ํ‚ค ์•ˆ๋‚ด
Shift + /
โ‡ง + /

* ๋‹จ์ถ•ํ‚ค๋Š” ํ•œ๊ธ€/์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ๋„๋ฉ”์ธ์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.