Lombok

์ฝœ๋ผ๋ง˜ยท2023๋…„ 7์›” 4์ผ
0

Spring

๋ชฉ๋ก ๋ณด๊ธฐ
6/14
post-thumbnail

๐Ÿ€ Lombok

  • ๊ฐ„๋‹จํ•œ ์–ด๋…ธํ…Œ์ด์…˜ ์ถ”๊ฐ€๋กœ ์ž๋ฐ”๋นˆ ์Šคํƒ€์ผ์˜ ๊ฐ์ฒด๋ฅผ ์ž๋™์œผ๋กœ ์™„์„ฑํ•ด์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

๐ŸŒผ Lombok ์„ค์น˜ํ•˜๊ธฐ

  1. ๋กฌ๋ณต ๋‹ค์šด๋กœ๋“œ์—์„œ ๋‹ค์šด๋กœ๋“œ ํ›„ ์‹คํ–‰
  2. sts.exe์˜ ๊ฒฝ๋กœ๋ฅผ ์ฐพ์•„์„œ ์ง€์ •(IDE ์„ค์ •ํ•˜๊ธฐ)
  3. sts ์žฌ์‹œ์ž‘
  4. maven repository์—์„œ ๊ฐ™์€ ๋ฒ„์ „์˜ maven์„ ๋ณต์‚ฌ
  5. pom.xml์˜ dependencies์— ๋ถ™์—ฌ๋„ฃ๊ธฐ
  6. ํ”„๋กœ์ ํŠธ ์šฐํด๋ฆญ -> maven -> update project ... ์‹คํ–‰
  7. Package Explorer์˜ Maven Dependencies์—์„œ ํ•ด๋‹น ๋ฒ„์ „์˜ lombok์ด ์ž˜ ์„ค์น˜๋˜์—ˆ๋Š”์ง€ ํ™•์ธ

๐ŸŒผ Lombok์˜ ์–ด๋…ธํ…Œ์ด์…˜๋“ค

  • @Getter

    • ํด๋ž˜์Šค ์œ„์— ๋ถ™์ด๋ฉด ํ•ด๋‹น ํด๋ž˜์Šค์˜ ๋ชจ๋“  ํ•„๋“œ์— ๋Œ€ํ•œ Getter๋ฅผ ์ƒ์„ฑํ•œ๋‹ค
    • ํ•„๋“œ ์œ„์— ๋ถ™์ด๋ฉด ํ•ด๋‹น ํ•„๋“œ์—๋งŒ Getter๋ฅผ ์ƒ์„ฑํ•œ๋‹ค
  • @Setter

    • ํด๋ž˜์Šค ์œ„์— ๋ถ™์ด๋ฉด ํ•ด๋‹น ํด๋ž˜์Šค์˜ ๋ชจ๋“  ํ•„๋“œ์— ๋Œ€ํ•œ Setter๋ฅผ ์ƒ์„ฑํ•œ๋‹ค
    • ํ•„๋“œ ์œ„์— ๋ถ™์ด๋ฉด ํ•ด๋‹น ํ•„๋“œ์—๋งŒ Setter๋ฅผ ์ƒ์„ฑํ•œ๋‹ค
  • @ToString

    • ํ•ด๋‹น ํด๋ž˜์Šค์˜ toString()์„ ์•Œ์•„์„œ ์ ๋‹นํžˆ ๊ตฌํ˜„ํ•ด์ค€๋‹ค
  • @NoArgsConstructor

    • ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๋ฅผ ์ƒ์„ฑํ•œ๋‹ค
  • @AllArgsConstructor

    • ๋ชจ๋“  ํ•„๋“œ๊ฐ’์„ ์ดˆ๊ธฐํ™”ํ•ด์•ผ ํ•˜๋Š” ์ƒ์„ฑ์ž๋ฅผ ์ƒ์„ฑํ•œ๋‹ค
  • @RequiredArgsConstructor

    • ํ•„์ˆ˜๋กœ ์ฑ„์›Œ์•ผํ•˜๋Š” ํ•„๋“œ๋งŒ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ์ƒ์„ฑ์ž๋ฅผ ์ƒ์„ฑํ•œ๋‹ค
    • @NonNull์ด ๋ถ™์–ด์žˆ๋Š” ํ•„๋“œ๋ฅผ ํ•„์ˆ˜๋กœ ์ฑ„์›Œ์•ผ ํ•˜๋Š” ํ•„๋“œ๋กœ ๊ฐ„์ฃผํ•œ๋‹ค
  • @EqualsAndHashCode

    • ํ•ด๋‹น ํด๋ž˜์Šค์˜ equals()์™€ hashCode()๋ฅผ ์ ์ ˆํ•˜๊ฒŒ ์˜ค๋ฒ„๋ผ์ด๋”ฉ ํ•œ๋‹ค
    • equals()๋Š” ๋ชจ๋“  ํ•„๋“œ์˜ ๊ฐ’์ด ์ผ์น˜ํ•˜๋ฉด ๊ฐ™์€ ๊ฐ์ฒด๋กœ ์ธ์ •ํ•œ๋‹ค
    • hashCode()๋Š” ๋ชจ๋“  ํ•„๋“œ์˜ ๊ฐ’์ด ์ผ์น˜ํ•˜๋ฉด ๊ฐ™์€ ๊ฐ’์„ ์ƒ์„ฑํ•œ๋‹ค
  • @Data

    • @Getter
    • @Setter
    • @ToString
    • @EqualsAndHashCode
    • @RequiredArgsConstructor๋ฅผ ๋ชจ๋‘ ํ•ฉ์นœ ์–ด๋…ธํ…Œ์ด์…˜
    • ์ž์ฃผ ์“ฐ๋Š” ์กฐํ•ฉ .. ?

๐ŸŒผ Lombok ์‚ฌ์šฉํ•˜๊ธฐ

@Data
public class EmployeeDTO {
	String first_name;
	String last_name;
	Date hire_date;
	Integer salary;
}
  1. ํด๋ž˜์Šค ์ƒ์„ฑ ํ›„ ๋ฉค๋ฒ„๋ณ€์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค
  2. ํด๋ž˜์Šค์— @Data ์–ด๋…ธํ…Œ์ด์…˜์„ ์ถ”๊ฐ€ํ•œ๋‹ค
  3. Lombok์ด Getter, Setter, ์ƒ์„ฑ์ž, toString๋“ฑ์„ ๋ชจ๋‘ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•ด์ค€๋‹ค
profile
์ฝœ๋ผ๋ง˜ ์ฝ”๋”ฉ์ผ๊ธฐ

0๊ฐœ์˜ ๋Œ“๊ธ€